{"$schema":"https://ui.shadcn.com/schema/registry-item.json","name":"collapsible","title":"Collapsible","description":"Compact disclosure for a single section of content.","dependencies":["@base-ui/react@1.7.0"],"registryDependencies":["@siteplane/base","@siteplane/button"],"files":[{"path":"packages/ui/src/components/collapsible/collapsible.tsx","content":"\"use client\";\n\nimport { Collapsible as CollapsiblePrimitive } from \"@base-ui/react/collapsible\";\nimport type React from \"react\";\nimport { cn, type WithStringClassName } from \"../../system/utils/cn\";\nimport { slotClass } from \"../../system/utils/slot-class\";\nimport { KitButton } from \"../button/button-internal\";\n\nexport function Collapsible(\n  props: WithStringClassName<CollapsiblePrimitive.Root.Props>,\n): React.ReactElement {\n  return (\n    <CollapsiblePrimitive.Root\n      data-slot=\"collapsible\"\n      {...props}\n      className={cn(slotClass(\"collapsible\", props), props.className)}\n    />\n  );\n}\nexport function CollapsibleTrigger({\n  className,\n  render,\n  ...props\n}: WithStringClassName<CollapsiblePrimitive.Trigger.Props>): React.ReactElement {\n  return (\n    // A long unbroken label (a URL, an email) wraps instead of overflowing\n    // the trigger (rulebook K5).\n    <CollapsiblePrimitive.Trigger\n      className={cn(\n        slotClass(\"collapsible-trigger\", props, render),\n        \"sp-collapsible-motion wrap-anywhere\",\n        className,\n      )}\n      data-profile=\"collapsible-trigger\"\n      data-slot=\"collapsible-trigger\"\n      render={\n        render ?? (\n          <KitButton\n            align=\"between\"\n            multiline\n            profile=\"collapsible-trigger\"\n            variant=\"text\"\n            width=\"full\"\n          />\n        )\n      }\n      {...props}\n    />\n  );\n}\nexport function CollapsiblePanel({\n  className,\n  ...props\n}: WithStringClassName<CollapsiblePrimitive.Panel.Props>): React.ReactElement {\n  return (\n    <CollapsiblePrimitive.Panel\n      className={cn(\n        slotClass(\"collapsible-panel\", props),\n        \"sp-collapsible-motion h-(--collapsible-panel-height) overflow-hidden data-ending-style:h-0 data-starting-style:h-0\",\n        className,\n      )}\n      data-slot=\"collapsible-panel\"\n      {...props}\n    />\n  );\n}\nexport { CollapsiblePrimitive, CollapsiblePanel as CollapsibleContent };\n","type":"registry:ui","target":"~/src/siteplane/components/collapsible/collapsible.tsx"},{"path":"packages/ui/src/components/collapsible/index.ts","content":"export * from \"./collapsible\";\n","type":"registry:ui","target":"~/src/siteplane/components/collapsible/index.ts"}],"type":"registry:ui","docs":"https://ui.siteplane.io/docs-markdown/components/collapsible.md","categories":["Overlays & disclosure"],"meta":{"avoidWhen":["Avoid for a related list of sections; use Accordion.","Avoid expecting navigation or data loading: Collapsible only toggles visibility."],"description":"Compact disclosure for a single section of content.","knownLimitations":[],"providerNotes":[],"releaseStatus":"stable","searchTerms":["collapsible"],"useWhen":["Use to show or hide one section of content, such as advanced options or a branch of a file tree."]}}