Accordion
octane/accordionFreeComponent
octane publishes no description for this item.
Live preview
live · rendered by the registry
Rendered by octane on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://raw.githubusercontent.com/octanejs/octane/main/packages/shadcn/registry/accordion.jsonSource
1// Base UI base accordion — transcribed from upstream's `bases/base-ui/ui/accordion.tsx`2// (maintainer-supplied), class strings and data-slot names verbatim. Runs on3// @octanejs/base-ui/accordion.4//5// Note the part mapping: upstream shadcn names the content part `AccordionContent` while the6// underlying Base UI part is `Accordion.Panel`, and `AccordionTrigger` renders the7// `Accordion.Header` wrapper itself rather than exposing it. Both are upstream's shape, kept8// as-is so consumers following the shadcn docs get the components they expect.9//10// Octane adaptations: no `"use client"` (octane has no Server Components); upstream's11// IconPlaceholder resolves at port time to lucide via @octanejs/lucide.12import { Accordion as AccordionPrimitive } from '@octanejs/base-ui/accordion';13import { ChevronDownIcon, ChevronUpIcon } from '@octanejs/lucide';1415import { cn } from '@/lib/utils';1617export function Accordion({ className, ...props }: Record<string, any>) @{18 <AccordionPrimitive.Root19 data-slot="accordion"20 className={cn('flex w-full flex-col', className)}21 {...props}22 />23}2425export function AccordionItem({ className, ...props }: Record<string, any>) @{26 <AccordionPrimitive.Item27 data-slot="accordion-item"28 className={cn('not-last:border-b', className)}29 {...props}30 />31}3233export function AccordionTrigger({ className, children, ...props }: Record<string, any>) @{34 <AccordionPrimitive.Header className="flex">35 <AccordionPrimitive.Trigger36 data-slot="accordion-trigger"37 className={cn(38 'group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent py-2.5 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:after:border-ring aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground',39 className,40 )}41 {...props}42 >43 {children}44 <ChevronDownIcon45 data-slot="accordion-trigger-icon"46 className="pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden"47 />48 <ChevronUpIcon49 data-slot="accordion-trigger-icon"50 className="pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline"51 />52 </AccordionPrimitive.Trigger>53 </AccordionPrimitive.Header>54}5556// … truncated
What it pulls in
npm packages
Other registry items
Files it writes
More from octane
All 44 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Alertalert | octane | Components | Free | 1 dep | |
| Alert Dialogalert-dialog | octane | Components | Free | 1 dep | |
| Aspect Ratioaspect-ratio | octane | Components | Free | no deps | |
| Avataravatar | octane | Components | Free | 1 dep | |
| Badgebadge | octane | Components | Free | 1 dep | |
| Breadcrumbbreadcrumb | octane | Components | Free | 1 dep | |
| Buttonbutton | octane | Components | Free | 2 deps | |
| Cardcard | octane | Components | Free | no deps |
