@pebble-software/bonsai 0.3.0 → 0.4.0

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.
Files changed (32) hide show
  1. package/README.md +30 -14
  2. package/dist/ast.js +1 -1
  3. package/dist/chunks/{builder.meta-B7Y9M7Ab.js → builder.meta-DKq-ggkn.js} +3 -3
  4. package/dist/chunks/{builder.meta-B7Y9M7Ab.js.map → builder.meta-DKq-ggkn.js.map} +1 -1
  5. package/dist/chunks/class-names-CoKRVvWM.js +66 -0
  6. package/dist/chunks/class-names-CoKRVvWM.js.map +1 -0
  7. package/dist/chunks/{create-renderer-kgClEYyp.js → create-renderer-CSFyNcqr.js} +2 -2
  8. package/dist/chunks/{create-renderer-kgClEYyp.js.map → create-renderer-CSFyNcqr.js.map} +1 -1
  9. package/dist/chunks/{index-CD5pykpk.js → index-df-PhUtD.js} +2 -2
  10. package/dist/chunks/{index-CD5pykpk.js.map → index-df-PhUtD.js.map} +1 -1
  11. package/dist/chunks/{render-shared-CrG0OFhJ.js → render-shared-DSYQFhTh.js} +2 -2
  12. package/dist/chunks/{render-shared-CrG0OFhJ.js.map → render-shared-DSYQFhTh.js.map} +1 -1
  13. package/dist/classes.d.ts +28 -10
  14. package/dist/classes.js +21 -12
  15. package/dist/classes.js.map +1 -1
  16. package/dist/classes.json +1 -1
  17. package/dist/components/ui/signature-pad.d.ts +2 -2
  18. package/dist/constants.js +7 -2
  19. package/dist/constants.js.map +1 -1
  20. package/dist/core.js +3 -3
  21. package/dist/css.d.ts +42 -0
  22. package/dist/css.js +7483 -0
  23. package/dist/css.js.map +1 -0
  24. package/dist/index.js +200 -245
  25. package/dist/index.js.map +1 -1
  26. package/dist/lib/ast/class-names.d.ts +18 -3
  27. package/dist/library/constants/src/components.d.ts +1 -0
  28. package/dist/presets/signature.js +2 -2
  29. package/dist/presets/signature.js.map +1 -1
  30. package/dist/schemas.js +1 -1
  31. package/dist/styles/presets.json +2 -1
  32. package/package.json +6 -1
