1 changed files with 44 additions and 0 deletions
@ -0,0 +1,44 @@ |
|||
import { cn } from "@core/utils/cn.ts"; |
|||
import * as AccordionPrimitive from "@radix-ui/react-accordion"; |
|||
import { ChevronDownIcon } from "lucide-react"; |
|||
import { type ComponentRef, forwardRef } from "react"; |
|||
|
|||
export const Accordion = AccordionPrimitive.Root; |
|||
|
|||
export const AccordionHeader = AccordionPrimitive.Header; |
|||
|
|||
export const AccordionItem = AccordionPrimitive.Item; |
|||
|
|||
export const AccordionTrigger = forwardRef< |
|||
ComponentRef<typeof AccordionPrimitive.Trigger>, |
|||
React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger> |
|||
>(({ className, ...props }, ref) => ( |
|||
<AccordionPrimitive.Trigger |
|||
ref={ref} |
|||
className={cn( |
|||
"flex justify-between items-center w-full p-4 border-b border-gray-200 dark:border-gray-800 group", |
|||
className, |
|||
)} |
|||
{...props} |
|||
> |
|||
{props.children} |
|||
<ChevronDownIcon |
|||
className="h-5 w-5 transition-transform duration-300 group-data-[state=open]:rotate-180" |
|||
aria-hidden |
|||
/> |
|||
</AccordionPrimitive.Trigger> |
|||
)); |
|||
|
|||
export const AccordionContent = forwardRef< |
|||
ComponentRef<typeof AccordionPrimitive.Content>, |
|||
React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content> |
|||
>(({ className, ...props }, ref) => ( |
|||
<AccordionPrimitive.Content |
|||
ref={ref} |
|||
className={cn( |
|||
"p-4 border-b border-gray-200 dark:border-gray-800", |
|||
className, |
|||
)} |
|||
{...props} |
|||
/> |
|||
)); |
|||
Loading…
Reference in new issue