{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "accordion", "type": "registry:ui", "title": "Accordion", "files": [ { "path": "ui/accordion.tsrx", "type": "registry:ui", "target": "components/ui/accordion.tsrx", "content": "// Base UI base accordion — transcribed from upstream's `bases/base-ui/ui/accordion.tsx`\n// (maintainer-supplied), class strings and data-slot names verbatim. Runs on\n// @octanejs/base-ui/accordion.\n//\n// Note the part mapping: upstream shadcn names the content part `AccordionContent` while the\n// underlying Base UI part is `Accordion.Panel`, and `AccordionTrigger` renders the\n// `Accordion.Header` wrapper itself rather than exposing it. Both are upstream's shape, kept\n// as-is so consumers following the shadcn docs get the components they expect.\n//\n// Octane adaptations: no `\"use client\"` (octane has no Server Components); upstream's\n// IconPlaceholder resolves at port time to lucide via @octanejs/lucide.\nimport { Accordion as AccordionPrimitive } from '@octanejs/base-ui/accordion';\nimport { ChevronDownIcon, ChevronUpIcon } from '@octanejs/lucide';\n\nimport { cn } from '@/lib/utils';\n\nexport function Accordion({ className, ...props }: Record) @{\n\t\n}\n\nexport function AccordionItem({ className, ...props }: Record) @{\n\t\n}\n\nexport function AccordionTrigger({ className, children, ...props }: Record) @{\n\t\n\t\t\n\t\t\t{children}\n\t\t\t\n\t\t\t\n}\n\n// `className` styles the INNER div, not the panel — upstream keeps the panel's own class string\n// fixed so the open/close animation hooks cannot be overridden away by a consumer class.\nexport function AccordionContent({ className, children, ...props }: Record) @{\n\t\n\t\t{children}\n\t\n}\n" } ], "dependencies": [ "@octanejs/base-ui@0.1.36", "@octanejs/lucide@0.1.33" ], "registryDependencies": [ "@octane/utils" ] }