@rathnasgala2/schemas 2.21.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/README.md +31 -30
  2. package/THIRD_PARTY_LICENSES.json +3 -3
  3. package/diagnostics/diagnostic-map.json +706 -4
  4. package/docs/catalogs/app-components.json +1107 -1
  5. package/docs/catalogs/app-routes.json +444 -1
  6. package/docs/catalogs/schema-inventory.json +5 -5
  7. package/examples/valid/build-input/rules.json +50 -0
  8. package/examples/valid/publication/rules.json +48 -0
  9. package/examples/valid/theme-contract/canonical.json +355 -19
  10. package/examples/valid/theme-contract/default-3.0.json +660 -0
  11. package/examples/valid/theme-contract/rules.json +3456 -552
  12. package/fixtures/boundary/build-input/rules.json +55 -0
  13. package/fixtures/boundary/publication/rules.json +53 -0
  14. package/fixtures/boundary/theme-contract/root.json +355 -19
  15. package/fixtures/boundary/theme-contract/rules.json +4158 -1226
  16. package/fixtures/invalid/build-input/GRAPHEME_LENGTH_INVALID/cases.json +11 -0
  17. package/fixtures/invalid/build-input/REQUEST_FIELD_UNKNOWN/cases.json +27 -0
  18. package/fixtures/invalid/build-input/SCHEMA_ENUM_INVALID/cases.json +11 -0
  19. package/fixtures/invalid/build-input/SCHEMA_REQUIRED_FIELD_MISSING/cases.json +50 -0
  20. package/fixtures/invalid/build-input/SCHEMA_TYPE_INVALID/cases.json +22 -0
  21. package/fixtures/invalid/publication/GRAPHEME_LENGTH_INVALID/cases.json +11 -0
  22. package/fixtures/invalid/publication/REQUEST_FIELD_UNKNOWN/cases.json +23 -0
  23. package/fixtures/invalid/publication/SCHEMA_ENUM_INVALID/cases.json +9 -0
  24. package/fixtures/invalid/publication/SCHEMA_REQUIRED_FIELD_MISSING/cases.json +42 -0
  25. package/fixtures/invalid/publication/SCHEMA_TYPE_INVALID/cases.json +18 -0
  26. package/fixtures/invalid/theme-contract/REQUEST_FIELD_UNKNOWN/cases.json +421 -20
  27. package/fixtures/invalid/theme-contract/SCHEMA_ARRAY_TOO_LONG/cases.json +2 -2
  28. package/fixtures/invalid/theme-contract/SCHEMA_ARRAY_TOO_SHORT/cases.json +1 -1
  29. package/fixtures/invalid/theme-contract/SCHEMA_CONSTANT_INVALID/cases.json +2155 -296
  30. package/fixtures/invalid/theme-contract/SCHEMA_ENUM_INVALID/cases.json +229 -9
  31. package/fixtures/invalid/theme-contract/SCHEMA_PATTERN_INVALID/cases.json +176 -0
  32. package/fixtures/invalid/theme-contract/SCHEMA_REQUIRED_FIELD_MISSING/cases.json +8812 -1517
  33. package/fixtures/invalid/theme-contract/SCHEMA_STRING_TOO_LONG/cases.json +22 -0
  34. package/fixtures/manifest.json +5543 -161
  35. package/fixtures/s2/manifest.json +1 -1
  36. package/fixtures/s2/theme-contracts-digest-cycle.json +888 -36
  37. package/fixtures/unknown-field/build-input/rules.json +35 -0
  38. package/fixtures/unknown-field/publication/rules.json +35 -0
  39. package/fixtures/unknown-field/theme-contract/root.json +355 -19
  40. package/fixtures/unknown-field/theme-contract/rules.json +637 -22
  41. package/generated/browser/validator-core.mjs +3 -3
  42. package/generated/typescript/contracts/build-input.d.ts +8 -0
  43. package/generated/typescript/contracts/publication.d.ts +12 -0
  44. package/generated/typescript/contracts/theme-contract.d.ts +529 -9
  45. package/openapi/http-catalog.json +40 -2
  46. package/openapi/openapi.yaml +1348 -162
  47. package/package.json +1 -1
  48. package/sbom.cdx.json +23 -23
  49. package/schemas/build-input.schema.json +19 -0
  50. package/schemas/publication.schema.json +21 -0
  51. package/schemas/theme-contract.schema.json +1178 -83
@@ -54,7 +54,7 @@
54
54
  "type": "array",
55
55
  "items": { "$ref": "#/$defs/plainLabel" },
56
56
  "minItems": 1,
57
- "maxItems": 64,
57
+ "maxItems": 256,
58
58
  "uniqueItems": true
59
59
  },
