@vectoriox/iox-ui 5.29.1 → 5.31.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 (35) hide show
  1. package/composite-core/index.d.ts +270 -0
  2. package/composite-core/package.json +3 -0
  3. package/design-core/index.d.ts +870 -41
  4. package/fesm2022/vectoriox-iox-ui-composite-core.mjs +698 -0
  5. package/fesm2022/vectoriox-iox-ui-composite-core.mjs.map +1 -0
  6. package/fesm2022/vectoriox-iox-ui-design-core.mjs +1090 -82
  7. package/fesm2022/vectoriox-iox-ui-design-core.mjs.map +1 -1
  8. package/fesm2022/vectoriox-iox-ui-forms-core.mjs +74 -1
  9. package/fesm2022/vectoriox-iox-ui-forms-core.mjs.map +1 -1
  10. package/fesm2022/vectoriox-iox-ui-generation-core.mjs +110 -30
  11. package/fesm2022/vectoriox-iox-ui-generation-core.mjs.map +1 -1
  12. package/fesm2022/vectoriox-iox-ui.mjs +210 -31
  13. package/fesm2022/vectoriox-iox-ui.mjs.map +1 -1
  14. package/forms-core/index.d.ts +45 -2
  15. package/generation-core/index.d.ts +35 -23
  16. package/index.d.ts +42 -15
  17. package/package.json +5 -1
  18. package/src/composite-core/badge.ts +103 -0
  19. package/src/composite-core/card.ts +524 -0
  20. package/src/composite-core/composite-node.ts +143 -0
  21. package/src/composite-core/public-api.ts +11 -0
  22. package/src/composite-core/structure.ts +58 -0
  23. package/src/design-core/contrast-audit.ts +38 -5
  24. package/src/design-core/flavor-fixtures.generated.ts +144 -144
  25. package/src/design-core/flavor-spec.generated.ts +970 -26
  26. package/src/design-core/node-classes.ts +16 -4
  27. package/src/design-core/node-links.ts +29 -0
  28. package/src/forms-core/nesting.ts +92 -0
  29. package/src/forms-core/public-api.ts +1 -0
  30. package/src/generation-core/compose-site.ts +55 -1
  31. package/src/generation-core/node-baselines.generated.ts +14 -2
  32. package/src/generation-core/patterns.ts +29 -2
  33. package/src/generation-core/serialized-node.ts +2 -0
  34. package/src/generation-core/site-spec.generated.ts +13 -26
  35. package/styles/iox-design.css +62 -0
@@ -184,6 +184,18 @@ const SPEC_TIERS = {
184
184
  "group": "colour",
185
185
  "desc": "Error fill"
186
186
  },
187
+ {
188
+ "name": "warning",
189
+ "type": "color",
190
+ "group": "colour",
191
+ "desc": "Warning text (Card v2 badge tone) — AA on warning-bg"
192
+ },
193
+ {
194
+ "name": "warning-bg",
195
+ "type": "color",
196
+ "group": "colour",
197
+ "desc": "Warning fill"
198
+ },
187
199
  {
188
200
  "name": "scrim",
189
201
  "type": "color",
@@ -909,6 +921,76 @@ const SPEC_TIERS = {
909
921
  "name": "divider-color",
910
922
  "type": "color",
911
923
  "default": "var(--iox-line)"
924
+ },
925
+ {
926
+ "name": "badge-radius",
927
+ "type": "radius",
928
+ "default": "var(--iox-radius-pill)"
929
+ },
930
+ {
931
+ "name": "badge-pad",
932
+ "type": "spacing",
933
+ "default": "3px 10px"
934
+ },
935
+ {
936
+ "name": "badge-size",
937
+ "type": "size",
938
+ "default": "var(--iox-size-label)"
939
+ },
940
+ {
941
+ "name": "badge-neutral-bg",
942
+ "type": "color",
943
+ "default": "var(--iox-surface-2)"
944
+ },
945
+ {
946
+ "name": "badge-neutral-ink",
947
+ "type": "color",
948
+ "default": "var(--iox-text)"
949
+ },
950
+ {
951
+ "name": "badge-success-bg",
952
+ "type": "color",
953
+ "default": "var(--iox-success-bg)"
954
+ },
955
+ {
956
+ "name": "badge-success-ink",
957
+ "type": "color",
958
+ "default": "var(--iox-success)"
959
+ },
960
+ {
961
+ "name": "badge-warning-bg",
962
+ "type": "color",
963
+ "default": "var(--iox-warning-bg)"
964
+ },
965
+ {
966
+ "name": "badge-warning-ink",
967
+ "type": "color",
968
+ "default": "var(--iox-warning)"
969
+ },
970
+ {
971
+ "name": "badge-accent-bg",
972
+ "type": "color",
973
+ "default": "var(--iox-accent)"
974
+ },
975
+ {
976
+ "name": "badge-accent-ink",
977
+ "type": "color",
978
+ "default": "var(--iox-accent-ink)"
979
+ },
980
+ {
981
+ "name": "chip-border",
982
+ "type": "color",
983
+ "default": "var(--iox-line-strong)"
984
+ },
985
+ {
986
+ "name": "media-scrim",
987
+ "type": "color",
988
+ "default": "rgba(0, 0, 0, 0.62)"
989
+ },
990
+ {
991
+ "name": "media-scrim-ink",
992
+ "type": "color",
993
+ "default": "#FFFFFF"
912
994
  }
913
995
  ]
914
996
  };
@@ -1179,7 +1261,9 @@ const SPEC_SCHEMES = {
1179
1261
  "danger": "{{~danger}}",
1180
1262
  "danger-bg": "{{~danger-bg}}",
1181
1263
  "success": "{{~success}}",
1182
- "success-bg": "{{~success-bg}}"
1264
+ "success-bg": "{{~success-bg}}",
1265
+ "warning": "{{~warning}}",
1266
+ "warning-bg": "{{~warning-bg}}"
1183
1267
  }
1184
1268
  },
1185
1269
  "accent": {
@@ -1203,7 +1287,9 @@ const SPEC_SCHEMES = {
1203
1287
  "danger": "{{accent-ink}}",
1204
1288
  "danger-bg": "{{accent-hover}}",
1205
1289
  "success": "{{accent-ink}}",
1206
- "success-bg": "{{accent-hover}}"
1290
+ "success-bg": "{{accent-hover}}",
1291
+ "warning": "{{accent-ink}}",
1292
+ "warning-bg": "{{accent-hover}}"
1207
1293
  }
1208
1294
  }
1209
1295
  };
@@ -1703,6 +1789,114 @@ const SPEC_ELEMENT_STYLES = [
1703
1789
  ],
1704
1790
  "base": {}
1705
1791
  },
