import * as AccordionPrimitive from "@radix-ui/react-accordion" import clsx from "clsx" import React from "react" import IconTooltip from "../../molecules/icon-tooltip" type AccordionItemProps = AccordionPrimitive.AccordionItemProps & { title: string subtitle?: string description?: string required?: boolean tooltip?: string forceMountContent?: true headingSize?: "small" | "medium" | "large" customTrigger?: React.ReactNode } const Accordion: React.FC< | (AccordionPrimitive.AccordionSingleProps & React.RefAttributes) | (AccordionPrimitive.AccordionMultipleProps & React.RefAttributes) > & { Item: React.FC } = ({ children, ...props }) => { return ( {children} ) } const Item: React.FC = ({ title, subtitle, description, required, tooltip, children, className, headingSize = "large", customTrigger = undefined, forceMountContent = undefined, ...props }) => { const headerClass = clsx({ "inter-small-semibold": headingSize === "small", "inter-base-semibold": headingSize === "medium", "inter-large-semibold": headingSize === "large", }) const paddingClasses = clsx({ "pb-0 mb-6 ": headingSize === "medium", "pb-5 radix-state-open:pb-5xlarge mb-5 ": headingSize === "large", }) return (
{title} {required && *} {tooltip && }
{customTrigger || }
{subtitle && ( {subtitle} )}
{description &&

{description}

}
{children}
) } Accordion.Item = Item const MorphingTrigger = () => { return (
) } export default Accordion