accordion
aomi/accordionFreeComponent
A vertically stacked set of interactive headings that each reveal a section of content.
Install it
npx shadcn@latest add https://aomi.dev/r/accordion.jsonSource
1"use client";23import * as React from "react";4import * as AccordionPrimitive from "@radix-ui/react-accordion";5import { ChevronDown } from "lucide-react";67import { cn } from "@aomi-labs/react";89const Accordion = AccordionPrimitive.Root;1011const AccordionItem = React.forwardRef<12 React.ElementRef<typeof AccordionPrimitive.Item>,13 React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>14>(({ className, ...props }, ref) => (15 <AccordionPrimitive.Item16 ref={ref}17 className={cn("border-b", className)}18 {...props}19 />20));21AccordionItem.displayName = "AccordionItem";2223const AccordionTrigger = React.forwardRef<24 React.ElementRef<typeof AccordionPrimitive.Trigger>,25 React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>26>(({ className, children, ...props }, ref) => (27 <AccordionPrimitive.Header className="flex">28 <AccordionPrimitive.Trigger29 ref={ref}30 className={cn(31 "flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",32 className,33 )}34 {...props}35 >36 {children}37 <ChevronDown className="h-4 w-4 shrink-0 transition-transform duration-200" />38 </AccordionPrimitive.Trigger>39 </AccordionPrimitive.Header>40));41AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;4243const AccordionContent = React.forwardRef<44 React.ElementRef<typeof AccordionPrimitive.Content>,45 React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>46>(({ className, children, ...props }, ref) => (47 <AccordionPrimitive.Content48 ref={ref}49 className="data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm transition-all"50 {...props}51 >52 <div className={cn("pb-4 pt-0", className)}>{children}</div>53 </AccordionPrimitive.Content>54));5556AccordionContent.displayName = AccordionPrimitive.Content.displayName;5758export { Accordion, AccordionItem, AccordionTrigger, AccordionContent };
What it pulls in
npm packages
Files it writes
More from aomi
All 34 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| alertalert | aomi | Components | Free | 1 dep | |
| aomi-frameaomi-frame | aomi | Components | Free | 1 dep | |
| aomi-para-provideraomi-para-provider | aomi | Components | Free | 9 deps · 27 files | |
| aomi-privy-provideraomi-privy-provider | aomi | Components | Free | 7 deps · 15 files | |
| aomi-wallet-kitaomi-wallet-kit | aomi | Components | Free | 8 deps · 59 files | |
| aomi-widgetaomi-widget | aomi | Components | Free | 2 deps | |
| assistant-threadassistant-thread | aomi | Components | Free | 6 deps · 26 files | |
| assistant-thread-listassistant-thread-list | aomi | Components | Free | 2 deps |
