import { Collapsible as Kobalte, CollapsibleRootProps } from "@kobalte/core/collapsible" import { Accessor, ComponentProps, createContext, createSignal, ParentProps, splitProps, useContext } from "solid-js" import { MorphChevron } from "./morph-chevron" const CollapsibleContext = createContext>() export interface CollapsibleProps extends ParentProps { class?: string classList?: ComponentProps<"div">["classList"] variant?: "normal" | "ghost" } function CollapsibleRoot(props: CollapsibleProps) { const [local, others] = splitProps(props, ["class", "classList", "variant", "open", "onOpenChange", "children"]) const [internalOpen, setInternalOpen] = createSignal(local.open ?? false) const handleOpenChange = (open: boolean) => { setInternalOpen(open) local.onOpenChange?.(open) } return ( {local.children} ) } function CollapsibleTrigger(props: ComponentProps) { return } function CollapsibleContent(props: ComponentProps) { return } function CollapsibleArrow(props?: ComponentProps<"div">) { const isOpen = useContext(CollapsibleContext) return (
) } export const Collapsible = Object.assign(CollapsibleRoot, { Arrow: CollapsibleArrow, Trigger: CollapsibleTrigger, Content: CollapsibleContent, })