import { z } from "zod/v4"; import type { JSX } from "solid-js"; import type { ComponentMeta } from "../../meta"; export const CollapsibleRootPropsSchema = z.object({ open: z.boolean().optional().describe("Controlled open state"), defaultOpen: z.boolean().optional().describe("Initial open state when uncontrolled"), disabled: z.boolean().optional().describe("Prevent the collapsible from being toggled"), }); export interface CollapsibleRootProps extends z.infer, Omit, keyof z.infer> { onOpenChange?: (open: boolean) => void; children: JSX.Element; } export const CollapsibleMeta: ComponentMeta = { name: "Collapsible", description: "Content section that can be expanded or collapsed with a trigger", parts: ["Root", "Trigger", "Content"] as const, requiredParts: ["Root", "Trigger", "Content"] as const, } as const;