60
60
  "tokens": {
@@ -65,7 +65,772 @@
65
65
  { "$ref": "#/$defs/themeToken" },
66
66
  {
67
67
  "properties": {
68
- "key": { "const": "border-width" },
68
+ "key": { "const": "border-button" },
69
+ "type": { "const": "border" }
70
+ }
71
+ }
72
+ ]
73
+ },
74
+ {
75
+ "allOf": [
76
+ { "$ref": "#/$defs/themeToken" },
77
+ {
78
+ "properties": {
79
+ "key": { "const": "border-card" },
80
+ "type": { "const": "border" }
81
+ }
82
+ }
83
+ ]
84
+ },
85
+ {
86
+ "allOf": [
87
+ { "$ref": "#/$defs/themeToken" },
88
+ {
89
+ "properties": {
90
+ "key": { "const": "border-chip" },
91
+ "type": { "const": "border" }
92
+ }
93
+ }
94
+ ]
95
+ },
96
+ {
97
+ "allOf": [
98
+ { "$ref": "#/$defs/themeToken" },
99
+ {
100
+ "properties": {
101
+ "key": { "const": "border-code" },
102
+ "type": { "const": "border" }
103
+ }
104
+ }
105
+ ]
106
+ },
107
+ {
108
+ "allOf": [
109
+ { "$ref": "#/$defs/themeToken" },
110
+ {
111
+ "properties": {
112
+ "key": { "const": "border-media-divider" },
113
+ "type": { "const": "border" }
114
+ }
115
+ }
116
+ ]
117
+ },
118
+ {
119
+ "allOf": [
120
+ { "$ref": "#/$defs/themeToken" },
121
+ {
122
+ "properties": {
123
+ "key": { "const": "border-quote" },
124
+ "type": { "const": "border" }
125
+ }
126
+ }
127
+ ]
128
+ },
129
+ {
130
+ "allOf": [
131
+ { "$ref": "#/$defs/themeToken" },
132
+ {
133
+ "properties": {
134
+ "key": { "const": "border-row-divider" },
135
+ "type": { "const": "border" }
136
+ }
137
+ }
138
+ ]
139
+ },
140
+ {
141
+ "allOf": [
142
+ { "$ref": "#/$defs/themeToken" },
143
+ {
144
+ "properties": {
145
+ "key": { "const": "border-section-rule" },
146
+ "type": { "const": "border" }
147
+ }
148
+ }
149
+ ]
150
+ },
151
+ {
152
+ "allOf": [
153
+ { "$ref": "#/$defs/themeToken" },
154
+ {
155
+ "properties": {
156
+ "key": { "const": "border-width" },
157
+ "type": { "const": "length" }
158
+ }
159
+ }
160
+ ]
161
+ },
162
+ {
163
+ "allOf": [
164
+ { "$ref": "#/$defs/themeToken" },
165
+ {
166
+ "properties": {
167
+ "key": { "const": "card-inset" },
168
+ "type": { "const": "length" }
169
+ }
170
+ }
171
+ ]
172
+ },
173
+ {
174
+ "allOf": [
175
+ { "$ref": "#/$defs/themeToken" },
176
+ {
177
+ "properties": {
178
+ "key": { "const": "card-pad" },
179
+ "type": { "const": "box" }
180
+ }
181
+ }
182
+ ]
183
+ },
184
+ {
185
+ "allOf": [
186
+ { "$ref": "#/$defs/themeToken" },
187
+ {
188
+ "properties": {
189
+ "key": { "const": "card-title-size" },
190
+ "type": { "const": "length" }
191
+ }
192
+ }
193
+ ]
194
+ },
195
+ {
196
+ "allOf": [
197
+ { "$ref": "#/$defs/themeToken" },
198
+ {
199
+ "properties": {
200
+ "key": { "const": "chip-pad" },
201
+ "type": { "const": "box" }
202
+ }
203
+ }
204
+ ]
205
+ },
206
+ {
207
+ "allOf": [
208
+ { "$ref": "#/$defs/themeToken" },
209
+ {
210
+ "properties": {
211
+ "key": { "const": "color-accent" },
212
+ "type": { "const": "color" }
213
+ }
214
+ }
215
+ ]
216
+ },
217
+ {
218
+ "allOf": [
219
+ { "$ref": "#/$defs/themeToken" },
220
+ {
221
+ "properties": {
222
+ "key": { "const": "color-accent-2" },
223
+ "type": { "const": "color" }
224
+ }
225
+ }
226
+ ]
227
+ },
228
+ {
229
+ "allOf": [
230
+ { "$ref": "#/$defs/themeToken" },
231
+ {
232
+ "properties": {
233
+ "key": { "const": "color-border" },
234
+ "type": { "const": "color" }
235
+ }
236
+ }
237
+ ]
238
+ },
239
+ {
240
+ "allOf": [
241
+ { "$ref": "#/$defs/themeToken" },
242
+ {
243
+ "properties": {
244
+ "key": { "const": "color-btn-panel" },
245
+ "type": { "const": "color" }
246
+ }
247
+ }
248
+ ]
249
+ },
250
+ {
251
+ "allOf": [
252
+ { "$ref": "#/$defs/themeToken" },
253
+ {
254
+ "properties": {
255
+ "key": { "const": "color-btn-panel-text" },
256
+ "type": { "const": "color" }
257
+ }
258
+ }
259
+ ]
260
+ },
261
+ {
262
+ "allOf": [
263
+ { "$ref": "#/$defs/themeToken" },
264
+ {
265
+ "properties": {
266
+ "key": { "const": "color-btn-text" },
267
+ "type": { "const": "color" }
268
+ }
269
+ }
270
+ ]
271
+ },
272
+ {
273
+ "allOf": [
274
+ { "$ref": "#/$defs/themeToken" },
275
+ {
276
+ "properties": {
277
+ "key": { "const": "color-canvas" },
278
+ "type": { "const": "color" }
279
+ }
280
+ }
281
+ ]
282
+ },
283
+ {
284
+ "allOf": [
285
+ { "$ref": "#/$defs/themeToken" },
286
+ {
287
+ "properties": {
288
+ "key": { "const": "color-chip-text" },
289
+ "type": { "const": "color" }
290
+ }
291
+ }
292
+ ]
293
+ },
294
+ {
295
+ "allOf": [
296
+ { "$ref": "#/$defs/themeToken" },
297
+ {
298
+ "properties": {
299
+ "key": { "const": "color-code-canvas" },
300
+ "type": { "const": "color" }
301
+ }
302
+ }
303
+ ]
304
+ },
305
+ {
306
+ "allOf": [
307
+ { "$ref": "#/$defs/themeToken" },
308
+ {
309
+ "properties": {
310
+ "key": { "const": "color-code-text" },
311
+ "type": { "const": "color" }
312
+ }
313
+ }
314
+ ]
315
+ },
316
+ {
317
+ "allOf": [
318
+ { "$ref": "#/$defs/themeToken" },
319
+ {
320
+ "properties": {
321
+ "key": { "const": "color-danger" },
322
+ "type": { "const": "color" }
323
+ }
324
+ }
325
+ ]
326
+ },
327
+ {
328
+ "allOf": [
329
+ { "$ref": "#/$defs/themeToken" },
330
+ {
331
+ "properties": {
332
+ "key": { "const": "color-focus" },
333
+ "type": { "const": "color" }
334
+ }
335
+ }
336
+ ]
337
+ },
338
+ {
339
+ "allOf": [
340
+ { "$ref": "#/$defs/themeToken" },
341
+ {
342
+ "properties": {
343
+ "key": { "const": "color-footer" },
344
+ "type": { "const": "color" }
345
+ }
346
+ }
347
+ ]
348
+ },
349
+ {
350
+ "allOf": [
351
+ { "$ref": "#/$defs/themeToken" },
352
+ {
353
+ "properties": {
354
+ "key": { "const": "color-header" },
355
+ "type": { "const": "color" }
356
+ }
357
+ }
358
+ ]
359
+ },
360
+ {
361
+ "allOf": [
362
+ { "$ref": "#/$defs/themeToken" },
363
+ {
364
+ "properties": {
365
+ "key": { "const": "color-icon-accent" },
366
+ "type": { "const": "color" }
367
+ }
368
+ }
369
+ ]
370
+ },
371
+ {
372
+ "allOf": [
373
+ { "$ref": "#/$defs/themeToken" },
374
+ {
375
+ "properties": {
376
+ "key": { "const": "color-input" },
377
+ "type": { "const": "color" }
378
+ }
379
+ }
380
+ ]
381
+ },
382
+ {
383
+ "allOf": [
384
+ { "$ref": "#/$defs/themeToken" },
385
+ {
386
+ "properties": {
387
+ "key": { "const": "color-input-border" },
388
+ "type": { "const": "color" }
389
+ }
390
+ }
391
+ ]
392
+ },
393
+ {
394
+ "allOf": [
395
+ { "$ref": "#/$defs/themeToken" },
396
+ {
397
+ "properties": {
398
+ "key": { "const": "color-link" },
399
+ "type": { "const": "color" }
400
+ }
401
+ }
402
+ ]
403
+ },
404
+ {
405
+ "allOf": [
406
+ { "$ref": "#/$defs/themeToken" },
407
+ {
408
+ "properties": {
409
+ "key": { "const": "color-link-underline" },
410
+ "type": { "const": "color" }
411
+ }
412
+ }
413
+ ]
414
+ },
415
+ {
416
+ "allOf": [
417
+ { "$ref": "#/$defs/themeToken" },
418
+ {
419
+ "properties": {
420
+ "key": { "const": "color-link-underline-hover" },
421
+ "type": { "const": "color" }
422
+ }
423
+ }
424
+ ]
425
+ },
426
+ {
427
+ "allOf": [
428
+ { "$ref": "#/$defs/themeToken" },
429
+ {
430
+ "properties": {
431
+ "key": { "const": "color-link-visited" },
432
+ "type": { "const": "color" }
433
+ }
434
+ }
435
+ ]
436
+ },
437
+ {
438
+ "allOf": [
439
+ { "$ref": "#/$defs/themeToken" },
440
+ {
441
+ "properties": {
442
+ "key": { "const": "color-on-accent" },
443
+ "type": { "const": "color" }
444
+ }
445
+ }
446
+ ]
447
+ },
448
+ {
449
+ "allOf": [
450
+ { "$ref": "#/$defs/themeToken" },
451
+ {
452
+ "properties": {
453
+ "key": { "const": "color-overlay" },
454
+ "type": { "const": "color" }
455
+ }
456
+ }
457
+ ]
458
+ },
459
+ {
460
+ "allOf": [
461
+ { "$ref": "#/$defs/themeToken" },
462
+ {
463
+ "properties": {
464
+ "key": { "const": "color-panel-muted" },
465
+ "type": { "const": "color" }
466
+ }
467
+ }
468
+ ]
469
+ },
470
+ {
471
+ "allOf": [
472
+ { "$ref": "#/$defs/themeToken" },
473
+ {
474
+ "properties": {
475
+ "key": { "const": "color-panel-text" },
476
+ "type": { "const": "color" }
477
+ }
478
+ }
479
+ ]
480
+ },
481
+ {
482
+ "allOf": [
483
+ { "$ref": "#/$defs/themeToken" },
484
+ {
485
+ "properties": {
486
+ "key": { "const": "color-selection" },
487
+ "type": { "const": "color" }
488
+ }
489
+ }
490
+ ]
491
+ },
492
+ {
493
+ "allOf": [
494
+ { "$ref": "#/$defs/themeToken" },
495
+ {
496
+ "properties": {
497
+ "key": { "const": "color-success" },
498
+ "type": { "const": "color" }
499
+ }
500
+ }
501
+ ]
502
+ },
503
+ {
504
+ "allOf": [
505
+ { "$ref": "#/$defs/themeToken" },
506
+ {
507
+ "properties": {
508
+ "key": { "const": "color-surface" },
509
+ "type": { "const": "color" }
510
+ }
511
+ }
512
+ ]
513
+ },
514
+ {
515
+ "allOf": [
516
+ { "$ref": "#/$defs/themeToken" },
517
+ {
518
+ "properties": {
519
+ "key": { "const": "color-surface-raised" },
520
+ "type": { "const": "color" }
521
+ }
522
+ }
523
+ ]
524
+ },
525
+ {
526
+ "allOf": [
527
+ { "$ref": "#/$defs/themeToken" },
528
+ {
529
+ "properties": {
530
+ "key": { "const": "color-syntax-comment" },
531
+ "type": { "const": "color" }
532
+ }
533
+ }
534
+ ]
535
+ },
536
+ {
537
+ "allOf": [
538
+ { "$ref": "#/$defs/themeToken" },
539
+ {
540
+ "properties": {
541
+ "key": { "const": "color-syntax-function" },
542
+ "type": { "const": "color" }
543
+ }
544
+ }
545
+ ]
546
+ },
547
+ {
548
+ "allOf": [
549
+ { "$ref": "#/$defs/themeToken" },
550
+ {
551
+ "properties": {
552
+ "key": { "const": "color-syntax-keyword" },
553
+ "type": { "const": "color" }
554
+ }
555
+ }
556
+ ]
557
+ },
558
+ {
559
+ "allOf": [
560
+ { "$ref": "#/$defs/themeToken" },
561
+ {
562
+ "properties": {
563
+ "key": { "const": "color-syntax-number" },
564
+ "type": { "const": "color" }
565
+ }
566
+ }
567
+ ]
568
+ },
569
+ {
570
+ "allOf": [
571
+ { "$ref": "#/$defs/themeToken" },
572
+ {
573
+ "properties": {
574
+ "key": { "const": "color-syntax-string" },
575
+ "type": { "const": "color" }
576
+ }
577
+ }
578
+ ]
579
+ },
580
+ {
581
+ "allOf": [
582
+ { "$ref": "#/$defs/themeToken" },
583
+ {
584
+ "properties": {
585
+ "key": { "const": "color-text" },
586
+ "type": { "const": "color" }
587
+ }
588
+ }
589
+ ]
590
+ },
591
+ {
592
+ "allOf": [
593
+ { "$ref": "#/$defs/themeToken" },
594
+ {
595
+ "properties": {
596
+ "key": { "const": "color-text-faint" },
597
+ "type": { "const": "color" }
598
+ }
599
+ }
600
+ ]
601
+ },
602
+ {
603
+ "allOf": [
604
+ { "$ref": "#/$defs/themeToken" },
605
+ {
606
+ "properties": {
607
+ "key": { "const": "color-text-muted" },
608
+ "type": { "const": "color" }
609
+ }
610
+ }
611
+ ]
612
+ },
613
+ {
614
+ "allOf": [
615
+ { "$ref": "#/$defs/themeToken" },
616
+ {
617
+ "properties": {
618
+ "key": { "const": "color-toc-active" },
619
+ "type": { "const": "color" }
620
+ }
621
+ }
622
+ ]
623
+ },
624
+ {
625
+ "allOf": [
626
+ { "$ref": "#/$defs/themeToken" },
627
+ {
628
+ "properties": {
629
+ "key": { "const": "color-toc-active-text" },
630
+ "type": { "const": "color" }
631
+ }
632
+ }
633
+ ]
634
+ },
635
+ {
636
+ "allOf": [
637
+ { "$ref": "#/$defs/themeToken" },
638
+ {
639
+ "properties": {
640
+ "key": { "const": "color-warning" },
641
+ "type": { "const": "color" }
642
+ }
643
+ }
644
+ ]
645
+ },
646
+ {
647
+ "allOf": [
648
+ { "$ref": "#/$defs/themeToken" },
649
+ {
650
+ "properties": {
651
+ "key": { "const": "content-measure" },
652
+ "type": { "const": "length" }
653
+ }
654
+ }
655
+ ]
656
+ },
657
+ {
658
+ "allOf": [
659
+ { "$ref": "#/$defs/themeToken" },
660
+ {
661
+ "properties": {
662
+ "key": { "const": "decor-size" },
663
+ "type": { "const": "keyword" },
664
+ "light": { "enum": ["auto", "100% 46rem"] },
665
+ "dark": { "enum": ["auto", "100% 46rem"] }
666
+ }
667
+ }
668
+ ]
669
+ },
670
+ {
671
+ "allOf": [
672
+ { "$ref": "#/$defs/themeToken" },
673
+ {
674
+ "properties": {
675
+ "key": { "const": "display-max" },
676
+ "type": { "const": "length" }
677
+ }
678
+ }
679
+ ]
680
+ },
681
+ {
682
+ "allOf": [
683
+ { "$ref": "#/$defs/themeToken" },
684
+ {
685
+ "properties": {
686
+ "key": { "const": "display-style" },
687
+ "type": { "const": "keyword" },
688
+ "light": { "enum": ["normal", "italic"] },
689
+ "dark": { "enum": ["normal", "italic"] }
690
+ }
691
+ }
692
+ ]
693
+ },
694
+ {
695
+ "allOf": [
696
+ { "$ref": "#/$defs/themeToken" },
697
+ {
698
+ "properties": {
699
+ "key": { "const": "duration-base" },
700
+ "type": { "const": "duration" }
701
+ }
702
+ }
703
+ ]
704
+ },
705
+ {
706
+ "allOf": [
707
+ { "$ref": "#/$defs/themeToken" },
708
+ {
709
+ "properties": {
710
+ "key": { "const": "duration-fast" },
711
+ "type": { "const": "duration" }
712
+ }
713
+ }
714
+ ]
715
+ },
716
+ {
717
+ "allOf": [
718
+ { "$ref": "#/$defs/themeToken" },
719
+ {
720
+ "properties": {
721
+ "key": { "const": "duration-slow" },
722
+ "type": { "const": "duration" }
723
+ }
724
+ }
725
+ ]
726
+ },
727
+ {
728
+ "allOf": [
729
+ { "$ref": "#/$defs/themeToken" },
730
+ {
731
+ "properties": {
732
+ "key": { "const": "ease-spring" },
733
+ "type": { "const": "easing" }
734
+ }
735
+ }
736
+ ]
737
+ },
738
+ {
739
+ "allOf": [
740
+ { "$ref": "#/$defs/themeToken" },
741
+ {
742
+ "properties": {
743
+ "key": { "const": "ease-standard" },
744
+ "type": { "const": "easing" }
745
+ }
746
+ }
747
+ ]
748
+ },
749
+ {
750
+ "allOf": [
751
+ { "$ref": "#/$defs/themeToken" },
752
+ {
753
+ "properties": {
754
+ "key": { "const": "focus-width" },
755
+ "type": { "const": "length" }
756
+ }
757
+ }
758
+ ]
759
+ },
760
+ {
761
+ "allOf": [
762
+ { "$ref": "#/$defs/themeToken" },
763
+ {
764
+ "properties": {
765
+ "key": { "const": "font-body" },
766
+ "type": { "const": "font-family" }
767
+ }
768
+ }
769
+ ]
770
+ },
771
+ {
772
+ "allOf": [
773
+ { "$ref": "#/$defs/themeToken" },
774
+ {
775
+ "properties": {
776
+ "key": { "const": "font-display" },
777
+ "type": { "const": "font-family" }
778
+ }
779
+ }
780
+ ]
781
+ },
782
+ {
783
+ "allOf": [
784
+ { "$ref": "#/$defs/themeToken" },
785
+ {
786
+ "properties": {
787
+ "key": { "const": "font-label" },
788
+ "type": { "const": "font-family" }
789
+ }
790
+ }
791
+ ]
792
+ },
793
+ {
794
+ "allOf": [
795
+ { "$ref": "#/$defs/themeToken" },
796
+ {
797
+ "properties": {
798
+ "key": { "const": "font-mono" },
799
+ "type": { "const": "font-family" }
800
+ }
801
+ }
802
+ ]
803
+ },
804
+ {
805
+ "allOf": [
806
+ { "$ref": "#/$defs/themeToken" },
807
+ {
808
+ "properties": {
809
+ "key": { "const": "font-ui" },
810
+ "type": { "const": "font-family" }
811
+ }
812
+ }
813
+ ]
814
+ },
815
+ {
816
+ "allOf": [
817
+ { "$ref": "#/$defs/themeToken" },
818
+ {
819
+ "properties": {
820
+ "key": { "const": "label-transform" },
821
+ "type": { "const": "keyword" },
822
+ "light": { "enum": ["none", "uppercase"] },
823
+ "dark": { "enum": ["none", "uppercase"] }
824
+ }
825
+ }
826
+ ]
827
+ },
828
+ {
829
+ "allOf": [
830
+ { "$ref": "#/$defs/themeToken" },
831
+ {
832
+ "properties": {
833
+ "key": { "const": "lift-x" },
69
834
  "type": { "const": "length" }
70
835
  }
71
836
  }
@@ -76,8 +841,8 @@
76
841
  { "$ref": "#/$defs/themeToken" },
77
842
  {
78
843
  "properties": {
79
- "key": { "const": "color-accent" },
80
- "type": { "const": "color" }
844
+ "key": { "const": "lift-y" },
845
+ "type": { "const": "length" }
81
846
  }
82
847
  }
83
848
  ]
@@ -87,8 +852,8 @@
87
852
  { "$ref": "#/$defs/themeToken" },
88
853
  {
89
854
  "properties": {
90
- "key": { "const": "color-border" },
91
- "type": { "const": "color" }
855
+ "key": { "const": "link-offset" },
856
+ "type": { "const": "length" }
92
857
  }
93
858
  }
94
859
  ]
