'use client'; import { AnimatePresence, LazyMotion, m } from 'motion/react'; import React, { useCallback, useId, useState } from 'react'; import { Button } from '../button/index.js'; import { ExpandLessIcon, ExpandMoreIcon, IconProps } from '../icon/index.js'; import { styles as collapsibleStyles } from './collapsible.styles.js'; import { type CollapsibleProps } from './collapsible.types.js'; const loadAnimations = () => import('./collapsible.utils.js').then(res => res.default); export function Collapsible({ className, children, open = false, text, size = 'medium', onClick = () => undefined, }: CollapsibleProps) { const [contentOpen, setContentOpen] = useState(open); const contentId = useId(); const ButtonIcon = (props: IconProps) => { if (!contentOpen) return ; return ; }; const handleClick = useCallback(() => { onClick(); setContentOpen(contentOpen => !contentOpen); }, [onClick]); const styles = collapsibleStyles({ open: contentOpen }); return ( <> {contentOpen && ( {children} )} ); }