{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "components-base-accordion",
  "title": "Accordion",
  "description": "A set of collapsible panels with headings.",
  "dependencies": [
    "lucide-react"
  ],
  "registryDependencies": [
    "@animate-ui/primitives-base-accordion"
  ],
  "files": [
    {
      "path": "registry/components/base/accordion/index.tsx",
      "content": "import * as React from 'react';\nimport { ChevronDownIcon } from 'lucide-react';\n\nimport {\n  Accordion as AccordionPrimitive,\n  AccordionItem as AccordionItemPrimitive,\n  AccordionHeader as AccordionHeaderPrimitive,\n  AccordionTrigger as AccordionTriggerPrimitive,\n  AccordionPanel as AccordionPanelPrimitive,\n  type AccordionProps as AccordionPrimitiveProps,\n  type AccordionItemProps as AccordionItemPrimitiveProps,\n  type AccordionTriggerProps as AccordionTriggerPrimitiveProps,\n  type AccordionPanelProps as AccordionPanelPrimitiveProps,\n} from '@/components/animate-ui/primitives/base/accordion';\nimport { cn } from '@/lib/utils';\n\ntype AccordionProps = AccordionPrimitiveProps;\n\nfunction Accordion(props: AccordionProps) {\n  return <AccordionPrimitive {...props} />;\n}\n\ntype AccordionItemProps = AccordionItemPrimitiveProps;\n\nfunction AccordionItem({ className, ...props }: AccordionItemProps) {\n  return (\n    <AccordionItemPrimitive\n      className={cn('border-b last:border-b-0', className)}\n      {...props}\n    />\n  );\n}\n\ntype AccordionTriggerProps = AccordionTriggerPrimitiveProps & {\n  showArrow?: boolean;\n};\n\nfunction AccordionTrigger({\n  className,\n  children,\n  showArrow = true,\n  ...props\n}: AccordionTriggerProps) {\n  return (\n    <AccordionHeaderPrimitive className=\"flex\">\n      <AccordionTriggerPrimitive\n        className={cn(\n          'focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-panel-open]>svg]:rotate-180',\n          className,\n        )}\n        {...props}\n      >\n        {children}\n        {showArrow && (\n          <ChevronDownIcon className=\"text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200\" />\n        )}\n      </AccordionTriggerPrimitive>\n    </AccordionHeaderPrimitive>\n  );\n}\n\ntype AccordionPanelProps = AccordionPanelPrimitiveProps & {\n  children: React.ReactNode;\n};\n\nfunction AccordionPanel({\n  className,\n  children,\n  ...props\n}: AccordionPanelProps) {\n  return (\n    <AccordionPanelPrimitive {...props}>\n      <div className={cn('text-sm pt-0 pb-4', className)}>{children}</div>\n    </AccordionPanelPrimitive>\n  );\n}\n\nexport {\n  Accordion,\n  AccordionItem,\n  AccordionTrigger,\n  AccordionPanel,\n  type AccordionProps,\n  type AccordionItemProps,\n  type AccordionTriggerProps,\n  type AccordionPanelProps,\n};\n",
      "type": "registry:ui",
      "target": "components/animate-ui/components/base/accordion.tsx"
    }
  ],
  "type": "registry:ui"
}