{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "collapsible",
  "title": "Collapsible",
  "description": "A collapsible panel controlled by a button.",
  "dependencies": [
    "@base-ui/react",
    "class-variance-authority"
  ],
  "registryDependencies": [
    "utils"
  ],
  "files": [
    {
      "path": "registry/ui/collapsible.tsx",
      "content": "\"use client\";\n\nimport { Collapsible as BaseCollapsible } from \"@base-ui/react/collapsible\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/registry/lib/utils\";\n\nconst panelVariants = cva(\"overflow-hidden\", {\n  defaultVariants: {\n    animation: \"css\",\n  },\n  variants: {\n    animation: {\n      css: \"h-[var(--collapsible-panel-height)] data-[starting-style]:h-0 data-[ending-style]:h-0 transition-all duration-150\",\n      none: \"\",\n    },\n  },\n});\n\nfunction Collapsible({ ...props }: BaseCollapsible.Root.Props) {\n  return <BaseCollapsible.Root data-slot=\"collapsible\" {...props} />;\n}\n\nfunction CollapsibleTrigger({ ...props }: BaseCollapsible.Trigger.Props) {\n  return <BaseCollapsible.Trigger data-slot=\"collapsible-trigger\" {...props} />;\n}\n\nfunction CollapsiblePanel({\n  className,\n  animation,\n  ...props\n}: BaseCollapsible.Panel.Props & VariantProps<typeof panelVariants>) {\n  return (\n    <BaseCollapsible.Panel\n      className={cn(panelVariants({ animation }), className)}\n      data-slot=\"collapsible-panel\"\n      {...props}\n    />\n  );\n}\n\nexport { Collapsible, CollapsiblePanel, CollapsibleTrigger };\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}