16 lines
938 B
TypeScript
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;
|