@glyphjs/schemas 0.1.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.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Glyph JS Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,41 @@
1
+ # @glyphjs/schemas
2
+
3
+ Zod schemas for Glyph JS UI components with automatic JSON Schema generation.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ pnpm add @glyphjs/schemas
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```ts
14
+ import { graphSchema, tableSchema, getJsonSchema } from '@glyphjs/schemas';
15
+
16
+ // Validate component data at runtime
17
+ const result = graphSchema.safeParse({
18
+ nodes: [{ id: 'a', label: 'Node A' }],
19
+ edges: [{ from: 'a', to: 'b' }],
20
+ });
21
+
22
+ // Generate JSON Schema for any component
23
+ const jsonSchema = getJsonSchema('graph');
24
+ ```
25
+
26
+ ## Available schemas
27
+
28
+ | Schema | Component |
29
+ | ---------------- | ---------------------------- |
30
+ | `graphSchema` | Directed graphs / flowcharts |
31
+ | `tableSchema` | Data tables |
32
+ | `chartSchema` | Bar, line, and area charts |
33
+ | `relationSchema` | Entity-relationship diagrams |
34
+ | `timelineSchema` | Chronological timelines |
35
+ | `calloutSchema` | Callout / admonition blocks |
36
+ | `tabsSchema` | Tabbed content panels |
37
+ | `stepsSchema` | Step-by-step sequences |
38
+
39
+ ## Docs
40
+
41
+ https://github.com/VledicFranco/glyphjs
package/dist/index.cjs ADDED
@@ -0,0 +1,433 @@
1
+ 'use strict';
2
+
3
+ var zod = require('zod');
4
+ var zodToJsonSchema = require('zod-to-json-schema');
5
+
6
+ // src/graph.ts
7
+ var graphSchema = zod.z.object({
8
+ type: zod.z.enum(["dag", "flowchart", "mindmap", "force"]),
9
+ nodes: zod.z.array(
10
+ zod.z.object({
11
+ id: zod.z.string(),
12
+ label: zod.z.string(),
13
+ type: zod.z.string().optional(),
14
+ style: zod.z.record(zod.z.string()).optional(),
15
+ group: zod.z.string().optional()
16
+ })
17
+ ),
18
+ edges: zod.z.array(
19
+ zod.z.object({
20
+ from: zod.z.string(),
21
+ to: zod.z.string(),
22
+ label: zod.z.string().optional(),
23
+ type: zod.z.string().optional(),
24
+ style: zod.z.record(zod.z.string()).optional()
25
+ })
26
+ ),
27
+ layout: zod.z.enum(["top-down", "left-right", "bottom-up", "radial", "force"]).optional()
28
+ });
29
+ var tableSchema = zod.z.object({
30
+ columns: zod.z.array(
31
+ zod.z.object({
32
+ key: zod.z.string(),
33
+ label: zod.z.string(),
34
+ sortable: zod.z.boolean().optional(),
35
+ filterable: zod.z.boolean().optional(),
36
+ type: zod.z.enum(["string", "number", "date", "boolean"]).optional()
37
+ })
38
+ ),
39
+ rows: zod.z.array(zod.z.record(zod.z.unknown())),
40
+ aggregation: zod.z.array(
41
+ zod.z.object({
42
+ column: zod.z.string(),
43
+ function: zod.z.enum(["sum", "avg", "count", "min", "max"])
44
+ })
45
+ ).optional()
46
+ });
47
+ var chartSchema = zod.z.object({
48
+ type: zod.z.enum(["line", "bar", "area", "ohlc"]),
49
+ series: zod.z.array(
50
+ zod.z.object({
51
+ name: zod.z.string(),
52
+ data: zod.z.array(zod.z.record(zod.z.union([zod.z.number(), zod.z.string()])))
53
+ })
54
+ ),
55
+ xAxis: zod.z.object({ key: zod.z.string(), label: zod.z.string().optional() }).optional(),
56
+ yAxis: zod.z.object({ key: zod.z.string(), label: zod.z.string().optional() }).optional(),
57
+ legend: zod.z.boolean().optional()
58
+ });
59
+ var relationSchema = zod.z.object({
60
+ entities: zod.z.array(
61
+ zod.z.object({
62
+ id: zod.z.string(),
63
+ label: zod.z.string(),
64
+ attributes: zod.z.array(
65
+ zod.z.object({
66
+ name: zod.z.string(),
67
+ type: zod.z.string(),
68
+ primaryKey: zod.z.boolean().optional()
69
+ })
70
+ ).optional()
71
+ })
72
+ ),
73
+ relationships: zod.z.array(
74
+ zod.z.object({
75
+ from: zod.z.string(),
76
+ to: zod.z.string(),
77
+ label: zod.z.string().optional(),
78
+ cardinality: zod.z.enum(["1:1", "1:N", "N:1", "N:M"])
79
+ })
80
+ ),
81
+ layout: zod.z.enum(["top-down", "left-right"]).optional()
82
+ });
83
+ var timelineSchema = zod.z.object({
84
+ events: zod.z.array(
85
+ zod.z.object({
86
+ date: zod.z.string(),
87
+ title: zod.z.string(),
88
+ description: zod.z.string().optional(),
89
+ type: zod.z.string().optional()
90
+ })
91
+ ),
92
+ orientation: zod.z.enum(["vertical", "horizontal"]).optional()
93
+ });
94
+ var calloutSchema = zod.z.object({
95
+ type: zod.z.enum(["info", "warning", "error", "tip"]),
96
+ title: zod.z.string().optional(),
97
+ content: zod.z.string()
98
+ });
99
+ var tabsSchema = zod.z.object({
100
+ tabs: zod.z.array(
101
+ zod.z.object({
102
+ label: zod.z.string(),
103
+ content: zod.z.string()
104
+ })
105
+ )
106
+ });
107
+ var stepsSchema = zod.z.object({
108
+ steps: zod.z.array(
109
+ zod.z.object({
110
+ title: zod.z.string(),
111
+ status: zod.z.enum(["pending", "active", "completed"]).optional(),
112
+ content: zod.z.string()
113
+ })
114
+ )
115
+ });
116
+ var iconEnum = zod.z.enum([
117
+ "server",
118
+ "database",
119
+ "queue",
120
+ "cache",
121
+ "loadbalancer",
122
+ "function",
123
+ "storage",
124
+ "gateway",
125
+ "user",
126
+ "cloud",
127
+ "container",
128
+ "network"
129
+ ]);
130
+ var baseNode = zod.z.object({
131
+ id: zod.z.string(),
132
+ label: zod.z.string(),
133
+ icon: iconEnum.optional(),
134
+ type: zod.z.literal("zone").optional(),
135
+ style: zod.z.record(zod.z.string()).optional()
136
+ });
137
+ var architectureNodeSchema = baseNode.extend({
138
+ children: zod.z.lazy(() => zod.z.array(architectureNodeSchema)).optional()
139
+ });
140
+ var architectureSchema = zod.z.object({
141
+ title: zod.z.string().optional(),
142
+ children: zod.z.array(architectureNodeSchema),
143
+ edges: zod.z.array(
144
+ zod.z.object({
145
+ from: zod.z.string(),
146
+ to: zod.z.string(),
147
+ label: zod.z.string().optional(),
148
+ type: zod.z.enum(["sync", "async", "data"]).optional(),
149
+ style: zod.z.record(zod.z.string()).optional()
150
+ })
151
+ ),
152
+ layout: zod.z.enum(["top-down", "left-right", "bottom-up"]).optional()
153
+ });
154
+ var kpiSchema = zod.z.object({
155
+ title: zod.z.string().optional(),
156
+ metrics: zod.z.array(
157
+ zod.z.object({
158
+ label: zod.z.string(),
159
+ value: zod.z.string(),
160
+ delta: zod.z.string().optional(),
161
+ trend: zod.z.enum(["up", "down", "flat"]).optional(),
162
+ sentiment: zod.z.enum(["positive", "negative", "neutral"]).optional(),
163
+ unit: zod.z.string().optional()
164
+ })
165
+ ).min(1).max(8),
166
+ columns: zod.z.number().min(1).max(4).optional()
167
+ });
168
+ var accordionSchema = zod.z.object({
169
+ title: zod.z.string().optional(),
170
+ sections: zod.z.array(
171
+ zod.z.object({
172
+ title: zod.z.string(),
173
+ content: zod.z.string()
174
+ })
175
+ ).min(1),
176
+ defaultOpen: zod.z.array(zod.z.number()).optional(),
177
+ multiple: zod.z.boolean().default(true)
178
+ });
179
+ var comparisonSchema = zod.z.object({
180
+ title: zod.z.string().optional(),
181
+ options: zod.z.array(
182
+ zod.z.object({
183
+ name: zod.z.string(),
184
+ description: zod.z.string().optional()
185
+ })
186
+ ).min(2).max(6),
187
+ features: zod.z.array(
188
+ zod.z.object({
189
+ name: zod.z.string(),
190
+ values: zod.z.array(zod.z.string())
191
+ })
192
+ ).min(1)
193
+ }).refine((data) => data.features.every((f) => f.values.length === data.options.length), {
194
+ message: "Each feature must have one value per option"
195
+ });
196
+ var codediffSchema = zod.z.object({
197
+ language: zod.z.string().optional(),
198
+ before: zod.z.string(),
199
+ after: zod.z.string(),
200
+ beforeLabel: zod.z.string().optional(),
201
+ afterLabel: zod.z.string().optional()
202
+ });
203
+ var flowchartSchema = zod.z.object({
204
+ title: zod.z.string().optional(),
205
+ nodes: zod.z.array(
206
+ zod.z.object({
207
+ id: zod.z.string(),
208
+ type: zod.z.enum(["start", "end", "process", "decision"]).default("process"),
209
+ label: zod.z.string()
210
+ })
211
+ ).min(2),
212
+ edges: zod.z.array(
213
+ zod.z.object({
214
+ from: zod.z.string(),
215
+ to: zod.z.string(),
216
+ label: zod.z.string().optional()
217
+ })
218
+ ).min(1),
219
+ direction: zod.z.enum(["top-down", "left-right"]).default("top-down")
220
+ });
221
+ var fileNodeSchema = zod.z.object({
222
+ name: zod.z.string(),
223
+ annotation: zod.z.string().optional(),
224
+ children: zod.z.array(zod.z.lazy(() => fileNodeSchema)).optional()
225
+ });
226
+ var filetreeSchema = zod.z.object({
227
+ root: zod.z.string().optional(),
228
+ tree: zod.z.array(fileNodeSchema).min(1),
229
+ defaultExpanded: zod.z.boolean().default(true)
230
+ });
231
+ var sequenceSchema = zod.z.object({
232
+ title: zod.z.string().optional(),
233
+ actors: zod.z.array(
234
+ zod.z.object({
235
+ id: zod.z.string(),
236
+ label: zod.z.string()
237
+ })
238
+ ).min(2),
239
+ messages: zod.z.array(
240
+ zod.z.object({
241
+ from: zod.z.string(),
242
+ to: zod.z.string(),
243
+ label: zod.z.string(),
244
+ type: zod.z.enum(["message", "reply", "self"]).default("message")
245
+ })
246
+ ).min(1)
247
+ });
248
+ var mindmapNodeSchema = zod.z.object({
249
+ label: zod.z.string(),
250
+ children: zod.z.array(zod.z.lazy(() => mindmapNodeSchema)).optional()
251
+ });
252
+ var mindmapSchema = zod.z.object({
253
+ root: zod.z.string(),
254
+ children: zod.z.array(mindmapNodeSchema).min(1),
255
+ layout: zod.z.enum(["radial", "tree"]).default("radial")
256
+ });
257
+ var equationSchema = zod.z.object({
258
+ expression: zod.z.string().optional(),
259
+ label: zod.z.string().optional(),
260
+ steps: zod.z.array(
261
+ zod.z.object({
262
+ expression: zod.z.string(),
263
+ annotation: zod.z.string().optional()
264
+ })
265
+ ).optional()
266
+ }).refine(
267
+ (data) => data.expression !== void 0 || data.steps !== void 0 && data.steps.length > 0,
268
+ { message: "Either expression or steps must be provided" }
269
+ );
270
+ var multipleChoiceQuestion = zod.z.object({
271
+ type: zod.z.literal("multiple-choice"),
272
+ question: zod.z.string(),
273
+ options: zod.z.array(zod.z.string()).min(2).max(6),
274
+ answer: zod.z.number(),
275
+ explanation: zod.z.string().optional()
276
+ });
277
+ var trueFalseQuestion = zod.z.object({
278
+ type: zod.z.literal("true-false"),
279
+ question: zod.z.string(),
280
+ answer: zod.z.boolean(),
281
+ explanation: zod.z.string().optional()
282
+ });
283
+ var multiSelectQuestion = zod.z.object({
284
+ type: zod.z.literal("multi-select"),
285
+ question: zod.z.string(),
286
+ options: zod.z.array(zod.z.string()).min(2).max(8),
287
+ answer: zod.z.array(zod.z.number()),
288
+ explanation: zod.z.string().optional()
289
+ });
290
+ var quizQuestion = zod.z.discriminatedUnion("type", [
291
+ multipleChoiceQuestion,
292
+ trueFalseQuestion,
293
+ multiSelectQuestion
294
+ ]);
295
+ var quizSchema = zod.z.object({
296
+ questions: zod.z.array(quizQuestion).min(1),
297
+ showScore: zod.z.boolean().default(true),
298
+ title: zod.z.string().optional()
299
+ });
300
+ var cardActionSchema = zod.z.object({
301
+ label: zod.z.string(),
302
+ url: zod.z.string()
303
+ });
304
+ var cardItemSchema = zod.z.object({
305
+ title: zod.z.string(),
306
+ subtitle: zod.z.string().optional(),
307
+ image: zod.z.string().optional(),
308
+ icon: zod.z.string().optional(),
309
+ body: zod.z.string().optional(),
310
+ actions: zod.z.array(cardActionSchema).max(3).optional()
311
+ });
312
+ var cardSchema = zod.z.object({
313
+ title: zod.z.string().optional(),
314
+ cards: zod.z.array(cardItemSchema).min(1).max(12),
315
+ variant: zod.z.enum(["default", "outlined", "elevated"]).default("default"),
316
+ columns: zod.z.number().min(1).max(4).optional()
317
+ });
318
+ var statItemSchema = zod.z.object({
319
+ type: zod.z.literal("stat"),
320
+ label: zod.z.string(),
321
+ value: zod.z.string(),
322
+ description: zod.z.string().optional()
323
+ });
324
+ var factItemSchema = zod.z.object({
325
+ type: zod.z.literal("fact"),
326
+ icon: zod.z.string().optional(),
327
+ text: zod.z.string()
328
+ });
329
+ var progressItemSchema = zod.z.object({
330
+ type: zod.z.literal("progress"),
331
+ label: zod.z.string(),
332
+ value: zod.z.number().min(0).max(100),
333
+ color: zod.z.string().optional()
334
+ });
335
+ var textItemSchema = zod.z.object({
336
+ type: zod.z.literal("text"),
337
+ content: zod.z.string()
338
+ });
339
+ var pieSliceSchema = zod.z.object({
340
+ label: zod.z.string(),
341
+ value: zod.z.number().positive(),
342
+ color: zod.z.string().optional()
343
+ });
344
+ var pieItemSchema = zod.z.object({
345
+ type: zod.z.literal("pie"),
346
+ label: zod.z.string().optional(),
347
+ slices: zod.z.array(pieSliceSchema).min(1).max(12),
348
+ donut: zod.z.boolean().optional(),
349
+ size: zod.z.number().min(80).max(300).optional()
350
+ });
351
+ var dividerItemSchema = zod.z.object({
352
+ type: zod.z.literal("divider"),
353
+ style: zod.z.enum(["solid", "dashed", "dotted"]).optional()
354
+ });
355
+ var ratingItemSchema = zod.z.object({
356
+ type: zod.z.literal("rating"),
357
+ label: zod.z.string(),
358
+ value: zod.z.number().min(0).max(5),
359
+ max: zod.z.number().min(1).max(5).optional(),
360
+ description: zod.z.string().optional()
361
+ });
362
+ var infographicItemSchema = zod.z.discriminatedUnion("type", [
363
+ statItemSchema,
364
+ factItemSchema,
365
+ progressItemSchema,
366
+ textItemSchema,
367
+ pieItemSchema,
368
+ dividerItemSchema,
369
+ ratingItemSchema
370
+ ]);
371
+ var infographicSectionSchema = zod.z.object({
372
+ heading: zod.z.string().optional(),
373
+ items: zod.z.array(infographicItemSchema).min(1)
374
+ });
375
+ var infographicSchema = zod.z.object({
376
+ title: zod.z.string().optional(),
377
+ sections: zod.z.array(infographicSectionSchema).min(1).max(8)
378
+ });
379
+ var entries = [
380
+ ["graph", graphSchema],
381
+ ["table", tableSchema],
382
+ ["chart", chartSchema],
383
+ ["relation", relationSchema],
384
+ ["timeline", timelineSchema],
385
+ ["callout", calloutSchema],
386
+ ["tabs", tabsSchema],
387
+ ["steps", stepsSchema],
388
+ ["architecture", architectureSchema],
389
+ ["kpi", kpiSchema],
390
+ ["accordion", accordionSchema],
391
+ ["comparison", comparisonSchema],
392
+ ["codediff", codediffSchema],
393
+ ["flowchart", flowchartSchema],
394
+ ["filetree", filetreeSchema],
395
+ ["sequence", sequenceSchema],
396
+ ["mindmap", mindmapSchema],
397
+ ["equation", equationSchema],
398
+ ["quiz", quizSchema],
399
+ ["card", cardSchema],
400
+ ["infographic", infographicSchema]
401
+ ];
402
+ var componentSchemas = new Map(entries);
403
+ function getJsonSchema(componentType) {
404
+ const schema = componentSchemas.get(componentType);
405
+ if (!schema) return void 0;
406
+ return zodToJsonSchema.zodToJsonSchema(schema);
407
+ }
408
+
409
+ exports.accordionSchema = accordionSchema;
410
+ exports.architectureSchema = architectureSchema;
411
+ exports.calloutSchema = calloutSchema;
412
+ exports.cardSchema = cardSchema;
413
+ exports.chartSchema = chartSchema;
414
+ exports.codediffSchema = codediffSchema;
415
+ exports.comparisonSchema = comparisonSchema;
416
+ exports.componentSchemas = componentSchemas;
417
+ exports.equationSchema = equationSchema;
418
+ exports.filetreeSchema = filetreeSchema;
419
+ exports.flowchartSchema = flowchartSchema;
420
+ exports.getJsonSchema = getJsonSchema;
421
+ exports.graphSchema = graphSchema;
422
+ exports.infographicSchema = infographicSchema;
423
+ exports.kpiSchema = kpiSchema;
424
+ exports.mindmapSchema = mindmapSchema;
425
+ exports.quizSchema = quizSchema;
426
+ exports.relationSchema = relationSchema;
427
+ exports.sequenceSchema = sequenceSchema;
428
+ exports.stepsSchema = stepsSchema;
429
+ exports.tableSchema = tableSchema;
430
+ exports.tabsSchema = tabsSchema;
431
+ exports.timelineSchema = timelineSchema;
432
+ //# sourceMappingURL=index.cjs.map
433
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/graph.ts","../src/table.ts","../src/chart.ts","../src/relation.ts","../src/timeline.ts","../src/callout.ts","../src/tabs.ts","../src/steps.ts","../src/architecture.ts","../src/kpi.ts","../src/accordion.ts","../src/comparison.ts","../src/codediff.ts","../src/flowchart.ts","../src/filetree.ts","../src/sequence.ts","../src/mindmap.ts","../src/equation.ts","../src/quiz.ts","../src/card.ts","../src/infographic.ts","../src/registry.ts"],"names":["z","zodToJsonSchema"],"mappings":"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","file":"index.cjs","sourcesContent":["import { z } from 'zod';\n\n// ─── Graph ───────────────────────────────────────────────────\n\nexport const graphSchema = z.object({\n type: z.enum(['dag', 'flowchart', 'mindmap', 'force']),\n nodes: z.array(\n z.object({\n id: z.string(),\n label: z.string(),\n type: z.string().optional(),\n style: z.record(z.string()).optional(),\n group: z.string().optional(),\n }),\n ),\n edges: z.array(\n z.object({\n from: z.string(),\n to: z.string(),\n label: z.string().optional(),\n type: z.string().optional(),\n style: z.record(z.string()).optional(),\n }),\n ),\n layout: z\n .enum(['top-down', 'left-right', 'bottom-up', 'radial', 'force'])\n .optional(),\n});\n","import { z } from 'zod';\n\n// ─── Table ───────────────────────────────────────────────────\n\nexport const tableSchema = z.object({\n columns: z.array(\n z.object({\n key: z.string(),\n label: z.string(),\n sortable: z.boolean().optional(),\n filterable: z.boolean().optional(),\n type: z.enum(['string', 'number', 'date', 'boolean']).optional(),\n }),\n ),\n rows: z.array(z.record(z.unknown())),\n aggregation: z\n .array(\n z.object({\n column: z.string(),\n function: z.enum(['sum', 'avg', 'count', 'min', 'max']),\n }),\n )\n .optional(),\n});\n","import { z } from 'zod';\n\n// ─── Chart ───────────────────────────────────────────────────\n\nexport const chartSchema = z.object({\n type: z.enum(['line', 'bar', 'area', 'ohlc']),\n series: z.array(\n z.object({\n name: z.string(),\n data: z.array(z.record(z.union([z.number(), z.string()]))),\n }),\n ),\n xAxis: z\n .object({ key: z.string(), label: z.string().optional() })\n .optional(),\n yAxis: z\n .object({ key: z.string(), label: z.string().optional() })\n .optional(),\n legend: z.boolean().optional(),\n});\n","import { z } from 'zod';\n\n// ─── Relation (ER Diagram) ───────────────────────────────────\n\nexport const relationSchema = z.object({\n entities: z.array(\n z.object({\n id: z.string(),\n label: z.string(),\n attributes: z\n .array(\n z.object({\n name: z.string(),\n type: z.string(),\n primaryKey: z.boolean().optional(),\n }),\n )\n .optional(),\n }),\n ),\n relationships: z.array(\n z.object({\n from: z.string(),\n to: z.string(),\n label: z.string().optional(),\n cardinality: z.enum(['1:1', '1:N', 'N:1', 'N:M']),\n }),\n ),\n layout: z.enum(['top-down', 'left-right']).optional(),\n});\n","import { z } from 'zod';\n\n// ─── Timeline ────────────────────────────────────────────────\n\nexport const timelineSchema = z.object({\n events: z.array(\n z.object({\n date: z.string(),\n title: z.string(),\n description: z.string().optional(),\n type: z.string().optional(),\n }),\n ),\n orientation: z.enum(['vertical', 'horizontal']).optional(),\n});\n","import { z } from 'zod';\n\n// ─── Callout ─────────────────────────────────────────────────\n\nexport const calloutSchema = z.object({\n type: z.enum(['info', 'warning', 'error', 'tip']),\n title: z.string().optional(),\n content: z.string(),\n});\n","import { z } from 'zod';\n\n// ─── Tabs ────────────────────────────────────────────────────\n\nexport const tabsSchema = z.object({\n tabs: z.array(\n z.object({\n label: z.string(),\n content: z.string(),\n }),\n ),\n});\n","import { z } from 'zod';\n\n// ─── Steps ───────────────────────────────────────────────────\n\nexport const stepsSchema = z.object({\n steps: z.array(\n z.object({\n title: z.string(),\n status: z.enum(['pending', 'active', 'completed']).optional(),\n content: z.string(),\n }),\n ),\n});\n","import { z } from 'zod';\n\n// ─── Architecture Schema ────────────────────────────────────\n\nconst iconEnum = z.enum([\n 'server',\n 'database',\n 'queue',\n 'cache',\n 'loadbalancer',\n 'function',\n 'storage',\n 'gateway',\n 'user',\n 'cloud',\n 'container',\n 'network',\n]);\n\nconst baseNode = z.object({\n id: z.string(),\n label: z.string(),\n icon: iconEnum.optional(),\n type: z.literal('zone').optional(),\n style: z.record(z.string()).optional(),\n});\n\nexport interface ArchitectureNode {\n id: string;\n label: string;\n icon?:\n | 'server'\n | 'database'\n | 'queue'\n | 'cache'\n | 'loadbalancer'\n | 'function'\n | 'storage'\n | 'gateway'\n | 'user'\n | 'cloud'\n | 'container'\n | 'network';\n type?: 'zone';\n children?: ArchitectureNode[];\n style?: Record<string, string>;\n}\n\nconst architectureNodeSchema: z.ZodType<ArchitectureNode> = baseNode.extend({\n children: z.lazy(() => z.array(architectureNodeSchema)).optional(),\n});\n\nexport const architectureSchema = z.object({\n title: z.string().optional(),\n children: z.array(architectureNodeSchema),\n edges: z.array(\n z.object({\n from: z.string(),\n to: z.string(),\n label: z.string().optional(),\n type: z.enum(['sync', 'async', 'data']).optional(),\n style: z.record(z.string()).optional(),\n }),\n ),\n layout: z.enum(['top-down', 'left-right', 'bottom-up']).optional(),\n});\n","import { z } from 'zod';\n\n// ─── KPI ──────────────────────────────────────────────────────\n\nexport const kpiSchema = z.object({\n title: z.string().optional(),\n metrics: z\n .array(\n z.object({\n label: z.string(),\n value: z.string(),\n delta: z.string().optional(),\n trend: z.enum(['up', 'down', 'flat']).optional(),\n sentiment: z.enum(['positive', 'negative', 'neutral']).optional(),\n unit: z.string().optional(),\n }),\n )\n .min(1)\n .max(8),\n columns: z.number().min(1).max(4).optional(),\n});\n","import { z } from 'zod';\n\nexport const accordionSchema = z.object({\n title: z.string().optional(),\n sections: z\n .array(\n z.object({\n title: z.string(),\n content: z.string(),\n }),\n )\n .min(1),\n defaultOpen: z.array(z.number()).optional(),\n multiple: z.boolean().default(true),\n});\n","import { z } from 'zod';\n\nexport const comparisonSchema = z\n .object({\n title: z.string().optional(),\n options: z\n .array(\n z.object({\n name: z.string(),\n description: z.string().optional(),\n }),\n )\n .min(2)\n .max(6),\n features: z\n .array(\n z.object({\n name: z.string(),\n values: z.array(z.string()),\n }),\n )\n .min(1),\n })\n .refine((data) => data.features.every((f) => f.values.length === data.options.length), {\n message: 'Each feature must have one value per option',\n });\n","import { z } from 'zod';\n\nexport const codediffSchema = z.object({\n language: z.string().optional(),\n before: z.string(),\n after: z.string(),\n beforeLabel: z.string().optional(),\n afterLabel: z.string().optional(),\n});\n","import { z } from 'zod';\n\nexport const flowchartSchema = z.object({\n title: z.string().optional(),\n nodes: z\n .array(\n z.object({\n id: z.string(),\n type: z.enum(['start', 'end', 'process', 'decision']).default('process'),\n label: z.string(),\n }),\n )\n .min(2),\n edges: z\n .array(\n z.object({\n from: z.string(),\n to: z.string(),\n label: z.string().optional(),\n }),\n )\n .min(1),\n direction: z.enum(['top-down', 'left-right']).default('top-down'),\n});\n","import { z } from 'zod';\n\nconst fileNodeSchema: z.ZodType<{\n name: string;\n annotation?: string;\n children?: { name: string; annotation?: string; children?: unknown[] }[];\n}> = z.object({\n name: z.string(),\n annotation: z.string().optional(),\n children: z.array(z.lazy(() => fileNodeSchema)).optional(),\n});\n\nexport const filetreeSchema = z.object({\n root: z.string().optional(),\n tree: z.array(fileNodeSchema).min(1),\n defaultExpanded: z.boolean().default(true),\n});\n","import { z } from 'zod';\n\nexport const sequenceSchema = z.object({\n title: z.string().optional(),\n actors: z\n .array(\n z.object({\n id: z.string(),\n label: z.string(),\n }),\n )\n .min(2),\n messages: z\n .array(\n z.object({\n from: z.string(),\n to: z.string(),\n label: z.string(),\n type: z.enum(['message', 'reply', 'self']).default('message'),\n }),\n )\n .min(1),\n});\n","import { z } from 'zod';\n\nconst mindmapNodeSchema: z.ZodType<{\n label: string;\n children?: { label: string; children?: unknown[] }[];\n}> = z.object({\n label: z.string(),\n children: z.array(z.lazy(() => mindmapNodeSchema)).optional(),\n});\n\nexport const mindmapSchema = z.object({\n root: z.string(),\n children: z.array(mindmapNodeSchema).min(1),\n layout: z.enum(['radial', 'tree']).default('radial'),\n});\n","import { z } from 'zod';\n\nexport const equationSchema = z\n .object({\n expression: z.string().optional(),\n label: z.string().optional(),\n steps: z\n .array(\n z.object({\n expression: z.string(),\n annotation: z.string().optional(),\n }),\n )\n .optional(),\n })\n .refine(\n (data) => data.expression !== undefined || (data.steps !== undefined && data.steps.length > 0),\n { message: 'Either expression or steps must be provided' },\n );\n","import { z } from 'zod';\n\nconst multipleChoiceQuestion = z.object({\n type: z.literal('multiple-choice'),\n question: z.string(),\n options: z.array(z.string()).min(2).max(6),\n answer: z.number(),\n explanation: z.string().optional(),\n});\n\nconst trueFalseQuestion = z.object({\n type: z.literal('true-false'),\n question: z.string(),\n answer: z.boolean(),\n explanation: z.string().optional(),\n});\n\nconst multiSelectQuestion = z.object({\n type: z.literal('multi-select'),\n question: z.string(),\n options: z.array(z.string()).min(2).max(8),\n answer: z.array(z.number()),\n explanation: z.string().optional(),\n});\n\nconst quizQuestion = z.discriminatedUnion('type', [\n multipleChoiceQuestion,\n trueFalseQuestion,\n multiSelectQuestion,\n]);\n\nexport const quizSchema = z.object({\n questions: z.array(quizQuestion).min(1),\n showScore: z.boolean().default(true),\n title: z.string().optional(),\n});\n","import { z } from 'zod';\n\nconst cardActionSchema = z.object({\n label: z.string(),\n url: z.string(),\n});\n\nconst cardItemSchema = z.object({\n title: z.string(),\n subtitle: z.string().optional(),\n image: z.string().optional(),\n icon: z.string().optional(),\n body: z.string().optional(),\n actions: z.array(cardActionSchema).max(3).optional(),\n});\n\nexport const cardSchema = z.object({\n title: z.string().optional(),\n cards: z.array(cardItemSchema).min(1).max(12),\n variant: z.enum(['default', 'outlined', 'elevated']).default('default'),\n columns: z.number().min(1).max(4).optional(),\n});\n","import { z } from 'zod';\n\n// ─── Infographic Item Types ─────────────────────────────────\n\nconst statItemSchema = z.object({\n type: z.literal('stat'),\n label: z.string(),\n value: z.string(),\n description: z.string().optional(),\n});\n\nconst factItemSchema = z.object({\n type: z.literal('fact'),\n icon: z.string().optional(),\n text: z.string(),\n});\n\nconst progressItemSchema = z.object({\n type: z.literal('progress'),\n label: z.string(),\n value: z.number().min(0).max(100),\n color: z.string().optional(),\n});\n\nconst textItemSchema = z.object({\n type: z.literal('text'),\n content: z.string(),\n});\n\nconst pieSliceSchema = z.object({\n label: z.string(),\n value: z.number().positive(),\n color: z.string().optional(),\n});\n\nconst pieItemSchema = z.object({\n type: z.literal('pie'),\n label: z.string().optional(),\n slices: z.array(pieSliceSchema).min(1).max(12),\n donut: z.boolean().optional(),\n size: z.number().min(80).max(300).optional(),\n});\n\nconst dividerItemSchema = z.object({\n type: z.literal('divider'),\n style: z.enum(['solid', 'dashed', 'dotted']).optional(),\n});\n\nconst ratingItemSchema = z.object({\n type: z.literal('rating'),\n label: z.string(),\n value: z.number().min(0).max(5),\n max: z.number().min(1).max(5).optional(),\n description: z.string().optional(),\n});\n\nconst infographicItemSchema = z.discriminatedUnion('type', [\n statItemSchema,\n factItemSchema,\n progressItemSchema,\n textItemSchema,\n pieItemSchema,\n dividerItemSchema,\n ratingItemSchema,\n]);\n\n// ─── Infographic Section ────────────────────────────────────\n\nconst infographicSectionSchema = z.object({\n heading: z.string().optional(),\n items: z.array(infographicItemSchema).min(1),\n});\n\n// ─── Infographic ────────────────────────────────────────────\n\nexport const infographicSchema = z.object({\n title: z.string().optional(),\n sections: z.array(infographicSectionSchema).min(1).max(8),\n});\n","import type { z } from 'zod';\nimport { zodToJsonSchema } from 'zod-to-json-schema';\n\nimport { graphSchema } from './graph.js';\nimport { tableSchema } from './table.js';\nimport { chartSchema } from './chart.js';\nimport { relationSchema } from './relation.js';\nimport { timelineSchema } from './timeline.js';\nimport { calloutSchema } from './callout.js';\nimport { tabsSchema } from './tabs.js';\nimport { stepsSchema } from './steps.js';\nimport { architectureSchema } from './architecture.js';\nimport { kpiSchema } from './kpi.js';\nimport { accordionSchema } from './accordion.js';\nimport { comparisonSchema } from './comparison.js';\nimport { codediffSchema } from './codediff.js';\nimport { flowchartSchema } from './flowchart.js';\nimport { filetreeSchema } from './filetree.js';\nimport { sequenceSchema } from './sequence.js';\nimport { mindmapSchema } from './mindmap.js';\nimport { equationSchema } from './equation.js';\nimport { quizSchema } from './quiz.js';\nimport { cardSchema } from './card.js';\nimport { infographicSchema } from './infographic.js';\n\n// ─── Schema Registry ─────────────────────────────────────────\n\nconst entries: [string, z.ZodType][] = [\n ['graph', graphSchema],\n ['table', tableSchema],\n ['chart', chartSchema],\n ['relation', relationSchema],\n ['timeline', timelineSchema],\n ['callout', calloutSchema],\n ['tabs', tabsSchema],\n ['steps', stepsSchema],\n ['architecture', architectureSchema],\n ['kpi', kpiSchema],\n ['accordion', accordionSchema],\n ['comparison', comparisonSchema],\n ['codediff', codediffSchema],\n ['flowchart', flowchartSchema],\n ['filetree', filetreeSchema],\n ['sequence', sequenceSchema],\n ['mindmap', mindmapSchema],\n ['equation', equationSchema],\n ['quiz', quizSchema],\n ['card', cardSchema],\n ['infographic', infographicSchema],\n];\n\nexport const componentSchemas: ReadonlyMap<string, z.ZodType> = new Map(entries);\n\n// ─── JSON Schema Helper ─────────────────────────────────────\n\nexport function getJsonSchema(componentType: string): object | undefined {\n const schema = componentSchemas.get(componentType);\n if (!schema) return undefined;\n return zodToJsonSchema(schema);\n}\n"]}