accordion
shipbase-ui/accordionFreeComponent
shipbase/ui publishes no description for this item.
Install it
npx shadcn@latest add https://raw.githubusercontent.com/shipbase/ui/next/apps/www/public/r/react/accordion.jsonSource
1"use client"23import * as React from "react"45import { Accordion as AccordionPrimitive } from "@ark-ui/react/accordion"6import { ChevronDown } from "lucide-react"78import { cn } from "@/lib/utils"910const Accordion = AccordionPrimitive.Root1112const AccordionContext = AccordionPrimitive.Context1314const AccordionItem = React.forwardRef<15 React.ElementRef<typeof AccordionPrimitive.Item>,16 AccordionPrimitive.ItemProps17>(({ className, ...props }, ref) => (18 <AccordionPrimitive.Item19 ref={ref}20 className={cn("border-b last:border-b-0", className)}21 {...props}22 />23))24AccordionItem.displayName = "AccordionItem"2526const AccordionItemContent = React.forwardRef<27 React.ElementRef<typeof AccordionPrimitive.ItemContent>,28 AccordionPrimitive.ItemContentProps29>(({ className, children, ...props }, ref) => (30 <AccordionPrimitive.ItemContent31 ref={ref}32 className="overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down"33 {...props}34 >35 <div className={cn("pt-0 pb-4", className)}>{children}</div>36 </AccordionPrimitive.ItemContent>37))38AccordionItemContent.displayName = "AccordionItemContent"3940const AccordionItemContext = AccordionPrimitive.ItemContext4142const AccordionItemTrigger = React.forwardRef<43 React.ElementRef<typeof AccordionPrimitive.ItemTrigger>,44 AccordionPrimitive.ItemTriggerProps45>(({ className, children, ...props }, ref) => (46 <AccordionPrimitive.ItemTrigger47 ref={ref}48 className={cn(49 "flex w-full flex-1 items-center justify-between gap-4 rounded-md py-4 text-left font-semibold text-sm outline-none transition-all hover:underline focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50",50 className51 )}52 {...props}53 >54 {children}55 <AccordionPrimitive.ItemIndicator className="[&[data-state=open]>svg]:rotate-180">56 <ChevronDown className="pointer-events-none size-4 shrink-0 opacity-60 transition-transform duration-200" />57 </AccordionPrimitive.ItemIndicator>58 </AccordionPrimitive.ItemTrigger>59))60AccordionItemTrigger.displayName = "AccordionItemTrigger"6162export {63 Accordion,64 AccordionContext,65 AccordionItem,66 AccordionItemContent,67 AccordionItemContext,68 AccordionItemTrigger,69}
What it pulls in
npm packages
Files it writes
More from shipbase/ui
All 32 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| avataravatar | shipbase/ui | Components | Free | 1 dep | |
| badgebadge | shipbase/ui | Components | Free | 2 deps | |
| buttonbutton | shipbase/ui | Components | Free | 2 deps | |
| cardcard | shipbase/ui | Components | Free | 1 dep | |
| checkboxcheckbox | shipbase/ui | Components | Free | 2 deps | |
| collapsiblecollapsible | shipbase/ui | Components | Free | 1 dep | |
| comboboxcombobox | shipbase/ui | Components | Free | 2 deps | |
| dialogdialog | shipbase/ui | Components | Free | 2 deps |
