@json-to-office/shared-docx 0.2.0 → 0.5.3
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/{chunk-CN6VD4WH.js → chunk-3D6HY6AC.js} +159 -86
- package/dist/chunk-3D6HY6AC.js.map +1 -0
- package/dist/{chunk-NCGCTQZ6.js → chunk-A325P5FV.js} +8 -8
- package/dist/{chunk-HHMK2RWF.js → chunk-AMVS7BRX.js} +7 -2
- package/dist/chunk-AMVS7BRX.js.map +1 -0
- package/dist/{chunk-WTN6PMNZ.js → chunk-CVI7GFWX.js} +6 -7
- package/dist/chunk-CVI7GFWX.js.map +1 -0
- package/dist/{chunk-YGWE6RFN.js → chunk-EDYWA2KA.js} +2 -2
- package/dist/{chunk-TBDQHRHI.js → chunk-IFSM3GXH.js} +15 -9
- package/dist/chunk-IFSM3GXH.js.map +1 -0
- package/dist/{chunk-MXVEVEY7.js → chunk-S4EFGCIC.js} +2 -2
- package/dist/{chunk-XPL7NECE.js → chunk-WJA5TGNI.js} +25 -15
- package/dist/chunk-WJA5TGNI.js.map +1 -0
- package/dist/{chunk-6A2M4E4E.js → chunk-YNBTESFN.js} +6 -6
- package/dist/index.d.ts +1 -202
- package/dist/index.js +22 -22
- package/dist/schemas/api.js +3 -3
- package/dist/schemas/component-registry.d.ts +35 -5
- package/dist/schemas/component-registry.js +3 -1
- package/dist/schemas/components.d.ts +12 -200
- package/dist/schemas/components.js +6 -4
- package/dist/schemas/document.js +4 -4
- package/dist/schemas/export.js +3 -1
- package/dist/schemas/generator.js +2 -2
- package/dist/schemas/theme.d.ts +3 -597
- package/dist/schemas/theme.js +3 -3
- package/dist/validation/unified/index.d.ts +1 -199
- package/dist/validation/unified/index.js +5 -5
- package/package.json +1 -1
- package/dist/chunk-CN6VD4WH.js.map +0 -1
- package/dist/chunk-HHMK2RWF.js.map +0 -1
- package/dist/chunk-TBDQHRHI.js.map +0 -1
- package/dist/chunk-WTN6PMNZ.js.map +0 -1
- package/dist/chunk-XPL7NECE.js.map +0 -1
- /package/dist/{chunk-NCGCTQZ6.js.map → chunk-A325P5FV.js.map} +0 -0
- /package/dist/{chunk-YGWE6RFN.js.map → chunk-EDYWA2KA.js.map} +0 -0
- /package/dist/{chunk-MXVEVEY7.js.map → chunk-S4EFGCIC.js.map} +0 -0
- /package/dist/{chunk-6A2M4E4E.js.map → chunk-YNBTESFN.js.map} +0 -0
package/dist/schemas/theme.js
CHANGED
|
@@ -16,9 +16,9 @@ import {
|
|
|
16
16
|
TableComponentDefaultsSchema,
|
|
17
17
|
ThemeConfigSchema,
|
|
18
18
|
isValidThemeConfig
|
|
19
|
-
} from "../chunk-
|
|
20
|
-
import "../chunk-
|
|
21
|
-
import "../chunk-
|
|
19
|
+
} from "../chunk-IFSM3GXH.js";
|
|
20
|
+
import "../chunk-CVI7GFWX.js";
|
|
21
|
+
import "../chunk-3D6HY6AC.js";
|
|
22
22
|
import "../chunk-F5LVWDTY.js";
|
|
23
23
|
export {
|
|
24
24
|
ColumnsComponentDefaultsSchema,
|
|
@@ -308,205 +308,7 @@ declare const COMPONENT_SCHEMA_MAP: {
|
|
|
308
308
|
}>>;
|
|
309
309
|
size: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"small">, _sinclair_typebox.TLiteral<"medium">, _sinclair_typebox.TLiteral<"large">]>>;
|
|
310
310
|
}>;
|
|
311
|
-
readonly table:
|
|
312
|
-
borderColor: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TObject<{
|
|
313
|
-
bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
314
|
-
top: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
315
|
-
right: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
316
|
-
left: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
317
|
-
}>]>>;
|
|
318
|
-
borderSize: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TNumber, _sinclair_typebox.TObject<{
|
|
319
|
-
bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
320
|
-
top: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
321
|
-
right: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
322
|
-
left: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
323
|
-
}>]>>;
|
|
324
|
-
hideBorders: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TBoolean, _sinclair_typebox.TObject<{
|
|
325
|
-
bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
|
|
326
|
-
top: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
|
|
327
|
-
right: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
|
|
328
|
-
left: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
|
|
329
|
-
insideHorizontal: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
|
|
330
|
-
insideVertical: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
|
|
331
|
-
}>]>>;
|
|
332
|
-
cellDefaults: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
|
|
333
|
-
color: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
334
|
-
backgroundColor: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
335
|
-
horizontalAlignment: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"left">, _sinclair_typebox.TLiteral<"center">, _sinclair_typebox.TLiteral<"right">, _sinclair_typebox.TLiteral<"justify">]>>;
|
|
336
|
-
verticalAlignment: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"top">, _sinclair_typebox.TLiteral<"middle">, _sinclair_typebox.TLiteral<"bottom">]>>;
|
|
337
|
-
font: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
|
|
338
|
-
family: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
339
|
-
size: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
340
|
-
bold: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
|
|
341
|
-
italic: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
|
|
342
|
-
underline: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
|
|
343
|
-
}>>;
|
|
344
|
-
borderColor: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TObject<{
|
|
345
|
-
bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
346
|
-
top: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
347
|
-
right: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
348
|
-
left: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
349
|
-
}>]>>;
|
|
350
|
-
borderSize: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TNumber, _sinclair_typebox.TObject<{
|
|
351
|
-
bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
352
|
-
top: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
353
|
-
right: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
354
|
-
left: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
355
|
-
}>]>>;
|
|
356
|
-
padding: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TNumber, _sinclair_typebox.TObject<{
|
|
357
|
-
bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
358
|
-
top: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
359
|
-
right: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
360
|
-
left: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
361
|
-
}>]>>;
|
|
362
|
-
height: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
363
|
-
}>>;
|
|
364
|
-
headerCellDefaults: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
|
|
365
|
-
color: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
366
|
-
backgroundColor: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
367
|
-
horizontalAlignment: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"left">, _sinclair_typebox.TLiteral<"center">, _sinclair_typebox.TLiteral<"right">, _sinclair_typebox.TLiteral<"justify">]>>;
|
|
368
|
-
verticalAlignment: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"top">, _sinclair_typebox.TLiteral<"middle">, _sinclair_typebox.TLiteral<"bottom">]>>;
|
|
369
|
-
font: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
|
|
370
|
-
family: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
371
|
-
size: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
372
|
-
bold: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
|
|
373
|
-
italic: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
|
|
374
|
-
underline: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
|
|
375
|
-
}>>;
|
|
376
|
-
borderColor: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TObject<{
|
|
377
|
-
bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
378
|
-
top: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
379
|
-
right: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
380
|
-
left: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
381
|
-
}>]>>;
|
|
382
|
-
borderSize: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TNumber, _sinclair_typebox.TObject<{
|
|
383
|
-
bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
384
|
-
top: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
385
|
-
right: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
386
|
-
left: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
387
|
-
}>]>>;
|
|
388
|
-
padding: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TNumber, _sinclair_typebox.TObject<{
|
|
389
|
-
bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
390
|
-
top: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
391
|
-
right: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
392
|
-
left: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
393
|
-
}>]>>;
|
|
394
|
-
height: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
395
|
-
}>>;
|
|
396
|
-
width: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
397
|
-
columns: _sinclair_typebox.TArray<_sinclair_typebox.TObject<{
|
|
398
|
-
width: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TNumber, _sinclair_typebox.TString]>>;
|
|
399
|
-
cellDefaults: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
|
|
400
|
-
color: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
401
|
-
backgroundColor: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
402
|
-
horizontalAlignment: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"left">, _sinclair_typebox.TLiteral<"center">, _sinclair_typebox.TLiteral<"right">, _sinclair_typebox.TLiteral<"justify">]>>;
|
|
403
|
-
verticalAlignment: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"top">, _sinclair_typebox.TLiteral<"middle">, _sinclair_typebox.TLiteral<"bottom">]>>;
|
|
404
|
-
font: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
|
|
405
|
-
family: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
406
|
-
size: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
407
|
-
bold: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
|
|
408
|
-
italic: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
|
|
409
|
-
underline: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
|
|
410
|
-
}>>;
|
|
411
|
-
borderColor: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TObject<{
|
|
412
|
-
bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
413
|
-
top: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
414
|
-
right: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
415
|
-
left: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
416
|
-
}>]>>;
|
|
417
|
-
borderSize: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TNumber, _sinclair_typebox.TObject<{
|
|
418
|
-
bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
419
|
-
top: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
420
|
-
right: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
421
|
-
left: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
422
|
-
}>]>>;
|
|
423
|
-
padding: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TNumber, _sinclair_typebox.TObject<{
|
|
424
|
-
bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
425
|
-
top: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
426
|
-
right: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
427
|
-
left: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
428
|
-
}>]>>;
|
|
429
|
-
height: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
430
|
-
}>>;
|
|
431
|
-
header: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
|
|
432
|
-
color: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
433
|
-
backgroundColor: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
434
|
-
horizontalAlignment: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"left">, _sinclair_typebox.TLiteral<"center">, _sinclair_typebox.TLiteral<"right">, _sinclair_typebox.TLiteral<"justify">]>>;
|
|
435
|
-
verticalAlignment: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"top">, _sinclair_typebox.TLiteral<"middle">, _sinclair_typebox.TLiteral<"bottom">]>>;
|
|
436
|
-
font: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
|
|
437
|
-
family: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
438
|
-
size: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
439
|
-
bold: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
|
|
440
|
-
italic: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
|
|
441
|
-
underline: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
|
|
442
|
-
}>>;
|
|
443
|
-
borderColor: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TObject<{
|
|
444
|
-
bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
445
|
-
top: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
446
|
-
right: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
447
|
-
left: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
448
|
-
}>]>>;
|
|
449
|
-
borderSize: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TNumber, _sinclair_typebox.TObject<{
|
|
450
|
-
bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
451
|
-
top: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
452
|
-
right: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
453
|
-
left: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
454
|
-
}>]>>;
|
|
455
|
-
padding: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TNumber, _sinclair_typebox.TObject<{
|
|
456
|
-
bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
457
|
-
top: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
458
|
-
right: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
459
|
-
left: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
460
|
-
}>]>>;
|
|
461
|
-
height: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
462
|
-
content: _sinclair_typebox.TOptional<_sinclair_typebox.TRecursive<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TObject<{
|
|
463
|
-
name: _sinclair_typebox.TString;
|
|
464
|
-
props: _sinclair_typebox.TObject<{}>;
|
|
465
|
-
children: _sinclair_typebox.TOptional<_sinclair_typebox.TArray<_sinclair_typebox.TThis>>;
|
|
466
|
-
}>]>>>;
|
|
467
|
-
}>>;
|
|
468
|
-
cells: _sinclair_typebox.TOptional<_sinclair_typebox.TArray<_sinclair_typebox.TObject<{
|
|
469
|
-
color: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
470
|
-
backgroundColor: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
471
|
-
horizontalAlignment: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"left">, _sinclair_typebox.TLiteral<"center">, _sinclair_typebox.TLiteral<"right">, _sinclair_typebox.TLiteral<"justify">]>>;
|
|
472
|
-
verticalAlignment: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"top">, _sinclair_typebox.TLiteral<"middle">, _sinclair_typebox.TLiteral<"bottom">]>>;
|
|
473
|
-
font: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
|
|
474
|
-
family: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
475
|
-
size: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
476
|
-
bold: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
|
|
477
|
-
italic: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
|
|
478
|
-
underline: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
|
|
479
|
-
}>>;
|
|
480
|
-
borderColor: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TObject<{
|
|
481
|
-
bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
482
|
-
top: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
483
|
-
right: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
484
|
-
left: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
485
|
-
}>]>>;
|
|
486
|
-
borderSize: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TNumber, _sinclair_typebox.TObject<{
|
|
487
|
-
bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
488
|
-
top: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
489
|
-
right: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
490
|
-
left: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
491
|
-
}>]>>;
|
|
492
|
-
padding: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TNumber, _sinclair_typebox.TObject<{
|
|
493
|
-
bottom: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
494
|
-
top: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
495
|
-
right: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
496
|
-
left: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
497
|
-
}>]>>;
|
|
498
|
-
height: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
499
|
-
content: _sinclair_typebox.TOptional<_sinclair_typebox.TRecursive<_sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TObject<{
|
|
500
|
-
name: _sinclair_typebox.TString;
|
|
501
|
-
props: _sinclair_typebox.TObject<{}>;
|
|
502
|
-
children: _sinclair_typebox.TOptional<_sinclair_typebox.TArray<_sinclair_typebox.TThis>>;
|
|
503
|
-
}>]>>>;
|
|
504
|
-
}>>>;
|
|
505
|
-
}>>;
|
|
506
|
-
keepInOnePage: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
|
|
507
|
-
keepNext: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
|
|
508
|
-
repeatHeaderOnPageBreak: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
|
|
509
|
-
}>;
|
|
311
|
+
readonly table: TSchema;
|
|
510
312
|
readonly header: _sinclair_typebox.TObject<{
|
|
511
313
|
text: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
512
314
|
logo: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
|
|
@@ -50,8 +50,8 @@ import {
|
|
|
50
50
|
validateTheme,
|
|
51
51
|
validateThemeJson,
|
|
52
52
|
validateThemeWithEnhancement
|
|
53
|
-
} from "../../chunk-
|
|
54
|
-
import "../../chunk-
|
|
53
|
+
} from "../../chunk-A325P5FV.js";
|
|
54
|
+
import "../../chunk-IFSM3GXH.js";
|
|
55
55
|
import {
|
|
56
56
|
comprehensiveValidateDocument,
|
|
57
57
|
createDocumentValidator,
|
|
@@ -73,10 +73,10 @@ import {
|
|
|
73
73
|
validateJsonComponent,
|
|
74
74
|
validateJsonDocument,
|
|
75
75
|
validateWithEnhancement
|
|
76
|
-
} from "../../chunk-
|
|
77
|
-
import "../../chunk-
|
|
78
|
-
import "../../chunk-CN6VD4WH.js";
|
|
76
|
+
} from "../../chunk-YNBTESFN.js";
|
|
77
|
+
import "../../chunk-CVI7GFWX.js";
|
|
79
78
|
import "../../chunk-VP3X6DBP.js";
|
|
79
|
+
import "../../chunk-3D6HY6AC.js";
|
|
80
80
|
import "../../chunk-F5LVWDTY.js";
|
|
81
81
|
export {
|
|
82
82
|
DEFAULT_ERROR_CONFIG,
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/schemas/component-registry.ts","../src/schemas/components/report.ts","../src/schemas/components/section.ts","../src/schemas/components/common.ts","../src/schemas/components/columns.ts","../src/schemas/components/heading.ts","../src/schemas/components/paragraph.ts","../src/schemas/components/text-box.ts","../src/schemas/components/image.ts","../src/schemas/components/statistic.ts","../src/schemas/components/table.ts","../src/schemas/components/header.ts","../src/schemas/components/footer.ts","../src/schemas/components/list.ts","../src/schemas/components/toc.ts","../src/schemas/components/highcharts.ts"],"sourcesContent":["/**\n * Component Registry - SINGLE SOURCE OF TRUTH\n *\n * This is the ONLY place where standard components are defined.\n * All schema generators MUST use this registry.\n *\n * Adding a new component: Add it to STANDARD_COMPONENTS_REGISTRY below.\n * It will automatically be included in:\n * - StandardComponentDefinitionSchema (components.ts)\n * - ComponentDefinitionSchema (components.ts)\n * - generateUnifiedDocumentSchema (generator.ts)\n * - Monaco editor autocomplete\n * - Build-time JSON schemas\n */\n\nimport { Type, TSchema } from '@sinclair/typebox';\n// Import directly from individual component files to avoid circular dependency\n// (components.ts imports from this file, so we can't import from components.ts)\nimport { ReportPropsSchema } from './components/report';\nimport { SectionPropsSchema } from './components/section';\nimport { ColumnsPropsSchema } from './components/columns';\nimport { HeadingPropsSchema } from './components/heading';\nimport { ParagraphPropsSchema } from './components/paragraph';\nimport { TextBoxPropsSchema } from './components/text-box';\nimport { ImagePropsSchema } from './components/image';\nimport { StatisticPropsSchema } from './components/statistic';\nimport { TablePropsSchema } from './components/table';\nimport { HeaderPropsSchema } from './components/header';\nimport { FooterPropsSchema } from './components/footer';\nimport { ListPropsSchema } from './components/list';\nimport { TocPropsSchema } from './components/toc';\nimport { HighchartsPropsSchema } from './components/highcharts';\n\n/**\n * Component definition with metadata\n */\nexport interface StandardComponentDefinition {\n /** Component name identifier (e.g., 'heading', 'text', 'toc') */\n name: string;\n /** TypeBox schema for the component's props */\n propsSchema: TSchema;\n /** Whether this component can contain children */\n hasChildren: boolean;\n /** Component category for organization */\n category: 'container' | 'content' | 'layout';\n /** Human-readable description */\n description: string;\n /** Special flags for this component */\n special?: {\n /** Has $schema field (only 'docx') */\n hasSchemaField?: boolean;\n };\n}\n\n/**\n * SINGLE SOURCE OF TRUTH for all standard components\n *\n * This is the ONLY place where standard components are defined.\n * All schema generators MUST use this registry.\n *\n * IMPORTANT: When adding a new component:\n * 1. Add the component definition to this array\n * 2. Import its props schema at the top of this file\n * 3. That's it! The component will automatically appear everywhere.\n */\nexport const STANDARD_COMPONENTS_REGISTRY: readonly StandardComponentDefinition[] = [\n // ========================================================================\n // Container Components (can contain children)\n // ========================================================================\n {\n name: 'docx',\n propsSchema: ReportPropsSchema,\n hasChildren: true,\n category: 'container',\n description:\n 'Main document container - defines the overall document structure. Required as the root component.',\n special: {\n hasSchemaField: true, // Only docx root has $schema field\n },\n },\n {\n name: 'section',\n propsSchema: SectionPropsSchema,\n hasChildren: true,\n category: 'container',\n description:\n 'Section container - groups related content with optional title. Use for organizing document structure.',\n },\n {\n name: 'columns',\n propsSchema: ColumnsPropsSchema,\n hasChildren: true,\n category: 'layout',\n description:\n 'Multi-column layout - arranges content in 2-4 columns. Great for side-by-side content.',\n },\n {\n name: 'text-box',\n propsSchema: TextBoxPropsSchema,\n hasChildren: true,\n category: 'layout',\n description:\n 'Floating text container - allows positioning text anywhere on the page with absolute or relative positioning.',\n },\n\n // ========================================================================\n // Content Components (leaf nodes, no children)\n // ========================================================================\n {\n name: 'heading',\n propsSchema: HeadingPropsSchema,\n hasChildren: false,\n category: 'content',\n description:\n 'Heading text - supports levels 1-6 for document hierarchy. Level 1 is largest.',\n },\n {\n name: 'paragraph',\n propsSchema: ParagraphPropsSchema,\n hasChildren: false,\n category: 'content',\n description:\n 'Paragraph text - supports formatting like bold, italic, and color. Main content element.',\n },\n {\n name: 'image',\n propsSchema: ImagePropsSchema,\n hasChildren: false,\n category: 'content',\n description:\n 'Image element - displays images with optional caption. Supports various formats.',\n },\n {\n name: 'statistic',\n propsSchema: StatisticPropsSchema,\n hasChildren: false,\n category: 'content',\n description:\n 'Statistic display - shows a number with description. Perfect for KPIs and metrics.',\n },\n {\n name: 'table',\n propsSchema: TablePropsSchema,\n hasChildren: false,\n category: 'content',\n description:\n 'Data table - displays tabular data with headers. Supports formatting and alignment.',\n },\n {\n name: 'header',\n propsSchema: HeaderPropsSchema,\n hasChildren: false,\n category: 'content',\n description:\n 'Page header - appears at the top of pages. Can include text and page numbers.',\n },\n {\n name: 'footer',\n propsSchema: FooterPropsSchema,\n hasChildren: false,\n category: 'content',\n description:\n 'Page footer - appears at the bottom of pages. Can include text and page numbers.',\n },\n {\n name: 'list',\n propsSchema: ListPropsSchema,\n hasChildren: false,\n category: 'content',\n description:\n 'List element - bulleted or numbered list items. Supports nested lists.',\n },\n {\n name: 'toc',\n propsSchema: TocPropsSchema,\n hasChildren: false,\n category: 'content',\n description:\n 'Table of contents - automatically generates TOC from document headings. Supports depth ranges and custom styles.',\n },\n {\n name: 'highcharts',\n propsSchema: HighchartsPropsSchema,\n hasChildren: false,\n category: 'content',\n description:\n 'Chart component powered by Highcharts - render line, bar, pie, heatmap, and more with rich options.',\n },\n] as const;\n\n// ============================================================================\n// Helper Functions\n// ============================================================================\n\n/**\n * Get a component definition by name\n */\nexport function getStandardComponent(\n name: string\n): StandardComponentDefinition | undefined {\n return STANDARD_COMPONENTS_REGISTRY.find((c) => c.name === name);\n}\n\n/**\n * Get all standard component names\n */\nexport function getAllStandardComponentNames(): readonly string[] {\n return STANDARD_COMPONENTS_REGISTRY.map((c) => c.name);\n}\n\n/**\n * Get components by category\n */\nexport function getComponentsByCategory(\n category: StandardComponentDefinition['category']\n): readonly StandardComponentDefinition[] {\n return STANDARD_COMPONENTS_REGISTRY.filter((c) => c.category === category);\n}\n\n/**\n * Get container components (components that can have children)\n */\nexport function getContainerComponents(): readonly StandardComponentDefinition[] {\n return STANDARD_COMPONENTS_REGISTRY.filter((c) => c.hasChildren);\n}\n\n/**\n * Get content components (components that cannot have children)\n */\nexport function getContentComponents(): readonly StandardComponentDefinition[] {\n return STANDARD_COMPONENTS_REGISTRY.filter((c) => !c.hasChildren);\n}\n\n/**\n * Check if a component name is a standard component\n */\nexport function isStandardComponent(name: string): boolean {\n return STANDARD_COMPONENTS_REGISTRY.some((c) => c.name === name);\n}\n\n// ============================================================================\n// Schema Generation Helpers\n// ============================================================================\n\n/**\n * Generate TypeBox schema object for a component\n *\n * @param component - Component definition from the registry\n * @param recursiveRef - Optional recursive reference for children (use Type.Recursive's 'This')\n * @returns TypeBox schema object for the component\n */\nexport function createComponentSchemaObject(\n component: StandardComponentDefinition,\n recursiveRef?: TSchema\n): TSchema {\n const schema: Record<string, TSchema> = {\n name: Type.Literal(component.name),\n id: Type.Optional(Type.String()),\n enabled: Type.Optional(\n Type.Boolean({\n default: true,\n description:\n 'When false, this component is filtered out and not rendered. Defaults to true. Useful for conditional component inclusion.',\n })\n ),\n };\n\n // Special handling for report component (has $schema field)\n if (component.special?.hasSchemaField) {\n schema.$schema = Type.Optional(Type.String({ format: 'uri' }));\n }\n\n // Add props schema\n schema.props = component.propsSchema;\n\n // Add children support if applicable\n if (component.hasChildren && recursiveRef) {\n schema.children = Type.Optional(Type.Array(recursiveRef));\n }\n\n return Type.Object(schema, { additionalProperties: false });\n}\n\n/**\n * Generate an array of TypeBox schemas for all standard components\n *\n * @param recursiveRef - Optional recursive reference for children\n * @returns Array of TypeBox schemas for all components in the registry\n */\nexport function createAllComponentSchemas(\n recursiveRef?: TSchema\n): readonly TSchema[] {\n return STANDARD_COMPONENTS_REGISTRY.map((component) =>\n createComponentSchemaObject(component, recursiveRef)\n );\n}\n","/**\n * Report Component Schema\n */\n\nimport { Type, Static, TSchema } from '@sinclair/typebox';\n\n// Create a function to generate ReportPropsSchema with recursive component reference\nexport const createReportPropsSchema = (_moduleRef?: TSchema) =>\n Type.Object(\n {\n theme: Type.Optional(\n Type.String({\n description: 'Theme name to apply (default: \"minimal\")',\n examples: ['minimal', 'corporate', 'modern'],\n default: 'minimal',\n })\n ),\n metadata: Type.Optional(\n Type.Object(\n {\n title: Type.Optional(\n Type.String({\n description: 'Document title',\n examples: ['Annual Report 2024', 'Technical Documentation'],\n })\n ),\n subtitle: Type.Optional(\n Type.String({\n description: 'Document subtitle',\n })\n ),\n description: Type.Optional(Type.String()),\n author: Type.Optional(Type.String()),\n company: Type.Optional(Type.String()),\n date: Type.Optional(Type.String()),\n created: Type.Optional(Type.String({ format: 'date-time' })),\n modified: Type.Optional(Type.String({ format: 'date-time' })),\n version: Type.Optional(Type.String()),\n tags: Type.Optional(Type.Array(Type.String())),\n },\n {\n description:\n 'Document metadata (title, author, company, dates, etc.)',\n additionalProperties: false,\n }\n )\n ),\n },\n {\n description: 'Report component props',\n additionalProperties: false,\n }\n );\n\nexport const ReportPropsSchema = createReportPropsSchema();\n\nexport type ReportProps = Static<typeof ReportPropsSchema>;\n","/**\n * Section Component Schema\n */\n\nimport { Type, Static, TSchema } from '@sinclair/typebox';\nimport { SpacingSchema } from './common';\n\n// Create a function to generate SectionPropsSchema with recursive component reference\nexport const createSectionPropsSchema = (moduleRef?: TSchema) =>\n Type.Object(\n {\n title: Type.Optional(\n Type.String({\n description: 'Section title (optional)',\n })\n ),\n level: Type.Optional(\n Type.Number({\n minimum: 1,\n maximum: 9,\n description: 'Heading level for section title (1-9)',\n default: 1,\n })\n ),\n header: Type.Optional(\n Type.Union([\n Type.Array(moduleRef || Type.Any(), {\n description: 'Section header modules',\n }),\n Type.Literal('linkToPrevious', {\n description: 'Link header to previous section',\n }),\n ])\n ),\n footer: Type.Optional(\n Type.Union([\n Type.Array(moduleRef || Type.Any(), {\n description: 'Section footer modules',\n }),\n Type.Literal('linkToPrevious', {\n description: 'Link footer to previous section',\n }),\n ])\n ),\n pageBreak: Type.Optional(\n Type.Boolean({\n description: 'Insert page break before section',\n default: true,\n })\n ),\n spacing: Type.Optional(SpacingSchema),\n page: Type.Optional(\n Type.Object(\n {\n size: Type.Optional(\n Type.Union([\n Type.Literal('A4'),\n Type.Literal('A3'),\n Type.Literal('LETTER'),\n Type.Literal('LEGAL'),\n Type.Object({\n width: Type.Number({ minimum: 0 }),\n height: Type.Number({ minimum: 0 }),\n }),\n ])\n ),\n margins: Type.Optional(\n Type.Object(\n {\n top: Type.Optional(Type.Number({ minimum: 0 })),\n bottom: Type.Optional(Type.Number({ minimum: 0 })),\n left: Type.Optional(Type.Number({ minimum: 0 })),\n right: Type.Optional(Type.Number({ minimum: 0 })),\n header: Type.Optional(Type.Number({ minimum: 0 })),\n footer: Type.Optional(Type.Number({ minimum: 0 })),\n gutter: Type.Optional(Type.Number({ minimum: 0 })),\n },\n {\n additionalProperties: false,\n }\n )\n ),\n },\n {\n description:\n 'Page configuration override for this section (overrides theme page settings)',\n additionalProperties: false,\n }\n )\n ),\n },\n {\n description: 'Section component props',\n additionalProperties: false,\n }\n );\n\nexport const SectionPropsSchema = createSectionPropsSchema();\n\nexport type SectionProps = Static<typeof SectionPropsSchema>;\n","/**\n * Common Types and Schemas for Components\n *\n * Shared type definitions used across multiple component schemas.\n */\n\nimport { Type, Static } from '@sinclair/typebox';\nimport { HexColorSchema } from '../font';\n\n// ============================================================================\n// Common Types\n// ============================================================================\n\nexport const AlignmentSchema = Type.Union(\n [Type.Literal('left'), Type.Literal('center'), Type.Literal('right')],\n { description: 'Text alignment options' }\n);\n\nexport const JustifiedAlignmentSchema = Type.Union(\n [\n Type.Literal('left'),\n Type.Literal('center'),\n Type.Literal('right'),\n Type.Literal('justify'),\n ],\n { description: 'Text alignment options including justify' }\n);\n\nexport const HeadingLevelSchema = Type.Union(\n [\n Type.Literal(1),\n Type.Literal(2),\n Type.Literal(3),\n Type.Literal(4),\n Type.Literal(5),\n Type.Literal(6),\n ],\n { description: 'Heading level (1-6)' }\n);\n\nexport const SpacingSchema = Type.Object(\n {\n before: Type.Optional(\n Type.Number({\n minimum: 0,\n description: 'Spacing before element in points',\n })\n ),\n after: Type.Optional(\n Type.Number({\n minimum: 0,\n description: 'Spacing after element in points',\n })\n ),\n },\n {\n description: 'Spacing configuration',\n additionalProperties: false,\n }\n);\n\nexport const ListSpacingSchema = Type.Object(\n {\n before: Type.Optional(\n Type.Number({\n minimum: 0,\n description: 'Spacing before list in points',\n })\n ),\n after: Type.Optional(\n Type.Number({\n minimum: 0,\n description: 'Spacing after list in points',\n })\n ),\n item: Type.Optional(\n Type.Number({\n minimum: 0,\n description: 'Spacing between list items in points',\n })\n ),\n },\n {\n description: 'List spacing configuration with item spacing',\n additionalProperties: false,\n }\n);\n\nexport const MarginsSchema = Type.Object(\n {\n top: Type.Optional(Type.Number({ minimum: 0 })),\n bottom: Type.Optional(Type.Number({ minimum: 0 })),\n left: Type.Optional(Type.Number({ minimum: 0 })),\n right: Type.Optional(Type.Number({ minimum: 0 })),\n },\n { description: 'Margin configuration' }\n);\n\nexport const BorderSchema = Type.Object(\n {\n style: Type.Optional(\n Type.Union([\n Type.Literal('solid'),\n Type.Literal('dashed'),\n Type.Literal('dotted'),\n Type.Literal('double'),\n Type.Literal('none'),\n ])\n ),\n width: Type.Optional(Type.Number({ minimum: 0 })),\n color: Type.Optional(HexColorSchema),\n },\n { description: 'Border configuration' }\n);\n\nexport const LineSpacingSchema = Type.Object(\n {\n type: Type.Union([\n Type.Literal('single'),\n Type.Literal('atLeast'),\n Type.Literal('exactly'),\n Type.Literal('double'),\n Type.Literal('multiple'),\n ]),\n value: Type.Optional(Type.Number({ minimum: 0 })),\n },\n { description: 'Line spacing configuration' }\n);\n\nexport const IndentSchema = Type.Object(\n {\n left: Type.Optional(Type.Number({ minimum: 0 })),\n hanging: Type.Optional(Type.Number({ minimum: 0 })),\n },\n { description: 'Indentation configuration' }\n);\n\n// ============================================================================\n// Floating Positioning Schemas (shared between image, text-box components)\n// ============================================================================\n\nexport const HorizontalPositionRelativeFromSchema = Type.Union(\n [\n Type.Literal('character'),\n Type.Literal('column'),\n Type.Literal('margin'),\n Type.Literal('page'),\n Type.Literal('text'), // VML compatibility for text-box\n ],\n {\n description: 'Horizontal position relative to',\n }\n);\n\nexport const VerticalPositionRelativeFromSchema = Type.Union(\n [\n Type.Literal('margin'),\n Type.Literal('page'),\n Type.Literal('paragraph'),\n Type.Literal('line'),\n Type.Literal('text'), // VML compatibility for text-box\n ],\n {\n description: 'Vertical position relative to',\n }\n);\n\nexport const HorizontalPositionAlignSchema = Type.Union(\n [\n Type.Literal('left'),\n Type.Literal('center'),\n Type.Literal('right'),\n Type.Literal('inside'),\n Type.Literal('outside'),\n ],\n {\n description: 'Horizontal alignment',\n }\n);\n\nexport const VerticalPositionAlignSchema = Type.Union(\n [\n Type.Literal('top'),\n Type.Literal('center'),\n Type.Literal('bottom'),\n Type.Literal('inside'),\n Type.Literal('outside'),\n ],\n {\n description: 'Vertical alignment',\n }\n);\n\nexport const TextWrappingTypeSchema = Type.Union(\n [\n Type.Literal('none'),\n Type.Literal('square'),\n Type.Literal('topAndBottom'),\n Type.Literal('around'), // VML compatibility for text-box\n Type.Literal('tight'), // VML compatibility for text-box\n Type.Literal('through'), // VML compatibility for text-box\n ],\n {\n description: 'Text wrapping type',\n }\n);\n\nexport const TextWrappingSideSchema = Type.Union(\n [\n Type.Literal('bothSides'),\n Type.Literal('left'),\n Type.Literal('right'),\n Type.Literal('largest'),\n ],\n {\n description: 'Text wrapping side',\n }\n);\n\nexport const FloatingPropertiesSchema = Type.Object(\n {\n horizontalPosition: Type.Optional(\n Type.Object(\n {\n relative: Type.Optional(HorizontalPositionRelativeFromSchema),\n align: Type.Optional(HorizontalPositionAlignSchema),\n offset: Type.Optional(\n Type.Number({\n description: 'Horizontal offset in twips (1/20 of a point)',\n })\n ),\n },\n {\n description:\n 'Horizontal positioning (use either align or offset, not both)',\n }\n )\n ),\n verticalPosition: Type.Optional(\n Type.Object(\n {\n relative: Type.Optional(VerticalPositionRelativeFromSchema),\n align: Type.Optional(VerticalPositionAlignSchema),\n offset: Type.Optional(\n Type.Number({\n description: 'Vertical offset in twips (1/20 of a point)',\n })\n ),\n },\n {\n description:\n 'Vertical positioning (use either align or offset, not both)',\n }\n )\n ),\n wrap: Type.Optional(\n Type.Object(\n {\n type: TextWrappingTypeSchema,\n side: Type.Optional(TextWrappingSideSchema),\n margins: Type.Optional(\n Type.Object(\n {\n top: Type.Optional(\n Type.Number({ description: 'Top margin in twips' })\n ),\n bottom: Type.Optional(\n Type.Number({ description: 'Bottom margin in twips' })\n ),\n left: Type.Optional(\n Type.Number({ description: 'Left margin in twips' })\n ),\n right: Type.Optional(\n Type.Number({ description: 'Right margin in twips' })\n ),\n },\n {\n description: 'Distance from text margins',\n }\n )\n ),\n },\n {\n description: 'Text wrapping configuration',\n }\n )\n ),\n allowOverlap: Type.Optional(\n Type.Boolean({\n description: 'Allow element to overlap with other elements',\n })\n ),\n behindDocument: Type.Optional(\n Type.Boolean({\n description: 'Place element behind document text',\n })\n ),\n lockAnchor: Type.Optional(\n Type.Boolean({\n description: 'Lock the anchor position',\n })\n ),\n layoutInCell: Type.Optional(\n Type.Boolean({\n description: 'Layout element within table cell',\n })\n ),\n zIndex: Type.Optional(\n Type.Number({\n minimum: 0,\n description: 'Z-order for overlapping elements (must be non-negative)',\n })\n ),\n rotation: Type.Optional(\n Type.Number({\n description: 'Rotation angle in degrees',\n })\n ),\n visibility: Type.Optional(\n Type.Union([Type.Literal('hidden'), Type.Literal('inherit')], {\n description: 'Visibility of the floating element',\n })\n ),\n },\n {\n description: 'Floating element properties',\n }\n);\n\nexport type HorizontalPositionRelativeFrom = Static<\n typeof HorizontalPositionRelativeFromSchema\n>;\nexport type VerticalPositionRelativeFrom = Static<\n typeof VerticalPositionRelativeFromSchema\n>;\nexport type HorizontalPositionAlign = Static<\n typeof HorizontalPositionAlignSchema\n>;\nexport type VerticalPositionAlign = Static<typeof VerticalPositionAlignSchema>;\nexport type TextWrappingType = Static<typeof TextWrappingTypeSchema>;\nexport type TextWrappingSide = Static<typeof TextWrappingSideSchema>;\nexport type FloatingProperties = Static<typeof FloatingPropertiesSchema>;\n\nexport const NumberingSchema = Type.Object(\n {\n start: Type.Optional(Type.Number({ minimum: 1 })),\n style: Type.Optional(\n Type.Union([\n Type.Literal('decimal'),\n Type.Literal('lowerLetter'),\n Type.Literal('upperLetter'),\n Type.Literal('lowerRoman'),\n Type.Literal('upperRoman'),\n ])\n ),\n separator: Type.Optional(Type.String()),\n },\n { description: 'Numbering configuration for lists' }\n);\n\n// ============================================================================\n// Base Component Props (common fields across all components)\n// ============================================================================\n// Note: BaseComponentFields is currently empty as common properties\n// (className, style, hidden, condition) are not implemented in the rendering engine.\n// These were removed to accurately reflect actual capabilities.\n\nconst BaseComponentFields = {};\n\n// Export BaseComponentPropsSchema\nexport const BaseComponentPropsSchema = Type.Object(BaseComponentFields, {\n description: 'Base component props',\n additionalProperties: true,\n});\n\n// Export BaseComponentFields for use in component definitions\nexport { BaseComponentFields };\n\n// ============================================================================\n// TypeScript Types\n// ============================================================================\n\nexport type Alignment = Static<typeof AlignmentSchema>;\nexport type JustifiedAlignment = Static<typeof JustifiedAlignmentSchema>;\nexport type HeadingLevel = Static<typeof HeadingLevelSchema>;\nexport type Spacing = Static<typeof SpacingSchema>;\nexport type ListSpacing = Static<typeof ListSpacingSchema>;\nexport type LineSpacing = Static<typeof LineSpacingSchema>;\nexport type Indent = Static<typeof IndentSchema>;\nexport type Numbering = Static<typeof NumberingSchema>;\nexport type Margins = Static<typeof MarginsSchema>;\nexport type Border = Static<typeof BorderSchema>;\nexport type BaseComponentProps = Static<typeof BaseComponentPropsSchema>;\n","/**\n * Columns Component Schema\n */\n\nimport { Type, Static } from '@sinclair/typebox';\n\n// Single column descriptor\nconst ColumnDescriptorSchema = Type.Object(\n {\n width: Type.Optional(\n Type.Union([\n Type.Number({\n minimum: 1,\n description: 'Column width in points',\n }),\n Type.String({\n pattern: '^\\\\d+(\\\\.\\\\d+)?%$',\n description:\n 'Column width as percentage of available width (e.g., \"30%\")',\n }),\n Type.Literal('auto', {\n description:\n 'Auto width: consume remaining space after fixed widths and gaps',\n }),\n ])\n ),\n gap: Type.Optional(\n Type.Union([\n Type.Number({\n minimum: 0,\n description: 'Gap after this column in points',\n }),\n Type.String({\n pattern: '^\\\\d+(\\\\.\\\\d+)?%$',\n description:\n 'Gap after this column as percentage of available width (e.g., \"5%\")',\n }),\n ])\n ),\n },\n { additionalProperties: false }\n);\n\nexport const ColumnsPropsSchema = Type.Object(\n {\n columns: Type.Union([\n Type.Number({\n minimum: 1,\n description:\n 'Number of equal-width columns (converter will normalize to array)',\n }),\n Type.Array(ColumnDescriptorSchema, {\n minItems: 1,\n description:\n 'List of columns in order; width and gap can be points, percentages, or auto width',\n }),\n ]),\n gap: Type.Optional(\n Type.Union([\n Type.Number({\n minimum: 0,\n description:\n 'Default gap applied after each column except the last (points)',\n }),\n Type.String({\n pattern: '^\\\\d+(\\\\.\\\\d+)?%$',\n description:\n 'Default gap applied after each column except the last as percentage of available width (e.g., \"5%\")',\n }),\n ])\n ),\n },\n {\n description: 'Columns component props',\n additionalProperties: false,\n }\n);\n\nexport type ColumnsProps = Static<typeof ColumnsPropsSchema>;\n","/**\n * Heading Component Schema\n */\n\nimport { Type, Static } from '@sinclair/typebox';\nimport { FontDefinitionSchema } from '../font';\nimport {\n HeadingLevelSchema,\n JustifiedAlignmentSchema,\n SpacingSchema,\n LineSpacingSchema,\n} from './common';\n\nexport const HeadingPropsSchema = Type.Object(\n {\n text: Type.String({\n description: 'Heading text (required)',\n }),\n level: Type.Optional(HeadingLevelSchema),\n // Local font override: allows customizing family/size/color/bold/italic/underline\n // without modifying theme styles. Supports partial overrides.\n font: Type.Optional(Type.Partial(FontDefinitionSchema)),\n alignment: Type.Optional(JustifiedAlignmentSchema),\n spacing: Type.Optional(SpacingSchema),\n lineSpacing: Type.Optional(\n Type.Union([Type.Number({ minimum: 0 }), LineSpacingSchema])\n ),\n pageBreak: Type.Optional(\n Type.Boolean({\n description: 'Insert page break before heading',\n })\n ),\n columnBreak: Type.Optional(\n Type.Boolean({\n description: 'Insert column break before heading',\n })\n ),\n numbering: Type.Optional(\n Type.Boolean({\n description: 'Include in numbering',\n })\n ),\n keepNext: Type.Optional(\n Type.Boolean({\n description: 'Keep heading with next paragraph on same page',\n })\n ),\n keepLines: Type.Optional(\n Type.Boolean({\n description: 'Keep all lines of heading together on same page',\n })\n ),\n },\n {\n description: 'Heading component props',\n additionalProperties: false,\n }\n);\n\nexport type HeadingProps = Static<typeof HeadingPropsSchema>;\n","/**\n * Paragraph Component Schema\n */\n\nimport { Type, Static } from '@sinclair/typebox';\nimport { SpacingSchema } from './common';\nimport { FontDefinitionSchema } from '../font';\n\n// Frame wrapping type schema\nconst FrameWrapTypeSchema = Type.Union(\n [\n Type.Literal('around'),\n Type.Literal('none'),\n Type.Literal('notBeside'),\n Type.Literal('through'),\n Type.Literal('tight'),\n Type.Literal('auto'),\n ],\n {\n description: 'Frame text wrapping type',\n }\n);\n\n// Frame anchor type schema\nconst FrameAnchorTypeSchema = Type.Union(\n [Type.Literal('margin'), Type.Literal('page'), Type.Literal('text')],\n {\n description: 'Frame anchor type',\n }\n);\n\n// Frame horizontal position alignment schema\nconst FrameHorizontalAlignSchema = Type.Union(\n [\n Type.Literal('left'),\n Type.Literal('center'),\n Type.Literal('right'),\n Type.Literal('inside'),\n Type.Literal('outside'),\n ],\n {\n description: 'Frame horizontal alignment',\n }\n);\n\n// Frame vertical position alignment schema\nconst FrameVerticalAlignSchema = Type.Union(\n [\n Type.Literal('top'),\n Type.Literal('center'),\n Type.Literal('bottom'),\n Type.Literal('inside'),\n Type.Literal('outside'),\n ],\n {\n description: 'Frame vertical alignment',\n }\n);\n\n// Floating frame properties schema\nconst FloatingFramePropertiesSchema = Type.Object(\n {\n horizontalPosition: Type.Optional(\n Type.Object(\n {\n relative: Type.Optional(FrameAnchorTypeSchema),\n align: Type.Optional(FrameHorizontalAlignSchema),\n offset: Type.Optional(\n Type.Number({\n description: 'Horizontal offset in twips (1/20 of a point)',\n })\n ),\n },\n {\n description:\n 'Horizontal positioning (use either align or offset, not both)',\n }\n )\n ),\n verticalPosition: Type.Optional(\n Type.Object(\n {\n relative: Type.Optional(FrameAnchorTypeSchema),\n align: Type.Optional(FrameVerticalAlignSchema),\n offset: Type.Optional(\n Type.Number({\n description: 'Vertical offset in twips (1/20 of a point)',\n })\n ),\n },\n {\n description:\n 'Vertical positioning (use either align or offset, not both)',\n }\n )\n ),\n wrap: Type.Optional(\n Type.Object(\n {\n type: FrameWrapTypeSchema,\n },\n {\n description: 'Text wrapping configuration',\n }\n )\n ),\n lockAnchor: Type.Optional(\n Type.Boolean({\n description: 'Lock the anchor position',\n })\n ),\n width: Type.Optional(\n Type.Number({\n minimum: 1,\n description: 'Frame width in twips (DXA units)',\n })\n ),\n height: Type.Optional(\n Type.Number({\n minimum: 1,\n description: 'Frame height in twips (DXA units)',\n })\n ),\n },\n {\n description: 'Floating text frame properties',\n }\n);\n\n// Alignment type schema (paragraph-level, not font-level)\nconst AlignmentSchema = Type.Union(\n [\n Type.Literal('left'),\n Type.Literal('center'),\n Type.Literal('right'),\n Type.Literal('justify'),\n ],\n {\n description: 'Paragraph text alignment',\n }\n);\n\nexport const ParagraphPropsSchema = Type.Object(\n {\n text: Type.String({\n description: 'Text content (required)',\n }),\n // New nested font object, aligned with theme's FontDefinitionSchema\n // Allow partial overrides (family not required when overriding a subset)\n font: Type.Optional(Type.Partial(FontDefinitionSchema)),\n // Optional reference to a named style from theme.styles (e.g., 'heading1', 'normal')\n themeStyle: Type.Optional(Type.String()),\n // Rich-text decoration color for bold segments (kept as top-level behavior option)\n boldColor: Type.Optional(Type.String()),\n // Paragraph spacing (in points) — limited paragraph-level option allowed\n spacing: Type.Optional(SpacingSchema),\n // Paragraph alignment (moved from font to config level)\n alignment: Type.Optional(AlignmentSchema),\n pageBreak: Type.Optional(\n Type.Boolean({\n description: 'Insert page break before paragraph',\n })\n ),\n columnBreak: Type.Optional(\n Type.Boolean({\n description: 'Insert column break before paragraph',\n })\n ),\n floating: Type.Optional(FloatingFramePropertiesSchema),\n keepNext: Type.Optional(\n Type.Boolean({\n description: 'Keep paragraph with next paragraph on same page',\n })\n ),\n keepLines: Type.Optional(\n Type.Boolean({\n description: 'Keep all lines of paragraph together on same page',\n })\n ),\n id: Type.Optional(\n Type.String({\n description: 'Unique identifier for internal linking (bookmark anchor)',\n })\n ),\n },\n {\n description:\n 'Paragraph component props (font nested for theme consistency; no flat font properties)',\n additionalProperties: false,\n }\n);\n\nexport type ParagraphProps = Static<typeof ParagraphPropsSchema>;\n","/**\n * Text Box Component Schema\n * A floating container that can hold child components (e.g., text, image, columns)\n *\n * Positioning API mirrors existing floating options from text/image for consistency.\n *\n * **Nested Columns Support:**\n * When a `columns` component is nested inside a `text-box`, it automatically renders\n * as a multi-column table instead of a section-level column layout. This allows\n * for columnar content within floating or inline containers.\n */\n\nimport { Type, Static } from '@sinclair/typebox';\nimport { FloatingPropertiesSchema } from './common';\nimport { HexColorSchema } from '../font';\n\nexport const TextBoxPropsSchema = Type.Object(\n {\n width: Type.Optional(\n Type.Union(\n [\n Type.Number({\n minimum: 1,\n description: 'Text box width in pixels',\n }),\n Type.String({\n pattern: '^\\\\d+(\\\\.\\\\d+)?%$',\n description:\n 'Text box width as percentage (e.g., \"50%\") relative to content width',\n }),\n ],\n {\n description:\n 'Text box width in pixels (number) or as percentage string (e.g., \"50%\")',\n }\n )\n ),\n height: Type.Optional(\n Type.Union(\n [\n Type.Number({\n minimum: 1,\n description: 'Text box height in pixels',\n }),\n Type.String({\n pattern: '^\\\\d+(\\\\.\\\\d+)?%$',\n description:\n 'Text box height as percentage (e.g., \"50%\") relative to content height',\n }),\n ],\n {\n description:\n 'Text box height in pixels (number) or as percentage string (e.g., \"50%\")',\n }\n )\n ),\n floating: Type.Optional(FloatingPropertiesSchema),\n style: Type.Optional(\n Type.Object(\n {\n padding: Type.Optional(\n Type.Object(\n {\n top: Type.Optional(Type.Number({ minimum: 0 })),\n right: Type.Optional(Type.Number({ minimum: 0 })),\n bottom: Type.Optional(Type.Number({ minimum: 0 })),\n left: Type.Optional(Type.Number({ minimum: 0 })),\n },\n { additionalProperties: false }\n )\n ),\n border: Type.Optional(\n Type.Object(\n {\n top: Type.Optional(\n // Reuse border schema semantics: style/width/color\n Type.Object({\n style: Type.Optional(\n Type.Union([\n Type.Literal('solid'),\n Type.Literal('dashed'),\n Type.Literal('dotted'),\n Type.Literal('double'),\n Type.Literal('none'),\n ])\n ),\n width: Type.Optional(Type.Number({ minimum: 0 })),\n color: Type.Optional(HexColorSchema),\n })\n ),\n right: Type.Optional(\n Type.Object({\n style: Type.Optional(\n Type.Union([\n Type.Literal('solid'),\n Type.Literal('dashed'),\n Type.Literal('dotted'),\n Type.Literal('double'),\n Type.Literal('none'),\n ])\n ),\n width: Type.Optional(Type.Number({ minimum: 0 })),\n color: Type.Optional(HexColorSchema),\n })\n ),\n bottom: Type.Optional(\n Type.Object({\n style: Type.Optional(\n Type.Union([\n Type.Literal('solid'),\n Type.Literal('dashed'),\n Type.Literal('dotted'),\n Type.Literal('double'),\n Type.Literal('none'),\n ])\n ),\n width: Type.Optional(Type.Number({ minimum: 0 })),\n color: Type.Optional(HexColorSchema),\n })\n ),\n left: Type.Optional(\n Type.Object({\n style: Type.Optional(\n Type.Union([\n Type.Literal('solid'),\n Type.Literal('dashed'),\n Type.Literal('dotted'),\n Type.Literal('double'),\n Type.Literal('none'),\n ])\n ),\n width: Type.Optional(Type.Number({ minimum: 0 })),\n color: Type.Optional(HexColorSchema),\n })\n ),\n },\n { additionalProperties: false }\n )\n ),\n shading: Type.Optional(\n Type.Object(\n {\n fill: Type.Optional(Type.String()),\n },\n { additionalProperties: false }\n )\n ),\n },\n { additionalProperties: false }\n )\n ),\n },\n { additionalProperties: false }\n);\n\nexport type TextBoxProps = Static<typeof TextBoxPropsSchema>;\n","/**\n * Image Component Schema\n */\n\nimport { Type, Static } from '@sinclair/typebox';\nimport {\n AlignmentSchema,\n SpacingSchema,\n FloatingPropertiesSchema,\n} from './common';\n\nexport const ImagePropsSchema = Type.Object(\n {\n path: Type.Optional(\n Type.String({\n description:\n 'Image source URL or file path (mutually exclusive with base64)',\n })\n ),\n base64: Type.Optional(\n Type.String({\n description:\n 'Base64-encoded image data in data URI format (e.g., \"data:image/png;base64,iVBORw0KGgo...\") (mutually exclusive with path)',\n })\n ),\n alt: Type.Optional(\n Type.String({\n description: 'Alternative text for accessibility',\n })\n ),\n width: Type.Optional(\n Type.Union(\n [\n Type.Number({\n minimum: 1,\n description: 'Image width in pixels',\n }),\n Type.String({\n pattern: '^\\\\d+(\\\\.\\\\d+)?%$',\n description:\n 'Image width as percentage (e.g., \"90%\") relative to widthRelativeTo (defaults to content width)',\n }),\n ],\n {\n description:\n 'Image width in pixels (number) or as percentage string (e.g., \"90%\")',\n default: '100%',\n }\n )\n ),\n height: Type.Optional(\n Type.Union(\n [\n Type.Number({\n minimum: 1,\n description: 'Image height in pixels',\n }),\n Type.String({\n pattern: '^\\\\d+(\\\\.\\\\d+)?%$',\n description:\n 'Image height as percentage (e.g., \"90%\") relative to heightRelativeTo (defaults to content height)',\n }),\n ],\n {\n description:\n 'Image height in pixels (number) or as percentage string (e.g., \"90%\")',\n }\n )\n ),\n widthRelativeTo: Type.Optional(\n Type.Union([Type.Literal('content'), Type.Literal('page')], {\n description:\n 'Reference for width percentages: content (page width minus margins) or page (full page width)',\n default: 'content',\n })\n ),\n heightRelativeTo: Type.Optional(\n Type.Union([Type.Literal('content'), Type.Literal('page')], {\n description:\n 'Reference for height percentages: content (page height minus margins) or page (full page height)',\n default: 'content',\n })\n ),\n alignment: Type.Optional(AlignmentSchema),\n caption: Type.Optional(\n Type.String({\n description:\n 'Image caption (supports rich text with **bold**, *italic*, ***both***)',\n })\n ),\n spacing: Type.Optional(SpacingSchema),\n floating: Type.Optional(FloatingPropertiesSchema),\n keepNext: Type.Optional(\n Type.Boolean({\n description: 'Keep paragraph with next paragraph on same page',\n })\n ),\n keepLines: Type.Optional(\n Type.Boolean({\n description: 'Keep all lines of paragraph together on same page',\n })\n ),\n },\n {\n description: 'Image component props',\n additionalProperties: false,\n }\n);\n\nexport type ImageProps = Static<typeof ImagePropsSchema>;\n","/**\n * Statistic Component Schema\n */\n\nimport { Type, Static } from '@sinclair/typebox';\nimport { AlignmentSchema, SpacingSchema } from './common';\n\nexport const StatisticPropsSchema = Type.Object(\n {\n number: Type.String({\n description: 'Statistic number/value (required)',\n }),\n description: Type.String({\n description: 'Statistic description (required)',\n }),\n unit: Type.Optional(\n Type.String({\n description: 'Unit of measurement',\n })\n ),\n format: Type.Optional(\n Type.String({\n description: 'Number format pattern',\n })\n ),\n trend: Type.Optional(\n Type.Union([\n Type.Literal('up'),\n Type.Literal('down'),\n Type.Literal('neutral'),\n ])\n ),\n trendValue: Type.Optional(Type.Union([Type.String(), Type.Number()])),\n alignment: Type.Optional(AlignmentSchema),\n spacing: Type.Optional(SpacingSchema),\n size: Type.Optional(\n Type.Union([\n Type.Literal('small'),\n Type.Literal('medium'),\n Type.Literal('large'),\n ])\n ),\n },\n {\n description: 'Statistic component props',\n additionalProperties: false,\n }\n);\n\nexport type StatisticProps = Static<typeof StatisticPropsSchema>;\n","/**\n * Table Component Schema\n */\n\nimport { Type, Static } from '@sinclair/typebox';\nimport { HexColorSchema } from '../font';\n\n// Define Cell type - can be plain text or a component definition\nconst CellContentSchema = Type.Recursive((This) =>\n Type.Union([\n Type.String(),\n Type.Object(\n {\n name: Type.String(),\n props: Type.Object({}, { additionalProperties: true }),\n children: Type.Optional(Type.Array(This)),\n },\n { additionalProperties: false }\n ),\n ])\n);\n\n// Horizontal alignment schema\nconst HorizontalAlignmentSchema = Type.Union(\n [\n Type.Literal('left'),\n Type.Literal('center'),\n Type.Literal('right'),\n Type.Literal('justify'),\n ],\n { description: 'Horizontal text alignment' }\n);\n\n// Vertical alignment schema\nconst VerticalAlignmentSchema = Type.Union(\n [Type.Literal('top'), Type.Literal('middle'), Type.Literal('bottom')],\n { description: 'Vertical cell alignment' }\n);\n\n// Font configuration schema\nconst FontConfigSchema = Type.Object({\n family: Type.Optional(Type.String({ description: 'Font family name' })),\n size: Type.Optional(\n Type.Number({ minimum: 0, description: 'Font size in points' })\n ),\n bold: Type.Optional(Type.Boolean({ description: 'Bold text' })),\n italic: Type.Optional(Type.Boolean({ description: 'Italic text' })),\n underline: Type.Optional(Type.Boolean({ description: 'Underlined text' })),\n});\n\n// Border color - can be a single string or an object with sides\nconst BorderColorSchema = Type.Union([\n Type.String({ description: 'Border color for all sides (hex without #)' }),\n Type.Object({\n bottom: Type.Optional(\n Type.String({ description: 'Bottom border color (hex without #)' })\n ),\n top: Type.Optional(\n Type.String({ description: 'Top border color (hex without #)' })\n ),\n right: Type.Optional(\n Type.String({ description: 'Right border color (hex without #)' })\n ),\n left: Type.Optional(\n Type.String({ description: 'Left border color (hex without #)' })\n ),\n }),\n]);\n\n// Border size - can be a single number or an object with sides\nconst BorderSizeSchema = Type.Union([\n Type.Number({\n minimum: 0,\n description: 'Border size for all sides in points',\n }),\n Type.Object({\n bottom: Type.Optional(\n Type.Number({ minimum: 0, description: 'Bottom border size in points' })\n ),\n top: Type.Optional(\n Type.Number({ minimum: 0, description: 'Top border size in points' })\n ),\n right: Type.Optional(\n Type.Number({ minimum: 0, description: 'Right border size in points' })\n ),\n left: Type.Optional(\n Type.Number({ minimum: 0, description: 'Left border size in points' })\n ),\n }),\n]);\n\n// Hide borders - can be a boolean or an object with sides\nconst HideBordersSchema = Type.Union([\n Type.Boolean({\n description: 'Hide all borders when true',\n }),\n Type.Object(\n {\n bottom: Type.Optional(\n Type.Boolean({ description: 'Hide bottom border' })\n ),\n top: Type.Optional(Type.Boolean({ description: 'Hide top border' })),\n right: Type.Optional(Type.Boolean({ description: 'Hide right border' })),\n left: Type.Optional(Type.Boolean({ description: 'Hide left border' })),\n insideHorizontal: Type.Optional(\n Type.Boolean({ description: 'Hide horizontal borders between rows' })\n ),\n insideVertical: Type.Optional(\n Type.Boolean({ description: 'Hide vertical borders between columns' })\n ),\n },\n { description: 'Selectively hide specific borders' }\n ),\n]);\n\n// Padding - can be a single number or an object with sides\nconst PaddingSchema = Type.Union([\n Type.Number({ minimum: 0, description: 'Padding for all sides in points' }),\n Type.Object({\n bottom: Type.Optional(\n Type.Number({ minimum: 0, description: 'Bottom padding in points' })\n ),\n top: Type.Optional(\n Type.Number({ minimum: 0, description: 'Top padding in points' })\n ),\n right: Type.Optional(\n Type.Number({ minimum: 0, description: 'Right padding in points' })\n ),\n left: Type.Optional(\n Type.Number({ minimum: 0, description: 'Left padding in points' })\n ),\n }),\n]);\n\n// Cell defaults configuration\nconst CellDefaultsSchema = Type.Object({\n color: Type.Optional(HexColorSchema),\n backgroundColor: Type.Optional(HexColorSchema),\n horizontalAlignment: Type.Optional(HorizontalAlignmentSchema),\n verticalAlignment: Type.Optional(VerticalAlignmentSchema),\n font: Type.Optional(FontConfigSchema),\n borderColor: Type.Optional(BorderColorSchema),\n borderSize: Type.Optional(BorderSizeSchema),\n padding: Type.Optional(PaddingSchema),\n height: Type.Optional(\n Type.Number({ minimum: 0, description: 'Cell height in points' })\n ),\n});\n\n// Header schema - includes all CellDefaults properties plus content\nconst HeaderSchema = Type.Object({\n color: Type.Optional(HexColorSchema),\n backgroundColor: Type.Optional(HexColorSchema),\n horizontalAlignment: Type.Optional(HorizontalAlignmentSchema),\n verticalAlignment: Type.Optional(VerticalAlignmentSchema),\n font: Type.Optional(FontConfigSchema),\n borderColor: Type.Optional(BorderColorSchema),\n borderSize: Type.Optional(BorderSizeSchema),\n padding: Type.Optional(PaddingSchema),\n height: Type.Optional(\n Type.Number({ minimum: 0, description: 'Cell height in points' })\n ),\n content: Type.Optional(CellContentSchema),\n});\n\n// Cell schema - includes all CellDefaults properties plus content\nconst CellSchema = Type.Object({\n color: Type.Optional(HexColorSchema),\n backgroundColor: Type.Optional(HexColorSchema),\n horizontalAlignment: Type.Optional(HorizontalAlignmentSchema),\n verticalAlignment: Type.Optional(VerticalAlignmentSchema),\n font: Type.Optional(FontConfigSchema),\n borderColor: Type.Optional(BorderColorSchema),\n borderSize: Type.Optional(BorderSizeSchema),\n padding: Type.Optional(PaddingSchema),\n height: Type.Optional(\n Type.Number({ minimum: 0, description: 'Cell height in points' })\n ),\n content: Type.Optional(CellContentSchema),\n});\n\n// Column schema with new structure\nconst ColumnSchema = Type.Object({\n width: Type.Optional(\n Type.Union([\n Type.Number({\n minimum: 0,\n description:\n 'Column width in points. When set on some columns, remaining columns will automatically share the leftover table space equally. Leave undefined to distribute space evenly among unspecified columns.',\n }),\n Type.String({\n pattern: '^\\\\d+(\\\\.\\\\d+)?%$',\n description:\n 'Column width as percentage of available width (e.g., \"40%\")',\n }),\n ])\n ),\n cellDefaults: Type.Optional(CellDefaultsSchema),\n header: Type.Optional(HeaderSchema),\n cells: Type.Optional(Type.Array(CellSchema)),\n});\n\nexport const TablePropsSchema = Type.Object(\n {\n borderColor: Type.Optional(BorderColorSchema),\n borderSize: Type.Optional(BorderSizeSchema),\n hideBorders: Type.Optional(HideBordersSchema),\n cellDefaults: Type.Optional(CellDefaultsSchema),\n headerCellDefaults: Type.Optional(CellDefaultsSchema),\n width: Type.Optional(\n Type.Number({\n minimum: 0,\n maximum: 100,\n description: 'Table width in percentage (0-100)',\n })\n ),\n columns: Type.Array(ColumnSchema, {\n description: 'Table columns with headers and cells',\n minItems: 1,\n }),\n keepInOnePage: Type.Optional(\n Type.Boolean({\n description:\n 'Keep table rows together on the same page by setting keepNext on all paragraphs',\n })\n ),\n keepNext: Type.Optional(\n Type.Boolean({\n description:\n 'Set keepNext on the last row to keep it connected to the next element. Works independently of keepInOnePage. Defaults to false.',\n })\n ),\n repeatHeaderOnPageBreak: Type.Optional(\n Type.Boolean({\n description:\n 'Repeat the header row on each page when the table spans multiple pages. Defaults to false.',\n default: true,\n })\n ),\n },\n {\n description: 'Table component props with column-based structure',\n }\n);\n\nexport type TableProps = Static<typeof TablePropsSchema>;\n","/**\n * Header Component Schema\n */\n\nimport { Type, Static } from '@sinclair/typebox';\nimport { AlignmentSchema } from './common';\n\nexport const HeaderPropsSchema = Type.Object(\n {\n text: Type.Optional(\n Type.String({\n description: 'Header text',\n })\n ),\n logo: Type.Optional(\n Type.String({\n description: 'Logo image URL or path',\n })\n ),\n alignment: Type.Optional(AlignmentSchema),\n position: Type.Optional(\n Type.Union([Type.Literal('top'), Type.Literal('bottom')])\n ),\n firstPage: Type.Optional(\n Type.Boolean({\n description: 'Show header on first page',\n })\n ),\n oddPages: Type.Optional(\n Type.Boolean({\n description: 'Show header on odd pages',\n })\n ),\n evenPages: Type.Optional(\n Type.Boolean({\n description: 'Show header on even pages',\n })\n ),\n showPageNumbers: Type.Optional(Type.Boolean()),\n showDate: Type.Optional(Type.Boolean()),\n height: Type.Optional(Type.Number({ minimum: 0 })),\n },\n {\n description: 'Document header configuration',\n additionalProperties: false,\n }\n);\n\nexport type HeaderProps = Static<typeof HeaderPropsSchema>;\n","/**\n * Footer Component Schema\n */\n\nimport { Type, Static } from '@sinclair/typebox';\nimport { AlignmentSchema } from './common';\n\nexport const FooterPropsSchema = Type.Object(\n {\n text: Type.Optional(\n Type.String({\n description: 'Footer text',\n })\n ),\n alignment: Type.Optional(AlignmentSchema),\n position: Type.Optional(\n Type.Union([Type.Literal('top'), Type.Literal('bottom')])\n ),\n firstPage: Type.Optional(\n Type.Boolean({\n description: 'Show footer on first page',\n })\n ),\n oddPages: Type.Optional(\n Type.Boolean({\n description: 'Show footer on odd pages',\n })\n ),\n evenPages: Type.Optional(\n Type.Boolean({\n description: 'Show footer on even pages',\n })\n ),\n showPageNumbers: Type.Optional(Type.Boolean()),\n showDate: Type.Optional(Type.Boolean()),\n height: Type.Optional(Type.Number({ minimum: 0 })),\n },\n {\n description: 'Document footer configuration',\n additionalProperties: false,\n }\n);\n\nexport type FooterProps = Static<typeof FooterPropsSchema>;\n","/**\n * List Component Schema\n */\n\nimport { Type, Static } from '@sinclair/typebox';\nimport {\n ListSpacingSchema,\n JustifiedAlignmentSchema,\n IndentSchema,\n} from './common';\n\n/**\n * Level format options for docx numbering\n * Maps to docx LevelFormat enum\n */\nexport const LevelFormatSchema = Type.Union(\n [\n Type.Literal('decimal'),\n Type.Literal('upperRoman'),\n Type.Literal('lowerRoman'),\n Type.Literal('upperLetter'),\n Type.Literal('lowerLetter'),\n Type.Literal('bullet'),\n Type.Literal('ordinal'),\n Type.Literal('cardinalText'),\n Type.Literal('ordinalText'),\n Type.Literal('hex'),\n Type.Literal('chicago'),\n Type.Literal('ideographDigital'),\n Type.Literal('japaneseCounting'),\n Type.Literal('aiueo'),\n Type.Literal('iroha'),\n Type.Literal('decimalFullWidth'),\n Type.Literal('decimalHalfWidth'),\n Type.Literal('japaneseLegal'),\n Type.Literal('japaneseDigitalTenThousand'),\n Type.Literal('decimalEnclosedCircle'),\n Type.Literal('decimalFullWidth2'),\n Type.Literal('aiueoFullWidth'),\n Type.Literal('irohaFullWidth'),\n Type.Literal('decimalZero'),\n Type.Literal('ganada'),\n Type.Literal('chosung'),\n Type.Literal('decimalEnclosedFullstop'),\n Type.Literal('decimalEnclosedParen'),\n Type.Literal('decimalEnclosedCircleChinese'),\n Type.Literal('ideographEnclosedCircle'),\n Type.Literal('ideographTraditional'),\n Type.Literal('ideographZodiac'),\n Type.Literal('ideographZodiacTraditional'),\n Type.Literal('taiwaneseCounting'),\n Type.Literal('ideographLegalTraditional'),\n Type.Literal('taiwaneseCountingThousand'),\n Type.Literal('taiwaneseDigital'),\n Type.Literal('chineseCounting'),\n Type.Literal('chineseLegalSimplified'),\n Type.Literal('chineseCountingThousand'),\n Type.Literal('koreanDigital'),\n Type.Literal('koreanCounting'),\n Type.Literal('koreanLegal'),\n Type.Literal('koreanDigital2'),\n Type.Literal('vietnameseCounting'),\n Type.Literal('russianLower'),\n Type.Literal('russianUpper'),\n Type.Literal('none'),\n Type.Literal('numberInDash'),\n Type.Literal('hebrew1'),\n Type.Literal('hebrew2'),\n Type.Literal('arabicAlpha'),\n Type.Literal('arabicAbjad'),\n Type.Literal('hindiVowels'),\n Type.Literal('hindiConsonants'),\n Type.Literal('hindiNumbers'),\n Type.Literal('hindiCounting'),\n Type.Literal('thaiLetters'),\n Type.Literal('thaiNumbers'),\n Type.Literal('thaiCounting'),\n ],\n {\n description: 'Number or bullet format for list levels',\n }\n);\n\n/**\n * Configuration for a single numbering level\n */\nexport const ListLevelPropsSchema = Type.Object(\n {\n level: Type.Number({\n minimum: 0,\n maximum: 8,\n description: 'Nesting level (0 = root, 1 = first sublevel, etc.)',\n }),\n format: Type.Optional(LevelFormatSchema),\n text: Type.Optional(\n Type.String({\n description:\n 'Number format string (e.g., \"%1.\" for \"1.\", \"%1)\" for \"1)\", custom bullet character for bullet format)',\n })\n ),\n alignment: Type.Optional(\n Type.Union(\n [\n Type.Literal('start'),\n Type.Literal('end'),\n Type.Literal('left'),\n Type.Literal('right'),\n Type.Literal('center'),\n ],\n {\n description: 'Alignment of the numbering/bullet',\n }\n )\n ),\n indent: Type.Optional(IndentSchema),\n start: Type.Optional(\n Type.Number({\n minimum: 1,\n description: 'Starting number for this level (default: 1)',\n })\n ),\n },\n {\n description: 'Configuration for a single list level',\n }\n);\n\nexport const ListPropsSchema = Type.Object(\n {\n items: Type.Array(\n Type.Union([\n Type.String(),\n Type.Object({\n text: Type.String(),\n level: Type.Optional(\n Type.Number({\n minimum: 0,\n maximum: 8,\n description: 'Nesting level for this item',\n })\n ),\n }),\n ]),\n {\n description: 'List items (required)',\n minItems: 1,\n }\n ),\n reference: Type.Optional(\n Type.String({\n description:\n 'Unique reference ID for this numbering configuration (auto-generated if not provided)',\n })\n ),\n levels: Type.Optional(\n Type.Array(ListLevelPropsSchema, {\n description: 'Configuration for each nesting level',\n minItems: 1,\n maxItems: 9,\n })\n ),\n // Simplified options for common use cases (when levels not specified)\n format: Type.Optional(\n Type.Union(\n [LevelFormatSchema, Type.Literal('numbered'), Type.Literal('none')],\n {\n description:\n 'Format for level 0 (simplified option when levels not specified)',\n }\n )\n ),\n bullet: Type.Optional(\n Type.String({\n description:\n 'Custom bullet character (simplified option when levels not specified)',\n })\n ),\n start: Type.Optional(\n Type.Number({\n minimum: 1,\n description:\n 'Starting number for level 0 (simplified option when levels not specified)',\n })\n ),\n spacing: Type.Optional(ListSpacingSchema),\n alignment: Type.Optional(JustifiedAlignmentSchema),\n indent: Type.Optional(\n Type.Union([Type.Number({ minimum: 0 }), IndentSchema])\n ),\n },\n {\n description: 'List component props',\n additionalProperties: false,\n }\n);\n\nexport type LevelFormat = Static<typeof LevelFormatSchema>;\nexport type ListLevelProps = Static<typeof ListLevelPropsSchema>;\nexport type ListProps = Static<typeof ListPropsSchema>;\n","/**\n * Table of Contents Component Schema\n */\n\nimport { Type, Static } from '@sinclair/typebox';\n\nexport const TocStyleSchema = Type.Union(\n [Type.Literal('numeric'), Type.Literal('bullet'), Type.Literal('none')],\n { description: 'TOC numbering style' }\n);\n\nexport const TocScopeSchema = Type.Union(\n [Type.Literal('document'), Type.Literal('section')],\n { description: 'TOC scope: document-wide or section-only' }\n);\n\nexport const TocStyleMappingSchema = Type.Object(\n {\n styleId: Type.String({\n description: 'Custom style ID matching a key in theme.styles',\n }),\n level: Type.Number({\n minimum: 1,\n maximum: 6,\n description: 'TOC level (1-6) to assign to this style',\n }),\n },\n {\n description: 'Mapping of custom style to TOC level',\n additionalProperties: false,\n }\n);\n\nexport const TocDepthRangeSchema = Type.Object(\n {\n from: Type.Optional(\n Type.Number({\n minimum: 1,\n maximum: 6,\n default: 1,\n description:\n 'Starting heading level (1-6). Defaults to 1 if not specified.',\n })\n ),\n to: Type.Optional(\n Type.Number({\n minimum: 1,\n maximum: 6,\n default: 3,\n description:\n 'Ending heading level (1-6). Defaults to 3 if not specified.',\n })\n ),\n },\n {\n description:\n 'Range of heading levels to include in TOC. Specify at least one of \"from\" or \"to\".',\n additionalProperties: false,\n }\n);\n\nexport const TocPropsSchema = Type.Object(\n {\n pageBreak: Type.Optional(\n Type.Boolean({\n description: 'Insert page break before TOC block',\n })\n ),\n depth: Type.Optional(\n Type.Object(\n {\n from: Type.Optional(\n Type.Number({\n minimum: 1,\n maximum: 6,\n default: 1,\n description:\n 'Starting heading level (1-6). Defaults to 1 if not specified.',\n })\n ),\n to: Type.Optional(\n Type.Number({\n minimum: 1,\n maximum: 6,\n default: 3,\n description:\n 'Ending heading level (1-6). Defaults to 3 if not specified.',\n })\n ),\n },\n {\n description:\n 'Range of heading levels to include in TOC. Specify \"from\", \"to\", or both. Defaults: from=1, to=3',\n additionalProperties: false,\n default: { to: 3 },\n }\n )\n ),\n pageNumbersDepth: Type.Optional(\n Type.Object(\n {\n from: Type.Optional(\n Type.Number({\n minimum: 1,\n maximum: 6,\n default: 1,\n description:\n 'Starting heading level (1-6). Defaults to 1 if not specified.',\n })\n ),\n to: Type.Optional(\n Type.Number({\n minimum: 1,\n maximum: 6,\n default: 3,\n description:\n 'Ending heading level (1-6). Defaults to 3 if not specified.',\n })\n ),\n },\n {\n description:\n 'Range of heading levels to show page numbers. Specify \"from\", \"to\", or both. When specified, page numbers are hidden for entries outside this range.',\n additionalProperties: false,\n }\n )\n ),\n numberingStyle: Type.Optional(TocStyleSchema),\n title: Type.Optional(\n Type.String({\n description: 'TOC heading title',\n })\n ),\n includePageNumbers: Type.Optional(\n Type.Boolean({\n default: true,\n description: 'Show page numbers next to entries',\n })\n ),\n numberSeparator: Type.Optional(\n Type.Boolean({\n default: true,\n description:\n 'Use tab separator between entry and page number. True applies \"\\\\t\" (default), false applies \" \"',\n })\n ),\n scope: Type.Optional(\n Type.Union([TocScopeSchema, Type.Literal('auto')], {\n default: 'auto',\n description:\n 'TOC scope: \"document\" for entire document, \"section\" for parent section only, \"auto\" for automatic detection (section if inside section, otherwise document)',\n })\n ),\n styles: Type.Optional(\n Type.Array(TocStyleMappingSchema, {\n description:\n 'Custom style mappings for TOC entries. Maps custom theme styles to TOC levels.',\n })\n ),\n },\n {\n description: 'Table of Contents component props',\n additionalProperties: false,\n }\n);\n\nexport type TocProps = Static<typeof TocPropsSchema>;\n","/**\n * Highcharts Component Schema\n *\n * Standard module for rendering charts using Highcharts export server.\n */\n\nimport { Type, Static } from '@sinclair/typebox';\n\n/**\n * Highcharts component props schema\n * Accepts options that will be passed to Highcharts export server\n */\nexport const HighchartsPropsSchema = Type.Object({\n // Highcharts chart options - can be anything but must at least have chart.width and chart.height\n options: Type.Intersect([\n Type.Record(Type.String(), Type.Unknown()),\n Type.Object({\n chart: Type.Object({\n width: Type.Number(),\n height: Type.Number(),\n }),\n }),\n ]),\n // Optional scale factor for export\n scale: Type.Optional(Type.Number()),\n // Optional Highcharts Export Server URL override\n serverUrl: Type.Optional(Type.String({ description: 'Highcharts Export Server URL (default: http://localhost:7801)' })),\n // Optional width for rendering (overrides chart width)\n width: Type.Optional(\n Type.Union(\n [\n Type.Number({\n minimum: 1,\n description: 'Image width in pixels',\n }),\n Type.String({\n pattern: '^\\\\d+(\\\\.\\\\d+)?%$',\n description:\n 'Image width as percentage (e.g., \"90%\") relative to content width',\n }),\n ],\n {\n description:\n 'Rendered image width in pixels (number) or as percentage string (e.g., \"90%\")',\n }\n )\n ),\n // Optional height for rendering (overrides chart height)\n height: Type.Optional(\n Type.Union(\n [\n Type.Number({\n minimum: 1,\n description: 'Image height in pixels',\n }),\n Type.String({\n pattern: '^\\\\d+(\\\\.\\\\d+)?%$',\n description:\n 'Image height as percentage (e.g., \"90%\") relative to content height',\n }),\n ],\n {\n description:\n 'Rendered image height in pixels (number) or as percentage string (e.g., \"90%\")',\n }\n )\n ),\n});\n\nexport type HighchartsProps = Static<typeof HighchartsPropsSchema>;\n"],"mappings":"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","names":["Type","Type","Type","Type","Type","Type","Type","Type","Type","Type","AlignmentSchema","Type","Type","Type","Type","Type","Type","Type","Type","Type","Type","Type","Type","Type","Type","Type","Type","Type"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/schemas/export.ts"],"sourcesContent":["/**\n * Unified Schema Export Utility\n *\n * Single source of truth for converting TypeBox schemas to JSON Schema format.\n * Eliminates duplication between generate-schemas.mjs and plugin/schema.ts\n */\n\nimport { TSchema } from '@sinclair/typebox';\n\n/**\n * Configuration for a component schema\n */\nexport interface ComponentSchemaConfig {\n schema: TSchema;\n title: string;\n description: string;\n requiresName?: boolean;\n enhanceForRichContent?: boolean;\n}\n\n/**\n * Fix TypeBox recursive references in a schema\n * Handles both \"T0\" and \"ComponentDefinition\" reference patterns\n */\nexport function fixSchemaReferences(\n schema: Record<string, unknown>,\n rootDefinitionName = 'ComponentDefinition'\n): void {\n function traverse(obj: Record<string, unknown>, path = ''): void {\n if (typeof obj !== 'object' || obj === null) return;\n\n for (const [key, value] of Object.entries(obj)) {\n const currentPath = path ? `${path}.${key}` : key;\n\n if (value && typeof value === 'object') {\n // Type guard to check if value has expected properties\n const schemaValue = value as Record<string, unknown>;\n\n // Fix arrays with empty items\n if (\n schemaValue.type === 'array' &&\n schemaValue.items &&\n Object.keys(schemaValue.items).length === 0\n ) {\n schemaValue.items = {\n $ref: `#/definitions/${rootDefinitionName}`,\n };\n }\n\n // Fix arrays with items that reference broken \"T0\"\n if (\n schemaValue.type === 'array' &&\n schemaValue.items &&\n typeof schemaValue.items === 'object' &&\n '$ref' in schemaValue.items &&\n (schemaValue.items as Record<string, unknown>).$ref === 'T0'\n ) {\n schemaValue.items = {\n $ref: `#/definitions/${rootDefinitionName}`,\n };\n }\n\n // Fix direct $ref properties that point to \"T0\" or bare definition names\n if (\n schemaValue.$ref === 'T0' ||\n schemaValue.$ref === rootDefinitionName\n ) {\n schemaValue.$ref = `#/definitions/${rootDefinitionName}`;\n }\n\n // Remove problematic $id properties that reference \"T0\"\n if (\n key === '$id' &&\n typeof value === 'string' &&\n (value === 'T0' || value === rootDefinitionName) &&\n currentPath !== `definitions.${rootDefinitionName}.$id`\n ) {\n delete obj[key];\n continue;\n }\n\n traverse(value as Record<string, unknown>, currentPath);\n }\n }\n }\n\n traverse(schema);\n}\n\n/**\n * Convert TypeBox schema to JSON Schema format with proper definitions\n */\nexport function convertToJsonSchema(\n schema: TSchema,\n options: {\n $schema?: string;\n $id?: string;\n title?: string;\n description?: string;\n definitions?: Record<string, unknown>;\n } = {}\n): Record<string, unknown> {\n const {\n $schema = 'https://json-schema.org/draft-07/schema#',\n $id,\n title,\n description,\n definitions = {},\n } = options;\n\n // Clone the schema to avoid mutations\n const schemaJson = JSON.parse(JSON.stringify(schema));\n\n // Extract recursive schemas to definitions\n const extractedDefinitions: Record<string, unknown> = { ...definitions };\n\n function extractRecursiveSchemas(\n obj: Record<string, unknown>,\n path = ''\n ): void {\n if (typeof obj !== 'object' || obj === null) return;\n\n for (const [key, value] of Object.entries(obj)) {\n if (value && typeof value === 'object') {\n const schemaValue = value as Record<string, unknown>;\n\n // If this schema has an $id, extract it to definitions\n if (schemaValue.$id && typeof schemaValue.$id === 'string') {\n const definitionName = schemaValue.$id;\n\n // Don't extract if it's already in the root definitions section\n if (path !== `definitions.${definitionName}`) {\n // Clone the schema without the $id\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { $id: _, ...schemaWithoutId } = schemaValue;\n extractedDefinitions[definitionName] = schemaWithoutId;\n\n // Replace the inline schema with a $ref\n obj[key] = { $ref: `#/definitions/${definitionName}` };\n\n // Continue processing the extracted schema for nested recursions\n extractRecursiveSchemas(\n schemaWithoutId,\n `definitions.${definitionName}`\n );\n continue;\n }\n }\n\n extractRecursiveSchemas(\n value as Record<string, unknown>,\n path ? `${path}.${key}` : key\n );\n }\n }\n }\n\n // Extract recursive schemas from the main schema\n extractRecursiveSchemas(schemaJson);\n\n // Build the final JSON Schema\n const jsonSchema: Record<string, unknown> = {\n $schema,\n };\n\n if ($id) jsonSchema.$id = $id;\n\n // Merge schema properties first to preserve original metadata\n Object.assign(jsonSchema, schemaJson);\n\n // Only override title and description if explicitly provided\n if (title !== undefined) jsonSchema.title = title;\n if (description !== undefined) jsonSchema.description = description;\n\n // Add definitions section if we have any\n if (Object.keys(extractedDefinitions).length > 0) {\n jsonSchema.definitions = extractedDefinitions;\n }\n\n // Fix any remaining recursive references\n fixSchemaReferences(jsonSchema);\n\n return jsonSchema;\n}\n\n/**\n * Create a component schema with proper structure\n */\nexport function createComponentSchema(\n name: string,\n config: ComponentSchemaConfig,\n componentDefinitionSchema?: TSchema\n): Record<string, unknown> {\n const componentStructure: Record<string, unknown> = {\n $schema: 'https://json-schema.org/draft-07/schema#',\n $id: `${name}.schema.json`,\n title: config.title,\n description: config.description,\n type: 'object',\n required: ['name', 'props'],\n properties: {\n name: {\n type: 'string',\n const: name,\n description: `Component name identifier (must be \"${name}\")`,\n },\n id: {\n type: 'string',\n description: 'Optional unique identifier for the component',\n },\n props: JSON.parse(JSON.stringify(config.schema)),\n },\n };\n\n // Add children array for container types\n if (['docx', 'section', 'columns', 'text-box'].includes(name)) {\n (componentStructure.properties as Record<string, unknown>).children = {\n type: 'array',\n description: 'Children within this container',\n items: {\n $ref: '#/definitions/ComponentDefinition',\n },\n };\n\n // Add the ComponentDefinition for recursive references\n if (componentDefinitionSchema) {\n componentStructure.definitions = {\n ComponentDefinition: JSON.parse(\n JSON.stringify(componentDefinitionSchema)\n ),\n };\n }\n }\n\n // Enhance table component to support rich content in cells\n if (config.enhanceForRichContent && name === 'table') {\n // Add ComponentDefinition to support rich content in table cells\n const componentStructureWithDefs = componentStructure as Record<\n string,\n unknown\n > & {\n definitions?: Record<string, unknown>;\n };\n if (!componentStructureWithDefs.definitions) {\n componentStructureWithDefs.definitions = {};\n }\n if (componentDefinitionSchema) {\n componentStructureWithDefs.definitions.ComponentDefinition = JSON.parse(\n JSON.stringify(componentDefinitionSchema)\n );\n }\n\n // Enhance the rows.items.items to support components\n const properties = componentStructure.properties as Record<string, unknown>;\n const propsProp = properties.props as Record<string, unknown> | undefined;\n if (\n propsProp?.properties &&\n typeof propsProp.properties === 'object' &&\n propsProp.properties !== null\n ) {\n const propsProps = propsProp.properties as Record<string, unknown>;\n const rowsProp = propsProps.rows as Record<string, unknown> | undefined;\n if (\n rowsProp?.items &&\n typeof rowsProp.items === 'object' &&\n rowsProp.items !== null\n ) {\n const rowsItems = rowsProp.items as Record<string, unknown>;\n const cellSchema = rowsItems.items as\n | Record<string, unknown>\n | undefined;\n\n // If it has anyOf, add component reference as an option\n if (cellSchema?.anyOf && Array.isArray(cellSchema.anyOf)) {\n // Check if component reference isn't already there\n const hasComponentRef = cellSchema.anyOf.some((item: unknown) => {\n const itemObj = item as Record<string, unknown>;\n return itemObj.$ref === '#/definitions/ComponentDefinition';\n });\n if (!hasComponentRef) {\n cellSchema.anyOf.push({\n description:\n 'Rich content cell with component (e.g., image, paragraph)',\n $ref: '#/definitions/ComponentDefinition',\n });\n }\n }\n }\n }\n }\n\n // Fix empty items in arrays and broken references\n fixSchemaReferences(componentStructure);\n\n componentStructure.additionalProperties = false;\n\n return componentStructure;\n}\n\n/**\n * Export schema to file with proper formatting\n */\nexport async function exportSchemaToFile(\n schema: Record<string, unknown>,\n outputPath: string,\n options: {\n prettyPrint?: boolean;\n } = {}\n): Promise<void> {\n const { prettyPrint = true } = options;\n\n // Convert to JSON string\n const jsonSchema = prettyPrint\n ? JSON.stringify(schema, null, 2)\n : JSON.stringify(schema);\n\n // Write to file\n const fs = await import('fs/promises');\n await fs.writeFile(outputPath, jsonSchema, 'utf-8');\n}\n\n/**\n * Component metadata registry\n * Single source of truth for component titles and descriptions\n */\nexport const COMPONENT_METADATA: Record<\n string,\n Omit<ComponentSchemaConfig, 'schema'>\n> = {\n report: {\n title: 'Report Component',\n description:\n 'Top-level report container component with document-wide settings',\n },\n section: {\n title: 'Section Component',\n description: 'Section container for organizing document content',\n },\n columns: {\n title: 'Columns Component',\n description: 'Multi-column layout container',\n },\n heading: {\n title: 'Heading Component',\n description: 'Heading text with configurable levels and styling',\n },\n paragraph: {\n title: 'Paragraph Component',\n description: 'Rich paragraph text content with formatting options',\n },\n 'text-box': {\n title: 'Text Box Component',\n description:\n 'Inline or floating container that groups text and image components with shared positioning',\n },\n image: {\n title: 'Image Component',\n description: 'Image content with positioning and sizing options',\n },\n statistic: {\n title: 'Statistic Component',\n description: 'Statistical display with value and label',\n },\n table: {\n title: 'Table Component',\n description: 'Tabular data display with headers and rows',\n enhanceForRichContent: true,\n },\n header: {\n title: 'Header Component',\n description: 'Document header with page numbering and metadata',\n },\n footer: {\n title: 'Footer Component',\n description: 'Document footer with page numbering and metadata',\n },\n list: {\n title: 'List Component',\n description: 'Ordered or unordered list with nested items',\n },\n highcharts: {\n title: 'Highcharts Component',\n description:\n 'Charts powered by Highcharts (line, bar, pie, heatmap, etc.) with rich configuration',\n },\n};\n\n/**\n * Base schema metadata registry\n */\nexport const BASE_SCHEMA_METADATA: Record<\n string,\n { title: string; description: string }\n> = {\n alignment: {\n title: 'Alignment',\n description: 'Text alignment options',\n },\n 'base-component': {\n title: 'Base Component Props',\n description: 'Common props for all components',\n },\n border: {\n title: 'Border',\n description: 'Border styling configuration',\n },\n spacing: {\n title: 'Spacing',\n description: 'Spacing configuration for before and after elements',\n },\n margins: {\n title: 'Margins',\n description: 'Margin configuration for all sides',\n },\n indent: {\n title: 'Indent',\n description: 'Indentation configuration',\n },\n 'line-spacing': {\n title: 'Line Spacing',\n description: 'Line height and spacing configuration',\n },\n 'heading-level': {\n title: 'Heading Level',\n description: 'Heading level from 1 to 6',\n },\n numbering: {\n title: 'Numbering',\n description: 'Numbering configuration for ordered lists',\n },\n 'justified-alignment': {\n title: 'Justified Alignment',\n description: 'Justified text alignment options',\n },\n};\n\n/**\n * Theme schema metadata\n */\nexport const THEME_SCHEMA_METADATA = {\n theme: {\n title: 'Theme Configuration',\n description: 'JSON theme configuration for document styling and appearance',\n },\n};\n"],"mappings":"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","names":[]}
|