{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "accordion",
  "title": "Accordion",
  "description": "Sections that open on a spring inside one slab of glass, and a collapsible.",
  "dependencies": [
    "@base-ui/react@^1.8.0"
  ],
  "registryDependencies": [
    "https://liquikit.dev/r/button.json",
    "https://liquikit.dev/r/core.json",
    "https://liquikit.dev/r/glass.json"
  ],
  "files": [
    {
      "path": "src/accordion.tsx",
      "content": "\"use client\";\n\nimport { Accordion as BaseAccordion } from \"@base-ui/react/accordion\";\nimport { Collapsible as BaseCollapsible } from \"@base-ui/react/collapsible\";\nimport type { ReactNode } from \"react\";\nimport { Button, type ButtonProps } from \"./button\";\nimport { GlassPane, type GlassRefraction } from \"./glass\";\nimport { cx, type GlassOptions } from \"./types\";\nimport \"./liquikit.css\";\n\ntype Classed<P> = Omit<P, \"className\"> & { className?: string };\n\nfunction Chevron() {\n\treturn (\n\t\t<svg className=\"glass-ui-chevron\" viewBox=\"0 0 16 16\" aria-hidden=\"true\">\n\t\t\t<path d=\"M6 3.5 10.5 8 6 12.5\" />\n\t\t</svg>\n\t);\n}\n\nexport type AccordionRootProps = Classed<BaseAccordion.Root.Props> &\n\tGlassOptions & {\n\t\trefraction?: GlassRefraction;\n\t};\n\nfunction Root({\n\tclassName,\n\ttheme,\n\tlens,\n\tliquid,\n\trefraction,\n\t...props\n}: AccordionRootProps) {\n\treturn (\n\t\t<BaseAccordion.Root\n\t\t\t{...props}\n\t\t\tclassName={cx(\"glass-ui-accordion\", className)}\n\t\t\trender={(rootProps) => (\n\t\t\t\t<GlassPane\n\t\t\t\t\t{...rootProps}\n\t\t\t\t\tradius={22}\n\t\t\t\t\ttheme={theme}\n\t\t\t\t\tlens={lens}\n\t\t\t\t\tliquid={liquid}\n\t\t\t\t\trefraction={refraction}\n\t\t\t\t/>\n\t\t\t)}\n\t\t/>\n\t);\n}\n\nfunction Item({ className, ...props }: Classed<BaseAccordion.Item.Props>) {\n\treturn (\n\t\t<BaseAccordion.Item\n\t\t\t{...props}\n\t\t\tclassName={cx(\"glass-ui-accordion__item\", className)}\n\t\t/>\n\t);\n}\n\nfunction Trigger({\n\tclassName,\n\tchildren,\n\t...props\n}: Classed<BaseAccordion.Trigger.Props> & { children?: ReactNode }) {\n\treturn (\n\t\t<BaseAccordion.Header className=\"glass-ui-accordion__header\">\n\t\t\t<BaseAccordion.Trigger\n\t\t\t\t{...props}\n\t\t\t\tclassName={cx(\"glass-ui-accordion__trigger\", className)}\n\t\t\t>\n\t\t\t\t<span className=\"glass-ui-accordion__title\">{children}</span>\n\t\t\t\t<Chevron />\n\t\t\t</BaseAccordion.Trigger>\n\t\t</BaseAccordion.Header>\n\t);\n}\n\nfunction Panel({\n\tclassName,\n\tchildren,\n\t...props\n}: Classed<BaseAccordion.Panel.Props> & { children?: ReactNode }) {\n\treturn (\n\t\t<BaseAccordion.Panel\n\t\t\t{...props}\n\t\t\tclassName={cx(\"glass-ui-disclosure\", className)}\n\t\t>\n\t\t\t<div className=\"glass-ui-accordion__body\">{children}</div>\n\t\t</BaseAccordion.Panel>\n\t);\n}\n\nexport const Accordion = { Root, Item, Trigger, Panel };\n\nexport function CollapsibleRoot({\n\tclassName,\n\t...props\n}: Classed<BaseCollapsible.Root.Props>) {\n\treturn (\n\t\t<BaseCollapsible.Root\n\t\t\t{...props}\n\t\t\tclassName={cx(\"glass-ui-collapsible\", className)}\n\t\t/>\n\t);\n}\n\nexport function CollapsibleTrigger({ children, ...props }: ButtonProps) {\n\treturn (\n\t\t<BaseCollapsible.Trigger\n\t\t\trender={\n\t\t\t\t<Button {...props}>\n\t\t\t\t\t{children}\n\t\t\t\t\t<Chevron />\n\t\t\t\t</Button>\n\t\t\t}\n\t\t/>\n\t);\n}\n\nexport function CollapsiblePanel({\n\tclassName,\n\tchildren,\n\t...props\n}: Classed<BaseCollapsible.Panel.Props> & { children?: ReactNode }) {\n\treturn (\n\t\t<BaseCollapsible.Panel\n\t\t\t{...props}\n\t\t\tclassName={cx(\"glass-ui-disclosure\", className)}\n\t\t>\n\t\t\t<div className=\"glass-ui-collapsible__body\">{children}</div>\n\t\t</BaseCollapsible.Panel>\n\t);\n}\n\nexport const Collapsible = {\n\tRoot: CollapsibleRoot,\n\tTrigger: CollapsibleTrigger,\n\tPanel: CollapsiblePanel,\n};\n\nexport const AccordionRoot = Accordion.Root;\nexport const AccordionItem = Accordion.Item;\nexport const AccordionTrigger = Accordion.Trigger;\nexport const AccordionPanel = Accordion.Panel;\n",
      "type": "registry:ui",
      "target": "@components/liquikit/accordion.tsx"
    }
  ],
  "type": "registry:ui"
}