1792
+ {
1793
+ "id": "badge-neutral",
1794
+ "label": "Badge · Neutral",
1795
+ "group": "Content blocks",
1796
+ "appliesTo": [
1797
+ "Container"
1798
+ ],
1799
+ "base": {
1800
+ "backgroundColor": "var(--iox-badge-neutral-bg)",
1801
+ "color": "var(--iox-badge-neutral-ink)",
1802
+ "borderRadius": "var(--iox-badge-radius)",
1803
+ "padding": "var(--iox-badge-pad)",
1804
+ "fontFamily": "var(--iox-font-label)",
1805
+ "fontSize": "var(--iox-badge-size)",
1806
+ "fontWeight": "var(--iox-weight-label)",
1807
+ "letterSpacing": "var(--iox-tracking-label)",
1808
+ "textTransform": "var(--iox-case-label)"
1809
+ }
1810
+ },
1811
+ {
1812
+ "id": "badge-success",
1813
+ "label": "Badge · Success",
1814
+ "group": "Content blocks",
1815
+ "appliesTo": [
1816
+ "Container"
1817
+ ],
1818
+ "base": {
1819
+ "backgroundColor": "var(--iox-badge-success-bg)",
1820
+ "color": "var(--iox-badge-success-ink)",
1821
+ "borderRadius": "var(--iox-badge-radius)",
1822
+ "padding": "var(--iox-badge-pad)",
1823
+ "fontFamily": "var(--iox-font-label)",
1824
+ "fontSize": "var(--iox-badge-size)",
1825
+ "fontWeight": "var(--iox-weight-label)",
1826
+ "letterSpacing": "var(--iox-tracking-label)",
1827
+ "textTransform": "var(--iox-case-label)"
1828
+ }
1829
+ },
1830
+ {
1831
+ "id": "badge-warning",
1832
+ "label": "Badge · Warning",
1833
+ "group": "Content blocks",
1834
+ "appliesTo": [
1835
+ "Container"
1836
+ ],
1837
+ "base": {
1838
+ "backgroundColor": "var(--iox-badge-warning-bg)",
1839
+ "color": "var(--iox-badge-warning-ink)",
1840
+ "borderRadius": "var(--iox-badge-radius)",
1841
+ "padding": "var(--iox-badge-pad)",
1842
+ "fontFamily": "var(--iox-font-label)",
1843
+ "fontSize": "var(--iox-badge-size)",
1844
+ "fontWeight": "var(--iox-weight-label)",
1845
+ "letterSpacing": "var(--iox-tracking-label)",
1846
+ "textTransform": "var(--iox-case-label)"
1847
+ }
1848
+ },
1849
+ {
1850
+ "id": "badge-accent",
1851
+ "label": "Badge · Accent",
1852
+ "group": "Content blocks",
1853
+ "appliesTo": [
1854
+ "Container"
1855
+ ],
1856
+ "base": {
1857
+ "backgroundColor": "var(--iox-badge-accent-bg)",
1858
+ "color": "var(--iox-badge-accent-ink)",
1859
+ "borderRadius": "var(--iox-badge-radius)",
1860
+ "padding": "var(--iox-badge-pad)",
1861
+ "fontFamily": "var(--iox-font-label)",
1862
+ "fontSize": "var(--iox-badge-size)",
1863
+ "fontWeight": "var(--iox-weight-label)",
1864
+ "letterSpacing": "var(--iox-tracking-label)",
1865
+ "textTransform": "var(--iox-case-label)"
1866
+ }
1867
+ },
1868
+ {
1869
+ "id": "chip",
1870
+ "label": "Chip",
1871
+ "group": "Content blocks",
1872
+ "appliesTo": [
1873
+ "Container"
1874
+ ],
1875
+ "base": {
1876
+ "backgroundColor": "transparent",
1877
+ "color": "var(--iox-text)",
1878
+ "borderStyle": "solid",
1879
+ "borderWidth": "var(--iox-border-width)",
1880
+ "borderColor": "var(--iox-chip-border)",
1881
+ "borderRadius": "var(--iox-badge-radius)",
1882
+ "padding": "var(--iox-badge-pad)",
1883
+ "fontFamily": "var(--iox-font-label)",
1884
+ "fontSize": "var(--iox-badge-size)",
1885
+ "fontWeight": "var(--iox-weight-label)"
1886
+ }
1887
+ },
1888
+ {
1889
+ "id": "media-scrim",
1890
+ "label": "Text over image",
1891
+ "group": "Content blocks",
1892
+ "appliesTo": [
1893
+ "Container"
1894
+ ],
1895
+ "base": {
1896
+ "backgroundColor": "linear-gradient(180deg, transparent 0%, var(--iox-media-scrim) 45%)",
1897
+ "color": "var(--iox-media-scrim-ink)"
1898
+ }
1899
+ },
1706
1900
  {
1707
1901
  "id": "notice-success",
1708
1902
  "label": "Success message",
@@ -1764,16 +1958,6 @@ const SPEC_BUTTON_VARIANT_TO_STYLE = {
1764
1958
  "text": "button-ghost"
1765
1959
  };
1766
1960
  const SPEC_PALETTE_PRESETS = [
1767
- {
1768
- "label": "Card",
1769
- "type": "Container",
1770
- "elementStyle": "card",
1771
- "styleProps": {
1772
- "display": "flex",
1773
- "flexDirection": "column",
1774
- "gap": "var(--iox-space-gap)"
1775
- }
1776
- },
1777
1961
  {
1778
1962
  "label": "Panel",
1779
1963
  "type": "Container",
@@ -1988,6 +2172,33 @@ const SPEC_INK_SCOPES = [
1988
2172
  "link-hover-color": "currentColor",
1989
2173
  "text-muted": "currentColor"
1990
2174
  }
2175
+ },
2176
+ {
2177
+ "styles": [
2178
+ "badge-neutral",
2179
+ "badge-success",
2180
+ "badge-warning",
2181
+ "badge-accent",
2182
+ "chip"
2183
+ ],
2184
+ "set": {
2185
+ "icon-color": "currentColor"
2186
+ }
2187
+ },
2188
+ {
2189
+ "styles": [
2190
+ "media-scrim"
2191
+ ],
2192
+ "children": true,
2193
+ "set": {
2194
+ "heading-color": "currentColor",
2195
+ "eyebrow-color": "currentColor",
2196
+ "text-muted": "currentColor",
2197
+ "link-color": "currentColor",
2198
+ "link-hover-color": "currentColor",
2199
+ "icon-color": "currentColor",
2200
+ "button-ghost-ink": "currentColor"
2201
+ }
1991
2202
  }
1992
2203
  ];
1993
2204
  const SPEC_CONTRAST_AUDIT = {
@@ -2052,6 +2263,11 @@ const SPEC_CONTRAST_AUDIT = {
2052
2263
  "bg": "danger-bg",
2053
2264
  "min": 4.5
2054
2265
  },
2266
+ {
2267
+ "fg": "warning",
2268
+ "bg": "warning-bg",
2269
+ "min": 4.5
2270
+ },
2055
2271
  {
2056
2272
  "fg": "accent-ink",
2057
2273
  "bg": "accent-hover",
@@ -2198,6 +2414,14 @@ const SPEC_CONTRAST_AUDIT = {
2198
2414
  "fg": "var(--iox-line-strong)",
2199
2415
  "min": 3
2200
2416
  }
2417
+ ],
2418
+ "scrims": [
2419
+ {
2420
+ "style": "media-scrim",
2421
+ "token": "media-scrim",
2422
+ "scheme": "inverse",
2423
+ "image": "#FFFFFF"
2424
+ }
2201
2425
  ]
2202
2426
  };
2203
2427
  const SPEC_LEGACY_ALIASES = {
@@ -2319,6 +2543,8 @@ const SPEC_FLAVOR_PACKS = [
2319
2543
  "success-bg": "#E7F4EC",
2320
2544
  "danger": "#B3261E",
2321
2545
  "danger-bg": "#FBE9E7",
2546
+ "warning": "#7A4A00",
2547
+ "warning-bg": "#FBF0D9",
2322
2548
  "scrim": "rgba(15, 17, 21, 0.45)"
2323
2549
  },
2324
2550
  "dark": {
@@ -2344,6 +2570,8 @@ const SPEC_FLAVOR_PACKS = [
2344
2570
  "success-bg": "#13291C",
2345
2571
  "danger": "#FF8A80",
2346
2572
  "danger-bg": "#3A1715",
2573
+ "warning": "#F2C46D",
2574
+ "warning-bg": "#2E2210",
2347
2575
  "scrim": "rgba(0, 0, 0, 0.6)"
2348
2576
  }
2349
2577
  },
@@ -2585,6 +2813,22 @@ const SPEC_FLAVOR_PACKS = [
2585
2813
  "value": "#FBE9E7",
2586
2814
  "dark": "#3A1715"
2587
2815
  },
2816
+ {
2817
+ "name": "warning",
2818
+ "tier": "semantic",
2819
+ "type": "color",
2820
+ "group": "colour",
2821
+ "value": "#7A4A00",
2822
+ "dark": "#F2C46D"
2823
+ },
2824
+ {
2825
+ "name": "warning-bg",
2826
+ "tier": "semantic",
2827
+ "type": "color",
2828
+ "group": "colour",
2829
+ "value": "#FBF0D9",
2830
+ "dark": "#2E2210"
2831
+ },
2588
2832
  {
2589
2833
  "name": "scrim",
2590
2834
  "tier": "semantic",
@@ -3526,6 +3770,104 @@ const SPEC_FLAVOR_PACKS = [
3526
3770
  "type": "color",
3527
3771
  "group": "components",
3528
3772
  "value": "var(--iox-line)"
3773
+ },
3774
+ {
3775
+ "name": "badge-radius",
3776
+ "tier": "component",
3777
+ "type": "radius",
3778
+ "group": "components",
3779
+ "value": "var(--iox-radius-pill)"
3780
+ },
3781
+ {
3782
+ "name": "badge-pad",
3783
+ "tier": "component",
3784
+ "type": "spacing",
3785
+ "group": "components",
3786
+ "value": "3px 10px"
3787
+ },
3788
+ {
3789
+ "name": "badge-size",
3790
+ "tier": "component",
3791
+ "type": "size",
3792
+ "group": "components",
3793
+ "value": "var(--iox-size-label)"
3794
+ },
3795
+ {
3796
+ "name": "badge-neutral-bg",
3797
+ "tier": "component",
3798
+ "type": "color",
3799
+ "group": "components",
3800
+ "value": "var(--iox-surface-2)"
3801
+ },
3802
+ {
3803
+ "name": "badge-neutral-ink",
3804
+ "tier": "component",
3805
+ "type": "color",
3806
+ "group": "components",
3807
+ "value": "var(--iox-text)"
3808
+ },
3809
+ {
3810
+ "name": "badge-success-bg",
3811
+ "tier": "component",
3812
+ "type": "color",
3813
+ "group": "components",
3814
+ "value": "var(--iox-success-bg)"
3815
+ },
3816
+ {
3817
+ "name": "badge-success-ink",
3818
+ "tier": "component",
3819
+ "type": "color",
3820
+ "group": "components",
3821
+ "value": "var(--iox-success)"
3822
+ },
3823
+ {
3824
+ "name": "badge-warning-bg",
3825
+ "tier": "component",
3826
+ "type": "color",
3827
+ "group": "components",
3828
+ "value": "var(--iox-warning-bg)"
3829
+ },
3830
+ {
3831
+ "name": "badge-warning-ink",
3832
+ "tier": "component",
3833
+ "type": "color",
3834
+ "group": "components",
3835
+ "value": "var(--iox-warning)"
3836
+ },
3837
+ {
3838
+ "name": "badge-accent-bg",
3839
+ "tier": "component",
3840
+ "type": "color",
3841
+ "group": "components",
3842
+ "value": "var(--iox-accent)"
3843
+ },
3844
+ {
3845
+ "name": "badge-accent-ink",
3846
+ "tier": "component",
3847
+ "type": "color",
3848
+ "group": "components",
3849
+ "value": "var(--iox-accent-ink)"
3850
+ },
3851
+ {
3852
+ "name": "chip-border",
3853
+ "tier": "component",
3854
+ "type": "color",
3855
+ "group": "components",
3856
+ "value": "var(--iox-line-strong)"
3857
+ },
3858
+ {
3859
+ "name": "media-scrim",
3860
+ "tier": "component",
3861
+ "type": "color",
3862
+ "group": "components",
3863
+ "value": "rgba(0, 0, 0, 0.62)"
3864
+ },
3865
+ {
3866
+ "name": "media-scrim-ink",
3867
+ "tier": "component",
3868
+ "type": "color",
3869
+ "group": "components",
3870
+ "value": "#FFFFFF"
3529
3871
  }
3530
3872
  ]
3531
3873
  },
@@ -3642,6 +3984,8 @@ const SPEC_FLAVOR_PACKS = [
3642
3984
  "success-bg": "#E9EEDF",
3643
3985
  "danger": "#9A3324",
3644
3986
  "danger-bg": "#F5E3DC",
3987
+ "warning": "#7A4A00",
3988
+ "warning-bg": "#FBF0D9",
3645
3989
  "scrim": "rgba(31, 27, 22, 0.5)"
3646
3990
  },
3647
3991
  "dark": {
@@ -3667,6 +4011,8 @@ const SPEC_FLAVOR_PACKS = [
3667
4011
  "success-bg": "#1E2619",
3668
4012
  "danger": "#E8A08F",
3669
4013
  "danger-bg": "#2E1A15",
4014
+ "warning": "#F2C46D",
4015
+ "warning-bg": "#2E2210",
3670
4016
  "scrim": "rgba(0, 0, 0, 0.6)"
3671
4017
  }
3672
4018
  },
@@ -3908,6 +4254,22 @@ const SPEC_FLAVOR_PACKS = [
3908
4254
  "value": "#F5E3DC",
3909
4255
  "dark": "#2E1A15"
3910
4256
  },
4257
+ {
4258
+ "name": "warning",
4259
+ "tier": "semantic",
4260
+ "type": "color",
4261
+ "group": "colour",
4262
+ "value": "#7A4A00",
4263
+ "dark": "#F2C46D"
4264
+ },
4265
+ {
4266
+ "name": "warning-bg",
4267
+ "tier": "semantic",
4268
+ "type": "color",
4269
+ "group": "colour",
4270
+ "value": "#FBF0D9",
4271
+ "dark": "#2E2210"
4272
+ },
3911
4273
  {
3912
4274
  "name": "scrim",
3913
4275
  "tier": "semantic",
@@ -4869,20 +5231,118 @@ const SPEC_FLAVOR_PACKS = [
4869
5231
  "type": "color",
4870
5232
  "group": "components",
4871
5233
  "value": "var(--iox-line)"
4872
- }
4873
- ]
4874
- },
4875
- {
4876
- "id": "midnight",
4877
- "name": "Midnight",
4878
- "personality": "Bold",
4879
- "inspiredBy": "Dark product sites — Linear, Vercel, Raycast",
4880
- "blurb": "Dark, sharp, glowing.",
4881
- "popularFor": [
4882
- "SaaS & AI tools",
4883
- "Fintech",
4884
- "Gaming",
4885
- "Events & nightlife"
5234
+ },
5235
+ {
5236
+ "name": "badge-radius",
5237
+ "tier": "component",
5238
+ "type": "radius",
5239
+ "group": "components",
5240
+ "value": "var(--iox-radius-pill)"
5241
+ },
5242
+ {
5243
+ "name": "badge-pad",
5244
+ "tier": "component",
5245
+ "type": "spacing",
5246
+ "group": "components",
5247
+ "value": "3px 10px"
5248
+ },
5249
+ {
5250
+ "name": "badge-size",
5251
+ "tier": "component",
5252
+ "type": "size",
5253
+ "group": "components",
5254
+ "value": "var(--iox-size-label)"
5255
+ },
5256
+ {
5257
+ "name": "badge-neutral-bg",
5258
+ "tier": "component",
5259
+ "type": "color",
5260
+ "group": "components",
5261
+ "value": "var(--iox-surface-2)"
5262
+ },
5263
+ {
5264
+ "name": "badge-neutral-ink",
5265
+ "tier": "component",
5266
+ "type": "color",
5267
+ "group": "components",
5268
+ "value": "var(--iox-text)"
5269
+ },
5270
+ {
5271
+ "name": "badge-success-bg",
5272
+ "tier": "component",
5273
+ "type": "color",
5274
+ "group": "components",
5275
+ "value": "var(--iox-success-bg)"
5276
+ },
5277
+ {
5278
+ "name": "badge-success-ink",
5279
+ "tier": "component",
5280
+ "type": "color",
5281
+ "group": "components",
5282
+ "value": "var(--iox-success)"
5283
+ },
5284
+ {
5285
+ "name": "badge-warning-bg",
5286
+ "tier": "component",
5287
+ "type": "color",
5288
+ "group": "components",
5289
+ "value": "var(--iox-warning-bg)"
5290
+ },
5291
+ {
5292
+ "name": "badge-warning-ink",
5293
+ "tier": "component",
5294
+ "type": "color",
5295
+ "group": "components",
5296
+ "value": "var(--iox-warning)"
5297
+ },
5298
+ {
5299
+ "name": "badge-accent-bg",
5300
+ "tier": "component",
5301
+ "type": "color",
5302
+ "group": "components",
5303
+ "value": "var(--iox-accent)"
5304
+ },
5305
+ {
5306
+ "name": "badge-accent-ink",
5307
+ "tier": "component",
5308
+ "type": "color",
5309
+ "group": "components",
5310
+ "value": "var(--iox-accent-ink)"
5311
+ },
5312
+ {
5313
+ "name": "chip-border",
5314
+ "tier": "component",
5315
+ "type": "color",
5316
+ "group": "components",
5317
+ "value": "var(--iox-line-strong)"
5318
+ },
5319
+ {
5320
+ "name": "media-scrim",
5321
+ "tier": "component",
5322
+ "type": "color",
5323
+ "group": "components",
5324
+ "value": "rgba(0, 0, 0, 0.62)"
5325
+ },
5326
+ {
5327
+ "name": "media-scrim-ink",
5328
+ "tier": "component",
5329
+ "type": "color",
5330
+ "group": "components",
5331
+ "value": "#FFFFFF"
5332
+ }
5333
+ ]
5334
+ },
5335
+ {
5336
+ "id": "midnight",
5337
+ "name": "Midnight",
5338
+ "personality": "Bold",
5339
+ "inspiredBy": "Dark product sites — Linear, Vercel, Raycast",
5340
+ "blurb": "Dark, sharp, glowing.",
5341
+ "popularFor": [
5342
+ "SaaS & AI tools",
5343
+ "Fintech",
5344
+ "Gaming",
5345
+ "Events & nightlife"
4886
5346
  ],
4887
5347
  "defaults": {
4888
5348
  "shape": "soft",
@@ -4987,6 +5447,8 @@ const SPEC_FLAVOR_PACKS = [
4987
5447
  "success-bg": "#E7F4EC",
4988
5448
  "danger": "#B3261E",
4989
5449
  "danger-bg": "#FBE9E7",
5450
+ "warning": "#7A4A00",
5451
+ "warning-bg": "#FBF0D9",
4990
5452
  "scrim": "rgba(8, 9, 10, 0.55)"
4991
5453
  },
4992
5454
  "dark": {
@@ -5012,6 +5474,8 @@ const SPEC_FLAVOR_PACKS = [
5012
5474
  "success-bg": "#0F2418",
5013
5475
  "danger": "#FF7B72",
5014
5476
  "danger-bg": "#2D1213",
5477
+ "warning": "#F2C46D",
5478
+ "warning-bg": "#2E2210",
5015
5479
  "scrim": "rgba(0, 0, 0, 0.7)"
5016
5480
  }
5017
5481
  },
@@ -5253,6 +5717,22 @@ const SPEC_FLAVOR_PACKS = [
5253
5717
  "value": "#FBE9E7",
5254
5718
  "dark": "#2D1213"
5255
5719
  },
5720
+ {
5721
+ "name": "warning",
5722
+ "tier": "semantic",
5723
+ "type": "color",
5724
+ "group": "colour",
5725
+ "value": "#7A4A00",
5726
+ "dark": "#F2C46D"
5727
+ },
5728
+ {
5729
+ "name": "warning-bg",
5730
+ "tier": "semantic",
5731
+ "type": "color",
5732
+ "group": "colour",
5733
+ "value": "#FBF0D9",
5734
+ "dark": "#2E2210"
5735
+ },
5256
5736
  {
5257
5737
  "name": "scrim",
5258
5738
  "tier": "semantic",
@@ -6203,6 +6683,104 @@ const SPEC_FLAVOR_PACKS = [
6203
6683
  "type": "color",
6204
6684
  "group": "components",
6205
6685
  "value": "var(--iox-line)"
6686
+ },
6687
+ {
6688
+ "name": "badge-radius",
6689
+ "tier": "component",
6690
+ "type": "radius",
6691
+ "group": "components",
6692
+ "value": "var(--iox-radius-pill)"
6693
+ },
6694
+ {
6695
+ "name": "badge-pad",
6696
+ "tier": "component",
6697
+ "type": "spacing",
6698
+ "group": "components",
6699
+ "value": "3px 10px"
6700
+ },
6701
+ {
6702
+ "name": "badge-size",
6703
+ "tier": "component",
6704
+ "type": "size",
6705
+ "group": "components",
6706
+ "value": "var(--iox-size-label)"
6707
+ },
6708
+ {
6709
+ "name": "badge-neutral-bg",
6710
+ "tier": "component",
6711
+ "type": "color",
6712
+ "group": "components",
6713
+ "value": "var(--iox-surface-2)"
6714
+ },
6715
+ {
6716
+ "name": "badge-neutral-ink",
6717
+ "tier": "component",
6718
+ "type": "color",
6719
+ "group": "components",
6720
+ "value": "var(--iox-text)"
6721
+ },
6722
+ {
6723
+ "name": "badge-success-bg",
6724
+ "tier": "component",
6725
+ "type": "color",
6726
+ "group": "components",
6727
+ "value": "var(--iox-success-bg)"
6728
+ },
6729
+ {
6730
+ "name": "badge-success-ink",
6731
+ "tier": "component",
6732
+ "type": "color",
6733
+ "group": "components",
6734
+ "value": "var(--iox-success)"
6735
+ },
6736
+ {
6737
+ "name": "badge-warning-bg",
6738
+ "tier": "component",
6739
+ "type": "color",
6740
+ "group": "components",
6741
+ "value": "var(--iox-warning-bg)"
6742
+ },
6743
+ {
6744
+ "name": "badge-warning-ink",
6745
+ "tier": "component",
6746
+ "type": "color",
6747
+ "group": "components",
6748
+ "value": "var(--iox-warning)"
6749
+ },
6750
+ {
6751
+ "name": "badge-accent-bg",
6752
+ "tier": "component",
6753
+ "type": "color",
6754
+ "group": "components",
6755
+ "value": "var(--iox-accent)"
6756
+ },
6757
+ {
6758
+ "name": "badge-accent-ink",
6759
+ "tier": "component",
6760
+ "type": "color",
6761
+ "group": "components",
6762
+ "value": "var(--iox-accent-ink)"
6763
+ },
6764
+ {
6765
+ "name": "chip-border",
6766
+ "tier": "component",
6767
+ "type": "color",
6768
+ "group": "components",
6769
+ "value": "var(--iox-line-strong)"
6770
+ },
6771
+ {
6772
+ "name": "media-scrim",
6773
+ "tier": "component",
6774
+ "type": "color",
6775
+ "group": "components",
6776
+ "value": "rgba(0, 0, 0, 0.62)"
6777
+ },
6778
+ {
6779
+ "name": "media-scrim-ink",
6780
+ "tier": "component",
6781
+ "type": "color",
6782
+ "group": "components",
6783
+ "value": "#FFFFFF"
6206
6784
  }
6207
6785
  ]
6208
6786
  },
@@ -6318,6 +6896,8 @@ const SPEC_FLAVOR_PACKS = [
6318
6896
  "success-bg": "#E3F5EA",
6319
6897
  "danger": "#B3261E",
6320
6898
  "danger-bg": "#FCE8E6",
6899
+ "warning": "#7A4A00",
6900
+ "warning-bg": "#FBF0D9",
6321
6901
  "scrim": "rgba(15, 23, 42, 0.30)"
6322
6902
  },
6323
6903
  "dark": {
@@ -6347,6 +6927,8 @@ const SPEC_FLAVOR_PACKS = [
6347
6927
  "success-bg": "#12291C",
6348
6928
  "danger": "#FF8A80",
6349
6929
  "danger-bg": "#3A1715",
6930
+ "warning": "#F2C46D",
6931
+ "warning-bg": "#2E2210",
6350
6932
  "scrim": "rgba(0, 0, 0, 0.5)"
6351
6933
  }
6352
6934
  },
@@ -6599,6 +7181,22 @@ const SPEC_FLAVOR_PACKS = [
6599
7181
  "value": "#FCE8E6",
6600
7182
  "dark": "#3A1715"
6601
7183
  },
7184
+ {
7185
+ "name": "warning",
7186
+ "tier": "semantic",
7187
+ "type": "color",
7188
+ "group": "colour",
7189
+ "value": "#7A4A00",
7190
+ "dark": "#F2C46D"
7191
+ },
7192
+ {
7193
+ "name": "warning-bg",
7194
+ "tier": "semantic",
7195
+ "type": "color",
7196
+ "group": "colour",
7197
+ "value": "#FBF0D9",
7198
+ "dark": "#2E2210"
7199
+ },
6602
7200
  {
6603
7201
  "name": "scrim",
6604
7202
  "tier": "semantic",
@@ -7446,128 +8044,226 @@ const SPEC_FLAVOR_PACKS = [
7446
8044
  "value": "var(--iox-size-small)"
7447
8045
  },
7448
8046
  {
7449
- "name": "field-label-weight",
8047
+ "name": "field-label-weight",
8048
+ "tier": "component",
8049
+ "type": "number",
8050
+ "group": "components",
8051
+ "value": "var(--iox-weight-strong)"
8052
+ },
8053
+ {
8054
+ "name": "dialog-bg",
8055
+ "tier": "component",
8056
+ "type": "color",
8057
+ "group": "components",
8058
+ "value": "var(--iox-surface-glass-strong)",
8059
+ "overridden": true
8060
+ },
8061
+ {
8062
+ "name": "dialog-radius",
8063
+ "tier": "component",
8064
+ "type": "radius",
8065
+ "group": "components",
8066
+ "value": "var(--iox-radius-xl)"
8067
+ },
8068
+ {
8069
+ "name": "dialog-shadow",
8070
+ "tier": "component",
8071
+ "type": "shadow",
8072
+ "group": "components",
8073
+ "value": "var(--iox-shadow-lg), var(--iox-glass-edge)",
8074
+ "overridden": true
8075
+ },
8076
+ {
8077
+ "name": "dialog-backdrop",
8078
+ "tier": "component",
8079
+ "type": "effect",
8080
+ "group": "components",
8081
+ "value": "var(--iox-blur-surface)",
8082
+ "overridden": true
8083
+ },
8084
+ {
8085
+ "name": "dialog-pad",
8086
+ "tier": "component",
8087
+ "type": "spacing",
8088
+ "group": "components",
8089
+ "value": "var(--iox-space-pad)"
8090
+ },
8091
+ {
8092
+ "name": "dialog-border",
8093
+ "tier": "component",
8094
+ "type": "color",
8095
+ "group": "components",
8096
+ "value": "var(--iox-glass-border)",
8097
+ "overridden": true
8098
+ },
8099
+ {
8100
+ "name": "dialog-border-width",
8101
+ "tier": "component",
8102
+ "type": "size",
8103
+ "group": "components",
8104
+ "value": "var(--iox-border-width)",
8105
+ "overridden": true
8106
+ },
8107
+ {
8108
+ "name": "image-radius",
8109
+ "tier": "component",
8110
+ "type": "radius",
8111
+ "group": "components",
8112
+ "value": "var(--iox-radius-md)"
8113
+ },
8114
+ {
8115
+ "name": "image-hover-scale",
8116
+ "tier": "component",
8117
+ "type": "number",
8118
+ "group": "components",
8119
+ "value": "1"
8120
+ },
8121
+ {
8122
+ "name": "link-color",
8123
+ "tier": "component",
8124
+ "type": "color",
8125
+ "group": "components",
8126
+ "value": "var(--iox-accent-text)"
8127
+ },
8128
+ {
8129
+ "name": "link-hover-color",
8130
+ "tier": "component",
8131
+ "type": "color",
8132
+ "group": "components",
8133
+ "value": "var(--iox-text)"
8134
+ },
8135
+ {
8136
+ "name": "link-decoration",
8137
+ "tier": "component",
8138
+ "type": "keyword",
8139
+ "group": "components",
8140
+ "value": "underline"
8141
+ },
8142
+ {
8143
+ "name": "heading-color",
8144
+ "tier": "component",
8145
+ "type": "color",
8146
+ "group": "components",
8147
+ "value": "var(--iox-text)"
8148
+ },
8149
+ {
8150
+ "name": "eyebrow-color",
7450
8151
  "tier": "component",
7451
- "type": "number",
8152
+ "type": "color",
7452
8153
  "group": "components",
7453
- "value": "var(--iox-weight-strong)"
8154
+ "value": "var(--iox-accent-text)"
7454
8155
  },
7455
8156
  {
7456
- "name": "dialog-bg",
8157
+ "name": "icon-color",
7457
8158
  "tier": "component",
7458
8159
  "type": "color",
7459
8160
  "group": "components",
7460
- "value": "var(--iox-surface-glass-strong)",
7461
- "overridden": true
8161
+ "value": "var(--iox-accent-text)"
7462
8162
  },
7463
8163
  {
7464
- "name": "dialog-radius",
8164
+ "name": "divider-color",
7465
8165
  "tier": "component",
7466
- "type": "radius",
8166
+ "type": "color",
7467
8167
  "group": "components",
7468
- "value": "var(--iox-radius-xl)"
8168
+ "value": "var(--iox-line)"
7469
8169
  },
7470
8170
  {
7471
- "name": "dialog-shadow",
8171
+ "name": "badge-radius",
7472
8172
  "tier": "component",
7473
- "type": "shadow",
8173
+ "type": "radius",
7474
8174
  "group": "components",
7475
- "value": "var(--iox-shadow-lg), var(--iox-glass-edge)",
7476
- "overridden": true
8175
+ "value": "var(--iox-radius-pill)"
7477
8176
  },
7478
8177
  {
7479
- "name": "dialog-backdrop",
8178
+ "name": "badge-pad",
7480
8179
  "tier": "component",
7481
- "type": "effect",
8180
+ "type": "spacing",
7482
8181
  "group": "components",
7483
- "value": "var(--iox-blur-surface)",
7484
- "overridden": true
8182
+ "value": "3px 10px"
7485
8183
  },
7486
8184
  {
7487
- "name": "dialog-pad",
8185
+ "name": "badge-size",
7488
8186
  "tier": "component",
7489
- "type": "spacing",
8187
+ "type": "size",
7490
8188
  "group": "components",
7491
- "value": "var(--iox-space-pad)"
8189
+ "value": "var(--iox-size-label)"
7492
8190
  },
7493
8191
  {
7494
- "name": "dialog-border",
8192
+ "name": "badge-neutral-bg",
7495
8193
  "tier": "component",
7496
8194
  "type": "color",
7497
8195
  "group": "components",
7498
- "value": "var(--iox-glass-border)",
7499
- "overridden": true
8196
+ "value": "var(--iox-surface-2)"
7500
8197
  },
7501
8198
  {
7502
- "name": "dialog-border-width",
8199
+ "name": "badge-neutral-ink",
7503
8200
  "tier": "component",
7504
- "type": "size",
8201
+ "type": "color",
7505
8202
  "group": "components",
7506
- "value": "var(--iox-border-width)",
7507
- "overridden": true
8203
+ "value": "var(--iox-text)"
7508
8204
  },
7509
8205
  {
7510
- "name": "image-radius",
8206
+ "name": "badge-success-bg",
7511
8207
  "tier": "component",
7512
- "type": "radius",
8208
+ "type": "color",
7513
8209
  "group": "components",
7514
- "value": "var(--iox-radius-md)"
8210
+ "value": "var(--iox-success-bg)"
7515
8211
  },
7516
8212
  {
7517
- "name": "image-hover-scale",
8213
+ "name": "badge-success-ink",
7518
8214
  "tier": "component",
7519
- "type": "number",
8215
+ "type": "color",
7520
8216
  "group": "components",
7521
- "value": "1"
8217
+ "value": "var(--iox-success)"
7522
8218
  },
7523
8219
  {
7524
- "name": "link-color",
8220
+ "name": "badge-warning-bg",
7525
8221
  "tier": "component",
7526
8222
  "type": "color",
7527
8223
  "group": "components",
7528
- "value": "var(--iox-accent-text)"
8224
+ "value": "var(--iox-warning-bg)"
7529
8225
  },
7530
8226
  {
7531
- "name": "link-hover-color",
8227
+ "name": "badge-warning-ink",
7532
8228
  "tier": "component",
7533
8229
  "type": "color",
7534
8230
  "group": "components",
7535
- "value": "var(--iox-text)"
8231
+ "value": "var(--iox-warning)"
7536
8232
  },
7537
8233
  {
7538
- "name": "link-decoration",
8234
+ "name": "badge-accent-bg",
7539
8235
  "tier": "component",
7540
- "type": "keyword",
8236
+ "type": "color",
7541
8237
  "group": "components",
7542
- "value": "underline"
8238
+ "value": "var(--iox-accent)"
7543
8239
  },
7544
8240
  {
7545
- "name": "heading-color",
8241
+ "name": "badge-accent-ink",
7546
8242
  "tier": "component",
7547
8243
  "type": "color",
7548
8244
  "group": "components",
7549
- "value": "var(--iox-text)"
8245
+ "value": "var(--iox-accent-ink)"
7550
8246
  },
7551
8247
  {
7552
- "name": "eyebrow-color",
8248
+ "name": "chip-border",
7553
8249
  "tier": "component",
7554
8250
  "type": "color",
7555
8251
  "group": "components",
7556
- "value": "var(--iox-accent-text)"
8252
+ "value": "var(--iox-line-strong)"
7557
8253
  },
7558
8254
  {
7559
- "name": "icon-color",
8255
+ "name": "media-scrim",
7560
8256
  "tier": "component",
7561
8257
  "type": "color",
7562
8258
  "group": "components",
7563
- "value": "var(--iox-accent-text)"
8259
+ "value": "rgba(0, 0, 0, 0.62)"
7564
8260
  },
7565
8261
  {
7566
- "name": "divider-color",
8262
+ "name": "media-scrim-ink",
7567
8263
  "tier": "component",
7568
8264
  "type": "color",
7569
8265
  "group": "components",
7570
- "value": "var(--iox-line)"
8266
+ "value": "#FFFFFF"
7571
8267
  }
7572
8268
  ]
7573
8269
  },
