// AlignUI Accordion v0.0.0 'use client'; import * as React from 'react'; import * as AccordionPrimitive from '@radix-ui/react-accordion'; import { cn } from '@/utils/cn'; import type { PolymorphicComponentProps } from '@/utils/polymorphic'; import { Plus, Minus } from 'lucide-react'; const ACCORDION_ITEM_NAME = 'AccordionItem'; const ACCORDION_ICON_NAME = 'AccordionIcon'; const ACCORDION_ARROW_NAME = 'AccordionArrow'; const ACCORDION_TRIGGER_NAME = 'AccordionTrigger'; const ACCORDION_CONTENT_NAME = 'AccordionContent'; const AccordionRoot = AccordionPrimitive.Root; const AccordionHeader = AccordionPrimitive.Header; const AccordionItem = React.forwardRef< React.ComponentRef, React.ComponentPropsWithoutRef >(({ className, ...rest }, forwardedRef) => { return ( ); }); AccordionItem.displayName = ACCORDION_ITEM_NAME; const AccordionTrigger = React.forwardRef< React.ComponentRef, React.ComponentPropsWithoutRef >(({ children, className, ...rest }, forwardedRef) => { return ( {children} ); }); AccordionTrigger.displayName = ACCORDION_TRIGGER_NAME; function AccordionIcon({ className, as, ...rest }: PolymorphicComponentProps) { const Component = as || 'div'; return ( ); } AccordionIcon.displayName = ACCORDION_ICON_NAME; type AccordionArrowProps = React.HTMLAttributes & { openIcon?: React.ElementType; closeIcon?: React.ElementType; }; // open/close function AccordionArrow({ className, openIcon: OpenIcon = Plus, closeIcon: CloseIcon = Minus, ...rest }: AccordionArrowProps) { return ( <> ); } AccordionArrow.displayName = ACCORDION_ARROW_NAME; const AccordionContent = React.forwardRef< React.ComponentRef, React.ComponentPropsWithoutRef >(({ children, className, ...rest }, forwardedRef) => { return (
{children}
); }); AccordionContent.displayName = ACCORDION_CONTENT_NAME; export { AccordionRoot as Root, AccordionHeader as Header, AccordionItem as Item, AccordionTrigger as Trigger, AccordionIcon as Icon, AccordionArrow as Arrow, AccordionContent as Content, };