@@ -98,8 +863,8 @@
98
863
  { "$ref": "#/$defs/themeToken" },
99
864
  {
100
865
  "properties": {
101
- "key": { "const": "color-canvas" },
102
- "type": { "const": "color" }
866
+ "key": { "const": "link-offset-hover" },
867
+ "type": { "const": "length" }
103
868
  }
104
869
  }
105
870
  ]
@@ -109,8 +874,10 @@
109
874
  { "$ref": "#/$defs/themeToken" },
110
875
  {
111
876
  "properties": {
112
- "key": { "const": "color-code-canvas" },
113
- "type": { "const": "color" }
877
+ "key": { "const": "link-skip-ink" },
878
+ "type": { "const": "keyword" },
879
+ "light": { "enum": ["auto", "none"] },
880
+ "dark": { "enum": ["auto", "none"] }
114
881
  }
115
882
  }
116
883
  ]
@@ -120,8 +887,8 @@
120
887
  { "$ref": "#/$defs/themeToken" },
121
888
  {
122
889
  "properties": {
123
- "key": { "const": "color-code-text" },
124
- "type": { "const": "color" }
890
+ "key": { "const": "link-thickness" },
891
+ "type": { "const": "length" }
125
892
  }
126
893
  }
127
894
  ]
@@ -131,8 +898,10 @@
131
898
  { "$ref": "#/$defs/themeToken" },
