@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/dist/index.js ADDED
@@ -0,0 +1,409 @@
1
+ import { z } from 'zod';
2
+ import { zodToJsonSchema } from 'zod-to-json-schema';
3
+
4
+ // src/graph.ts
5
+ var graphSchema = z.object({
6
+ type: z.enum(["dag", "flowchart", "mindmap", "force"]),
7
+ nodes: z.array(
8
+ z.object({
9
+ id: z.string(),
10
+ label: z.string(),
11
+ type: z.string().optional(),
12
+ style: z.record(z.string()).optional(),
13
+ group: z.string().optional()
14
+ })
15
+ ),
16
+ edges: z.array(
17
+ z.object({
18
+ from: z.string(),
19
+ to: z.string(),
20
+ label: z.string().optional(),
21
+ type: z.string().optional(),
22
+ style: z.record(z.string()).optional()
23
+ })
24
+ ),
25
+ layout: z.enum(["top-down", "left-right", "bottom-up", "radial", "force"]).optional()
26
+ });
27
+ var tableSchema = z.object({
28
+ columns: z.array(
29
+ z.object({
30
+ key: z.string(),
31
+ label: z.string(),
32
+ sortable: z.boolean().optional(),
33
+ filterable: z.boolean().optional(),
34
+ type: z.enum(["string", "number", "date", "boolean"]).optional()
35
+ })
36
+ ),
37
+ rows: z.array(z.record(z.unknown())),
38
+ aggregation: z.array(
39
+ z.object({
40
+ column: z.string(),
41
+ function: z.enum(["sum", "avg", "count", "min", "max"])
42
+ })
43
+ ).optional()
44
+ });
45
+ var chartSchema = z.object({
46
+ type: z.enum(["line", "bar", "area", "ohlc"]),
47
+ series: z.array(
48
+ z.object({
49
+ name: z.string(),
50
+ data: z.array(z.record(z.union([z.number(), z.string()])))
51
+ })
52
+ ),
53
+ xAxis: z.object({ key: z.string(), label: z.string().optional() }).optional(),
54
+ yAxis: z.object({ key: z.string(), label: z.string().optional() }).optional(),
55
+ legend: z.boolean().optional()
56
+ });
57
+ var relationSchema = z.object({
58
+ entities: z.array(
59
+ z.object({
60
+ id: z.string(),
61
+ label: z.string(),
62
+ attributes: z.array(
63
+ z.object({
64
+ name: z.string(),
65
+ type: z.string(),
66
+ primaryKey: z.boolean().optional()
67
+ })
68
+ ).optional()
69
+ })
70
+ ),
71
+ relationships: z.array(
72
+ z.object({
73
+ from: z.string(),
74
+ to: z.string(),
75
+ label: z.string().optional(),
76
+ cardinality: z.enum(["1:1", "1:N", "N:1", "N:M"])
77
+ })
78
+ ),
79
+ layout: z.enum(["top-down", "left-right"]).optional()
80
+ });
81
+ var timelineSchema = z.object({
82
+ events: z.array(
83
+ z.object({
84
+ date: z.string(),
85
+ title: z.string(),
86
+ description: z.string().optional(),
87
+ type: z.string().optional()
88
+ })
89
+ ),
90
+ orientation: z.enum(["vertical", "horizontal"]).optional()
91
+ });
92
+ var calloutSchema = z.object({
93
+ type: z.enum(["info", "warning", "error", "tip"]),
94
+ title: z.string().optional(),
95
+ content: z.string()
96
+ });
97
+ var tabsSchema = z.object({
98
+ tabs: z.array(
99
+ z.object({
100
+ label: z.string(),
101
+ content: z.string()
102
+ })
103
+ )
104
+ });
105
+ var stepsSchema = z.object({
106
+ steps: z.array(
107
+ z.object({
108
+ title: z.string(),
109
+ status: z.enum(["pending", "active", "completed"]).optional(),
110
+ content: z.string()
111
+ })
112
+ )
113
+ });
114
+ var iconEnum = z.enum([
115
+ "server",
116
+ "database",
117
+ "queue",
118
+ "cache",
119
+ "loadbalancer",
120
+ "function",
121
+ "storage",
122
+ "gateway",
123
+ "user",
124
+ "cloud",
125
+ "container",
126
+ "network"
127
+ ]);
128
+ var baseNode = z.object({
129
+ id: z.string(),
130
+ label: z.string(),
131
+ icon: iconEnum.optional(),
132
+ type: z.literal("zone").optional(),
133
+ style: z.record(z.string()).optional()
134
+ });
135
+ var architectureNodeSchema = baseNode.extend({
136
+ children: z.lazy(() => z.array(architectureNodeSchema)).optional()
137
+ });
138
+ var architectureSchema = z.object({
139
+ title: z.string().optional(),
140
+ children: z.array(architectureNodeSchema),
141
+ edges: z.array(
142
+ z.object({
143
+ from: z.string(),
144
+ to: z.string(),
145
+ label: z.string().optional(),
146
+ type: z.enum(["sync", "async", "data"]).optional(),
147
+ style: z.record(z.string()).optional()
148
+ })
149
+ ),
150
+ layout: z.enum(["top-down", "left-right", "bottom-up"]).optional()
151
+ });
152
+ var kpiSchema = z.object({
153
+ title: z.string().optional(),
154
+ metrics: z.array(
155
+ z.object({
156
+ label: z.string(),
157
+ value: z.string(),
158
+ delta: z.string().optional(),
159
+ trend: z.enum(["up", "down", "flat"]).optional(),
160
+ sentiment: z.enum(["positive", "negative", "neutral"]).optional(),
161
+ unit: z.string().optional()
162
+ })
163
+ ).min(1).max(8),
164
+ columns: z.number().min(1).max(4).optional()
165
+ });
166
+ var accordionSchema = z.object({
167
+ title: z.string().optional(),
168
+ sections: z.array(
169
+ z.object({
170
+ title: z.string(),
171
+ content: z.string()
172
+ })
173
+ ).min(1),
174
+ defaultOpen: z.array(z.number()).optional(),
175
+ multiple: z.boolean().default(true)
176
+ });
177
+ var comparisonSchema = z.object({
178
+ title: z.string().optional(),
179
+ options: z.array(
180
+ z.object({
181
+ name: z.string(),
182
+ description: z.string().optional()
183
+ })
184
+ ).min(2).max(6),
185
+ features: z.array(
186
+ z.object({
187
+ name: z.string(),
188
+ values: z.array(z.string())
189
+ })
190
+ ).min(1)
191
+ }).refine((data) => data.features.every((f) => f.values.length === data.options.length), {
192
+ message: "Each feature must have one value per option"
193
+ });
194
+ var codediffSchema = z.object({
195
+ language: z.string().optional(),
196
+ before: z.string(),
197
+ after: z.string(),
198
+ beforeLabel: z.string().optional(),
199
+ afterLabel: z.string().optional()
200
+ });
201
+ var flowchartSchema = z.object({
202
+ title: z.string().optional(),
203
+ nodes: z.array(
204
+ z.object({
205
+ id: z.string(),
206
+ type: z.enum(["start", "end", "process", "decision"]).default("process"),
207
+ label: z.string()
208
+ })
209
+ ).min(2),
210
+ edges: z.array(
211
+ z.object({
212
+ from: z.string(),
213
+ to: z.string(),
214
+ label: z.string().optional()
215
+ })
216
+ ).min(1),
217
+ direction: z.enum(["top-down", "left-right"]).default("top-down")
218
+ });
219
+ var fileNodeSchema = z.object({
220
+ name: z.string(),
221
+ annotation: z.string().optional(),
222
+ children: z.array(z.lazy(() => fileNodeSchema)).optional()
223
+ });
224
+ var filetreeSchema = z.object({
225
+ root: z.string().optional(),
226
+ tree: z.array(fileNodeSchema).min(1),
227
+ defaultExpanded: z.boolean().default(true)
228
+ });
229
+ var sequenceSchema = z.object({
230
+ title: z.string().optional(),
231
+ actors: z.array(
232
+ z.object({
233
+ id: z.string(),
234
+ label: z.string()
235
+ })
236
+ ).min(2),
237
+ messages: z.array(
238
+ z.object({
239
+ from: z.string(),
240
+ to: z.string(),
241
+ label: z.string(),
242
+ type: z.enum(["message", "reply", "self"]).default("message")
243
+ })
244
+ ).min(1)
245
+ });
246
+ var mindmapNodeSchema = z.object({
247
+ label: z.string(),
248
+ children: z.array(z.lazy(() => mindmapNodeSchema)).optional()
249
+ });
250
+ var mindmapSchema = z.object({
251
+ root: z.string(),
252
+ children: z.array(mindmapNodeSchema).min(1),
253
+ layout: z.enum(["radial", "tree"]).default("radial")
254
+ });
255
+ var equationSchema = z.object({
256
+ expression: z.string().optional(),
257
+ label: z.string().optional(),
258
+ steps: z.array(
259
+ z.object({
260
+ expression: z.string(),
261
+ annotation: z.string().optional()
262
+ })
263
+ ).optional()
264
+ }).refine(
265
+ (data) => data.expression !== void 0 || data.steps !== void 0 && data.steps.length > 0,
266
+ { message: "Either expression or steps must be provided" }
267
+ );
268
+ var multipleChoiceQuestion = z.object({
269
+ type: z.literal("multiple-choice"),
270
+ question: z.string(),
271
+ options: z.array(z.string()).min(2).max(6),
272
+ answer: z.number(),
273
+ explanation: z.string().optional()
274
+ });
275
+ var trueFalseQuestion = z.object({
276
+ type: z.literal("true-false"),
277
+ question: z.string(),
278
+ answer: z.boolean(),
279
+ explanation: z.string().optional()
280
+ });
281
+ var multiSelectQuestion = z.object({
282
+ type: z.literal("multi-select"),
283
+ question: z.string(),
284
+ options: z.array(z.string()).min(2).max(8),
285
+ answer: z.array(z.number()),
286
+ explanation: z.string().optional()
287
+ });
288
+ var quizQuestion = z.discriminatedUnion("type", [
289
+ multipleChoiceQuestion,
290
+ trueFalseQuestion,
291
+ multiSelectQuestion
292
+ ]);
293
+ var quizSchema = z.object({
294
+ questions: z.array(quizQuestion).min(1),
295
+ showScore: z.boolean().default(true),
296
+ title: z.string().optional()
297
+ });
298
+ var cardActionSchema = z.object({
299
+ label: z.string(),
300
+ url: z.string()
301
+ });
302
+ var cardItemSchema = z.object({
303
+ title: z.string(),
304
+ subtitle: z.string().optional(),
305
+ image: z.string().optional(),
306
+ icon: z.string().optional(),
307
+ body: z.string().optional(),
308
+ actions: z.array(cardActionSchema).max(3).optional()
309
+ });
310
+ var cardSchema = z.object({
311
+ title: z.string().optional(),
312
+ cards: z.array(cardItemSchema).min(1).max(12),
313
+ variant: z.enum(["default", "outlined", "elevated"]).default("default"),
314
+ columns: z.number().min(1).max(4).optional()
315
+ });
316
+ var statItemSchema = z.object({
317
+ type: z.literal("stat"),
318
+ label: z.string(),
319
+ value: z.string(),
320
+ description: z.string().optional()
321
+ });
322
+ var factItemSchema = z.object({
323
+ type: z.literal("fact"),
324
+ icon: z.string().optional(),
325
+ text: z.string()
326
+ });
327
+ var progressItemSchema = z.object({
328
+ type: z.literal("progress"),
329
+ label: z.string(),
330
+ value: z.number().min(0).max(100),
331
+ color: z.string().optional()
332
+ });
333
+ var textItemSchema = z.object({
334
+ type: z.literal("text"),
335
+ content: z.string()
336
+ });
337
+ var pieSliceSchema = z.object({
338
+ label: z.string(),
339
+ value: z.number().positive(),
340
+ color: z.string().optional()
341
+ });
342
+ var pieItemSchema = z.object({
343
+ type: z.literal("pie"),
344
+ label: z.string().optional(),
345
+ slices: z.array(pieSliceSchema).min(1).max(12),
346
+ donut: z.boolean().optional(),
347
+ size: z.number().min(80).max(300).optional()
348
+ });
349
+ var dividerItemSchema = z.object({
350
+ type: z.literal("divider"),
351
+ style: z.enum(["solid", "dashed", "dotted"]).optional()
352
+ });
353
+ var ratingItemSchema = z.object({
354
+ type: z.literal("rating"),
355
+ label: z.string(),
356
+ value: z.number().min(0).max(5),
357
+ max: z.number().min(1).max(5).optional(),
358
+ description: z.string().optional()
359
+ });
360
+ var infographicItemSchema = z.discriminatedUnion("type", [
361
+ statItemSchema,
362
+ factItemSchema,
363
+ progressItemSchema,
364
+ textItemSchema,
365
+ pieItemSchema,
366
+ dividerItemSchema,
367
+ ratingItemSchema
368
+ ]);
369
+ var infographicSectionSchema = z.object({
370
+ heading: z.string().optional(),
371
+ items: z.array(infographicItemSchema).min(1)
372
+ });
373
+ var infographicSchema = z.object({
374
+ title: z.string().optional(),
375
+ sections: z.array(infographicSectionSchema).min(1).max(8)
376
+ });
377
+ var entries = [
378
+ ["graph", graphSchema],
379
+ ["table", tableSchema],
380
+ ["chart", chartSchema],
381
+ ["relation", relationSchema],
382
+ ["timeline", timelineSchema],
383
+ ["callout", calloutSchema],
384
+ ["tabs", tabsSchema],
385
+ ["steps", stepsSchema],
386
+ ["architecture", architectureSchema],
387
+ ["kpi", kpiSchema],
388
+ ["accordion", accordionSchema],
389
+ ["comparison", comparisonSchema],
390
+ ["codediff", codediffSchema],
391
+ ["flowchart", flowchartSchema],
392
+ ["filetree", filetreeSchema],
393
+ ["sequence", sequenceSchema],
394
+ ["mindmap", mindmapSchema],
395
+ ["equation", equationSchema],
396
+ ["quiz", quizSchema],
397
+ ["card", cardSchema],
398
+ ["infographic", infographicSchema]
399
+ ];
400
+ var componentSchemas = new Map(entries);
401
+ function getJsonSchema(componentType) {
402
+ const schema = componentSchemas.get(componentType);
403
+ if (!schema) return void 0;
404
+ return zodToJsonSchema(schema);
405
+ }
406
+
407
+ export { accordionSchema, architectureSchema, calloutSchema, cardSchema, chartSchema, codediffSchema, comparisonSchema, componentSchemas, equationSchema, filetreeSchema, flowchartSchema, getJsonSchema, graphSchema, infographicSchema, kpiSchema, mindmapSchema, quizSchema, relationSchema, sequenceSchema, stepsSchema, tableSchema, tabsSchema, timelineSchema };
408
+ //# sourceMappingURL=index.js.map
409
+ //# sourceMappingURL=index.js.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"],"mappings":"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","file":"index.js","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"]}
package/package.json ADDED
@@ -0,0 +1,63 @@
1
+ {
2
+ "name": "@glyphjs/schemas",
3
+ "version": "0.1.0",
4
+ "description": "Zod schemas for Glyph JS components with JSON Schema generation",
5
+ "type": "module",
6
+ "main": "./dist/index.cjs",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": {
12
+ "types": "./dist/index.d.ts",
13
+ "default": "./dist/index.js"
14
+ },
15
+ "require": {
16
+ "types": "./dist/index.d.cts",
17
+ "default": "./dist/index.cjs"
18
+ }
19
+ }
20
+ },
21
+ "files": [
22
+ "dist",
23
+ "LICENSE",
24
+ "README.md"
25
+ ],
26
+ "dependencies": {
27
+ "zod": "^3.24.2",
28
+ "zod-to-json-schema": "^3.24.3",
29
+ "@glyphjs/types": "0.1.0"
30
+ },
31
+ "sideEffects": false,
32
+ "license": "MIT",
33
+ "author": "Vledic Franco",
34
+ "repository": {
35
+ "type": "git",
36
+ "url": "https://github.com/VledicFranco/glyphjs.git",
37
+ "directory": "packages/schemas"
38
+ },
39
+ "homepage": "https://github.com/VledicFranco/glyphjs#readme",
40
+ "bugs": "https://github.com/VledicFranco/glyphjs/issues",
41
+ "keywords": [
42
+ "glyph",
43
+ "glyphjs",
44
+ "markdown",
45
+ "react",
46
+ "ui-components",
47
+ "interactive-documents",
48
+ "zod",
49
+ "schemas",
50
+ "validation",
51
+ "json-schema"
52
+ ],
53
+ "devDependencies": {
54
+ "ajv": "^8.17.1"
55
+ },
56
+ "scripts": {
57
+ "build": "tsup",
58
+ "typecheck": "tsc --noEmit",
59
+ "test": "vitest run",
60
+ "lint": "eslint src/",
61
+ "clean": "rm -rf dist .turbo"
62
+ }
63
+ }