@@ -7683,6 +8379,8 @@ const SPEC_FLAVOR_PACKS = [
7683
8379
  "success-bg": "#DDF3E3",
7684
8380
  "danger": "#B3261E",
7685
8381
  "danger-bg": "#F9DEDC",
8382
+ "warning": "#7A4A00",
8383
+ "warning-bg": "#FBF0D9",
7686
8384
  "scrim": "rgba(29, 27, 32, 0.4)"
7687
8385
  },
7688
8386
  "dark": {
@@ -7708,6 +8406,8 @@ const SPEC_FLAVOR_PACKS = [
7708
8406
  "success-bg": "#123620",
7709
8407
  "danger": "#F2B8B5",
7710
8408
  "danger-bg": "#601410",
8409
+ "warning": "#F2C46D",
8410
+ "warning-bg": "#2E2210",
7711
8411
  "scrim": "rgba(0, 0, 0, 0.55)"
7712
8412
  }
7713
8413
  },
@@ -7948,6 +8648,22 @@ const SPEC_FLAVOR_PACKS = [
7948
8648
  "value": "#F9DEDC",
7949
8649
  "dark": "#601410"
7950
8650
  },
8651
+ {
8652
+ "name": "warning",
8653
+ "tier": "semantic",
8654
+ "type": "color",
8655
+ "group": "colour",
8656
+ "value": "#7A4A00",
8657
+ "dark": "#F2C46D"
8658
+ },
8659
+ {
8660
+ "name": "warning-bg",
8661
+ "tier": "semantic",
8662
+ "type": "color",
8663
+ "group": "colour",
8664
+ "value": "#FBF0D9",
8665
+ "dark": "#2E2210"
8666
+ },
7951
8667
  {
7952
8668
  "name": "scrim",
7953
8669
  "tier": "semantic",
@@ -8901,6 +9617,104 @@ const SPEC_FLAVOR_PACKS = [
8901
9617
  "type": "color",
8902
9618
  "group": "components",
8903
9619
  "value": "var(--iox-line)"
9620
+ },
9621
+ {
9622
+ "name": "badge-radius",
9623
+ "tier": "component",
9624
+ "type": "radius",
9625
+ "group": "components",
9626
+ "value": "var(--iox-radius-pill)"
9627
+ },
9628
+ {
9629
+ "name": "badge-pad",
9630
+ "tier": "component",
9631
+ "type": "spacing",
9632
+ "group": "components",
9633
+ "value": "3px 10px"
9634
+ },
9635
+ {
9636
+ "name": "badge-size",
9637
+ "tier": "component",
9638
+ "type": "size",
9639
+ "group": "components",
9640
+ "value": "var(--iox-size-label)"
9641
+ },
9642
+ {
9643
+ "name": "badge-neutral-bg",
9644
+ "tier": "component",
9645
+ "type": "color",
9646
+ "group": "components",
9647
+ "value": "var(--iox-surface-2)"
9648
+ },
9649
+ {
9650
+ "name": "badge-neutral-ink",
9651
+ "tier": "component",
9652
+ "type": "color",
9653
+ "group": "components",
9654
+ "value": "var(--iox-text)"
9655
+ },
9656
+ {
9657
+ "name": "badge-success-bg",
9658
+ "tier": "component",
9659
+ "type": "color",
9660
+ "group": "components",
9661
+ "value": "var(--iox-success-bg)"
9662
+ },
9663
+ {
9664
+ "name": "badge-success-ink",
9665
+ "tier": "component",
9666
+ "type": "color",
9667
+ "group": "components",
9668
+ "value": "var(--iox-success)"
9669
+ },
9670
+ {
9671
+ "name": "badge-warning-bg",
9672
+ "tier": "component",
9673
+ "type": "color",
9674
+ "group": "components",
9675
+ "value": "var(--iox-warning-bg)"
9676
+ },
9677
+ {
9678
+ "name": "badge-warning-ink",
9679
+ "tier": "component",
9680
+ "type": "color",
9681
+ "group": "components",
9682
+ "value": "var(--iox-warning)"
9683
+ },
9684
+ {
9685
+ "name": "badge-accent-bg",
9686
+ "tier": "component",
9687
+ "type": "color",
9688
+ "group": "components",
9689
+ "value": "var(--iox-accent)"
9690
+ },
9691
+ {
9692
+ "name": "badge-accent-ink",
9693
+ "tier": "component",
9694
+ "type": "color",
9695
+ "group": "components",
9696
+ "value": "var(--iox-accent-ink)"
9697
+ },
9698
+ {
9699
+ "name": "chip-border",
9700
+ "tier": "component",
9701
+ "type": "color",
9702
+ "group": "components",
9703
+ "value": "var(--iox-line-strong)"
9704
+ },
9705
+ {
9706
+ "name": "media-scrim",
9707
+ "tier": "component",
9708
+ "type": "color",
9709
+ "group": "components",
9710
+ "value": "rgba(0, 0, 0, 0.62)"
9711
+ },
9712
+ {
9713
+ "name": "media-scrim-ink",
9714
+ "tier": "component",
9715
+ "type": "color",
9716
+ "group": "components",
9717
+ "value": "#FFFFFF"
8904
9718
  }
8905
9719
  ]