132
899
  {
133
900
  "properties": {
134
- "key": { "const": "color-danger" },
135
- "type": { "const": "color" }
901
+ "key": { "const": "media-filter" },
902
+ "type": { "const": "keyword" },
903
+ "light": { "enum": ["none", "grayscale(1)"] },
904
+ "dark": { "enum": ["none", "grayscale(1)"] }
136
905
  }
137
906
  }
138
907
  ]
@@ -142,8 +911,10 @@
142
911
  { "$ref": "#/$defs/themeToken" },
143
912
  {
144
913
  "properties": {
145
- "key": { "const": "color-focus" },
146
- "type": { "const": "color" }
914
+ "key": { "const": "media-filter-hover" },
915
+ "type": { "const": "keyword" },
916
+ "light": { "enum": ["none", "grayscale(1)"] },
917
+ "dark": { "enum": ["none", "grayscale(1)"] }
147
918
  }
148
919
  }
149
920
  ]
@@ -153,8 +924,8 @@
153
924
  { "$ref": "#/$defs/themeToken" },
154
925
  {
155
926
  "properties": {
156
- "key": { "const": "color-link" },
157
- "type": { "const": "color" }
927
+ "key": { "const": "media-zoom" },
928
+ "type": { "const": "number" }
158
929
  }
159
930
  }
