2026-03-29 20:41:10 +07:00

16 lines
938 B
TypeScript

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<typeof CollapsibleRootPropsSchema>, Omit<JSX.HTMLAttributes<HTMLDivElement>, keyof z.infer<typeof CollapsibleRootPropsSchema>> { 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;