package/README.md CHANGED
@@ -142,7 +142,8 @@ export function Example() {
142
142
  | `@pebble-software/bonsai/ast` | The expression engine (`compileExpression`, `isExpression`, `parseExpression`, `extractVariables`, `clearExpressionCache`). |
143
143
  | `@pebble-software/bonsai/styles/*` | The raw layer stylesheets (`css/*.css`, `vendor/*.css`) and `presets.json`, for compiling template CSS yourself, e.g. `styles/css/theme.css?raw` in Vite. |
144
144
  | `@pebble-software/bonsai/classes.json` | The class manifest: every Tailwind candidate each component type can emit, for compiling a per-template stylesheet without rendering (see [Compiling CSS per template](#compiling-css-per-template)). |
145
- | `@pebble-software/bonsai/classes` | `classesFor(manifest, templates)` and the `ClassManifest` type. |
145
+ | `@pebble-software/bonsai/classes` | `classesFor(manifest, templates)` and the `ClassManifest` / `TemplateClasses` / `Template` types. |
146
+ | `@pebble-software/bonsai/css` | `compileTemplateCss(templates, { preset })`, `TEMPLATE_CSS_HASH`, and the `CssPreset` / `TemplateCss` / `TemplateCssOptions` / `Template` types: a template's minimal stylesheet, compiled from its JSON with the manifest, layer sheets and Tailwind compiler bundled in (see [Compiling CSS per template](#compiling-css-per-template)). |
146
147
 
147
148
  Named exports of `@pebble-software/bonsai` and `@pebble-software/bonsai/core`:
148
149
 
@@ -271,7 +272,7 @@ The template format is defined by the Zod schema in [`library/schemas/src/bonsai
271
272
 
272
273
  ### Validating templates
273
274
 
274
- Validation is a separate, explicit step. The root entry exports `validateTemplate(template, registry, options?)`, which checks a template against a registry — unknown types, each component's `args` against its `propsSchema`, whether it accepts children, whether it supports the target `mode` (`"web"` or `"pdf"`), and whether every class a `className` expression can produce is written whole in a string literal (see [Compiling CSS per template](#compiling-css-per-template)):
275
+ Validation is a separate, explicit step. The root entry exports `validateTemplate(template, registry, options?)`, which checks a template against a registry — unknown types, each component's `args` against its `propsSchema`, whether it accepts children, whether it supports the target `mode` (`"web"` or `"pdf"`), and whether every class a class prop's expression (`className`, `containerClassName`, ...) can produce is written whole in a string literal (see [Compiling CSS per template](#compiling-css-per-template)):
275
276
 
276
277
  ```ts
277
278
  import { validateTemplate, pebbleRegistry } from "@pebble-software/bonsai";
@@ -306,7 +307,7 @@ Complete example templates live in the repo's [`examples/`](https://github.com/P
306
307
  - To mix text and values, put each part in its own child (`["{{a}}", " of ", "{{b}}"]`), or build the string in one expression (`"{{ concat(a, ' of ', b) }}"`).
307
308
  - Paths support dot notation (`user.email`) and array indexing (`addresses[0].street`).
308
309
  - Missing keys resolve to `undefined`; use the `default(value, fallback)` helper for a fallback inline, or handle defaults in host data.
309
- - Any `args` prop or string child can contain a binding. A `className` binding must resolve to classes written whole in its string literals, so stylesheets can be compiled without rendering — see [Compiling CSS per template](#compiling-css-per-template).
310
+ - Any `args` prop or string child can contain a binding. A class prop's binding (`className`, `containerClassName`, ...) must resolve to classes written whole in its string literals, so stylesheets can be compiled without rendering — see [Compiling CSS per template](#compiling-css-per-template).
310
311
  - Besides your own `data`, the instance's top-level state fields — `status`, `expiry`, and `submitting` — are readable from bindings (e.g. an `if` on `{{submitting}}`). **These names are reserved:** a top-level `data` key called `status`, `expiry`, or `submitting` is shadowed by the state field and can't be read from a binding. Nest it (`{{order.status}}`) instead.
311
312
  - Inside an `each` row, an identifier resolves against the loop alias first (e.g. `applicant.name`), then falls back to the surrounding data for anything the alias doesn't shadow (e.g. `orgName` from outside the loop) — see [Structural nodes](#structural-nodes-each--if).
312
313
  - On the client, evaluating a node's bindings is also what subscribes that node to the store — see [Controlled inputs & state](#controlled-inputs--state).
@@ -494,24 +495,38 @@ Bonsai is styled with **Tailwind CSS v4**. Components emit plain Tailwind utilit
494
495
 
495
496
  ### Compiling CSS per template
496
497
 
497
- To ship each template a minimal stylesheet, compile it from two sources instead of rendering the template: the template's own JSON, for the classes it writes, and the class manifest, for the classes Bonsai's components emit.
498
+ To ship each template a minimal stylesheet, compile it from the template JSON instead of rendering the template:
499
+
500
+ ```ts
501
+ import { compileTemplateCss, TEMPLATE_CSS_HASH } from "@pebble-software/bonsai/css";
502
+
503
+ const { css, unknownTypes } = await compileTemplateCss([template, header, footer], { preset: "full" });
504
+ if (unknownTypes.length) console.warn(`No classes known for ${unknownTypes.join(", ")}`);
505
+ ```
506
+
507
+ The entry bundles everything that decides the output: the class manifest, Bonsai's layer sheets and the Tailwind compiler. Every consumer gets the same CSS for the same templates, in Node, workerd or the browser, with no Tailwind install, no stylesheet imports and no filesystem.
508
+
509
+ - **Every state is covered.** The sheet holds every variant and state of each component type the templates use, whichever `if` branch, status, render mode or data they end up rendered with, plus the classes the templates write themselves in their class props. One stylesheet serves them all.
510
+ - **It overshoots slightly.** A template with one `button` gets the rules for every button size and variant.
511
+ - **Presets pick the layer sheets.** `core` is design tokens and the reset, for plain text and layout. `full` (the default) is every layer an interactive form needs. `pdf` is `full` without `fonts`, for renderers that embed their own `@font-face`.
512
+ - **Unknown types are reported, not guessed.** A type Bonsai has no classes for, such as a component a custom registry adds, lands in `unknownTypes`, and whatever it renders is unstyled.
513
+ - **Cache on `TEMPLATE_CSS_HASH`.** It changes whenever anything besides the templates that shapes the output does (a component's classes, a layer sheet, the Tailwind version), so include it in the key of any stylesheet you store.
514
+ - **Class props must write each class whole.** A class prop is `className` or any arg named `<part>ClassName` (`containerClassName`, `canvasClassName`). `{{ status == 'pending' ? 'bg-accent-cyan p-4' : 'hidden' }}` and `{{ 'p-4 ' + (done ? 'line-through' : '') }}` are fine. `{{ 'bg-' + color }}` and `{{ cls }}` are not, because the class only exists once data arrives. `validateTemplate` reports them.
515
+
516
+ #### With your own Tailwind
517
+
518
+ To compile with your own Tailwind build and stylesheets, take the class list instead. `classesFor` returns the same classes `compileTemplateCss` compiles:
498
519
 
499
520
  ```ts
500
521
  import { compile } from "tailwindcss";
501
522
  import manifest from "@pebble-software/bonsai/classes.json" with { type: "json" };
502
523
  import { classesFor } from "@pebble-software/bonsai/classes";
503
524
 
504
- const candidates = [
505
- ...classesFor(manifest, [template, header, footer]),
506
- ...tokensFrom(JSON.stringify([template, header, footer])), // your own scan of the template text
507
- ];
508
- const css = (await compile(input, { loadStylesheet })).build(candidates);
525
+ const { classes, unknownTypes } = classesFor(manifest, [template, header, footer]);
526
+ const css = (await compile(input, { loadStylesheet })).build(classes);
509
527
  ```
510
528
 
511
- - **Every state is covered.** The manifest lists every variant and state of each component type a template uses, whichever `if` branch, status, render mode or data the template ends up rendered with. One stylesheet serves them all.
512
- - **It overshoots slightly.** A template with one `button` gets the classes for every button size and variant, and the lists include tokens that aren't utilities. Tailwind ignores candidates it can't parse, so the extra tokens cost nothing.
513
- - **Cache on `manifest.hash`.** It changes whenever any component's classes do, so include it in the cache key of any stylesheet you store.
514
- - **`className` expressions must write each class whole.** `{{ status == 'pending' ? 'bg-accent-cyan p-4' : 'hidden' }}` and `{{ 'p-4 ' + (done ? 'line-through' : '') }}` are fine. `{{ 'bg-' + color }}` and `{{ cls }}` are not, because the class only exists once data arrives. `validateTemplate` reports them.
529
+ The lists include tokens that aren't utilities; Tailwind ignores candidates it can't parse, so they cost nothing. Build `input` from `@pebble-software/bonsai/styles/*`, and cache on `manifest.hash` plus your Tailwind version: the hash changes whenever any component's classes or any published stylesheet (`index.css`, `styles/*`) does.
515
530
 
516
531
  The manifest is generated on every build from the component sources by Tailwind's own scanner; see `scripts/class-manifest.ts`.
517
532
 
@@ -607,6 +622,7 @@ To add a component to Bonsai itself (in this monorepo):
607
622
  3. Register the React implementation in `coreComponents` (`apps/bonsai/src/renderer/core-registry.ts`) — or, if it pulls in a heavy dependency, in a new preset under `apps/bonsai/src/renderer/presets/`, with a matching entry in `vite.config.ts` and `package.json#exports`. Keep the `[COMPONENT.X]: Component` form, with `Component` imported by name from a module in `src/`: the class manifest build reads these entries to find each type's source.
608
623
  4. If it's an input, add its binding to `coreControlledInputs` (or the preset's `controlledInputs`).
609
624
  5. Write its classes as whole string literals (in `cva` variants or `cn(...)` arguments), never built with interpolation like `` `bg-${color}` ``. The class manifest is scanned from source, so an interpolated class is missing from every per-template stylesheet; `src/tests/classes.manifest.test.tsx` renders the example templates and fails on any class the manifest doesn't cover.
625
+ 6. Name any arg that takes classes `className`, or `<part>ClassName` for one part of the component (`containerClassName`). Validation and `classesFor` find class props by that name alone; `src/tests/registry.validate.test.ts` fails on a schema arg named any other way.
610
626
 
611
627
  ## Performance
612
628
 
@@ -666,4 +682,4 @@ pnpm build # Bundles dist/ (ESM + type declarations) via Vite, copies the
666
682
  pnpm size-check # Checks each entry against its gzip budget (run after build)
667
683
  ```
668
684
 
669
- `dist/` contains the ESM bundle, TypeScript declarations, the uncompiled `index.css` theme consumed by downstream Tailwind builds, and `classes.json`, the class manifest for consumers that compile CSS per template. The shared `@bonsai/constants` and `@bonsai/schemas` workspaces are aliased to their sources and bundled in, so the published package has no workspace dependencies.
685
+ `dist/` contains the ESM bundle, TypeScript declarations, the uncompiled `index.css` theme consumed by downstream Tailwind builds, and `classes.json`, the class manifest for consumers that compile CSS per template with their own Tailwind. `css.js` (`@pebble-software/bonsai/css`) is the one entry that bundles a dependency: the Tailwind compiler, along with the manifest and the layer sheets it compiles with. The shared `@bonsai/constants` and `@bonsai/schemas` workspaces are aliased to their sources and bundled in, so the published package has no workspace dependencies.
package/dist/ast.js CHANGED
@@ -1,4 +1,4 @@
1
- import { a as r, c as i, e as p, i as o, p as x } from "./chunks/index-CD5pykpk.js";
1
+ import { a as r, c as i, e as p, i as o, p as x } from "./chunks/index-df-PhUtD.js";
2
2
  import "jsep";
3
3
  export {
4
4
  r as clearExpressionCache,
@@ -126,7 +126,7 @@ const Se = e.object({
126
126
  disabled: e.union([e.string(), e.boolean()]).optional()
127
127
  }).strict(), rt = r.extend({
128
128
  value: e.string().nullable().meta({ description: "Current signature value (base64 or null if empty)" }),
129
- canvasClassname: e.string().optional().meta({ description: "Custom CSS class for the signature canvas" }),
129
+ canvasClassName: e.string().optional().meta({ description: "Custom CSS class for the signature canvas" }),
130
130
  imageType: e.enum(["image/png", "image/jpeg", "image/webp"]).optional().meta({ description: "Image format for the exported signature" })
131
131
  }).strict(), st = r.extend({
132
132
  selected: e.union([e.string(), e.date(), e.array(e.date())], {
@@ -624,7 +624,7 @@ const Bt = {
624
624
  type: { label: "Button type", group: "Content" },
625
625
  imageType: { label: "Image format", group: "Advanced" },
626
626
  containerClassName: { label: "Container classes", group: "Advanced" },
627
- canvasClassname: { label: "Canvas classes", group: "Advanced" },
627
+ canvasClassName: { label: "Canvas classes", group: "Advanced" },
628
628
  minLength: { label: "Min length", group: "Advanced" },
629
629
  maxLength: { label: "Max length", group: "Advanced" },
630
630
  hideWeekends: { label: "Hide weekends", group: "Advanced" },
@@ -669,4 +669,4 @@ export {
669
669
  Ut as g,
670
670
  Oe as n
671
671
  };
672
- //# sourceMappingURL=builder.meta-B7Y9M7Ab.js.map
672
+ //# sourceMappingURL=builder.meta-DKq-ggkn.js.map
@@ -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.\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-DKq-ggkn.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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"}
@@ -0,0 +1,66 @@
1
+ import { c as f } from "./index-df-PhUtD.js";
2
+ const p = 1024, a = (e) => e.split(/\s+/).filter(Boolean);
3
+ function o(e, s) {
4
+ return e && s ? [.../* @__PURE__ */ new Set([...e, ...s])] : null;
5
+ }
6
+ function g(e, s) {
7
+ return !e || !s || e.length * s.length > p ? null : [...new Set(e.flatMap((n) => s.map((r) => n + r)))];
8
+ }
9
+ function t(e, s) {
10
+ const n = e;
11
+ switch (n.type) {
12
+ case "Literal": {
13
+ const r = n.value == null || typeof n.value == "boolean" ? "" : String(n.value);
14
+ return s.push(r), [r];
15
+ }
16
+ case "ConditionalExpression":
17
+ return o(
18
+ t(n.consequent, s),
19
+ t(n.alternate, s)
20
+ );
21
+ case "BinaryExpression":
22
+ switch (n.operator) {
23
+ // A falsy left side renders no class, so only the right side is a result.
24
+ case "&&":
25
+ return o([""], t(n.right, s));
26
+ case "||":
27
+ case "??":
28
+ return o(t(n.left, s), t(n.right, s));
29
+ case "+":
30
+ return g(t(n.left, s), t(n.right, s));
31
+ default:
32
+ return null;
33
+ }
34
+ default:
35
+ return null;
36
+ }
37
+ }
38
+ function m(e) {
39
+ return e === "className" || e.endsWith("ClassName");
40
+ }
41
+ function d(e) {
42
+ if (typeof e != "string") return { classes: [], issue: null };
43
+ const s = f(e);
44
+ if (!s) return { classes: a(e), issue: null };
45
+ if (!s.ast) return { classes: [], issue: null };
46
+ const n = [], r = t(s.ast, n), l = [...new Set(n.flatMap(a))];
47
+ if (!r)
48
+ return {
49
+ classes: l,
50
+ issue: "must evaluate to classes written in string literals (e.g. a ternary between class strings), not to data or a computed value"
51
+ };
52
+ const i = new Set(l);
53
+ for (const c of r)
54
+ for (const u of a(c))
55
+ if (!i.has(u))
56
+ return {
57
+ classes: l,
58
+ issue: `builds "${u}" by joining strings; write each class whole inside one string literal`
59
+ };
60
+ return { classes: l, issue: null };
61
+ }
62
+ export {
63
+ d as a,
64
+ m as i
65
+ };
66
+ //# sourceMappingURL=class-names-CoKRVvWM.js.map