{"$schema":"https://ui.shadcn.com/schema/registry-item.json","name":"accordion","title":"Accordion","description":"Single or multiple expandable disclosure sections.","dependencies":["@base-ui/react@1.7.0","lucide-react@1.18.0"],"registryDependencies":["@siteplane/base","@siteplane/button"],"files":[{"path":"packages/ui/src/components/accordion/accordion.tsx","content":"\"use client\";\n\nimport { Accordion as AccordionPrimitive } from \"@base-ui/react/accordion\";\nimport { ChevronDownIcon } from \"lucide-react\";\nimport type React from \"react\";\n\nimport { cn, type WithStringClassName } from \"../../system/utils/cn\";\nimport { slotClass } from \"../../system/utils/slot-class\";\nimport { KitButton } from \"../button/button-internal\";\n\nexport function Accordion(\n  props: WithStringClassName<AccordionPrimitive.Root.Props>,\n): React.ReactElement {\n  return (\n    <AccordionPrimitive.Root\n      data-slot=\"accordion\"\n      {...props}\n      className={cn(slotClass(\"accordion\", props), props.className)}\n    />\n  );\n}\n\nexport function AccordionItem({\n  className,\n  ...props\n}: WithStringClassName<AccordionPrimitive.Item.Props>): React.ReactElement {\n  return (\n    <AccordionPrimitive.Item\n      className={cn(slotClass(\"accordion-item\", props), className)}\n      data-slot=\"accordion-item\"\n      {...props}\n    />\n  );\n}\n\nexport function AccordionTrigger({\n  className,\n  children,\n  render,\n  ...props\n}: WithStringClassName<AccordionPrimitive.Trigger.Props>): React.ReactElement {\n  return (\n    <AccordionPrimitive.Header className=\"flex\">\n      <AccordionPrimitive.Trigger\n        className={cn(\n          slotClass(\"accordion-trigger\", props, render),\n          \"sp-accordion-motion group min-w-0 flex-1\",\n          className,\n        )}\n        data-profile=\"accordion-trigger\"\n        data-slot=\"accordion-trigger\"\n        render={\n          render ?? (\n            <KitButton\n              align=\"between\"\n              multiline\n              profile=\"accordion-trigger\"\n              variant=\"text\"\n              width=\"full\"\n            />\n          )\n        }\n        {...props}\n      >\n        <span className=\"min-w-0 flex-1 wrap-anywhere\">{children}</span>\n        <ChevronDownIcon\n          className=\"sp-accordion-indicator sp-accordion-motion pointer-events-none shrink-0\"\n          data-slot=\"accordion-indicator\"\n        />\n      </AccordionPrimitive.Trigger>\n    </AccordionPrimitive.Header>\n  );\n}\n\nexport function AccordionPanel({\n  className,\n  children,\n  ...props\n}: WithStringClassName<AccordionPrimitive.Panel.Props>): React.ReactElement {\n  return (\n    <AccordionPrimitive.Panel\n      className={cn(\n        slotClass(\"accordion-panel\", props),\n        \"sp-accordion-motion h-(--accordion-panel-height) overflow-hidden data-ending-style:h-0 data-starting-style:h-0\",\n        className,\n      )}\n      data-slot=\"accordion-panel\"\n      {...props}\n    >\n      <div>{children}</div>\n    </AccordionPrimitive.Panel>\n  );\n}\n\nexport { AccordionPrimitive, AccordionPanel as AccordionContent };\n","type":"registry:ui","target":"~/src/siteplane/components/accordion/accordion.tsx"},{"path":"packages/ui/src/components/accordion/index.ts","content":"export * from \"./accordion\";\n","type":"registry:ui","target":"~/src/siteplane/components/accordion/index.ts"}],"type":"registry:ui","docs":"https://ui.siteplane.io/docs-markdown/components/accordion.md","categories":["Overlays & disclosure"],"meta":{"avoidWhen":["Avoid for a single disclosure; use Collapsible.","Avoid when readers need to compare the content of several sections at once, since closed sections hide it."],"description":"Single or multiple expandable disclosure sections.","knownLimitations":["Enter or Space toggles a focused trigger and Tab moves between the triggers; arrow keys do not move focus.","A trigger takes no other interactive control inside it."],"providerNotes":[],"releaseStatus":"stable","searchTerms":["accordion"],"useWhen":["Use for a list of related sections that people open one or several at a time, such as an FAQ or a group of settings."]}}