160
931
  ]
@@ -164,8 +935,8 @@
164
935
  { "$ref": "#/$defs/themeToken" },
165
936
  {
166
937
  "properties": {
167
- "key": { "const": "color-link-visited" },
168
- "type": { "const": "color" }
938
+ "key": { "const": "paint-button" },
939
+ "type": { "const": "paint" }
169
940
  }
170
941
  }
171
942
  ]
@@ -175,8 +946,8 @@
175
946
  { "$ref": "#/$defs/themeToken" },
176
947
  {
177
948
  "properties": {
178
- "key": { "const": "color-on-accent" },
179
- "type": { "const": "color" }
949
+ "key": { "const": "paint-chip" },
950
+ "type": { "const": "paint" }
180
951
  }
181
952
  }
182
953
  ]
@@ -186,8 +957,8 @@
186
957
  { "$ref": "#/$defs/themeToken" },
187
958
  {
188
959
  "properties": {
189
- "key": { "const": "color-selection" },
190
- "type": { "const": "color" }
960
+ "key": { "const": "paint-page-decor" },
961
+ "type": { "const": "paint" }
191
962
  }
192
963
  }
193
964
  ]
@@ -197,8 +968,8 @@
197
968
  { "$ref": "#/$defs/themeToken" },
198
969
  {
199
970
  "properties": {
200
- "key": { "const": "color-success" },
201
- "type": { "const": "color" }
971
+ "key": { "const": "paint-panel" },
972
+ "type": { "const": "paint" }
202
973
  }
203
974
  }
204
975
  ]
@@ -208,8 +979,8 @@
208
979
  { "$ref": "#/$defs/themeToken" },
209
980
  {
210
981
  "properties": {
211
- "key": { "const": "color-surface" },
212
- "type": { "const": "color" }
982
+ "key": { "const": "prose-leading" },
983
+ "type": { "const": "number" }
213
984
  }
214
985
  }
215
986
  ]
@@ -219,8 +990,8 @@
219
990
  { "$ref": "#/$defs/themeToken" },
220
991
  {
221
992
  "properties": {
222
- "key": { "const": "color-surface-raised" },
223
- "type": { "const": "color" }
993
+ "key": { "const": "prose-size" },
994
+ "type": { "const": "length" }
224
995
  }
225
996
  }
226
997
  ]
@@ -230,8 +1001,10 @@
230
1001
  { "$ref": "#/$defs/themeToken" },
231
1002
  {
232
1003
  "properties": {
233
- "key": { "const": "color-text" },
234
- "type": { "const": "color" }
1004
+ "key": { "const": "quote-align" },
1005
+ "type": { "const": "keyword" },
1006
+ "light": { "enum": ["start", "center"] },
1007
+ "dark": { "enum": ["start", "center"] }
235
1008
  }
236
1009
  }
237
1010
  ]
@@ -241,8 +1014,10 @@
241
1014
  { "$ref": "#/$defs/themeToken" },
242
1015
  {
243
1016
  "properties": {
244
- "key": { "const": "color-text-muted" },
245
- "type": { "const": "color" }
1017
+ "key": { "const": "quote-mark" },
1018
+ "type": { "const": "keyword" },
1019
+ "light": { "enum": ["none", "open-quote"] },
1020
+ "dark": { "enum": ["none", "open-quote"] }
246
1021
  }
247
1022
  }
248
1023
  ]
@@ -252,8 +1027,8 @@
252
1027
  { "$ref": "#/$defs/themeToken" },
253
1028
  {
254
1029
  "properties": {
255
- "key": { "const": "color-warning" },
256
- "type": { "const": "color" }
1030
+ "key": { "const": "quote-pad" },
1031
+ "type": { "const": "box" }
257
1032
  }
258
1033
  }
259
1034
  ]
@@ -263,8 +1038,10 @@
263
1038
  { "$ref": "#/$defs/themeToken" },
264
1039
  {
265
1040
  "properties": {
266
- "key": { "const": "content-measure" },
267
- "type": { "const": "length" }
1041
+ "key": { "const": "quote-style" },
1042
+ "type": { "const": "keyword" },
1043
+ "light": { "enum": ["normal", "italic"] },
1044
+ "dark": { "enum": ["normal", "italic"] }
268
1045
  }
269
1046
  }
270
1047
  ]
@@ -274,8 +1051,10 @@
274
1051
  { "$ref": "#/$defs/themeToken" },
275
1052
  {
276
1053
  "properties": {
277
- "key": { "const": "focus-width" },
278
- "type": { "const": "length" }
1054
+ "key": { "const": "quote-transform" },
1055
+ "type": { "const": "keyword" },
1056
+ "light": { "enum": ["none", "uppercase"] },
1057
+ "dark": { "enum": ["none", "uppercase"] }
279
1058
  }
280
1059
  }
281
1060
  ]
@@ -285,8 +1064,8 @@
285
1064
  { "$ref": "#/$defs/themeToken" },
286
1065
  {
287
1066
  "properties": {
288
- "key": { "const": "font-body" },
289
- "type": { "const": "font-family" }
1067
+ "key": { "const": "radius-avatar" },
1068
+ "type": { "const": "length" }
290
1069
  }
291
1070
  }
292
1071
  ]
@@ -296,8 +1075,8 @@
296
1075
  { "$ref": "#/$defs/themeToken" },
297
1076
  {
298
1077
  "properties": {
299
- "key": { "const": "font-heading" },
300
- "type": { "const": "font-family" }
1078
+ "key": { "const": "radius-large" },
1079
+ "type": { "const": "length" }
301
1080
  }
302
1081
  }
303
1082
  ]
@@ -307,8 +1086,8 @@
307
1086
  { "$ref": "#/$defs/themeToken" },
308
1087
  {
309
1088
  "properties": {
310
- "key": { "const": "font-mono" },
311
- "type": { "const": "font-family" }
1089
+ "key": { "const": "radius-media" },
1090
+ "type": { "const": "length" }
312
1091
  }
313
1092
  }
314
1093
  ]
@@ -324,6 +1103,17 @@
324
1103
  }
325
1104
  ]