8906
9720
  },
@@ -9020,6 +9834,8 @@ const SPEC_FLAVOR_PACKS = [
9020
9834
  "success-bg": "#C9F2D9",
9021
9835
  "danger": "#B3261E",
9022
9836
  "danger-bg": "#FFD9D2",
9837
+ "warning": "#7A4A00",
9838
+ "warning-bg": "#FBF0D9",
9023
9839
  "scrim": "rgba(10, 10, 10, 0.5)"
9024
9840
  },
9025
9841
  "dark": {
@@ -9044,6 +9860,8 @@ const SPEC_FLAVOR_PACKS = [
9044
9860
  "success-bg": "#0F2A1A",
9045
9861
  "danger": "#FF8A80",
9046
9862
  "danger-bg": "#3A1715",
9863
+ "warning": "#F2C46D",
9864
+ "warning-bg": "#2E2210",
9047
9865
  "scrim": "rgba(0, 0, 0, 0.6)"
9048
9866
  }
9049
9867
  },
@@ -9273,6 +10091,22 @@ const SPEC_FLAVOR_PACKS = [
9273
10091
  "value": "#FFD9D2",
9274
10092
  "dark": "#3A1715"
9275
10093
  },
10094
+ {
10095
+ "name": "warning",
10096
+ "tier": "semantic",
10097
+ "type": "color",
10098
+ "group": "colour",
10099
+ "value": "#7A4A00",
10100
+ "dark": "#F2C46D"
10101
+ },
10102
+ {
10103
+ "name": "warning-bg",
10104
+ "tier": "semantic",
10105
+ "type": "color",
10106
+ "group": "colour",
10107
+ "value": "#FBF0D9",
10108
+ "dark": "#2E2210"
10109
+ },
9276
10110
  {
9277
10111
  "name": "scrim",
9278
10112
  "tier": "semantic",
@@ -10239,6 +11073,104 @@ const SPEC_FLAVOR_PACKS = [
10239
11073
  "type": "color",
10240
11074
  "group": "components",
10241
11075
  "value": "var(--iox-line)"
11076
+ },
11077
+ {
11078
+ "name": "badge-radius",
11079
+ "tier": "component",
11080
+ "type": "radius",
11081
+ "group": "components",
11082
+ "value": "var(--iox-radius-pill)"
11083
+ },
11084
+ {
11085
+ "name": "badge-pad",
11086
+ "tier": "component",
11087
+ "type": "spacing",
11088
+ "group": "components",
11089
+ "value": "3px 10px"
11090
+ },
11091
+ {
11092
+ "name": "badge-size",
11093
+ "tier": "component",
11094
+ "type": "size",
11095
+ "group": "components",
11096
+ "value": "var(--iox-size-label)"
11097
+ },
11098
+ {
11099
+ "name": "badge-neutral-bg",
11100
+ "tier": "component",
11101
+ "type": "color",
11102
+ "group": "components",
11103
+ "value": "var(--iox-surface-2)"
11104
+ },
11105
+ {
11106
+ "name": "badge-neutral-ink",
11107
+ "tier": "component",
11108
+ "type": "color",
11109
+ "group": "components",
11110
+ "value": "var(--iox-text)"
11111
+ },
11112
+ {
11113
+ "name": "badge-success-bg",
11114
+ "tier": "component",
11115
+ "type": "color",
11116
+ "group": "components",
11117
+ "value": "var(--iox-success-bg)"
11118
+ },
11119
+ {
11120
+ "name": "badge-success-ink",
11121
+ "tier": "component",
11122
+ "type": "color",
11123
+ "group": "components",
11124
+ "value": "var(--iox-success)"
11125
+ },
11126
+ {
11127
+ "name": "badge-warning-bg",
11128
+ "tier": "component",
11129
+ "type": "color",
11130
+ "group": "components",
11131
+ "value": "var(--iox-warning-bg)"
11132
+ },
11133
+ {
11134
+ "name": "badge-warning-ink",
11135
+ "tier": "component",
11136
+ "type": "color",
11137
+ "group": "components",
11138
+ "value": "var(--iox-warning)"
11139
+ },
11140
+ {
11141
+ "name": "badge-accent-bg",
11142
+ "tier": "component",
11143
+ "type": "color",
11144
+ "group": "components",
11145
+ "value": "var(--iox-accent)"
11146
+ },
11147
+ {
11148
+ "name": "badge-accent-ink",
11149
+ "tier": "component",
11150
+ "type": "color",
11151
+ "group": "components",
11152
+ "value": "var(--iox-accent-ink)"
11153
+ },
11154
+ {
11155
+ "name": "chip-border",
11156
+ "tier": "component",
11157
+ "type": "color",
11158
+ "group": "components",
11159
+ "value": "var(--iox-line-strong)"
11160
+ },
11161
+ {
11162
+ "name": "media-scrim",
11163
+ "tier": "component",
11164
+ "type": "color",
11165
+ "group": "components",
11166
+ "value": "rgba(0, 0, 0, 0.62)"
11167
+ },
11168
+ {
11169
+ "name": "media-scrim-ink",
11170
+ "tier": "component",
11171
+ "type": "color",
11172
+ "group": "components",
11173
+ "value": "#FFFFFF"
10242
11174
  }
10243
11175
  ]
