import React, { FC, ReactElement, ReactNode, useState } from "react" import { motion } from "framer-motion" import { ChevronDownIcon } from "lucide-react" import Stack from "../molecules/stack" import Text from "../molecules/text" // Types export type AccordionItemProps = { title: string subTitle?: string content: string icon?: ReactElement isExpanded?: boolean defaultExpanded?: boolean onClick?: () => void } type AccordionGroupProps = { children: ReactNode } // AccordionItem Component export const AccordionItem: FC = ({ title, subTitle, content, icon, isExpanded, defaultExpanded, onClick, }) => { const itemIcon = icon || const initialExpandedState = isExpanded || defaultExpanded return ( {content} ) } // AccordionGroup Component export const AccordionGroup: FC = ({ children }) => { const [expandIndex, setExpandIndex] = useState(null) // Toggle accordion item const handleAccordionItemClick = (index: number) => { setExpandIndex((prevIndex) => (prevIndex === index ? null : index)) } const accordionItems = React.Children.toArray(children) return (
{accordionItems.map((child, index) => React.cloneElement(child as ReactElement, { isExpanded: expandIndex === index, onClick: () => handleAccordionItemClick(index), key: index, }) )}
) }