@vectoriox/iox-ui 5.45.0 → 5.47.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/design-core/index.d.ts +191 -77
- package/fesm2022/vectoriox-iox-ui-design-core.mjs +258 -106
- package/fesm2022/vectoriox-iox-ui-design-core.mjs.map +1 -1
- package/fesm2022/vectoriox-iox-ui-generation-core.mjs +224 -78
- package/fesm2022/vectoriox-iox-ui-generation-core.mjs.map +1 -1
- package/fesm2022/vectoriox-iox-ui-harness-core.mjs +4109 -0
- package/fesm2022/vectoriox-iox-ui-harness-core.mjs.map +1 -0
- package/generation-core/index.d.ts +145 -17
- package/harness-core/index.d.ts +2479 -0
- package/harness-core/package.json +3 -0
- package/package.json +5 -1
- package/src/design-core/design-apply.ts +17 -4
- package/src/design-core/design-token.model.ts +2 -0
- package/src/design-core/flavor-spec.generated.ts +190 -91
- package/src/design-core/fonts.ts +62 -12
- package/src/generation-core/public-api.ts +1 -0
- package/src/generation-core/shape-check.ts +92 -0
- package/src/generation-core/site-spec.generated.ts +131 -2
- package/src/generation-core/validate-site-plan.ts +9 -62
- package/src/harness-core/business-types.ts +141 -0
- package/src/harness-core/harness-spec.generated.ts +3528 -0
- package/src/harness-core/lint.ts +94 -0
- package/src/harness-core/look.ts +32 -0
- package/src/harness-core/motion.ts +67 -0
- package/src/harness-core/needs.ts +42 -0
- package/src/harness-core/prompt-context.ts +91 -0
- package/src/harness-core/public-api.ts +18 -0
- package/src/harness-core/rank.ts +226 -0
- package/src/harness-core/site-analysis.ts +180 -0
|
@@ -2406,6 +2406,24 @@ const SPEC_STYLE_PRESETS = [
|
|
|
2406
2406
|
"slice": false
|
|
2407
2407
|
}
|
|
2408
2408
|
];
|
|
2409
|
+
const SPEC_SCRIPTS = {
|
|
2410
|
+
"hebrew": {
|
|
2411
|
+
"locales": [
|
|
2412
|
+
"he"
|
|
2413
|
+
],
|
|
2414
|
+
"families": [
|
|
2415
|
+
"Heebo",
|
|
2416
|
+
"Assistant",
|
|
2417
|
+
"Rubik",
|
|
2418
|
+
"Frank Ruhl Libre",
|
|
2419
|
+
"Bellefair",
|
|
2420
|
+
"Varela Round",
|
|
2421
|
+
"Secular One",
|
|
2422
|
+
"IBM Plex Sans Hebrew",
|
|
2423
|
+
"Open Sans"
|
|
2424
|
+
]
|
|
2425
|
+
}
|
|
2426
|
+
};
|
|
2409
2427
|
const SPEC_FONTS = {
|
|
2410
2428
|
"Inter": "Inter:wght@300;400;500;600;700",
|
|
2411
2429
|
"Inter Tight": "Inter+Tight:wght@500;600;700",
|
|
@@ -2436,7 +2454,15 @@ const SPEC_FONTS = {
|
|
|
2436
2454
|
"Raleway": "Raleway:wght@300;400;500;600;700",
|
|
2437
2455
|
"Playfair Display": "Playfair+Display:ital,wght@0,400;0,500;0,700;1,400",
|
|
2438
2456
|
"Oswald": "Oswald:wght@300;400;500;600;700",
|
|
2439
|
-
"Ubuntu": "Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,400"
|
|
2457
|
+
"Ubuntu": "Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,400",
|
|
2458
|
+
"Heebo": "Heebo:wght@400;500;600;700;800",
|
|
2459
|
+
"Assistant": "Assistant:wght@400;500;600;700;800",
|
|
2460
|
+
"Rubik": "Rubik:wght@400;500;600;700;800",
|
|
2461
|
+
"Frank Ruhl Libre": "Frank+Ruhl+Libre:wght@400;500;700",
|
|
2462
|
+
"Bellefair": "Bellefair",
|
|
2463
|
+
"Varela Round": "Varela+Round",
|
|
2464
|
+
"Secular One": "Secular+One",
|
|
2465
|
+
"IBM Plex Sans Hebrew": "IBM+Plex+Sans+Hebrew:wght@400;500;600;700"
|
|
2440
2466
|
};
|
|
2441
2467
|
const SPEC_SCHEMES = {
|
|
2442
2468
|
"default": {
|
|
@@ -3913,9 +3939,9 @@ const SPEC_FLAVOR_PACKS = [
|
|
|
3913
3939
|
"id": "inter-tight",
|
|
3914
3940
|
"label": "Inter Tight + Inter",
|
|
3915
3941
|
"tokens": {
|
|
3916
|
-
"font-display": "'Inter Tight', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
3917
|
-
"font-body": "'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
3918
|
-
"font-label": "'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
3942
|
+
"font-display": "'Inter Tight', 'Heebo', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
3943
|
+
"font-body": "'Inter', 'Heebo', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
3944
|
+
"font-label": "'Inter', 'Heebo', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
3919
3945
|
"font-mono": "'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace",
|
|
3920
3946
|
"weight-display": "600",
|
|
3921
3947
|
"weight-label": "600",
|
|
@@ -3925,15 +3951,19 @@ const SPEC_FLAVOR_PACKS = [
|
|
|
3925
3951
|
"families": [
|
|
3926
3952
|
"Inter Tight",
|
|
3927
3953
|
"Inter"
|
|
3928
|
-
]
|
|
3954
|
+
],
|
|
3955
|
+
"hebrew": {
|
|
3956
|
+
"display": "Heebo",
|
|
3957
|
+
"body": "Heebo"
|
|
3958
|
+
}
|
|
3929
3959
|
},
|
|
3930
3960
|
{
|
|
3931
3961
|
"id": "manrope",
|
|
3932
3962
|
"label": "Manrope + Inter",
|
|
3933
3963
|
"tokens": {
|
|
3934
|
-
"font-display": "'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
3935
|
-
"font-body": "'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
3936
|
-
"font-label": "'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
3964
|
+
"font-display": "'Manrope', 'Heebo', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
3965
|
+
"font-body": "'Inter', 'Heebo', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
3966
|
+
"font-label": "'Inter', 'Heebo', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
3937
3967
|
"font-mono": "'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace",
|
|
3938
3968
|
"weight-display": "700",
|
|
3939
3969
|
"weight-label": "600",
|
|
@@ -3943,15 +3973,19 @@ const SPEC_FLAVOR_PACKS = [
|
|
|
3943
3973
|
"families": [
|
|
3944
3974
|
"Manrope",
|
|
3945
3975
|
"Inter"
|
|
3946
|
-
]
|
|
3976
|
+
],
|
|
3977
|
+
"hebrew": {
|
|
3978
|
+
"display": "Heebo",
|
|
3979
|
+
"body": "Heebo"
|
|
3980
|
+
}
|
|
3947
3981
|
},
|
|
3948
3982
|
{
|
|
3949
3983
|
"id": "plex",
|
|
3950
3984
|
"label": "IBM Plex Sans",
|
|
3951
3985
|
"tokens": {
|
|
3952
|
-
"font-display": "'IBM Plex Sans', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
3953
|
-
"font-body": "'IBM Plex Sans', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
3954
|
-
"font-label": "'IBM Plex Sans', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
3986
|
+
"font-display": "'IBM Plex Sans', 'IBM Plex Sans Hebrew', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
3987
|
+
"font-body": "'IBM Plex Sans', 'IBM Plex Sans Hebrew', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
3988
|
+
"font-label": "'IBM Plex Sans', 'IBM Plex Sans Hebrew', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
3955
3989
|
"font-mono": "'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace",
|
|
3956
3990
|
"weight-display": "600",
|
|
3957
3991
|
"weight-label": "600",
|
|
@@ -3960,7 +3994,11 @@ const SPEC_FLAVOR_PACKS = [
|
|
|
3960
3994
|
},
|
|
3961
3995
|
"families": [
|
|
3962
3996
|
"IBM Plex Sans"
|
|
3963
|
-
]
|
|
3997
|
+
],
|
|
3998
|
+
"hebrew": {
|
|
3999
|
+
"display": "IBM Plex Sans Hebrew",
|
|
4000
|
+
"body": "IBM Plex Sans Hebrew"
|
|
4001
|
+
}
|
|
3964
4002
|
}
|
|
3965
4003
|
],
|
|
3966
4004
|
"palette": {
|
|
@@ -4291,21 +4329,21 @@ const SPEC_FLAVOR_PACKS = [
|
|
|
4291
4329
|
"tier": "semantic",
|
|
4292
4330
|
"type": "font",
|
|
4293
4331
|
"group": "type",
|
|
4294
|
-
"value": "'Inter Tight', system-ui, -apple-system, 'Segoe UI', sans-serif"
|
|
4332
|
+
"value": "'Inter Tight', 'Heebo', system-ui, -apple-system, 'Segoe UI', sans-serif"
|
|
4295
4333
|
},
|
|
4296
4334
|
{
|
|
4297
4335
|
"name": "font-body",
|
|
4298
4336
|
"tier": "semantic",
|
|
4299
4337
|
"type": "font",
|
|
4300
4338
|
"group": "type",
|
|
4301
|
-
"value": "'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif"
|
|
4339
|
+
"value": "'Inter', 'Heebo', system-ui, -apple-system, 'Segoe UI', sans-serif"
|
|
4302
4340
|
},
|
|
4303
4341
|
{
|
|
4304
4342
|
"name": "font-label",
|
|
4305
4343
|
"tier": "semantic",
|
|
4306
4344
|
"type": "font",
|
|
4307
4345
|
"group": "type",
|
|
4308
|
-
"value": "'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif"
|
|
4346
|
+
"value": "'Inter', 'Heebo', system-ui, -apple-system, 'Segoe UI', sans-serif"
|
|
4309
4347
|
},
|
|
4310
4348
|
{
|
|
4311
4349
|
"name": "font-mono",
|
|
@@ -5689,9 +5727,9 @@ const SPEC_FLAVOR_PACKS = [
|
|
|
5689
5727
|
"id": "cormorant",
|
|
5690
5728
|
"label": "Cormorant Garamond + Manrope",
|
|
5691
5729
|
"tokens": {
|
|
5692
|
-
"font-display": "'Cormorant Garamond', Georgia, 'Times New Roman', serif",
|
|
5693
|
-
"font-body": "'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
5694
|
-
"font-label": "'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
5730
|
+
"font-display": "'Cormorant Garamond', 'Bellefair', Georgia, 'Times New Roman', serif",
|
|
5731
|
+
"font-body": "'Manrope', 'Heebo', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
5732
|
+
"font-label": "'Manrope', 'Heebo', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
5695
5733
|
"font-mono": "'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace",
|
|
5696
5734
|
"weight-display": "500",
|
|
5697
5735
|
"weight-label": "600",
|
|
@@ -5701,15 +5739,19 @@ const SPEC_FLAVOR_PACKS = [
|
|
|
5701
5739
|
"families": [
|
|
5702
5740
|
"Cormorant Garamond",
|
|
5703
5741
|
"Manrope"
|
|
5704
|
-
]
|
|
5742
|
+
],
|
|
5743
|
+
"hebrew": {
|
|
5744
|
+
"display": "Bellefair",
|
|
5745
|
+
"body": "Heebo"
|
|
5746
|
+
}
|
|
5705
5747
|
},
|
|
5706
5748
|
{
|
|
5707
5749
|
"id": "instrument",
|
|
5708
5750
|
"label": "Instrument Serif + Inter",
|
|
5709
5751
|
"tokens": {
|
|
5710
|
-
"font-display": "'Instrument Serif', Georgia, 'Times New Roman', serif",
|
|
5711
|
-
"font-body": "'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
5712
|
-
"font-label": "'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
5752
|
+
"font-display": "'Instrument Serif', 'Bellefair', Georgia, 'Times New Roman', serif",
|
|
5753
|
+
"font-body": "'Inter', 'Assistant', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
5754
|
+
"font-label": "'Inter', 'Assistant', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
5713
5755
|
"font-mono": "'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace",
|
|
5714
5756
|
"weight-display": "400",
|
|
5715
5757
|
"weight-label": "600",
|
|
@@ -5719,15 +5761,19 @@ const SPEC_FLAVOR_PACKS = [
|
|
|
5719
5761
|
"families": [
|
|
5720
5762
|
"Instrument Serif",
|
|
5721
5763
|
"Inter"
|
|
5722
|
-
]
|
|
5764
|
+
],
|
|
5765
|
+
"hebrew": {
|
|
5766
|
+
"display": "Bellefair",
|
|
5767
|
+
"body": "Assistant"
|
|
5768
|
+
}
|
|
5723
5769
|
},
|
|
5724
5770
|
{
|
|
5725
5771
|
"id": "fraunces",
|
|
5726
5772
|
"label": "Fraunces + Manrope",
|
|
5727
5773
|
"tokens": {
|
|
5728
|
-
"font-display": "'Fraunces', Georgia, 'Times New Roman', serif",
|
|
5729
|
-
"font-body": "'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
5730
|
-
"font-label": "'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
5774
|
+
"font-display": "'Fraunces', 'Frank Ruhl Libre', Georgia, 'Times New Roman', serif",
|
|
5775
|
+
"font-body": "'Manrope', 'Heebo', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
5776
|
+
"font-label": "'Manrope', 'Heebo', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
5731
5777
|
"font-mono": "'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace",
|
|
5732
5778
|
"weight-display": "400",
|
|
5733
5779
|
"weight-label": "600",
|
|
@@ -5737,7 +5783,11 @@ const SPEC_FLAVOR_PACKS = [
|
|
|
5737
5783
|
"families": [
|
|
5738
5784
|
"Fraunces",
|
|
5739
5785
|
"Manrope"
|
|
5740
|
-
]
|
|
5786
|
+
],
|
|
5787
|
+
"hebrew": {
|
|
5788
|
+
"display": "Frank Ruhl Libre",
|
|
5789
|
+
"body": "Heebo"
|
|
5790
|
+
}
|
|
5741
5791
|
}
|
|
5742
5792
|
],
|
|
5743
5793
|
"palette": {
|
|
@@ -6068,21 +6118,21 @@ const SPEC_FLAVOR_PACKS = [
|
|
|
6068
6118
|
"tier": "semantic",
|
|
6069
6119
|
"type": "font",
|
|
6070
6120
|
"group": "type",
|
|
6071
|
-
"value": "'Cormorant Garamond', Georgia, 'Times New Roman', serif"
|
|
6121
|
+
"value": "'Cormorant Garamond', 'Bellefair', Georgia, 'Times New Roman', serif"
|
|
6072
6122
|
},
|
|
6073
6123
|
{
|
|
6074
6124
|
"name": "font-body",
|
|
6075
6125
|
"tier": "semantic",
|
|
6076
6126
|
"type": "font",
|
|
6077
6127
|
"group": "type",
|
|
6078
|
-
"value": "'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif"
|
|
6128
|
+
"value": "'Manrope', 'Heebo', system-ui, -apple-system, 'Segoe UI', sans-serif"
|
|
6079
6129
|
},
|
|
6080
6130
|
{
|
|
6081
6131
|
"name": "font-label",
|
|
6082
6132
|
"tier": "semantic",
|
|
6083
6133
|
"type": "font",
|
|
6084
6134
|
"group": "type",
|
|
6085
|
-
"value": "'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif"
|
|
6135
|
+
"value": "'Manrope', 'Heebo', system-ui, -apple-system, 'Segoe UI', sans-serif"
|
|
6086
6136
|
},
|
|
6087
6137
|
{
|
|
6088
6138
|
"name": "font-mono",
|
|
@@ -7491,9 +7541,9 @@ const SPEC_FLAVOR_PACKS = [
|
|
|
7491
7541
|
"id": "geist",
|
|
7492
7542
|
"label": "Geist + Geist Mono",
|
|
7493
7543
|
"tokens": {
|
|
7494
|
-
"font-display": "'Geist', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
7495
|
-
"font-body": "'Geist', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
7496
|
-
"font-label": "'Geist Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace",
|
|
7544
|
+
"font-display": "'Geist', 'Rubik', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
7545
|
+
"font-body": "'Geist', 'Rubik', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
7546
|
+
"font-label": "'Geist Mono', 'Rubik', ui-monospace, 'SFMono-Regular', Menlo, monospace",
|
|
7497
7547
|
"font-mono": "'Geist Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace",
|
|
7498
7548
|
"weight-display": "600",
|
|
7499
7549
|
"weight-label": "500",
|
|
@@ -7503,15 +7553,19 @@ const SPEC_FLAVOR_PACKS = [
|
|
|
7503
7553
|
"families": [
|
|
7504
7554
|
"Geist",
|
|
7505
7555
|
"Geist Mono"
|
|
7506
|
-
]
|
|
7556
|
+
],
|
|
7557
|
+
"hebrew": {
|
|
7558
|
+
"display": "Rubik",
|
|
7559
|
+
"body": "Rubik"
|
|
7560
|
+
}
|
|
7507
7561
|
},
|
|
7508
7562
|
{
|
|
7509
7563
|
"id": "inter-tight",
|
|
7510
7564
|
"label": "Inter Tight + JetBrains Mono",
|
|
7511
7565
|
"tokens": {
|
|
7512
|
-
"font-display": "'Inter Tight', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
7513
|
-
"font-body": "'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
7514
|
-
"font-label": "'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace",
|
|
7566
|
+
"font-display": "'Inter Tight', 'Heebo', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
7567
|
+
"font-body": "'Inter', 'Heebo', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
7568
|
+
"font-label": "'JetBrains Mono', 'Heebo', ui-monospace, 'SFMono-Regular', Menlo, monospace",
|
|
7515
7569
|
"font-mono": "'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace",
|
|
7516
7570
|
"weight-display": "600",
|
|
7517
7571
|
"weight-label": "500",
|
|
@@ -7522,15 +7576,19 @@ const SPEC_FLAVOR_PACKS = [
|
|
|
7522
7576
|
"Inter Tight",
|
|
7523
7577
|
"Inter",
|
|
7524
7578
|
"JetBrains Mono"
|
|
7525
|
-
]
|
|
7579
|
+
],
|
|
7580
|
+
"hebrew": {
|
|
7581
|
+
"display": "Heebo",
|
|
7582
|
+
"body": "Heebo"
|
|
7583
|
+
}
|
|
7526
7584
|
},
|
|
7527
7585
|
{
|
|
7528
7586
|
"id": "grotesk",
|
|
7529
7587
|
"label": "Space Grotesk + JetBrains Mono",
|
|
7530
7588
|
"tokens": {
|
|
7531
|
-
"font-display": "'Space Grotesk', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
7532
|
-
"font-body": "'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
7533
|
-
"font-label": "'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace",
|
|
7589
|
+
"font-display": "'Space Grotesk', 'Rubik', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
7590
|
+
"font-body": "'Inter', 'Heebo', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
7591
|
+
"font-label": "'JetBrains Mono', 'Heebo', ui-monospace, 'SFMono-Regular', Menlo, monospace",
|
|
7534
7592
|
"font-mono": "'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace",
|
|
7535
7593
|
"weight-display": "700",
|
|
7536
7594
|
"weight-label": "500",
|
|
@@ -7541,7 +7599,11 @@ const SPEC_FLAVOR_PACKS = [
|
|
|
7541
7599
|
"Space Grotesk",
|
|
7542
7600
|
"Inter",
|
|
7543
7601
|
"JetBrains Mono"
|
|
7544
|
-
]
|
|
7602
|
+
],
|
|
7603
|
+
"hebrew": {
|
|
7604
|
+
"display": "Rubik",
|
|
7605
|
+
"body": "Heebo"
|
|
7606
|
+
}
|
|
7545
7607
|
}
|
|
7546
7608
|
],
|
|
7547
7609
|
"palette": {
|
|
@@ -7872,21 +7934,21 @@ const SPEC_FLAVOR_PACKS = [
|
|
|
7872
7934
|
"tier": "semantic",
|
|
7873
7935
|
"type": "font",
|
|
7874
7936
|
"group": "type",
|
|
7875
|
-
"value": "'Geist', system-ui, -apple-system, 'Segoe UI', sans-serif"
|
|
7937
|
+
"value": "'Geist', 'Rubik', system-ui, -apple-system, 'Segoe UI', sans-serif"
|
|
7876
7938
|
},
|
|
7877
7939
|
{
|
|
7878
7940
|
"name": "font-body",
|
|
7879
7941
|
"tier": "semantic",
|
|
7880
7942
|
"type": "font",
|
|
7881
7943
|
"group": "type",
|
|
7882
|
-
"value": "'Geist', system-ui, -apple-system, 'Segoe UI', sans-serif"
|
|
7944
|
+
"value": "'Geist', 'Rubik', system-ui, -apple-system, 'Segoe UI', sans-serif"
|
|
7883
7945
|
},
|
|
7884
7946
|
{
|
|
7885
7947
|
"name": "font-label",
|
|
7886
7948
|
"tier": "semantic",
|
|
7887
7949
|
"type": "font",
|
|
7888
7950
|
"group": "type",
|
|
7889
|
-
"value": "'Geist Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace"
|
|
7951
|
+
"value": "'Geist Mono', 'Rubik', ui-monospace, 'SFMono-Regular', Menlo, monospace"
|
|
7890
7952
|
},
|
|
7891
7953
|
{
|
|
7892
7954
|
"name": "font-mono",
|
|
@@ -9281,9 +9343,9 @@ const SPEC_FLAVOR_PACKS = [
|
|
|
9281
9343
|
"id": "jakarta",
|
|
9282
9344
|
"label": "Plus Jakarta Sans + Inter",
|
|
9283
9345
|
"tokens": {
|
|
9284
|
-
"font-display": "'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
9285
|
-
"font-body": "'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
9286
|
-
"font-label": "'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
9346
|
+
"font-display": "'Plus Jakarta Sans', 'Assistant', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
9347
|
+
"font-body": "'Inter', 'Assistant', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
9348
|
+
"font-label": "'Inter', 'Assistant', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
9287
9349
|
"font-mono": "'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace",
|
|
9288
9350
|
"weight-display": "700",
|
|
9289
9351
|
"weight-label": "600",
|
|
@@ -9293,15 +9355,19 @@ const SPEC_FLAVOR_PACKS = [
|
|
|
9293
9355
|
"families": [
|
|
9294
9356
|
"Plus Jakarta Sans",
|
|
9295
9357
|
"Inter"
|
|
9296
|
-
]
|
|
9358
|
+
],
|
|
9359
|
+
"hebrew": {
|
|
9360
|
+
"display": "Assistant",
|
|
9361
|
+
"body": "Assistant"
|
|
9362
|
+
}
|
|
9297
9363
|
},
|
|
9298
9364
|
{
|
|
9299
9365
|
"id": "figtree",
|
|
9300
9366
|
"label": "Figtree",
|
|
9301
9367
|
"tokens": {
|
|
9302
|
-
"font-display": "'Figtree', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
9303
|
-
"font-body": "'Figtree', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
9304
|
-
"font-label": "'Figtree', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
9368
|
+
"font-display": "'Figtree', 'Assistant', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
9369
|
+
"font-body": "'Figtree', 'Assistant', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
9370
|
+
"font-label": "'Figtree', 'Assistant', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
9305
9371
|
"font-mono": "'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace",
|
|
9306
9372
|
"weight-display": "700",
|
|
9307
9373
|
"weight-label": "600",
|
|
@@ -9310,15 +9376,19 @@ const SPEC_FLAVOR_PACKS = [
|
|
|
9310
9376
|
},
|
|
9311
9377
|
"families": [
|
|
9312
9378
|
"Figtree"
|
|
9313
|
-
]
|
|
9379
|
+
],
|
|
9380
|
+
"hebrew": {
|
|
9381
|
+
"display": "Assistant",
|
|
9382
|
+
"body": "Assistant"
|
|
9383
|
+
}
|
|
9314
9384
|
},
|
|
9315
9385
|
{
|
|
9316
9386
|
"id": "manrope",
|
|
9317
9387
|
"label": "Manrope + Inter",
|
|
9318
9388
|
"tokens": {
|
|
9319
|
-
"font-display": "'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
9320
|
-
"font-body": "'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
9321
|
-
"font-label": "'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
9389
|
+
"font-display": "'Manrope', 'Heebo', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
9390
|
+
"font-body": "'Inter', 'Heebo', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
9391
|
+
"font-label": "'Inter', 'Heebo', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
9322
9392
|
"font-mono": "'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace",
|
|
9323
9393
|
"weight-display": "700",
|
|
9324
9394
|
"weight-label": "600",
|
|
@@ -9328,7 +9398,11 @@ const SPEC_FLAVOR_PACKS = [
|
|
|
9328
9398
|
"families": [
|
|
9329
9399
|
"Manrope",
|
|
9330
9400
|
"Inter"
|
|
9331
|
-
]
|
|
9401
|
+
],
|
|
9402
|
+
"hebrew": {
|
|
9403
|
+
"display": "Heebo",
|
|
9404
|
+
"body": "Heebo"
|
|
9405
|
+
}
|
|
9332
9406
|
}
|
|
9333
9407
|
],
|
|
9334
9408
|
"palette": {
|
|
@@ -9674,21 +9748,21 @@ const SPEC_FLAVOR_PACKS = [
|
|
|
9674
9748
|
"tier": "semantic",
|
|
9675
9749
|
"type": "font",
|
|
9676
9750
|
"group": "type",
|
|
9677
|
-
"value": "'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif"
|
|
9751
|
+
"value": "'Plus Jakarta Sans', 'Assistant', system-ui, -apple-system, 'Segoe UI', sans-serif"
|
|
9678
9752
|
},
|
|
9679
9753
|
{
|
|
9680
9754
|
"name": "font-body",
|
|
9681
9755
|
"tier": "semantic",
|
|
9682
9756
|
"type": "font",
|
|
9683
9757
|
"group": "type",
|
|
9684
|
-
"value": "'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif"
|
|
9758
|
+
"value": "'Inter', 'Assistant', system-ui, -apple-system, 'Segoe UI', sans-serif"
|
|
9685
9759
|
},
|
|
9686
9760
|
{
|
|
9687
9761
|
"name": "font-label",
|
|
9688
9762
|
"tier": "semantic",
|
|
9689
9763
|
"type": "font",
|
|
9690
9764
|
"group": "type",
|
|
9691
|
-
"value": "'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif"
|
|
9765
|
+
"value": "'Inter', 'Assistant', system-ui, -apple-system, 'Segoe UI', sans-serif"
|
|
9692
9766
|
},
|
|
9693
9767
|
{
|
|
9694
9768
|
"name": "font-mono",
|
|
@@ -11115,9 +11189,9 @@ const SPEC_FLAVOR_PACKS = [
|
|
|
11115
11189
|
"id": "sans-flex",
|
|
11116
11190
|
"label": "Google Sans Flex + Figtree",
|
|
11117
11191
|
"tokens": {
|
|
11118
|
-
"font-display": "'Google Sans Flex', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
11119
|
-
"font-body": "'Figtree', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
11120
|
-
"font-label": "'Figtree', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
11192
|
+
"font-display": "'Google Sans Flex', 'Varela Round', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
11193
|
+
"font-body": "'Figtree', 'Assistant', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
11194
|
+
"font-label": "'Figtree', 'Assistant', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
11121
11195
|
"font-mono": "'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace",
|
|
11122
11196
|
"weight-display": "700",
|
|
11123
11197
|
"weight-label": "700",
|
|
@@ -11127,15 +11201,19 @@ const SPEC_FLAVOR_PACKS = [
|
|
|
11127
11201
|
"families": [
|
|
11128
11202
|
"Google Sans Flex",
|
|
11129
11203
|
"Figtree"
|
|
11130
|
-
]
|
|
11204
|
+
],
|
|
11205
|
+
"hebrew": {
|
|
11206
|
+
"display": "Varela Round",
|
|
11207
|
+
"body": "Assistant"
|
|
11208
|
+
}
|
|
11131
11209
|
},
|
|
11132
11210
|
{
|
|
11133
11211
|
"id": "bricolage",
|
|
11134
11212
|
"label": "Bricolage Grotesque + Figtree",
|
|
11135
11213
|
"tokens": {
|
|
11136
|
-
"font-display": "'Bricolage Grotesque', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
11137
|
-
"font-body": "'Figtree', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
11138
|
-
"font-label": "'Figtree', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
11214
|
+
"font-display": "'Bricolage Grotesque', 'Rubik', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
11215
|
+
"font-body": "'Figtree', 'Assistant', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
11216
|
+
"font-label": "'Figtree', 'Assistant', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
11139
11217
|
"font-mono": "'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace",
|
|
11140
11218
|
"weight-display": "700",
|
|
11141
11219
|
"weight-label": "700",
|
|
@@ -11145,15 +11223,19 @@ const SPEC_FLAVOR_PACKS = [
|
|
|
11145
11223
|
"families": [
|
|
11146
11224
|
"Bricolage Grotesque",
|
|
11147
11225
|
"Figtree"
|
|
11148
|
-
]
|
|
11226
|
+
],
|
|
11227
|
+
"hebrew": {
|
|
11228
|
+
"display": "Rubik",
|
|
11229
|
+
"body": "Assistant"
|
|
11230
|
+
}
|
|
11149
11231
|
},
|
|
11150
11232
|
{
|
|
11151
11233
|
"id": "nunito",
|
|
11152
11234
|
"label": "Nunito",
|
|
11153
11235
|
"tokens": {
|
|
11154
|
-
"font-display": "'Nunito', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
11155
|
-
"font-body": "'Nunito', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
11156
|
-
"font-label": "'Nunito', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
11236
|
+
"font-display": "'Nunito', 'Varela Round', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
11237
|
+
"font-body": "'Nunito', 'Varela Round', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
11238
|
+
"font-label": "'Nunito', 'Varela Round', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
11157
11239
|
"font-mono": "'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace",
|
|
11158
11240
|
"weight-display": "800",
|
|
11159
11241
|
"weight-label": "700",
|
|
@@ -11162,7 +11244,11 @@ const SPEC_FLAVOR_PACKS = [
|
|
|
11162
11244
|
},
|
|
11163
11245
|
"families": [
|
|
11164
11246
|
"Nunito"
|
|
11165
|
-
]
|
|
11247
|
+
],
|
|
11248
|
+
"hebrew": {
|
|
11249
|
+
"display": "Varela Round",
|
|
11250
|
+
"body": "Varela Round"
|
|
11251
|
+
}
|
|
11166
11252
|
}
|
|
11167
11253
|
],
|
|
11168
11254
|
"palette": {
|
|
@@ -11492,21 +11578,21 @@ const SPEC_FLAVOR_PACKS = [
|
|
|
11492
11578
|
"tier": "semantic",
|
|
11493
11579
|
"type": "font",
|
|
11494
11580
|
"group": "type",
|
|
11495
|
-
"value": "'Google Sans Flex', system-ui, -apple-system, 'Segoe UI', sans-serif"
|
|
11581
|
+
"value": "'Google Sans Flex', 'Varela Round', system-ui, -apple-system, 'Segoe UI', sans-serif"
|
|
11496
11582
|
},
|
|
11497
11583
|
{
|
|
11498
11584
|
"name": "font-body",
|
|
11499
11585
|
"tier": "semantic",
|
|
11500
11586
|
"type": "font",
|
|
11501
11587
|
"group": "type",
|
|
11502
|
-
"value": "'Figtree', system-ui, -apple-system, 'Segoe UI', sans-serif"
|
|
11588
|
+
"value": "'Figtree', 'Assistant', system-ui, -apple-system, 'Segoe UI', sans-serif"
|
|
11503
11589
|
},
|
|
11504
11590
|
{
|
|
11505
11591
|
"name": "font-label",
|
|
11506
11592
|
"tier": "semantic",
|
|
11507
11593
|
"type": "font",
|
|
11508
11594
|
"group": "type",
|
|
11509
|
-
"value": "'Figtree', system-ui, -apple-system, 'Segoe UI', sans-serif"
|
|
11595
|
+
"value": "'Figtree', 'Assistant', system-ui, -apple-system, 'Segoe UI', sans-serif"
|
|
11510
11596
|
},
|
|
11511
11597
|
{
|
|
11512
11598
|
"name": "font-mono",
|
|
@@ -12911,9 +12997,9 @@ const SPEC_FLAVOR_PACKS = [
|
|
|
12911
12997
|
"id": "grotesk",
|
|
12912
12998
|
"label": "Space Grotesk + DM Sans",
|
|
12913
12999
|
"tokens": {
|
|
12914
|
-
"font-display": "'Space Grotesk', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
12915
|
-
"font-body": "'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
12916
|
-
"font-label": "'Space Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace",
|
|
13000
|
+
"font-display": "'Space Grotesk', 'Rubik', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
13001
|
+
"font-body": "'DM Sans', 'Heebo', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
13002
|
+
"font-label": "'Space Mono', 'Heebo', ui-monospace, 'SFMono-Regular', Menlo, monospace",
|
|
12917
13003
|
"font-mono": "'Space Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace",
|
|
12918
13004
|
"weight-display": "700",
|
|
12919
13005
|
"weight-label": "700",
|
|
@@ -12924,15 +13010,19 @@ const SPEC_FLAVOR_PACKS = [
|
|
|
12924
13010
|
"Space Grotesk",
|
|
12925
13011
|
"DM Sans",
|
|
12926
13012
|
"Space Mono"
|
|
12927
|
-
]
|
|
13013
|
+
],
|
|
13014
|
+
"hebrew": {
|
|
13015
|
+
"display": "Rubik",
|
|
13016
|
+
"body": "Heebo"
|
|
13017
|
+
}
|
|
12928
13018
|
},
|
|
12929
13019
|
{
|
|
12930
13020
|
"id": "archivo",
|
|
12931
13021
|
"label": "Archivo Black + Archivo",
|
|
12932
13022
|
"tokens": {
|
|
12933
|
-
"font-display": "'Archivo Black', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
12934
|
-
"font-body": "'Archivo', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
12935
|
-
"font-label": "'Space Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace",
|
|
13023
|
+
"font-display": "'Archivo Black', 'Secular One', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
13024
|
+
"font-body": "'Archivo', 'Heebo', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
13025
|
+
"font-label": "'Space Mono', 'Heebo', ui-monospace, 'SFMono-Regular', Menlo, monospace",
|
|
12936
13026
|
"font-mono": "'Space Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace",
|
|
12937
13027
|
"weight-display": "400",
|
|
12938
13028
|
"weight-label": "700",
|
|
@@ -12943,15 +13033,19 @@ const SPEC_FLAVOR_PACKS = [
|
|
|
12943
13033
|
"Archivo Black",
|
|
12944
13034
|
"Archivo",
|
|
12945
13035
|
"Space Mono"
|
|
12946
|
-
]
|
|
13036
|
+
],
|
|
13037
|
+
"hebrew": {
|
|
13038
|
+
"display": "Secular One",
|
|
13039
|
+
"body": "Heebo"
|
|
13040
|
+
}
|
|
12947
13041
|
},
|
|
12948
13042
|
{
|
|
12949
13043
|
"id": "syne",
|
|
12950
13044
|
"label": "Syne + DM Sans",
|
|
12951
13045
|
"tokens": {
|
|
12952
|
-
"font-display": "'Syne', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
12953
|
-
"font-body": "'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
12954
|
-
"font-label": "'Space Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace",
|
|
13046
|
+
"font-display": "'Syne', 'Rubik', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
13047
|
+
"font-body": "'DM Sans', 'Heebo', system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
13048
|
+
"font-label": "'Space Mono', 'Heebo', ui-monospace, 'SFMono-Regular', Menlo, monospace",
|
|
12955
13049
|
"font-mono": "'Space Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace",
|
|
12956
13050
|
"weight-display": "800",
|
|
12957
13051
|
"weight-label": "700",
|
|
@@ -12962,7 +13056,11 @@ const SPEC_FLAVOR_PACKS = [
|
|
|
12962
13056
|
"Syne",
|
|
12963
13057
|
"DM Sans",
|
|
12964
13058
|
"Space Mono"
|
|
12965
|
-
]
|
|
13059
|
+
],
|
|
13060
|
+
"hebrew": {
|
|
13061
|
+
"display": "Rubik",
|
|
13062
|
+
"body": "Heebo"
|
|
13063
|
+
}
|
|
12966
13064
|
}
|
|
12967
13065
|
],
|
|
12968
13066
|
"palette": {
|
|
@@ -13280,21 +13378,21 @@ const SPEC_FLAVOR_PACKS = [
|
|
|
13280
13378
|
"tier": "semantic",
|
|
13281
13379
|
"type": "font",
|
|
13282
13380
|
"group": "type",
|
|
13283
|
-
"value": "'Space Grotesk', system-ui, -apple-system, 'Segoe UI', sans-serif"
|
|
13381
|
+
"value": "'Space Grotesk', 'Rubik', system-ui, -apple-system, 'Segoe UI', sans-serif"
|
|
13284
13382
|
},
|
|
13285
13383
|
{
|
|
13286
13384
|
"name": "font-body",
|
|
13287
13385
|
"tier": "semantic",
|
|
13288
13386
|
"type": "font",
|
|
13289
13387
|
"group": "type",
|
|
13290
|
-
"value": "'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif"
|
|
13388
|
+
"value": "'DM Sans', 'Heebo', system-ui, -apple-system, 'Segoe UI', sans-serif"
|
|
13291
13389
|
},
|
|
13292
13390
|
{
|
|
13293
13391
|
"name": "font-label",
|
|
13294
13392
|
"tier": "semantic",
|
|
13295
13393
|
"type": "font",
|
|
13296
13394
|
"group": "type",
|
|
13297
|
-
"value": "'Space Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace"
|
|
13395
|
+
"value": "'Space Mono', 'Heebo', ui-monospace, 'SFMono-Regular', Menlo, monospace"
|
|
13298
13396
|
},
|
|
13299
13397
|
{
|
|
13300
13398
|
"name": "font-mono",
|
|
@@ -17315,6 +17413,27 @@ function catalogFontId(family) {
|
|
|
17315
17413
|
const MONO_ROLE = 'font-mono';
|
|
17316
17414
|
const ALWAYS_LOADED_ROLES = FONT_FAMILY_TOKENS.filter(role => role !== MONO_ROLE);
|
|
17317
17415
|
const MONO_REFERENCE = /var\(\s*--iox-font-mono\b/;
|
|
17416
|
+
const SCRIPT_FAMILIES = new Map(Object.entries(SPEC_SCRIPTS)
|
|
17417
|
+
.map(([script, def]) => [script, new Set(def.families.map(fontFamilyKey))]));
|
|
17418
|
+
/** The scripts a page in `locale` needs drawn (`he`, `he-IL` → hebrew); none for a Latin locale. */
|
|
17419
|
+
function scriptsForLocale(locale) {
|
|
17420
|
+
const lang = String(locale ?? '').trim().toLowerCase().split(/[-_]/)[0];
|
|
17421
|
+
return Object.entries(SPEC_SCRIPTS)
|
|
17422
|
+
.filter(([, def]) => def.locales.includes(lang)).map(([script]) => script);
|
|
17423
|
+
}
|
|
17424
|
+
/** True when `family` is a catalog family that draws `script`. */
|
|
17425
|
+
function drawsScript(family, script) {
|
|
17426
|
+
return !!SCRIPT_FAMILIES.get(script)?.has(fontFamilyKey(family));
|
|
17427
|
+
}
|
|
17428
|
+
/**
|
|
17429
|
+
* A stack with its script PARTNERS removed — every family after the first that only stands there to draw
|
|
17430
|
+
* a script. What the contract wrote before H1-2 placed the partners: a row seeded then still holds it, and
|
|
17431
|
+
* is the look's own, not the author's (`designBaseline`).
|
|
17432
|
+
*/
|
|
17433
|
+
function withoutScriptPartners(stack) {
|
|
17434
|
+
const partner = (family) => [...SCRIPT_FAMILIES.values()].some(set => set.has(fontFamilyKey(family)));
|
|
17435
|
+
return splitFontStack(stack).filter((e, i) => i === 0 || !partner(e.family)).map(e => e.raw).join(', ');
|
|
17436
|
+
}
|
|
17318
17437
|
/**
|
|
17319
17438
|
* The Google css2 ids to load for a token set: every catalog family named by the display / body /
|
|
17320
17439
|
* label roles, plus mono when referenced (above). One id per family (T7 — one `<link>` per family, so
|
|
@@ -17326,25 +17445,42 @@ function fontsForTokens(tokens, opts = {}) {
|
|
|
17326
17445
|
|| rows.some(t => t.name !== MONO_ROLE && MONO_REFERENCE.test(`${t.value ?? ''} ${t.values?.dark ?? ''}`));
|
|
17327
17446
|
const roles = monoRead ? FONT_FAMILY_TOKENS : ALWAYS_LOADED_ROLES;
|
|
17328
17447
|
const uploaded = new Set((opts.uploaded ?? []).map(fontFamilyKey));
|
|
17448
|
+
const scripts = scriptsForLocale(opts.locale);
|
|
17329
17449
|
const seen = new Set();
|
|
17330
17450
|
const ids = [];
|
|
17451
|
+
const add = (id) => {
|
|
17452
|
+
if (id && !seen.has(id)) {
|
|
17453
|
+
seen.add(id);
|
|
17454
|
+
ids.push(id);
|
|
17455
|
+
}
|
|
17456
|
+
};
|
|
17331
17457
|
for (const role of roles) {
|
|
17332
|
-
const
|
|
17458
|
+
const families = parseFontFamilies(rows.find(t => t.name === role)?.value ?? '');
|
|
17333
17459
|
// The role's FIRST family that renders decides: an uploaded one needs nothing from Google; the
|
|
17334
17460
|
// first catalog one is linked (it renders, or stands in for an uploaded family that is missing
|
|
17335
17461
|
// — `userFontStack` puts the look's font right after the author's). Nothing further down is
|
|
17336
|
-
//
|
|
17462
|
+
// reached for a Latin glyph, so nothing further down is loaded for one.
|
|
17463
|
+
let lead = null;
|
|
17337
17464
|
let id = null;
|
|
17338
|
-
for (const family of
|
|
17339
|
-
if (uploaded.has(fontFamilyKey(family)))
|
|
17465
|
+
for (const family of families) {
|
|
17466
|
+
if (uploaded.has(fontFamilyKey(family))) {
|
|
17467
|
+
lead = family;
|
|
17340
17468
|
break;
|
|
17469
|
+
}
|
|
17341
17470
|
id = catalogFontId(family);
|
|
17342
|
-
if (id)
|
|
17471
|
+
if (id) {
|
|
17472
|
+
lead = family;
|
|
17343
17473
|
break;
|
|
17474
|
+
}
|
|
17344
17475
|
}
|
|
17345
|
-
|
|
17346
|
-
|
|
17347
|
-
|
|
17476
|
+
add(id);
|
|
17477
|
+
// …but a Hebrew glyph IS reached further down: the browser falls through the stack, per glyph, to the
|
|
17478
|
+
// first family that draws it — the role's script partner, linked for a page whose locale needs it.
|
|
17479
|
+
for (const script of scripts) {
|
|
17480
|
+
if (lead && drawsScript(lead, script))
|
|
17481
|
+
continue;
|
|
17482
|
+
const partner = families.find(f => drawsScript(f, script) && !uploaded.has(fontFamilyKey(f)));
|
|
17483
|
+
add(partner ? catalogFontId(partner) : null);
|
|
17348
17484
|
}
|
|
17349
17485
|
}
|
|
17350
17486
|
return ids;
|
|
@@ -17402,8 +17538,10 @@ const PRELOAD_ROLES = [
|
|
|
17402
17538
|
const PRELOAD_FORMAT = 'woff2';
|
|
17403
17539
|
/**
|
|
17404
17540
|
* The uploaded files the SSR head preloads (§5b — no flash of the fallback face): for the display and
|
|
17405
|
-
* body roles, the family
|
|
17406
|
-
*
|
|
17541
|
+
* body roles, the family the role RENDERS in — the stack's first family that is uploaded, in the catalog
|
|
17542
|
+
* or on every system — when it is an uploaded one, the woff2 normal-style cut CSS matching would pick for
|
|
17543
|
+
* that role's weights. One file per weight that renders, never the family. A family further down (a
|
|
17544
|
+
* Hebrew partner, H1-2) draws only the glyphs the lead lacks: never preloaded.
|
|
17407
17545
|
*/
|
|
17408
17546
|
function fontPreloads(descriptors, tokens) {
|
|
17409
17547
|
const families = groupFontFamilies(descriptors);
|
|
@@ -17413,7 +17551,9 @@ function fontPreloads(descriptors, tokens) {
|
|
|
17413
17551
|
const out = new Map();
|
|
17414
17552
|
for (const { role, weights, fallback } of PRELOAD_ROLES) {
|
|
17415
17553
|
const named = parseFontFamilies(resolved[role] ?? '').map(fontFamilyKey);
|
|
17416
|
-
const
|
|
17554
|
+
const uploadedFamily = (key) => families.find(f => fontFamilyKey(f.family) === key);
|
|
17555
|
+
const lead = named.find(key => !!uploadedFamily(key) || !!catalogFontId(key) || ALWAYS_AVAILABLE_FAMILIES.has(key));
|
|
17556
|
+
const family = lead ? uploadedFamily(lead) : undefined;
|
|
17417
17557
|
const faces = family?.faces.filter(f => f.format === PRELOAD_FORMAT && normalizeFontStyle(f.style) === 'normal') ?? [];
|
|
17418
17558
|
for (const token of weights) {
|
|
17419
17559
|
const weight = Number.parseInt(resolved[token] ?? '', 10);
|
|
@@ -18033,6 +18173,14 @@ function packDefaultsLookup() {
|
|
|
18033
18173
|
};
|
|
18034
18174
|
}
|
|
18035
18175
|
const present = (list) => list.filter((e) => !!e);
|
|
18176
|
+
const FONT_ROLES = new Set(FONT_FAMILY_TOKENS);
|
|
18177
|
+
/** What a font role held before H1-2 put the Hebrew partner second in every pairing's stacks. */
|
|
18178
|
+
function beforeScriptPartners(name, e) {
|
|
18179
|
+
if (!e || !FONT_ROLES.has(name))
|
|
18180
|
+
return undefined;
|
|
18181
|
+
const value = withoutScriptPartners(e.value);
|
|
18182
|
+
return value !== e.value ? { value } : undefined;
|
|
18183
|
+
}
|
|
18036
18184
|
/**
|
|
18037
18185
|
* What the PREVIOUS design wrote, as a baseline keyed by the row's own stamp: a row Swiss stamped is
|
|
18038
18186
|
* judged against what Swiss wrote, every other row against `buildFlavorTokens` of the stored choices
|
|
@@ -18058,7 +18206,8 @@ function designBaseline(previous) {
|
|
|
18058
18206
|
if (stampedBy === SWISS_FLAVOR.id)
|
|
18059
18207
|
return swiss.get(row.name);
|
|
18060
18208
|
const ownDefaults = stampedBy ? packDefaults(stampedBy).map(m => m.get(row.name)) : [];
|
|
18061
|
-
|
|
18209
|
+
const expected = [current.get(row.name), beforeTint.get(row.name), ...ownDefaults];
|
|
18210
|
+
return present([...expected, ...expected.map(e => beforeScriptPartners(row.name, e))]);
|
|
18062
18211
|
};
|
|
18063
18212
|
}
|
|
18064
18213
|
/**
|
|
@@ -18142,7 +18291,10 @@ function missingDesignRows(existing, choices) {
|
|
|
18142
18291
|
* whose brand colour never reached its accent;
|
|
18143
18292
|
* - stamped by the current pack and still holding what the design wrote BEFORE DS9
|
|
18144
18293
|
* (`legacyDesignTokenRows`): the contrast fixes — a 3:1 `line-strong`, a 3:1 focus ring, an
|
|
18145
|
-
* `accent-text` that reads on every ground — reach a studio that applied its look before them
|
|
18294
|
+
* `accent-text` that reads on every ground — reach a studio that applied its look before them;
|
|
18295
|
+
* - stamped by the current pack and still holding a font stack WITHOUT the Hebrew partner the pairing now
|
|
18296
|
+
* names second (H1-2): a Hebrew page of a studio seeded before it would draw its headings in the browser's
|
|
18297
|
+
* default face for good.
|
|
18146
18298
|
* No author edit produces any of these shapes — the Tokens panel edited the light value only, and since DS8 an
|
|
18147
18299
|
* edit makes the row `source: user`, which this never touches.
|
|
18148
18300
|
*/
|
|
@@ -18165,7 +18317,7 @@ function designTokenRepairs(existing, choices) {
|
|
|
18165
18317
|
const darkOnly = row.source === stamp && row.value === want.value;
|
|
18166
18318
|
const machineWrote = present([
|
|
18167
18319
|
...(stampedBy ? packDefaults(stampedBy).map(m => m.get(row.name)) : []),
|
|
18168
|
-
...(stampedBy === pack.id ? [beforeTint.get(row.name)] : []),
|
|
18320
|
+
...(stampedBy === pack.id ? [beforeTint.get(row.name), beforeScriptPartners(row.name, want), beforeScriptPartners(row.name, beforeTint.get(row.name))] : []),
|
|
18169
18321
|
]);
|
|
18170
18322
|
if (!darkOnly && !untouchedSeedRow(row, machineWrote))
|
|
18171
18323
|
continue;
|
|
@@ -18286,5 +18438,5 @@ function presetChoices(id, mode) {
|
|
|
18286
18438
|
* Generated bundle index. Do not edit.
|
|
18287
18439
|
*/
|
|
18288
18440
|
|
|
18289
|
-
export { ACCENT_TOKEN_NAMES, ANIMATE_IDS, AdoptOutcome, AdoptSkipReason, BAR_RESERVE_BREAKPOINTS, BAR_RESERVE_CLASS, BETWEEN_IDS, BOTTOM_BAR_STYLE, 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, INHERITED_TEXT, LinkType, MAX_FONT_FILE_BYTES, MOOD_IDS, MOOD_LABELS, NEW_NODE_STYLE_DEFAULTS, OwnedTraitLink, PALETTE_PRESETS, PRE_DS2_FLAVOR_DEFAULTS, PRE_MOTION, PRE_TINT_DEFAULT, REDUCED_DESIGN_MOTION, REDUCED_MOTION_OVERRIDES, REDUCED_TRANSPARENCY_OVERRIDES, REVERT_WINDOW_MS, SCHEME_INK, SCROLL_IDS, 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_MOODS, SPEC_PALETTE_PRESETS, SPEC_SCHEMES, SPEC_SCHEME_INK, SPEC_SPRINGS, SPEC_STYLE_PRESETS, SPEC_TIERS, SPEC_TIER_IDS, SPEC_TOKEN_TYPES, STYLE_PRESETS, 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, barReserveClass, buildFlavorTokens, buildFontFaceCss, buttonBlockHref, catalogFontId, checkFontWeight, choicesForPack, colorSchemeClass, colorSchemeOf, colourTabChecks, compareFontWeights, compileSchemeCss, compileTokenCss, compileTokenCssBlocks, compositeOver, cssString, defaultDesignChoices, defaultElementStyleFor, deriveAccentTokens, deriveBrandTokens, designApplySnapshot, designBaseline, designConfigEntries, designModeOf, designMotionOf, designRevertConfig, 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, presetChoices, presetModes, previewElementStyleAdoption, previewFontWeight, quantizeRgb, readDesignConfig, readOwnedTrait, relativeLuminance, releaseElementStyle, resolveDesignChoices, resolveDesignMotion, resolveSchemeTokenValues, resolveTokenReferences, resolveTokenValues, revertAvailable, rgbToOklab, ringColour, roleClass, sameDesignChoices, setColorScheme, specTokenNames, splitTopLevel, springToLinear, stackNamesFamily, styleKeyToKebab, stylePresetById, switchElementStyle, syncNodeDesignClasses, toHexColor, tokenReferences, tokensToDarkVarMap, tokensToVarMap, unknownTokenReferences, untouchedSeedRow, userFontStack, validateFlavorPack, wcagContrastRatio, withSchemeInk, writeOwnedTrait };
|
|
18441
|
+
export { ACCENT_TOKEN_NAMES, ANIMATE_IDS, AdoptOutcome, AdoptSkipReason, BAR_RESERVE_BREAKPOINTS, BAR_RESERVE_CLASS, BETWEEN_IDS, BOTTOM_BAR_STYLE, 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, INHERITED_TEXT, LinkType, MAX_FONT_FILE_BYTES, MOOD_IDS, MOOD_LABELS, NEW_NODE_STYLE_DEFAULTS, OwnedTraitLink, PALETTE_PRESETS, PRE_DS2_FLAVOR_DEFAULTS, PRE_MOTION, PRE_TINT_DEFAULT, REDUCED_DESIGN_MOTION, REDUCED_MOTION_OVERRIDES, REDUCED_TRANSPARENCY_OVERRIDES, REVERT_WINDOW_MS, SCHEME_INK, SCROLL_IDS, 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_MOODS, SPEC_PALETTE_PRESETS, SPEC_SCHEMES, SPEC_SCHEME_INK, SPEC_SCRIPTS, SPEC_SPRINGS, SPEC_STYLE_PRESETS, SPEC_TIERS, SPEC_TIER_IDS, SPEC_TOKEN_TYPES, STYLE_PRESETS, 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, barReserveClass, buildFlavorTokens, buildFontFaceCss, buttonBlockHref, catalogFontId, checkFontWeight, choicesForPack, colorSchemeClass, colorSchemeOf, colourTabChecks, compareFontWeights, compileSchemeCss, compileTokenCss, compileTokenCssBlocks, compositeOver, cssString, defaultDesignChoices, defaultElementStyleFor, deriveAccentTokens, deriveBrandTokens, designApplySnapshot, designBaseline, designConfigEntries, designModeOf, designMotionOf, designRevertConfig, designTokenRepairs, designTokenRows, drawsScript, 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, presetChoices, presetModes, previewElementStyleAdoption, previewFontWeight, quantizeRgb, readDesignConfig, readOwnedTrait, relativeLuminance, releaseElementStyle, resolveDesignChoices, resolveDesignMotion, resolveSchemeTokenValues, resolveTokenReferences, resolveTokenValues, revertAvailable, rgbToOklab, ringColour, roleClass, sameDesignChoices, scriptsForLocale, setColorScheme, specTokenNames, splitTopLevel, springToLinear, stackNamesFamily, styleKeyToKebab, stylePresetById, switchElementStyle, syncNodeDesignClasses, toHexColor, tokenReferences, tokensToDarkVarMap, tokensToVarMap, unknownTokenReferences, untouchedSeedRow, userFontStack, validateFlavorPack, wcagContrastRatio, withSchemeInk, withoutScriptPartners, writeOwnedTrait };
|
|
18290
18442
|
//# sourceMappingURL=vectoriox-iox-ui-design-core.mjs.map
|