@pebble-software/bonsai 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -246,6 +246,7 @@ Submission only happens when the instance renders a `<form>` (see below) and the
246
246
  - `as: "div"` renders the whole instance as a `<div>` instead of a `<form>` (and no submit handler is attached). Use it when embedding an instance inside a host `<form>`, or when rendering sibling/nested instances, where nested `<form>` elements would be invalid HTML.
247
247
  - The two combine predictably: `render: "pdf"` always wins and produces a `<div>`; otherwise `as` decides.
248
248
  - Components read the mode with `useBonsaiRenderMode()`. The built-in `signature` uses it: under `render: "pdf"` it shows the captured image (or an empty signature line) instead of the interactive pad.
249
+ - Templates restyle their PDF output with the `pdf:` variant: `pdf:hidden`, `pdf:text-sm`, `pdf:break-before-page`. It matches only inside a `render: "pdf"` tree and sorts after the responsive and `print:` variants, so `pdf:text-sm` wins over `md:text-xl` (an A4 page, 794px wide, is past the `md` breakpoint). It ships in `theme.css` and in the bundled stylesheet.
249
250
 
250
251
  Each mounted instance owns its own store — there's no shared module-level state and no global `updateData`; `useUpdateData()` is the only way to reach a given instance's data, and only from within its subtree.
251
252
 
@@ -484,7 +485,7 @@ Bonsai is styled with **Tailwind CSS v4**. Components emit plain Tailwind utilit
484
485
  - **Compile it with your own Tailwind v4 build.** `index.css` ships as uncompiled Tailwind source: it opens with `@import "tailwindcss"` and carries the full theme (an OKLCH color palette with swappable accent colors, typography, shadows) and base styles. Its `@source "./"` points Tailwind at Bonsai's compiled `dist/`, so every class the built-in components use is generated. `tailwindcss` and `tw-animate-css` are optional peers for this reason. None of the JavaScript entry points import it; it is the only side effect the package declares (`"sideEffects": ["**/*.css"]`), so bundlers can tree-shake everything else.
485
486
  - **It styles the whole page, not just Bonsai.** The stylesheet includes Tailwind's Preflight reset plus base rules for `body` (font, background, text color) and `h1`–`h6` (heading font). On a page that has its own design system, load it deliberately — for example, only on the routes that render Bonsai.
486
487
  - **Fonts load from Pebble's CDN.** Sora, Fredoka, and Great Vibes (used by the signature control) are declared with `@font-face` pointing at `https://brand.pebble.software/fonts/`. If you use a Content Security Policy, allow that origin in `font-src`, or override `--font-body`, `--font-heading`, and `--font-signature` with fonts you host.
