@oh-just-another/templates 0.57.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 (97) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/LICENSE +21 -0
  3. package/README.md +73 -0
  4. package/dist/.tsbuildinfo +1 -0
  5. package/dist/built-in.d.ts +16 -0
  6. package/dist/built-in.d.ts.map +1 -0
  7. package/dist/built-in.js +204 -0
  8. package/dist/built-in.js.map +1 -0
  9. package/dist/constants.d.ts +11 -0
  10. package/dist/constants.d.ts.map +1 -0
  11. package/dist/constants.js +11 -0
  12. package/dist/constants.js.map +1 -0
  13. package/dist/icons.d.ts +21 -0
  14. package/dist/icons.d.ts.map +1 -0
  15. package/dist/icons.js +24 -0
  16. package/dist/icons.js.map +1 -0
  17. package/dist/index.d.ts +10 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +10 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/library.d.ts +29 -0
  22. package/dist/library.d.ts.map +1 -0
  23. package/dist/library.js +60 -0
  24. package/dist/library.js.map +1 -0
  25. package/dist/registry.d.ts +27 -0
  26. package/dist/registry.d.ts.map +1 -0
  27. package/dist/registry.js +48 -0
  28. package/dist/registry.js.map +1 -0
  29. package/dist/rich/binding.d.ts +10 -0
  30. package/dist/rich/binding.d.ts.map +1 -0
  31. package/dist/rich/binding.js +42 -0
  32. package/dist/rich/binding.js.map +1 -0
  33. package/dist/rich/bounds.d.ts +16 -0
  34. package/dist/rich/bounds.d.ts.map +1 -0
  35. package/dist/rich/bounds.js +13 -0
  36. package/dist/rich/bounds.js.map +1 -0
  37. package/dist/rich/define.d.ts +44 -0
  38. package/dist/rich/define.d.ts.map +1 -0
  39. package/dist/rich/define.js +3 -0
  40. package/dist/rich/define.js.map +1 -0
  41. package/dist/rich/drop-zones.d.ts +25 -0
  42. package/dist/rich/drop-zones.d.ts.map +1 -0
  43. package/dist/rich/drop-zones.js +63 -0
  44. package/dist/rich/drop-zones.js.map +1 -0
  45. package/dist/rich/extends.d.ts +35 -0
  46. package/dist/rich/extends.d.ts.map +1 -0
  47. package/dist/rich/extends.js +46 -0
  48. package/dist/rich/extends.js.map +1 -0
  49. package/dist/rich/hit-test.d.ts +14 -0
  50. package/dist/rich/hit-test.d.ts.map +1 -0
  51. package/dist/rich/hit-test.js +53 -0
  52. package/dist/rich/hit-test.js.map +1 -0
  53. package/dist/rich/index.d.ts +22 -0
  54. package/dist/rich/index.d.ts.map +1 -0
  55. package/dist/rich/index.js +15 -0
  56. package/dist/rich/index.js.map +1 -0
  57. package/dist/rich/interactive.d.ts +44 -0
  58. package/dist/rich/interactive.d.ts.map +1 -0
  59. package/dist/rich/interactive.js +80 -0
  60. package/dist/rich/interactive.js.map +1 -0
  61. package/dist/rich/layout.d.ts +44 -0
  62. package/dist/rich/layout.d.ts.map +1 -0
  63. package/dist/rich/layout.js +418 -0
  64. package/dist/rich/layout.js.map +1 -0
  65. package/dist/rich/node.d.ts +96 -0
  66. package/dist/rich/node.d.ts.map +1 -0
  67. package/dist/rich/node.js +7 -0
  68. package/dist/rich/node.js.map +1 -0
  69. package/dist/rich/ports.d.ts +19 -0
  70. package/dist/rich/ports.d.ts.map +1 -0
  71. package/dist/rich/ports.js +52 -0
  72. package/dist/rich/ports.js.map +1 -0
  73. package/dist/rich/registry.d.ts +19 -0
  74. package/dist/rich/registry.d.ts.map +1 -0
  75. package/dist/rich/registry.js +35 -0
  76. package/dist/rich/registry.js.map +1 -0
  77. package/dist/rich/render.d.ts +19 -0
  78. package/dist/rich/render.d.ts.map +1 -0
  79. package/dist/rich/render.js +306 -0
  80. package/dist/rich/render.js.map +1 -0
  81. package/dist/rich/style.d.ts +126 -0
  82. package/dist/rich/style.d.ts.map +1 -0
  83. package/dist/rich/style.js +35 -0
  84. package/dist/rich/style.js.map +1 -0
  85. package/dist/rich/svg.d.ts +90 -0
  86. package/dist/rich/svg.d.ts.map +1 -0
  87. package/dist/rich/svg.js +415 -0
  88. package/dist/rich/svg.js.map +1 -0
  89. package/dist/spec.d.ts +2789 -0
  90. package/dist/spec.d.ts.map +1 -0
  91. package/dist/spec.js +239 -0
  92. package/dist/spec.js.map +1 -0
  93. package/dist/types.d.ts +57 -0
  94. package/dist/types.d.ts.map +1 -0
  95. package/dist/types.js +2 -0
  96. package/dist/types.js.map +1 -0
  97. package/package.json +57 -0
