{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "collapsible",
  "type": "registry:ui",
  "title": "Collapsible",
  "description": "An interactive component which expands/collapses a panel.",
  "dependencies": [
    "@radix-ui/react-collapsible"
  ],
  "registryDependencies": [
    "@joyco/utils"
  ],
  "files": [
    {
      "path": "components/ui/collapsible.tsx",
      "content": "'use client';\nimport * as Primitive from '@radix-ui/react-collapsible';\nimport { forwardRef, useSyncExternalStore } from 'react';\nimport { cn } from '@/lib/utils'\n\nconst Collapsible = Primitive.Root;\n\nconst CollapsibleTrigger = Primitive.CollapsibleTrigger;\n\nconst emptySubscribe = () => () => {}\nconst returnTrue = () => true\nconst returnFalse = () => false\n\nconst CollapsibleContent = forwardRef<\n  HTMLDivElement,\n  React.ComponentPropsWithoutRef<typeof Primitive.CollapsibleContent>\n>(({ children, ...props }, ref) => {\n  const mounted = useSyncExternalStore(emptySubscribe, returnTrue, returnFalse)\n\n  return (\n    <Primitive.CollapsibleContent\n      ref={ref}\n      {...props}\n      className={cn(\n        'overflow-hidden',\n        mounted &&\n          'data-[state=closed]:animate-fd-collapsible-up data-[state=open]:animate-fd-collapsible-down',\n        props.className,\n      )}\n    >\n      {children}\n    </Primitive.CollapsibleContent>\n  );\n});\n\nCollapsibleContent.displayName = Primitive.CollapsibleContent.displayName;\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent };\n\nexport type CollapsibleProps = Primitive.CollapsibleProps;\nexport type CollapsibleContentProps = Primitive.CollapsibleContentProps;\nexport type CollapsibleTriggerProps = Primitive.CollapsibleTriggerProps;\n",
      "type": "registry:ui"
    }
  ]
}