import { ChevronDown, ChevronUp } from 'lucide-react'; import { ReactNode, useState } from 'react'; import { Box } from './Box'; import { Icon } from './Icon'; import { Surface } from './Surface'; import { Text } from './Text'; 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 ( {isOpen && ( {children} )} ); };