487
- - **Scoping**: every rendered tree is wrapped in a `.bonsai-root` element carrying a `data-mode` attribute (`web` / `pdf` / `preview`), so hosts can scope their own overrides per render mode.
488
+ - **Scoping**: every rendered tree is wrapped in a `.bonsai-root` element carrying a `data-mode` attribute (`web` / `pdf` / `preview`), so hosts can scope their own overrides per render mode; templates use the `pdf:` variant for the same thing (see [Wrapper element and render mode](#wrapper-element-and-render-mode)).
488
489
  - **Accent colors**: set `data-theme` on any ancestor (`<body data-theme="indigo">`) to switch the accent palette. Available values: `red`, `orange`, `amber`, `yellow`, `lime`, `green`, `emerald` (default), `teal`, `cyan`, `sky`, `blue`, `indigo`, `violet`, `purple`, `fuchsia`, `pink`, `rose`.
489
490
  - **Theming**: the theme is token-driven — redefine the CSS variables (e.g. `--color-main`, `--font-heading`) after the stylesheet to restyle every component at once, or target `.bonsai-root` descendants for finer overrides.
490
491
  - **Utilities in your templates**: a `className` utility that no built-in component uses (say, `grid-cols-5`) is only generated if your build also scans the templates that use it — add their location with `@source`. Inside the Pebble Bonsai platform, CSS is compiled per template so this never comes up.
@@ -1 +1 @@
1
- {"version":3,"file":"builder.meta-B7Y9M7Ab.js","sources":["../../../../library/schemas/src/bonsai.schema.ts","../../../../library/schemas/src/builder.meta.ts"],"sourcesContent":["import { COMPONENT } from \"@bonsai/constants\";\nimport { z } from \"zod\";\n\n// Declarative click behaviour: data, never code. The path is a value (not a key)\n// so dotted paths never become Mongo field names.\nconst ClickAction = z\n .object({\n set: z\n .string()\n .min(1, { message: \"Action `set` needs a store path\" })\n .refine((path) => !path.startsWith(\"{{\"), {\n message: \"Action `set` takes a plain store path (e.g. `pizzaChoice`), not a {{binding}}\",\n })\n .meta({ description: \"Store path to write, e.g. `pizzaChoice` or `row.selected` inside an `each`\" }),\n to: z\n .unknown()\n .meta({ description: \"Value to write (required; `null` clears): a literal or a `{{...}}` expression, evaluated against the state at click time\" }),\n })\n .strict()\n // Named so the OpenAPI spec emits one `$ref` instead of inlining it per component.\n .meta({ id: \"BonsaiClickAction\" });\n\n// Strict, and every `*Args` below extends it, so an arg no component declares (e.g.\n// `dangerouslySetInnerHTML`) is a validation error instead of being silently dropped.\nconst CoreArgs = z.object({\n id: z.string().optional().meta({ description: \"Unique identifier for the element\" }),\n className: z\n .string()\n .optional()\n .meta({ description: \"CSS classes to apply to the element\" }),\n onClick: z\n .array(ClickAction)\n .optional()\n .meta({ description: \"Store writes applied in order when the element is clicked\" }),\n}).strict();\n\nconst AArgs = CoreArgs.extend({\n href: z\n .string({ error: \"Link destination (href) is required\" })\n .min(1, { message: \"Link destination (href) cannot be empty\" }),\n});\n\nconst HArgs = CoreArgs.extend({\n variant: z\n .enum([\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"], {\n error:\n \"Invalid heading variant. Must be one of: h1, h2, h3, h4, h5, or h6\",\n })\n .optional()\n .meta({ description: \"Heading level variant (h1-h6)\" }),\n as: z\n .enum([\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"], {\n error:\n \"Invalid heading element type. Must be one of: h1, h2, h3, h4, h5, or h6\",\n })\n .optional()\n .meta({ description: \"Render as a different heading element\" }),\n}).optional();\n\nconst PArgs = CoreArgs.extend({\n size: z\n .enum([\"xs\", \"sm\", \"md\", \"lg\", \"xl\"], {\n error: \"Invalid paragraph size. Must be one of: xs, sm, md, lg, or xl\",\n })\n .optional()\n .meta({ description: \"Paragraph text size\" }),\n variant: z\n .enum([\"default\", \"muted\"])\n .optional()\n .meta({ description: \"Paragraph style variant\" }),\n as: z\n .enum([\"p\", \"div\", \"span\"])\n .optional()\n .meta({ description: \"Render as a different element\" }),\n}).optional();\n\nconst OLArgs = CoreArgs.optional();\nconst ULArgs = CoreArgs.optional();\nconst LIArgs = CoreArgs.optional();\n\nconst DivArgs = CoreArgs.optional();\n\nconst SpanArgs = CoreArgs.optional();\n\nconst SeparatorArgs = CoreArgs.optional();\n\nconst AlertArgs = CoreArgs.extend({\n variant: z\n .enum([\"default\", \"success\", \"warning\", \"destructive\"], {\n error: \"Invalid alert variant. Must be one of: default, success, warning, or destructive\",\n })\n .optional()\n .meta({ description: \"Alert style variant\" }),\n size: z\n .enum([\"default\", \"sm\", \"lg\"])\n .optional()\n .meta({ description: \"Alert size\" }),\n raised: z\n .enum([\"xs\", \"sm\", \"md\", \"lg\", \"xl\"])\n .optional()\n .meta({ description: \"Alert shadow elevation\" }),\n}).optional();\n\nconst BadgeArgs = CoreArgs.extend({\n variant: z\n .enum([\"default\", \"secondary\", \"destructive\", \"outline\", \"ghost\"], {\n error: \"Invalid badge variant. Must be one of: default, secondary, destructive, outline, or ghost\",\n })\n .optional()\n .meta({ description: \"Badge style variant\" }),\n size: z\n .enum([\"sm\", \"md\", \"lg\"])\n .optional()\n .meta({ description: \"Badge size\" }),\n raised: z\n .enum([\"xs\", \"sm\", \"md\", \"lg\"])\n .optional()\n .meta({ description: \"Badge shadow elevation\" }),\n extrude: z\n .enum([\"xs\", \"sm\", \"md\", \"lg\"])\n .optional()\n .meta({ description: \"Badge extrude elevation\" }),\n}).optional();\n\nconst ButtonArgs = CoreArgs.extend({\n variant: z\n .enum([\"default\", \"secondary\", \"outline\", \"destructive\", \"warning\", \"ghost\"], {\n error:\n \"Invalid button variant. Must be one of: default, secondary, outline, destructive, warning, or ghost\",\n })\n .optional()\n .meta({ description: \"Button style variant\" }),\n size: z\n .enum([\"xs\", \"sm\", \"md\", \"lg\"], {\n error: \"Invalid button size. Must be one of: xs, sm, md, or lg\",\n })\n .optional()\n .meta({ description: \"Button size\" }),\n icon: z\n .enum([\"xs\", \"sm\", \"md\", \"lg\"])\n .optional()\n .meta({ description: \"Icon-only button size\" }),\n raised: z\n .enum([\"xs\", \"sm\", \"md\", \"lg\", \"xl\"])\n .optional()\n .meta({ description: \"Button shadow elevation\" }),\n extrude: z\n .enum([\"xs\", \"sm\", \"md\", \"lg\", \"xl\"])\n .optional()\n .meta({ description: \"Button extrude elevation\" }),\n disabled: z\n .union([z.string(), z.boolean()])\n .optional()\n .meta({ description: \"Whether the button is disabled\" }),\n loading: z\n .union([z.string(), z.boolean()])\n .optional()\n .meta({ description: \"Whether to show a loading spinner\" }),\n type: z\n .enum([\"button\", \"submit\"], {\n error: \"Invalid button type. Must be either 'button' or 'submit'\",\n })\n .optional()\n .meta({ description: \"Button type attribute\" }),\n}).optional();\n\nconst CardArgs = CoreArgs.extend({\n size: z\n .enum([\"sm\", \"md\"])\n .optional()\n .meta({ description: \"Card size\" }),\n raised: z\n .enum([\"none\", \"xs\", \"sm\", \"md\", \"lg\", \"xl\"])\n .optional()\n .meta({ description: \"Card shadow elevation\" }),\n}).optional();\n\nconst CardHeaderArgs = CoreArgs.optional();\nconst CardTitleArgs = CoreArgs.optional();\nconst CardDescriptionArgs = CoreArgs.optional();\nconst CardContentArgs = CoreArgs.optional();\nconst CardFooterArgs = CoreArgs.optional();\nconst CardActionArgs = CoreArgs.optional();\nconst CardIconArgs = CoreArgs.optional();\n\nconst CheckboxArgs = CoreArgs.extend({\n checked: z\n .union([z.string(), z.boolean()])\n .optional()\n .meta({ description: \"Checkbox checked state\" }),\n disabled: z\n .union([z.string(), z.boolean()])\n .optional()\n .meta({ description: \"Whether the checkbox is disabled\" }),\n required: z\n .union([z.string(), z.boolean()])\n .optional()\n .meta({ description: \"Whether the checkbox must be checked\" }),\n size: z\n .enum([\"xs\", \"sm\", \"md\", \"lg\", \"xl\"])\n .optional()\n .meta({ description: \"Checkbox size\" }),\n}).strict();\n\nconst ImageArgs = CoreArgs.extend({\n src: z.union(\n [\n z.url({ error: \"Image source (src) must be a valid URL\" }),\n z.string().min(1, { message: \"Image source (src) cannot be empty\" }),\n ],\n {\n error: \"Image source (src) is required\",\n },\n ),\n alt: z\n .string()\n .optional()\n .default(\"unknown image url\")\n .meta({ description: \"Alternative text for the image\" }),\n}).strict();\n\nconst OTPArgs = CoreArgs.extend({\n value: z\n .union([z.string(), z.number()], {\n error: \"OTP value is required\",\n })\n .meta({ description: \"Current OTP value\" }),\n placeholder: z\n .string()\n .optional()\n .meta({ description: \"Placeholder text for the OTP input\" }),\n disabled: z\n .union([z.string(), z.boolean()])\n .optional()\n .meta({ description: \"Whether the OTP input is disabled\" }),\n containerClassName: z\n .string()\n .optional()\n .meta({ description: \"Custom CSS class for the OTP input container\" }),\n}).strict();\n\nconst InputArgs = CoreArgs.extend({\n type: z\n .enum([\"text\", \"email\", \"password\", \"number\"], {\n error: \"Invalid input type. Must be one of: text, email, password, or number\",\n })\n .optional()\n .meta({ description: \"Input type; a number input stores a number\" }),\n value: z\n .union([z.string(), z.number()], {\n error: \"Input value is required\",\n })\n .meta({ description: \"Current input value\" }),\n placeholder: z\n .string()\n .optional()\n .meta({ description: \"Placeholder text shown when empty\" }),\n disabled: z\n .union([z.string(), z.boolean()])\n .optional()\n .meta({ description: \"Whether the input is disabled\" }),\n}).strict();\n\nconst LabelArgs = CoreArgs.extend({\n htmlFor: z\n .string()\n .min(1, {\n message:\n \"Label 'for' attribute is required and must reference an input ID\",\n })\n .meta({ description: \"ID of the associated input element\" }),\n size: z\n .enum([\"xs\", \"sm\", \"md\", \"lg\", \"xl\"])\n .optional()\n .meta({ description: \"Label text size\" }),\n variant: z\n .enum([\"default\", \"underline\", \"destructive\"])\n .optional()\n .meta({ description: \"Label style variant\" }),\n}).strict();\n\nconst SwitchArgs = CoreArgs.extend({\n checked: z\n .union([z.string(), z.boolean()], {\n error: \"Switch checked state is required\",\n })\n .meta({ description: \"Current switch state\" }),\n disabled: z\n .union([z.string(), z.boolean()])\n .optional()\n .meta({ description: \"Whether the switch is disabled\" }),\n required: z\n .union([z.string(), z.boolean()])\n .optional()\n .meta({ description: \"Whether the switch must be turned on\" }),\n size: z\n .enum([\"sm\", \"md\", \"lg\"])\n .optional()\n .meta({ description: \"Switch size\" }),\n rounded: z\n .enum([\"none\", \"sm\", \"md\", \"lg\", \"full\"])\n .optional()\n .meta({ description: \"Switch border radius\" }),\n}).strict();\n\nconst TextareaArgs = CoreArgs.extend({\n value: z\n .string({ error: \"Textarea value is required\" })\n .meta({ description: \"Current textarea content\" }),\n placeholder: z\n .string()\n .optional()\n .meta({ description: \"Placeholder text shown when empty\" }),\n disabled: z\n .union([z.string(), z.boolean()])\n .optional()\n .meta({ description: \"Whether the textarea is disabled\" }),\n autosize: z\n .boolean()\n .optional()\n .meta({ description: \"Whether the textarea auto-resizes to fit content\" }),\n rows: z\n .number()\n .min(1, { message: \"Minimum number of rows is 1\" })\n .max(100, { message: \"Maximum number of rows is 100\" })\n .optional()\n .meta({ description: \"Number of visible text lines\" }),\n minLength: z\n .number()\n .min(0, { message: \"Minimum character length cannot be negative\" })\n .optional()\n .meta({ description: \"Minimum number of characters allowed\" }),\n maxLength: z\n .number()\n .max(10000, { message: \"Maximum character length cannot exceed 10,000\" })\n .optional()\n .meta({ description: \"Maximum number of characters allowed\" }),\n}).strict();\n\nconst InputGroupArgs = CoreArgs.optional();\n\nconst InputGroupTextArgs = CoreArgs.optional();\n\nconst InputGroupAddonArgs = CoreArgs.extend({\n align: z.enum([\"inline-start\", \"inline-end\", \"block-start\", \"block-end\"])\n .optional()\n .meta({ description: \"Alignment of the addon within the input group\" }),\n}).optional();\n\nconst InputGroupInputArgs = CoreArgs.extend({\n value: z.union([z.string(), z.number()], {\n error: \"Input value is required\",\n }).meta({ description: \"Current input value\" }),\n placeholder: z.string().optional().meta({ description: \"Placeholder text shown when empty\" }),\n disabled: z.union([z.string(), z.boolean()]).optional().meta({ description: \"Whether the input is disabled\" }),\n}).strict();\n\nconst InputGroupButtonArgs = CoreArgs.extend({\n variant: z.enum([\"default\", \"secondary\", \"outline\", \"destructive\", \"warning\", \"ghost\"]).optional(),\n size: z.enum([\"xs\", \"sm\", \"md\", \"lg\"]).optional(),\n}).optional();\n\nconst InputGroupTextareaArgs = CoreArgs.extend({\n value: z.string({ error: \"Textarea value is required\" }).meta({ description: \"Current textarea content\" }),\n placeholder: z.string().optional(),\n disabled: z.union([z.string(), z.boolean()]).optional(),\n}).strict();\n\nconst SignatureArgs = CoreArgs.extend({\n value: z\n .string()\n .nullable()\n .meta({ description: \"Current signature value (base64 or null if empty)\" }),\n canvasClassname: z\n .string()\n .optional()\n .meta({ description: \"Custom CSS class for the signature canvas\" }),\n imageType: z\n .enum([\"image/png\", \"image/jpeg\", \"image/webp\"])\n .optional()\n .meta({ description: \"Image format for the exported signature\" }),\n}).strict();\n\nconst CalendarArgs = CoreArgs.extend({\n selected: z\n .union([z.string(), z.date(), z.array(z.date())], {\n error:\n \"Invalid calendar selection. Must be a date string, Date object, or array of dates\",\n })\n .optional()\n .meta({ description: \"Currently selected date(s)\" }),\n buttonVariant: z\n .enum([\"default\", \"secondary\", \"outline\", \"destructive\", \"warning\", \"ghost\"])\n .optional()\n .meta({ description: \"Variant for calendar navigation buttons\" }),\n hideWeekends: z\n .boolean()\n .optional()\n .meta({ description: \"Whether to hide Saturday and Sunday columns\" }),\n}).optional();\n\nconst TableArgs = CoreArgs.optional();\nconst TableHeaderArgs = CoreArgs.optional();\nconst TableBodyArgs = CoreArgs.optional();\nconst TableFooterArgs = CoreArgs.optional();\nconst TableHeadArgs = CoreArgs.optional();\nconst TableRowArgs = CoreArgs.optional();\nconst TableCellArgs = CoreArgs.optional();\nconst TableCaptionArgs = CoreArgs.optional();\n\nconst AccordionArgs = CoreArgs.extend({\n variant: z\n .enum([\"default\", \"contained\", \"separated\"])\n .optional()\n .meta({ description: \"Accordion style variant\" }),\n raised: z\n .enum([\"xs\", \"sm\", \"md\", \"lg\"])\n .optional()\n .meta({ description: \"Accordion shadow elevation\" }),\n extrude: z\n .enum([\"xs\", \"sm\", \"md\", \"lg\"])\n .optional()\n .meta({ description: \"Accordion extrude elevation\" }),\n}).optional();\n\nconst AccordionItemArgs = CoreArgs.optional();\n\nconst AccordionTriggerArgs = CoreArgs.extend({\n disabled: z\n .union([z.string(), z.boolean()])\n .optional()\n .meta({ description: \"Whether the accordion trigger is disabled\" }),\n icon: z\n .any()\n .optional()\n .meta({ description: \"Custom icon component for the trigger\" }),\n}).optional();\n\nconst AccordionContentArgs = CoreArgs.optional();\n\nconst AvatarArgs = CoreArgs.extend({\n src: z\n .string()\n .optional()\n .meta({ description: \"Image source URL\" }),\n alt: z\n .string()\n .optional()\n .meta({ description: \"Alternative text for the avatar image\" }),\n size: z\n .enum([\"full\", \"sm\", \"md\", \"lg\", \"xl\"])\n .optional()\n .meta({ description: \"Avatar size\" }),\n rounded: z\n .enum([\"none\", \"sm\", \"md\", \"lg\", \"full\"])\n .optional()\n .meta({ description: \"Avatar border radius\" }),\n raised: z\n .enum([\"xs\", \"sm\", \"md\", \"lg\"])\n .optional()\n .meta({ description: \"Avatar shadow elevation\" }),\n fallback: z\n .string()\n .optional()\n .meta({ description: \"Fallback text or element when image fails to load\" }),\n badge: z\n .any()\n .optional()\n .meta({ description: \"Badge element to overlay on the avatar\" }),\n}).optional();\n\nconst CollapsibleArgs = CoreArgs.optional();\nconst CollapsibleTriggerArgs = CoreArgs.optional();\nconst CollapsibleContentArgs = CoreArgs.optional();\n\nconst LoaderArgs = CoreArgs.extend({\n variant: z\n .enum([\"spinner\", \"ping\"])\n .optional()\n .meta({ description: \"Loader animation variant\" }),\n fill: z\n .enum([\"default\", \"destructive\", \"warning\", \"pending\"])\n .optional()\n .meta({ description: \"Loader fill color\" }),\n size: z\n .enum([\"sm\", \"md\", \"lg\"])\n .optional()\n .meta({ description: \"Loader size\" }),\n icon: z\n .any()\n .optional()\n .meta({ description: \"Custom spinner icon component\" }),\n pingIcon: z\n .any()\n .optional()\n .meta({ description: \"Custom ping icon component\" }),\n iconProps: z\n .any()\n .optional()\n .meta({ description: \"Props to pass to the icon components\" }),\n}).optional();\n\nconst ProgressArgs = CoreArgs.extend({\n mode: z\n .enum([\"single\", \"multiple\"])\n .optional()\n .meta({ description: \"Progress display mode\" }),\n value: z\n .union([\n z.number().nullable(),\n z.array(\n z.object({\n name: z.string().optional(),\n value: z.number(),\n }),\n ),\n ])\n .optional()\n .meta({ description: \"Current progress value(s)\" }),\n size: z\n .enum([\"xs\", \"sm\", \"md\", \"lg\", \"xl\"])\n .optional()\n .meta({ description: \"Progress size\" }),\n raised: z\n .enum([\"default\", \"xs\", \"sm\", \"md\", \"lg\", \"xl\"])\n .optional()\n .meta({ description: \"Progress shadow elevation\" }),\n stacked: z\n .enum([\"default\", \"xs\", \"sm\", \"md\", \"lg\", \"xl\"])\n .optional()\n .meta({ description: \"Progress stacked spacing\" }),\n}).optional();\n\nconst SkeletonArgs = CoreArgs.extend({\n variant: z\n .enum([\"circle\", \"square\", \"default\", \"text\"])\n .optional()\n .meta({ description: \"Skeleton shape variant\" }),\n animate: z\n .boolean()\n .optional()\n .meta({ description: \"Whether to animate the skeleton\" }),\n}).optional();\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- recursive, registry-driven node schemas have no static type\nconst Node: z.ZodType<any> = z.lazy(() => z.union([z.string(), ComponentNode]));\n\nconst CoreNode = z.object({\n children: z\n .array(Node)\n .optional()\n .meta({ description: \"Child nodes to render inside this element\" }),\n});\n\nconst DivNode = CoreNode.extend({\n type: z.literal(COMPONENT.DIV),\n args: DivArgs,\n}).meta({ description: \"Container div element for grouping content\" });\n\nconst ANode = CoreNode.extend({\n type: z.literal(COMPONENT.A),\n args: AArgs,\n}).meta({ description: \"Anchor/link element\" });\n\nconst HNode = CoreNode.extend({\n type: z.literal(COMPONENT.H),\n args: HArgs,\n}).meta({ description: \"Heading element (h1-h6)\" });\n\nconst PNode = CoreNode.extend({\n type: z.literal(COMPONENT.P),\n args: PArgs,\n}).meta({ description: \"Paragraph text element\" });\n\nconst OLNode = CoreNode.extend({\n type: z.literal(COMPONENT.OL),\n args: OLArgs,\n}).meta({ description: \"Ordered list element\" });\n\nconst ULNode = CoreNode.extend({\n type: z.literal(COMPONENT.UL),\n args: ULArgs,\n}).meta({ description: \"Unordered list element\" });\n\nconst LINode = CoreNode.extend({\n type: z.literal(COMPONENT.LI),\n args: LIArgs,\n}).meta({ description: \"List item element\" });\n\nconst SpanNode = CoreNode.extend({\n type: z.literal(COMPONENT.SPAN),\n args: SpanArgs,\n}).meta({ description: \"Inline span element\" });\n\nconst SeparatorNode = CoreNode.extend({\n type: z.literal(COMPONENT.SEPARATOR),\n args: SeparatorArgs,\n}).meta({ description: \"Horizontal separator / divider element\" });\n\nconst AlertNode = CoreNode.extend({\n type: z.literal(COMPONENT.ALERT),\n args: AlertArgs,\n}).meta({ description: \"Alert message box\" });\n\nconst BadgeNode = CoreNode.extend({\n type: z.literal(COMPONENT.BADGE),\n args: BadgeArgs,\n}).meta({ description: \"Badge/status indicator\" });\n\nconst ButtonNode = CoreNode.extend({\n type: z.literal(COMPONENT.BUTTON),\n args: ButtonArgs,\n}).meta({ description: \"Clickable button element\" });\n\nconst CardNode = CoreNode.extend({\n type: z.literal(COMPONENT.CARD),\n args: CardArgs,\n}).meta({ description: \"Card container element\" });\n\nconst CheckboxNode = CoreNode.extend({\n type: z.literal(COMPONENT.CHECKBOX),\n args: CheckboxArgs,\n}).meta({ description: \"Checkbox input element\" });\n\nconst ImageNode = CoreNode.extend({\n type: z.literal(COMPONENT.IMAGE),\n args: ImageArgs,\n}).meta({ description: \"Image element\" });\n\nconst OTPNode = CoreNode.extend({\n type: z.literal(COMPONENT.OTP),\n args: OTPArgs,\n}).meta({ description: \"One-time password (OTP) input\" });\n\nconst InputNode = CoreNode.extend({\n type: z.literal(COMPONENT.INPUT),\n args: InputArgs,\n}).meta({ description: \"Text input element\" });\n\nconst LabelNode = CoreNode.extend({\n type: z.literal(COMPONENT.LABEL),\n args: LabelArgs,\n}).meta({ description: \"Form label element\" });\n\nconst SwitchNode = CoreNode.extend({\n type: z.literal(COMPONENT.SWITCH),\n args: SwitchArgs,\n}).meta({ description: \"Toggle switch element\" });\n\nconst TextareaNode = CoreNode.extend({\n type: z.literal(COMPONENT.TEXTAREA),\n args: TextareaArgs,\n}).meta({ description: \"Multi-line text input\" });\n\nconst SignatureNode = CoreNode.extend({\n type: z.literal(COMPONENT.SIGNATURE),\n args: SignatureArgs,\n}).meta({ description: \"Signature pad input\" });\n\nconst CalendarNode = CoreNode.extend({\n type: z.literal(COMPONENT.CALENDAR),\n args: CalendarArgs,\n}).meta({ description: \"Date picker calendar\" });\n\nconst CardHeaderNode = CoreNode.extend({\n type: z.literal(COMPONENT.CARD_HEADER),\n args: CardHeaderArgs,\n}).meta({ description: \"Card header container\" });\n\nconst CardTitleNode = CoreNode.extend({\n type: z.literal(COMPONENT.CARD_TITLE),\n args: CardTitleArgs,\n}).meta({ description: \"Card title element\" });\n\nconst CardDescriptionNode = CoreNode.extend({\n type: z.literal(COMPONENT.CARD_DESCRIPTION),\n args: CardDescriptionArgs,\n}).meta({ description: \"Card description element\" });\n\nconst CardContentNode = CoreNode.extend({\n type: z.literal(COMPONENT.CARD_CONTENT),\n args: CardContentArgs,\n}).meta({ description: \"Card content body\" });\n\nconst CardFooterNode = CoreNode.extend({\n type: z.literal(COMPONENT.CARD_FOOTER),\n args: CardFooterArgs,\n}).meta({ description: \"Card footer container\" });\n\nconst CardActionNode = CoreNode.extend({\n type: z.literal(COMPONENT.CARD_ACTION),\n args: CardActionArgs,\n}).meta({ description: \"Card action slot\" });\n\nconst CardIconNode = CoreNode.extend({\n type: z.literal(COMPONENT.CARD_ICON),\n args: CardIconArgs,\n}).meta({ description: \"Card icon slot\" });\n\nconst TableNode = CoreNode.extend({\n type: z.literal(COMPONENT.TABLE),\n args: TableArgs,\n}).meta({ description: \"Table container\" });\n\nconst TableHeaderNode = CoreNode.extend({\n type: z.literal(COMPONENT.TABLE_HEADER),\n args: TableHeaderArgs,\n}).meta({ description: \"Table header section\" });\n\nconst TableBodyNode = CoreNode.extend({\n type: z.literal(COMPONENT.TABLE_BODY),\n args: TableBodyArgs,\n}).meta({ description: \"Table body section\" });\n\nconst TableFooterNode = CoreNode.extend({\n type: z.literal(COMPONENT.TABLE_FOOTER),\n args: TableFooterArgs,\n}).meta({ description: \"Table footer section\" });\n\nconst TableHeadNode = CoreNode.extend({\n type: z.literal(COMPONENT.TABLE_HEAD),\n args: TableHeadArgs,\n}).meta({ description: \"Table header cell\" });\n\nconst TableRowNode = CoreNode.extend({\n type: z.literal(COMPONENT.TABLE_ROW),\n args: TableRowArgs,\n}).meta({ description: \"Table row\" });\n\nconst TableCellNode = CoreNode.extend({\n type: z.literal(COMPONENT.TABLE_CELL),\n args: TableCellArgs,\n}).meta({ description: \"Table data cell\" });\n\nconst TableCaptionNode = CoreNode.extend({\n type: z.literal(COMPONENT.TABLE_CAPTION),\n args: TableCaptionArgs,\n}).meta({ description: \"Table caption\" });\n\nconst AccordionNode = CoreNode.extend({\n type: z.literal(COMPONENT.ACCORDION),\n args: AccordionArgs,\n}).meta({ description: \"Accordion container\" });\n\nconst AccordionItemNode = CoreNode.extend({\n type: z.literal(COMPONENT.ACCORDION_ITEM),\n args: AccordionItemArgs,\n}).meta({ description: \"Accordion item\" });\n\nconst AccordionTriggerNode = CoreNode.extend({\n type: z.literal(COMPONENT.ACCORDION_TRIGGER),\n args: AccordionTriggerArgs,\n}).meta({ description: \"Accordion trigger\" });\n\nconst AccordionContentNode = CoreNode.extend({\n type: z.literal(COMPONENT.ACCORDION_CONTENT),\n args: AccordionContentArgs,\n}).meta({ description: \"Accordion content panel\" });\n\nconst AvatarNode = CoreNode.extend({\n type: z.literal(COMPONENT.AVATAR),\n args: AvatarArgs,\n}).meta({ description: \"Avatar image or fallback\" });\n\nconst CollapsibleNode = CoreNode.extend({\n type: z.literal(COMPONENT.COLLAPSIBLE),\n args: CollapsibleArgs,\n}).meta({ description: \"Collapsible container\" });\n\nconst CollapsibleTriggerNode = CoreNode.extend({\n type: z.literal(COMPONENT.COLLAPSIBLE_TRIGGER),\n args: CollapsibleTriggerArgs,\n}).meta({ description: \"Collapsible trigger\" });\n\nconst CollapsibleContentNode = CoreNode.extend({\n type: z.literal(COMPONENT.COLLAPSIBLE_CONTENT),\n args: CollapsibleContentArgs,\n}).meta({ description: \"Collapsible content panel\" });\n\nconst LoaderNode = CoreNode.extend({\n type: z.literal(COMPONENT.LOADER),\n args: LoaderArgs,\n}).meta({ description: \"Loading spinner indicator\" });\n\nconst ProgressNode = CoreNode.extend({\n type: z.literal(COMPONENT.PROGRESS),\n args: ProgressArgs,\n}).meta({ description: \"Progress bar indicator\" });\n\nconst SkeletonNode = CoreNode.extend({\n type: z.literal(COMPONENT.SKELETON),\n args: SkeletonArgs,\n}).meta({ description: \"Skeleton loading placeholder\" });\n\nconst InputGroupNode = CoreNode.extend({\n type: z.literal(COMPONENT.INPUT_GROUP),\n args: InputGroupArgs,\n}).meta({ description: \"Input group container\" });\n\nconst InputGroupTextNode = CoreNode.extend({\n type: z.literal(COMPONENT.INPUT_GROUP_TEXT),\n args: InputGroupTextArgs,\n}).meta({ description: \"Text element within input group\" });\n\nconst InputGroupAddonNode = CoreNode.extend({\n type: z.literal(COMPONENT.INPUT_GROUP_ADDON),\n args: InputGroupAddonArgs,\n}).meta({ description: \"Addon container within input group\" });\n\nconst InputGroupInputNode = CoreNode.extend({\n type: z.literal(COMPONENT.INPUT_GROUP_INPUT),\n args: InputGroupInputArgs,\n}).meta({ description: \"Input element within input group\" });\n\nconst InputGroupButtonNode = CoreNode.extend({\n type: z.literal(COMPONENT.INPUT_GROUP_BUTTON),\n args: InputGroupButtonArgs,\n}).meta({ description: \"Button element within input group\" });\n\nconst InputGroupTextareaNode = CoreNode.extend({\n type: z.literal(COMPONENT.INPUT_GROUP_TEXTAREA),\n args: InputGroupTextareaArgs,\n}).meta({ description: \"Textarea element within input group\" });\n\nconst EachArgs = z\n .object({\n items: z\n .string({ error: \"each.items is required\" })\n .min(1, { message: \"each.items cannot be empty\" })\n .meta({\n description:\n 'Binding path to the array to iterate, e.g. \"{{applicants}}\". Must be a plain path (not a computed/filtered expression) so each row maps back to a real store index for two-way binding.',\n }),\n as: z\n .string({ error: \"each.as is required\" })\n .min(1, { message: \"each.as cannot be empty\" })\n .meta({ description: \"Alias name bound to the current item, e.g. \\\"applicant\\\"\" }),\n index: z\n .string()\n .optional()\n .meta({ description: \"Alias name bound to the current numeric index\" }),\n key: z\n .string()\n .optional()\n .meta({\n description:\n 'Binding expression used as the React key per row, e.g. \"{{applicant.id}}\". Falls back to the row index when omitted.',\n }),\n })\n .strict();\n\nconst EachNode = CoreNode.extend({\n type: z.literal(COMPONENT.EACH),\n args: EachArgs,\n}).meta({ description: \"Repeats its children once per item in a bound array\" });\n\nconst IfArgs = z\n .object({\n condition: z\n .string({ error: \"if.condition is required\" })\n .min(1, { message: \"if.condition cannot be empty\" })\n .meta({ description: \"Binding expression; children render only when it evaluates truthy\" }),\n })\n .strict();\n\nconst IfNode = CoreNode.extend({\n type: z.literal(COMPONENT.IF),\n args: IfArgs,\n}).meta({ description: \"Conditionally renders its children based on a bound expression\" });\n\n/* eslint-disable @typescript-eslint/no-explicit-any -- recursive, registry-driven node schemas have no static type */\n\n// Extracts the `args` sub-schema and description back out of an already-built `*Node`\n// schema, so the registry-driven builder below can reuse every hand-written node\n// definition above without retyping its args schema or description.\nfunction argsOf(node: z.ZodType<any>): z.ZodType<any> {\n return (node as unknown as { shape: { args: z.ZodType<any> } }).shape.args;\n}\n\nfunction descriptionOf(node: z.ZodType<any>): string | undefined {\n return (node.meta() as { description?: string } | undefined)?.description;\n}\n\nexport interface TemplateSchemaComponent {\n argsSchema: z.ZodType<any>;\n description?: string;\n}\n\nexport interface GeneratedTemplateSchema {\n Node: z.ZodType<any>;\n ComponentNode: z.ZodDiscriminatedUnion<any>;\n}\n\n/**\n * Builds the same `CoreNode.extend({ type, args }).meta({ description })` shape used\n * above, from a registry's component list rather than a hand-written literal — the\n * union stops being static; it does not stop existing. See REGISTRY_SPIKE.md,\n * \"Schema strategy\".\n */\nexport function createTemplateSchema(\n components: Record<string, TemplateSchemaComponent>,\n): GeneratedTemplateSchema {\n if (Object.keys(components).length === 0) {\n throw new Error(\"createTemplateSchema: registry must declare at least one component\");\n }\n\n // Self-contained recursion (its own Node/CoreNode), not the module-level ones above —\n // those exist only so PEBBLE_COMPONENT_SCHEMAS can source args/descriptions from the\n // hand-written *Node consts. Reusing the module Node here would make `Config` a second,\n // structurally-identical-but-distinct lazy wrapper, which breaks zod-openapi's schema\n // dedup/naming (it stops emitting a named `BonsaiConfig` $ref and inlines it instead).\n const localNode: z.ZodType<any> = z.lazy(() => z.union([z.string(), componentNode]));\n const localCoreNode = z.object({\n children: z\n .array(localNode)\n .optional()\n .meta({ description: \"Child nodes to render inside this element\" }),\n });\n\n const nodeSchemas = Object.entries(components).map(([type, { argsSchema, description }]) => {\n const node = localCoreNode.extend({\n type: z.literal(type),\n args: argsSchema,\n });\n return description ? node.meta({ description }) : node;\n });\n const componentNode: z.ZodDiscriminatedUnion<any> = z.discriminatedUnion(\n \"type\",\n nodeSchemas as [(typeof nodeSchemas)[number], ...(typeof nodeSchemas)[number][]],\n );\n return { Node: localNode, ComponentNode: componentNode };\n}\n\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nexport const PEBBLE_COMPONENT_SCHEMAS: Record<string, TemplateSchemaComponent> = {\n [COMPONENT.DIV]: { argsSchema: argsOf(DivNode), description: descriptionOf(DivNode) },\n [COMPONENT.A]: { argsSchema: argsOf(ANode), description: descriptionOf(ANode) },\n [COMPONENT.H]: { argsSchema: argsOf(HNode), description: descriptionOf(HNode) },\n [COMPONENT.P]: { argsSchema: argsOf(PNode), description: descriptionOf(PNode) },\n [COMPONENT.OL]: { argsSchema: argsOf(OLNode), description: descriptionOf(OLNode) },\n [COMPONENT.UL]: { argsSchema: argsOf(ULNode), description: descriptionOf(ULNode) },\n [COMPONENT.LI]: { argsSchema: argsOf(LINode), description: descriptionOf(LINode) },\n [COMPONENT.SPAN]: { argsSchema: argsOf(SpanNode), description: descriptionOf(SpanNode) },\n [COMPONENT.SEPARATOR]: {\n argsSchema: argsOf(SeparatorNode),\n description: descriptionOf(SeparatorNode),\n },\n [COMPONENT.ALERT]: { argsSchema: argsOf(AlertNode), description: descriptionOf(AlertNode) },\n [COMPONENT.BADGE]: { argsSchema: argsOf(BadgeNode), description: descriptionOf(BadgeNode) },\n [COMPONENT.BUTTON]: { argsSchema: argsOf(ButtonNode), description: descriptionOf(ButtonNode) },\n [COMPONENT.CARD]: { argsSchema: argsOf(CardNode), description: descriptionOf(CardNode) },\n [COMPONENT.CARD_HEADER]: {\n argsSchema: argsOf(CardHeaderNode),\n description: descriptionOf(CardHeaderNode),\n },\n [COMPONENT.CARD_TITLE]: {\n argsSchema: argsOf(CardTitleNode),\n description: descriptionOf(CardTitleNode),\n },\n [COMPONENT.CARD_DESCRIPTION]: {\n argsSchema: argsOf(CardDescriptionNode),\n description: descriptionOf(CardDescriptionNode),\n },\n [COMPONENT.CARD_CONTENT]: {\n argsSchema: argsOf(CardContentNode),\n description: descriptionOf(CardContentNode),\n },\n [COMPONENT.CARD_FOOTER]: {\n argsSchema: argsOf(CardFooterNode),\n description: descriptionOf(CardFooterNode),\n },\n [COMPONENT.CARD_ACTION]: {\n argsSchema: argsOf(CardActionNode),\n description: descriptionOf(CardActionNode),\n },\n [COMPONENT.CARD_ICON]: {\n argsSchema: argsOf(CardIconNode),\n description: descriptionOf(CardIconNode),\n },\n [COMPONENT.CHECKBOX]: {\n argsSchema: argsOf(CheckboxNode),\n description: descriptionOf(CheckboxNode),\n },\n [COMPONENT.IMAGE]: { argsSchema: argsOf(ImageNode), description: descriptionOf(ImageNode) },\n [COMPONENT.OTP]: { argsSchema: argsOf(OTPNode), description: descriptionOf(OTPNode) },\n [COMPONENT.INPUT]: { argsSchema: argsOf(InputNode), description: descriptionOf(InputNode) },\n [COMPONENT.LABEL]: { argsSchema: argsOf(LabelNode), description: descriptionOf(LabelNode) },\n [COMPONENT.SWITCH]: { argsSchema: argsOf(SwitchNode), description: descriptionOf(SwitchNode) },\n [COMPONENT.TEXTAREA]: {\n argsSchema: argsOf(TextareaNode),\n description: descriptionOf(TextareaNode),\n },\n [COMPONENT.SIGNATURE]: {\n argsSchema: argsOf(SignatureNode),\n description: descriptionOf(SignatureNode),\n },\n [COMPONENT.CALENDAR]: {\n argsSchema: argsOf(CalendarNode),\n description: descriptionOf(CalendarNode),\n },\n [COMPONENT.TABLE]: { argsSchema: argsOf(TableNode), description: descriptionOf(TableNode) },\n [COMPONENT.TABLE_HEADER]: {\n argsSchema: argsOf(TableHeaderNode),\n description: descriptionOf(TableHeaderNode),\n },\n [COMPONENT.TABLE_BODY]: {\n argsSchema: argsOf(TableBodyNode),\n description: descriptionOf(TableBodyNode),\n },\n [COMPONENT.TABLE_FOOTER]: {\n argsSchema: argsOf(TableFooterNode),\n description: descriptionOf(TableFooterNode),\n },\n [COMPONENT.TABLE_HEAD]: {\n argsSchema: argsOf(TableHeadNode),\n description: descriptionOf(TableHeadNode),\n },\n [COMPONENT.TABLE_ROW]: {\n argsSchema: argsOf(TableRowNode),\n description: descriptionOf(TableRowNode),\n },\n [COMPONENT.TABLE_CELL]: {\n argsSchema: argsOf(TableCellNode),\n description: descriptionOf(TableCellNode),\n },\n [COMPONENT.TABLE_CAPTION]: {\n argsSchema: argsOf(TableCaptionNode),\n description: descriptionOf(TableCaptionNode),\n },\n [COMPONENT.ACCORDION]: {\n argsSchema: argsOf(AccordionNode),\n description: descriptionOf(AccordionNode),\n },\n [COMPONENT.ACCORDION_ITEM]: {\n argsSchema: argsOf(AccordionItemNode),\n description: descriptionOf(AccordionItemNode),\n },\n [COMPONENT.ACCORDION_TRIGGER]: {\n argsSchema: argsOf(AccordionTriggerNode),\n description: descriptionOf(AccordionTriggerNode),\n },\n [COMPONENT.ACCORDION_CONTENT]: {\n argsSchema: argsOf(AccordionContentNode),\n description: descriptionOf(AccordionContentNode),\n },\n [COMPONENT.AVATAR]: { argsSchema: argsOf(AvatarNode), description: descriptionOf(AvatarNode) },\n [COMPONENT.COLLAPSIBLE]: {\n argsSchema: argsOf(CollapsibleNode),\n description: descriptionOf(CollapsibleNode),\n },\n [COMPONENT.COLLAPSIBLE_TRIGGER]: {\n argsSchema: argsOf(CollapsibleTriggerNode),\n description: descriptionOf(CollapsibleTriggerNode),\n },\n [COMPONENT.COLLAPSIBLE_CONTENT]: {\n argsSchema: argsOf(CollapsibleContentNode),\n description: descriptionOf(CollapsibleContentNode),\n },\n [COMPONENT.LOADER]: { argsSchema: argsOf(LoaderNode), description: descriptionOf(LoaderNode) },\n [COMPONENT.PROGRESS]: {\n argsSchema: argsOf(ProgressNode),\n description: descriptionOf(ProgressNode),\n },\n [COMPONENT.SKELETON]: {\n argsSchema: argsOf(SkeletonNode),\n description: descriptionOf(SkeletonNode),\n },\n [COMPONENT.INPUT_GROUP]: {\n argsSchema: argsOf(InputGroupNode),\n description: descriptionOf(InputGroupNode),\n },\n [COMPONENT.INPUT_GROUP_TEXT]: {\n argsSchema: argsOf(InputGroupTextNode),\n description: descriptionOf(InputGroupTextNode),\n },\n [COMPONENT.INPUT_GROUP_ADDON]: {\n argsSchema: argsOf(InputGroupAddonNode),\n description: descriptionOf(InputGroupAddonNode),\n },\n [COMPONENT.INPUT_GROUP_INPUT]: {\n argsSchema: argsOf(InputGroupInputNode),\n description: descriptionOf(InputGroupInputNode),\n },\n [COMPONENT.INPUT_GROUP_BUTTON]: {\n argsSchema: argsOf(InputGroupButtonNode),\n description: descriptionOf(InputGroupButtonNode),\n },\n [COMPONENT.INPUT_GROUP_TEXTAREA]: {\n argsSchema: argsOf(InputGroupTextareaNode),\n description: descriptionOf(InputGroupTextareaNode),\n },\n [COMPONENT.EACH]: { argsSchema: argsOf(EachNode), description: descriptionOf(EachNode) },\n [COMPONENT.IF]: { argsSchema: argsOf(IfNode), description: descriptionOf(IfNode) },\n};\n\nconst pebbleTemplateSchema = createTemplateSchema(PEBBLE_COMPONENT_SCHEMAS);\n\nexport const ComponentNode = pebbleTemplateSchema.ComponentNode;\nexport const Config = pebbleTemplateSchema.Node;\nexport type Config = z.infer<typeof pebbleTemplateSchema.Node>;\n\n/** Every element (non-string) node schema, keyed by its `type` literal. */\n/* eslint-disable @typescript-eslint/no-explicit-any -- recursive, registry-driven node schemas have no static type */\nexport const NodeSchemas: Record<string, z.ZodObject<any>> = Object.fromEntries(\n (ComponentNode.options as z.ZodObject<any>[]).map((schema) => [schema.shape.type.value, schema]),\n);\n/* eslint-enable @typescript-eslint/no-explicit-any */\n","import { z } from \"zod\";\nimport { COMPONENT } from \"@bonsai/constants\";\n\nimport { NodeSchemas } from \"./bonsai.schema\";\n\n// Editor-facing metadata for the Bonsai node schemas: nesting rules and\n// inspector UI hints. Kept in dedicated registries rather than `.meta()` so it\n// never leaks into `z.toJSONSchema` output (the OpenAPI document and the code\n// editor's JSON schema stay as they are).\n\n/**\n * Which children a node type may hold, and where it may be placed.\n * `each` / `if` are transparent: they are allowed wherever their children are,\n * and a child's `parent` rule is checked against the nearest element above them.\n */\nexport interface NodeRules {\n /** \"any\" (default), \"none\" (void / self-contained), or an allow-list of child types. */\n accepts: \"any\" | \"none\" | string[];\n /** Allow-list of direct parent types; absent means any parent. */\n parent?: string[];\n}\n\nexport type FieldControl =\n | \"text\"\n | \"textarea\"\n | \"select\"\n | \"switch\"\n | \"number\"\n | \"color\"\n | \"binding\"\n | \"json\";\n\nexport type FieldGroup = \"Content\" | \"Data\" | \"Style\" | \"Advanced\";\n\nexport interface FieldHints {\n label?: string;\n control?: FieldControl;\n group?: FieldGroup;\n placeholder?: string;\n}\n\nexport const nodeRules = z.registry<NodeRules>();\nexport const fieldHints = z.registry<FieldHints>();\n\nconst C = COMPONENT;\n\n// Components that render no children of their own (void elements throw when given any).\nconst SELF_CONTAINED = [\n C.INPUT,\n C.INPUT_GROUP_INPUT,\n C.INPUT_GROUP_TEXTAREA,\n C.TEXTAREA,\n C.IMAGE,\n C.SEPARATOR,\n C.CHECKBOX,\n C.SWITCH,\n C.OTP,\n C.SIGNATURE,\n C.CALENDAR,\n C.LOADER,\n C.SKELETON,\n C.PROGRESS,\n C.AVATAR,\n];\n\nconst TABLE_SECTIONS = [C.TABLE_HEADER, C.TABLE_BODY, C.TABLE_FOOTER];\nconst CARD_SLOTS = [C.CARD, C.CARD_HEADER, C.CARD_FOOTER];\nconst INPUT_GROUP_SLOTS = [C.INPUT_GROUP, C.INPUT_GROUP_ADDON];\n\nconst RULES: Partial<Record<string, Partial<NodeRules>>> = {\n [C.ACCORDION]: { accepts: [C.ACCORDION_ITEM] },\n [C.ACCORDION_ITEM]: { accepts: [C.ACCORDION_TRIGGER, C.ACCORDION_CONTENT], parent: [C.ACCORDION] },\n [C.ACCORDION_TRIGGER]: { parent: [C.ACCORDION_ITEM] },\n [C.ACCORDION_CONTENT]: { parent: [C.ACCORDION_ITEM] },\n [C.COLLAPSIBLE_TRIGGER]: { parent: [C.COLLAPSIBLE] },\n [C.COLLAPSIBLE_CONTENT]: { parent: [C.COLLAPSIBLE] },\n [C.TABLE]: { accepts: [...TABLE_SECTIONS, C.TABLE_CAPTION] },\n [C.TABLE_HEADER]: { accepts: [C.TABLE_ROW], parent: [C.TABLE] },\n [C.TABLE_BODY]: { accepts: [C.TABLE_ROW], parent: [C.TABLE] },\n [C.TABLE_FOOTER]: { accepts: [C.TABLE_ROW], parent: [C.TABLE] },\n [C.TABLE_CAPTION]: { parent: [C.TABLE] },\n [C.TABLE_ROW]: { accepts: [C.TABLE_CELL, C.TABLE_HEAD], parent: TABLE_SECTIONS },\n [C.TABLE_CELL]: { parent: [C.TABLE_ROW] },\n [C.TABLE_HEAD]: { parent: [C.TABLE_ROW] },\n [C.CARD_HEADER]: { parent: [C.CARD] },\n [C.CARD_CONTENT]: { parent: [C.CARD] },\n [C.CARD_FOOTER]: { parent: [C.CARD] },\n [C.CARD_TITLE]: { parent: CARD_SLOTS },\n [C.CARD_DESCRIPTION]: { parent: CARD_SLOTS },\n [C.CARD_ACTION]: { parent: CARD_SLOTS },\n [C.CARD_ICON]: { parent: CARD_SLOTS },\n [C.INPUT_GROUP_ADDON]: { parent: [C.INPUT_GROUP] },\n [C.INPUT_GROUP_TEXT]: { parent: INPUT_GROUP_SLOTS },\n [C.INPUT_GROUP_INPUT]: { parent: INPUT_GROUP_SLOTS },\n [C.INPUT_GROUP_BUTTON]: { parent: INPUT_GROUP_SLOTS },\n [C.INPUT_GROUP_TEXTAREA]: { parent: INPUT_GROUP_SLOTS },\n [C.OL]: { accepts: [C.LI] },\n [C.UL]: { accepts: [C.LI] },\n [C.LI]: { parent: [C.OL, C.UL] },\n};\n\nfor (const type of SELF_CONTAINED) RULES[type] = { ...RULES[type], accepts: \"none\" };\n\n// Inspector hints by arg name; `TYPE_FIELD_HINTS` refines a name for one type.\nconst FIELD_HINTS: Record<string, FieldHints> = {\n id: { label: \"Element ID\", group: \"Advanced\" },\n className: { label: \"Classes\", group: \"Advanced\" },\n onClick: { label: \"On click\", control: \"json\", group: \"Data\" },\n href: { label: \"Link URL\", group: \"Content\", placeholder: \"https://\" },\n src: { label: \"Image URL\", group: \"Content\", placeholder: \"https:// or {{binding}}\" },\n alt: { label: \"Alt text\", group: \"Content\" },\n placeholder: { label: \"Placeholder\", group: \"Content\" },\n fallback: { label: \"Fallback text\", group: \"Content\" },\n value: { label: \"Bound value\", control: \"binding\", group: \"Data\" },\n checked: { label: \"Bound value\", control: \"binding\", group: \"Data\" },\n selected: { label: \"Bound value\", control: \"binding\", group: \"Data\" },\n htmlFor: { label: \"For input (ID)\", group: \"Data\" },\n disabled: { label: \"Disabled\", group: \"Data\" },\n required: { label: \"Required\", group: \"Data\" },\n loading: { label: \"Loading\", group: \"Data\" },\n readonly: { label: \"Read only\", group: \"Data\" },\n items: { label: \"Repeat over\", control: \"binding\", group: \"Data\", placeholder: \"{{items}}\" },\n index: { label: \"Index alias\", group: \"Data\" },\n key: { label: \"Row key\", control: \"binding\", group: \"Advanced\" },\n condition: { label: \"Show when\", control: \"binding\", group: \"Data\", placeholder: \"{{flag}}\" },\n variant: { label: \"Variant\", group: \"Style\" },\n size: { label: \"Size\", group: \"Style\" },\n raised: { label: \"Shadow\", group: \"Style\" },\n extrude: { label: \"Extrude\", group: \"Style\" },\n rounded: { label: \"Corners\", group: \"Style\" },\n align: { label: \"Alignment\", group: \"Style\" },\n fill: { label: \"Colour\", group: \"Style\" },\n stacked: { label: \"Stacked spacing\", group: \"Style\" },\n animate: { label: \"Animate\", group: \"Style\" },\n buttonVariant: { label: \"Button variant\", group: \"Style\" },\n mode: { label: \"Mode\", group: \"Style\" },\n rows: { label: \"Rows\", group: \"Style\" },\n autosize: { label: \"Auto-size\", group: \"Style\" },\n type: { label: \"Button type\", group: \"Content\" },\n imageType: { label: \"Image format\", group: \"Advanced\" },\n containerClassName: { label: \"Container classes\", group: \"Advanced\" },\n canvasClassname: { label: \"Canvas classes\", group: \"Advanced\" },\n minLength: { label: \"Min length\", group: \"Advanced\" },\n maxLength: { label: \"Max length\", group: \"Advanced\" },\n hideWeekends: { label: \"Hide weekends\", group: \"Advanced\" },\n pins: { label: \"Pins\", control: \"json\", group: \"Advanced\" },\n zoom: { label: \"Zoom\", group: \"Advanced\" },\n pitch: { label: \"Pitch\", group: \"Advanced\" },\n fixed: { label: \"Fixed viewport\", group: \"Advanced\" },\n allowMultiple: { label: \"Allow multiple pins\", group: \"Advanced\" },\n icon: { label: \"Icon\", group: \"Advanced\" },\n pingIcon: { label: \"Ping icon\", control: \"json\", group: \"Advanced\" },\n iconProps: { label: \"Icon props\", control: \"json\", group: \"Advanced\" },\n badge: { label: \"Badge\", control: \"json\", group: \"Advanced\" },\n};\n\nconst TYPE_FIELD_HINTS: Record<string, Record<string, FieldHints>> = {\n [C.EACH]: { as: { label: \"Item alias\", group: \"Data\" } },\n [C.H]: { as: { label: \"Render as\", group: \"Advanced\" } },\n [C.P]: { as: { label: \"Render as\", group: \"Advanced\" } },\n [C.BUTTON]: { icon: { label: \"Icon-only size\", group: \"Style\" } },\n};\n\n/** The args object schema of a node type, unwrapped from `.optional()`. */\nexport function getArgsSchema(type: string): z.ZodObject | undefined {\n let args: z.ZodType | undefined = NodeSchemas[type]?.shape.args;\n while (args instanceof z.ZodOptional) args = args.unwrap() as z.ZodType;\n return args instanceof z.ZodObject ? args : undefined;\n}\n\nfor (const [type, schema] of Object.entries(NodeSchemas)) {\n nodeRules.add(schema, { accepts: \"any\", ...RULES[type] });\n const shape = getArgsSchema(type)?.shape ?? {};\n for (const [name, field] of Object.entries(shape)) {\n // Shared field instances (CoreArgs) receive identical hints from every type.\n fieldHints.add(field as z.ZodType, { ...FIELD_HINTS[name], ...TYPE_FIELD_HINTS[type]?.[name] });\n }\n}\n\n/** Nesting rules for a node type; unknown types accept anything. */\nexport function getNodeRules(type: string): NodeRules {\n const schema = NodeSchemas[type];\n return (schema && nodeRules.get(schema)) || { accepts: \"any\" };\n}\n"],"names":["ClickAction","z","path","CoreArgs","AArgs","HArgs","PArgs","OLArgs","ULArgs","LIArgs","DivArgs","SpanArgs","SeparatorArgs","AlertArgs","BadgeArgs","ButtonArgs","CardArgs","CardHeaderArgs","CardTitleArgs","CardDescriptionArgs","CardContentArgs","CardFooterArgs","CardActionArgs","CardIconArgs","CheckboxArgs","ImageArgs","OTPArgs","InputArgs","LabelArgs","SwitchArgs","TextareaArgs","InputGroupArgs","InputGroupTextArgs","InputGroupAddonArgs","InputGroupInputArgs","InputGroupButtonArgs","InputGroupTextareaArgs","SignatureArgs","CalendarArgs","TableArgs","TableHeaderArgs","TableBodyArgs","TableFooterArgs","TableHeadArgs","TableRowArgs","TableCellArgs","TableCaptionArgs","AccordionArgs","AccordionItemArgs","AccordionTriggerArgs","AccordionContentArgs","AvatarArgs","CollapsibleArgs","CollapsibleTriggerArgs","CollapsibleContentArgs","LoaderArgs","ProgressArgs","SkeletonArgs","Node","ComponentNode","CoreNode","DivNode","COMPONENT","ANode","HNode","PNode","OLNode","ULNode","LINode","SpanNode","SeparatorNode","AlertNode","BadgeNode","ButtonNode","CardNode","CheckboxNode","ImageNode","OTPNode","InputNode","LabelNode","SwitchNode","TextareaNode","SignatureNode","CalendarNode","CardHeaderNode","CardTitleNode","CardDescriptionNode","CardContentNode","CardFooterNode","CardActionNode","CardIconNode","TableNode","TableHeaderNode","TableBodyNode","TableFooterNode","TableHeadNode","TableRowNode","TableCellNode","TableCaptionNode","AccordionNode","AccordionItemNode","AccordionTriggerNode","AccordionContentNode","AvatarNode","CollapsibleNode","CollapsibleTriggerNode","CollapsibleContentNode","LoaderNode","ProgressNode","SkeletonNode","InputGroupNode","InputGroupTextNode","InputGroupAddonNode","InputGroupInputNode","InputGroupButtonNode","InputGroupTextareaNode","EachArgs","EachNode","IfArgs","IfNode","argsOf","node","descriptionOf","createTemplateSchema","components","localNode","componentNode","localCoreNode","nodeSchemas","type","argsSchema","description","PEBBLE_COMPONENT_SCHEMAS","pebbleTemplateSchema","Config","NodeSchemas","schema","nodeRules","fieldHints","C","SELF_CONTAINED","TABLE_SECTIONS","CARD_SLOTS","INPUT_GROUP_SLOTS","RULES","FIELD_HINTS","TYPE_FIELD_HINTS","getArgsSchema","args","shape","name","field","getNodeRules"],"mappings":"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"}
1
+ {"version":3,"file":"builder.meta-B7Y9M7Ab.js","sources":["../../../../library/schemas/src/bonsai.schema.ts","../../../../library/schemas/src/builder.meta.ts"],"sourcesContent":["import { COMPONENT } from \"@bonsai/constants\";\nimport { z } from \"zod\";\n\n// Declarative click behaviour: data, never code. The path is a value (not a key)\n// so dotted paths never become Mongo field names.\nconst ClickAction = z\n .object({\n set: z\n .string()\n .min(1, { message: \"Action `set` needs a store path\" })\n .refine((path) => !path.startsWith(\"{{\"), {\n message: \"Action `set` takes a plain store path (e.g. `pizzaChoice`), not a {{binding}}\",\n })\n .meta({ description: \"Store path to write, e.g. `pizzaChoice` or `row.selected` inside an `each`\" }),\n to: z\n .unknown()\n .meta({ description: \"Value to write (required; `null` clears): a literal or a `{{...}}` expression, evaluated against the state at click time\" }),\n })\n .strict()\n // Named so the OpenAPI spec emits one `$ref` instead of inlining it per component.\n .meta({ id: \"BonsaiClickAction\" });\n\n// Strict, and every `*Args` below extends it, so an arg no component declares (e.g.\n// `dangerouslySetInnerHTML`) is a validation error instead of being silently dropped.\nconst CoreArgs = z.object({\n id: z.string().optional().meta({ description: \"Unique identifier for the element\" }),\n className: z\n .string()\n .optional()\n .meta({ description: \"CSS classes to apply to the element\" }),\n onClick: z\n .array(ClickAction)\n .optional()\n .meta({ description: \"Store writes applied in order when the element is clicked\" }),\n}).strict();\n\nconst AArgs = CoreArgs.extend({\n href: z\n .string({ error: \"Link destination (href) is required\" })\n .min(1, { message: \"Link destination (href) cannot be empty\" }),\n});\n\nconst HArgs = CoreArgs.extend({\n variant: z\n .enum([\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"], {\n error:\n \"Invalid heading variant. Must be one of: h1, h2, h3, h4, h5, or h6\",\n })\n .optional()\n .meta({ description: \"Heading level variant (h1-h6)\" }),\n as: z\n .enum([\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"], {\n error:\n \"Invalid heading element type. Must be one of: h1, h2, h3, h4, h5, or h6\",\n })\n .optional()\n .meta({ description: \"Render as a different heading element\" }),\n}).optional();\n\nconst PArgs = CoreArgs.extend({\n size: z\n .enum([\"xs\", \"sm\", \"md\", \"lg\", \"xl\"], {\n error: \"Invalid paragraph size. Must be one of: xs, sm, md, lg, or xl\",\n })\n .optional()\n .meta({ description: \"Paragraph text size\" }),\n variant: z\n .enum([\"default\", \"muted\"])\n .optional()\n .meta({ description: \"Paragraph style variant\" }),\n as: z\n .enum([\"p\", \"div\", \"span\"])\n .optional()\n .meta({ description: \"Render as a different element\" }),\n}).optional();\n\nconst OLArgs = CoreArgs.optional();\nconst ULArgs = CoreArgs.optional();\nconst LIArgs = CoreArgs.optional();\n\nconst DivArgs = CoreArgs.optional();\n\nconst SpanArgs = CoreArgs.optional();\n\nconst SeparatorArgs = CoreArgs.optional();\n\nconst AlertArgs = CoreArgs.extend({\n variant: z\n .enum([\"default\", \"success\", \"warning\", \"destructive\"], {\n error: \"Invalid alert variant. Must be one of: default, success, warning, or destructive\",\n })\n .optional()\n .meta({ description: \"Alert style variant\" }),\n size: z\n .enum([\"default\", \"sm\", \"lg\"])\n .optional()\n .meta({ description: \"Alert size\" }),\n raised: z\n .enum([\"xs\", \"sm\", \"md\", \"lg\", \"xl\"])\n .optional()\n .meta({ description: \"Alert shadow elevation\" }),\n}).optional();\n\nconst BadgeArgs = CoreArgs.extend({\n variant: z\n .enum([\"default\", \"secondary\", \"destructive\", \"outline\", \"ghost\"], {\n error: \"Invalid badge variant. Must be one of: default, secondary, destructive, outline, or ghost\",\n })\n .optional()\n .meta({ description: \"Badge style variant\" }),\n size: z\n .enum([\"sm\", \"md\", \"lg\"])\n .optional()\n .meta({ description: \"Badge size\" }),\n raised: z\n .enum([\"xs\", \"sm\", \"md\", \"lg\"])\n .optional()\n .meta({ description: \"Badge shadow elevation\" }),\n extrude: z\n .enum([\"xs\", \"sm\", \"md\", \"lg\"])\n .optional()\n .meta({ description: \"Badge extrude elevation\" }),\n}).optional();\n\nconst ButtonArgs = CoreArgs.extend({\n variant: z\n .enum([\"default\", \"secondary\", \"outline\", \"destructive\", \"warning\", \"ghost\"], {\n error:\n \"Invalid button variant. Must be one of: default, secondary, outline, destructive, warning, or ghost\",\n })\n .optional()\n .meta({ description: \"Button style variant\" }),\n size: z\n .enum([\"xs\", \"sm\", \"md\", \"lg\"], {\n error: \"Invalid button size. Must be one of: xs, sm, md, or lg\",\n })\n .optional()\n .meta({ description: \"Button size\" }),\n icon: z\n .enum([\"xs\", \"sm\", \"md\", \"lg\"])\n .optional()\n .meta({ description: \"Icon-only button size\" }),\n raised: z\n .enum([\"xs\", \"sm\", \"md\", \"lg\", \"xl\"])\n .optional()\n .meta({ description: \"Button shadow elevation\" }),\n extrude: z\n .enum([\"xs\", \"sm\", \"md\", \"lg\", \"xl\"])\n .optional()\n .meta({ description: \"Button extrude elevation\" }),\n disabled: z\n .union([z.string(), z.boolean()])\n .optional()\n .meta({ description: \"Whether the button is disabled\" }),\n loading: z\n .union([z.string(), z.boolean()])\n .optional()\n .meta({ description: \"Whether to show a loading spinner\" }),\n type: z\n .enum([\"button\", \"submit\"], {\n error: \"Invalid button type. Must be either 'button' or 'submit'\",\n })\n .optional()\n .meta({ description: \"Button type attribute\" }),\n}).optional();\n\nconst CardArgs = CoreArgs.extend({\n size: z\n .enum([\"sm\", \"md\"])\n .optional()\n .meta({ description: \"Card size\" }),\n raised: z\n .enum([\"none\", \"xs\", \"sm\", \"md\", \"lg\", \"xl\"])\n .optional()\n .meta({ description: \"Card shadow elevation\" }),\n}).optional();\n\nconst CardHeaderArgs = CoreArgs.optional();\nconst CardTitleArgs = CoreArgs.optional();\nconst CardDescriptionArgs = CoreArgs.optional();\nconst CardContentArgs = CoreArgs.optional();\nconst CardFooterArgs = CoreArgs.optional();\nconst CardActionArgs = CoreArgs.optional();\nconst CardIconArgs = CoreArgs.optional();\n\nconst CheckboxArgs = CoreArgs.extend({\n checked: z\n .union([z.string(), z.boolean()])\n .optional()\n .meta({ description: \"Checkbox checked state\" }),\n disabled: z\n .union([z.string(), z.boolean()])\n .optional()\n .meta({ description: \"Whether the checkbox is disabled\" }),\n required: z\n .union([z.string(), z.boolean()])\n .optional()\n .meta({ description: \"Whether the checkbox must be checked\" }),\n size: z\n .enum([\"xs\", \"sm\", \"md\", \"lg\", \"xl\"])\n .optional()\n .meta({ description: \"Checkbox size\" }),\n}).strict();\n\nconst ImageArgs = CoreArgs.extend({\n src: z.union(\n [\n z.url({ error: \"Image source (src) must be a valid URL\" }),\n z.string().min(1, { message: \"Image source (src) cannot be empty\" }),\n ],\n {\n error: \"Image source (src) is required\",\n },\n ),\n alt: z\n .string()\n .optional()\n .default(\"unknown image url\")\n .meta({ description: \"Alternative text for the image\" }),\n}).strict();\n\nconst OTPArgs = CoreArgs.extend({\n value: z\n .union([z.string(), z.number()], {\n error: \"OTP value is required\",\n })\n .meta({ description: \"Current OTP value\" }),\n placeholder: z\n .string()\n .optional()\n .meta({ description: \"Placeholder text for the OTP input\" }),\n disabled: z\n .union([z.string(), z.boolean()])\n .optional()\n .meta({ description: \"Whether the OTP input is disabled\" }),\n containerClassName: z\n .string()\n .optional()\n .meta({ description: \"Custom CSS class for the OTP input container\" }),\n}).strict();\n\nconst InputArgs = CoreArgs.extend({\n type: z\n .enum([\"text\", \"email\", \"password\", \"number\"], {\n error: \"Invalid input type. Must be one of: text, email, password, or number\",\n })\n .optional()\n .meta({ description: \"Input type; a number input stores a number\" }),\n value: z\n .union([z.string(), z.number()], {\n error: \"Input value is required\",\n })\n .meta({ description: \"Current input value\" }),\n placeholder: z\n .string()\n .optional()\n .meta({ description: \"Placeholder text shown when empty\" }),\n disabled: z\n .union([z.string(), z.boolean()])\n .optional()\n .meta({ description: \"Whether the input is disabled\" }),\n}).strict();\n\nconst LabelArgs = CoreArgs.extend({\n htmlFor: z\n .string()\n .min(1, {\n message:\n \"Label 'for' attribute is required and must reference an input ID\",\n })\n .meta({ description: \"ID of the associated input element\" }),\n size: z\n .enum([\"xs\", \"sm\", \"md\", \"lg\", \"xl\"])\n .optional()\n .meta({ description: \"Label text size\" }),\n variant: z\n .enum([\"default\", \"underline\", \"destructive\"])\n .optional()\n .meta({ description: \"Label style variant\" }),\n}).strict();\n\nconst SwitchArgs = CoreArgs.extend({\n checked: z\n .union([z.string(), z.boolean()], {\n error: \"Switch checked state is required\",\n })\n .meta({ description: \"Current switch state\" }),\n disabled: z\n .union([z.string(), z.boolean()])\n .optional()\n .meta({ description: \"Whether the switch is disabled\" }),\n required: z\n .union([z.string(), z.boolean()])\n .optional()\n .meta({ description: \"Whether the switch must be turned on\" }),\n size: z\n .enum([\"sm\", \"md\", \"lg\"])\n .optional()\n .meta({ description: \"Switch size\" }),\n rounded: z\n .enum([\"none\", \"sm\", \"md\", \"lg\", \"full\"])\n .optional()\n .meta({ description: \"Switch border radius\" }),\n}).strict();\n\nconst TextareaArgs = CoreArgs.extend({\n value: z\n .string({ error: \"Textarea value is required\" })\n .meta({ description: \"Current textarea content\" }),\n placeholder: z\n .string()\n .optional()\n .meta({ description: \"Placeholder text shown when empty\" }),\n disabled: z\n .union([z.string(), z.boolean()])\n .optional()\n .meta({ description: \"Whether the textarea is disabled\" }),\n autosize: z\n .boolean()\n .optional()\n .meta({ description: \"Whether the textarea auto-resizes to fit content\" }),\n rows: z\n .number()\n .min(1, { message: \"Minimum number of rows is 1\" })\n .max(100, { message: \"Maximum number of rows is 100\" })\n .optional()\n .meta({ description: \"Number of visible text lines\" }),\n minLength: z\n .number()\n .min(0, { message: \"Minimum character length cannot be negative\" })\n .optional()\n .meta({ description: \"Minimum number of characters allowed\" }),\n maxLength: z\n .number()\n .max(10000, { message: \"Maximum character length cannot exceed 10,000\" })\n .optional()\n .meta({ description: \"Maximum number of characters allowed\" }),\n}).strict();\n\nconst InputGroupArgs = CoreArgs.optional();\n\nconst InputGroupTextArgs = CoreArgs.optional();\n\nconst InputGroupAddonArgs = CoreArgs.extend({\n align: z.enum([\"inline-start\", \"inline-end\", \"block-start\", \"block-end\"])\n .optional()\n .meta({ description: \"Alignment of the addon within the input group\" }),\n}).optional();\n\nconst InputGroupInputArgs = CoreArgs.extend({\n value: z.union([z.string(), z.number()], {\n error: \"Input value is required\",\n }).meta({ description: \"Current input value\" }),\n placeholder: z.string().optional().meta({ description: \"Placeholder text shown when empty\" }),\n disabled: z.union([z.string(), z.boolean()]).optional().meta({ description: \"Whether the input is disabled\" }),\n}).strict();\n\nconst InputGroupButtonArgs = CoreArgs.extend({\n variant: z.enum([\"default\", \"secondary\", \"outline\", \"destructive\", \"warning\", \"ghost\"]).optional(),\n size: z.enum([\"xs\", \"sm\", \"md\", \"lg\"]).optional(),\n}).optional();\n\nconst InputGroupTextareaArgs = CoreArgs.extend({\n value: z.string({ error: \"Textarea value is required\" }).meta({ description: \"Current textarea content\" }),\n placeholder: z.string().optional(),\n disabled: z.union([z.string(), z.boolean()]).optional(),\n}).strict();\n\nconst SignatureArgs = CoreArgs.extend({\n value: z\n .string()\n .nullable()\n .meta({ description: \"Current signature value (base64 or null if empty)\" }),\n canvasClassname: z\n .string()\n .optional()\n .meta({ description: \"Custom CSS class for the signature canvas\" }),\n imageType: z\n .enum([\"image/png\", \"image/jpeg\", \"image/webp\"])\n .optional()\n .meta({ description: \"Image format for the exported signature\" }),\n}).strict();\n\nconst CalendarArgs = CoreArgs.extend({\n selected: z\n .union([z.string(), z.date(), z.array(z.date())], {\n error:\n \"Invalid calendar selection. Must be a date string, Date object, or array of dates\",\n })\n .optional()\n .meta({ description: \"Currently selected date(s)\" }),\n buttonVariant: z\n .enum([\"default\", \"secondary\", \"outline\", \"destructive\", \"warning\", \"ghost\"])\n .optional()\n .meta({ description: \"Variant for calendar navigation buttons\" }),\n hideWeekends: z\n .boolean()\n .optional()\n .meta({ description: \"Whether to hide Saturday and Sunday columns\" }),\n}).optional();\n\nconst TableArgs = CoreArgs.optional();\nconst TableHeaderArgs = CoreArgs.optional();\nconst TableBodyArgs = CoreArgs.optional();\nconst TableFooterArgs = CoreArgs.optional();\nconst TableHeadArgs = CoreArgs.optional();\nconst TableRowArgs = CoreArgs.optional();\nconst TableCellArgs = CoreArgs.optional();\nconst TableCaptionArgs = CoreArgs.optional();\n\nconst AccordionArgs = CoreArgs.extend({\n variant: z\n .enum([\"default\", \"contained\", \"separated\"])\n .optional()\n .meta({ description: \"Accordion style variant\" }),\n raised: z\n .enum([\"xs\", \"sm\", \"md\", \"lg\"])\n .optional()\n .meta({ description: \"Accordion shadow elevation\" }),\n extrude: z\n .enum([\"xs\", \"sm\", \"md\", \"lg\"])\n .optional()\n .meta({ description: \"Accordion extrude elevation\" }),\n}).optional();\n\nconst AccordionItemArgs = CoreArgs.optional();\n\nconst AccordionTriggerArgs = CoreArgs.extend({\n disabled: z\n .union([z.string(), z.boolean()])\n .optional()\n .meta({ description: \"Whether the accordion trigger is disabled\" }),\n icon: z\n .any()\n .optional()\n .meta({ description: \"Custom icon component for the trigger\" }),\n}).optional();\n\nconst AccordionContentArgs = CoreArgs.optional();\n\nconst AvatarArgs = CoreArgs.extend({\n src: z\n .string()\n .optional()\n .meta({ description: \"Image source URL\" }),\n alt: z\n .string()\n .optional()\n .meta({ description: \"Alternative text for the avatar image\" }),\n size: z\n .enum([\"full\", \"sm\", \"md\", \"lg\", \"xl\"])\n .optional()\n .meta({ description: \"Avatar size\" }),\n rounded: z\n .enum([\"none\", \"sm\", \"md\", \"lg\", \"full\"])\n .optional()\n .meta({ description: \"Avatar border radius\" }),\n raised: z\n .enum([\"xs\", \"sm\", \"md\", \"lg\"])\n .optional()\n .meta({ description: \"Avatar shadow elevation\" }),\n fallback: z\n .string()\n .optional()\n .meta({ description: \"Fallback text or element when image fails to load\" }),\n badge: z\n .any()\n .optional()\n .meta({ description: \"Badge element to overlay on the avatar\" }),\n}).optional();\n\nconst CollapsibleArgs = CoreArgs.optional();\nconst CollapsibleTriggerArgs = CoreArgs.optional();\nconst CollapsibleContentArgs = CoreArgs.optional();\n\nconst LoaderArgs = CoreArgs.extend({\n variant: z\n .enum([\"spinner\", \"ping\"])\n .optional()\n .meta({ description: \"Loader animation variant\" }),\n fill: z\n .enum([\"default\", \"destructive\", \"warning\", \"pending\"])\n .optional()\n .meta({ description: \"Loader fill color\" }),\n size: z\n .enum([\"sm\", \"md\", \"lg\"])\n .optional()\n .meta({ description: \"Loader size\" }),\n icon: z\n .any()\n .optional()\n .meta({ description: \"Custom spinner icon component\" }),\n pingIcon: z\n .any()\n .optional()\n .meta({ description: \"Custom ping icon component\" }),\n iconProps: z\n .any()\n .optional()\n .meta({ description: \"Props to pass to the icon components\" }),\n}).optional();\n\nconst ProgressArgs = CoreArgs.extend({\n mode: z\n .enum([\"single\", \"multiple\"])\n .optional()\n .meta({ description: \"Progress display mode\" }),\n value: z\n .union([\n z.number().nullable(),\n z.array(\n z.object({\n name: z.string().optional(),\n value: z.number(),\n }),\n ),\n ])\n .optional()\n .meta({ description: \"Current progress value(s)\" }),\n size: z\n .enum([\"xs\", \"sm\", \"md\", \"lg\", \"xl\"])\n .optional()\n .meta({ description: \"Progress size\" }),\n raised: z\n .enum([\"default\", \"xs\", \"sm\", \"md\", \"lg\", \"xl\"])\n .optional()\n .meta({ description: \"Progress shadow elevation\" }),\n stacked: z\n .enum([\"default\", \"xs\", \"sm\", \"md\", \"lg\", \"xl\"])\n .optional()\n .meta({ description: \"Progress stacked spacing\" }),\n}).optional();\n\nconst SkeletonArgs = CoreArgs.extend({\n variant: z\n .enum([\"circle\", \"square\", \"default\", \"text\"])\n .optional()\n .meta({ description: \"Skeleton shape variant\" }),\n animate: z\n .boolean()\n .optional()\n .meta({ description: \"Whether to animate the skeleton\" }),\n}).optional();\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- recursive, registry-driven node schemas have no static type\nconst Node: z.ZodType<any> = z.lazy(() => z.union([z.string(), ComponentNode]));\n\nconst CoreNode = z.object({\n children: z\n .array(Node)\n .optional()\n .meta({ description: \"Child nodes to render inside this element\" }),\n});\n\nconst DivNode = CoreNode.extend({\n type: z.literal(COMPONENT.DIV),\n args: DivArgs,\n}).meta({ description: \"Container div element for grouping content\" });\n\nconst ANode = CoreNode.extend({\n type: z.literal(COMPONENT.A),\n args: AArgs,\n}).meta({ description: \"Anchor/link element\" });\n\nconst HNode = CoreNode.extend({\n type: z.literal(COMPONENT.H),\n args: HArgs,\n}).meta({ description: \"Heading element (h1-h6)\" });\n\nconst PNode = CoreNode.extend({\n type: z.literal(COMPONENT.P),\n args: PArgs,\n}).meta({ description: \"Paragraph text element\" });\n\nconst OLNode = CoreNode.extend({\n type: z.literal(COMPONENT.OL),\n args: OLArgs,\n}).meta({ description: \"Ordered list element\" });\n\nconst ULNode = CoreNode.extend({\n type: z.literal(COMPONENT.UL),\n args: ULArgs,\n}).meta({ description: \"Unordered list element\" });\n\nconst LINode = CoreNode.extend({\n type: z.literal(COMPONENT.LI),\n args: LIArgs,\n}).meta({ description: \"List item element\" });\n\nconst SpanNode = CoreNode.extend({\n type: z.literal(COMPONENT.SPAN),\n args: SpanArgs,\n}).meta({ description: \"Inline span element\" });\n\nconst SeparatorNode = CoreNode.extend({\n type: z.literal(COMPONENT.SEPARATOR),\n args: SeparatorArgs,\n}).meta({ description: \"Horizontal separator / divider element\" });\n\nconst AlertNode = CoreNode.extend({\n type: z.literal(COMPONENT.ALERT),\n args: AlertArgs,\n}).meta({ description: \"Alert message box\" });\n\nconst BadgeNode = CoreNode.extend({\n type: z.literal(COMPONENT.BADGE),\n args: BadgeArgs,\n}).meta({ description: \"Badge/status indicator\" });\n\nconst ButtonNode = CoreNode.extend({\n type: z.literal(COMPONENT.BUTTON),\n args: ButtonArgs,\n}).meta({ description: \"Clickable button element\" });\n\nconst CardNode = CoreNode.extend({\n type: z.literal(COMPONENT.CARD),\n args: CardArgs,\n}).meta({ description: \"Card container element\" });\n\nconst CheckboxNode = CoreNode.extend({\n type: z.literal(COMPONENT.CHECKBOX),\n args: CheckboxArgs,\n}).meta({ description: \"Checkbox input element\" });\n\nconst ImageNode = CoreNode.extend({\n type: z.literal(COMPONENT.IMAGE),\n args: ImageArgs,\n}).meta({ description: \"Image element\" });\n\nconst OTPNode = CoreNode.extend({\n type: z.literal(COMPONENT.OTP),\n args: OTPArgs,\n}).meta({ description: \"One-time password (OTP) input\" });\n\nconst InputNode = CoreNode.extend({\n type: z.literal(COMPONENT.INPUT),\n args: InputArgs,\n}).meta({ description: \"Text input element\" });\n\nconst LabelNode = CoreNode.extend({\n type: z.literal(COMPONENT.LABEL),\n args: LabelArgs,\n}).meta({ description: \"Form label element\" });\n\nconst SwitchNode = CoreNode.extend({\n type: z.literal(COMPONENT.SWITCH),\n args: SwitchArgs,\n}).meta({ description: \"Toggle switch element\" });\n\nconst TextareaNode = CoreNode.extend({\n type: z.literal(COMPONENT.TEXTAREA),\n args: TextareaArgs,\n}).meta({ description: \"Multi-line text input\" });\n\nconst SignatureNode = CoreNode.extend({\n type: z.literal(COMPONENT.SIGNATURE),\n args: SignatureArgs,\n}).meta({ description: \"Signature pad input\" });\n\nconst CalendarNode = CoreNode.extend({\n type: z.literal(COMPONENT.CALENDAR),\n args: CalendarArgs,\n}).meta({ description: \"Date picker calendar\" });\n\nconst CardHeaderNode = CoreNode.extend({\n type: z.literal(COMPONENT.CARD_HEADER),\n args: CardHeaderArgs,\n}).meta({ description: \"Card header container\" });\n\nconst CardTitleNode = CoreNode.extend({\n type: z.literal(COMPONENT.CARD_TITLE),\n args: CardTitleArgs,\n}).meta({ description: \"Card title element\" });\n\nconst CardDescriptionNode = CoreNode.extend({\n type: z.literal(COMPONENT.CARD_DESCRIPTION),\n args: CardDescriptionArgs,\n}).meta({ description: \"Card description element\" });\n\nconst CardContentNode = CoreNode.extend({\n type: z.literal(COMPONENT.CARD_CONTENT),\n args: CardContentArgs,\n}).meta({ description: \"Card content body\" });\n\nconst CardFooterNode = CoreNode.extend({\n type: z.literal(COMPONENT.CARD_FOOTER),\n args: CardFooterArgs,\n}).meta({ description: \"Card footer container\" });\n\nconst CardActionNode = CoreNode.extend({\n type: z.literal(COMPONENT.CARD_ACTION),\n args: CardActionArgs,\n}).meta({ description: \"Card action slot\" });\n\nconst CardIconNode = CoreNode.extend({\n type: z.literal(COMPONENT.CARD_ICON),\n args: CardIconArgs,\n}).meta({ description: \"Card icon slot\" });\n\nconst TableNode = CoreNode.extend({\n type: z.literal(COMPONENT.TABLE),\n args: TableArgs,\n}).meta({ description: \"Table container\" });\n\nconst TableHeaderNode = CoreNode.extend({\n type: z.literal(COMPONENT.TABLE_HEADER),\n args: TableHeaderArgs,\n}).meta({ description: \"Table header section\" });\n\nconst TableBodyNode = CoreNode.extend({\n type: z.literal(COMPONENT.TABLE_BODY),\n args: TableBodyArgs,\n}).meta({ description: \"Table body section\" });\n\nconst TableFooterNode = CoreNode.extend({\n type: z.literal(COMPONENT.TABLE_FOOTER),\n args: TableFooterArgs,\n}).meta({ description: \"Table footer section\" });\n\nconst TableHeadNode = CoreNode.extend({\n type: z.literal(COMPONENT.TABLE_HEAD),\n args: TableHeadArgs,\n}).meta({ description: \"Table header cell\" });\n\nconst TableRowNode = CoreNode.extend({\n type: z.literal(COMPONENT.TABLE_ROW),\n args: TableRowArgs,\n}).meta({ description: \"Table row\" });\n\nconst TableCellNode = CoreNode.extend({\n type: z.literal(COMPONENT.TABLE_CELL),\n args: TableCellArgs,\n}).meta({ description: \"Table data cell\" });\n\nconst TableCaptionNode = CoreNode.extend({\n type: z.literal(COMPONENT.TABLE_CAPTION),\n args: TableCaptionArgs,\n}).meta({ description: \"Table caption\" });\n\nconst AccordionNode = CoreNode.extend({\n type: z.literal(COMPONENT.ACCORDION),\n args: AccordionArgs,\n}).meta({ description: \"Accordion container\" });\n\nconst AccordionItemNode = CoreNode.extend({\n type: z.literal(COMPONENT.ACCORDION_ITEM),\n args: AccordionItemArgs,\n}).meta({ description: \"Accordion item\" });\n\nconst AccordionTriggerNode = CoreNode.extend({\n type: z.literal(COMPONENT.ACCORDION_TRIGGER),\n args: AccordionTriggerArgs,\n}).meta({ description: \"Accordion trigger\" });\n\nconst AccordionContentNode = CoreNode.extend({\n type: z.literal(COMPONENT.ACCORDION_CONTENT),\n args: AccordionContentArgs,\n}).meta({ description: \"Accordion content panel\" });\n\nconst AvatarNode = CoreNode.extend({\n type: z.literal(COMPONENT.AVATAR),\n args: AvatarArgs,\n}).meta({ description: \"Avatar image or fallback\" });\n\nconst CollapsibleNode = CoreNode.extend({\n type: z.literal(COMPONENT.COLLAPSIBLE),\n args: CollapsibleArgs,\n}).meta({ description: \"Collapsible container\" });\n\nconst CollapsibleTriggerNode = CoreNode.extend({\n type: z.literal(COMPONENT.COLLAPSIBLE_TRIGGER),\n args: CollapsibleTriggerArgs,\n}).meta({ description: \"Collapsible trigger\" });\n\nconst CollapsibleContentNode = CoreNode.extend({\n type: z.literal(COMPONENT.COLLAPSIBLE_CONTENT),\n args: CollapsibleContentArgs,\n}).meta({ description: \"Collapsible content panel\" });\n\nconst LoaderNode = CoreNode.extend({\n type: z.literal(COMPONENT.LOADER),\n args: LoaderArgs,\n}).meta({ description: \"Loading spinner indicator\" });\n\nconst ProgressNode = CoreNode.extend({\n type: z.literal(COMPONENT.PROGRESS),\n args: ProgressArgs,\n}).meta({ description: \"Progress bar indicator\" });\n\nconst SkeletonNode = CoreNode.extend({\n type: z.literal(COMPONENT.SKELETON),\n args: SkeletonArgs,\n}).meta({ description: \"Skeleton loading placeholder\" });\n\nconst InputGroupNode = CoreNode.extend({\n type: z.literal(COMPONENT.INPUT_GROUP),\n args: InputGroupArgs,\n}).meta({ description: \"Input group container\" });\n\nconst InputGroupTextNode = CoreNode.extend({\n type: z.literal(COMPONENT.INPUT_GROUP_TEXT),\n args: InputGroupTextArgs,\n}).meta({ description: \"Text element within input group\" });\n\nconst InputGroupAddonNode = CoreNode.extend({\n type: z.literal(COMPONENT.INPUT_GROUP_ADDON),\n args: InputGroupAddonArgs,\n}).meta({ description: \"Addon container within input group\" });\n\nconst InputGroupInputNode = CoreNode.extend({\n type: z.literal(COMPONENT.INPUT_GROUP_INPUT),\n args: InputGroupInputArgs,\n}).meta({ description: \"Input element within input group\" });\n\nconst InputGroupButtonNode = CoreNode.extend({\n type: z.literal(COMPONENT.INPUT_GROUP_BUTTON),\n args: InputGroupButtonArgs,\n}).meta({ description: \"Button element within input group\" });\n\nconst InputGroupTextareaNode = CoreNode.extend({\n type: z.literal(COMPONENT.INPUT_GROUP_TEXTAREA),\n args: InputGroupTextareaArgs,\n}).meta({ description: \"Textarea element within input group\" });\n\nconst EachArgs = z\n .object({\n items: z\n .string({ error: \"each.items is required\" })\n .min(1, { message: \"each.items cannot be empty\" })\n .meta({\n description:\n 'Binding path to the array to iterate, e.g. \"{{applicants}}\". Must be a plain path (not a computed/filtered expression) so each row maps back to a real store index for two-way binding.',\n }),\n as: z\n .string({ error: \"each.as is required\" })\n .min(1, { message: \"each.as cannot be empty\" })\n .meta({ description: \"Alias name bound to the current item, e.g. \\\"applicant\\\"\" }),\n index: z\n .string()\n .optional()\n .meta({ description: \"Alias name bound to the current numeric index\" }),\n key: z\n .string()\n .optional()\n .meta({\n description:\n 'Binding expression used as the React key per row, e.g. \"{{applicant.id}}\". Falls back to the row index when omitted.',\n }),\n })\n .strict();\n\nconst EachNode = CoreNode.extend({\n type: z.literal(COMPONENT.EACH),\n args: EachArgs,\n}).meta({ description: \"Repeats its children once per item in a bound array\" });\n\nconst IfArgs = z\n .object({\n condition: z\n .string({ error: \"if.condition is required\" })\n .min(1, { message: \"if.condition cannot be empty\" })\n .meta({ description: \"Binding expression; children render only when it evaluates truthy\" }),\n })\n .strict();\n\nconst IfNode = CoreNode.extend({\n type: z.literal(COMPONENT.IF),\n args: IfArgs,\n}).meta({ description: \"Conditionally renders its children based on a bound expression\" });\n\n/* eslint-disable @typescript-eslint/no-explicit-any -- recursive, registry-driven node schemas have no static type */\n\n// Extracts the `args` sub-schema and description back out of an already-built `*Node`\n// schema, so the registry-driven builder below can reuse every hand-written node\n// definition above without retyping its args schema or description.\nfunction argsOf(node: z.ZodType<any>): z.ZodType<any> {\n return (node as unknown as { shape: { args: z.ZodType<any> } }).shape.args;\n}\n\nfunction descriptionOf(node: z.ZodType<any>): string | undefined {\n return (node.meta() as { description?: string } | undefined)?.description;\n}\n\nexport interface TemplateSchemaComponent {\n argsSchema: z.ZodType<any>;\n description?: string;\n}\n\nexport interface GeneratedTemplateSchema {\n Node: z.ZodType<any>;\n ComponentNode: z.ZodDiscriminatedUnion<any>;\n}\n\n/**\n * Builds the same `CoreNode.extend({ type, args }).meta({ description })` shape used\n * above, from a registry's component list rather than a hand-written literal — the\n * union stops being static; it does not stop existing.\n */\nexport function createTemplateSchema(\n components: Record<string, TemplateSchemaComponent>,\n): GeneratedTemplateSchema {\n if (Object.keys(components).length === 0) {\n throw new Error(\"createTemplateSchema: registry must declare at least one component\");\n }\n\n // Self-contained recursion (its own Node/CoreNode), not the module-level ones above —\n // those exist only so PEBBLE_COMPONENT_SCHEMAS can source args/descriptions from the\n // hand-written *Node consts. Reusing the module Node here would make `Config` a second,\n // structurally-identical-but-distinct lazy wrapper, which breaks zod-openapi's schema\n // dedup/naming (it stops emitting a named `BonsaiConfig` $ref and inlines it instead).\n const localNode: z.ZodType<any> = z.lazy(() => z.union([z.string(), componentNode]));\n const localCoreNode = z.object({\n children: z\n .array(localNode)\n .optional()\n .meta({ description: \"Child nodes to render inside this element\" }),\n });\n\n const nodeSchemas = Object.entries(components).map(([type, { argsSchema, description }]) => {\n const node = localCoreNode.extend({\n type: z.literal(type),\n args: argsSchema,\n });\n return description ? node.meta({ description }) : node;\n });\n const componentNode: z.ZodDiscriminatedUnion<any> = z.discriminatedUnion(\n \"type\",\n nodeSchemas as [(typeof nodeSchemas)[number], ...(typeof nodeSchemas)[number][]],\n );\n return { Node: localNode, ComponentNode: componentNode };\n}\n\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nexport const PEBBLE_COMPONENT_SCHEMAS: Record<string, TemplateSchemaComponent> = {\n [COMPONENT.DIV]: { argsSchema: argsOf(DivNode), description: descriptionOf(DivNode) },\n [COMPONENT.A]: { argsSchema: argsOf(ANode), description: descriptionOf(ANode) },\n [COMPONENT.H]: { argsSchema: argsOf(HNode), description: descriptionOf(HNode) },\n [COMPONENT.P]: { argsSchema: argsOf(PNode), description: descriptionOf(PNode) },\n [COMPONENT.OL]: { argsSchema: argsOf(OLNode), description: descriptionOf(OLNode) },\n [COMPONENT.UL]: { argsSchema: argsOf(ULNode), description: descriptionOf(ULNode) },\n [COMPONENT.LI]: { argsSchema: argsOf(LINode), description: descriptionOf(LINode) },\n [COMPONENT.SPAN]: { argsSchema: argsOf(SpanNode), description: descriptionOf(SpanNode) },\n [COMPONENT.SEPARATOR]: {\n argsSchema: argsOf(SeparatorNode),\n description: descriptionOf(SeparatorNode),\n },\n [COMPONENT.ALERT]: { argsSchema: argsOf(AlertNode), description: descriptionOf(AlertNode) },\n [COMPONENT.BADGE]: { argsSchema: argsOf(BadgeNode), description: descriptionOf(BadgeNode) },\n [COMPONENT.BUTTON]: { argsSchema: argsOf(ButtonNode), description: descriptionOf(ButtonNode) },\n [COMPONENT.CARD]: { argsSchema: argsOf(CardNode), description: descriptionOf(CardNode) },\n [COMPONENT.CARD_HEADER]: {\n argsSchema: argsOf(CardHeaderNode),\n description: descriptionOf(CardHeaderNode),\n },\n [COMPONENT.CARD_TITLE]: {\n argsSchema: argsOf(CardTitleNode),\n description: descriptionOf(CardTitleNode),\n },\n [COMPONENT.CARD_DESCRIPTION]: {\n argsSchema: argsOf(CardDescriptionNode),\n description: descriptionOf(CardDescriptionNode),\n },\n [COMPONENT.CARD_CONTENT]: {\n argsSchema: argsOf(CardContentNode),\n description: descriptionOf(CardContentNode),\n },\n [COMPONENT.CARD_FOOTER]: {\n argsSchema: argsOf(CardFooterNode),\n description: descriptionOf(CardFooterNode),\n },\n [COMPONENT.CARD_ACTION]: {\n argsSchema: argsOf(CardActionNode),\n description: descriptionOf(CardActionNode),\n },\n [COMPONENT.CARD_ICON]: {\n argsSchema: argsOf(CardIconNode),\n description: descriptionOf(CardIconNode),\n },\n [COMPONENT.CHECKBOX]: {\n argsSchema: argsOf(CheckboxNode),\n description: descriptionOf(CheckboxNode),\n },\n [COMPONENT.IMAGE]: { argsSchema: argsOf(ImageNode), description: descriptionOf(ImageNode) },\n [COMPONENT.OTP]: { argsSchema: argsOf(OTPNode), description: descriptionOf(OTPNode) },\n [COMPONENT.INPUT]: { argsSchema: argsOf(InputNode), description: descriptionOf(InputNode) },\n [COMPONENT.LABEL]: { argsSchema: argsOf(LabelNode), description: descriptionOf(LabelNode) },\n [COMPONENT.SWITCH]: { argsSchema: argsOf(SwitchNode), description: descriptionOf(SwitchNode) },\n [COMPONENT.TEXTAREA]: {\n argsSchema: argsOf(TextareaNode),\n description: descriptionOf(TextareaNode),\n },\n [COMPONENT.SIGNATURE]: {\n argsSchema: argsOf(SignatureNode),\n description: descriptionOf(SignatureNode),\n },\n [COMPONENT.CALENDAR]: {\n argsSchema: argsOf(CalendarNode),\n description: descriptionOf(CalendarNode),\n },\n [COMPONENT.TABLE]: { argsSchema: argsOf(TableNode), description: descriptionOf(TableNode) },\n [COMPONENT.TABLE_HEADER]: {\n argsSchema: argsOf(TableHeaderNode),\n description: descriptionOf(TableHeaderNode),\n },\n [COMPONENT.TABLE_BODY]: {\n argsSchema: argsOf(TableBodyNode),\n description: descriptionOf(TableBodyNode),\n },\n [COMPONENT.TABLE_FOOTER]: {\n argsSchema: argsOf(TableFooterNode),\n description: descriptionOf(TableFooterNode),\n },\n [COMPONENT.TABLE_HEAD]: {\n argsSchema: argsOf(TableHeadNode),\n description: descriptionOf(TableHeadNode),\n },\n [COMPONENT.TABLE_ROW]: {\n argsSchema: argsOf(TableRowNode),\n description: descriptionOf(TableRowNode),\n },\n [COMPONENT.TABLE_CELL]: {\n argsSchema: argsOf(TableCellNode),\n description: descriptionOf(TableCellNode),\n },\n [COMPONENT.TABLE_CAPTION]: {\n argsSchema: argsOf(TableCaptionNode),\n description: descriptionOf(TableCaptionNode),\n },\n [COMPONENT.ACCORDION]: {\n argsSchema: argsOf(AccordionNode),\n description: descriptionOf(AccordionNode),\n },\n [COMPONENT.ACCORDION_ITEM]: {\n argsSchema: argsOf(AccordionItemNode),\n description: descriptionOf(AccordionItemNode),\n },\n [COMPONENT.ACCORDION_TRIGGER]: {\n argsSchema: argsOf(AccordionTriggerNode),\n description: descriptionOf(AccordionTriggerNode),\n },\n [COMPONENT.ACCORDION_CONTENT]: {\n argsSchema: argsOf(AccordionContentNode),\n description: descriptionOf(AccordionContentNode),\n },\n [COMPONENT.AVATAR]: { argsSchema: argsOf(AvatarNode), description: descriptionOf(AvatarNode) },\n [COMPONENT.COLLAPSIBLE]: {\n argsSchema: argsOf(CollapsibleNode),\n description: descriptionOf(CollapsibleNode),\n },\n [COMPONENT.COLLAPSIBLE_TRIGGER]: {\n argsSchema: argsOf(CollapsibleTriggerNode),\n description: descriptionOf(CollapsibleTriggerNode),\n },\n [COMPONENT.COLLAPSIBLE_CONTENT]: {\n argsSchema: argsOf(CollapsibleContentNode),\n description: descriptionOf(CollapsibleContentNode),\n },\n [COMPONENT.LOADER]: { argsSchema: argsOf(LoaderNode), description: descriptionOf(LoaderNode) },\n [COMPONENT.PROGRESS]: {\n argsSchema: argsOf(ProgressNode),\n description: descriptionOf(ProgressNode),\n },\n [COMPONENT.SKELETON]: {\n argsSchema: argsOf(SkeletonNode),\n description: descriptionOf(SkeletonNode),\n },\n [COMPONENT.INPUT_GROUP]: {\n argsSchema: argsOf(InputGroupNode),\n description: descriptionOf(InputGroupNode),\n },\n [COMPONENT.INPUT_GROUP_TEXT]: {\n argsSchema: argsOf(InputGroupTextNode),\n description: descriptionOf(InputGroupTextNode),\n },\n [COMPONENT.INPUT_GROUP_ADDON]: {\n argsSchema: argsOf(InputGroupAddonNode),\n description: descriptionOf(InputGroupAddonNode),\n },\n [COMPONENT.INPUT_GROUP_INPUT]: {\n argsSchema: argsOf(InputGroupInputNode),\n description: descriptionOf(InputGroupInputNode),\n },\n [COMPONENT.INPUT_GROUP_BUTTON]: {\n argsSchema: argsOf(InputGroupButtonNode),\n description: descriptionOf(InputGroupButtonNode),\n },\n [COMPONENT.INPUT_GROUP_TEXTAREA]: {\n argsSchema: argsOf(InputGroupTextareaNode),\n description: descriptionOf(InputGroupTextareaNode),\n },\n [COMPONENT.EACH]: { argsSchema: argsOf(EachNode), description: descriptionOf(EachNode) },\n [COMPONENT.IF]: { argsSchema: argsOf(IfNode), description: descriptionOf(IfNode) },\n};\n\nconst pebbleTemplateSchema = createTemplateSchema(PEBBLE_COMPONENT_SCHEMAS);\n\nexport const ComponentNode = pebbleTemplateSchema.ComponentNode;\nexport const Config = pebbleTemplateSchema.Node;\nexport type Config = z.infer<typeof pebbleTemplateSchema.Node>;\n\n/** Every element (non-string) node schema, keyed by its `type` literal. */\n/* eslint-disable @typescript-eslint/no-explicit-any -- recursive, registry-driven node schemas have no static type */\nexport const NodeSchemas: Record<string, z.ZodObject<any>> = Object.fromEntries(\n (ComponentNode.options as z.ZodObject<any>[]).map((schema) => [schema.shape.type.value, schema]),\n);\n/* eslint-enable @typescript-eslint/no-explicit-any */\n","import { z } from \"zod\";\nimport { COMPONENT } from \"@bonsai/constants\";\n\nimport { NodeSchemas } from \"./bonsai.schema\";\n\n// Editor-facing metadata for the Bonsai node schemas: nesting rules and\n// inspector UI hints. Kept in dedicated registries rather than `.meta()` so it\n// never leaks into `z.toJSONSchema` output (the OpenAPI document and the code\n// editor's JSON schema stay as they are).\n\n/**\n * Which children a node type may hold, and where it may be placed.\n * `each` / `if` are transparent: they are allowed wherever their children are,\n * and a child's `parent` rule is checked against the nearest element above them.\n */\nexport interface NodeRules {\n /** \"any\" (default), \"none\" (void / self-contained), or an allow-list of child types. */\n accepts: \"any\" | \"none\" | string[];\n /** Allow-list of direct parent types; absent means any parent. */\n parent?: string[];\n}\n\nexport type FieldControl =\n | \"text\"\n | \"textarea\"\n | \"select\"\n | \"switch\"\n | \"number\"\n | \"color\"\n | \"binding\"\n | \"json\";\n\nexport type FieldGroup = \"Content\" | \"Data\" | \"Style\" | \"Advanced\";\n\nexport interface FieldHints {\n label?: string;\n control?: FieldControl;\n group?: FieldGroup;\n placeholder?: string;\n}\n\nexport const nodeRules = z.registry<NodeRules>();\nexport const fieldHints = z.registry<FieldHints>();\n\nconst C = COMPONENT;\n\n// Components that render no children of their own (void elements throw when given any).\nconst SELF_CONTAINED = [\n C.INPUT,\n C.INPUT_GROUP_INPUT,\n C.INPUT_GROUP_TEXTAREA,\n C.TEXTAREA,\n C.IMAGE,\n C.SEPARATOR,\n C.CHECKBOX,\n C.SWITCH,\n C.OTP,\n C.SIGNATURE,\n C.CALENDAR,\n C.LOADER,\n C.SKELETON,\n C.PROGRESS,\n C.AVATAR,\n];\n\nconst TABLE_SECTIONS = [C.TABLE_HEADER, C.TABLE_BODY, C.TABLE_FOOTER];\nconst CARD_SLOTS = [C.CARD, C.CARD_HEADER, C.CARD_FOOTER];\nconst INPUT_GROUP_SLOTS = [C.INPUT_GROUP, C.INPUT_GROUP_ADDON];\n\nconst RULES: Partial<Record<string, Partial<NodeRules>>> = {\n [C.ACCORDION]: { accepts: [C.ACCORDION_ITEM] },\n [C.ACCORDION_ITEM]: { accepts: [C.ACCORDION_TRIGGER, C.ACCORDION_CONTENT], parent: [C.ACCORDION] },\n [C.ACCORDION_TRIGGER]: { parent: [C.ACCORDION_ITEM] },\n [C.ACCORDION_CONTENT]: { parent: [C.ACCORDION_ITEM] },\n [C.COLLAPSIBLE_TRIGGER]: { parent: [C.COLLAPSIBLE] },\n [C.COLLAPSIBLE_CONTENT]: { parent: [C.COLLAPSIBLE] },\n [C.TABLE]: { accepts: [...TABLE_SECTIONS, C.TABLE_CAPTION] },\n [C.TABLE_HEADER]: { accepts: [C.TABLE_ROW], parent: [C.TABLE] },\n [C.TABLE_BODY]: { accepts: [C.TABLE_ROW], parent: [C.TABLE] },\n [C.TABLE_FOOTER]: { accepts: [C.TABLE_ROW], parent: [C.TABLE] },\n [C.TABLE_CAPTION]: { parent: [C.TABLE] },\n [C.TABLE_ROW]: { accepts: [C.TABLE_CELL, C.TABLE_HEAD], parent: TABLE_SECTIONS },\n [C.TABLE_CELL]: { parent: [C.TABLE_ROW] },\n [C.TABLE_HEAD]: { parent: [C.TABLE_ROW] },\n [C.CARD_HEADER]: { parent: [C.CARD] },\n [C.CARD_CONTENT]: { parent: [C.CARD] },\n [C.CARD_FOOTER]: { parent: [C.CARD] },\n [C.CARD_TITLE]: { parent: CARD_SLOTS },\n [C.CARD_DESCRIPTION]: { parent: CARD_SLOTS },\n [C.CARD_ACTION]: { parent: CARD_SLOTS },\n [C.CARD_ICON]: { parent: CARD_SLOTS },\n [C.INPUT_GROUP_ADDON]: { parent: [C.INPUT_GROUP] },\n [C.INPUT_GROUP_TEXT]: { parent: INPUT_GROUP_SLOTS },\n [C.INPUT_GROUP_INPUT]: { parent: INPUT_GROUP_SLOTS },\n [C.INPUT_GROUP_BUTTON]: { parent: INPUT_GROUP_SLOTS },\n [C.INPUT_GROUP_TEXTAREA]: { parent: INPUT_GROUP_SLOTS },\n [C.OL]: { accepts: [C.LI] },\n [C.UL]: { accepts: [C.LI] },\n [C.LI]: { parent: [C.OL, C.UL] },\n};\n\nfor (const type of SELF_CONTAINED) RULES[type] = { ...RULES[type], accepts: \"none\" };\n\n// Inspector hints by arg name; `TYPE_FIELD_HINTS` refines a name for one type.\nconst FIELD_HINTS: Record<string, FieldHints> = {\n id: { label: \"Element ID\", group: \"Advanced\" },\n className: { label: \"Classes\", group: \"Advanced\" },\n onClick: { label: \"On click\", control: \"json\", group: \"Data\" },\n href: { label: \"Link URL\", group: \"Content\", placeholder: \"https://\" },\n src: { label: \"Image URL\", group: \"Content\", placeholder: \"https:// or {{binding}}\" },\n alt: { label: \"Alt text\", group: \"Content\" },\n placeholder: { label: \"Placeholder\", group: \"Content\" },\n fallback: { label: \"Fallback text\", group: \"Content\" },\n value: { label: \"Bound value\", control: \"binding\", group: \"Data\" },\n checked: { label: \"Bound value\", control: \"binding\", group: \"Data\" },\n selected: { label: \"Bound value\", control: \"binding\", group: \"Data\" },\n htmlFor: { label: \"For input (ID)\", group: \"Data\" },\n disabled: { label: \"Disabled\", group: \"Data\" },\n required: { label: \"Required\", group: \"Data\" },\n loading: { label: \"Loading\", group: \"Data\" },\n readonly: { label: \"Read only\", group: \"Data\" },\n items: { label: \"Repeat over\", control: \"binding\", group: \"Data\", placeholder: \"{{items}}\" },\n index: { label: \"Index alias\", group: \"Data\" },\n key: { label: \"Row key\", control: \"binding\", group: \"Advanced\" },\n condition: { label: \"Show when\", control: \"binding\", group: \"Data\", placeholder: \"{{flag}}\" },\n variant: { label: \"Variant\", group: \"Style\" },\n size: { label: \"Size\", group: \"Style\" },\n raised: { label: \"Shadow\", group: \"Style\" },\n extrude: { label: \"Extrude\", group: \"Style\" },\n rounded: { label: \"Corners\", group: \"Style\" },\n align: { label: \"Alignment\", group: \"Style\" },\n fill: { label: \"Colour\", group: \"Style\" },\n stacked: { label: \"Stacked spacing\", group: \"Style\" },\n animate: { label: \"Animate\", group: \"Style\" },\n buttonVariant: { label: \"Button variant\", group: \"Style\" },\n mode: { label: \"Mode\", group: \"Style\" },\n rows: { label: \"Rows\", group: \"Style\" },\n autosize: { label: \"Auto-size\", group: \"Style\" },\n type: { label: \"Button type\", group: \"Content\" },\n imageType: { label: \"Image format\", group: \"Advanced\" },\n containerClassName: { label: \"Container classes\", group: \"Advanced\" },\n canvasClassname: { label: \"Canvas classes\", group: \"Advanced\" },\n minLength: { label: \"Min length\", group: \"Advanced\" },\n maxLength: { label: \"Max length\", group: \"Advanced\" },\n hideWeekends: { label: \"Hide weekends\", group: \"Advanced\" },\n pins: { label: \"Pins\", control: \"json\", group: \"Advanced\" },\n zoom: { label: \"Zoom\", group: \"Advanced\" },\n pitch: { label: \"Pitch\", group: \"Advanced\" },\n fixed: { label: \"Fixed viewport\", group: \"Advanced\" },\n allowMultiple: { label: \"Allow multiple pins\", group: \"Advanced\" },\n icon: { label: \"Icon\", group: \"Advanced\" },\n pingIcon: { label: \"Ping icon\", control: \"json\", group: \"Advanced\" },\n iconProps: { label: \"Icon props\", control: \"json\", group: \"Advanced\" },\n badge: { label: \"Badge\", control: \"json\", group: \"Advanced\" },\n};\n\nconst TYPE_FIELD_HINTS: Record<string, Record<string, FieldHints>> = {\n [C.EACH]: { as: { label: \"Item alias\", group: \"Data\" } },\n [C.H]: { as: { label: \"Render as\", group: \"Advanced\" } },\n [C.P]: { as: { label: \"Render as\", group: \"Advanced\" } },\n [C.BUTTON]: { icon: { label: \"Icon-only size\", group: \"Style\" } },\n};\n\n/** The args object schema of a node type, unwrapped from `.optional()`. */\nexport function getArgsSchema(type: string): z.ZodObject | undefined {\n let args: z.ZodType | undefined = NodeSchemas[type]?.shape.args;\n while (args instanceof z.ZodOptional) args = args.unwrap() as z.ZodType;\n return args instanceof z.ZodObject ? args : undefined;\n}\n\nfor (const [type, schema] of Object.entries(NodeSchemas)) {\n nodeRules.add(schema, { accepts: \"any\", ...RULES[type] });\n const shape = getArgsSchema(type)?.shape ?? {};\n for (const [name, field] of Object.entries(shape)) {\n // Shared field instances (CoreArgs) receive identical hints from every type.\n fieldHints.add(field as z.ZodType, { ...FIELD_HINTS[name], ...TYPE_FIELD_HINTS[type]?.[name] });\n }\n}\n\n/** Nesting rules for a node type; unknown types accept anything. */\nexport function getNodeRules(type: string): NodeRules {\n const schema = NodeSchemas[type];\n return (schema && nodeRules.get(schema)) || { accepts: \"any\" };\n}\n"],"names":["ClickAction","z","path","CoreArgs","AArgs","HArgs","PArgs","OLArgs","ULArgs","LIArgs","DivArgs","SpanArgs","SeparatorArgs","AlertArgs","BadgeArgs","ButtonArgs","CardArgs","CardHeaderArgs","CardTitleArgs","CardDescriptionArgs","CardContentArgs","CardFooterArgs","CardActionArgs","CardIconArgs","CheckboxArgs","ImageArgs","OTPArgs","InputArgs","LabelArgs","SwitchArgs","TextareaArgs","InputGroupArgs","InputGroupTextArgs","InputGroupAddonArgs","InputGroupInputArgs","InputGroupButtonArgs","InputGroupTextareaArgs","SignatureArgs","CalendarArgs","TableArgs","TableHeaderArgs","TableBodyArgs","TableFooterArgs","TableHeadArgs","TableRowArgs","TableCellArgs","TableCaptionArgs","AccordionArgs","AccordionItemArgs","AccordionTriggerArgs","AccordionContentArgs","AvatarArgs","CollapsibleArgs","CollapsibleTriggerArgs","CollapsibleContentArgs","LoaderArgs","ProgressArgs","SkeletonArgs","Node","ComponentNode","CoreNode","DivNode","COMPONENT","ANode","HNode","PNode","OLNode","ULNode","LINode","SpanNode","SeparatorNode","AlertNode","BadgeNode","ButtonNode","CardNode","CheckboxNode","ImageNode","OTPNode","InputNode","LabelNode","SwitchNode","TextareaNode","SignatureNode","CalendarNode","CardHeaderNode","CardTitleNode","CardDescriptionNode","CardContentNode","CardFooterNode","CardActionNode","CardIconNode","TableNode","TableHeaderNode","TableBodyNode","TableFooterNode","TableHeadNode","TableRowNode","TableCellNode","TableCaptionNode","AccordionNode","AccordionItemNode","AccordionTriggerNode","AccordionContentNode","AvatarNode","CollapsibleNode","CollapsibleTriggerNode","CollapsibleContentNode","LoaderNode","ProgressNode","SkeletonNode","InputGroupNode","InputGroupTextNode","InputGroupAddonNode","InputGroupInputNode","InputGroupButtonNode","InputGroupTextareaNode","EachArgs","EachNode","IfArgs","IfNode","argsOf","node","descriptionOf","createTemplateSchema","components","localNode","componentNode","localCoreNode","nodeSchemas","type","argsSchema","description","PEBBLE_COMPONENT_SCHEMAS","pebbleTemplateSchema","Config","NodeSchemas","schema","nodeRules","fieldHints","C","SELF_CONTAINED","TABLE_SECTIONS","CARD_SLOTS","INPUT_GROUP_SLOTS","RULES","FIELD_HINTS","TYPE_FIELD_HINTS","getArgsSchema","args","shape","name","field","getNodeRules"],"mappings":"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"}