import { ChevronDown, ChevronUp } from 'lucide-react'; import { ReactNode, useState } from 'react'; import { Icon } from '@/ui/Icon'; import { Surface } from '@/ui/Surface'; import { Text } from '@/ui/Text'; import { Box } from '@/ui/Box'; export interface AccordionProps { title: string; children: ReactNode; defaultOpen?: boolean; isOpen?: boolean; onToggle?: () => void; } export const Accordion = ({ title, children, defaultOpen = false, isOpen: controlledIsOpen, onToggle }: AccordionProps) => { const [internalIsOpen, setInternalIsOpen] = useState(defaultOpen); const isControlled = controlledIsOpen !== undefined; const isOpen = isControlled ? controlledIsOpen : internalIsOpen; const handleToggle = () => { if (onToggle) { onToggle(); } if (!isControlled) { setInternalIsOpen(!internalIsOpen); } }; return ( {title} {isOpen && ( {children} )} ); };