package/dist/spec.d.ts ADDED
@@ -0,0 +1,2789 @@
1
+ import { z } from "zod";
2
+ import type { Template } from "./types.js";
3
+ /**
4
+ * Element blueprint — all the shape's fields *except* identity / placement,
5
+ * which come from the runtime `TemplateContext`. Plugin authors describe
6
+ * their shapes here.
7
+ */
8
+ export declare const ShapeBlueprintZ: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
9
+ type: z.ZodLiteral<"rectangle">;
10
+ style: z.ZodObject<{
11
+ fill: z.ZodOptional<z.ZodString>;
12
+ stroke: z.ZodOptional<z.ZodString>;
13
+ strokeWidth: z.ZodOptional<z.ZodNumber>;
14
+ opacity: z.ZodOptional<z.ZodNumber>;
15
+ dashArray: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodNumber, "many">>>;
16
+ lineCap: z.ZodOptional<z.ZodEnum<["butt", "round", "square"]>>;
17
+ lineJoin: z.ZodOptional<z.ZodEnum<["miter", "round", "bevel"]>>;
18
+ }, "strict", z.ZodTypeAny, {
19
+ fill?: string | undefined;
20
+ stroke?: string | undefined;
21
+ strokeWidth?: number | undefined;
22
+ opacity?: number | undefined;
23
+ dashArray?: readonly number[] | undefined;
24
+ lineCap?: "square" | "round" | "butt" | undefined;
25
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
26
+ }, {
27
+ fill?: string | undefined;
28
+ stroke?: string | undefined;
29
+ strokeWidth?: number | undefined;
30
+ opacity?: number | undefined;
31
+ dashArray?: readonly number[] | undefined;
32
+ lineCap?: "square" | "round" | "butt" | undefined;
33
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
34
+ }>;
35
+ width: z.ZodNumber;
36
+ height: z.ZodNumber;
37
+ }, "strict", z.ZodTypeAny, {
38
+ width: number;
39
+ height: number;
40
+ type: "rectangle";
41
+ style: {
42
+ fill?: string | undefined;
43
+ stroke?: string | undefined;
44
+ strokeWidth?: number | undefined;
45
+ opacity?: number | undefined;
46
+ dashArray?: readonly number[] | undefined;
47
+ lineCap?: "square" | "round" | "butt" | undefined;
48
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
49
+ };
50
+ }, {
51
+ width: number;
52
+ height: number;
53
+ type: "rectangle";
54
+ style: {
55
+ fill?: string | undefined;
56
+ stroke?: string | undefined;
57
+ strokeWidth?: number | undefined;
58
+ opacity?: number | undefined;
59
+ dashArray?: readonly number[] | undefined;
60
+ lineCap?: "square" | "round" | "butt" | undefined;
61
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
62
+ };
63
+ }>, z.ZodObject<{
64
+ type: z.ZodLiteral<"ellipse">;
65
+ style: z.ZodObject<{
66
+ fill: z.ZodOptional<z.ZodString>;
67
+ stroke: z.ZodOptional<z.ZodString>;
68
+ strokeWidth: z.ZodOptional<z.ZodNumber>;
69
+ opacity: z.ZodOptional<z.ZodNumber>;
70
+ dashArray: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodNumber, "many">>>;
71
+ lineCap: z.ZodOptional<z.ZodEnum<["butt", "round", "square"]>>;
72
+ lineJoin: z.ZodOptional<z.ZodEnum<["miter", "round", "bevel"]>>;
73
+ }, "strict", z.ZodTypeAny, {
74
+ fill?: string | undefined;
75
+ stroke?: string | undefined;
76
+ strokeWidth?: number | undefined;
77
+ opacity?: number | undefined;
78
+ dashArray?: readonly number[] | undefined;
79
+ lineCap?: "square" | "round" | "butt" | undefined;
80
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
81
+ }, {
82
+ fill?: string | undefined;
83
+ stroke?: string | undefined;
84
+ strokeWidth?: number | undefined;
85
+ opacity?: number | undefined;
86
+ dashArray?: readonly number[] | undefined;
87
+ lineCap?: "square" | "round" | "butt" | undefined;
88
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
89
+ }>;
90
+ width: z.ZodNumber;
91
+ height: z.ZodNumber;
92
+ }, "strict", z.ZodTypeAny, {
93
+ width: number;
94
+ height: number;
95
+ type: "ellipse";
96
+ style: {
97
+ fill?: string | undefined;
98
+ stroke?: string | undefined;
99
+ strokeWidth?: number | undefined;
100
+ opacity?: number | undefined;
101
+ dashArray?: readonly number[] | undefined;
102
+ lineCap?: "square" | "round" | "butt" | undefined;
103
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
104
+ };
105
+ }, {
106
+ width: number;
107
+ height: number;
108
+ type: "ellipse";
109
+ style: {
110
+ fill?: string | undefined;
111
+ stroke?: string | undefined;
112
+ strokeWidth?: number | undefined;
113
+ opacity?: number | undefined;
114
+ dashArray?: readonly number[] | undefined;
115
+ lineCap?: "square" | "round" | "butt" | undefined;
116
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
117
+ };
118
+ }>, z.ZodObject<{
119
+ type: z.ZodLiteral<"polygon">;
120
+ style: z.ZodObject<{
121
+ fill: z.ZodOptional<z.ZodString>;
122
+ stroke: z.ZodOptional<z.ZodString>;
123
+ strokeWidth: z.ZodOptional<z.ZodNumber>;
124
+ opacity: z.ZodOptional<z.ZodNumber>;
125
+ dashArray: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodNumber, "many">>>;
126
+ lineCap: z.ZodOptional<z.ZodEnum<["butt", "round", "square"]>>;
127
+ lineJoin: z.ZodOptional<z.ZodEnum<["miter", "round", "bevel"]>>;
128
+ }, "strict", z.ZodTypeAny, {
129
+ fill?: string | undefined;
130
+ stroke?: string | undefined;
131
+ strokeWidth?: number | undefined;
132
+ opacity?: number | undefined;
133
+ dashArray?: readonly number[] | undefined;
134
+ lineCap?: "square" | "round" | "butt" | undefined;
135
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
136
+ }, {
137
+ fill?: string | undefined;
138
+ stroke?: string | undefined;
139
+ strokeWidth?: number | undefined;
140
+ opacity?: number | undefined;
141
+ dashArray?: readonly number[] | undefined;
142
+ lineCap?: "square" | "round" | "butt" | undefined;
143
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
144
+ }>;
145
+ points: z.ZodArray<z.ZodObject<{
146
+ x: z.ZodNumber;
147
+ y: z.ZodNumber;
148
+ }, "strip", z.ZodTypeAny, {
149
+ x: number;
150
+ y: number;
151
+ }, {
152
+ x: number;
153
+ y: number;
154
+ }>, "many">;
155
+ }, "strict", z.ZodTypeAny, {
156
+ points: {
157
+ x: number;
158
+ y: number;
159
+ }[];
160
+ type: "polygon";
161
+ style: {
162
+ fill?: string | undefined;
163
+ stroke?: string | undefined;
164
+ strokeWidth?: number | undefined;
165
+ opacity?: number | undefined;
166
+ dashArray?: readonly number[] | undefined;
167
+ lineCap?: "square" | "round" | "butt" | undefined;
168
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
169
+ };
170
+ }, {
171
+ points: {
172
+ x: number;
173
+ y: number;
174
+ }[];
175
+ type: "polygon";
176
+ style: {
177
+ fill?: string | undefined;
178
+ stroke?: string | undefined;
179
+ strokeWidth?: number | undefined;
180
+ opacity?: number | undefined;
181
+ dashArray?: readonly number[] | undefined;
182
+ lineCap?: "square" | "round" | "butt" | undefined;
183
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
184
+ };
185
+ }>, z.ZodObject<{
186
+ type: z.ZodLiteral<"path">;
187
+ style: z.ZodObject<{
188
+ fill: z.ZodOptional<z.ZodString>;
189
+ stroke: z.ZodOptional<z.ZodString>;
190
+ strokeWidth: z.ZodOptional<z.ZodNumber>;
191
+ opacity: z.ZodOptional<z.ZodNumber>;
192
+ dashArray: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodNumber, "many">>>;
193
+ lineCap: z.ZodOptional<z.ZodEnum<["butt", "round", "square"]>>;
194
+ lineJoin: z.ZodOptional<z.ZodEnum<["miter", "round", "bevel"]>>;
195
+ }, "strict", z.ZodTypeAny, {
196
+ fill?: string | undefined;
197
+ stroke?: string | undefined;
198
+ strokeWidth?: number | undefined;
199
+ opacity?: number | undefined;
200
+ dashArray?: readonly number[] | undefined;
201
+ lineCap?: "square" | "round" | "butt" | undefined;
202
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
203
+ }, {
204
+ fill?: string | undefined;
205
+ stroke?: string | undefined;
206
+ strokeWidth?: number | undefined;
207
+ opacity?: number | undefined;
208
+ dashArray?: readonly number[] | undefined;
209
+ lineCap?: "square" | "round" | "butt" | undefined;
210
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
211
+ }>;
212
+ commands: z.ZodArray<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
213
+ kind: z.ZodLiteral<"M">;
214
+ to: z.ZodObject<{
215
+ x: z.ZodNumber;
216
+ y: z.ZodNumber;
217
+ }, "strip", z.ZodTypeAny, {
218
+ x: number;
219
+ y: number;
220
+ }, {
221
+ x: number;
222
+ y: number;
223
+ }>;
224
+ }, "strict", z.ZodTypeAny, {
225
+ to: {
226
+ x: number;
227
+ y: number;
228
+ };
229
+ kind: "M";
230
+ }, {
231
+ to: {
232
+ x: number;
233
+ y: number;
234
+ };
235
+ kind: "M";
236
+ }>, z.ZodObject<{
237
+ kind: z.ZodLiteral<"L">;
238
+ to: z.ZodObject<{
239
+ x: z.ZodNumber;
240
+ y: z.ZodNumber;
241
+ }, "strip", z.ZodTypeAny, {
242
+ x: number;
243
+ y: number;
244
+ }, {
245
+ x: number;
246
+ y: number;
247
+ }>;
248
+ }, "strict", z.ZodTypeAny, {
249
+ to: {
250
+ x: number;
251
+ y: number;
252
+ };
253
+ kind: "L";
254
+ }, {
255
+ to: {
256
+ x: number;
257
+ y: number;
258
+ };
259
+ kind: "L";
260
+ }>, z.ZodObject<{
261
+ kind: z.ZodLiteral<"Q">;
262
+ control: z.ZodObject<{
263
+ x: z.ZodNumber;
264
+ y: z.ZodNumber;
265
+ }, "strip", z.ZodTypeAny, {
266
+ x: number;
267
+ y: number;
268
+ }, {
269
+ x: number;
270
+ y: number;
271
+ }>;
272
+ to: z.ZodObject<{
273
+ x: z.ZodNumber;
274
+ y: z.ZodNumber;
275
+ }, "strip", z.ZodTypeAny, {
276
+ x: number;
277
+ y: number;
278
+ }, {
279
+ x: number;
280
+ y: number;
281
+ }>;
282
+ }, "strict", z.ZodTypeAny, {
283
+ to: {
284
+ x: number;
285
+ y: number;
286
+ };
287
+ kind: "Q";
288
+ control: {
289
+ x: number;
290
+ y: number;
291
+ };
292
+ }, {
293
+ to: {
294
+ x: number;
295
+ y: number;
296
+ };
297
+ kind: "Q";
298
+ control: {
299
+ x: number;
300
+ y: number;
301
+ };
302
+ }>, z.ZodObject<{
303
+ kind: z.ZodLiteral<"C">;
304
+ control1: z.ZodObject<{
305
+ x: z.ZodNumber;
306
+ y: z.ZodNumber;
307
+ }, "strip", z.ZodTypeAny, {
308
+ x: number;
309
+ y: number;
310
+ }, {
311
+ x: number;
312
+ y: number;
313
+ }>;
314
+ control2: z.ZodObject<{
315
+ x: z.ZodNumber;
316
+ y: z.ZodNumber;
317
+ }, "strip", z.ZodTypeAny, {
318
+ x: number;
319
+ y: number;
320
+ }, {
321
+ x: number;
322
+ y: number;
323
+ }>;
324
+ to: z.ZodObject<{
325
+ x: z.ZodNumber;
326
+ y: z.ZodNumber;
327
+ }, "strip", z.ZodTypeAny, {
328
+ x: number;
329
+ y: number;
330
+ }, {
331
+ x: number;
332
+ y: number;
333
+ }>;
334
+ }, "strict", z.ZodTypeAny, {
335
+ to: {
336
+ x: number;
337
+ y: number;
338
+ };
339
+ kind: "C";
340
+ control1: {
341
+ x: number;
342
+ y: number;
343
+ };
344
+ control2: {
345
+ x: number;
346
+ y: number;
347
+ };
348
+ }, {
349
+ to: {
350
+ x: number;
351
+ y: number;
352
+ };
353
+ kind: "C";
354
+ control1: {
355
+ x: number;
356
+ y: number;
357
+ };
358
+ control2: {
359
+ x: number;
360
+ y: number;
361
+ };
362
+ }>, z.ZodObject<{
363
+ kind: z.ZodLiteral<"Z">;
364
+ }, "strict", z.ZodTypeAny, {
365
+ kind: "Z";
366
+ }, {
367
+ kind: "Z";
368
+ }>]>, "many">;
369
+ }, "strict", z.ZodTypeAny, {
370
+ commands: ({
371
+ to: {
372
+ x: number;
373
+ y: number;
374
+ };
375
+ kind: "M";
376
+ } | {
377
+ to: {
378
+ x: number;
379
+ y: number;
380
+ };
381
+ kind: "L";
382
+ } | {
383
+ to: {
384
+ x: number;
385
+ y: number;
386
+ };
387
+ kind: "Q";
388
+ control: {
389
+ x: number;
390
+ y: number;
391
+ };
392
+ } | {
393
+ to: {
394
+ x: number;
395
+ y: number;
396
+ };
397
+ kind: "C";
398
+ control1: {
399
+ x: number;
400
+ y: number;
401
+ };
402
+ control2: {
403
+ x: number;
404
+ y: number;
405
+ };
406
+ } | {
407
+ kind: "Z";
408
+ })[];
409
+ type: "path";
410
+ style: {
411
+ fill?: string | undefined;
412
+ stroke?: string | undefined;
413
+ strokeWidth?: number | undefined;
414
+ opacity?: number | undefined;
415
+ dashArray?: readonly number[] | undefined;
416
+ lineCap?: "square" | "round" | "butt" | undefined;
417
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
418
+ };
419
+ }, {
420
+ commands: ({
421
+ to: {
422
+ x: number;
423
+ y: number;
424
+ };
425
+ kind: "M";
426
+ } | {
427
+ to: {
428
+ x: number;
429
+ y: number;
430
+ };
431
+ kind: "L";
432
+ } | {
433
+ to: {
434
+ x: number;
435
+ y: number;
436
+ };
437
+ kind: "Q";
438
+ control: {
439
+ x: number;
440
+ y: number;
441
+ };
442
+ } | {
443
+ to: {
444
+ x: number;
445
+ y: number;
446
+ };
447
+ kind: "C";
448
+ control1: {
449
+ x: number;
450
+ y: number;
451
+ };
452
+ control2: {
453
+ x: number;
454
+ y: number;
455
+ };
456
+ } | {
457
+ kind: "Z";
458
+ })[];
459
+ type: "path";
460
+ style: {
461
+ fill?: string | undefined;
462
+ stroke?: string | undefined;
463
+ strokeWidth?: number | undefined;
464
+ opacity?: number | undefined;
465
+ dashArray?: readonly number[] | undefined;
466
+ lineCap?: "square" | "round" | "butt" | undefined;
467
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
468
+ };
469
+ }>, z.ZodObject<{
470
+ type: z.ZodLiteral<"text">;
471
+ style: z.ZodObject<{
472
+ fill: z.ZodOptional<z.ZodString>;
473
+ stroke: z.ZodOptional<z.ZodString>;
474
+ strokeWidth: z.ZodOptional<z.ZodNumber>;
475
+ opacity: z.ZodOptional<z.ZodNumber>;
476
+ dashArray: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodNumber, "many">>>;
477
+ lineCap: z.ZodOptional<z.ZodEnum<["butt", "round", "square"]>>;
478
+ lineJoin: z.ZodOptional<z.ZodEnum<["miter", "round", "bevel"]>>;
479
+ } & {
480
+ textAlign: z.ZodOptional<z.ZodEnum<["left", "center", "right"]>>;
481
+ textBaseline: z.ZodOptional<z.ZodEnum<["top", "middle", "bottom"]>>;
482
+ }, "strict", z.ZodTypeAny, {
483
+ fill?: string | undefined;
484
+ stroke?: string | undefined;
485
+ strokeWidth?: number | undefined;
486
+ opacity?: number | undefined;
487
+ dashArray?: readonly number[] | undefined;
488
+ lineCap?: "square" | "round" | "butt" | undefined;
489
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
490
+ textAlign?: "right" | "left" | "center" | undefined;
491
+ textBaseline?: "top" | "bottom" | "middle" | undefined;
492
+ }, {
493
+ fill?: string | undefined;
494
+ stroke?: string | undefined;
495
+ strokeWidth?: number | undefined;
496
+ opacity?: number | undefined;
497
+ dashArray?: readonly number[] | undefined;
498
+ lineCap?: "square" | "round" | "butt" | undefined;
499
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
500
+ textAlign?: "right" | "left" | "center" | undefined;
501
+ textBaseline?: "top" | "bottom" | "middle" | undefined;
502
+ }>;
503
+ text: z.ZodString;
504
+ fontFamily: z.ZodString;
505
+ fontSize: z.ZodNumber;
506
+ maxWidth: z.ZodOptional<z.ZodNumber>;
507
+ }, "strict", z.ZodTypeAny, {
508
+ text: string;
509
+ type: "text";
510
+ style: {
511
+ fill?: string | undefined;
512
+ stroke?: string | undefined;
513
+ strokeWidth?: number | undefined;
514
+ opacity?: number | undefined;
515
+ dashArray?: readonly number[] | undefined;
516
+ lineCap?: "square" | "round" | "butt" | undefined;
517
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
518
+ textAlign?: "right" | "left" | "center" | undefined;
519
+ textBaseline?: "top" | "bottom" | "middle" | undefined;
520
+ };
521
+ fontFamily: string;
522
+ fontSize: number;
523
+ maxWidth?: number | undefined;
524
+ }, {
525
+ text: string;
526
+ type: "text";
527
+ style: {
528
+ fill?: string | undefined;
529
+ stroke?: string | undefined;
530
+ strokeWidth?: number | undefined;
531
+ opacity?: number | undefined;
532
+ dashArray?: readonly number[] | undefined;
533
+ lineCap?: "square" | "round" | "butt" | undefined;
534
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
535
+ textAlign?: "right" | "left" | "center" | undefined;
536
+ textBaseline?: "top" | "bottom" | "middle" | undefined;
537
+ };
538
+ fontFamily: string;
539
+ fontSize: number;
540
+ maxWidth?: number | undefined;
541
+ }>, z.ZodObject<{
542
+ type: z.ZodLiteral<"image">;
543
+ style: z.ZodObject<{
544
+ fill: z.ZodOptional<z.ZodString>;
545
+ stroke: z.ZodOptional<z.ZodString>;
546
+ strokeWidth: z.ZodOptional<z.ZodNumber>;
547
+ opacity: z.ZodOptional<z.ZodNumber>;
548
+ dashArray: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodNumber, "many">>>;
549
+ lineCap: z.ZodOptional<z.ZodEnum<["butt", "round", "square"]>>;
550
+ lineJoin: z.ZodOptional<z.ZodEnum<["miter", "round", "bevel"]>>;
551
+ }, "strict", z.ZodTypeAny, {
552
+ fill?: string | undefined;
553
+ stroke?: string | undefined;
554
+ strokeWidth?: number | undefined;
555
+ opacity?: number | undefined;
556
+ dashArray?: readonly number[] | undefined;
557
+ lineCap?: "square" | "round" | "butt" | undefined;
558
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
559
+ }, {
560
+ fill?: string | undefined;
561
+ stroke?: string | undefined;
562
+ strokeWidth?: number | undefined;
563
+ opacity?: number | undefined;
564
+ dashArray?: readonly number[] | undefined;
565
+ lineCap?: "square" | "round" | "butt" | undefined;
566
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
567
+ }>;
568
+ src: z.ZodString;
569
+ width: z.ZodNumber;
570
+ height: z.ZodNumber;
571
+ }, "strict", z.ZodTypeAny, {
572
+ width: number;
573
+ height: number;
574
+ type: "image";
575
+ style: {
576
+ fill?: string | undefined;
577
+ stroke?: string | undefined;
578
+ strokeWidth?: number | undefined;
579
+ opacity?: number | undefined;
580
+ dashArray?: readonly number[] | undefined;
581
+ lineCap?: "square" | "round" | "butt" | undefined;
582
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
583
+ };
584
+ src: string;
585
+ }, {
586
+ width: number;
587
+ height: number;
588
+ type: "image";
589
+ style: {
590
+ fill?: string | undefined;
591
+ stroke?: string | undefined;
592
+ strokeWidth?: number | undefined;
593
+ opacity?: number | undefined;
594
+ dashArray?: readonly number[] | undefined;
595
+ lineCap?: "square" | "round" | "butt" | undefined;
596
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
597
+ };
598
+ src: string;
599
+ }>, z.ZodObject<{
600
+ type: z.ZodLiteral<"template">;
601
+ root: z.ZodUnknown;
602
+ defaults: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
603
+ width: z.ZodNumber;
604
+ height: z.ZodNumber;
605
+ schema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<["string", "number", "boolean"]>>>;
606
+ minWidth: z.ZodOptional<z.ZodNumber>;
607
+ minHeight: z.ZodOptional<z.ZodNumber>;
608
+ maxWidth: z.ZodOptional<z.ZodNumber>;
609
+ maxHeight: z.ZodOptional<z.ZodNumber>;
610
+ noFlip: z.ZodOptional<z.ZodBoolean>;
611
+ }, "strict", z.ZodTypeAny, {
612
+ width: number;
613
+ height: number;
614
+ type: "template";
615
+ maxWidth?: number | undefined;
616
+ root?: unknown;
617
+ defaults?: Record<string, unknown> | undefined;
618
+ schema?: Record<string, "string" | "number" | "boolean"> | undefined;
619
+ minWidth?: number | undefined;
620
+ minHeight?: number | undefined;
621
+ maxHeight?: number | undefined;
622
+ noFlip?: boolean | undefined;
623
+ }, {
624
+ width: number;
625
+ height: number;
626
+ type: "template";
627
+ maxWidth?: number | undefined;
628
+ root?: unknown;
629
+ defaults?: Record<string, unknown> | undefined;
630
+ schema?: Record<string, "string" | "number" | "boolean"> | undefined;
631
+ minWidth?: number | undefined;
632
+ minHeight?: number | undefined;
633
+ maxHeight?: number | undefined;
634
+ noFlip?: boolean | undefined;
635
+ }>]>;
636
+ export type ShapeBlueprint = z.infer<typeof ShapeBlueprintZ>;
637
+ export declare const TemplateSpecZ: z.ZodObject<{
638
+ id: z.ZodString;
639
+ name: z.ZodString;
640
+ category: z.ZodString;
641
+ icon: z.ZodString;
642
+ blueprint: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
643
+ type: z.ZodLiteral<"rectangle">;
644
+ style: z.ZodObject<{
645
+ fill: z.ZodOptional<z.ZodString>;
646
+ stroke: z.ZodOptional<z.ZodString>;
647
+ strokeWidth: z.ZodOptional<z.ZodNumber>;
648
+ opacity: z.ZodOptional<z.ZodNumber>;
649
+ dashArray: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodNumber, "many">>>;
650
+ lineCap: z.ZodOptional<z.ZodEnum<["butt", "round", "square"]>>;
651
+ lineJoin: z.ZodOptional<z.ZodEnum<["miter", "round", "bevel"]>>;
652
+ }, "strict", z.ZodTypeAny, {
653
+ fill?: string | undefined;
654
+ stroke?: string | undefined;
655
+ strokeWidth?: number | undefined;
656
+ opacity?: number | undefined;
657
+ dashArray?: readonly number[] | undefined;
658
+ lineCap?: "square" | "round" | "butt" | undefined;
659
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
660
+ }, {
661
+ fill?: string | undefined;
662
+ stroke?: string | undefined;
663
+ strokeWidth?: number | undefined;
664
+ opacity?: number | undefined;
665
+ dashArray?: readonly number[] | undefined;
666
+ lineCap?: "square" | "round" | "butt" | undefined;
667
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
668
+ }>;
669
+ width: z.ZodNumber;
670
+ height: z.ZodNumber;
671
+ }, "strict", z.ZodTypeAny, {
672
+ width: number;
673
+ height: number;
674
+ type: "rectangle";
675
+ style: {
676
+ fill?: string | undefined;
677
+ stroke?: string | undefined;
678
+ strokeWidth?: number | undefined;
679
+ opacity?: number | undefined;
680
+ dashArray?: readonly number[] | undefined;
681
+ lineCap?: "square" | "round" | "butt" | undefined;
682
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
683
+ };
684
+ }, {
685
+ width: number;
686
+ height: number;
687
+ type: "rectangle";
688
+ style: {
689
+ fill?: string | undefined;
690
+ stroke?: string | undefined;
691
+ strokeWidth?: number | undefined;
692
+ opacity?: number | undefined;
693
+ dashArray?: readonly number[] | undefined;
694
+ lineCap?: "square" | "round" | "butt" | undefined;
695
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
696
+ };
697
+ }>, z.ZodObject<{
698
+ type: z.ZodLiteral<"ellipse">;
699
+ style: z.ZodObject<{
700
+ fill: z.ZodOptional<z.ZodString>;
701
+ stroke: z.ZodOptional<z.ZodString>;
702
+ strokeWidth: z.ZodOptional<z.ZodNumber>;
703
+ opacity: z.ZodOptional<z.ZodNumber>;
704
+ dashArray: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodNumber, "many">>>;
705
+ lineCap: z.ZodOptional<z.ZodEnum<["butt", "round", "square"]>>;
706
+ lineJoin: z.ZodOptional<z.ZodEnum<["miter", "round", "bevel"]>>;
707
+ }, "strict", z.ZodTypeAny, {
708
+ fill?: string | undefined;
709
+ stroke?: string | undefined;
710
+ strokeWidth?: number | undefined;
711
+ opacity?: number | undefined;
712
+ dashArray?: readonly number[] | undefined;
713
+ lineCap?: "square" | "round" | "butt" | undefined;
714
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
715
+ }, {
716
+ fill?: string | undefined;
717
+ stroke?: string | undefined;
718
+ strokeWidth?: number | undefined;
719
+ opacity?: number | undefined;
720
+ dashArray?: readonly number[] | undefined;
721
+ lineCap?: "square" | "round" | "butt" | undefined;
722
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
723
+ }>;
724
+ width: z.ZodNumber;
725
+ height: z.ZodNumber;
726
+ }, "strict", z.ZodTypeAny, {
727
+ width: number;
728
+ height: number;
729
+ type: "ellipse";
730
+ style: {
731
+ fill?: string | undefined;
732
+ stroke?: string | undefined;
733
+ strokeWidth?: number | undefined;
734
+ opacity?: number | undefined;
735
+ dashArray?: readonly number[] | undefined;
736
+ lineCap?: "square" | "round" | "butt" | undefined;
737
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
738
+ };
739
+ }, {
740
+ width: number;
741
+ height: number;
742
+ type: "ellipse";
743
+ style: {
744
+ fill?: string | undefined;
745
+ stroke?: string | undefined;
746
+ strokeWidth?: number | undefined;
747
+ opacity?: number | undefined;
748
+ dashArray?: readonly number[] | undefined;
749
+ lineCap?: "square" | "round" | "butt" | undefined;
750
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
751
+ };
752
+ }>, z.ZodObject<{
753
+ type: z.ZodLiteral<"polygon">;
754
+ style: z.ZodObject<{
755
+ fill: z.ZodOptional<z.ZodString>;
756
+ stroke: z.ZodOptional<z.ZodString>;
757
+ strokeWidth: z.ZodOptional<z.ZodNumber>;
758
+ opacity: z.ZodOptional<z.ZodNumber>;
759
+ dashArray: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodNumber, "many">>>;
760
+ lineCap: z.ZodOptional<z.ZodEnum<["butt", "round", "square"]>>;
761
+ lineJoin: z.ZodOptional<z.ZodEnum<["miter", "round", "bevel"]>>;
762
+ }, "strict", z.ZodTypeAny, {
763
+ fill?: string | undefined;
764
+ stroke?: string | undefined;
765
+ strokeWidth?: number | undefined;
766
+ opacity?: number | undefined;
767
+ dashArray?: readonly number[] | undefined;
768
+ lineCap?: "square" | "round" | "butt" | undefined;
769
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
770
+ }, {
771
+ fill?: string | undefined;
772
+ stroke?: string | undefined;
773
+ strokeWidth?: number | undefined;
774
+ opacity?: number | undefined;
775
+ dashArray?: readonly number[] | undefined;
776
+ lineCap?: "square" | "round" | "butt" | undefined;
777
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
778
+ }>;
779
+ points: z.ZodArray<z.ZodObject<{
780
+ x: z.ZodNumber;
781
+ y: z.ZodNumber;
782
+ }, "strip", z.ZodTypeAny, {
783
+ x: number;
784
+ y: number;
785
+ }, {
786
+ x: number;
787
+ y: number;
788
+ }>, "many">;
789
+ }, "strict", z.ZodTypeAny, {
790
+ points: {
791
+ x: number;
792
+ y: number;
793
+ }[];
794
+ type: "polygon";
795
+ style: {
796
+ fill?: string | undefined;
797
+ stroke?: string | undefined;
798
+ strokeWidth?: number | undefined;
799
+ opacity?: number | undefined;
800
+ dashArray?: readonly number[] | undefined;
801
+ lineCap?: "square" | "round" | "butt" | undefined;
802
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
803
+ };
804
+ }, {
805
+ points: {
806
+ x: number;
807
+ y: number;
808
+ }[];
809
+ type: "polygon";
810
+ style: {
811
+ fill?: string | undefined;
812
+ stroke?: string | undefined;
813
+ strokeWidth?: number | undefined;
814
+ opacity?: number | undefined;
815
+ dashArray?: readonly number[] | undefined;
816
+ lineCap?: "square" | "round" | "butt" | undefined;
817
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
818
+ };
819
+ }>, z.ZodObject<{
820
+ type: z.ZodLiteral<"path">;
821
+ style: z.ZodObject<{
822
+ fill: z.ZodOptional<z.ZodString>;
823
+ stroke: z.ZodOptional<z.ZodString>;
824
+ strokeWidth: z.ZodOptional<z.ZodNumber>;
825
+ opacity: z.ZodOptional<z.ZodNumber>;
826
+ dashArray: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodNumber, "many">>>;
827
+ lineCap: z.ZodOptional<z.ZodEnum<["butt", "round", "square"]>>;
828
+ lineJoin: z.ZodOptional<z.ZodEnum<["miter", "round", "bevel"]>>;
829
+ }, "strict", z.ZodTypeAny, {
830
+ fill?: string | undefined;
831
+ stroke?: string | undefined;
832
+ strokeWidth?: number | undefined;
833
+ opacity?: number | undefined;
834
+ dashArray?: readonly number[] | undefined;
835
+ lineCap?: "square" | "round" | "butt" | undefined;
836
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
837
+ }, {
838
+ fill?: string | undefined;
839
+ stroke?: string | undefined;
840
+ strokeWidth?: number | undefined;
841
+ opacity?: number | undefined;
842
+ dashArray?: readonly number[] | undefined;
843
+ lineCap?: "square" | "round" | "butt" | undefined;
844
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
845
+ }>;
846
+ commands: z.ZodArray<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
847
+ kind: z.ZodLiteral<"M">;
848
+ to: z.ZodObject<{
849
+ x: z.ZodNumber;
850
+ y: z.ZodNumber;
851
+ }, "strip", z.ZodTypeAny, {
852
+ x: number;
853
+ y: number;
854
+ }, {
855
+ x: number;
856
+ y: number;
857
+ }>;
858
+ }, "strict", z.ZodTypeAny, {
859
+ to: {
860
+ x: number;
861
+ y: number;
862
+ };
863
+ kind: "M";
864
+ }, {
865
+ to: {
866
+ x: number;
867
+ y: number;
868
+ };
869
+ kind: "M";
870
+ }>, z.ZodObject<{
871
+ kind: z.ZodLiteral<"L">;
872
+ to: z.ZodObject<{
873
+ x: z.ZodNumber;
874
+ y: z.ZodNumber;
875
+ }, "strip", z.ZodTypeAny, {
876
+ x: number;
877
+ y: number;
878
+ }, {
879
+ x: number;
880
+ y: number;
881
+ }>;
882
+ }, "strict", z.ZodTypeAny, {
883
+ to: {
884
+ x: number;
885
+ y: number;
886
+ };
887
+ kind: "L";
888
+ }, {
889
+ to: {
890
+ x: number;
891
+ y: number;
892
+ };
893
+ kind: "L";
894
+ }>, z.ZodObject<{
895
+ kind: z.ZodLiteral<"Q">;
896
+ control: z.ZodObject<{
897
+ x: z.ZodNumber;
898
+ y: z.ZodNumber;
899
+ }, "strip", z.ZodTypeAny, {
900
+ x: number;
901
+ y: number;
902
+ }, {
903
+ x: number;
904
+ y: number;
905
+ }>;
906
+ to: z.ZodObject<{
907
+ x: z.ZodNumber;
908
+ y: z.ZodNumber;
909
+ }, "strip", z.ZodTypeAny, {
910
+ x: number;
911
+ y: number;
912
+ }, {
913
+ x: number;
914
+ y: number;
915
+ }>;
916
+ }, "strict", z.ZodTypeAny, {
917
+ to: {
918
+ x: number;
919
+ y: number;
920
+ };
921
+ kind: "Q";
922
+ control: {
923
+ x: number;
924
+ y: number;
925
+ };
926
+ }, {
927
+ to: {
928
+ x: number;
929
+ y: number;
930
+ };
931
+ kind: "Q";
932
+ control: {
933
+ x: number;
934
+ y: number;
935
+ };
936
+ }>, z.ZodObject<{
937
+ kind: z.ZodLiteral<"C">;
938
+ control1: z.ZodObject<{
939
+ x: z.ZodNumber;
940
+ y: z.ZodNumber;
941
+ }, "strip", z.ZodTypeAny, {
942
+ x: number;
943
+ y: number;
944
+ }, {
945
+ x: number;
946
+ y: number;
947
+ }>;
948
+ control2: z.ZodObject<{
949
+ x: z.ZodNumber;
950
+ y: z.ZodNumber;
951
+ }, "strip", z.ZodTypeAny, {
952
+ x: number;
953
+ y: number;
954
+ }, {
955
+ x: number;
956
+ y: number;
957
+ }>;
958
+ to: z.ZodObject<{
959
+ x: z.ZodNumber;
960
+ y: z.ZodNumber;
961
+ }, "strip", z.ZodTypeAny, {
962
+ x: number;
963
+ y: number;
964
+ }, {
965
+ x: number;
966
+ y: number;
967
+ }>;
968
+ }, "strict", z.ZodTypeAny, {
969
+ to: {
970
+ x: number;
971
+ y: number;
972
+ };
973
+ kind: "C";
974
+ control1: {
975
+ x: number;
976
+ y: number;
977
+ };
978
+ control2: {
979
+ x: number;
980
+ y: number;
981
+ };
982
+ }, {
983
+ to: {
984
+ x: number;
985
+ y: number;
986
+ };
987
+ kind: "C";
988
+ control1: {
989
+ x: number;
990
+ y: number;
991
+ };
992
+ control2: {
993
+ x: number;
994
+ y: number;
995
+ };
996
+ }>, z.ZodObject<{
997
+ kind: z.ZodLiteral<"Z">;
998
+ }, "strict", z.ZodTypeAny, {
999
+ kind: "Z";
1000
+ }, {
1001
+ kind: "Z";
1002
+ }>]>, "many">;
1003
+ }, "strict", z.ZodTypeAny, {
1004
+ commands: ({
1005
+ to: {
1006
+ x: number;
1007
+ y: number;
1008
+ };
1009
+ kind: "M";
1010
+ } | {
1011
+ to: {
1012
+ x: number;
1013
+ y: number;
1014
+ };
1015
+ kind: "L";
1016
+ } | {
1017
+ to: {
1018
+ x: number;
1019
+ y: number;
1020
+ };
1021
+ kind: "Q";
1022
+ control: {
1023
+ x: number;
1024
+ y: number;
1025
+ };
1026
+ } | {
1027
+ to: {
1028
+ x: number;
1029
+ y: number;
1030
+ };
1031
+ kind: "C";
1032
+ control1: {
1033
+ x: number;
1034
+ y: number;
1035
+ };
1036
+ control2: {
1037
+ x: number;
1038
+ y: number;
1039
+ };
1040
+ } | {
1041
+ kind: "Z";
1042
+ })[];
1043
+ type: "path";
1044
+ style: {
1045
+ fill?: string | undefined;
1046
+ stroke?: string | undefined;
1047
+ strokeWidth?: number | undefined;
1048
+ opacity?: number | undefined;
1049
+ dashArray?: readonly number[] | undefined;
1050
+ lineCap?: "square" | "round" | "butt" | undefined;
1051
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
1052
+ };
1053
+ }, {
1054
+ commands: ({
1055
+ to: {
1056
+ x: number;
1057
+ y: number;
1058
+ };
1059
+ kind: "M";
1060
+ } | {
1061
+ to: {
1062
+ x: number;
1063
+ y: number;
1064
+ };
1065
+ kind: "L";
1066
+ } | {
1067
+ to: {
1068
+ x: number;
1069
+ y: number;
1070
+ };
1071
+ kind: "Q";
1072
+ control: {
1073
+ x: number;
1074
+ y: number;
1075
+ };
1076
+ } | {
1077
+ to: {
1078
+ x: number;
1079
+ y: number;
1080
+ };
1081
+ kind: "C";
1082
+ control1: {
1083
+ x: number;
1084
+ y: number;
1085
+ };
1086
+ control2: {
1087
+ x: number;
1088
+ y: number;
1089
+ };
1090
+ } | {
1091
+ kind: "Z";
1092
+ })[];
1093
+ type: "path";
1094
+ style: {
1095
+ fill?: string | undefined;
1096
+ stroke?: string | undefined;
1097
+ strokeWidth?: number | undefined;
1098
+ opacity?: number | undefined;
1099
+ dashArray?: readonly number[] | undefined;
1100
+ lineCap?: "square" | "round" | "butt" | undefined;
1101
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
1102
+ };
1103
+ }>, z.ZodObject<{
1104
+ type: z.ZodLiteral<"text">;
1105
+ style: z.ZodObject<{
1106
+ fill: z.ZodOptional<z.ZodString>;
1107
+ stroke: z.ZodOptional<z.ZodString>;
1108
+ strokeWidth: z.ZodOptional<z.ZodNumber>;
1109
+ opacity: z.ZodOptional<z.ZodNumber>;
1110
+ dashArray: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodNumber, "many">>>;
1111
+ lineCap: z.ZodOptional<z.ZodEnum<["butt", "round", "square"]>>;
1112
+ lineJoin: z.ZodOptional<z.ZodEnum<["miter", "round", "bevel"]>>;
1113
+ } & {
1114
+ textAlign: z.ZodOptional<z.ZodEnum<["left", "center", "right"]>>;
1115
+ textBaseline: z.ZodOptional<z.ZodEnum<["top", "middle", "bottom"]>>;
1116
+ }, "strict", z.ZodTypeAny, {
1117
+ fill?: string | undefined;
1118
+ stroke?: string | undefined;
1119
+ strokeWidth?: number | undefined;
1120
+ opacity?: number | undefined;
1121
+ dashArray?: readonly number[] | undefined;
1122
+ lineCap?: "square" | "round" | "butt" | undefined;
1123
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
1124
+ textAlign?: "right" | "left" | "center" | undefined;
1125
+ textBaseline?: "top" | "bottom" | "middle" | undefined;
1126
+ }, {
1127
+ fill?: string | undefined;
1128
+ stroke?: string | undefined;
1129
+ strokeWidth?: number | undefined;
1130
+ opacity?: number | undefined;
1131
+ dashArray?: readonly number[] | undefined;
1132
+ lineCap?: "square" | "round" | "butt" | undefined;
1133
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
1134
+ textAlign?: "right" | "left" | "center" | undefined;
1135
+ textBaseline?: "top" | "bottom" | "middle" | undefined;
1136
+ }>;
1137
+ text: z.ZodString;
1138
+ fontFamily: z.ZodString;
1139
+ fontSize: z.ZodNumber;
1140
+ maxWidth: z.ZodOptional<z.ZodNumber>;
1141
+ }, "strict", z.ZodTypeAny, {
1142
+ text: string;
1143
+ type: "text";
1144
+ style: {
1145
+ fill?: string | undefined;
1146
+ stroke?: string | undefined;
1147
+ strokeWidth?: number | undefined;
1148
+ opacity?: number | undefined;
1149
+ dashArray?: readonly number[] | undefined;
1150
+ lineCap?: "square" | "round" | "butt" | undefined;
1151
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
1152
+ textAlign?: "right" | "left" | "center" | undefined;
1153
+ textBaseline?: "top" | "bottom" | "middle" | undefined;
1154
+ };
1155
+ fontFamily: string;
1156
+ fontSize: number;
1157
+ maxWidth?: number | undefined;
1158
+ }, {
1159
+ text: string;
1160
+ type: "text";
1161
+ style: {
1162
+ fill?: string | undefined;
1163
+ stroke?: string | undefined;
1164
+ strokeWidth?: number | undefined;
1165
+ opacity?: number | undefined;
1166
+ dashArray?: readonly number[] | undefined;
1167
+ lineCap?: "square" | "round" | "butt" | undefined;
1168
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
1169
+ textAlign?: "right" | "left" | "center" | undefined;
1170
+ textBaseline?: "top" | "bottom" | "middle" | undefined;
1171
+ };
1172
+ fontFamily: string;
1173
+ fontSize: number;
1174
+ maxWidth?: number | undefined;
1175
+ }>, z.ZodObject<{
1176
+ type: z.ZodLiteral<"image">;
1177
+ style: z.ZodObject<{
1178
+ fill: z.ZodOptional<z.ZodString>;
1179
+ stroke: z.ZodOptional<z.ZodString>;
1180
+ strokeWidth: z.ZodOptional<z.ZodNumber>;
1181
+ opacity: z.ZodOptional<z.ZodNumber>;
1182
+ dashArray: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodNumber, "many">>>;
1183
+ lineCap: z.ZodOptional<z.ZodEnum<["butt", "round", "square"]>>;
1184
+ lineJoin: z.ZodOptional<z.ZodEnum<["miter", "round", "bevel"]>>;
1185
+ }, "strict", z.ZodTypeAny, {
1186
+ fill?: string | undefined;
1187
+ stroke?: string | undefined;
1188
+ strokeWidth?: number | undefined;
1189
+ opacity?: number | undefined;
1190
+ dashArray?: readonly number[] | undefined;
1191
+ lineCap?: "square" | "round" | "butt" | undefined;
1192
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
1193
+ }, {
1194
+ fill?: string | undefined;
1195
+ stroke?: string | undefined;
1196
+ strokeWidth?: number | undefined;
1197
+ opacity?: number | undefined;
1198
+ dashArray?: readonly number[] | undefined;
1199
+ lineCap?: "square" | "round" | "butt" | undefined;
1200
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
1201
+ }>;
1202
+ src: z.ZodString;
1203
+ width: z.ZodNumber;
1204
+ height: z.ZodNumber;
1205
+ }, "strict", z.ZodTypeAny, {
1206
+ width: number;
1207
+ height: number;
1208
+ type: "image";
1209
+ style: {
1210
+ fill?: string | undefined;
1211
+ stroke?: string | undefined;
1212
+ strokeWidth?: number | undefined;
1213
+ opacity?: number | undefined;
1214
+ dashArray?: readonly number[] | undefined;
1215
+ lineCap?: "square" | "round" | "butt" | undefined;
1216
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
1217
+ };
1218
+ src: string;
1219
+ }, {
1220
+ width: number;
1221
+ height: number;
1222
+ type: "image";
1223
+ style: {
1224
+ fill?: string | undefined;
1225
+ stroke?: string | undefined;
1226
+ strokeWidth?: number | undefined;
1227
+ opacity?: number | undefined;
1228
+ dashArray?: readonly number[] | undefined;
1229
+ lineCap?: "square" | "round" | "butt" | undefined;
1230
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
1231
+ };
1232
+ src: string;
1233
+ }>, z.ZodObject<{
1234
+ type: z.ZodLiteral<"template">;
1235
+ root: z.ZodUnknown;
1236
+ defaults: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1237
+ width: z.ZodNumber;
1238
+ height: z.ZodNumber;
1239
+ schema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<["string", "number", "boolean"]>>>;
1240
+ minWidth: z.ZodOptional<z.ZodNumber>;
1241
+ minHeight: z.ZodOptional<z.ZodNumber>;
1242
+ maxWidth: z.ZodOptional<z.ZodNumber>;
1243
+ maxHeight: z.ZodOptional<z.ZodNumber>;
1244
+ noFlip: z.ZodOptional<z.ZodBoolean>;
1245
+ }, "strict", z.ZodTypeAny, {
1246
+ width: number;
1247
+ height: number;
1248
+ type: "template";
1249
+ maxWidth?: number | undefined;
1250
+ root?: unknown;
1251
+ defaults?: Record<string, unknown> | undefined;
1252
+ schema?: Record<string, "string" | "number" | "boolean"> | undefined;
1253
+ minWidth?: number | undefined;
1254
+ minHeight?: number | undefined;
1255
+ maxHeight?: number | undefined;
1256
+ noFlip?: boolean | undefined;
1257
+ }, {
1258
+ width: number;
1259
+ height: number;
1260
+ type: "template";
1261
+ maxWidth?: number | undefined;
1262
+ root?: unknown;
1263
+ defaults?: Record<string, unknown> | undefined;
1264
+ schema?: Record<string, "string" | "number" | "boolean"> | undefined;
1265
+ minWidth?: number | undefined;
1266
+ minHeight?: number | undefined;
1267
+ maxHeight?: number | undefined;
1268
+ noFlip?: boolean | undefined;
1269
+ }>]>;
1270
+ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1271
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1272
+ }, "strict", z.ZodTypeAny, {
1273
+ icon: string;
1274
+ name: string;
1275
+ id: string;
1276
+ category: string;
1277
+ blueprint: {
1278
+ width: number;
1279
+ height: number;
1280
+ type: "rectangle";
1281
+ style: {
1282
+ fill?: string | undefined;
1283
+ stroke?: string | undefined;
1284
+ strokeWidth?: number | undefined;
1285
+ opacity?: number | undefined;
1286
+ dashArray?: readonly number[] | undefined;
1287
+ lineCap?: "square" | "round" | "butt" | undefined;
1288
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
1289
+ };
1290
+ } | {
1291
+ width: number;
1292
+ height: number;
1293
+ type: "ellipse";
1294
+ style: {
1295
+ fill?: string | undefined;
1296
+ stroke?: string | undefined;
1297
+ strokeWidth?: number | undefined;
1298
+ opacity?: number | undefined;
1299
+ dashArray?: readonly number[] | undefined;
1300
+ lineCap?: "square" | "round" | "butt" | undefined;
1301
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
1302
+ };
1303
+ } | {
1304
+ points: {
1305
+ x: number;
1306
+ y: number;
1307
+ }[];
1308
+ type: "polygon";
1309
+ style: {
1310
+ fill?: string | undefined;
1311
+ stroke?: string | undefined;
1312
+ strokeWidth?: number | undefined;
1313
+ opacity?: number | undefined;
1314
+ dashArray?: readonly number[] | undefined;
1315
+ lineCap?: "square" | "round" | "butt" | undefined;
1316
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
1317
+ };
1318
+ } | {
1319
+ commands: ({
1320
+ to: {
1321
+ x: number;
1322
+ y: number;
1323
+ };
1324
+ kind: "M";
1325
+ } | {
1326
+ to: {
1327
+ x: number;
1328
+ y: number;
1329
+ };
1330
+ kind: "L";
1331
+ } | {
1332
+ to: {
1333
+ x: number;
1334
+ y: number;
1335
+ };
1336
+ kind: "Q";
1337
+ control: {
1338
+ x: number;
1339
+ y: number;
1340
+ };
1341
+ } | {
1342
+ to: {
1343
+ x: number;
1344
+ y: number;
1345
+ };
1346
+ kind: "C";
1347
+ control1: {
1348
+ x: number;
1349
+ y: number;
1350
+ };
1351
+ control2: {
1352
+ x: number;
1353
+ y: number;
1354
+ };
1355
+ } | {
1356
+ kind: "Z";
1357
+ })[];
1358
+ type: "path";
1359
+ style: {
1360
+ fill?: string | undefined;
1361
+ stroke?: string | undefined;
1362
+ strokeWidth?: number | undefined;
1363
+ opacity?: number | undefined;
1364
+ dashArray?: readonly number[] | undefined;
1365
+ lineCap?: "square" | "round" | "butt" | undefined;
1366
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
1367
+ };
1368
+ } | {
1369
+ text: string;
1370
+ type: "text";
1371
+ style: {
1372
+ fill?: string | undefined;
1373
+ stroke?: string | undefined;
1374
+ strokeWidth?: number | undefined;
1375
+ opacity?: number | undefined;
1376
+ dashArray?: readonly number[] | undefined;
1377
+ lineCap?: "square" | "round" | "butt" | undefined;
1378
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
1379
+ textAlign?: "right" | "left" | "center" | undefined;
1380
+ textBaseline?: "top" | "bottom" | "middle" | undefined;
1381
+ };
1382
+ fontFamily: string;
1383
+ fontSize: number;
1384
+ maxWidth?: number | undefined;
1385
+ } | {
1386
+ width: number;
1387
+ height: number;
1388
+ type: "image";
1389
+ style: {
1390
+ fill?: string | undefined;
1391
+ stroke?: string | undefined;
1392
+ strokeWidth?: number | undefined;
1393
+ opacity?: number | undefined;
1394
+ dashArray?: readonly number[] | undefined;
1395
+ lineCap?: "square" | "round" | "butt" | undefined;
1396
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
1397
+ };
1398
+ src: string;
1399
+ } | {
1400
+ width: number;
1401
+ height: number;
1402
+ type: "template";
1403
+ maxWidth?: number | undefined;
1404
+ root?: unknown;
1405
+ defaults?: Record<string, unknown> | undefined;
1406
+ schema?: Record<string, "string" | "number" | "boolean"> | undefined;
1407
+ minWidth?: number | undefined;
1408
+ minHeight?: number | undefined;
1409
+ maxHeight?: number | undefined;
1410
+ noFlip?: boolean | undefined;
1411
+ };
1412
+ tags?: string[] | undefined;
1413
+ metadata?: Record<string, unknown> | undefined;
1414
+ }, {
1415
+ icon: string;
1416
+ name: string;
1417
+ id: string;
1418
+ category: string;
1419
+ blueprint: {
1420
+ width: number;
1421
+ height: number;
1422
+ type: "rectangle";
1423
+ style: {
1424
+ fill?: string | undefined;
1425
+ stroke?: string | undefined;
1426
+ strokeWidth?: number | undefined;
1427
+ opacity?: number | undefined;
1428
+ dashArray?: readonly number[] | undefined;
1429
+ lineCap?: "square" | "round" | "butt" | undefined;
1430
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
1431
+ };
1432
+ } | {
1433
+ width: number;
1434
+ height: number;
1435
+ type: "ellipse";
1436
+ style: {
1437
+ fill?: string | undefined;
1438
+ stroke?: string | undefined;
1439
+ strokeWidth?: number | undefined;
1440
+ opacity?: number | undefined;
1441
+ dashArray?: readonly number[] | undefined;
1442
+ lineCap?: "square" | "round" | "butt" | undefined;
1443
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
1444
+ };
1445
+ } | {
1446
+ points: {
1447
+ x: number;
1448
+ y: number;
1449
+ }[];
1450
+ type: "polygon";
1451
+ style: {
1452
+ fill?: string | undefined;
1453
+ stroke?: string | undefined;
1454
+ strokeWidth?: number | undefined;
1455
+ opacity?: number | undefined;
1456
+ dashArray?: readonly number[] | undefined;
1457
+ lineCap?: "square" | "round" | "butt" | undefined;
1458
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
1459
+ };
1460
+ } | {
1461
+ commands: ({
1462
+ to: {
1463
+ x: number;
1464
+ y: number;
1465
+ };
1466
+ kind: "M";
1467
+ } | {
1468
+ to: {
1469
+ x: number;
1470
+ y: number;
1471
+ };
1472
+ kind: "L";
1473
+ } | {
1474
+ to: {
1475
+ x: number;
1476
+ y: number;
1477
+ };
1478
+ kind: "Q";
1479
+ control: {
1480
+ x: number;
1481
+ y: number;
1482
+ };
1483
+ } | {
1484
+ to: {
1485
+ x: number;
1486
+ y: number;
1487
+ };
1488
+ kind: "C";
1489
+ control1: {
1490
+ x: number;
1491
+ y: number;
1492
+ };
1493
+ control2: {
1494
+ x: number;
1495
+ y: number;
1496
+ };
1497
+ } | {
1498
+ kind: "Z";
1499
+ })[];
1500
+ type: "path";
1501
+ style: {
1502
+ fill?: string | undefined;
1503
+ stroke?: string | undefined;
1504
+ strokeWidth?: number | undefined;
1505
+ opacity?: number | undefined;
1506
+ dashArray?: readonly number[] | undefined;
1507
+ lineCap?: "square" | "round" | "butt" | undefined;
1508
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
1509
+ };
1510
+ } | {
1511
+ text: string;
1512
+ type: "text";
1513
+ style: {
1514
+ fill?: string | undefined;
1515
+ stroke?: string | undefined;
1516
+ strokeWidth?: number | undefined;
1517
+ opacity?: number | undefined;
1518
+ dashArray?: readonly number[] | undefined;
1519
+ lineCap?: "square" | "round" | "butt" | undefined;
1520
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
1521
+ textAlign?: "right" | "left" | "center" | undefined;
1522
+ textBaseline?: "top" | "bottom" | "middle" | undefined;
1523
+ };
1524
+ fontFamily: string;
1525
+ fontSize: number;
1526
+ maxWidth?: number | undefined;
1527
+ } | {
1528
+ width: number;
1529
+ height: number;
1530
+ type: "image";
1531
+ style: {
1532
+ fill?: string | undefined;
1533
+ stroke?: string | undefined;
1534
+ strokeWidth?: number | undefined;
1535
+ opacity?: number | undefined;
1536
+ dashArray?: readonly number[] | undefined;
1537
+ lineCap?: "square" | "round" | "butt" | undefined;
1538
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
1539
+ };
1540
+ src: string;
1541
+ } | {
1542
+ width: number;
1543
+ height: number;
1544
+ type: "template";
1545
+ maxWidth?: number | undefined;
1546
+ root?: unknown;
1547
+ defaults?: Record<string, unknown> | undefined;
1548
+ schema?: Record<string, "string" | "number" | "boolean"> | undefined;
1549
+ minWidth?: number | undefined;
1550
+ minHeight?: number | undefined;
1551
+ maxHeight?: number | undefined;
1552
+ noFlip?: boolean | undefined;
1553
+ };
1554
+ tags?: string[] | undefined;
1555
+ metadata?: Record<string, unknown> | undefined;
1556
+ }>;
1557
+ export type TemplateSpec = z.infer<typeof TemplateSpecZ>;
1558
+ /**
1559
+ * `.json` library bundle. Authors ship one of these to share templates;
1560
+ * editor reads it via `loadTemplateLibrary`.
1561
+ */
1562
+ export declare const TemplateLibrarySpecZ: z.ZodObject<{
1563
+ format: z.ZodLiteral<"oh-just-another/template-library">;
1564
+ version: z.ZodLiteral<1>;
1565
+ templates: z.ZodArray<z.ZodObject<{
1566
+ id: z.ZodString;
1567
+ name: z.ZodString;
1568
+ category: z.ZodString;
1569
+ icon: z.ZodString;
1570
+ blueprint: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
1571
+ type: z.ZodLiteral<"rectangle">;
1572
+ style: z.ZodObject<{
1573
+ fill: z.ZodOptional<z.ZodString>;
1574
+ stroke: z.ZodOptional<z.ZodString>;
1575
+ strokeWidth: z.ZodOptional<z.ZodNumber>;
1576
+ opacity: z.ZodOptional<z.ZodNumber>;
1577
+ dashArray: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodNumber, "many">>>;
1578
+ lineCap: z.ZodOptional<z.ZodEnum<["butt", "round", "square"]>>;
1579
+ lineJoin: z.ZodOptional<z.ZodEnum<["miter", "round", "bevel"]>>;
1580
+ }, "strict", z.ZodTypeAny, {
1581
+ fill?: string | undefined;
1582
+ stroke?: string | undefined;
1583
+ strokeWidth?: number | undefined;
1584
+ opacity?: number | undefined;
1585
+ dashArray?: readonly number[] | undefined;
1586
+ lineCap?: "square" | "round" | "butt" | undefined;
1587
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
1588
+ }, {
1589
+ fill?: string | undefined;
1590
+ stroke?: string | undefined;
1591
+ strokeWidth?: number | undefined;
1592
+ opacity?: number | undefined;
1593
+ dashArray?: readonly number[] | undefined;
1594
+ lineCap?: "square" | "round" | "butt" | undefined;
1595
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
1596
+ }>;
1597
+ width: z.ZodNumber;
1598
+ height: z.ZodNumber;
1599
+ }, "strict", z.ZodTypeAny, {
1600
+ width: number;
1601
+ height: number;
1602
+ type: "rectangle";
1603
+ style: {
1604
+ fill?: string | undefined;
1605
+ stroke?: string | undefined;
1606
+ strokeWidth?: number | undefined;
1607
+ opacity?: number | undefined;
1608
+ dashArray?: readonly number[] | undefined;
1609
+ lineCap?: "square" | "round" | "butt" | undefined;
1610
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
1611
+ };
1612
+ }, {
1613
+ width: number;
1614
+ height: number;
1615
+ type: "rectangle";
1616
+ style: {
1617
+ fill?: string | undefined;
1618
+ stroke?: string | undefined;
1619
+ strokeWidth?: number | undefined;
1620
+ opacity?: number | undefined;
1621
+ dashArray?: readonly number[] | undefined;
1622
+ lineCap?: "square" | "round" | "butt" | undefined;
1623
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
1624
+ };
1625
+ }>, z.ZodObject<{
1626
+ type: z.ZodLiteral<"ellipse">;
1627
+ style: z.ZodObject<{
1628
+ fill: z.ZodOptional<z.ZodString>;
1629
+ stroke: z.ZodOptional<z.ZodString>;
1630
+ strokeWidth: z.ZodOptional<z.ZodNumber>;
1631
+ opacity: z.ZodOptional<z.ZodNumber>;
1632
+ dashArray: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodNumber, "many">>>;
1633
+ lineCap: z.ZodOptional<z.ZodEnum<["butt", "round", "square"]>>;
1634
+ lineJoin: z.ZodOptional<z.ZodEnum<["miter", "round", "bevel"]>>;
1635
+ }, "strict", z.ZodTypeAny, {
1636
+ fill?: string | undefined;
1637
+ stroke?: string | undefined;
1638
+ strokeWidth?: number | undefined;
1639
+ opacity?: number | undefined;
1640
+ dashArray?: readonly number[] | undefined;
1641
+ lineCap?: "square" | "round" | "butt" | undefined;
1642
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
1643
+ }, {
1644
+ fill?: string | undefined;
1645
+ stroke?: string | undefined;
1646
+ strokeWidth?: number | undefined;
1647
+ opacity?: number | undefined;
1648
+ dashArray?: readonly number[] | undefined;
1649
+ lineCap?: "square" | "round" | "butt" | undefined;
1650
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
1651
+ }>;
1652
+ width: z.ZodNumber;
1653
+ height: z.ZodNumber;
1654
+ }, "strict", z.ZodTypeAny, {
1655
+ width: number;
1656
+ height: number;
1657
+ type: "ellipse";
1658
+ style: {
1659
+ fill?: string | undefined;
1660
+ stroke?: string | undefined;
1661
+ strokeWidth?: number | undefined;
1662
+ opacity?: number | undefined;
1663
+ dashArray?: readonly number[] | undefined;
1664
+ lineCap?: "square" | "round" | "butt" | undefined;
1665
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
1666
+ };
1667
+ }, {
1668
+ width: number;
1669
+ height: number;
1670
+ type: "ellipse";
1671
+ style: {
1672
+ fill?: string | undefined;
1673
+ stroke?: string | undefined;
1674
+ strokeWidth?: number | undefined;
1675
+ opacity?: number | undefined;
1676
+ dashArray?: readonly number[] | undefined;
1677
+ lineCap?: "square" | "round" | "butt" | undefined;
1678
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
1679
+ };
1680
+ }>, z.ZodObject<{
1681
+ type: z.ZodLiteral<"polygon">;
1682
+ style: z.ZodObject<{
1683
+ fill: z.ZodOptional<z.ZodString>;
1684
+ stroke: z.ZodOptional<z.ZodString>;
1685
+ strokeWidth: z.ZodOptional<z.ZodNumber>;
1686
+ opacity: z.ZodOptional<z.ZodNumber>;
1687
+ dashArray: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodNumber, "many">>>;
1688
+ lineCap: z.ZodOptional<z.ZodEnum<["butt", "round", "square"]>>;
1689
+ lineJoin: z.ZodOptional<z.ZodEnum<["miter", "round", "bevel"]>>;
1690
+ }, "strict", z.ZodTypeAny, {
1691
+ fill?: string | undefined;
1692
+ stroke?: string | undefined;
1693
+ strokeWidth?: number | undefined;
1694
+ opacity?: number | undefined;
1695
+ dashArray?: readonly number[] | undefined;
1696
+ lineCap?: "square" | "round" | "butt" | undefined;
1697
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
1698
+ }, {
1699
+ fill?: string | undefined;
1700
+ stroke?: string | undefined;
1701
+ strokeWidth?: number | undefined;
1702
+ opacity?: number | undefined;
1703
+ dashArray?: readonly number[] | undefined;
1704
+ lineCap?: "square" | "round" | "butt" | undefined;
1705
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
1706
+ }>;
1707
+ points: z.ZodArray<z.ZodObject<{
1708
+ x: z.ZodNumber;
1709
+ y: z.ZodNumber;
1710
+ }, "strip", z.ZodTypeAny, {
1711
+ x: number;
1712
+ y: number;
1713
+ }, {
1714
+ x: number;
1715
+ y: number;
1716
+ }>, "many">;
1717
+ }, "strict", z.ZodTypeAny, {
1718
+ points: {
1719
+ x: number;
1720
+ y: number;
1721
+ }[];
1722
+ type: "polygon";
1723
+ style: {
1724
+ fill?: string | undefined;
1725
+ stroke?: string | undefined;
1726
+ strokeWidth?: number | undefined;
1727
+ opacity?: number | undefined;
1728
+ dashArray?: readonly number[] | undefined;
1729
+ lineCap?: "square" | "round" | "butt" | undefined;
1730
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
1731
+ };
1732
+ }, {
1733
+ points: {
1734
+ x: number;
1735
+ y: number;
1736
+ }[];
1737
+ type: "polygon";
1738
+ style: {
1739
+ fill?: string | undefined;
1740
+ stroke?: string | undefined;
1741
+ strokeWidth?: number | undefined;
1742
+ opacity?: number | undefined;
1743
+ dashArray?: readonly number[] | undefined;
1744
+ lineCap?: "square" | "round" | "butt" | undefined;
1745
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
1746
+ };
1747
+ }>, z.ZodObject<{
1748
+ type: z.ZodLiteral<"path">;
1749
+ style: z.ZodObject<{
1750
+ fill: z.ZodOptional<z.ZodString>;
1751
+ stroke: z.ZodOptional<z.ZodString>;
1752
+ strokeWidth: z.ZodOptional<z.ZodNumber>;
1753
+ opacity: z.ZodOptional<z.ZodNumber>;
1754
+ dashArray: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodNumber, "many">>>;
1755
+ lineCap: z.ZodOptional<z.ZodEnum<["butt", "round", "square"]>>;
1756
+ lineJoin: z.ZodOptional<z.ZodEnum<["miter", "round", "bevel"]>>;
1757
+ }, "strict", z.ZodTypeAny, {
1758
+ fill?: string | undefined;
1759
+ stroke?: string | undefined;
1760
+ strokeWidth?: number | undefined;
1761
+ opacity?: number | undefined;
1762
+ dashArray?: readonly number[] | undefined;
1763
+ lineCap?: "square" | "round" | "butt" | undefined;
1764
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
1765
+ }, {
1766
+ fill?: string | undefined;
1767
+ stroke?: string | undefined;
1768
+ strokeWidth?: number | undefined;
1769
+ opacity?: number | undefined;
1770
+ dashArray?: readonly number[] | undefined;
1771
+ lineCap?: "square" | "round" | "butt" | undefined;
1772
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
1773
+ }>;
1774
+ commands: z.ZodArray<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
1775
+ kind: z.ZodLiteral<"M">;
1776
+ to: z.ZodObject<{
1777
+ x: z.ZodNumber;
1778
+ y: z.ZodNumber;
1779
+ }, "strip", z.ZodTypeAny, {
1780
+ x: number;
1781
+ y: number;
1782
+ }, {
1783
+ x: number;
1784
+ y: number;
1785
+ }>;
1786
+ }, "strict", z.ZodTypeAny, {
1787
+ to: {
1788
+ x: number;
1789
+ y: number;
1790
+ };
1791
+ kind: "M";
1792
+ }, {
1793
+ to: {
1794
+ x: number;
1795
+ y: number;
1796
+ };
1797
+ kind: "M";
1798
+ }>, z.ZodObject<{
1799
+ kind: z.ZodLiteral<"L">;
1800
+ to: z.ZodObject<{
1801
+ x: z.ZodNumber;
1802
+ y: z.ZodNumber;
1803
+ }, "strip", z.ZodTypeAny, {
1804
+ x: number;
1805
+ y: number;
1806
+ }, {
1807
+ x: number;
1808
+ y: number;
1809
+ }>;
1810
+ }, "strict", z.ZodTypeAny, {
1811
+ to: {
1812
+ x: number;
1813
+ y: number;
1814
+ };
1815
+ kind: "L";
1816
+ }, {
1817
+ to: {
1818
+ x: number;
1819
+ y: number;
1820
+ };
1821
+ kind: "L";
1822
+ }>, z.ZodObject<{
1823
+ kind: z.ZodLiteral<"Q">;
1824
+ control: z.ZodObject<{
1825
+ x: z.ZodNumber;
1826
+ y: z.ZodNumber;
1827
+ }, "strip", z.ZodTypeAny, {
1828
+ x: number;
1829
+ y: number;
1830
+ }, {
1831
+ x: number;
1832
+ y: number;
1833
+ }>;
1834
+ to: z.ZodObject<{
1835
+ x: z.ZodNumber;
1836
+ y: z.ZodNumber;
1837
+ }, "strip", z.ZodTypeAny, {
1838
+ x: number;
1839
+ y: number;
1840
+ }, {
1841
+ x: number;
1842
+ y: number;
1843
+ }>;
1844
+ }, "strict", z.ZodTypeAny, {
1845
+ to: {
1846
+ x: number;
1847
+ y: number;
1848
+ };
1849
+ kind: "Q";
1850
+ control: {
1851
+ x: number;
1852
+ y: number;
1853
+ };
1854
+ }, {
1855
+ to: {
1856
+ x: number;
1857
+ y: number;
1858
+ };
1859
+ kind: "Q";
1860
+ control: {
1861
+ x: number;
1862
+ y: number;
1863
+ };
1864
+ }>, z.ZodObject<{
1865
+ kind: z.ZodLiteral<"C">;
1866
+ control1: z.ZodObject<{
1867
+ x: z.ZodNumber;
1868
+ y: z.ZodNumber;
1869
+ }, "strip", z.ZodTypeAny, {
1870
+ x: number;
1871
+ y: number;
1872
+ }, {
1873
+ x: number;
1874
+ y: number;
1875
+ }>;
1876
+ control2: z.ZodObject<{
1877
+ x: z.ZodNumber;
1878
+ y: z.ZodNumber;
1879
+ }, "strip", z.ZodTypeAny, {
1880
+ x: number;
1881
+ y: number;
1882
+ }, {
1883
+ x: number;
1884
+ y: number;
1885
+ }>;
1886
+ to: z.ZodObject<{
1887
+ x: z.ZodNumber;
1888
+ y: z.ZodNumber;
1889
+ }, "strip", z.ZodTypeAny, {
1890
+ x: number;
1891
+ y: number;
1892
+ }, {
1893
+ x: number;
1894
+ y: number;
1895
+ }>;
1896
+ }, "strict", z.ZodTypeAny, {
1897
+ to: {
1898
+ x: number;
1899
+ y: number;
1900
+ };
1901
+ kind: "C";
1902
+ control1: {
1903
+ x: number;
1904
+ y: number;
1905
+ };
1906
+ control2: {
1907
+ x: number;
1908
+ y: number;
1909
+ };
1910
+ }, {
1911
+ to: {
1912
+ x: number;
1913
+ y: number;
1914
+ };
1915
+ kind: "C";
1916
+ control1: {
1917
+ x: number;
1918
+ y: number;
1919
+ };
1920
+ control2: {
1921
+ x: number;
1922
+ y: number;
1923
+ };
1924
+ }>, z.ZodObject<{
1925
+ kind: z.ZodLiteral<"Z">;
1926
+ }, "strict", z.ZodTypeAny, {
1927
+ kind: "Z";
1928
+ }, {
1929
+ kind: "Z";
1930
+ }>]>, "many">;
1931
+ }, "strict", z.ZodTypeAny, {
1932
+ commands: ({
1933
+ to: {
1934
+ x: number;
1935
+ y: number;
1936
+ };
1937
+ kind: "M";
1938
+ } | {
1939
+ to: {
1940
+ x: number;
1941
+ y: number;
1942
+ };
1943
+ kind: "L";
1944
+ } | {
1945
+ to: {
1946
+ x: number;
1947
+ y: number;
1948
+ };
1949
+ kind: "Q";
1950
+ control: {
1951
+ x: number;
1952
+ y: number;
1953
+ };
1954
+ } | {
1955
+ to: {
1956
+ x: number;
1957
+ y: number;
1958
+ };
1959
+ kind: "C";
1960
+ control1: {
1961
+ x: number;
1962
+ y: number;
1963
+ };
1964
+ control2: {
1965
+ x: number;
1966
+ y: number;
1967
+ };
1968
+ } | {
1969
+ kind: "Z";
1970
+ })[];
1971
+ type: "path";
1972
+ style: {
1973
+ fill?: string | undefined;
1974
+ stroke?: string | undefined;
1975
+ strokeWidth?: number | undefined;
1976
+ opacity?: number | undefined;
1977
+ dashArray?: readonly number[] | undefined;
1978
+ lineCap?: "square" | "round" | "butt" | undefined;
1979
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
1980
+ };
1981
+ }, {
1982
+ commands: ({
1983
+ to: {
1984
+ x: number;
1985
+ y: number;
1986
+ };
1987
+ kind: "M";
1988
+ } | {
1989
+ to: {
1990
+ x: number;
1991
+ y: number;
1992
+ };
1993
+ kind: "L";
1994
+ } | {
1995
+ to: {
1996
+ x: number;
1997
+ y: number;
1998
+ };
1999
+ kind: "Q";
2000
+ control: {
2001
+ x: number;
2002
+ y: number;
2003
+ };
2004
+ } | {
2005
+ to: {
2006
+ x: number;
2007
+ y: number;
2008
+ };
2009
+ kind: "C";
2010
+ control1: {
2011
+ x: number;
2012
+ y: number;
2013
+ };
2014
+ control2: {
2015
+ x: number;
2016
+ y: number;
2017
+ };
2018
+ } | {
2019
+ kind: "Z";
2020
+ })[];
2021
+ type: "path";
2022
+ style: {
2023
+ fill?: string | undefined;
2024
+ stroke?: string | undefined;
2025
+ strokeWidth?: number | undefined;
2026
+ opacity?: number | undefined;
2027
+ dashArray?: readonly number[] | undefined;
2028
+ lineCap?: "square" | "round" | "butt" | undefined;
2029
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
2030
+ };
2031
+ }>, z.ZodObject<{
2032
+ type: z.ZodLiteral<"text">;
2033
+ style: z.ZodObject<{
2034
+ fill: z.ZodOptional<z.ZodString>;
2035
+ stroke: z.ZodOptional<z.ZodString>;
2036
+ strokeWidth: z.ZodOptional<z.ZodNumber>;
2037
+ opacity: z.ZodOptional<z.ZodNumber>;
2038
+ dashArray: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodNumber, "many">>>;
2039
+ lineCap: z.ZodOptional<z.ZodEnum<["butt", "round", "square"]>>;
2040
+ lineJoin: z.ZodOptional<z.ZodEnum<["miter", "round", "bevel"]>>;
2041
+ } & {
2042
+ textAlign: z.ZodOptional<z.ZodEnum<["left", "center", "right"]>>;
2043
+ textBaseline: z.ZodOptional<z.ZodEnum<["top", "middle", "bottom"]>>;
2044
+ }, "strict", z.ZodTypeAny, {
2045
+ fill?: string | undefined;
2046
+ stroke?: string | undefined;
2047
+ strokeWidth?: number | undefined;
2048
+ opacity?: number | undefined;
2049
+ dashArray?: readonly number[] | undefined;
2050
+ lineCap?: "square" | "round" | "butt" | undefined;
2051
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
2052
+ textAlign?: "right" | "left" | "center" | undefined;
2053
+ textBaseline?: "top" | "bottom" | "middle" | undefined;
2054
+ }, {
2055
+ fill?: string | undefined;
2056
+ stroke?: string | undefined;
2057
+ strokeWidth?: number | undefined;
2058
+ opacity?: number | undefined;
2059
+ dashArray?: readonly number[] | undefined;
2060
+ lineCap?: "square" | "round" | "butt" | undefined;
2061
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
2062
+ textAlign?: "right" | "left" | "center" | undefined;
2063
+ textBaseline?: "top" | "bottom" | "middle" | undefined;
2064
+ }>;
2065
+ text: z.ZodString;
2066
+ fontFamily: z.ZodString;
2067
+ fontSize: z.ZodNumber;
2068
+ maxWidth: z.ZodOptional<z.ZodNumber>;
2069
+ }, "strict", z.ZodTypeAny, {
2070
+ text: string;
2071
+ type: "text";
2072
+ style: {
2073
+ fill?: string | undefined;
2074
+ stroke?: string | undefined;
2075
+ strokeWidth?: number | undefined;
2076
+ opacity?: number | undefined;
2077
+ dashArray?: readonly number[] | undefined;
2078
+ lineCap?: "square" | "round" | "butt" | undefined;
2079
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
2080
+ textAlign?: "right" | "left" | "center" | undefined;
2081
+ textBaseline?: "top" | "bottom" | "middle" | undefined;
2082
+ };
2083
+ fontFamily: string;
2084
+ fontSize: number;
2085
+ maxWidth?: number | undefined;
2086
+ }, {
2087
+ text: string;
2088
+ type: "text";
2089
+ style: {
2090
+ fill?: string | undefined;
2091
+ stroke?: string | undefined;
2092
+ strokeWidth?: number | undefined;
2093
+ opacity?: number | undefined;
2094
+ dashArray?: readonly number[] | undefined;
2095
+ lineCap?: "square" | "round" | "butt" | undefined;
2096
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
2097
+ textAlign?: "right" | "left" | "center" | undefined;
2098
+ textBaseline?: "top" | "bottom" | "middle" | undefined;
2099
+ };
2100
+ fontFamily: string;
2101
+ fontSize: number;
2102
+ maxWidth?: number | undefined;
2103
+ }>, z.ZodObject<{
2104
+ type: z.ZodLiteral<"image">;
2105
+ style: z.ZodObject<{
2106
+ fill: z.ZodOptional<z.ZodString>;
2107
+ stroke: z.ZodOptional<z.ZodString>;
2108
+ strokeWidth: z.ZodOptional<z.ZodNumber>;
2109
+ opacity: z.ZodOptional<z.ZodNumber>;
2110
+ dashArray: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodNumber, "many">>>;
2111
+ lineCap: z.ZodOptional<z.ZodEnum<["butt", "round", "square"]>>;
2112
+ lineJoin: z.ZodOptional<z.ZodEnum<["miter", "round", "bevel"]>>;
2113
+ }, "strict", z.ZodTypeAny, {
2114
+ fill?: string | undefined;
2115
+ stroke?: string | undefined;
2116
+ strokeWidth?: number | undefined;
2117
+ opacity?: number | undefined;
2118
+ dashArray?: readonly number[] | undefined;
2119
+ lineCap?: "square" | "round" | "butt" | undefined;
2120
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
2121
+ }, {
2122
+ fill?: string | undefined;
2123
+ stroke?: string | undefined;
2124
+ strokeWidth?: number | undefined;
2125
+ opacity?: number | undefined;
2126
+ dashArray?: readonly number[] | undefined;
2127
+ lineCap?: "square" | "round" | "butt" | undefined;
2128
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
2129
+ }>;
2130
+ src: z.ZodString;
2131
+ width: z.ZodNumber;
2132
+ height: z.ZodNumber;
2133
+ }, "strict", z.ZodTypeAny, {
2134
+ width: number;
2135
+ height: number;
2136
+ type: "image";
2137
+ style: {
2138
+ fill?: string | undefined;
2139
+ stroke?: string | undefined;
2140
+ strokeWidth?: number | undefined;
2141
+ opacity?: number | undefined;
2142
+ dashArray?: readonly number[] | undefined;
2143
+ lineCap?: "square" | "round" | "butt" | undefined;
2144
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
2145
+ };
2146
+ src: string;
2147
+ }, {
2148
+ width: number;
2149
+ height: number;
2150
+ type: "image";
2151
+ style: {
2152
+ fill?: string | undefined;
2153
+ stroke?: string | undefined;
2154
+ strokeWidth?: number | undefined;
2155
+ opacity?: number | undefined;
2156
+ dashArray?: readonly number[] | undefined;
2157
+ lineCap?: "square" | "round" | "butt" | undefined;
2158
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
2159
+ };
2160
+ src: string;
2161
+ }>, z.ZodObject<{
2162
+ type: z.ZodLiteral<"template">;
2163
+ root: z.ZodUnknown;
2164
+ defaults: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2165
+ width: z.ZodNumber;
2166
+ height: z.ZodNumber;
2167
+ schema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<["string", "number", "boolean"]>>>;
2168
+ minWidth: z.ZodOptional<z.ZodNumber>;
2169
+ minHeight: z.ZodOptional<z.ZodNumber>;
2170
+ maxWidth: z.ZodOptional<z.ZodNumber>;
2171
+ maxHeight: z.ZodOptional<z.ZodNumber>;
2172
+ noFlip: z.ZodOptional<z.ZodBoolean>;
2173
+ }, "strict", z.ZodTypeAny, {
2174
+ width: number;
2175
+ height: number;
2176
+ type: "template";
2177
+ maxWidth?: number | undefined;
2178
+ root?: unknown;
2179
+ defaults?: Record<string, unknown> | undefined;
2180
+ schema?: Record<string, "string" | "number" | "boolean"> | undefined;
2181
+ minWidth?: number | undefined;
2182
+ minHeight?: number | undefined;
2183
+ maxHeight?: number | undefined;
2184
+ noFlip?: boolean | undefined;
2185
+ }, {
2186
+ width: number;
2187
+ height: number;
2188
+ type: "template";
2189
+ maxWidth?: number | undefined;
2190
+ root?: unknown;
2191
+ defaults?: Record<string, unknown> | undefined;
2192
+ schema?: Record<string, "string" | "number" | "boolean"> | undefined;
2193
+ minWidth?: number | undefined;
2194
+ minHeight?: number | undefined;
2195
+ maxHeight?: number | undefined;
2196
+ noFlip?: boolean | undefined;
2197
+ }>]>;
2198
+ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2199
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2200
+ }, "strict", z.ZodTypeAny, {
2201
+ icon: string;
2202
+ name: string;
2203
+ id: string;
2204
+ category: string;
2205
+ blueprint: {
2206
+ width: number;
2207
+ height: number;
2208
+ type: "rectangle";
2209
+ style: {
2210
+ fill?: string | undefined;
2211
+ stroke?: string | undefined;
2212
+ strokeWidth?: number | undefined;
2213
+ opacity?: number | undefined;
2214
+ dashArray?: readonly number[] | undefined;
2215
+ lineCap?: "square" | "round" | "butt" | undefined;
2216
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
2217
+ };
2218
+ } | {
2219
+ width: number;
2220
+ height: number;
2221
+ type: "ellipse";
2222
+ style: {
2223
+ fill?: string | undefined;
2224
+ stroke?: string | undefined;
2225
+ strokeWidth?: number | undefined;
2226
+ opacity?: number | undefined;
2227
+ dashArray?: readonly number[] | undefined;
2228
+ lineCap?: "square" | "round" | "butt" | undefined;
2229
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
2230
+ };
2231
+ } | {
2232
+ points: {
2233
+ x: number;
2234
+ y: number;
2235
+ }[];
2236
+ type: "polygon";
2237
+ style: {
2238
+ fill?: string | undefined;
2239
+ stroke?: string | undefined;
2240
+ strokeWidth?: number | undefined;
2241
+ opacity?: number | undefined;
2242
+ dashArray?: readonly number[] | undefined;
2243
+ lineCap?: "square" | "round" | "butt" | undefined;
2244
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
2245
+ };
2246
+ } | {
2247
+ commands: ({
2248
+ to: {
2249
+ x: number;
2250
+ y: number;
2251
+ };
2252
+ kind: "M";
2253
+ } | {
2254
+ to: {
2255
+ x: number;
2256
+ y: number;
2257
+ };
2258
+ kind: "L";
2259
+ } | {
2260
+ to: {
2261
+ x: number;
2262
+ y: number;
2263
+ };
2264
+ kind: "Q";
2265
+ control: {
2266
+ x: number;
2267
+ y: number;
2268
+ };
2269
+ } | {
2270
+ to: {
2271
+ x: number;
2272
+ y: number;
2273
+ };
2274
+ kind: "C";
2275
+ control1: {
2276
+ x: number;
2277
+ y: number;
2278
+ };
2279
+ control2: {
2280
+ x: number;
2281
+ y: number;
2282
+ };
2283
+ } | {
2284
+ kind: "Z";
2285
+ })[];
2286
+ type: "path";
2287
+ style: {
2288
+ fill?: string | undefined;
2289
+ stroke?: string | undefined;
2290
+ strokeWidth?: number | undefined;
2291
+ opacity?: number | undefined;
2292
+ dashArray?: readonly number[] | undefined;
2293
+ lineCap?: "square" | "round" | "butt" | undefined;
2294
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
2295
+ };
2296
+ } | {
2297
+ text: string;
2298
+ type: "text";
2299
+ style: {
2300
+ fill?: string | undefined;
2301
+ stroke?: string | undefined;
2302
+ strokeWidth?: number | undefined;
2303
+ opacity?: number | undefined;
2304
+ dashArray?: readonly number[] | undefined;
2305
+ lineCap?: "square" | "round" | "butt" | undefined;
2306
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
2307
+ textAlign?: "right" | "left" | "center" | undefined;
2308
+ textBaseline?: "top" | "bottom" | "middle" | undefined;
2309
+ };
2310
+ fontFamily: string;
2311
+ fontSize: number;
2312
+ maxWidth?: number | undefined;
2313
+ } | {
2314
+ width: number;
2315
+ height: number;
2316
+ type: "image";
2317
+ style: {
2318
+ fill?: string | undefined;
2319
+ stroke?: string | undefined;
2320
+ strokeWidth?: number | undefined;
2321
+ opacity?: number | undefined;
2322
+ dashArray?: readonly number[] | undefined;
2323
+ lineCap?: "square" | "round" | "butt" | undefined;
2324
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
2325
+ };
2326
+ src: string;
2327
+ } | {
2328
+ width: number;
2329
+ height: number;
2330
+ type: "template";
2331
+ maxWidth?: number | undefined;
2332
+ root?: unknown;
2333
+ defaults?: Record<string, unknown> | undefined;
2334
+ schema?: Record<string, "string" | "number" | "boolean"> | undefined;
2335
+ minWidth?: number | undefined;
2336
+ minHeight?: number | undefined;
2337
+ maxHeight?: number | undefined;
2338
+ noFlip?: boolean | undefined;
2339
+ };
2340
+ tags?: string[] | undefined;
2341
+ metadata?: Record<string, unknown> | undefined;
2342
+ }, {
2343
+ icon: string;
2344
+ name: string;
2345
+ id: string;
2346
+ category: string;
2347
+ blueprint: {
2348
+ width: number;
2349
+ height: number;
2350
+ type: "rectangle";
2351
+ style: {
2352
+ fill?: string | undefined;
2353
+ stroke?: string | undefined;
2354
+ strokeWidth?: number | undefined;
2355
+ opacity?: number | undefined;
2356
+ dashArray?: readonly number[] | undefined;
2357
+ lineCap?: "square" | "round" | "butt" | undefined;
2358
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
2359
+ };
2360
+ } | {
2361
+ width: number;
2362
+ height: number;
2363
+ type: "ellipse";
2364
+ style: {
2365
+ fill?: string | undefined;
2366
+ stroke?: string | undefined;
2367
+ strokeWidth?: number | undefined;
2368
+ opacity?: number | undefined;
2369
+ dashArray?: readonly number[] | undefined;
2370
+ lineCap?: "square" | "round" | "butt" | undefined;
2371
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
2372
+ };
2373
+ } | {
2374
+ points: {
2375
+ x: number;
2376
+ y: number;
2377
+ }[];
2378
+ type: "polygon";
2379
+ style: {
2380
+ fill?: string | undefined;
2381
+ stroke?: string | undefined;
2382
+ strokeWidth?: number | undefined;
2383
+ opacity?: number | undefined;
2384
+ dashArray?: readonly number[] | undefined;
2385
+ lineCap?: "square" | "round" | "butt" | undefined;
2386
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
2387
+ };
2388
+ } | {
2389
+ commands: ({
2390
+ to: {
2391
+ x: number;
2392
+ y: number;
2393
+ };
2394
+ kind: "M";
2395
+ } | {
2396
+ to: {
2397
+ x: number;
2398
+ y: number;
2399
+ };
2400
+ kind: "L";
2401
+ } | {
2402
+ to: {
2403
+ x: number;
2404
+ y: number;
2405
+ };
2406
+ kind: "Q";
2407
+ control: {
2408
+ x: number;
2409
+ y: number;
2410
+ };
2411
+ } | {
2412
+ to: {
2413
+ x: number;
2414
+ y: number;
2415
+ };
2416
+ kind: "C";
2417
+ control1: {
2418
+ x: number;
2419
+ y: number;
2420
+ };
2421
+ control2: {
2422
+ x: number;
2423
+ y: number;
2424
+ };
2425
+ } | {
2426
+ kind: "Z";
2427
+ })[];
2428
+ type: "path";
2429
+ style: {
2430
+ fill?: string | undefined;
2431
+ stroke?: string | undefined;
2432
+ strokeWidth?: number | undefined;
2433
+ opacity?: number | undefined;
2434
+ dashArray?: readonly number[] | undefined;
2435
+ lineCap?: "square" | "round" | "butt" | undefined;
2436
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
2437
+ };
2438
+ } | {
2439
+ text: string;
2440
+ type: "text";
2441
+ style: {
2442
+ fill?: string | undefined;
2443
+ stroke?: string | undefined;
2444
+ strokeWidth?: number | undefined;
2445
+ opacity?: number | undefined;
2446
+ dashArray?: readonly number[] | undefined;
2447
+ lineCap?: "square" | "round" | "butt" | undefined;
2448
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
2449
+ textAlign?: "right" | "left" | "center" | undefined;
2450
+ textBaseline?: "top" | "bottom" | "middle" | undefined;
2451
+ };
2452
+ fontFamily: string;
2453
+ fontSize: number;
2454
+ maxWidth?: number | undefined;
2455
+ } | {
2456
+ width: number;
2457
+ height: number;
2458
+ type: "image";
2459
+ style: {
2460
+ fill?: string | undefined;
2461
+ stroke?: string | undefined;
2462
+ strokeWidth?: number | undefined;
2463
+ opacity?: number | undefined;
2464
+ dashArray?: readonly number[] | undefined;
2465
+ lineCap?: "square" | "round" | "butt" | undefined;
2466
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
2467
+ };
2468
+ src: string;
2469
+ } | {
2470
+ width: number;
2471
+ height: number;
2472
+ type: "template";
2473
+ maxWidth?: number | undefined;
2474
+ root?: unknown;
2475
+ defaults?: Record<string, unknown> | undefined;
2476
+ schema?: Record<string, "string" | "number" | "boolean"> | undefined;
2477
+ minWidth?: number | undefined;
2478
+ minHeight?: number | undefined;
2479
+ maxHeight?: number | undefined;
2480
+ noFlip?: boolean | undefined;
2481
+ };
2482
+ tags?: string[] | undefined;
2483
+ metadata?: Record<string, unknown> | undefined;
2484
+ }>, "many">;
2485
+ }, "strict", z.ZodTypeAny, {
2486
+ format: "oh-just-another/template-library";
2487
+ version: 1;
2488
+ templates: {
2489
+ icon: string;
2490
+ name: string;
2491
+ id: string;
2492
+ category: string;
2493
+ blueprint: {
2494
+ width: number;
2495
+ height: number;
2496
+ type: "rectangle";
2497
+ style: {
2498
+ fill?: string | undefined;
2499
+ stroke?: string | undefined;
2500
+ strokeWidth?: number | undefined;
2501
+ opacity?: number | undefined;
2502
+ dashArray?: readonly number[] | undefined;
2503
+ lineCap?: "square" | "round" | "butt" | undefined;
2504
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
2505
+ };
2506
+ } | {
2507
+ width: number;
2508
+ height: number;
2509
+ type: "ellipse";
2510
+ style: {
2511
+ fill?: string | undefined;
2512
+ stroke?: string | undefined;
2513
+ strokeWidth?: number | undefined;
2514
+ opacity?: number | undefined;
2515
+ dashArray?: readonly number[] | undefined;
2516
+ lineCap?: "square" | "round" | "butt" | undefined;
2517
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
2518
+ };
2519
+ } | {
2520
+ points: {
2521
+ x: number;
2522
+ y: number;
2523
+ }[];
2524
+ type: "polygon";
2525
+ style: {
2526
+ fill?: string | undefined;
2527
+ stroke?: string | undefined;
2528
+ strokeWidth?: number | undefined;
2529
+ opacity?: number | undefined;
2530
+ dashArray?: readonly number[] | undefined;
2531
+ lineCap?: "square" | "round" | "butt" | undefined;
2532
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
2533
+ };
2534
+ } | {
2535
+ commands: ({
2536
+ to: {
2537
+ x: number;
2538
+ y: number;
2539
+ };
2540
+ kind: "M";
2541
+ } | {
2542
+ to: {
2543
+ x: number;
2544
+ y: number;
2545
+ };
2546
+ kind: "L";
2547
+ } | {
2548
+ to: {
2549
+ x: number;
2550
+ y: number;
2551
+ };
2552
+ kind: "Q";
2553
+ control: {
2554
+ x: number;
2555
+ y: number;
2556
+ };
2557
+ } | {
2558
+ to: {
2559
+ x: number;
2560
+ y: number;
2561
+ };
2562
+ kind: "C";
2563
+ control1: {
2564
+ x: number;
2565
+ y: number;
2566
+ };
2567
+ control2: {
2568
+ x: number;
2569
+ y: number;
2570
+ };
2571
+ } | {
2572
+ kind: "Z";
2573
+ })[];
2574
+ type: "path";
2575
+ style: {
2576
+ fill?: string | undefined;
2577
+ stroke?: string | undefined;
2578
+ strokeWidth?: number | undefined;
2579
+ opacity?: number | undefined;
2580
+ dashArray?: readonly number[] | undefined;
2581
+ lineCap?: "square" | "round" | "butt" | undefined;
2582
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
2583
+ };
2584
+ } | {
2585
+ text: string;
2586
+ type: "text";
2587
+ style: {
2588
+ fill?: string | undefined;
2589
+ stroke?: string | undefined;
2590
+ strokeWidth?: number | undefined;
2591
+ opacity?: number | undefined;
2592
+ dashArray?: readonly number[] | undefined;
2593
+ lineCap?: "square" | "round" | "butt" | undefined;
2594
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
2595
+ textAlign?: "right" | "left" | "center" | undefined;
2596
+ textBaseline?: "top" | "bottom" | "middle" | undefined;
2597
+ };
2598
+ fontFamily: string;
2599
+ fontSize: number;
2600
+ maxWidth?: number | undefined;
2601
+ } | {
2602
+ width: number;
2603
+ height: number;
2604
+ type: "image";
2605
+ style: {
2606
+ fill?: string | undefined;
2607
+ stroke?: string | undefined;
2608
+ strokeWidth?: number | undefined;
2609
+ opacity?: number | undefined;
2610
+ dashArray?: readonly number[] | undefined;
2611
+ lineCap?: "square" | "round" | "butt" | undefined;
2612
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
2613
+ };
2614
+ src: string;
2615
+ } | {
2616
+ width: number;
2617
+ height: number;
2618
+ type: "template";
2619
+ maxWidth?: number | undefined;
2620
+ root?: unknown;
2621
+ defaults?: Record<string, unknown> | undefined;
2622
+ schema?: Record<string, "string" | "number" | "boolean"> | undefined;
2623
+ minWidth?: number | undefined;
2624
+ minHeight?: number | undefined;
2625
+ maxHeight?: number | undefined;
2626
+ noFlip?: boolean | undefined;
2627
+ };
2628
+ tags?: string[] | undefined;
2629
+ metadata?: Record<string, unknown> | undefined;
2630
+ }[];
2631
+ }, {
2632
+ format: "oh-just-another/template-library";
2633
+ version: 1;
2634
+ templates: {
2635
+ icon: string;
2636
+ name: string;
2637
+ id: string;
2638
+ category: string;
2639
+ blueprint: {
2640
+ width: number;
2641
+ height: number;
2642
+ type: "rectangle";
2643
+ style: {
2644
+ fill?: string | undefined;
2645
+ stroke?: string | undefined;
2646
+ strokeWidth?: number | undefined;
2647
+ opacity?: number | undefined;
2648
+ dashArray?: readonly number[] | undefined;
2649
+ lineCap?: "square" | "round" | "butt" | undefined;
2650
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
2651
+ };
2652
+ } | {
2653
+ width: number;
2654
+ height: number;
2655
+ type: "ellipse";
2656
+ style: {
2657
+ fill?: string | undefined;
2658
+ stroke?: string | undefined;
2659
+ strokeWidth?: number | undefined;
2660
+ opacity?: number | undefined;
2661
+ dashArray?: readonly number[] | undefined;
2662
+ lineCap?: "square" | "round" | "butt" | undefined;
2663
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
2664
+ };
2665
+ } | {
2666
+ points: {
2667
+ x: number;
2668
+ y: number;
2669
+ }[];
2670
+ type: "polygon";
2671
+ style: {
2672
+ fill?: string | undefined;
2673
+ stroke?: string | undefined;
2674
+ strokeWidth?: number | undefined;
2675
+ opacity?: number | undefined;
2676
+ dashArray?: readonly number[] | undefined;
2677
+ lineCap?: "square" | "round" | "butt" | undefined;
2678
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
2679
+ };
2680
+ } | {
2681
+ commands: ({
2682
+ to: {
2683
+ x: number;
2684
+ y: number;
2685
+ };
2686
+ kind: "M";
2687
+ } | {
2688
+ to: {
2689
+ x: number;
2690
+ y: number;
2691
+ };
2692
+ kind: "L";
2693
+ } | {
2694
+ to: {
2695
+ x: number;
2696
+ y: number;
2697
+ };
2698
+ kind: "Q";
2699
+ control: {
2700
+ x: number;
2701
+ y: number;
2702
+ };
2703
+ } | {
2704
+ to: {
2705
+ x: number;
2706
+ y: number;
2707
+ };
2708
+ kind: "C";
2709
+ control1: {
2710
+ x: number;
2711
+ y: number;
2712
+ };
2713
+ control2: {
2714
+ x: number;
2715
+ y: number;
2716
+ };
2717
+ } | {
2718
+ kind: "Z";
2719
+ })[];
2720
+ type: "path";
2721
+ style: {
2722
+ fill?: string | undefined;
2723
+ stroke?: string | undefined;
2724
+ strokeWidth?: number | undefined;
2725
+ opacity?: number | undefined;
2726
+ dashArray?: readonly number[] | undefined;
2727
+ lineCap?: "square" | "round" | "butt" | undefined;
2728
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
2729
+ };
2730
+ } | {
2731
+ text: string;
2732
+ type: "text";
2733
+ style: {
2734
+ fill?: string | undefined;
2735
+ stroke?: string | undefined;
2736
+ strokeWidth?: number | undefined;
2737
+ opacity?: number | undefined;
2738
+ dashArray?: readonly number[] | undefined;
2739
+ lineCap?: "square" | "round" | "butt" | undefined;
2740
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
2741
+ textAlign?: "right" | "left" | "center" | undefined;
2742
+ textBaseline?: "top" | "bottom" | "middle" | undefined;
2743
+ };
2744
+ fontFamily: string;
2745
+ fontSize: number;
2746
+ maxWidth?: number | undefined;
2747
+ } | {
2748
+ width: number;
2749
+ height: number;
2750
+ type: "image";
2751
+ style: {
2752
+ fill?: string | undefined;
2753
+ stroke?: string | undefined;
2754
+ strokeWidth?: number | undefined;
2755
+ opacity?: number | undefined;
2756
+ dashArray?: readonly number[] | undefined;
2757
+ lineCap?: "square" | "round" | "butt" | undefined;
2758
+ lineJoin?: "round" | "miter" | "bevel" | undefined;
2759
+ };
2760
+ src: string;
2761
+ } | {
2762
+ width: number;
2763
+ height: number;
2764
+ type: "template";
2765
+ maxWidth?: number | undefined;
2766
+ root?: unknown;
2767
+ defaults?: Record<string, unknown> | undefined;
2768
+ schema?: Record<string, "string" | "number" | "boolean"> | undefined;
2769
+ minWidth?: number | undefined;
2770
+ minHeight?: number | undefined;
2771
+ maxHeight?: number | undefined;
2772
+ noFlip?: boolean | undefined;
2773
+ };
2774
+ tags?: string[] | undefined;
2775
+ metadata?: Record<string, unknown> | undefined;
2776
+ }[];
2777
+ }>;
2778
+ export type TemplateLibrarySpec = z.infer<typeof TemplateLibrarySpecZ>;
2779
+ /**
2780
+ * Reconstruct a callable `Template` from a `TemplateSpec`. The factory closes
2781
+ * over the blueprint and is otherwise pure.
2782
+ *
2783
+ * For `type: "template"` blueprints the rich template tree is also registered
2784
+ * in `defaultRichRegistry` so the renderer can find it by id. Repeated calls
2785
+ * with the same `spec.id` use `replace` to keep the registry consistent with
2786
+ * the most recent definition.
2787
+ */
2788
+ export declare const templateFromSpec: (spec: TemplateSpec) => Template;
2789
+ //# sourceMappingURL=spec.d.ts.map