{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "accordion",
  "title": "Accordion",
  "description": "Collapsed by default; the trigger carries the count and the chevron is the only affordance. No underline on hover, no orange — the focus ring is --text.",
  "dependencies": [
    "@base-ui/react@1.9.0",
    "lucide-react@1.33.0"
  ],
  "registryDependencies": [
    "@waimakers/utils",
    "@waimakers/theme"
  ],
  "files": [
    {
      "path": "src/components/ui/accordion.tsx",
      "content": "import {\n  Accordion as AccordionPrimitive,\n  type AccordionItemProps,\n  type AccordionPanelProps,\n  type AccordionRootProps,\n  type AccordionTriggerProps,\n} from \"@base-ui/react/accordion\";\nimport { ChevronDownIcon } from \"lucide-react\";\n\nimport { cn, focusRing } from \"../../lib/utils\";\n\nfunction Accordion({\n  className,\n  ...props\n}: Omit<AccordionRootProps, \"className\"> & { className?: string }) {\n  return (\n    <AccordionPrimitive.Root\n      data-slot=\"accordion\"\n      className={cn(\"flex w-full flex-col\", className)}\n      {...props}\n    />\n  );\n}\n\nfunction AccordionItem({\n  className,\n  ...props\n}: Omit<AccordionItemProps, \"className\"> & { className?: string }) {\n  return (\n    <AccordionPrimitive.Item\n      data-slot=\"accordion-item\"\n      className={cn(\"border-b last:border-b-0\", className)}\n      {...props}\n    />\n  );\n}\n\nfunction AccordionTrigger({\n  className,\n  children,\n  ...props\n}: Omit<AccordionTriggerProps, \"className\"> & { className?: string }) {\n  return (\n    <AccordionPrimitive.Header className=\"flex\">\n      <AccordionPrimitive.Trigger\n        data-slot=\"accordion-trigger\"\n        className={cn(\n          \"group flex flex-1 items-start justify-between gap-4 rounded-md bg-transparent py-4 text-left text-sm font-semibold text-foreground transition-colors ease-brand\",\n          focusRing,\n          \"disabled:pointer-events-none disabled:opacity-50\",\n          className,\n        )}\n        {...props}\n      >\n        {children}\n        <ChevronDownIcon\n          aria-hidden\n          className=\"pointer-events-none size-4 shrink-0 translate-y-0.5 text-muted-foreground transition-transform duration-(--dur-base,220ms) ease-brand group-data-panel-open:rotate-180 motion-reduce:transition-none\"\n        />\n      </AccordionPrimitive.Trigger>\n    </AccordionPrimitive.Header>\n  );\n}\n\nfunction AccordionContent({\n  className,\n  children,\n  ...props\n}: Omit<AccordionPanelProps, \"className\"> & { className?: string }) {\n  return (\n    <AccordionPrimitive.Panel\n      data-slot=\"accordion-content\"\n      className=\"h-[var(--accordion-panel-height)] overflow-hidden text-sm transition-[height] duration-(--dur-base,220ms) ease-brand data-ending-style:h-0 data-starting-style:h-0 motion-reduce:transition-none\"\n      {...props}\n    >\n      <div className={cn(\"pt-0 pb-4\", className)}>{children}</div>\n    </AccordionPrimitive.Panel>\n  );\n}\n\nexport { Accordion, AccordionContent, AccordionItem, AccordionTrigger };\n",
      "type": "registry:ui",
      "target": "components/ui/accordion.tsx"
    }
  ],
  "type": "registry:ui"
}