@alquimia-ai/tools 2.1.0 → 2.3.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 (80) hide show
  1. package/dist/actions/index.d.mts +1 -0
  2. package/dist/actions/index.d.ts +1 -0
  3. package/dist/actions/index.js.map +1 -1
  4. package/dist/actions/index.mjs.map +1 -1
  5. package/dist/actions-BebMyGqF.d.ts +16 -0
  6. package/dist/actions-Ca3ro-hX.d.mts +16 -0
  7. package/dist/adapters/fetch.d.mts +2 -0
  8. package/dist/adapters/fetch.d.ts +2 -0
  9. package/dist/adapters/fetch.js +7 -1
  10. package/dist/adapters/fetch.js.map +1 -1
  11. package/dist/adapters/fetch.mjs +7 -1
  12. package/dist/adapters/fetch.mjs.map +1 -1
  13. package/dist/adapters/index.d.mts +1 -0
  14. package/dist/adapters/index.d.ts +1 -0
  15. package/dist/adapters/index.js.map +1 -1
  16. package/dist/adapters/next.d.mts +2 -0
  17. package/dist/adapters/next.d.ts +2 -0
  18. package/dist/adapters/next.js +7 -1
  19. package/dist/adapters/next.js.map +1 -1
  20. package/dist/adapters/next.mjs +7 -1
  21. package/dist/adapters/next.mjs.map +1 -1
  22. package/dist/genui/index.d.mts +3027 -0
  23. package/dist/genui/index.d.ts +3027 -0
  24. package/dist/genui/index.js +3344 -0
  25. package/dist/genui/index.js.map +1 -0
  26. package/dist/genui/index.mjs +3321 -0
  27. package/dist/genui/index.mjs.map +1 -0
  28. package/dist/hooks/index.d.mts +26 -1
  29. package/dist/hooks/index.d.ts +26 -1
  30. package/dist/hooks/index.js +650 -21
  31. package/dist/hooks/index.js.map +1 -1
  32. package/dist/hooks/index.mjs +632 -3
  33. package/dist/hooks/index.mjs.map +1 -1
  34. package/dist/next/index.d.mts +7 -0
  35. package/dist/next/index.d.ts +7 -0
  36. package/dist/next/index.js +50 -0
  37. package/dist/next/index.js.map +1 -1
  38. package/dist/next/index.mjs +50 -0
  39. package/dist/next/index.mjs.map +1 -1
  40. package/dist/providers/index.d.mts +3 -2
  41. package/dist/providers/index.d.ts +3 -2
  42. package/dist/providers/index.js.map +1 -1
  43. package/dist/providers/index.mjs.map +1 -1
  44. package/dist/proxy.d.mts +2 -0
  45. package/dist/proxy.d.ts +2 -0
  46. package/dist/proxy.js +41 -0
  47. package/dist/proxy.js.map +1 -1
  48. package/dist/proxy.mjs +41 -0
  49. package/dist/proxy.mjs.map +1 -1
  50. package/dist/registry-Bcu_ZYL1.d.mts +19 -0
  51. package/dist/registry-Bcu_ZYL1.d.ts +19 -0
  52. package/dist/sdk/index.d.mts +10 -0
  53. package/dist/sdk/index.d.ts +10 -0
  54. package/dist/sdk/index.js +26 -0
  55. package/dist/sdk/index.js.map +1 -1
  56. package/dist/sdk/index.mjs +26 -0
  57. package/dist/sdk/index.mjs.map +1 -1
  58. package/dist/services/index.d.mts +1 -0
  59. package/dist/services/index.d.ts +1 -0
  60. package/dist/types/index.d.mts +10 -1
  61. package/dist/types/index.d.ts +10 -1
  62. package/dist/types/index.js.map +1 -1
  63. package/dist/types/index.mjs.map +1 -1
  64. package/dist/types-DnfWUE9V.d.mts +56 -0
  65. package/dist/types-DnfWUE9V.d.ts +56 -0
  66. package/dist/types-Dvu9y4WM.d.mts +53 -0
  67. package/dist/types-Dvu9y4WM.d.ts +53 -0
  68. package/dist/utils/index.d.mts +6 -2
  69. package/dist/utils/index.d.ts +6 -2
  70. package/dist/utils/index.js +4 -0
  71. package/dist/utils/index.js.map +1 -1
  72. package/dist/utils/index.mjs +4 -0
  73. package/dist/utils/index.mjs.map +1 -1
  74. package/dist/worklog/index.d.mts +29 -0
  75. package/dist/worklog/index.d.ts +29 -0
  76. package/dist/worklog/index.js +218 -0
  77. package/dist/worklog/index.js.map +1 -0
  78. package/dist/worklog/index.mjs +195 -0
  79. package/dist/worklog/index.mjs.map +1 -0
  80. package/package.json +24 -7