10244
11176
  }
@@ -10257,6 +11189,7 @@ const SPEC_CONTRAST = {
10257
11189
  "light:inverse-accent/inverse-bg": 8.34,
10258
11190
  "light:success/success-bg": 5.77,
10259
11191
  "light:danger/danger-bg": 5.58,
11192
+ "light:warning/warning-bg": 6.61,
10260
11193
  "light:accent-ink/accent-hover": 7.43,
10261
11194
  "light:text-muted/surface-2": 5.79,
10262
11195
  "light:text/surface-2": 17.6,
@@ -10280,6 +11213,7 @@ const SPEC_CONTRAST = {
10280
11213
  "dark:inverse-accent/inverse-bg": 5.14,
10281
11214
  "dark:success/success-bg": 8,
10282
11215
  "dark:danger/danger-bg": 7,
11216
+ "dark:warning/warning-bg": 9.53,
10283
11217
  "dark:accent-ink/accent-hover": 9.37,
10284
11218
  "dark:text-muted/surface-2": 6.28,
10285
11219
  "dark:text/surface-2": 14.84,
@@ -10305,6 +11239,7 @@ const SPEC_CONTRAST = {
10305
11239
  "light:inverse-accent/inverse-bg": 7.61,
10306
11240
  "light:success/success-bg": 5.26,
10307
11241
  "light:danger/danger-bg": 5.88,
11242
+ "light:warning/warning-bg": 6.61,
10308
11243
  "light:accent-ink/accent-hover": 8.41,
10309
11244
  "light:text-muted/surface-2": 5.33,
10310
11245
  "light:text/surface-2": 14.21,
@@ -10328,6 +11263,7 @@ const SPEC_CONTRAST = {
10328
11263
  "dark:inverse-accent/inverse-bg": 5.15,
10329
11264
  "dark:success/success-bg": 8.41,
10330
11265
  "dark:danger/danger-bg": 7.73,
11266
+ "dark:warning/warning-bg": 9.53,
10331
11267
  "dark:accent-ink/accent-hover": 10.41,
10332
11268
  "dark:text-muted/surface-2": 6.74,
10333
11269
  "dark:text/surface-2": 14.32,
@@ -10353,6 +11289,7 @@ const SPEC_CONTRAST = {
10353
11289
  "light:inverse-accent/inverse-bg": 8.32,
10354
11290
  "light:success/success-bg": 5.77,
10355
11291
  "light:danger/danger-bg": 5.58,
11292
+ "light:warning/warning-bg": 6.61,
10356
11293
  "light:accent-ink/accent-hover": 7.31,
10357
11294
  "light:text-muted/surface-2": 5.5,
10358
11295
  "light:text/surface-2": 17.79,
@@ -10376,6 +11313,7 @@ const SPEC_CONTRAST = {
10376
11313
  "dark:inverse-accent/inverse-bg": 5.46,
10377
11314
  "dark:success/success-bg": 9.37,
10378
11315
  "dark:danger/danger-bg": 6.9,
11316
+ "dark:warning/warning-bg": 9.53,
10379
11317
  "dark:accent-ink/accent-hover": 5.83,
10380
11318
  "dark:text-muted/surface-2": 5.79,
10381
11319
  "dark:text/surface-2": 16.53,
@@ -10398,6 +11336,7 @@ const SPEC_CONTRAST = {
10398
11336
  "light:inverse-accent/inverse-bg": 6.88,
10399
11337
  "light:success/success-bg": 5.76,
10400
11338
  "light:danger/danger-bg": 5.55,
11339
+ "light:warning/warning-bg": 6.61,
10401
11340
  "light:accent-ink/accent-hover": 6.76,
10402
11341
  "light:text-muted/surface-2": 6.51,
10403
11342
  "light:text/surface-2": 18.2,
@@ -10418,6 +11357,7 @@ const SPEC_CONTRAST = {
10418
11357
  "dark:inverse-accent/inverse-bg": 4.79,
10419
11358
  "dark:success/success-bg": 8.02,
10420
11359
  "dark:danger/danger-bg": 7,
11360
+ "dark:warning/warning-bg": 9.53,
10421
11361
  "dark:accent-ink/accent-hover": 8.44,
10422
11362
  "dark:text-muted/surface-2": 6.54,
10423
11363
  "dark:text/surface-2": 14.41,
@@ -10440,6 +11380,7 @@ const SPEC_CONTRAST = {
10440
11380
  "light:inverse-accent/inverse-bg": 7.74,
10441
11381
  "light:success/success-bg": 5.59,
10442
11382
  "light:danger/danger-bg": 5.14,
11383
+ "light:warning/warning-bg": 6.61,
10443
11384
  "light:accent-ink/accent-hover": 7.86,
10444
11385
  "light:text-muted/surface-2": 8.15,
10445
11386
  "light:text/surface-2": 14.84,
@@ -10463,6 +11404,7 @@ const SPEC_CONTRAST = {
10463
11404
  "dark:inverse-accent/inverse-bg": 4.97,
10464
11405
  "dark:success/success-bg": 8.02,
10465
11406
  "dark:danger/danger-bg": 7.66,
11407
+ "dark:warning/warning-bg": 9.53,
10466
11408
  "dark:accent-ink/accent-hover": 8.79,
10467
11409
  "dark:text-muted/surface-2": 8.43,
10468
11410
  "dark:text/surface-2": 11.1,
@@ -10488,6 +11430,7 @@ const SPEC_CONTRAST = {
10488
11430
  "light:inverse-accent/inverse-bg": 13.71,
10489
11431
  "light:success/success-bg": 5.41,
10490
11432
  "light:danger/danger-bg": 5.01,
11433
+ "light:warning/warning-bg": 6.61,
10491
11434
  "light:accent-ink/accent-hover": 7.72,
10492
11435
  "light:text-muted/surface-2": 7.52,
10493
11436
  "light:text/surface-2": 13.71,
@@ -10511,6 +11454,7 @@ const SPEC_CONTRAST = {
10511
11454
  "dark:inverse-accent/inverse-bg": 5.59,
10512
11455
  "dark:success/success-bg": 7.98,
10513
11456
  "dark:danger/danger-bg": 7,
11457
+ "dark:warning/warning-bg": 9.53,
10514
11458
  "dark:accent-ink/accent-hover": 9.2,
10515
11459
  "dark:text-muted/surface-2": 7.59,
10516
11460
  "dark:text/surface-2": 13.12,
@@ -11323,9 +12267,12 @@ function previewElementStyleAdoption(tree, ctx) {
11323
12267
  * - the element-style MARKER `iox-es iox-es-<id>` (design-system §3b-bis) — component CSS carrying
11324
12268
  * the system look is scoped to it, so a node saved before DS2 keeps its pre-DS2 look;
11325
12269
  * - the section colour scheme `iox-scheme-<id>` (§3c) for a non-default `colorScheme` — the class
11326
- * `compileSchemeCss` re-declares tokens on, so everything inside re-resolves.
12270
+ * `compileSchemeCss` re-declares tokens on, so everything inside re-resolves;
12271
+ * - the composite ROLE `iox-role-<role>` (`card.media` → `iox-role-card-media`; composite-components
12272
+ * plan §3, Card v2) — what the shared CSS keys a part's structural rules on (the badge's corner, the
12273
+ * card's stretched link), so a role is never a renderer's private knowledge.
11327
12274
  *
11328
- * Renderers read `elementStyle` and `colorScheme` for exactly this and nothing else.
12275
+ * Renderers read `elementStyle`, `colorScheme` and `role` for exactly this and nothing else.
11329
12276
  */
11330
12277
  /** The section colour schemes — the contract's `schemes` keys. */
11331
12278
  var ColorScheme;
@@ -11343,11 +12290,18 @@ const COLOR_SCHEME_TYPES = ['Section', 'Container', 'LinkedContainer'];
11343
12290
  const COLOR_SCHEMES = Object.keys(SPEC_SCHEMES).map(id => ({ id, label: SPEC_SCHEMES[id].label }));
11344
12291
  const SCHEME_IDS$1 = new Set(Object.keys(SPEC_SCHEMES));
11345
12292
  const SCHEME_PREFIX = 'iox-scheme-';
12293
+ const ROLE_PREFIX = 'iox-role-';
12294
+ /** A role is dot-separated lowercase words (`card`, `card.title`) — anything else never reaches a class. */
12295
+ const ROLE_SHAPE = /^[a-z][a-z0-9-]*(\.[a-z][a-z0-9-]*)*$/;
11346
12296
  const MARKER_PREFIX = `${ELEMENT_STYLE_MARKER_CLASS}-`;
11347
12297
  /** `iox-scheme-<id>` for a known NON-default scheme, else null — an unknown id never reaches a class attribute. */
11348
12298
  function colorSchemeClass(id) {
11349
12299
  return typeof id === 'string' && id !== ColorScheme.Default && SCHEME_IDS$1.has(id) ? `${SCHEME_PREFIX}${id}` : null;
11350
12300
  }
12301
+ /** `iox-role-<role>` for a well-formed composite role, else null. */
12302
+ function roleClass(role) {
12303
+ return typeof role === 'string' && ROLE_SHAPE.test(role) ? `${ROLE_PREFIX}${role.replace(/\./g, '-')}` : null;
12304
+ }
11351
12305
  /** A node's `colorScheme`, from `props` (serialized) or its trait (builder). */
11352
12306
  function colorSchemeOf(node) {
11353
12307
  if (!node)
@@ -11365,10 +12319,10 @@ function hasElementStyleMarker(node) {
11365
12319
  /** The classes a node renders: `'iox-es iox-es-card iox-scheme-inverse'`, or `''` for none. */
11366
12320
  function nodeDesignClasses(node) {
11367
12321
  const marker = elementStyleClass(node?.elementStyle);
11368
- return [marker ? `${ELEMENT_STYLE_MARKER_CLASS} ${marker}` : '', colorSchemeClass(colorSchemeOf(node)) ?? '']
12322
+ return [marker ? `${ELEMENT_STYLE_MARKER_CLASS} ${marker}` : '', colorSchemeClass(colorSchemeOf(node)) ?? '', roleClass(node?.role) ?? '']
11369
12323
  .filter(Boolean).join(' ');
11370
12324
  }
11371
- const isDesignClass = (c) => c === ELEMENT_STYLE_MARKER_CLASS || c.startsWith(MARKER_PREFIX) || c.startsWith(SCHEME_PREFIX);
12325
+ const isDesignClass = (c) => c === ELEMENT_STYLE_MARKER_CLASS || c.startsWith(MARKER_PREFIX) || c.startsWith(SCHEME_PREFIX) || c.startsWith(ROLE_PREFIX);
11372
12326
  /** Make an element's design classes match the node — the live switch on the canvas and the
11373
12327
  * component path's one-time stamp. Removes stale ones; touches no other class. */
11374
12328
  function syncNodeDesignClasses(el, node) {
@@ -11442,6 +12396,8 @@ function emptyImageSrc(node, src, label) {
11442
12396
  */
11443
12397
  var LinkType;
11444
12398
  (function (LinkType) {
12399
+ /** Links nowhere — a Heading's default; "Link the whole card" (Card v2) turns its title's link on. */
12400
+ LinkType["None"] = "none";
11445
12401
  LinkType["External"] = "external";
11446
12402
  LinkType["Page"] = "page";
11447
12403
  })(LinkType || (LinkType = {}));
@@ -11458,6 +12414,26 @@ function buttonBlockHref(props, pageHref = route => route) {
11458
12414
  const href = props.linkType === LinkType.Page ? pageHref(String(props.pageRoute ?? '')) : String(props.href ?? '');
11459
12415
  return href || null;
11460
12416
  }
12417
+ /** The class of the `<a>` a linked Heading renders — the Card v2 stretched link keys on it (iox-design.css:
12418
+ * the card is the click target, its buttons sit above, the focus ring is drawn on the card). */
12419
+ const CARD_LINK_CLASS = 'iox-card-link';
12420
+ /** On the editing canvas the anchor carries this, so the stretched `::after` is off and every part of the
12421
+ * card stays clickable (board 8). */
12422
+ const CANVAS_LINK_ATTRIBUTE = 'data-iox-canvas';
12423
+ /**
12424
+ * The href a linked Heading renders (Card v2: the card's title IS its link), or `null` when it links
12425
+ * nowhere — `none`, or a link with no target yet (the title then renders as plain words). A page link goes
12426
+ * through `pageHref` exactly as a ButtonBlock's does.
12427
+ */
12428
+ function headingHref(props, pageHref = route => route) {
12429
+ if (props.linkType === LinkType.Page) {
12430
+ const route = String(props.pageRoute ?? '');
12431
+ return route ? pageHref(route) || null : null;
12432
+ }
12433
+ if (props.linkType === LinkType.External)
12434
+ return String(props.url ?? '').trim() || null;
12435
+ return null;
12436
+ }
11461
12437
 
11462
12438
  function parseHexColor(hex) {
11463
12439
  const m = /^#?([0-9a-f]{3}|[0-9a-f]{6})$/i.exec((hex ?? '').trim());
@@ -12085,12 +13061,15 @@ function preTintAccentGrounds(palette) {
12085
13061
 
12086
13062
  const FORM_PARTS = SPEC_CONTRAST_AUDIT.formParts;
12087
13063
  const INK_SCOPES = SPEC_INK_SCOPES;
13064
+ const SCRIMS = SPEC_CONTRAST_AUDIT.scrims;
13065
+ const SCRIM_STYLES = new Set(SCRIMS.map(s => s.style));
13066
+ /** What a scrim block's children read, beside its own ink (each pinned to it by the block's ink scope). */
13067
+ const SCRIM_HELD_TOKENS = ['heading-color', 'eyebrow-color', 'text-muted'];
12088
13068
  const SCHEME_IDS = Object.keys(SPEC_SCHEMES);
12089
13069
  const CONTAINER_GROUPS = new Set(['Layout', 'Overlays']);
12090
13070
  const NOT_CONTENT = new Set(['rule', 'media']);
12091
13071
  const SECTION_STYLE = 'section';
12092
13072
  const ICON_STYLE = 'icon';
12093
- const BUTTON_GROUP = 'Buttons';
12094
13073
  const GLYPH_GROUP = 'Media';
12095
13074
  const FORMS_GROUP = 'Forms';
12096
13075
  const DEFAULT_SCHEME = 'default';
@@ -12123,7 +13102,7 @@ function auditDesignContrast(rows, mode) {
12123
13102
  ...styles.filter(e => CONTAINER_GROUPS.has(e.group) && ownStyle(e)['backgroundColor'] && e.id !== SECTION_STYLE),
12124
13103
  ];
12125
13104
  const content = styles.filter(e => !CONTAINER_GROUPS.has(e.group) && (ownStyle(e)['color'] || ownStyle(e)['backgroundColor'])
12126
- && e.group !== FORMS_GROUP && !NOT_CONTENT.has(e.id));
13105
+ && e.group !== FORMS_GROUP && !NOT_CONTENT.has(e.id) && !SCRIM_STYLES.has(e.id));
12127
13106
  const notices = styles.filter(e => e.group === FORMS_GROUP && ownStyle(e)['color']);
12128
13107
  const section = ownStyle(byId.get(SECTION_STYLE));
12129
13108
  const iconColour = ownStyle(byId.get(ICON_STYLE))['color'];
@@ -12161,7 +13140,8 @@ function auditDesignContrast(rows, mode) {
12161
13140
  const under = fill.length && opaque(fill) ? overAll(fill, bgs) : bgs;
12162
13141
  const ink = s['color'] ? parseCssColour(resolveIn(values, s['color']), boxInk) : boxInk;
12163
13142
  check(e.id, state === 'base' ? (glyph ? 'glyph' : 'text') : `${state} text`, ink, under, glyph ? WCAG_AA_UI : WCAG_AA_TEXT);
12164
- if (state === 'base' && e.group === BUTTON_GROUP) {
13143
+ // What a filled element HOLDS (inkScopes): a button's or a badge's icon reads its ink.
13144
+ if (state === 'base' && INK_SCOPES.some(sc => sc.styles.includes(e.id))) {
12165
13145
  check(e.id, 'icon', parseCssColour(resolveIn(inkScoped(values, e.id), iconColour), ink), under, WCAG_AA_UI);
12166
13146
  const focus = e.focus?.['boxShadow'];
12167
13147
  if (focus)
@@ -12197,8 +13177,36 @@ function auditDesignContrast(rows, mode) {
12197
13177
  }
12198
13178
  }
12199
13179
  }
13180
+ for (const scrim of SCRIMS)
13181
+ findings.push(...scrimFindings(rows, mode, scrim, byId.get(scrim.style)));
12200
13182
  return findings;
12201
13183
  }
13184
+ /** Text over an image: the block's ink — and every token its ink scope pins to it — over the scrim
13185
+ * composited on the WORST-CASE image, in the scheme the block wears. Never over the section: the image
13186
+ * covers it. */
13187
+ function scrimFindings(rows, mode, scrim, style) {
13188
+ const values = resolveSchemeTokenValues(rows, mode, scrim.scheme);
13189
+ const layer = parseCssColour(values[scrim.token]);
13190
+ const image = parseCssColour(scrim.image);
13191
+ if (!style || !layer || !image)
13192
+ return [];
13193
+ const bg = quantizeRgb(compositeOver(layer, image));
13194
+ const ink = parseCssColour(resolveIn(values, ownStyle(style)['color']));
13195
+ const held = inkScoped(values, scrim.style);
13196
+ const parts = [['text', ink], ...SCRIM_HELD_TOKENS.map((t) => [t, parseCssColour(held[t], ink)])];
13197
+ const out = [];
13198
+ for (const [part, fg] of parts) {
13199
+ if (!fg)
13200
+ continue;
13201
+ const f = quantizeRgb(fg.a < 1 ? compositeOver(fg, bg) : fg);
13202
+ const ratio = wcagContrastRatio(f, bg);
13203
+ out.push({
13204
+ scheme: scrim.scheme, container: scrim.style, element: scrim.style, part: `${part} over a ${scrim.image} image`,
13205
+ fg: toHexColor(f), bg: toHexColor(bg), ratio: Math.round(ratio * 100) / 100, min: WCAG_AA_TEXT, pass: ratio >= WCAG_AA_TEXT - 1e-9,
13206
+ });
13207
+ }
13208
+ return out;
13209
+ }
12202
13210
  /** The pairs the Design ▸ Colour tab lists for the CURRENT brand (Board 6 + DS9): what a filled button
12203
13211
  * shows, and the link on every section scheme — each the worst case on the section itself. */
12204
13212
  var ColourCheckId;
@@ -13466,5 +14474,5 @@ function planFontFamilyRemoval(existing, previous, family) {
13466
14474
  * Generated bundle index. Do not edit.
13467
14475
  */
13468
14476
 
13469
- export { ACCENT_TOKEN_NAMES, AdoptOutcome, AdoptSkipReason, BUTTON_VARIANT_TO_STYLE, COLOR_SCHEMES, COLOR_SCHEME_TRAIT, COLOR_SCHEME_TYPES, ColorScheme, ColourCheckId, DEFAULT_FLAVOR_ID, DESIGN_TOKEN_GROUPS, DESIGN_TOKEN_TIERS, DESIGN_TOKEN_TYPES, DesignConfigKey, ELEMENT_STYLES, ELEMENT_STYLE_MARKER_CLASS, ELEMENT_STYLE_STATES, EMPTY_IMAGE_ATTRIBUTE, EMPTY_IMAGE_SRC, ElementStyleState, FLAVOR_SPEC_VERSION, FONT_CATALOG, FONT_FAMILY_TOKENS, FONT_FILE_ACCEPT, FONT_FILE_EXTENSIONS, FONT_FILE_FORMATS, FONT_STYLES, FONT_WEIGHTS, FontUploadError, GOOGLE_FONTS_CSS_ORIGIN, GOOGLE_FONTS_FILE_ORIGIN, HELD_CONTRAST, LinkType, MAX_FONT_FILE_BYTES, NEW_NODE_STYLE_DEFAULTS, OwnedTraitLink, PALETTE_PRESETS, PRE_DS2_FLAVOR_DEFAULTS, PRE_TINT_DEFAULT, REDUCED_MOTION_OVERRIDES, REDUCED_TRANSPARENCY_OVERRIDES, REVERT_WINDOW_MS, SPEC_A11Y, SPEC_AXES, SPEC_BUTTON_VARIANT_TO_STYLE, SPEC_CONTRAST, SPEC_CONTRAST_AUDIT, SPEC_DEFAULT_ELEMENT_STYLE, SPEC_ELEMENT_STYLES, SPEC_FIELD_CLASS_BASELINE, SPEC_FLAVORS, SPEC_FLAVOR_PACKS, SPEC_FONTS, SPEC_FONT_ROLES, SPEC_INK_SCOPES, SPEC_LEGACY_ALIASES, SPEC_PALETTE_PRESETS, SPEC_SCHEMES, SPEC_SPRINGS, SPEC_TIERS, SPEC_TIER_IDS, SPEC_TOKEN_TYPES, SUPERSEDED_STYLE_VALUES, SWISS_FLAVOR, TINT_FULL_CHROMA, TINT_IDS, TINT_LEVELS, TINT_OWN_HUE_CHROMA, TINT_TURN_CHROMA, USER_TOKEN_SOURCE, WCAG_AA_TEXT, WCAG_AA_UI, adoptElementStyles, adoptionStyleFor, apcaLc, applyElementStyle, applyHeadingLevelRule, atLightness, atLightnessMaxChroma, auditDesignContrast, buildFlavorTokens, buildFontFaceCss, buttonBlockHref, catalogFontId, checkFontWeight, choicesForPack, colorSchemeClass, colorSchemeOf, colourTabChecks, compareFontWeights, compileSchemeCss, compileTokenCss, compileTokenCssBlocks, compositeOver, cssString, defaultDesignChoices, defaultElementStyleFor, deriveAccentTokens, deriveBrandTokens, designBaseline, designConfigEntries, designModeOf, designTokenRepairs, designTokenRows, elementStyleById, elementStyleClass, elementStylesFor, emptyImageLabelSrc, emptyImagePlaceholder, emptyImageSrc, ensureAlpha, ensureContrast, flavorColours, flavorPackById, flavorSeedWrites, flavorSourceStamp, fontFamilyKey, fontFileName, fontFileStem, fontFormatOf, fontPreloads, fontRoleReferences, fontStackWithout, fontWeightCovers, fontWeightRange, fontWeightValue, fontsForTokens, formatFontFamilies, formatFontFamily, formatFontWeight, googleFontHref, groupFontFamilies, hasElementStyleMarker, inSrgbGamut, isDesignTokenGroup, isDesignTokenTier, isDesignTokenType, isFontWeightRange, isRetiredFlavorId, legacyDesignTokenRows, legacyFlavorTokens, legacyRuleTokenReferences, matchFontWeight, missingDesignRows, missingFontRoles, nodeDesignClasses, normalizeFontStyle, normalizeFontWeight, normalizeFontWeightValue, oklabToRgb, ownedTraitStatus, ownedTraitsOf, packDesignChoices, paintColours, parseCssColour, parseFontFamilies, parseFontWeight, parseHexColor, planDesignApply, planDesignRevert, planFlavorRevert, planFlavorSeed, planFontFamilyRemoval, planSwissMigration, preTintAccentGrounds, previewElementStyleAdoption, previewFontWeight, quantizeRgb, readDesignConfig, readOwnedTrait, relativeLuminance, resolveDesignChoices, resolveSchemeTokenValues, resolveTokenReferences, resolveTokenValues, revertAvailable, rgbToOklab, ringColour, sameDesignChoices, specTokenNames, splitTopLevel, springToLinear, stackNamesFamily, styleKeyToKebab, switchElementStyle, syncNodeDesignClasses, toHexColor, tokenReferences, tokensToDarkVarMap, tokensToVarMap, unknownTokenReferences, untouchedSeedRow, userFontStack, validateFlavorPack, wcagContrastRatio, writeOwnedTrait };
14477
+ export { ACCENT_TOKEN_NAMES, AdoptOutcome, AdoptSkipReason, BUTTON_VARIANT_TO_STYLE, CANVAS_LINK_ATTRIBUTE, CARD_LINK_CLASS, COLOR_SCHEMES, COLOR_SCHEME_TRAIT, COLOR_SCHEME_TYPES, ColorScheme, ColourCheckId, DEFAULT_FLAVOR_ID, DESIGN_TOKEN_GROUPS, DESIGN_TOKEN_TIERS, DESIGN_TOKEN_TYPES, DesignConfigKey, ELEMENT_STYLES, ELEMENT_STYLE_MARKER_CLASS, ELEMENT_STYLE_STATES, EMPTY_IMAGE_ATTRIBUTE, EMPTY_IMAGE_SRC, ElementStyleState, FLAVOR_SPEC_VERSION, FONT_CATALOG, FONT_FAMILY_TOKENS, FONT_FILE_ACCEPT, FONT_FILE_EXTENSIONS, FONT_FILE_FORMATS, FONT_STYLES, FONT_WEIGHTS, FontUploadError, GOOGLE_FONTS_CSS_ORIGIN, GOOGLE_FONTS_FILE_ORIGIN, HELD_CONTRAST, LinkType, MAX_FONT_FILE_BYTES, NEW_NODE_STYLE_DEFAULTS, OwnedTraitLink, PALETTE_PRESETS, PRE_DS2_FLAVOR_DEFAULTS, PRE_TINT_DEFAULT, REDUCED_MOTION_OVERRIDES, REDUCED_TRANSPARENCY_OVERRIDES, REVERT_WINDOW_MS, SPEC_A11Y, SPEC_AXES, SPEC_BUTTON_VARIANT_TO_STYLE, SPEC_CONTRAST, SPEC_CONTRAST_AUDIT, SPEC_DEFAULT_ELEMENT_STYLE, SPEC_ELEMENT_STYLES, SPEC_FIELD_CLASS_BASELINE, SPEC_FLAVORS, SPEC_FLAVOR_PACKS, SPEC_FONTS, SPEC_FONT_ROLES, SPEC_INK_SCOPES, SPEC_LEGACY_ALIASES, SPEC_PALETTE_PRESETS, SPEC_SCHEMES, SPEC_SPRINGS, SPEC_TIERS, SPEC_TIER_IDS, SPEC_TOKEN_TYPES, SUPERSEDED_STYLE_VALUES, SWISS_FLAVOR, TINT_FULL_CHROMA, TINT_IDS, TINT_LEVELS, TINT_OWN_HUE_CHROMA, TINT_TURN_CHROMA, USER_TOKEN_SOURCE, WCAG_AA_TEXT, WCAG_AA_UI, adoptElementStyles, adoptionStyleFor, apcaLc, applyElementStyle, applyHeadingLevelRule, atLightness, atLightnessMaxChroma, auditDesignContrast, buildFlavorTokens, buildFontFaceCss, buttonBlockHref, catalogFontId, checkFontWeight, choicesForPack, colorSchemeClass, colorSchemeOf, colourTabChecks, compareFontWeights, compileSchemeCss, compileTokenCss, compileTokenCssBlocks, compositeOver, cssString, defaultDesignChoices, defaultElementStyleFor, deriveAccentTokens, deriveBrandTokens, designBaseline, designConfigEntries, designModeOf, designTokenRepairs, designTokenRows, elementStyleById, elementStyleClass, elementStylesFor, emptyImageLabelSrc, emptyImagePlaceholder, emptyImageSrc, ensureAlpha, ensureContrast, flavorColours, flavorPackById, flavorSeedWrites, flavorSourceStamp, fontFamilyKey, fontFileName, fontFileStem, fontFormatOf, fontPreloads, fontRoleReferences, fontStackWithout, fontWeightCovers, fontWeightRange, fontWeightValue, fontsForTokens, formatFontFamilies, formatFontFamily, formatFontWeight, googleFontHref, groupFontFamilies, hasElementStyleMarker, headingHref, inSrgbGamut, isDesignTokenGroup, isDesignTokenTier, isDesignTokenType, isFontWeightRange, isRetiredFlavorId, legacyDesignTokenRows, legacyFlavorTokens, legacyRuleTokenReferences, matchFontWeight, missingDesignRows, missingFontRoles, nodeDesignClasses, normalizeFontStyle, normalizeFontWeight, normalizeFontWeightValue, oklabToRgb, ownedTraitStatus, ownedTraitsOf, packDesignChoices, paintColours, parseCssColour, parseFontFamilies, parseFontWeight, parseHexColor, planDesignApply, planDesignRevert, planFlavorRevert, planFlavorSeed, planFontFamilyRemoval, planSwissMigration, preTintAccentGrounds, previewElementStyleAdoption, previewFontWeight, quantizeRgb, readDesignConfig, readOwnedTrait, relativeLuminance, resolveDesignChoices, resolveSchemeTokenValues, resolveTokenReferences, resolveTokenValues, revertAvailable, rgbToOklab, ringColour, roleClass, sameDesignChoices, specTokenNames, splitTopLevel, springToLinear, stackNamesFamily, styleKeyToKebab, switchElementStyle, syncNodeDesignClasses, toHexColor, tokenReferences, tokensToDarkVarMap, tokensToVarMap, unknownTokenReferences, untouchedSeedRow, userFontStack, validateFlavorPack, wcagContrastRatio, writeOwnedTrait };
13470
14478
  //# sourceMappingURL=vectoriox-iox-ui-design-core.mjs.map