326
1105
  },
1106
+ {
1107
+ "allOf": [
1108
+ { "$ref": "#/$defs/themeToken" },
1109
+ {
1110
+ "properties": {
1111
+ "key": { "const": "radius-pill" },
1112
+ "type": { "const": "length" }
1113
+ }
1114
+ }
1115
+ ]
1116
+ },
327
1117
  {
328
1118
  "allOf": [
329
1119
  { "$ref": "#/$defs/themeToken" },
@@ -335,6 +1125,72 @@
335
1125
  }
336
1126
  ]
337
1127
  },
1128
+ {
1129
+ "allOf": [
1130
+ { "$ref": "#/$defs/themeToken" },
1131
+ {
1132
+ "properties": {
1133
+ "key": { "const": "row-pad" },
1134
+ "type": { "const": "length" }
1135
+ }
1136
+ }
1137
+ ]
1138
+ },
1139
+ {
1140
+ "allOf": [
1141
+ { "$ref": "#/$defs/themeToken" },
1142
+ {
1143
+ "properties": {
1144
+ "key": { "const": "shadow-avatar-ring" },
1145
+ "type": { "const": "shadow" }
1146
+ }
1147
+ }
1148
+ ]
1149
+ },
1150
+ {
1151
+ "allOf": [
1152
+ { "$ref": "#/$defs/themeToken" },
1153
+ {
1154
+ "properties": {
1155
+ "key": { "const": "shadow-button" },
1156
+ "type": { "const": "shadow" }
1157
+ }
1158
+ }
1159
+ ]
1160
+ },
1161
+ {
1162
+ "allOf": [
1163
+ { "$ref": "#/$defs/themeToken" },
1164
+ {
1165
+ "properties": {
1166
+ "key": { "const": "shadow-card" },
1167
+ "type": { "const": "shadow" }
1168
+ }
1169
+ }
1170
+ ]
1171
+ },
1172
+ {
1173
+ "allOf": [
1174
+ { "$ref": "#/$defs/themeToken" },
1175
+ {
1176
+ "properties": {
1177
+ "key": { "const": "shadow-card-hover" },
1178
+ "type": { "const": "shadow" }
1179
+ }
1180
+ }
1181
+ ]
1182
+ },
1183
+ {
1184
+ "allOf": [
1185
+ { "$ref": "#/$defs/themeToken" },
1186
+ {
1187
+ "properties": {
1188
+ "key": { "const": "shadow-dialog" },
1189
+ "type": { "const": "shadow" }
1190
+ }
1191
+ }
1192
+ ]
1193
+ },
338
1194
  {
339
1195
  "allOf": [
340
1196
  { "$ref": "#/$defs/themeToken" },
@@ -406,8 +1262,21 @@
406
1262
  { "$ref": "#/$defs/themeToken" },
407
1263
  {
408
1264
  "properties": {
409
- "key": { "const": "weight-heading" },
410
- "type": { "const": "font-weight" }
1265
+ "key": { "const": "title-transform" },
1266
+ "type": { "const": "keyword" },
1267
+ "light": { "enum": ["none", "uppercase"] },
1268
+ "dark": { "enum": ["none", "uppercase"] }
1269
+ }
1270
+ }
1271
+ ]
1272
+ },
1273
+ {
1274
+ "allOf": [
1275
+ { "$ref": "#/$defs/themeToken" },
1276
+ {
1277
+ "properties": {
1278
+ "key": { "const": "tracking-display" },
1279
+ "type": { "const": "length" }
411
1280
  }
412
1281
  }
413
1282
  ]
@@ -417,7 +1286,29 @@
417
1286
  { "$ref": "#/$defs/themeToken" },
418
1287
  {
419
1288
  "properties": {
420
- "key": { "const": "weight-medium" },
1289
+ "key": { "const": "tracking-label" },
1290
+ "type": { "const": "length" }
1291
+ }
1292
+ }
1293
+ ]
1294
+ },
1295
+ {
1296
+ "allOf": [
1297
+ { "$ref": "#/$defs/themeToken" },
1298
+ {
1299
+ "properties": {
1300
+ "key": { "const": "tracking-title" },
1301
+ "type": { "const": "length" }
1302
+ }
1303
+ }
1304
+ ]
1305
+ },
1306
+ {
1307
+ "allOf": [
1308
+ { "$ref": "#/$defs/themeToken" },
1309
+ {
1310
+ "properties": {
1311
+ "key": { "const": "weight-display" },
421
1312
  "type": { "const": "font-weight" }
422
1313
  }
423
1314
  }
@@ -444,11 +1335,33 @@
444
1335
  }
445
1336
  }
446
1337
  ]
1338
+ },
1339
+ {
1340
+ "allOf": [
1341
+ { "$ref": "#/$defs/themeToken" },
1342
+ {
1343
+ "properties": {
1344
+ "key": { "const": "weight-title" },
1345
+ "type": { "const": "font-weight" }
1346
+ }
1347
+ }
1348
+ ]
1349
+ },
1350
+ {
1351
+ "allOf": [
1352
+ { "$ref": "#/$defs/themeToken" },
1353
+ {
1354
+ "properties": {
1355
+ "key": { "const": "weight-ui" },
1356
+ "type": { "const": "font-weight" }
1357
+ }
1358
+ }
1359
+ ]
447
1360
  }
448
1361
  ],
449
1362
  "items": false,
450
- "minItems": 35,
451
- "maxItems": 35
1363
+ "minItems": 116,
1364
+ "maxItems": 116
452
1365
  },
453
1366
  "modes": { "const": ["dark", "light", "system"] },
