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