@@ -0,0 +1,3321 @@
1
+ // src/genui/style.ts
2
+ import { z } from "zod";
3
+ var TONES = ["default", "muted", "primary", "success", "warning", "danger"];
4
+ var SIZES = ["sm", "md", "lg"];
5
+ var EMPHASES = ["low", "medium", "high"];
6
+ var ALIGNS = ["start", "center", "end"];
7
+ var DENSITIES = ["compact", "comfortable"];
8
+ var styleSchemaShape = {
9
+ tone: z.enum(TONES).optional(),
10
+ size: z.enum(SIZES).optional(),
11
+ emphasis: z.enum(EMPHASES).optional(),
12
+ align: z.enum(ALIGNS).optional(),
13
+ density: z.enum(DENSITIES).optional()
14
+ };
15
+
16
+ // src/genui/registry.ts
17
+ var UNKNOWN_COMPONENT = "__unknown__";
18
+ function resolveComponent(manifest, name) {
19
+ if (!name || typeof name !== "string") return null;
20
+ return manifest.components[name] ?? null;
21
+ }
22
+
23
+ // src/genui/catalog.ts
24
+ import { z as z2 } from "zod";
25
+ var CORE_CATALOG_ID = "https://alquimia.ai/catalogs/core/v1/catalog.json";
26
+ var def = (name, own, opts) => ({
27
+ name,
28
+ schema: z2.object({
29
+ ...styleSchemaShape,
30
+ ...opts?.variant ? { variant: z2.enum(opts.variant).optional() } : {},
31
+ ...own
32
+ }).passthrough(),
33
+ allowedActions: opts?.allowedActions
34
+ });
35
+ var option = z2.object({ label: z2.string(), value: z2.union([z2.string(), z2.number()]) });
36
+ var coreCatalog = {
37
+ id: CORE_CATALOG_ID,
38
+ components: {
39
+ // ---- layout ----
40
+ Stack: def("Stack", {
41
+ direction: z2.enum(["vertical", "horizontal"]).optional(),
42
+ gap: z2.enum(["sm", "md", "lg"]).optional()
43
+ }),
44
+ Grid: def("Grid", {
45
+ columns: z2.number().int().min(1).max(6).optional(),
46
+ gap: z2.enum(["sm", "md", "lg"]).optional()
47
+ }),
48
+ Row: def("Row", { gap: z2.enum(["sm", "md", "lg"]).optional(), wrap: z2.boolean().optional() }),
49
+ Column: def("Column", { gap: z2.enum(["sm", "md", "lg"]).optional() }),
50
+ Divider: def("Divider", { label: z2.string().optional() }),
51
+ Spacer: def("Spacer", { size: z2.enum(["sm", "md", "lg"]).optional() }),
52
+ Card: def("Card", { title: z2.string().optional(), description: z2.string().optional() }, {
53
+ variant: ["elevated", "outline", "ghost"]
54
+ }),
55
+ Accordion: def("Accordion", {
56
+ items: z2.array(z2.object({ title: z2.string(), value: z2.string() })).optional()
57
+ }),
58
+ Tabs: def("Tabs", { tabs: z2.array(z2.object({ label: z2.string(), value: z2.string() })).min(1) }),
59
+ // ---- content ----
60
+ Text: def("Text", { text: z2.string() }, { variant: ["body", "muted", "caption", "lead"] }),
61
+ Heading: def("Heading", { text: z2.string(), level: z2.number().int().min(1).max(4).optional() }),
62
+ Markdown: def("Markdown", { text: z2.string() }),
63
+ Image: def("Image", { src: z2.string(), alt: z2.string().optional() }),
64
+ Icon: def("Icon", { name: z2.string() }),
65
+ Badge: def("Badge", { text: z2.string() }, { variant: ["solid", "outline", "subtle"] }),
66
+ Avatar: def("Avatar", { src: z2.string().optional(), fallback: z2.string().optional() }),
67
+ Alert: def("Alert", { text: z2.string(), title: z2.string().optional() }, {
68
+ variant: ["info", "success", "warning", "danger"]
69
+ }),
70
+ Stat: def("Stat", { label: z2.string(), value: z2.union([z2.string(), z2.number()]), delta: z2.string().optional() }),
71
+ KeyValue: def("KeyValue", {}),
72
+ List: def("List", { ordered: z2.boolean().optional() }),
73
+ Quote: def("Quote", { text: z2.string(), cite: z2.string().optional() }),
74
+ // ---- inputs ----
75
+ TextField: def("TextField", { label: z2.string().optional(), placeholder: z2.string().optional() }),
76
+ TextArea: def("TextArea", {
77
+ label: z2.string().optional(),
78
+ placeholder: z2.string().optional(),
79
+ rows: z2.number().int().optional()
80
+ }),
81
+ NumberField: def("NumberField", {
82
+ label: z2.string().optional(),
83
+ min: z2.number().optional(),
84
+ max: z2.number().optional(),
85
+ step: z2.number().optional()
86
+ }),
87
+ Select: def("Select", {
88
+ label: z2.string().optional(),
89
+ placeholder: z2.string().optional(),
90
+ options: z2.array(option).min(1)
91
+ }),
92
+ MultiSelect: def("MultiSelect", { label: z2.string().optional(), options: z2.array(option).min(1) }),
93
+ Combobox: def("Combobox", {
94
+ label: z2.string().optional(),
95
+ placeholder: z2.string().optional(),
96
+ options: z2.array(option).min(1)
97
+ }),
98
+ Checkbox: def("Checkbox", { label: z2.string().optional() }),
99
+ CheckboxGroup: def("CheckboxGroup", { label: z2.string().optional(), options: z2.array(option).min(1) }),
100
+ Radio: def("Radio", { label: z2.string().optional(), options: z2.array(option).min(1) }),
101
+ Switch: def("Switch", { label: z2.string().optional() }),
102
+ Slider: def("Slider", {
103
+ label: z2.string().optional(),
104
+ min: z2.number().optional(),
105
+ max: z2.number().optional(),
106
+ step: z2.number().optional()
107
+ }),
108
+ DatePicker: def("DatePicker", { label: z2.string().optional() }),
109
+ DateRange: def("DateRange", { label: z2.string().optional() }),
110
+ FileUpload: def("FileUpload", {
111
+ label: z2.string().optional(),
112
+ accept: z2.string().optional(),
113
+ multiple: z2.boolean().optional()
114
+ }),
115
+ Rating: def("Rating", { label: z2.string().optional(), max: z2.number().int().optional() }),
116
+ // ---- data ----
117
+ Table: def("Table", {
118
+ columns: z2.array(z2.object({ key: z2.string(), header: z2.string().optional() })).min(1),
119
+ sortable: z2.boolean().optional()
120
+ }, { allowedActions: ["sort", "filter"] }),
121
+ Chart: def("Chart", {
122
+ kind: z2.enum(["bar", "line", "area", "pie"]),
123
+ x: z2.string().optional(),
124
+ series: z2.array(z2.object({ key: z2.string(), label: z2.string().optional() })).min(1),
125
+ title: z2.string().optional()
126
+ }),
127
+ Progress: def("Progress", { value: z2.number(), max: z2.number().optional(), label: z2.string().optional() }),
128
+ Timeline: def("Timeline", {
129
+ items: z2.array(z2.object({ title: z2.string(), description: z2.string().optional(), timestamp: z2.string().optional() })).min(1)
130
+ }),
131
+ // ---- actions ----
132
+ Button: def("Button", { text: z2.string() }, {
133
+ variant: ["solid", "outline", "ghost", "link"],
134
+ allowedActions: ["submit", "cancel", "reset", "select", "confirm"]
135
+ }),
136
+ ButtonGroup: def("ButtonGroup", {}),
137
+ Link: def("Link", { text: z2.string(), href: z2.string().optional() })
138
+ }
139
+ };
140
+
141
+ // src/genui/binding.ts
142
+ function decode(token) {
143
+ return token.replace(/~1/g, "/").replace(/~0/g, "~");
144
+ }
145
+ function tokens(pointer) {
146
+ if (pointer === "") return [];
147
+ if (pointer[0] !== "/") throw new Error(`Invalid JSON Pointer: ${pointer}`);
148
+ return pointer.slice(1).split("/").map(decode);
149
+ }
150
+ function getPointer(model, pointer) {
151
+ const parts = tokens(pointer);
152
+ let cur = model;
153
+ for (const p of parts) {
154
+ if (cur == null || typeof cur !== "object") return void 0;
155
+ cur = cur[p];
156
+ }
157
+ return cur;
158
+ }
159
+ function setPointer(model, pointer, value) {
160
+ const parts = tokens(pointer);
161
+ if (parts.length === 0) return value;
162
+ const root = model && typeof model === "object" ? { ...model } : {};
163
+ let cur = root;
164
+ for (let i = 0; i < parts.length - 1; i++) {
165
+ const key = parts[i];
166
+ const child = cur[key];
167
+ cur[key] = child && typeof child === "object" ? { ...child } : {};
168
+ cur = cur[key];
169
+ }
170
+ cur[parts[parts.length - 1]] = value;
171
+ return root;
172
+ }
173
+
174
+ // src/genui/actions.ts
175
+ function classifyAction(action) {
176
+ return action.wantResponse === true ? "agent-bound" : "local";
177
+ }
178
+ var URL_LIKE = /^\s*([a-z][a-z0-9+.-]*:|\/\/)/i;
179
+ function assertSafeActionName(name) {
180
+ if (typeof name !== "string" || name.length === 0) {
181
+ throw new Error("action.name must be a non-empty string");
182
+ }
183
+ if (URL_LIKE.test(name)) {
184
+ throw new Error(`action.name must be a semantic name, not a URL: ${name}`);
185
+ }
186
+ }
187
+
188
+ // src/genui/validate.ts
189
+ import { z as z3 } from "zod";
190
+ var surfaceShape = z3.object({
191
+ surfaceId: z3.string().min(1),
192
+ // Tier 2 canonical id (versioned URI); `catalog` is the legacy alias. Both optional on the
193
+ // wire — the SDK stamps `catalogId` if the agent omits it.
194
+ catalogId: z3.string().min(1).optional(),
195
+ catalog: z3.string().min(1).optional(),
196
+ // Legacy explicit root. A2UI uses the component with id "root"; kept optional for back-compat.
197
+ root: z3.string().min(1).optional(),
198
+ components: z3.array(
199
+ z3.object({
200
+ id: z3.string().min(1),
201
+ component: z3.string().min(1),
202
+ children: z3.array(z3.string()).optional(),
203
+ child: z3.string().optional(),
204
+ binding: z3.string().optional(),
205
+ action: z3.object({ name: z3.string(), wantResponse: z3.boolean().optional() }).optional()
206
+ }).passthrough()
207
+ ),
208
+ dataModel: z3.record(z3.unknown()).optional()
209
+ });
210
+ var UAX31_ID = /^[\p{XID_Start}_][\p{XID_Continue}]*$/u;
211
+ function validateProps(node, def2) {
212
+ const { id, component, children, child, binding, action, ...props } = node;
213
+ const parsed = def2.schema.safeParse(props);
214
+ if (parsed.success) return { ok: true, value: parsed.data, errors: [] };
215
+ return {
216
+ ok: false,
217
+ errors: parsed.error.issues.map((i) => ({ path: `${id}.${i.path.join(".")}`, message: i.message }))
218
+ };
219
+ }
220
+ function validateSurface(input, manifest) {
221
+ const shape = surfaceShape.safeParse(input);
222
+ if (!shape.success) {
223
+ return { ok: false, errors: shape.error.issues.map((i) => ({ path: i.path.join("."), message: i.message })) };
224
+ }
225
+ const surface = shape.data;
226
+ const errors = [];
227
+ const warnings = [];
228
+ const ids = new Set(surface.components.map((c) => c.id));
229
+ const rootId = ids.has("root") ? "root" : surface.root;
230
+ if (!rootId || !ids.has(rootId)) {
231
+ errors.push({ path: "root", message: `no root component (expected a component with id "root")` });
232
+ }
233
+ if (!surface.catalogId && !surface.catalog) {
234
+ warnings.push({ path: "catalogId", message: "surface has no catalogId (SDK will stamp the active catalog)" });
235
+ }
236
+ for (const node of surface.components) {
237
+ if (!UAX31_ID.test(node.id)) {
238
+ warnings.push({ path: node.id, message: `id "${node.id}" is not a valid UAX#31 identifier` });
239
+ }
240
+ const def2 = resolveComponent(manifest, node.component);
241
+ if (!def2) {
242
+ warnings.push({ path: node.id, message: `unknown component "${node.component}" (renders as text)` });
243
+ continue;
244
+ }
245
+ warnings.push(...validateProps(node, def2).errors);
246
+ for (const childId of node.children ?? []) {
247
+ if (!ids.has(childId)) {
248
+ warnings.push({ path: node.id, message: `child "${childId}" does not exist (skipped)` });
249
+ }
250
+ }
251
+ if (node.child && !ids.has(node.child)) {
252
+ warnings.push({ path: node.id, message: `child "${node.child}" does not exist (skipped)` });
253
+ }
254
+ if (node.action) {
255
+ try {
256
+ assertSafeActionName(node.action.name);
257
+ } catch (e) {
258
+ errors.push({ path: `${node.id}.action`, message: e.message });
259
+ }
260
+ }
261
+ }
262
+ return errors.length === 0 ? { ok: true, value: surface, errors: [], warnings } : { ok: false, errors, warnings };
263
+ }
264
+
265
+ // src/genui/tool-schema.ts
266
+ var DESCRIPTION = 'Render a UI using A2UI. The arguments are a UI surface, NOT free-form. Shape: { surfaceId, root, components, dataModel? }. `components` is a FLAT array; every item is { id, component, children?, ...props } where `component` is one of the allowed names (use `component`, never `type`) and `children` is an array of string ids referencing other items (never nested objects). Inputs bind to the data model via `binding` (a JSON Pointer like "/name"). To collect input, include a Button with action { name, wantResponse: true } \u2014 its result (the data model) is returned to you; a surface with no such button is display-only. Example: { "surfaceId": "signup", "root": "root", "components": [ { "id": "root", "component": "Stack", "children": ["name", "desc", "submit"] }, { "id": "name", "component": "TextField", "label": "Username", "binding": "/name" }, { "id": "desc", "component": "TextField", "label": "Description", "binding": "/description" }, { "id": "submit", "component": "Button", "text": "Save", "action": { "name": "save", "wantResponse": true } } ], "dataModel": { "name": "", "description": "" } }. IMPORTANT: when you call render_ui, the rendered surface IS your reply \u2014 do NOT also reproduce its content as text, markdown, or ASCII. Any accompanying message must be a brief one-line intro at most, never a duplicate of the UI.';
267
+ function buildRenderUiSchema(manifest, allowlist) {
268
+ const allowed = allowlist.filter((name) => name in manifest.components);
269
+ return {
270
+ title: "render_ui",
271
+ name: "render_ui",
272
+ description: DESCRIPTION,
273
+ type: "object",
274
+ properties: {
275
+ surfaceId: { type: "string" },
276
+ // A2UI catalog id — a versioned URI. `const` nudges the model to echo it; the SDK
277
+ // also stamps it if omitted, so the client always knows which catalog version to render.
278
+ catalogId: { type: "string", const: manifest.id },
279
+ catalog: { type: "string" },
280
+ // legacy alias (accepted, ignored)
281
+ root: { type: "string" },
282
+ // legacy explicit root (accepted; A2UI uses the id:"root" component)
283
+ components: {
284
+ type: "array",
285
+ items: {
286
+ type: "object",
287
+ properties: {
288
+ id: { type: "string" },
289
+ component: { type: "string", enum: allowed },
290
+ children: { type: "array", items: { type: "string" } },
291
+ child: { type: "string" },
292
+ binding: { type: "string" },
293
+ action: {
294
+ type: "object",
295
+ properties: {
296
+ name: { type: "string" },
297
+ wantResponse: { type: "boolean" }
298
+ },
299
+ required: ["name"]
300
+ },
301
+ tone: { type: "string", enum: [...TONES] },
302
+ size: { type: "string", enum: [...SIZES] },
303
+ emphasis: { type: "string", enum: [...EMPHASES] },
304
+ align: { type: "string", enum: [...ALIGNS] },
305
+ density: { type: "string", enum: [...DENSITIES] },
306
+ variant: { type: "string" },
307
+ text: { type: "string" },
308
+ label: { type: "string" },
309
+ placeholder: { type: "string" },
310
+ title: { type: "string" },
311
+ direction: { type: "string" },
312
+ gap: { type: "string" },
313
+ // Data props for data components. Several are legitimately polymorphic across
314
+ // components — type them as their real unions so the runtime doesn't reject
315
+ // valid output (adapters normalize each shape):
316
+ // data: array (Chart/Table rows) | object (KeyValue)
317
+ // rows: array (Table) | number (TextArea row count)
318
+ // columns: array (Table col defs) | number (Grid column count)
319
+ data: { type: ["array", "object"] },
320
+ rows: { type: ["array", "number"] },
321
+ items: { type: "array" },
322
+ // Accept string OR object items — models routinely emit the terse string
323
+ // form (e.g. series:["revenue"], options:["A","B"]); adapters normalize.
324
+ columns: { type: ["array", "number"], items: { type: ["object", "string"] } },
325
+ series: { type: "array", items: { type: ["object", "string"] } },
326
+ options: { type: "array", items: { type: ["object", "string"] } },
327
+ kind: { type: "string" },
328
+ x: { type: "string" },
329
+ value: {}
330
+ },
331
+ required: ["id", "component"]
332
+ }
333
+ },
334
+ dataModel: { type: "object" }
335
+ },
336
+ required: ["surfaceId", "root", "components"],
337
+ additionalProperties: false
338
+ };
339
+ }
340
+
341
+ // src/genui/clause.ts
342
+ function buildGenuiClause(manifest, allowlist) {
343
+ const names = allowlist.filter((n) => n in manifest.components);
344
+ return [
345
+ "You can render UI by calling render_ui with an A2UI surface (a flat components array; each item is { id, component, children?, ...props }; component is one of the allowed names; children are string ids referencing other items).",
346
+ `Components: ${names.join(", ")}.`,
347
+ `Style each component via the semantic vocabulary (never CSS, colors, or HTML): tone (${TONES.join("/")}), size (${SIZES.join("/")}), emphasis (low/medium/high), align (start/center/end), density (compact/comfortable), plus a component-specific variant where offered.`,
348
+ "Data components MUST carry their data: Chart takes `data` (an array of row objects) + `series` (keys to plot) + `x` (the category key); Table takes `rows` (array of row objects) + `columns` ([{ key, header }] matching the row keys); List takes `items` (array); Stat takes `label`+`value`; KeyValue takes `data` (an object). Put the data inline on the component (or in dataModel referenced via `binding`).",
349
+ "To collect input, add a Button with an action { name, wantResponse: true }; its result (the data model) is returned to you. A surface with no such button is display-only.",
350
+ "IMPORTANT: the rendered surface IS your reply \u2014 do NOT reproduce its content as text, markdown, or ASCII; a one-line intro at most.",
351
+ "Prefer plain text for simple replies."
352
+ ].join(" ");
353
+ }
354
+
355
+ // src/genui/dynamic.ts
356
+ function isPathRef(v) {
357
+ return !!v && typeof v === "object" && typeof v.path === "string";
358
+ }
359
+ function resolveDynamic(v, dataModel) {
360
+ return isPathRef(v) ? getPointer(dataModel, v.path) : v;
361
+ }
362
+
363
+ // src/genui/emit.ts
364
+ import { zodToJsonSchema } from "zod-to-json-schema";
365
+ var toJsonSchema = zodToJsonSchema;
366
+ var SHARED_DEFS = {
367
+ DynamicString: {
368
+ description: "A literal string OR a data-model path reference { path }.",
369
+ oneOf: [
370
+ { type: "string" },
371
+ { type: "object", properties: { path: { type: "string" } }, required: ["path"], additionalProperties: false }
372
+ ]
373
+ },
374
+ Action: {
375
+ description: "A semantic action (never a URL). wantResponse:true returns the data model to the agent.",
376
+ type: "object",
377
+ properties: { name: { type: "string" }, wantResponse: { type: "boolean" } },
378
+ required: ["name"],
379
+ additionalProperties: false
380
+ }
381
+ };
382
+ function emitA2uiCatalog(manifest, opts) {
383
+ const components = {};
384
+ for (const [name, def2] of Object.entries(manifest.components)) {
385
+ const propsSchema = toJsonSchema(def2.schema, { $refStrategy: "none", target: "jsonSchema2020" });
386
+ const properties = {
387
+ component: { const: name },
388
+ ...propsSchema.properties ?? {}
389
+ };
390
+ const required = Array.from(/* @__PURE__ */ new Set(["component", ...propsSchema.required ?? []]));
391
+ components[name] = {
392
+ type: "object",
393
+ properties,
394
+ required,
395
+ // Presentational props are open at authoring time (zod .passthrough()); the tool
396
+ // schema is where the model-facing prop set is fixed. Keep the catalog permissive.
397
+ unevaluatedProperties: false
398
+ };
399
+ }
400
+ return {
401
+ $schema: "https://json-schema.org/draft/2020-12/schema",
402
+ catalogId: opts.catalogId,
403
+ title: "Alquimia Core Catalog",
404
+ description: "Alquimia's default A2UI catalog. Abstract, framework-agnostic component contract; consumers map each component to their own (shadcn) renderer. Generated from the SDK authoring catalog.",
405
+ components,
406
+ $defs: SHARED_DEFS
407
+ };
408
+ }
409
+
410
+ // src/genui/core-v1.catalog.json
411
+ var core_v1_catalog_default = {
412
+ $schema: "https://json-schema.org/draft/2020-12/schema",
413
+ catalogId: "https://alquimia.ai/catalogs/core/v1/catalog.json",
414
+ title: "Alquimia Core Catalog",
415
+ description: "Alquimia's default A2UI catalog. Abstract, framework-agnostic component contract; consumers map each component to their own (shadcn) renderer. Generated from the SDK authoring catalog.",
416
+ components: {
417
+ Stack: {
418
+ type: "object",
419
+ properties: {
420
+ component: {
421
+ const: "Stack"
422
+ },
423
+ tone: {
424
+ type: "string",
425
+ enum: [
426
+ "default",
427
+ "muted",
428
+ "primary",
429
+ "success",
430
+ "warning",
431
+ "danger"
432
+ ]
433
+ },
434
+ size: {
435
+ type: "string",
436
+ enum: [
437
+ "sm",
438
+ "md",
439
+ "lg"
440
+ ]
441
+ },
442
+ emphasis: {
443
+ type: "string",
444
+ enum: [
445
+ "low",
446
+ "medium",
447
+ "high"
448
+ ]
449
+ },
450
+ align: {
451
+ type: "string",
452
+ enum: [
453
+ "start",
454
+ "center",
455
+ "end"
456
+ ]
457
+ },
458
+ density: {
459
+ type: "string",
460
+ enum: [
461
+ "compact",
462
+ "comfortable"
463
+ ]
464
+ },
465
+ direction: {
466
+ type: "string",
467
+ enum: [
468
+ "vertical",
469
+ "horizontal"
470
+ ]
471
+ },
472
+ gap: {
473
+ type: "string",
474
+ enum: [
475
+ "sm",
476
+ "md",
477
+ "lg"
478
+ ]
479
+ }
480
+ },
481
+ required: [
482
+ "component"
483
+ ],
484
+ unevaluatedProperties: false
485
+ },
486
+ Grid: {
487
+ type: "object",
488
+ properties: {
489
+ component: {
490
+ const: "Grid"
491
+ },
492
+ tone: {
493
+ type: "string",
494
+ enum: [
495
+ "default",
496
+ "muted",
497
+ "primary",
498
+ "success",
499
+ "warning",
500
+ "danger"
501
+ ]
502
+ },
503
+ size: {
504
+ type: "string",
505
+ enum: [
506
+ "sm",
507
+ "md",
508
+ "lg"
509
+ ]
510
+ },
511
+ emphasis: {
512
+ type: "string",
513
+ enum: [
514
+ "low",
515
+ "medium",
516
+ "high"
517
+ ]
518
+ },
519
+ align: {
520
+ type: "string",
521
+ enum: [
522
+ "start",
523
+ "center",
524
+ "end"
525
+ ]
526
+ },
527
+ density: {
528
+ type: "string",
529
+ enum: [
530
+ "compact",
531
+ "comfortable"
532
+ ]
533
+ },
534
+ columns: {
535
+ type: "integer",
536
+ minimum: 1,
537
+ maximum: 6
538
+ },
539
+ gap: {
540
+ type: "string",
541
+ enum: [
542
+ "sm",
543
+ "md",
544
+ "lg"
545
+ ]
546
+ }
547
+ },
548
+ required: [
549
+ "component"
550
+ ],
551
+ unevaluatedProperties: false
552
+ },
553
+ Row: {
554
+ type: "object",
555
+ properties: {
556
+ component: {
557
+ const: "Row"
558
+ },
559
+ tone: {
560
+ type: "string",
561
+ enum: [
562
+ "default",
563
+ "muted",
564
+ "primary",
565
+ "success",
566
+ "warning",
567
+ "danger"
568
+ ]
569
+ },
570
+ size: {
571
+ type: "string",
572
+ enum: [
573
+ "sm",
574
+ "md",
575
+ "lg"
576
+ ]
577
+ },
578
+ emphasis: {
579
+ type: "string",
580
+ enum: [
581
+ "low",
582
+ "medium",
583
+ "high"
584
+ ]
585
+ },
586
+ align: {
587
+ type: "string",
588
+ enum: [
589
+ "start",
590
+ "center",
591
+ "end"
592
+ ]
593
+ },
594
+ density: {
595
+ type: "string",
596
+ enum: [
597
+ "compact",
598
+ "comfortable"
599
+ ]
600
+ },
601
+ gap: {
602
+ type: "string",
603
+ enum: [
604
+ "sm",
605
+ "md",
606
+ "lg"
607
+ ]
608
+ },
609
+ wrap: {
610
+ type: "boolean"
611
+ }
612
+ },
613
+ required: [
614
+ "component"
615
+ ],
616
+ unevaluatedProperties: false
617
+ },
618
+ Column: {
619
+ type: "object",
620
+ properties: {
621
+ component: {
622
+ const: "Column"
623
+ },
624
+ tone: {
625
+ type: "string",
626
+ enum: [
627
+ "default",
628
+ "muted",
629
+ "primary",
630
+ "success",
631
+ "warning",
632
+ "danger"
633
+ ]
634
+ },
635
+ size: {
636
+ type: "string",
637
+ enum: [
638
+ "sm",
639
+ "md",
640
+ "lg"
641
+ ]
642
+ },
643
+ emphasis: {
644
+ type: "string",
645
+ enum: [
646
+ "low",
647
+ "medium",
648
+ "high"
649
+ ]
650
+ },
651
+ align: {
652
+ type: "string",
653
+ enum: [
654
+ "start",
655
+ "center",
656
+ "end"
657
+ ]
658
+ },
659
+ density: {
660
+ type: "string",
661
+ enum: [
662
+ "compact",
663
+ "comfortable"
664
+ ]
665
+ },
666
+ gap: {
667
+ type: "string",
668
+ enum: [
669
+ "sm",
670
+ "md",
671
+ "lg"
672
+ ]
673
+ }
674
+ },
675
+ required: [
676
+ "component"
677
+ ],
678
+ unevaluatedProperties: false
679
+ },
680
+ Divider: {
681
+ type: "object",
682
+ properties: {
683
+ component: {
684
+ const: "Divider"
685
+ },
686
+ tone: {
687
+ type: "string",
688
+ enum: [
689
+ "default",
690
+ "muted",
691
+ "primary",
692
+ "success",
693
+ "warning",
694
+ "danger"
695
+ ]
696
+ },
697
+ size: {
698
+ type: "string",
699
+ enum: [
700
+ "sm",
701
+ "md",
702
+ "lg"
703
+ ]
704
+ },
705
+ emphasis: {
706
+ type: "string",
707
+ enum: [
708
+ "low",
709
+ "medium",
710
+ "high"
711
+ ]
712
+ },
713
+ align: {
714
+ type: "string",
715
+ enum: [
716
+ "start",
717
+ "center",
718
+ "end"
719
+ ]
720
+ },
721
+ density: {
722
+ type: "string",
723
+ enum: [
724
+ "compact",
725
+ "comfortable"
726
+ ]
727
+ },
728
+ label: {
729
+ type: "string"
730
+ }
731
+ },
732
+ required: [
733
+ "component"
734
+ ],
735
+ unevaluatedProperties: false
736
+ },
737
+ Spacer: {
738
+ type: "object",
739
+ properties: {
740
+ component: {
741
+ const: "Spacer"
742
+ },
743
+ tone: {
744
+ type: "string",
745
+ enum: [
746
+ "default",
747
+ "muted",
748
+ "primary",
749
+ "success",
750
+ "warning",
751
+ "danger"
752
+ ]
753
+ },
754
+ size: {
755
+ type: "string",
756
+ enum: [
757
+ "sm",
758
+ "md",
759
+ "lg"
760
+ ]
761
+ },
762
+ emphasis: {
763
+ type: "string",
764
+ enum: [
765
+ "low",
766
+ "medium",
767
+ "high"
768
+ ]
769
+ },
770
+ align: {
771
+ type: "string",
772
+ enum: [
773
+ "start",
774
+ "center",
775
+ "end"
776
+ ]
777
+ },
778
+ density: {
779
+ type: "string",
780
+ enum: [
781
+ "compact",
782
+ "comfortable"
783
+ ]
784
+ }
785
+ },
786
+ required: [
787
+ "component"
788
+ ],
789
+ unevaluatedProperties: false
790
+ },
791
+ Card: {
792
+ type: "object",
793
+ properties: {
794
+ component: {
795
+ const: "Card"
796
+ },
797
+ tone: {
798
+ type: "string",
799
+ enum: [
800
+ "default",
801
+ "muted",
802
+ "primary",
803
+ "success",
804
+ "warning",
805
+ "danger"
806
+ ]
807
+ },
808
+ size: {
809
+ type: "string",
810
+ enum: [
811
+ "sm",
812
+ "md",
813
+ "lg"
814
+ ]
815
+ },
816
+ emphasis: {
817
+ type: "string",
818
+ enum: [
819
+ "low",
820
+ "medium",
821
+ "high"
822
+ ]
823
+ },
824
+ align: {
825
+ type: "string",
826
+ enum: [
827
+ "start",
828
+ "center",
829
+ "end"
830
+ ]
831
+ },
832
+ density: {
833
+ type: "string",
834
+ enum: [
835
+ "compact",
836
+ "comfortable"
837
+ ]
838
+ },
839
+ variant: {
840
+ type: "string",
841
+ enum: [
842
+ "elevated",
843
+ "outline",
844
+ "ghost"
845
+ ]
846
+ },
847
+ title: {
848
+ type: "string"
849
+ },
850
+ description: {
851
+ type: "string"
852
+ }
853
+ },
854
+ required: [
855
+ "component"
856
+ ],
857
+ unevaluatedProperties: false
858
+ },
859
+ Accordion: {
860
+ type: "object",
861
+ properties: {
862
+ component: {
863
+ const: "Accordion"
864
+ },
865
+ tone: {
866
+ type: "string",
867
+ enum: [
868
+ "default",
869
+ "muted",
870
+ "primary",
871
+ "success",
872
+ "warning",
873
+ "danger"
874
+ ]
875
+ },
876
+ size: {
877
+ type: "string",
878
+ enum: [
879
+ "sm",
880
+ "md",
881
+ "lg"
882
+ ]
883
+ },
884
+ emphasis: {
885
+ type: "string",
886
+ enum: [
887
+ "low",
888
+ "medium",
889
+ "high"
890
+ ]
891
+ },
892
+ align: {
893
+ type: "string",
894
+ enum: [
895
+ "start",
896
+ "center",
897
+ "end"
898
+ ]
899
+ },
900
+ density: {
901
+ type: "string",
902
+ enum: [
903
+ "compact",
904
+ "comfortable"
905
+ ]
906
+ },
907
+ items: {
908
+ type: "array",
909
+ items: {
910
+ type: "object",
911
+ properties: {
912
+ title: {
913
+ type: "string"
914
+ },
915
+ value: {
916
+ type: "string"
917
+ }
918
+ },
919
+ required: [
920
+ "title",
921
+ "value"
922
+ ],
923
+ additionalProperties: false
924
+ }
925
+ }
926
+ },
927
+ required: [
928
+ "component"
929
+ ],
930
+ unevaluatedProperties: false
931
+ },
932
+ Tabs: {
933
+ type: "object",
934
+ properties: {
935
+ component: {
936
+ const: "Tabs"
937
+ },
938
+ tone: {
939
+ type: "string",
940
+ enum: [
941
+ "default",
942
+ "muted",
943
+ "primary",
944
+ "success",
945
+ "warning",
946
+ "danger"
947
+ ]
948
+ },
949
+ size: {
950
+ type: "string",
951
+ enum: [
952
+ "sm",
953
+ "md",
954
+ "lg"
955
+ ]
956
+ },
957
+ emphasis: {
958
+ type: "string",
959
+ enum: [
960
+ "low",
961
+ "medium",
962
+ "high"
963
+ ]
964
+ },
965
+ align: {
966
+ type: "string",
967
+ enum: [
968
+ "start",
969
+ "center",
970
+ "end"
971
+ ]
972
+ },
973
+ density: {
974
+ type: "string",
975
+ enum: [
976
+ "compact",
977
+ "comfortable"
978
+ ]
979
+ },
980
+ tabs: {
981
+ type: "array",
982
+ items: {
983
+ type: "object",
984
+ properties: {
985
+ label: {
986
+ type: "string"
987
+ },
988
+ value: {
989
+ type: "string"
990
+ }
991
+ },
992
+ required: [
993
+ "label",
994
+ "value"
995
+ ],
996
+ additionalProperties: false
997
+ },
998
+ minItems: 1
999
+ }
1000
+ },
1001
+ required: [
1002
+ "component",
1003
+ "tabs"
1004
+ ],
1005
+ unevaluatedProperties: false
1006
+ },
1007
+ Text: {
1008
+ type: "object",
1009
+ properties: {
1010
+ component: {
1011
+ const: "Text"
1012
+ },
1013
+ tone: {
1014
+ type: "string",
1015
+ enum: [
1016
+ "default",
1017
+ "muted",
1018
+ "primary",
1019
+ "success",
1020
+ "warning",
1021
+ "danger"
1022
+ ]
1023
+ },
1024
+ size: {
1025
+ type: "string",
1026
+ enum: [
1027
+ "sm",
1028
+ "md",
1029
+ "lg"
1030
+ ]
1031
+ },
1032
+ emphasis: {
1033
+ type: "string",
1034
+ enum: [
1035
+ "low",
1036
+ "medium",
1037
+ "high"
1038
+ ]
1039
+ },
1040
+ align: {
1041
+ type: "string",
1042
+ enum: [
1043
+ "start",
1044
+ "center",
1045
+ "end"
1046
+ ]
1047
+ },
1048
+ density: {
1049
+ type: "string",
1050
+ enum: [
1051
+ "compact",
1052
+ "comfortable"
1053
+ ]
1054
+ },
1055
+ variant: {
1056
+ type: "string",
1057
+ enum: [
1058
+ "body",
1059
+ "muted",
1060
+ "caption",
1061
+ "lead"
1062
+ ]
1063
+ },
1064
+ text: {
1065
+ type: "string"
1066
+ }
1067
+ },
1068
+ required: [
1069
+ "component",
1070
+ "text"
1071
+ ],
1072
+ unevaluatedProperties: false
1073
+ },
1074
+ Heading: {
1075
+ type: "object",
1076
+ properties: {
1077
+ component: {
1078
+ const: "Heading"
1079
+ },
1080
+ tone: {
1081
+ type: "string",
1082
+ enum: [
1083
+ "default",
1084
+ "muted",
1085
+ "primary",
1086
+ "success",
1087
+ "warning",
1088
+ "danger"
1089
+ ]
1090
+ },
1091
+ size: {
1092
+ type: "string",
1093
+ enum: [
1094
+ "sm",
1095
+ "md",
1096
+ "lg"
1097
+ ]
1098
+ },
1099
+ emphasis: {
1100
+ type: "string",
1101
+ enum: [
1102
+ "low",
1103
+ "medium",
1104
+ "high"
1105
+ ]
1106
+ },
1107
+ align: {
1108
+ type: "string",
1109
+ enum: [
1110
+ "start",
1111
+ "center",
1112
+ "end"
1113
+ ]
1114
+ },
1115
+ density: {
1116
+ type: "string",
1117
+ enum: [
1118
+ "compact",
1119
+ "comfortable"
1120
+ ]
1121
+ },
1122
+ text: {
1123
+ type: "string"
1124
+ },
1125
+ level: {
1126
+ type: "integer",
1127
+ minimum: 1,
1128
+ maximum: 4
1129
+ }
1130
+ },
1131
+ required: [
1132
+ "component",
1133
+ "text"
1134
+ ],
1135
+ unevaluatedProperties: false
1136
+ },
1137
+ Markdown: {
1138
+ type: "object",
1139
+ properties: {
1140
+ component: {
1141
+ const: "Markdown"
1142
+ },
1143
+ tone: {
1144
+ type: "string",
1145
+ enum: [
1146
+ "default",
1147
+ "muted",
1148
+ "primary",
1149
+ "success",
1150
+ "warning",
1151
+ "danger"
1152
+ ]
1153
+ },
1154
+ size: {
1155
+ type: "string",
1156
+ enum: [
1157
+ "sm",
1158
+ "md",
1159
+ "lg"
1160
+ ]
1161
+ },
1162
+ emphasis: {
1163
+ type: "string",
1164
+ enum: [
1165
+ "low",
1166
+ "medium",
1167
+ "high"
1168
+ ]
1169
+ },
1170
+ align: {
1171
+ type: "string",
1172
+ enum: [
1173
+ "start",
1174
+ "center",
1175
+ "end"
1176
+ ]
1177
+ },
1178
+ density: {
1179
+ type: "string",
1180
+ enum: [
1181
+ "compact",
1182
+ "comfortable"
1183
+ ]
1184
+ },
1185
+ text: {
1186
+ type: "string"
1187
+ }
1188
+ },
1189
+ required: [
1190
+ "component",
1191
+ "text"
1192
+ ],
1193
+ unevaluatedProperties: false
1194
+ },
1195
+ Image: {
1196
+ type: "object",
1197
+ properties: {
1198
+ component: {
1199
+ const: "Image"
1200
+ },
1201
+ tone: {
1202
+ type: "string",
1203
+ enum: [
1204
+ "default",
1205
+ "muted",
1206
+ "primary",
1207
+ "success",
1208
+ "warning",
1209
+ "danger"
1210
+ ]
1211
+ },
1212
+ size: {
1213
+ type: "string",
1214
+ enum: [
1215
+ "sm",
1216
+ "md",
1217
+ "lg"
1218
+ ]
1219
+ },
1220
+ emphasis: {
1221
+ type: "string",
1222
+ enum: [
1223
+ "low",
1224
+ "medium",
1225
+ "high"
1226
+ ]
1227
+ },
1228
+ align: {
1229
+ type: "string",
1230
+ enum: [
1231
+ "start",
1232
+ "center",
1233
+ "end"
1234
+ ]
1235
+ },
1236
+ density: {
1237
+ type: "string",
1238
+ enum: [
1239
+ "compact",
1240
+ "comfortable"
1241
+ ]
1242
+ },
1243
+ src: {
1244
+ type: "string"
1245
+ },
1246
+ alt: {
1247
+ type: "string"
1248
+ }
1249
+ },
1250
+ required: [
1251
+ "component",
1252
+ "src"
1253
+ ],
1254
+ unevaluatedProperties: false
1255
+ },
1256
+ Icon: {
1257
+ type: "object",
1258
+ properties: {
1259
+ component: {
1260
+ const: "Icon"
1261
+ },
1262
+ tone: {
1263
+ type: "string",
1264
+ enum: [
1265
+ "default",
1266
+ "muted",
1267
+ "primary",
1268
+ "success",
1269
+ "warning",
1270
+ "danger"
1271
+ ]
1272
+ },
1273
+ size: {
1274
+ type: "string",
1275
+ enum: [
1276
+ "sm",
1277
+ "md",
1278
+ "lg"
1279
+ ]
1280
+ },
1281
+ emphasis: {
1282
+ type: "string",
1283
+ enum: [
1284
+ "low",
1285
+ "medium",
1286
+ "high"
1287
+ ]
1288
+ },
1289
+ align: {
1290
+ type: "string",
1291
+ enum: [
1292
+ "start",
1293
+ "center",
1294
+ "end"
1295
+ ]
1296
+ },
1297
+ density: {
1298
+ type: "string",
1299
+ enum: [
1300
+ "compact",
1301
+ "comfortable"
1302
+ ]
1303
+ },
1304
+ name: {
1305
+ type: "string"
1306
+ }
1307
+ },
1308
+ required: [
1309
+ "component",
1310
+ "name"
1311
+ ],
1312
+ unevaluatedProperties: false
1313
+ },
1314
+ Badge: {
1315
+ type: "object",
1316
+ properties: {
1317
+ component: {
1318
+ const: "Badge"
1319
+ },
1320
+ tone: {
1321
+ type: "string",
1322
+ enum: [
1323
+ "default",
1324
+ "muted",
1325
+ "primary",
1326
+ "success",
1327
+ "warning",
1328
+ "danger"
1329
+ ]
1330
+ },
1331
+ size: {
1332
+ type: "string",
1333
+ enum: [
1334
+ "sm",
1335
+ "md",
1336
+ "lg"
1337
+ ]
1338
+ },
1339
+ emphasis: {
1340
+ type: "string",
1341
+ enum: [
1342
+ "low",
1343
+ "medium",
1344
+ "high"
1345
+ ]
1346
+ },
1347
+ align: {
1348
+ type: "string",
1349
+ enum: [
1350
+ "start",
1351
+ "center",
1352
+ "end"
1353
+ ]
1354
+ },
1355
+ density: {
1356
+ type: "string",
1357
+ enum: [
1358
+ "compact",
1359
+ "comfortable"
1360
+ ]
1361
+ },
1362
+ variant: {
1363
+ type: "string",
1364
+ enum: [
1365
+ "solid",
1366
+ "outline",
1367
+ "subtle"
1368
+ ]
1369
+ },
1370
+ text: {
1371
+ type: "string"
1372
+ }
1373
+ },
1374
+ required: [
1375
+ "component",
1376
+ "text"
1377
+ ],
1378
+ unevaluatedProperties: false
1379
+ },
1380
+ Avatar: {
1381
+ type: "object",
1382
+ properties: {
1383
+ component: {
1384
+ const: "Avatar"
1385
+ },
1386
+ tone: {
1387
+ type: "string",
1388
+ enum: [
1389
+ "default",
1390
+ "muted",
1391
+ "primary",
1392
+ "success",
1393
+ "warning",
1394
+ "danger"
1395
+ ]
1396
+ },
1397
+ size: {
1398
+ type: "string",
1399
+ enum: [
1400
+ "sm",
1401
+ "md",
1402
+ "lg"
1403
+ ]
1404
+ },
1405
+ emphasis: {
1406
+ type: "string",
1407
+ enum: [
1408
+ "low",
1409
+ "medium",
1410
+ "high"
1411
+ ]
1412
+ },
1413
+ align: {
1414
+ type: "string",
1415
+ enum: [
1416
+ "start",
1417
+ "center",
1418
+ "end"
1419
+ ]
1420
+ },
1421
+ density: {
1422
+ type: "string",
1423
+ enum: [
1424
+ "compact",
1425
+ "comfortable"
1426
+ ]
1427
+ },
1428
+ src: {
1429
+ type: "string"
1430
+ },
1431
+ fallback: {
1432
+ type: "string"
1433
+ }
1434
+ },
1435
+ required: [
1436
+ "component"
1437
+ ],
1438
+ unevaluatedProperties: false
1439
+ },
1440
+ Alert: {
1441
+ type: "object",
1442
+ properties: {
1443
+ component: {
1444
+ const: "Alert"
1445
+ },
1446
+ tone: {
1447
+ type: "string",
1448
+ enum: [
1449
+ "default",
1450
+ "muted",
1451
+ "primary",
1452
+ "success",
1453
+ "warning",
1454
+ "danger"
1455
+ ]
1456
+ },
1457
+ size: {
1458
+ type: "string",
1459
+ enum: [
1460
+ "sm",
1461
+ "md",
1462
+ "lg"
1463
+ ]
1464
+ },
1465
+ emphasis: {
1466
+ type: "string",
1467
+ enum: [
1468
+ "low",
1469
+ "medium",
1470
+ "high"
1471
+ ]
1472
+ },
1473
+ align: {
1474
+ type: "string",
1475
+ enum: [
1476
+ "start",
1477
+ "center",
1478
+ "end"
1479
+ ]
1480
+ },
1481
+ density: {
1482
+ type: "string",
1483
+ enum: [
1484
+ "compact",
1485
+ "comfortable"
1486
+ ]
1487
+ },
1488
+ variant: {
1489
+ type: "string",
1490
+ enum: [
1491
+ "info",
1492
+ "success",
1493
+ "warning",
1494
+ "danger"
1495
+ ]
1496
+ },
1497
+ text: {
1498
+ type: "string"
1499
+ },
1500
+ title: {
1501
+ type: "string"
1502
+ }
1503
+ },
1504
+ required: [
1505
+ "component",
1506
+ "text"
1507
+ ],
1508
+ unevaluatedProperties: false
1509
+ },
1510
+ Stat: {
1511
+ type: "object",
1512
+ properties: {
1513
+ component: {
1514
+ const: "Stat"
1515
+ },
1516
+ tone: {
1517
+ type: "string",
1518
+ enum: [
1519
+ "default",
1520
+ "muted",
1521
+ "primary",
1522
+ "success",
1523
+ "warning",
1524
+ "danger"
1525
+ ]
1526
+ },
1527
+ size: {
1528
+ type: "string",
1529
+ enum: [
1530
+ "sm",
1531
+ "md",
1532
+ "lg"
1533
+ ]
1534
+ },
1535
+ emphasis: {
1536
+ type: "string",
1537
+ enum: [
1538
+ "low",
1539
+ "medium",
1540
+ "high"
1541
+ ]
1542
+ },
1543
+ align: {
1544
+ type: "string",
1545
+ enum: [
1546
+ "start",
1547
+ "center",
1548
+ "end"
1549
+ ]
1550
+ },
1551
+ density: {
1552
+ type: "string",
1553
+ enum: [
1554
+ "compact",
1555
+ "comfortable"
1556
+ ]
1557
+ },
1558
+ label: {
1559
+ type: "string"
1560
+ },
1561
+ value: {
1562
+ type: [
1563
+ "string",
1564
+ "number"
1565
+ ]
1566
+ },
1567
+ delta: {
1568
+ type: "string"
1569
+ }
1570
+ },
1571
+ required: [
1572
+ "component",
1573
+ "label",
1574
+ "value"
1575
+ ],
1576
+ unevaluatedProperties: false
1577
+ },
1578
+ KeyValue: {
1579
+ type: "object",
1580
+ properties: {
1581
+ component: {
1582
+ const: "KeyValue"
1583
+ },
1584
+ tone: {
1585
+ type: "string",
1586
+ enum: [
1587
+ "default",
1588
+ "muted",
1589
+ "primary",
1590
+ "success",
1591
+ "warning",
1592
+ "danger"
1593
+ ]
1594
+ },
1595
+ size: {
1596
+ type: "string",
1597
+ enum: [
1598
+ "sm",
1599
+ "md",
1600
+ "lg"
1601
+ ]
1602
+ },
1603
+ emphasis: {
1604
+ type: "string",
1605
+ enum: [
1606
+ "low",
1607
+ "medium",
1608
+ "high"
1609
+ ]
1610
+ },
1611
+ align: {
1612
+ type: "string",
1613
+ enum: [
1614
+ "start",
1615
+ "center",
1616
+ "end"
1617
+ ]
1618
+ },
1619
+ density: {
1620
+ type: "string",
1621
+ enum: [
1622
+ "compact",
1623
+ "comfortable"
1624
+ ]
1625
+ }
1626
+ },
1627
+ required: [
1628
+ "component"
1629
+ ],
1630
+ unevaluatedProperties: false
1631
+ },
1632
+ List: {
1633
+ type: "object",
1634
+ properties: {
1635
+ component: {
1636
+ const: "List"
1637
+ },
1638
+ tone: {
1639
+ type: "string",
1640
+ enum: [
1641
+ "default",
1642
+ "muted",
1643
+ "primary",
1644
+ "success",
1645
+ "warning",
1646
+ "danger"
1647
+ ]
1648
+ },
1649
+ size: {
1650
+ type: "string",
1651
+ enum: [
1652
+ "sm",
1653
+ "md",
1654
+ "lg"
1655
+ ]
1656
+ },
1657
+ emphasis: {
1658
+ type: "string",
1659
+ enum: [
1660
+ "low",
1661
+ "medium",
1662
+ "high"
1663
+ ]
1664
+ },
1665
+ align: {
1666
+ type: "string",
1667
+ enum: [
1668
+ "start",
1669
+ "center",
1670
+ "end"
1671
+ ]
1672
+ },
1673
+ density: {
1674
+ type: "string",
1675
+ enum: [
1676
+ "compact",
1677
+ "comfortable"
1678
+ ]
1679
+ },
1680
+ ordered: {
1681
+ type: "boolean"
1682
+ }
1683
+ },
1684
+ required: [
1685
+ "component"
1686
+ ],
1687
+ unevaluatedProperties: false
1688
+ },
1689
+ Quote: {
1690
+ type: "object",
1691
+ properties: {
1692
+ component: {
1693
+ const: "Quote"
1694
+ },
1695
+ tone: {
1696
+ type: "string",
1697
+ enum: [
1698
+ "default",
1699
+ "muted",
1700
+ "primary",
1701
+ "success",
1702
+ "warning",
1703
+ "danger"
1704
+ ]
1705
+ },
1706
+ size: {
1707
+ type: "string",
1708
+ enum: [
1709
+ "sm",
1710
+ "md",
1711
+ "lg"
1712
+ ]
1713
+ },
1714
+ emphasis: {
1715
+ type: "string",
1716
+ enum: [
1717
+ "low",
1718
+ "medium",
1719
+ "high"
1720
+ ]
1721
+ },
1722
+ align: {
1723
+ type: "string",
1724
+ enum: [
1725
+ "start",
1726
+ "center",
1727
+ "end"
1728
+ ]
1729
+ },
1730
+ density: {
1731
+ type: "string",
1732
+ enum: [
1733
+ "compact",
1734
+ "comfortable"
1735
+ ]
1736
+ },
1737
+ text: {
1738
+ type: "string"
1739
+ },
1740
+ cite: {
1741
+ type: "string"
1742
+ }
1743
+ },
1744
+ required: [
1745
+ "component",
1746
+ "text"
1747
+ ],
1748
+ unevaluatedProperties: false
1749
+ },
1750
+ TextField: {
1751
+ type: "object",
1752
+ properties: {
1753
+ component: {
1754
+ const: "TextField"
1755
+ },
1756
+ tone: {
1757
+ type: "string",
1758
+ enum: [
1759
+ "default",
1760
+ "muted",
1761
+ "primary",
1762
+ "success",
1763
+ "warning",
1764
+ "danger"
1765
+ ]
1766
+ },
1767
+ size: {
1768
+ type: "string",
1769
+ enum: [
1770
+ "sm",
1771
+ "md",
1772
+ "lg"
1773
+ ]
1774
+ },
1775
+ emphasis: {
1776
+ type: "string",
1777
+ enum: [
1778
+ "low",
1779
+ "medium",
1780
+ "high"
1781
+ ]
1782
+ },
1783
+ align: {
1784
+ type: "string",
1785
+ enum: [
1786
+ "start",
1787
+ "center",
1788
+ "end"
1789
+ ]
1790
+ },
1791
+ density: {
1792
+ type: "string",
1793
+ enum: [
1794
+ "compact",
1795
+ "comfortable"
1796
+ ]
1797
+ },
1798
+ label: {
1799
+ type: "string"
1800
+ },
1801
+ placeholder: {
1802
+ type: "string"
1803
+ }
1804
+ },
1805
+ required: [
1806
+ "component"
1807
+ ],
1808
+ unevaluatedProperties: false
1809
+ },
1810
+ TextArea: {
1811
+ type: "object",
1812
+ properties: {
1813
+ component: {
1814
+ const: "TextArea"
1815
+ },
1816
+ tone: {
1817
+ type: "string",
1818
+ enum: [
1819
+ "default",
1820
+ "muted",
1821
+ "primary",
1822
+ "success",
1823
+ "warning",
1824
+ "danger"
1825
+ ]
1826
+ },
1827
+ size: {
1828
+ type: "string",
1829
+ enum: [
1830
+ "sm",
1831
+ "md",
1832
+ "lg"
1833
+ ]
1834
+ },
1835
+ emphasis: {
1836
+ type: "string",
1837
+ enum: [
1838
+ "low",
1839
+ "medium",
1840
+ "high"
1841
+ ]
1842
+ },
1843
+ align: {
1844
+ type: "string",
1845
+ enum: [
1846
+ "start",
1847
+ "center",
1848
+ "end"
1849
+ ]
1850
+ },
1851
+ density: {
1852
+ type: "string",
1853
+ enum: [
1854
+ "compact",
1855
+ "comfortable"
1856
+ ]
1857
+ },
1858
+ label: {
1859
+ type: "string"
1860
+ },
1861
+ placeholder: {
1862
+ type: "string"
1863
+ },
1864
+ rows: {
1865
+ type: "integer"
1866
+ }
1867
+ },
1868
+ required: [
1869
+ "component"
1870
+ ],
1871
+ unevaluatedProperties: false
1872
+ },
1873
+ NumberField: {
1874
+ type: "object",
1875
+ properties: {
1876
+ component: {
1877
+ const: "NumberField"
1878
+ },
1879
+ tone: {
1880
+ type: "string",
1881
+ enum: [
1882
+ "default",
1883
+ "muted",
1884
+ "primary",
1885
+ "success",
1886
+ "warning",
1887
+ "danger"
1888
+ ]
1889
+ },
1890
+ size: {
1891
+ type: "string",
1892
+ enum: [
1893
+ "sm",
1894
+ "md",
1895
+ "lg"
1896
+ ]
1897
+ },
1898
+ emphasis: {
1899
+ type: "string",
1900
+ enum: [
1901
+ "low",
1902
+ "medium",
1903
+ "high"
1904
+ ]
1905
+ },
1906
+ align: {
1907
+ type: "string",
1908
+ enum: [
1909
+ "start",
1910
+ "center",
1911
+ "end"
1912
+ ]
1913
+ },
1914
+ density: {
1915
+ type: "string",
1916
+ enum: [
1917
+ "compact",
1918
+ "comfortable"
1919
+ ]
1920
+ },
1921
+ label: {
1922
+ type: "string"
1923
+ },
1924
+ min: {
1925
+ type: "number"
1926
+ },
1927
+ max: {
1928
+ type: "number"
1929
+ },
1930
+ step: {
1931
+ type: "number"
1932
+ }
1933
+ },
1934
+ required: [
1935
+ "component"
1936
+ ],
1937
+ unevaluatedProperties: false
1938
+ },
1939
+ Select: {
1940
+ type: "object",
1941
+ properties: {
1942
+ component: {
1943
+ const: "Select"
1944
+ },
1945
+ tone: {
1946
+ type: "string",
1947
+ enum: [
1948
+ "default",
1949
+ "muted",
1950
+ "primary",
1951
+ "success",
1952
+ "warning",
1953
+ "danger"
1954
+ ]
1955
+ },
1956
+ size: {
1957
+ type: "string",
1958
+ enum: [
1959
+ "sm",
1960
+ "md",
1961
+ "lg"
1962
+ ]
1963
+ },
1964
+ emphasis: {
1965
+ type: "string",
1966
+ enum: [
1967
+ "low",
1968
+ "medium",
1969
+ "high"
1970
+ ]
1971
+ },
1972
+ align: {
1973
+ type: "string",
1974
+ enum: [
1975
+ "start",
1976
+ "center",
1977
+ "end"
1978
+ ]
1979
+ },
1980
+ density: {
1981
+ type: "string",
1982
+ enum: [
1983
+ "compact",
1984
+ "comfortable"
1985
+ ]
1986
+ },
1987
+ label: {
1988
+ type: "string"
1989
+ },
1990
+ placeholder: {
1991
+ type: "string"
1992
+ },
1993
+ options: {
1994
+ type: "array",
1995
+ items: {
1996
+ type: "object",
1997
+ properties: {
1998
+ label: {
1999
+ type: "string"
2000
+ },
2001
+ value: {
2002
+ type: [
2003
+ "string",
2004
+ "number"
2005
+ ]
2006
+ }
2007
+ },
2008
+ required: [
2009
+ "label",
2010
+ "value"
2011
+ ],
2012
+ additionalProperties: false
2013
+ },
2014
+ minItems: 1
2015
+ }
2016
+ },
2017
+ required: [
2018
+ "component",
2019
+ "options"
2020
+ ],
2021
+ unevaluatedProperties: false
2022
+ },
2023
+ MultiSelect: {
2024
+ type: "object",
2025
+ properties: {
2026
+ component: {
2027
+ const: "MultiSelect"
2028
+ },
2029
+ tone: {
2030
+ type: "string",
2031
+ enum: [
2032
+ "default",
2033
+ "muted",
2034
+ "primary",
2035
+ "success",
2036
+ "warning",
2037
+ "danger"
2038
+ ]
2039
+ },
2040
+ size: {
2041
+ type: "string",
2042
+ enum: [
2043
+ "sm",
2044
+ "md",
2045
+ "lg"
2046
+ ]
2047
+ },
2048
+ emphasis: {
2049
+ type: "string",
2050
+ enum: [
2051
+ "low",
2052
+ "medium",
2053
+ "high"
2054
+ ]
2055
+ },
2056
+ align: {
2057
+ type: "string",
2058
+ enum: [
2059
+ "start",
2060
+ "center",
2061
+ "end"
2062
+ ]
2063
+ },
2064
+ density: {
2065
+ type: "string",
2066
+ enum: [
2067
+ "compact",
2068
+ "comfortable"
2069
+ ]
2070
+ },
2071
+ label: {
2072
+ type: "string"
2073
+ },
2074
+ options: {
2075
+ type: "array",
2076
+ items: {
2077
+ type: "object",
2078
+ properties: {
2079
+ label: {
2080
+ type: "string"
2081
+ },
2082
+ value: {
2083
+ type: [
2084
+ "string",
2085
+ "number"
2086
+ ]
2087
+ }
2088
+ },
2089
+ required: [
2090
+ "label",
2091
+ "value"
2092
+ ],
2093
+ additionalProperties: false
2094
+ },
2095
+ minItems: 1
2096
+ }
2097
+ },
2098
+ required: [
2099
+ "component",
2100
+ "options"
2101
+ ],
2102
+ unevaluatedProperties: false
2103
+ },
2104
+ Combobox: {
2105
+ type: "object",
2106
+ properties: {
2107
+ component: {
2108
+ const: "Combobox"
2109
+ },
2110
+ tone: {
2111
+ type: "string",
2112
+ enum: [
2113
+ "default",
2114
+ "muted",
2115
+ "primary",
2116
+ "success",
2117
+ "warning",
2118
+ "danger"
2119
+ ]
2120
+ },
2121
+ size: {
2122
+ type: "string",
2123
+ enum: [
2124
+ "sm",
2125
+ "md",
2126
+ "lg"
2127
+ ]
2128
+ },
2129
+ emphasis: {
2130
+ type: "string",
2131
+ enum: [
2132
+ "low",
2133
+ "medium",
2134
+ "high"
2135
+ ]
2136
+ },
2137
+ align: {
2138
+ type: "string",
2139
+ enum: [
2140
+ "start",
2141
+ "center",
2142
+ "end"
2143
+ ]
2144
+ },
2145
+ density: {
2146
+ type: "string",
2147
+ enum: [
2148
+ "compact",
2149
+ "comfortable"
2150
+ ]
2151
+ },
2152
+ label: {
2153
+ type: "string"
2154
+ },
2155
+ placeholder: {
2156
+ type: "string"
2157
+ },
2158
+ options: {
2159
+ type: "array",
2160
+ items: {
2161
+ type: "object",
2162
+ properties: {
2163
+ label: {
2164
+ type: "string"
2165
+ },
2166
+ value: {
2167
+ type: [
2168
+ "string",
2169
+ "number"
2170
+ ]
2171
+ }
2172
+ },
2173
+ required: [
2174
+ "label",
2175
+ "value"
2176
+ ],
2177
+ additionalProperties: false
2178
+ },
2179
+ minItems: 1
2180
+ }
2181
+ },
2182
+ required: [
2183
+ "component",
2184
+ "options"
2185
+ ],
2186
+ unevaluatedProperties: false
2187
+ },
2188
+ Checkbox: {
2189
+ type: "object",
2190
+ properties: {
2191
+ component: {
2192
+ const: "Checkbox"
2193
+ },
2194
+ tone: {
2195
+ type: "string",
2196
+ enum: [
2197
+ "default",
2198
+ "muted",
2199
+ "primary",
2200
+ "success",
2201
+ "warning",
2202
+ "danger"
2203
+ ]
2204
+ },
2205
+ size: {
2206
+ type: "string",
2207
+ enum: [
2208
+ "sm",
2209
+ "md",
2210
+ "lg"
2211
+ ]
2212
+ },
2213
+ emphasis: {
2214
+ type: "string",
2215
+ enum: [
2216
+ "low",
2217
+ "medium",
2218
+ "high"
2219
+ ]
2220
+ },
2221
+ align: {
2222
+ type: "string",
2223
+ enum: [
2224
+ "start",
2225
+ "center",
2226
+ "end"
2227
+ ]
2228
+ },
2229
+ density: {
2230
+ type: "string",
2231
+ enum: [
2232
+ "compact",
2233
+ "comfortable"
2234
+ ]
2235
+ },
2236
+ label: {
2237
+ type: "string"
2238
+ }
2239
+ },
2240
+ required: [
2241
+ "component"
2242
+ ],
2243
+ unevaluatedProperties: false
2244
+ },
2245
+ CheckboxGroup: {
2246
+ type: "object",
2247
+ properties: {
2248
+ component: {
2249
+ const: "CheckboxGroup"
2250
+ },
2251
+ tone: {
2252
+ type: "string",
2253
+ enum: [
2254
+ "default",
2255
+ "muted",
2256
+ "primary",
2257
+ "success",
2258
+ "warning",
2259
+ "danger"
2260
+ ]
2261
+ },
2262
+ size: {
2263
+ type: "string",
2264
+ enum: [
2265
+ "sm",
2266
+ "md",
2267
+ "lg"
2268
+ ]
2269
+ },
2270
+ emphasis: {
2271
+ type: "string",
2272
+ enum: [
2273
+ "low",
2274
+ "medium",
2275
+ "high"
2276
+ ]
2277
+ },
2278
+ align: {
2279
+ type: "string",
2280
+ enum: [
2281
+ "start",
2282
+ "center",
2283
+ "end"
2284
+ ]
2285
+ },
2286
+ density: {
2287
+ type: "string",
2288
+ enum: [
2289
+ "compact",
2290
+ "comfortable"
2291
+ ]
2292
+ },
2293
+ label: {
2294
+ type: "string"
2295
+ },
2296
+ options: {
2297
+ type: "array",
2298
+ items: {
2299
+ type: "object",
2300
+ properties: {
2301
+ label: {
2302
+ type: "string"
2303
+ },
2304
+ value: {
2305
+ type: [
2306
+ "string",
2307
+ "number"
2308
+ ]
2309
+ }
2310
+ },
2311
+ required: [
2312
+ "label",
2313
+ "value"
2314
+ ],
2315
+ additionalProperties: false
2316
+ },
2317
+ minItems: 1
2318
+ }
2319
+ },
2320
+ required: [
2321
+ "component",
2322
+ "options"
2323
+ ],
2324
+ unevaluatedProperties: false
2325
+ },
2326
+ Radio: {
2327
+ type: "object",
2328
+ properties: {
2329
+ component: {
2330
+ const: "Radio"
2331
+ },
2332
+ tone: {
2333
+ type: "string",
2334
+ enum: [
2335
+ "default",
2336
+ "muted",
2337
+ "primary",
2338
+ "success",
2339
+ "warning",
2340
+ "danger"
2341
+ ]
2342
+ },
2343
+ size: {
2344
+ type: "string",
2345
+ enum: [
2346
+ "sm",
2347
+ "md",
2348
+ "lg"
2349
+ ]
2350
+ },
2351
+ emphasis: {
2352
+ type: "string",
2353
+ enum: [
2354
+ "low",
2355
+ "medium",
2356
+ "high"
2357
+ ]
2358
+ },
2359
+ align: {
2360
+ type: "string",
2361
+ enum: [
2362
+ "start",
2363
+ "center",
2364
+ "end"
2365
+ ]
2366
+ },
2367
+ density: {
2368
+ type: "string",
2369
+ enum: [
2370
+ "compact",
2371
+ "comfortable"
2372
+ ]
2373
+ },
2374
+ label: {
2375
+ type: "string"
2376
+ },
2377
+ options: {
2378
+ type: "array",
2379
+ items: {
2380
+ type: "object",
2381
+ properties: {
2382
+ label: {
2383
+ type: "string"
2384
+ },
2385
+ value: {
2386
+ type: [
2387
+ "string",
2388
+ "number"
2389
+ ]
2390
+ }
2391
+ },
2392
+ required: [
2393
+ "label",
2394
+ "value"
2395
+ ],
2396
+ additionalProperties: false
2397
+ },
2398
+ minItems: 1
2399
+ }
2400
+ },
2401
+ required: [
2402
+ "component",
2403
+ "options"
2404
+ ],
2405
+ unevaluatedProperties: false
2406
+ },
2407
+ Switch: {
2408
+ type: "object",
2409
+ properties: {
2410
+ component: {
2411
+ const: "Switch"
2412
+ },
2413
+ tone: {
2414
+ type: "string",
2415
+ enum: [
2416
+ "default",
2417
+ "muted",
2418
+ "primary",
2419
+ "success",
2420
+ "warning",
2421
+ "danger"
2422
+ ]
2423
+ },
2424
+ size: {
2425
+ type: "string",
2426
+ enum: [
2427
+ "sm",
2428
+ "md",
2429
+ "lg"
2430
+ ]
2431
+ },
2432
+ emphasis: {
2433
+ type: "string",
2434
+ enum: [
2435
+ "low",
2436
+ "medium",
2437
+ "high"
2438
+ ]
2439
+ },
2440
+ align: {
2441
+ type: "string",
2442
+ enum: [
2443
+ "start",
2444
+ "center",
2445
+ "end"
2446
+ ]
2447
+ },
2448
+ density: {
2449
+ type: "string",
2450
+ enum: [
2451
+ "compact",
2452
+ "comfortable"
2453
+ ]
2454
+ },
2455
+ label: {
2456
+ type: "string"
2457
+ }
2458
+ },
2459
+ required: [
2460
+ "component"
2461
+ ],
2462
+ unevaluatedProperties: false
2463
+ },
2464
+ Slider: {
2465
+ type: "object",
2466
+ properties: {
2467
+ component: {
2468
+ const: "Slider"
2469
+ },
2470
+ tone: {
2471
+ type: "string",
2472
+ enum: [
2473
+ "default",
2474
+ "muted",
2475
+ "primary",
2476
+ "success",
2477
+ "warning",
2478
+ "danger"
2479
+ ]
2480
+ },
2481
+ size: {
2482
+ type: "string",
2483
+ enum: [
2484
+ "sm",
2485
+ "md",
2486
+ "lg"
2487
+ ]
2488
+ },
2489
+ emphasis: {
2490
+ type: "string",
2491
+ enum: [
2492
+ "low",
2493
+ "medium",
2494
+ "high"
2495
+ ]
2496
+ },
2497
+ align: {
2498
+ type: "string",
2499
+ enum: [
2500
+ "start",
2501
+ "center",
2502
+ "end"
2503
+ ]
2504
+ },
2505
+ density: {
2506
+ type: "string",
2507
+ enum: [
2508
+ "compact",
2509
+ "comfortable"
2510
+ ]
2511
+ },
2512
+ label: {
2513
+ type: "string"
2514
+ },
2515
+ min: {
2516
+ type: "number"
2517
+ },
2518
+ max: {
2519
+ type: "number"
2520
+ },
2521
+ step: {
2522
+ type: "number"
2523
+ }
2524
+ },
2525
+ required: [
2526
+ "component"
2527
+ ],
2528
+ unevaluatedProperties: false
2529
+ },
2530
+ DatePicker: {
2531
+ type: "object",
2532
+ properties: {
2533
+ component: {
2534
+ const: "DatePicker"
2535
+ },
2536
+ tone: {
2537
+ type: "string",
2538
+ enum: [
2539
+ "default",
2540
+ "muted",
2541
+ "primary",
2542
+ "success",
2543
+ "warning",
2544
+ "danger"
2545
+ ]
2546
+ },
2547
+ size: {
2548
+ type: "string",
2549
+ enum: [
2550
+ "sm",
2551
+ "md",
2552
+ "lg"
2553
+ ]
2554
+ },
2555
+ emphasis: {
2556
+ type: "string",
2557
+ enum: [
2558
+ "low",
2559
+ "medium",
2560
+ "high"
2561
+ ]
2562
+ },
2563
+ align: {
2564
+ type: "string",
2565
+ enum: [
2566
+ "start",
2567
+ "center",
2568
+ "end"
2569
+ ]
2570
+ },
2571
+ density: {
2572
+ type: "string",
2573
+ enum: [
2574
+ "compact",
2575
+ "comfortable"
2576
+ ]
2577
+ },
2578
+ label: {
2579
+ type: "string"
2580
+ }
2581
+ },
2582
+ required: [
2583
+ "component"
2584
+ ],
2585
+ unevaluatedProperties: false
2586
+ },
2587
+ DateRange: {
2588
+ type: "object",
2589
+ properties: {
2590
+ component: {
2591
+ const: "DateRange"
2592
+ },
2593
+ tone: {
2594
+ type: "string",
2595
+ enum: [
2596
+ "default",
2597
+ "muted",
2598
+ "primary",
2599
+ "success",
2600
+ "warning",
2601
+ "danger"
2602
+ ]
2603
+ },
2604
+ size: {
2605
+ type: "string",
2606
+ enum: [
2607
+ "sm",
2608
+ "md",
2609
+ "lg"
2610
+ ]
2611
+ },
2612
+ emphasis: {
2613
+ type: "string",
2614
+ enum: [
2615
+ "low",
2616
+ "medium",
2617
+ "high"
2618
+ ]
2619
+ },
2620
+ align: {
2621
+ type: "string",
2622
+ enum: [
2623
+ "start",
2624
+ "center",
2625
+ "end"
2626
+ ]
2627
+ },
2628
+ density: {
2629
+ type: "string",
2630
+ enum: [
2631
+ "compact",
2632
+ "comfortable"
2633
+ ]
2634
+ },
2635
+ label: {
2636
+ type: "string"
2637
+ }
2638
+ },
2639
+ required: [
2640
+ "component"
2641
+ ],
2642
+ unevaluatedProperties: false
2643
+ },
2644
+ FileUpload: {
2645
+ type: "object",
2646
+ properties: {
2647
+ component: {
2648
+ const: "FileUpload"
2649
+ },
2650
+ tone: {
2651
+ type: "string",
2652
+ enum: [
2653
+ "default",
2654
+ "muted",
2655
+ "primary",
2656
+ "success",
2657
+ "warning",
2658
+ "danger"
2659
+ ]
2660
+ },
2661
+ size: {
2662
+ type: "string",
2663
+ enum: [
2664
+ "sm",
2665
+ "md",
2666
+ "lg"
2667
+ ]
2668
+ },
2669
+ emphasis: {
2670
+ type: "string",
2671
+ enum: [
2672
+ "low",
2673
+ "medium",
2674
+ "high"
2675
+ ]
2676
+ },
2677
+ align: {
2678
+ type: "string",
2679
+ enum: [
2680
+ "start",
2681
+ "center",
2682
+ "end"
2683
+ ]
2684
+ },
2685
+ density: {
2686
+ type: "string",
2687
+ enum: [
2688
+ "compact",
2689
+ "comfortable"
2690
+ ]
2691
+ },
2692
+ label: {
2693
+ type: "string"
2694
+ },
2695
+ accept: {
2696
+ type: "string"
2697
+ },
2698
+ multiple: {
2699
+ type: "boolean"
2700
+ }
2701
+ },
2702
+ required: [
2703
+ "component"
2704
+ ],
2705
+ unevaluatedProperties: false
2706
+ },
2707
+ Rating: {
2708
+ type: "object",
2709
+ properties: {
2710
+ component: {
2711
+ const: "Rating"
2712
+ },
2713
+ tone: {
2714
+ type: "string",
2715
+ enum: [
2716
+ "default",
2717
+ "muted",
2718
+ "primary",
2719
+ "success",
2720
+ "warning",
2721
+ "danger"
2722
+ ]
2723
+ },
2724
+ size: {
2725
+ type: "string",
2726
+ enum: [
2727
+ "sm",
2728
+ "md",
2729
+ "lg"
2730
+ ]
2731
+ },
2732
+ emphasis: {
2733
+ type: "string",
2734
+ enum: [
2735
+ "low",
2736
+ "medium",
2737
+ "high"
2738
+ ]
2739
+ },
2740
+ align: {
2741
+ type: "string",
2742
+ enum: [
2743
+ "start",
2744
+ "center",
2745
+ "end"
2746
+ ]
2747
+ },
2748
+ density: {
2749
+ type: "string",
2750
+ enum: [
2751
+ "compact",
2752
+ "comfortable"
2753
+ ]
2754
+ },
2755
+ label: {
2756
+ type: "string"
2757
+ },
2758
+ max: {
2759
+ type: "integer"
2760
+ }
2761
+ },
2762
+ required: [
2763
+ "component"
2764
+ ],
2765
+ unevaluatedProperties: false
2766
+ },
2767
+ Table: {
2768
+ type: "object",
2769
+ properties: {
2770
+ component: {
2771
+ const: "Table"
2772
+ },
2773
+ tone: {
2774
+ type: "string",
2775
+ enum: [
2776
+ "default",
2777
+ "muted",
2778
+ "primary",
2779
+ "success",
2780
+ "warning",
2781
+ "danger"
2782
+ ]
2783
+ },
2784
+ size: {
2785
+ type: "string",
2786
+ enum: [
2787
+ "sm",
2788
+ "md",
2789
+ "lg"
2790
+ ]
2791
+ },
2792
+ emphasis: {
2793
+ type: "string",
2794
+ enum: [
2795
+ "low",
2796
+ "medium",
2797
+ "high"
2798
+ ]
2799
+ },
2800
+ align: {
2801
+ type: "string",
2802
+ enum: [
2803
+ "start",
2804
+ "center",
2805
+ "end"
2806
+ ]
2807
+ },
2808
+ density: {
2809
+ type: "string",
2810
+ enum: [
2811
+ "compact",
2812
+ "comfortable"
2813
+ ]
2814
+ },
2815
+ columns: {
2816
+ type: "array",
2817
+ items: {
2818
+ type: "object",
2819
+ properties: {
2820
+ key: {
2821
+ type: "string"
2822
+ },
2823
+ header: {
2824
+ type: "string"
2825
+ }
2826
+ },
2827
+ required: [
2828
+ "key"
2829
+ ],
2830
+ additionalProperties: false
2831
+ },
2832
+ minItems: 1
2833
+ },
2834
+ sortable: {
2835
+ type: "boolean"
2836
+ }
2837
+ },
2838
+ required: [
2839
+ "component",
2840
+ "columns"
2841
+ ],
2842
+ unevaluatedProperties: false
2843
+ },
2844
+ Chart: {
2845
+ type: "object",
2846
+ properties: {
2847
+ component: {
2848
+ const: "Chart"
2849
+ },
2850
+ tone: {
2851
+ type: "string",
2852
+ enum: [
2853
+ "default",
2854
+ "muted",
2855
+ "primary",
2856
+ "success",
2857
+ "warning",
2858
+ "danger"
2859
+ ]
2860
+ },
2861
+ size: {
2862
+ type: "string",
2863
+ enum: [
2864
+ "sm",
2865
+ "md",
2866
+ "lg"
2867
+ ]
2868
+ },
2869
+ emphasis: {
2870
+ type: "string",
2871
+ enum: [
2872
+ "low",
2873
+ "medium",
2874
+ "high"
2875
+ ]
2876
+ },
2877
+ align: {
2878
+ type: "string",
2879
+ enum: [
2880
+ "start",
2881
+ "center",
2882
+ "end"
2883
+ ]
2884
+ },
2885
+ density: {
2886
+ type: "string",
2887
+ enum: [
2888
+ "compact",
2889
+ "comfortable"
2890
+ ]
2891
+ },
2892
+ kind: {
2893
+ type: "string",
2894
+ enum: [
2895
+ "bar",
2896
+ "line",
2897
+ "area",
2898
+ "pie"
2899
+ ]
2900
+ },
2901
+ x: {
2902
+ type: "string"
2903
+ },
2904
+ series: {
2905
+ type: "array",
2906
+ items: {
2907
+ type: "object",
2908
+ properties: {
2909
+ key: {
2910
+ type: "string"
2911
+ },
2912
+ label: {
2913
+ type: "string"
2914
+ }
2915
+ },
2916
+ required: [
2917
+ "key"
2918
+ ],
2919
+ additionalProperties: false
2920
+ },
2921
+ minItems: 1
2922
+ },
2923
+ title: {
2924
+ type: "string"
2925
+ }
2926
+ },
2927
+ required: [
2928
+ "component",
2929
+ "kind",
2930
+ "series"
2931
+ ],
2932
+ unevaluatedProperties: false
2933
+ },
2934
+ Progress: {
2935
+ type: "object",
2936
+ properties: {
2937
+ component: {
2938
+ const: "Progress"
2939
+ },
2940
+ tone: {
2941
+ type: "string",
2942
+ enum: [
2943
+ "default",
2944
+ "muted",
2945
+ "primary",
2946
+ "success",
2947
+ "warning",
2948
+ "danger"
2949
+ ]
2950
+ },
2951
+ size: {
2952
+ type: "string",
2953
+ enum: [
2954
+ "sm",
2955
+ "md",
2956
+ "lg"
2957
+ ]
2958
+ },
2959
+ emphasis: {
2960
+ type: "string",
2961
+ enum: [
2962
+ "low",
2963
+ "medium",
2964
+ "high"
2965
+ ]
2966
+ },
2967
+ align: {
2968
+ type: "string",
2969
+ enum: [
2970
+ "start",
2971
+ "center",
2972
+ "end"
2973
+ ]
2974
+ },
2975
+ density: {
2976
+ type: "string",
2977
+ enum: [
2978
+ "compact",
2979
+ "comfortable"
2980
+ ]
2981
+ },
2982
+ value: {
2983
+ type: "number"
2984
+ },
2985
+ max: {
2986
+ type: "number"
2987
+ },
2988
+ label: {
2989
+ type: "string"
2990
+ }
2991
+ },
2992
+ required: [
2993
+ "component",
2994
+ "value"
2995
+ ],
2996
+ unevaluatedProperties: false
2997
+ },
2998
+ Timeline: {
2999
+ type: "object",
3000
+ properties: {
3001
+ component: {
3002
+ const: "Timeline"
3003
+ },
3004
+ tone: {
3005
+ type: "string",
3006
+ enum: [
3007
+ "default",
3008
+ "muted",
3009
+ "primary",
3010
+ "success",
3011
+ "warning",
3012
+ "danger"
3013
+ ]
3014
+ },
3015
+ size: {
3016
+ type: "string",
3017
+ enum: [
3018
+ "sm",
3019
+ "md",
3020
+ "lg"
3021
+ ]
3022
+ },
3023
+ emphasis: {
3024
+ type: "string",
3025
+ enum: [
3026
+ "low",
3027
+ "medium",
3028
+ "high"
3029
+ ]
3030
+ },
3031
+ align: {
3032
+ type: "string",
3033
+ enum: [
3034
+ "start",
3035
+ "center",
3036
+ "end"
3037
+ ]
3038
+ },
3039
+ density: {
3040
+ type: "string",
3041
+ enum: [
3042
+ "compact",
3043
+ "comfortable"
3044
+ ]
3045
+ },
3046
+ items: {
3047
+ type: "array",
3048
+ items: {
3049
+ type: "object",
3050
+ properties: {
3051
+ title: {
3052
+ type: "string"
3053
+ },
3054
+ description: {
3055
+ type: "string"
3056
+ },
3057
+ timestamp: {
3058
+ type: "string"
3059
+ }
3060
+ },
3061
+ required: [
3062
+ "title"
3063
+ ],
3064
+ additionalProperties: false
3065
+ },
3066
+ minItems: 1
3067
+ }
3068
+ },
3069
+ required: [
3070
+ "component",
3071
+ "items"
3072
+ ],
3073
+ unevaluatedProperties: false
3074
+ },
3075
+ Button: {
3076
+ type: "object",
3077
+ properties: {
3078
+ component: {
3079
+ const: "Button"
3080
+ },
3081
+ tone: {
3082
+ type: "string",
3083
+ enum: [
3084
+ "default",
3085
+ "muted",
3086
+ "primary",
3087
+ "success",
3088
+ "warning",
3089
+ "danger"
3090
+ ]
3091
+ },
3092
+ size: {
3093
+ type: "string",
3094
+ enum: [
3095
+ "sm",
3096
+ "md",
3097
+ "lg"
3098
+ ]
3099
+ },
3100
+ emphasis: {
3101
+ type: "string",
3102
+ enum: [
3103
+ "low",
3104
+ "medium",
3105
+ "high"
3106
+ ]
3107
+ },
3108
+ align: {
3109
+ type: "string",
3110
+ enum: [
3111
+ "start",
3112
+ "center",
3113
+ "end"
3114
+ ]
3115
+ },
3116
+ density: {
3117
+ type: "string",
3118
+ enum: [
3119
+ "compact",
3120
+ "comfortable"
3121
+ ]
3122
+ },
3123
+ variant: {
3124
+ type: "string",
3125
+ enum: [
3126
+ "solid",
3127
+ "outline",
3128
+ "ghost",
3129
+ "link"
3130
+ ]
3131
+ },
3132
+ text: {
3133
+ type: "string"
3134
+ }
3135
+ },
3136
+ required: [
3137
+ "component",
3138
+ "text"
3139
+ ],
3140
+ unevaluatedProperties: false
3141
+ },
3142
+ ButtonGroup: {
3143
+ type: "object",
3144
+ properties: {
3145
+ component: {
3146
+ const: "ButtonGroup"
3147
+ },
3148
+ tone: {
3149
+ type: "string",
3150
+ enum: [
3151
+ "default",
3152
+ "muted",
3153
+ "primary",
3154
+ "success",
3155
+ "warning",
3156
+ "danger"
3157
+ ]
3158
+ },
3159
+ size: {
3160
+ type: "string",
3161
+ enum: [
3162
+ "sm",
3163
+ "md",
3164
+ "lg"
3165
+ ]
3166
+ },
3167
+ emphasis: {
3168
+ type: "string",
3169
+ enum: [
3170
+ "low",
3171
+ "medium",
3172
+ "high"
3173
+ ]
3174
+ },
3175
+ align: {
3176
+ type: "string",
3177
+ enum: [
3178
+ "start",
3179
+ "center",
3180
+ "end"
3181
+ ]
3182
+ },
3183
+ density: {
3184
+ type: "string",
3185
+ enum: [
3186
+ "compact",
3187
+ "comfortable"
3188
+ ]
3189
+ }
3190
+ },
3191
+ required: [
3192
+ "component"
3193
+ ],
3194
+ unevaluatedProperties: false
3195
+ },
3196
+ Link: {
3197
+ type: "object",
3198
+ properties: {
3199
+ component: {
3200
+ const: "Link"
3201
+ },
3202
+ tone: {
3203
+ type: "string",
3204
+ enum: [
3205
+ "default",
3206
+ "muted",
3207
+ "primary",
3208
+ "success",
3209
+ "warning",
3210
+ "danger"
3211
+ ]
3212
+ },
3213
+ size: {
3214
+ type: "string",
3215
+ enum: [
3216
+ "sm",
3217
+ "md",
3218
+ "lg"
3219
+ ]
3220
+ },
3221
+ emphasis: {
3222
+ type: "string",
3223
+ enum: [
3224
+ "low",
3225
+ "medium",
3226
+ "high"
3227
+ ]
3228
+ },
3229
+ align: {
3230
+ type: "string",
3231
+ enum: [
3232
+ "start",
3233
+ "center",
3234
+ "end"
3235
+ ]
3236
+ },
3237
+ density: {
3238
+ type: "string",
3239
+ enum: [
3240
+ "compact",
3241
+ "comfortable"
3242
+ ]
3243
+ },
3244
+ text: {
3245
+ type: "string"
3246
+ },
3247
+ href: {
3248
+ type: "string"
3249
+ }
3250
+ },
3251
+ required: [
3252
+ "component",
3253
+ "text"
3254
+ ],
3255
+ unevaluatedProperties: false
3256
+ }
3257
+ },
3258
+ $defs: {
3259
+ DynamicString: {
3260
+ description: "A literal string OR a data-model path reference { path }.",
3261
+ oneOf: [
3262
+ {
3263
+ type: "string"
3264
+ },
3265
+ {
3266
+ type: "object",
3267
+ properties: {
3268
+ path: {
3269
+ type: "string"
3270
+ }
3271
+ },
3272
+ required: [
3273
+ "path"
3274
+ ],
3275
+ additionalProperties: false
3276
+ }
3277
+ ]
3278
+ },
3279
+ Action: {
3280
+ description: "A semantic action (never a URL). wantResponse:true returns the data model to the agent.",
3281
+ type: "object",
3282
+ properties: {
3283
+ name: {
3284
+ type: "string"
3285
+ },
3286
+ wantResponse: {
3287
+ type: "boolean"
3288
+ }
3289
+ },
3290
+ required: [
3291
+ "name"
3292
+ ],
3293
+ additionalProperties: false
3294
+ }
3295
+ }
3296
+ };
3297
+ export {
3298
+ ALIGNS,
3299
+ CORE_CATALOG_ID,
3300
+ DENSITIES,
3301
+ EMPHASES,
3302
+ SIZES,
3303
+ TONES,
3304
+ UNKNOWN_COMPONENT,
3305
+ assertSafeActionName,
3306
+ buildGenuiClause,
3307
+ buildRenderUiSchema,
3308
+ classifyAction,
3309
+ coreCatalog,
3310
+ core_v1_catalog_default as coreCatalogJson,
3311
+ emitA2uiCatalog,
3312
+ getPointer,
3313
+ isPathRef,
3314
+ resolveComponent,
3315
+ resolveDynamic,
3316
+ setPointer,
3317
+ styleSchemaShape,
3318
+ validateProps,
3319
+ validateSurface
3320
+ };
3321
+ //# sourceMappingURL=index.mjs.map