454
1367
  "assets": {
@@ -619,46 +1532,142 @@
619
1532
  "properties": {
620
1533
  "key": {
621
1534
  "enum": [
1535
+ "border-button",
1536
+ "border-card",
1537
+ "border-chip",
1538
+ "border-code",
1539
+ "border-media-divider",
1540
+ "border-quote",
1541
+ "border-row-divider",
1542
+ "border-section-rule",
622
1543
  "border-width",
1544
+ "card-inset",
1545
+ "card-pad",
1546
+ "card-title-size",
1547
+ "chip-pad",
623
1548
  "color-accent",
1549
+ "color-accent-2",
624
1550
  "color-border",
1551
+ "color-btn-panel",
1552
+ "color-btn-panel-text",
1553
+ "color-btn-text",
625
1554
  "color-canvas",
1555
+ "color-chip-text",
626
1556
  "color-code-canvas",
627
1557
  "color-code-text",
628
1558
  "color-danger",
629
1559
  "color-focus",
1560
+ "color-footer",
1561
+ "color-header",
1562
+ "color-icon-accent",
1563
+ "color-input",
1564
+ "color-input-border",
630
1565
  "color-link",
1566
+ "color-link-underline",
1567
+ "color-link-underline-hover",
631
1568
  "color-link-visited",
632
1569
  "color-on-accent",
1570
+ "color-overlay",
1571
+ "color-panel-muted",
1572
+ "color-panel-text",
633
1573
  "color-selection",
634
1574
  "color-success",
635
1575
  "color-surface",
636
1576
  "color-surface-raised",
1577
+ "color-syntax-comment",
1578
+ "color-syntax-function",
1579
+ "color-syntax-keyword",
1580
+ "color-syntax-number",
1581
+ "color-syntax-string",
637
1582
  "color-text",
1583
+ "color-text-faint",
638
1584
  "color-text-muted",
1585
+ "color-toc-active",
1586
+ "color-toc-active-text",
639
1587
  "color-warning",
640
1588
  "content-measure",
1589
+ "decor-size",
1590
+ "display-max",
1591
+ "display-style",
1592
+ "duration-base",
1593
+ "duration-fast",
1594
+ "duration-slow",
1595
+ "ease-spring",
1596
+ "ease-standard",
641
1597
  "focus-width",
642
1598
  "font-body",
643
- "font-heading",
1599
+ "font-display",
1600
+ "font-label",
644
1601
  "font-mono",
1602
+ "font-ui",
1603
+ "label-transform",
1604
+ "lift-x",
1605
+ "lift-y",
1606
+ "link-offset",
1607
+ "link-offset-hover",
1608
+ "link-skip-ink",
1609
+ "link-thickness",
1610
+ "media-filter",
1611
+ "media-filter-hover",
1612
+ "media-zoom",
1613
+ "paint-button",
1614
+ "paint-chip",
1615
+ "paint-page-decor",
1616
+ "paint-panel",
1617
+ "prose-leading",
1618
+ "prose-size",
1619
+ "quote-align",
1620
+ "quote-mark",
1621
+ "quote-pad",
1622
+ "quote-style",
1623
+ "quote-transform",
1624
+ "radius-avatar",
1625
+ "radius-large",
1626
+ "radius-media",
645
1627
  "radius-medium",
1628
+ "radius-pill",
646
1629
  "radius-small",
1630
+ "row-pad",
1631
+ "shadow-avatar-ring",
1632
+ "shadow-button",
1633
+ "shadow-card",
1634
+ "shadow-card-hover",
1635
+ "shadow-dialog",
647
1636
  "space-1",
648
1637
  "space-2",
649
1638
  "space-3",
650
1639
  "space-4",
651
1640
  "space-6",
652
1641
  "space-8",
653
- "weight-heading",
654
- "weight-medium",
1642
+ "title-transform",
1643
+ "tracking-display",
1644
+ "tracking-label",
1645
+ "tracking-title",
1646
+ "weight-display",
655
1647
  "weight-normal",
656
- "weight-strong"
1648
+ "weight-strong",
1649
+ "weight-title",
1650
+ "weight-ui"
657
1651
  ]
658
1652
  },
659
- "type": { "enum": ["color", "length", "font-family", "font-weight"] },
660
- "light": { "type": "string" },
661
- "dark": { "type": "string" }
1653
+ "type": {
1654
+ "enum": [
1655
+ "color",
1656
+ "length",
1657
+ "box",
1658
+ "number",
1659
+ "duration",
1660
+ "easing",
1661
+ "font-family",
1662
+ "font-weight",
1663
+ "border",
1664
+ "shadow",
1665
+ "paint",
1666
+ "keyword"
1667
+ ]
1668
+ },
1669
+ "light": { "type": "string", "maxLength": 640 },
1670
+ "dark": { "type": "string", "maxLength": 640 }
662
1671
  },
663
1672
  "additionalProperties": false,
664
1673
  "allOf": [
@@ -682,10 +1691,72 @@
682
1691
  "then": {
683
1692
  "properties": {
684
1693
  "light": {
685
- "pattern": "^(?:0|(?:[1-9][0-9]*(?:\\.[0-9]{0,3}[1-9])?|0\\.(?:[0-9]{0,3}[1-9]))(?:px|rem))$"
1694
+ "pattern": "^(?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%))$"
1695
+ },
1696
+ "dark": {
1697
+ "pattern": "^(?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%))$"
1698
+ }
1699
+ }
1700
+ }
1701
+ },
1702
+ {
1703
+ "if": {
1704
+ "properties": { "type": { "const": "box" } },
1705
+ "required": ["type"]
1706
+ },
1707
+ "then": {
1708
+ "properties": {
1709
+ "light": {
1710
+ "pattern": "^(?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%))(?: (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%))){0,3}$"
1711
+ },
1712
+ "dark": {
1713
+ "pattern": "^(?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%))(?: (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%))){0,3}$"
1714
+ }
1715
+ }
1716
+ }
1717
+ },
1718
+ {
1719
+ "if": {
1720
+ "properties": { "type": { "const": "number" } },
1721
+ "required": ["type"]
1722
+ },
1723
+ "then": {
1724
+ "properties": {
1725
+ "light": {
1726
+ "pattern": "^(?:10(?:\\.0{1,3})?|[0-9](?:\\.[0-9]{1,3})?)$"
1727
+ },
1728
+ "dark": {
1729
+ "pattern": "^(?:10(?:\\.0{1,3})?|[0-9](?:\\.[0-9]{1,3})?)$"
1730
+ }
1731
+ }
1732
+ }
1733
+ },
1734
+ {
1735
+ "if": {
1736
+ "properties": { "type": { "const": "duration" } },
1737
+ "required": ["type"]
1738
+ },
1739
+ "then": {
1740
+ "properties": {
1741
+ "light": {
1742
+ "pattern": "^(?:0|[1-9][0-9]{0,2}|1[0-9]{3}|2000)ms$"
1743
+ },
1744
+ "dark": { "pattern": "^(?:0|[1-9][0-9]{0,2}|1[0-9]{3}|2000)ms$" }
1745
+ }
1746
+ }
1747
+ },
1748
+ {
1749
+ "if": {
1750
+ "properties": { "type": { "const": "easing" } },
1751
+ "required": ["type"]
1752
+ },
1753
+ "then": {
1754
+ "properties": {
1755
+ "light": {
1756
+ "pattern": "^(?:linear|cubic-bezier\\(-?(?:0|[1-9][0-9]?)(?:\\.[0-9]{1,4})?, -?(?:0|[1-9][0-9]?)(?:\\.[0-9]{1,4})?, -?(?:0|[1-9][0-9]?)(?:\\.[0-9]{1,4})?, -?(?:0|[1-9][0-9]?)(?:\\.[0-9]{1,4})?\\))$"
686
1757
  },
687
1758
  "dark": {
688
- "pattern": "^(?:0|(?:[1-9][0-9]*(?:\\.[0-9]{0,3}[1-9])?|0\\.(?:[0-9]{0,3}[1-9]))(?:px|rem))$"
1759
+ "pattern": "^(?:linear|cubic-bezier\\(-?(?:0|[1-9][0-9]?)(?:\\.[0-9]{1,4})?, -?(?:0|[1-9][0-9]?)(?:\\.[0-9]{1,4})?, -?(?:0|[1-9][0-9]?)(?:\\.[0-9]{1,4})?, -?(?:0|[1-9][0-9]?)(?:\\.[0-9]{1,4})?\\))$"
689
1760
  }
690
1761
  }
691
1762
  }
@@ -711,39 +1782,63 @@
711
1782
  "properties": { "type": { "const": "font-weight" } },
712
1783
  "required": ["type"]
713
1784
  },
1785
+ "then": {
1786
+ "properties": {
1787
+ "light": { "pattern": "^(?:[1-9][0-9]{0,2}|1000)$" },
1788
+ "dark": { "pattern": "^(?:[1-9][0-9]{0,2}|1000)$" }
1789
+ }
1790
+ }
1791
+ },
1792
+ {
1793
+ "if": {
1794
+ "properties": { "type": { "const": "border" } },
1795
+ "required": ["type"]
1796
+ },
1797
+ "then": {
1798
+ "properties": {
1799
+ "light": {
1800
+ "pattern": "^(?:none|(?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%)) (?:solid|dashed) #[0-9a-f]{6}(?:[0-9a-f]{2})?)$"
1801
+ },
1802
+ "dark": {
1803
+ "pattern": "^(?:none|(?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%)) (?:solid|dashed) #[0-9a-f]{6}(?:[0-9a-f]{2})?)$"
1804
+ }
1805
+ }
1806
+ }
1807
+ },
1808
+ {
1809
+ "if": {
1810
+ "properties": { "type": { "const": "shadow" } },
1811
+ "required": ["type"]
1812
+ },
1813
+ "then": {
1814
+ "properties": {
1815
+ "light": {
1816
+ "pattern": "^(?:none|(?:inset )?(?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%)) (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%)) (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%))(?: (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%)))? #[0-9a-f]{6}(?:[0-9a-f]{2})?(?:, (?:inset )?(?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%)) (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%)) (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%))(?: (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%)))? #[0-9a-f]{6}(?:[0-9a-f]{2})?){0,2})$"
1817
+ },
1818
+ "dark": {
1819
+ "pattern": "^(?:none|(?:inset )?(?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%)) (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%)) (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%))(?: (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%)))? #[0-9a-f]{6}(?:[0-9a-f]{2})?(?:, (?:inset )?(?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%)) (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%)) (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%))(?: (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%)))? #[0-9a-f]{6}(?:[0-9a-f]{2})?){0,2})$"
1820
+ }
1821
+ }
1822
+ }
1823
+ },
1824
+ {
1825
+ "if": {
1826
+ "properties": { "type": { "const": "paint" } },
1827
+ "required": ["type"]
1828
+ },
714
1829
  "then": {
715
1830
  "properties": {
716
1831
  "light": {
717
- "enum": [
718
- "100",
719
- "200",
720
- "300",
721
- "400",
722
- "500",
723
- "600",
724
- "700",
725
- "800",
726
- "900"
727
- ]
1832
+ "pattern": "^(?:none|#[0-9a-f]{6}(?:[0-9a-f]{2})?|(?:(?:repeating-)?linear-gradient\\(-?(?:0|[1-9][0-9]{0,2})deg, (?:#[0-9a-f]{6}(?:[0-9a-f]{2})?|transparent)(?: (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%))(?: (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%)))?)?(?:, (?:#[0-9a-f]{6}(?:[0-9a-f]{2})?|transparent)(?: (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%))(?: (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%)))?)?){1,4}\\)|radial-gradient\\((?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%)) (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%)) at -?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?% -?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?%, (?:#[0-9a-f]{6}(?:[0-9a-f]{2})?|transparent)(?: (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%))(?: (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%)))?)?(?:, (?:#[0-9a-f]{6}(?:[0-9a-f]{2})?|transparent)(?: (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%))(?: (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%)))?)?){1,4}\\))(?:, (?:(?:repeating-)?linear-gradient\\(-?(?:0|[1-9][0-9]{0,2})deg, (?:#[0-9a-f]{6}(?:[0-9a-f]{2})?|transparent)(?: (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%))(?: (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%)))?)?(?:, (?:#[0-9a-f]{6}(?:[0-9a-f]{2})?|transparent)(?: (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%))(?: (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%)))?)?){1,4}\\)|radial-gradient\\((?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%)) (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%)) at -?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?% -?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?%, (?:#[0-9a-f]{6}(?:[0-9a-f]{2})?|transparent)(?: (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%))(?: (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%)))?)?(?:, (?:#[0-9a-f]{6}(?:[0-9a-f]{2})?|transparent)(?: (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%))(?: (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%)))?)?){1,4}\\))){0,2})$"
728
1833
  },
729
1834
  "dark": {
730
- "enum": [
731
- "100",
732
- "200",
733
- "300",
734
- "400",
735
- "500",
736
- "600",
737
- "700",
738
- "800",
739
- "900"
740
- ]
1835
+ "pattern": "^(?:none|#[0-9a-f]{6}(?:[0-9a-f]{2})?|(?:(?:repeating-)?linear-gradient\\(-?(?:0|[1-9][0-9]{0,2})deg, (?:#[0-9a-f]{6}(?:[0-9a-f]{2})?|transparent)(?: (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%))(?: (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%)))?)?(?:, (?:#[0-9a-f]{6}(?:[0-9a-f]{2})?|transparent)(?: (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%))(?: (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%)))?)?){1,4}\\)|radial-gradient\\((?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%)) (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%)) at -?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?% -?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?%, (?:#[0-9a-f]{6}(?:[0-9a-f]{2})?|transparent)(?: (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%))(?: (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%)))?)?(?:, (?:#[0-9a-f]{6}(?:[0-9a-f]{2})?|transparent)(?: (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%))(?: (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%)))?)?){1,4}\\))(?:, (?:(?:repeating-)?linear-gradient\\(-?(?:0|[1-9][0-9]{0,2})deg, (?:#[0-9a-f]{6}(?:[0-9a-f]{2})?|transparent)(?: (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%))(?: (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%)))?)?(?:, (?:#[0-9a-f]{6}(?:[0-9a-f]{2})?|transparent)(?: (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%))(?: (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%)))?)?){1,4}\\)|radial-gradient\\((?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%)) (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%)) at -?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?% -?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?%, (?:#[0-9a-f]{6}(?:[0-9a-f]{2})?|transparent)(?: (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%))(?: (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%)))?)?(?:, (?:#[0-9a-f]{6}(?:[0-9a-f]{2})?|transparent)(?: (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%))(?: (?:0|-?(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,4})?(?:px|rem|em|%)))?)?){1,4}\\))){0,2})$"
741
1836
  }
742
1837
  }
743
1838
  }
744
1839
  }
745
1840
  ],
746
- "$comment": "For length, font-family, and font-weight tokens, light and dark must be byte-equal. Font-family components are each limited to 64 ASCII bytes."
1841
+ "$comment": "Every value is checked against its type's allow-list grammar; keyword tokens carry a per-key enum on their tokens position. Only color, paint, border, shadow tokens may differ between light and dark; every other type must be byte-equal in both modes (enforced by the semantic validator). Font-family components are each limited to 64 ASCII bytes."
747
1842
  },
748
1843
  "passiveAsset": {
749
1844
  "type": "object",