@vectoriox/iox-ui 5.31.2 → 5.32.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.
@@ -902,6 +902,76 @@ const SPEC_TIERS = {
902
902
  "type": "keyword",
903
903
  "default": "underline"
904
904
  },
905
+ {
906
+ "name": "link-current-color",
907
+ "type": "color",
908
+ "default": "var(--iox-text)"
909
+ },
910
+ {
911
+ "name": "link-current-decoration",
912
+ "type": "keyword",
913
+ "default": "underline 2px var(--iox-accent-text)"
914
+ },
915
+ {
916
+ "name": "tabbar-bg",
917
+ "type": "color",
918
+ "default": "var(--iox-nav-bg)"
919
+ },
920
+ {
921
+ "name": "tabbar-border",
922
+ "type": "color",
923
+ "default": "var(--iox-nav-border)"
924
+ },
925
+ {
926
+ "name": "tabbar-border-width",
927
+ "type": "size",
928
+ "default": "var(--iox-border-width) 0px 0px 0px"
929
+ },
930
+ {
931
+ "name": "tabbar-radius",
932
+ "type": "radius",
933
+ "default": "0px"
934
+ },
935
+ {
936
+ "name": "tabbar-shadow",
937
+ "type": "shadow",
938
+ "default": "none"
939
+ },
940
+ {
941
+ "name": "tabbar-backdrop",
942
+ "type": "effect",
943
+ "default": "var(--iox-nav-backdrop)"
944
+ },
945
+ {
946
+ "name": "tabbar-inset",
947
+ "type": "size",
948
+ "default": "0px"
949
+ },
950
+ {
951
+ "name": "tabbar-height",
952
+ "type": "size",
953
+ "default": "64px"
954
+ },
955
+ {
956
+ "name": "tabbar-item-ink",
957
+ "type": "color",
958
+ "default": "var(--iox-text-muted)"
959
+ },
960
+ {
961
+ "name": "tabbar-item-current-ink",
962
+ "type": "color",
963
+ "default": "var(--iox-accent-text)"
964
+ },
965
+ {
966
+ "name": "tabbar-indicator",
967
+ "type": "color",
968
+ "default": "var(--iox-surface-2)"
969
+ },
970
+ {
971
+ "name": "tabbar-label-size",
972
+ "type": "size",
973
+ "default": "var(--iox-size-label)"
974
+ },
905
975
  {
906
976
  "name": "heading-color",
907
977
  "type": "color",
@@ -1597,6 +1667,11 @@ const SPEC_ELEMENT_STYLES = [
1597
1667
  },
1598
1668
  "hover": {
1599
1669
  "color": "var(--iox-link-hover-color)"
1670
+ },
1671
+ "current": {
1672
+ "color": "var(--iox-link-current-color)",
1673
+ "textDecoration": "var(--iox-link-current-decoration)",
1674
+ "fontWeight": "var(--iox-weight-strong)"
1600
1675
  }
1601
1676
  },
1602
1677
  {
@@ -1709,6 +1784,49 @@ const SPEC_ELEMENT_STYLES = [
1709
1784
  "padding": "var(--iox-nav-pad)"
1710
1785
  }
1711
1786
  },
1787
+ {
1788
+ "id": "bottom-bar",
1789
+ "label": "Bottom bar",
1790
+ "group": "Layout",
1791
+ "appliesTo": [
1792
+ "Container"
1793
+ ],
1794
+ "base": {
1795
+ "color": "inherit",
1796
+ "backgroundColor": "var(--iox-tabbar-bg)",
1797
+ "borderStyle": "solid",
1798
+ "borderWidth": "var(--iox-tabbar-border-width)",
1799
+ "borderColor": "var(--iox-tabbar-border)",
1800
+ "borderRadius": "var(--iox-tabbar-radius)",
1801
+ "boxShadow": "var(--iox-tabbar-shadow)",
1802
+ "backdropFilter": "var(--iox-tabbar-backdrop)"
1803
+ }
1804
+ },
1805
+ {
1806
+ "id": "bottom-bar-item",
1807
+ "label": "Bottom bar item",
1808
+ "group": "Layout",
1809
+ "appliesTo": [
1810
+ "LinkedContainer",
1811
+ "ButtonBlock"
1812
+ ],
1813
+ "base": {
1814
+ "color": "var(--iox-tabbar-item-ink)",
1815
+ "fontFamily": "var(--iox-font-label)",
1816
+ "fontSize": "var(--iox-tabbar-label-size)",
1817
+ "fontWeight": "var(--iox-weight-label)",
1818
+ "borderRadius": "var(--iox-radius-md)",
1819
+ "transitionDuration": "var(--iox-dur-fast)",
1820
+ "transitionTimingFunction": "var(--iox-ease-standard)"
1821
+ },
1822
+ "current": {
1823
+ "color": "var(--iox-tabbar-item-current-ink)",
1824
+ "backgroundColor": "var(--iox-tabbar-indicator)"
1825
+ },
1826
+ "focus": {
1827
+ "boxShadow": "var(--iox-focus-ring)"
1828
+ }
1829
+ },
1712
1830
  {
1713
1831
  "id": "media",
1714
1832
  "label": "Image",
@@ -2173,6 +2291,16 @@ const SPEC_INK_SCOPES = [
2173
2291
  "text-muted": "currentColor"
2174
2292
  }
2175
2293
  },
2294
+ {
2295
+ "styles": [
2296
+ "bottom-bar-item"
2297
+ ],
2298
+ "set": {
2299
+ "icon-color": "currentColor",
2300
+ "heading-color": "currentColor",
2301
+ "text-muted": "currentColor"
2302
+ }
2303
+ },
2176
2304
  {
2177
2305
  "styles": [
2178
2306
  "badge-neutral",
@@ -3743,6 +3871,104 @@ const SPEC_FLAVOR_PACKS = [
3743
3871
  "group": "components",
3744
3872
  "value": "underline"
3745
3873
  },
3874
+ {
3875
+ "name": "link-current-color",
3876
+ "tier": "component",
3877
+ "type": "color",
3878
+ "group": "components",
3879
+ "value": "var(--iox-text)"
3880
+ },
3881
+ {
3882
+ "name": "link-current-decoration",
3883
+ "tier": "component",
3884
+ "type": "keyword",
3885
+ "group": "components",
3886
+ "value": "underline 2px var(--iox-accent-text)"
3887
+ },
3888
+ {
3889
+ "name": "tabbar-bg",
3890
+ "tier": "component",
3891
+ "type": "color",
3892
+ "group": "components",
3893
+ "value": "var(--iox-nav-bg)"
3894
+ },
3895
+ {
3896
+ "name": "tabbar-border",
3897
+ "tier": "component",
3898
+ "type": "color",
3899
+ "group": "components",
3900
+ "value": "var(--iox-nav-border)"
3901
+ },
3902
+ {
3903
+ "name": "tabbar-border-width",
3904
+ "tier": "component",
3905
+ "type": "size",
3906
+ "group": "components",
3907
+ "value": "var(--iox-border-width) 0px 0px 0px"
3908
+ },
3909
+ {
3910
+ "name": "tabbar-radius",
3911
+ "tier": "component",
3912
+ "type": "radius",
3913
+ "group": "components",
3914
+ "value": "0px"
3915
+ },
3916
+ {
3917
+ "name": "tabbar-shadow",
3918
+ "tier": "component",
3919
+ "type": "shadow",
3920
+ "group": "components",
3921
+ "value": "none"
3922
+ },
3923
+ {
3924
+ "name": "tabbar-backdrop",
3925
+ "tier": "component",
3926
+ "type": "effect",
3927
+ "group": "components",
3928
+ "value": "var(--iox-nav-backdrop)"
3929
+ },
3930
+ {
3931
+ "name": "tabbar-inset",
3932
+ "tier": "component",
3933
+ "type": "size",
3934
+ "group": "components",
3935
+ "value": "0px"
3936
+ },
3937
+ {
3938
+ "name": "tabbar-height",
3939
+ "tier": "component",
3940
+ "type": "size",
3941
+ "group": "components",
3942
+ "value": "64px"
3943
+ },
3944
+ {
3945
+ "name": "tabbar-item-ink",
3946
+ "tier": "component",
3947
+ "type": "color",
3948
+ "group": "components",
3949
+ "value": "var(--iox-text-muted)"
3950
+ },
3951
+ {
3952
+ "name": "tabbar-item-current-ink",
3953
+ "tier": "component",
3954
+ "type": "color",
3955
+ "group": "components",
3956
+ "value": "var(--iox-accent-text)"
3957
+ },
3958
+ {
3959
+ "name": "tabbar-indicator",
3960
+ "tier": "component",
3961
+ "type": "color",
3962
+ "group": "components",
3963
+ "value": "var(--iox-surface-2)"
3964
+ },
3965
+ {
3966
+ "name": "tabbar-label-size",
3967
+ "tier": "component",
3968
+ "type": "size",
3969
+ "group": "components",
3970
+ "value": "var(--iox-size-label)"
3971
+ },
3746
3972
  {
3747
3973
  "name": "heading-color",
3748
3974
  "tier": "component",
@@ -5203,6 +5429,104 @@ const SPEC_FLAVOR_PACKS = [
5203
5429
  "group": "components",
5204
5430
  "value": "underline"
5205
5431
  },
5432
+ {
5433
+ "name": "link-current-color",
5434
+ "tier": "component",
5435
+ "type": "color",
5436
+ "group": "components",
5437
+ "value": "var(--iox-text)"
5438
+ },
5439
+ {
5440
+ "name": "link-current-decoration",
5441
+ "tier": "component",
5442
+ "type": "keyword",
5443
+ "group": "components",
5444
+ "value": "underline 2px var(--iox-accent-text)"
5445
+ },
5446
+ {
5447
+ "name": "tabbar-bg",
5448
+ "tier": "component",
5449
+ "type": "color",
5450
+ "group": "components",
5451
+ "value": "var(--iox-nav-bg)"
5452
+ },
5453
+ {
5454
+ "name": "tabbar-border",
5455
+ "tier": "component",
5456
+ "type": "color",
5457
+ "group": "components",
5458
+ "value": "var(--iox-nav-border)"
5459
+ },
5460
+ {
5461
+ "name": "tabbar-border-width",
5462
+ "tier": "component",
5463
+ "type": "size",
5464
+ "group": "components",
5465
+ "value": "var(--iox-border-width) 0px 0px 0px"
5466
+ },
5467
+ {
5468
+ "name": "tabbar-radius",
5469
+ "tier": "component",
5470
+ "type": "radius",
5471
+ "group": "components",
5472
+ "value": "0px"
5473
+ },
5474
+ {
5475
+ "name": "tabbar-shadow",
5476
+ "tier": "component",
5477
+ "type": "shadow",
5478
+ "group": "components",
5479
+ "value": "none"
5480
+ },
5481
+ {
5482
+ "name": "tabbar-backdrop",
5483
+ "tier": "component",
5484
+ "type": "effect",
5485
+ "group": "components",
5486
+ "value": "var(--iox-nav-backdrop)"
5487
+ },
5488
+ {
5489
+ "name": "tabbar-inset",
5490
+ "tier": "component",
5491
+ "type": "size",
5492
+ "group": "components",
5493
+ "value": "0px"
5494
+ },
5495
+ {
5496
+ "name": "tabbar-height",
5497
+ "tier": "component",
5498
+ "type": "size",
5499
+ "group": "components",
5500
+ "value": "64px"
5501
+ },
5502
+ {
5503
+ "name": "tabbar-item-ink",
5504
+ "tier": "component",
5505
+ "type": "color",
5506
+ "group": "components",
5507
+ "value": "var(--iox-text-muted)"
5508
+ },
5509
+ {
5510
+ "name": "tabbar-item-current-ink",
5511
+ "tier": "component",
5512
+ "type": "color",
5513
+ "group": "components",
5514
+ "value": "var(--iox-accent-text)"
5515
+ },
5516
+ {
5517
+ "name": "tabbar-indicator",
5518
+ "tier": "component",
5519
+ "type": "color",
5520
+ "group": "components",
5521
+ "value": "var(--iox-surface-2)"
5522
+ },
5523
+ {
5524
+ "name": "tabbar-label-size",
5525
+ "tier": "component",
5526
+ "type": "size",
5527
+ "group": "components",
5528
+ "value": "var(--iox-size-label)"
5529
+ },
5206
5530
  {
5207
5531
  "name": "heading-color",
5208
5532
  "tier": "component",
@@ -6657,39 +6981,138 @@ const SPEC_FLAVOR_PACKS = [
6657
6981
  "value": "underline"
6658
6982
  },
6659
6983
  {
6660
- "name": "heading-color",
6984
+ "name": "link-current-color",
6661
6985
  "tier": "component",
6662
6986
  "type": "color",
6663
6987
  "group": "components",
6664
6988
  "value": "var(--iox-text)"
6665
6989
  },
6666
6990
  {
6667
- "name": "eyebrow-color",
6991
+ "name": "link-current-decoration",
6668
6992
  "tier": "component",
6669
- "type": "color",
6993
+ "type": "keyword",
6670
6994
  "group": "components",
6671
- "value": "var(--iox-accent-text)"
6995
+ "value": "underline 2px var(--iox-accent-text)"
6672
6996
  },
6673
6997
  {
6674
- "name": "icon-color",
6998
+ "name": "tabbar-bg",
6675
6999
  "tier": "component",
6676
7000
  "type": "color",
6677
7001
  "group": "components",
6678
- "value": "var(--iox-accent-text)"
7002
+ "value": "var(--iox-surface)",
7003
+ "overridden": true
6679
7004
  },
6680
7005
  {
6681
- "name": "divider-color",
7006
+ "name": "tabbar-border",
6682
7007
  "tier": "component",
6683
7008
  "type": "color",
6684
7009
  "group": "components",
6685
- "value": "var(--iox-line)"
7010
+ "value": "var(--iox-nav-border)"
6686
7011
  },
6687
7012
  {
6688
- "name": "badge-radius",
7013
+ "name": "tabbar-border-width",
6689
7014
  "tier": "component",
6690
- "type": "radius",
7015
+ "type": "size",
6691
7016
  "group": "components",
6692
- "value": "var(--iox-radius-pill)"
7017
+ "value": "var(--iox-border-width) 0px 0px 0px"
7018
+ },
7019
+ {
7020
+ "name": "tabbar-radius",
7021
+ "tier": "component",
7022
+ "type": "radius",
7023
+ "group": "components",
7024
+ "value": "0px"
7025
+ },
7026
+ {
7027
+ "name": "tabbar-shadow",
7028
+ "tier": "component",
7029
+ "type": "shadow",
7030
+ "group": "components",
7031
+ "value": "none"
7032
+ },
7033
+ {
7034
+ "name": "tabbar-backdrop",
7035
+ "tier": "component",
7036
+ "type": "effect",
7037
+ "group": "components",
7038
+ "value": "var(--iox-nav-backdrop)"
7039
+ },
7040
+ {
7041
+ "name": "tabbar-inset",
7042
+ "tier": "component",
7043
+ "type": "size",
7044
+ "group": "components",
7045
+ "value": "0px"
7046
+ },
7047
+ {
7048
+ "name": "tabbar-height",
7049
+ "tier": "component",
7050
+ "type": "size",
7051
+ "group": "components",
7052
+ "value": "64px"
7053
+ },
7054
+ {
7055
+ "name": "tabbar-item-ink",
7056
+ "tier": "component",
7057
+ "type": "color",
7058
+ "group": "components",
7059
+ "value": "var(--iox-text-muted)"
7060
+ },
7061
+ {
7062
+ "name": "tabbar-item-current-ink",
7063
+ "tier": "component",
7064
+ "type": "color",
7065
+ "group": "components",
7066
+ "value": "var(--iox-accent-text)"
7067
+ },
7068
+ {
7069
+ "name": "tabbar-indicator",
7070
+ "tier": "component",
7071
+ "type": "color",
7072
+ "group": "components",
7073
+ "value": "var(--iox-surface-2)"
7074
+ },
7075
+ {
7076
+ "name": "tabbar-label-size",
7077
+ "tier": "component",
7078
+ "type": "size",
7079
+ "group": "components",
7080
+ "value": "var(--iox-size-label)"
7081
+ },
7082
+ {
7083
+ "name": "heading-color",
7084
+ "tier": "component",
7085
+ "type": "color",
7086
+ "group": "components",
7087
+ "value": "var(--iox-text)"
7088
+ },
7089
+ {
7090
+ "name": "eyebrow-color",
7091
+ "tier": "component",
7092
+ "type": "color",
7093
+ "group": "components",
7094
+ "value": "var(--iox-accent-text)"
7095
+ },
7096
+ {
7097
+ "name": "icon-color",
7098
+ "tier": "component",
7099
+ "type": "color",
7100
+ "group": "components",
7101
+ "value": "var(--iox-accent-text)"
7102
+ },
7103
+ {
7104
+ "name": "divider-color",
7105
+ "tier": "component",
7106
+ "type": "color",
7107
+ "group": "components",
7108
+ "value": "var(--iox-line)"
7109
+ },
7110
+ {
7111
+ "name": "badge-radius",
7112
+ "tier": "component",
7113
+ "type": "radius",
7114
+ "group": "components",
7115
+ "value": "var(--iox-radius-pill)"
6693
7116
  },
6694
7117
  {
6695
7118
  "name": "badge-pad",
@@ -8139,6 +8562,110 @@ const SPEC_FLAVOR_PACKS = [
8139
8562
  "group": "components",
8140
8563
  "value": "underline"
8141
8564
  },
8565
+ {
8566
+ "name": "link-current-color",
8567
+ "tier": "component",
8568
+ "type": "color",
8569
+ "group": "components",
8570
+ "value": "var(--iox-text)"
8571
+ },
8572
+ {
8573
+ "name": "link-current-decoration",
8574
+ "tier": "component",
8575
+ "type": "keyword",
8576
+ "group": "components",
8577
+ "value": "underline 2px var(--iox-accent-text)"
8578
+ },
8579
+ {
8580
+ "name": "tabbar-bg",
8581
+ "tier": "component",
8582
+ "type": "color",
8583
+ "group": "components",
8584
+ "value": "var(--iox-surface-glass-strong)",
8585
+ "overridden": true
8586
+ },
8587
+ {
8588
+ "name": "tabbar-border",
8589
+ "tier": "component",
8590
+ "type": "color",
8591
+ "group": "components",
8592
+ "value": "var(--iox-glass-border)",
8593
+ "overridden": true
8594
+ },
8595
+ {
8596
+ "name": "tabbar-border-width",
8597
+ "tier": "component",
8598
+ "type": "size",
8599
+ "group": "components",
8600
+ "value": "var(--iox-border-width)",
8601
+ "overridden": true
8602
+ },
8603
+ {
8604
+ "name": "tabbar-radius",
8605
+ "tier": "component",
8606
+ "type": "radius",
8607
+ "group": "components",
8608
+ "value": "var(--iox-radius-xl)",
8609
+ "overridden": true
8610
+ },
8611
+ {
8612
+ "name": "tabbar-shadow",
8613
+ "tier": "component",
8614
+ "type": "shadow",
8615
+ "group": "components",
8616
+ "value": "var(--iox-nav-shadow)",
8617
+ "overridden": true
8618
+ },
8619
+ {
8620
+ "name": "tabbar-backdrop",
8621
+ "tier": "component",
8622
+ "type": "effect",
8623
+ "group": "components",
8624
+ "value": "var(--iox-nav-backdrop)"
8625
+ },
8626
+ {
8627
+ "name": "tabbar-inset",
8628
+ "tier": "component",
8629
+ "type": "size",
8630
+ "group": "components",
8631
+ "value": "10px",
8632
+ "overridden": true
8633
+ },
8634
+ {
8635
+ "name": "tabbar-height",
8636
+ "tier": "component",
8637
+ "type": "size",
8638
+ "group": "components",
8639
+ "value": "64px"
8640
+ },
8641
+ {
8642
+ "name": "tabbar-item-ink",
8643
+ "tier": "component",
8644
+ "type": "color",
8645
+ "group": "components",
8646
+ "value": "var(--iox-text-muted)"
8647
+ },
8648
+ {
8649
+ "name": "tabbar-item-current-ink",
8650
+ "tier": "component",
8651
+ "type": "color",
8652
+ "group": "components",
8653
+ "value": "var(--iox-accent-text)"
8654
+ },
8655
+ {
8656
+ "name": "tabbar-indicator",
8657
+ "tier": "component",
8658
+ "type": "color",
8659
+ "group": "components",
8660
+ "value": "var(--iox-surface-2)"
8661
+ },
8662
+ {
8663
+ "name": "tabbar-label-size",
8664
+ "tier": "component",
8665
+ "type": "size",
8666
+ "group": "components",
8667
+ "value": "var(--iox-size-label)"
8668
+ },
8142
8669
  {
8143
8670
  "name": "heading-color",
8144
8671
  "tier": "component",
@@ -9590,6 +10117,105 @@ const SPEC_FLAVOR_PACKS = [
9590
10117
  "group": "components",
9591
10118
  "value": "underline"
9592
10119
  },
10120
+ {
10121
+ "name": "link-current-color",
10122
+ "tier": "component",
10123
+ "type": "color",
10124
+ "group": "components",
10125
+ "value": "var(--iox-text)"
10126
+ },
10127
+ {
10128
+ "name": "link-current-decoration",
10129
+ "tier": "component",
10130
+ "type": "keyword",
10131
+ "group": "components",
10132
+ "value": "underline 2px var(--iox-accent-text)"
10133
+ },
10134
+ {
10135
+ "name": "tabbar-bg",
10136
+ "tier": "component",
10137
+ "type": "color",
10138
+ "group": "components",
10139
+ "value": "var(--iox-nav-bg)"
10140
+ },
10141
+ {
10142
+ "name": "tabbar-border",
10143
+ "tier": "component",
10144
+ "type": "color",
10145
+ "group": "components",
10146
+ "value": "var(--iox-nav-border)"
10147
+ },
10148
+ {
10149
+ "name": "tabbar-border-width",
10150
+ "tier": "component",
10151
+ "type": "size",
10152
+ "group": "components",
10153
+ "value": "0px",
10154
+ "overridden": true
10155
+ },
10156
+ {
10157
+ "name": "tabbar-radius",
10158
+ "tier": "component",
10159
+ "type": "radius",
10160
+ "group": "components",
10161
+ "value": "0px"
10162
+ },
10163
+ {
10164
+ "name": "tabbar-shadow",
10165
+ "tier": "component",
10166
+ "type": "shadow",
10167
+ "group": "components",
10168
+ "value": "none"
10169
+ },
10170
+ {
10171
+ "name": "tabbar-backdrop",
10172
+ "tier": "component",
10173
+ "type": "effect",
10174
+ "group": "components",
10175
+ "value": "var(--iox-nav-backdrop)"
10176
+ },
10177
+ {
10178
+ "name": "tabbar-inset",
10179
+ "tier": "component",
10180
+ "type": "size",
10181
+ "group": "components",
10182
+ "value": "0px"
10183
+ },
10184
+ {
10185
+ "name": "tabbar-height",
10186
+ "tier": "component",
10187
+ "type": "size",
10188
+ "group": "components",
10189
+ "value": "64px"
10190
+ },
10191
+ {
10192
+ "name": "tabbar-item-ink",
10193
+ "tier": "component",
10194
+ "type": "color",
10195
+ "group": "components",
10196
+ "value": "var(--iox-text-muted)"
10197
+ },
10198
+ {
10199
+ "name": "tabbar-item-current-ink",
10200
+ "tier": "component",
10201
+ "type": "color",
10202
+ "group": "components",
10203
+ "value": "var(--iox-accent-text)"
10204
+ },
10205
+ {
10206
+ "name": "tabbar-indicator",
10207
+ "tier": "component",
10208
+ "type": "color",
10209
+ "group": "components",
10210
+ "value": "var(--iox-surface-2)"
10211
+ },
10212
+ {
10213
+ "name": "tabbar-label-size",
10214
+ "tier": "component",
10215
+ "type": "size",
10216
+ "group": "components",
10217
+ "value": "var(--iox-size-label)"
10218
+ },
9593
10219
  {
9594
10220
  "name": "heading-color",
9595
10221
  "tier": "component",
@@ -11045,6 +11671,106 @@ const SPEC_FLAVOR_PACKS = [
11045
11671
  "group": "components",
11046
11672
  "value": "underline"
11047
11673
  },
11674
+ {
11675
+ "name": "link-current-color",
11676
+ "tier": "component",
11677
+ "type": "color",
11678
+ "group": "components",
11679
+ "value": "var(--iox-text)"
11680
+ },
11681
+ {
11682
+ "name": "link-current-decoration",
11683
+ "tier": "component",
11684
+ "type": "keyword",
11685
+ "group": "components",
11686
+ "value": "underline 2px var(--iox-accent-text)"
11687
+ },
11688
+ {
11689
+ "name": "tabbar-bg",
11690
+ "tier": "component",
11691
+ "type": "color",
11692
+ "group": "components",
11693
+ "value": "var(--iox-nav-bg)"
11694
+ },
11695
+ {
11696
+ "name": "tabbar-border",
11697
+ "tier": "component",
11698
+ "type": "color",
11699
+ "group": "components",
11700
+ "value": "var(--iox-line-strong)",
11701
+ "overridden": true
11702
+ },
11703
+ {
11704
+ "name": "tabbar-border-width",
11705
+ "tier": "component",
11706
+ "type": "size",
11707
+ "group": "components",
11708
+ "value": "var(--iox-border-width) 0px 0px 0px"
11709
+ },
11710
+ {
11711
+ "name": "tabbar-radius",
11712
+ "tier": "component",
11713
+ "type": "radius",
11714
+ "group": "components",
11715
+ "value": "0px"
11716
+ },
11717
+ {
11718
+ "name": "tabbar-shadow",
11719
+ "tier": "component",
11720
+ "type": "shadow",
11721
+ "group": "components",
11722
+ "value": "none"
11723
+ },
11724
+ {
11725
+ "name": "tabbar-backdrop",
11726
+ "tier": "component",
11727
+ "type": "effect",
11728
+ "group": "components",
11729
+ "value": "var(--iox-nav-backdrop)"
11730
+ },
11731
+ {
11732
+ "name": "tabbar-inset",
11733
+ "tier": "component",
11734
+ "type": "size",
11735
+ "group": "components",
11736
+ "value": "0px"
11737
+ },
11738
+ {
11739
+ "name": "tabbar-height",
11740
+ "tier": "component",
11741
+ "type": "size",
11742
+ "group": "components",
11743
+ "value": "64px"
11744
+ },
11745
+ {
11746
+ "name": "tabbar-item-ink",
11747
+ "tier": "component",
11748
+ "type": "color",
11749
+ "group": "components",
11750
+ "value": "var(--iox-text-muted)"
11751
+ },
11752
+ {
11753
+ "name": "tabbar-item-current-ink",
11754
+ "tier": "component",
11755
+ "type": "color",
11756
+ "group": "components",
11757
+ "value": "var(--iox-text)",
11758
+ "overridden": true
11759
+ },
11760
+ {
11761
+ "name": "tabbar-indicator",
11762
+ "tier": "component",
11763
+ "type": "color",
11764
+ "group": "components",
11765
+ "value": "var(--iox-surface-2)"
11766
+ },
11767
+ {
11768
+ "name": "tabbar-label-size",
11769
+ "tier": "component",
11770
+ "type": "size",
11771
+ "group": "components",
11772
+ "value": "var(--iox-size-label)"
11773
+ },
11048
11774
  {
11049
11775
  "name": "heading-color",
11050
11776
  "tier": "component",
@@ -11841,8 +12567,10 @@ var ElementStyleState;
11841
12567
  ElementStyleState["Hover"] = "hover";
11842
12568
  ElementStyleState["Active"] = "active";
11843
12569
  ElementStyleState["Focus"] = "focus";
12570
+ /** The page you're on (CC1 N2): compiles to `[aria-current="page"]`, never a pseudo-class. */
12571
+ ElementStyleState["Current"] = "current";
11844
12572
  })(ElementStyleState || (ElementStyleState = {}));
11845
- const ELEMENT_STYLE_STATES = [ElementStyleState.Hover, ElementStyleState.Active, ElementStyleState.Focus];
12573
+ const ELEMENT_STYLE_STATES = [ElementStyleState.Hover, ElementStyleState.Active, ElementStyleState.Focus, ElementStyleState.Current];
11846
12574
  const ELEMENT_STYLES = SPEC_ELEMENT_STYLES;
11847
12575
  /** Legacy `Button.variant` → the element style it maps to (adopt, DS7). */
11848
12576
  const BUTTON_VARIANT_TO_STYLE = SPEC_BUTTON_VARIANT_TO_STYLE;
@@ -11919,7 +12647,7 @@ function ownedEntries(style) {
11919
12647
  }
11920
12648
  return out;
11921
12649
  }
11922
- /** Every trait the style owns with the value it writes — base first, then hover/active/focus. */
12650
+ /** Every trait the style owns with the value it writes — base first, then hover/active/focus/current. */
11923
12651
  function ownedTraitsOf(style) {
11924
12652
  return ownedEntries(style);
11925
12653
  }
@@ -11948,7 +12676,7 @@ function writeEntries(target, style, skip = []) {
11948
12676
  target.elementStyle = style.id;
11949
12677
  return unknown;
11950
12678
  }
11951
- /** Write the style's exact base map and its hover/active/focus maps into the target. */
12679
+ /** Write the style's exact base map and its hover/active/focus/current maps into the target. */
11952
12680
  function applyElementStyle(target, id) {
11953
12681
  const style = elementStyleById(id);
11954
12682
  if (!style)
@@ -12302,6 +13030,40 @@ function colorSchemeClass(id) {
12302
13030
  function roleClass(role) {
12303
13031
  return typeof role === 'string' && ROLE_SHAPE.test(role) ? `${ROLE_PREFIX}${role.replace(/\./g, '-')}` : null;
12304
13032
  }
13033
+ /** The element style whose wearer is the phone's bottom navigation bar (CC1, R1). */
13034
+ const BOTTOM_BAR_STYLE = 'bottom-bar';
13035
+ /** The page reserves the bar's height wherever this class is on the page… */
13036
+ const BAR_RESERVE_CLASS = 'iox-bar-reserve';
13037
+ /** …the responsive Breakpoint ids that can hold an override, widest first (a spec pins it to BREAKPOINTS). */
13038
+ const BAR_RESERVE_BREAKPOINTS = ['laptop', 'tablet', 'mobile', 'small'];
13039
+ function baseDisplayOf(node) {
13040
+ if (node.styleProps && 'display' in node.styleProps)
13041
+ return node.styleProps['display'];
13042
+ for (const group of node.styleTraits ?? []) {
13043
+ const hit = group.traits?.find(t => t?.name === 'display');
13044
+ if (hit)
13045
+ return hit.default;
13046
+ }
13047
+ return undefined;
13048
+ }
13049
+ /**
13050
+ * The class that makes the page reserve a bottom bar's height (iox-design.css: `padding-bottom` and
13051
+ * `scroll-padding-bottom`, WCAG 2.4.11), only at the widths where the bar SHOWS: `iox-bar-reserve` when
13052
+ * it shows at every width, `iox-bar-reserve-<bp>` when it is hidden at base and shown from that
13053
+ * breakpoint down (the phone shape's own rule), null when it never shows or is not a bar.
13054
+ */
13055
+ function barReserveClass(node) {
13056
+ if (!node || node.elementStyle !== BOTTOM_BAR_STYLE)
13057
+ return null;
13058
+ if (baseDisplayOf(node) !== 'none')
13059
+ return BAR_RESERVE_CLASS;
13060
+ for (const bp of BAR_RESERVE_BREAKPOINTS) {
13061
+ const display = node.responsive?.[bp]?.styleProps?.['display'];
13062
+ if (display !== undefined && display !== 'none')
13063
+ return `${BAR_RESERVE_CLASS}-${bp}`;
13064
+ }
13065
+ return null;
13066
+ }
12305
13067
  /** A node's `colorScheme`, from `props` (serialized) or its trait (builder). */
12306
13068
  function colorSchemeOf(node) {
12307
13069
  if (!node)
@@ -12316,13 +13078,13 @@ function colorSchemeOf(node) {
12316
13078
  function hasElementStyleMarker(node) {
12317
13079
  return elementStyleClass(node?.elementStyle) !== null;
12318
13080
  }
12319
- /** The classes a node renders: `'iox-es iox-es-card iox-scheme-inverse'`, or `''` for none. */
13081
+ /** The classes a node renders: `'iox-es iox-es-card iox-scheme-inverse'` (+ a bottom bar's reserve class), or `''` for none. */
12320
13082
  function nodeDesignClasses(node) {
12321
13083
  const marker = elementStyleClass(node?.elementStyle);
12322
- return [marker ? `${ELEMENT_STYLE_MARKER_CLASS} ${marker}` : '', colorSchemeClass(colorSchemeOf(node)) ?? '', roleClass(node?.role) ?? '']
13084
+ return [marker ? `${ELEMENT_STYLE_MARKER_CLASS} ${marker}` : '', colorSchemeClass(colorSchemeOf(node)) ?? '', roleClass(node?.role) ?? '', barReserveClass(node) ?? '']
12323
13085
  .filter(Boolean).join(' ');
12324
13086
  }
12325
- const isDesignClass = (c) => c === ELEMENT_STYLE_MARKER_CLASS || c.startsWith(MARKER_PREFIX) || c.startsWith(SCHEME_PREFIX) || c.startsWith(ROLE_PREFIX);
13087
+ const isDesignClass = (c) => c === ELEMENT_STYLE_MARKER_CLASS || c.startsWith(MARKER_PREFIX) || c.startsWith(SCHEME_PREFIX) || c.startsWith(ROLE_PREFIX) || c.startsWith(BAR_RESERVE_CLASS);
12326
13088
  /** Make an element's design classes match the node — the live switch on the canvas and the
12327
13089
  * component path's one-time stamp. Removes stale ones; touches no other class. */
12328
13090
  function syncNodeDesignClasses(el, node) {
@@ -13101,7 +13863,11 @@ function auditDesignContrast(rows, mode) {
13101
13863
  null,
13102
13864
  ...styles.filter(e => CONTAINER_GROUPS.has(e.group) && ownStyle(e)['backgroundColor'] && e.id !== SECTION_STYLE),
13103
13865
  ];
13104
- const content = styles.filter(e => !CONTAINER_GROUPS.has(e.group) && (ownStyle(e)['color'] || ownStyle(e)['backgroundColor'])
13866
+ // An ITEM style — a Layout style that paints ink but no fill of its own (the bottom bar's item, CC1) —
13867
+ // sits ON a container like any content, so it is judged as content (the contract's audit, 1:1).
13868
+ const isItem = (e) => CONTAINER_GROUPS.has(e.group) && !ownStyle(e)['backgroundColor']
13869
+ && !!ownStyle(e)['color'] && ownStyle(e)['color'] !== 'inherit';
13870
+ const content = styles.filter(e => (!CONTAINER_GROUPS.has(e.group) || isItem(e)) && (ownStyle(e)['color'] || ownStyle(e)['backgroundColor'])
13105
13871
  && e.group !== FORMS_GROUP && !NOT_CONTENT.has(e.id) && !SCRIM_STYLES.has(e.id));
13106
13872
  const notices = styles.filter(e => e.group === FORMS_GROUP && ownStyle(e)['color']);
13107
13873
  const section = ownStyle(byId.get(SECTION_STYLE));
@@ -13133,7 +13899,12 @@ function auditDesignContrast(rows, mode) {
13133
13899
  };
13134
13900
  check(box?.id ?? SECTION, 'text', boxInk, bgs, WCAG_AA_TEXT);
13135
13901
  for (const e of content) {
13136
- const states = [['base', ownStyle(e)], ...(e.hover ? [['hover', { ...ownStyle(e), ...e.hover }]] : [])];
13902
+ // `current` (CC1 N2): the page-you're-on link and bar item, on every ground the state can sit on.
13903
+ const states = [
13904
+ ['base', ownStyle(e)],
13905
+ ...(e.hover ? [['hover', { ...ownStyle(e), ...e.hover }]] : []),
13906
+ ...(e.current ? [['current', { ...ownStyle(e), ...e.current }]] : []),
13907
+ ];
13137
13908
  const glyph = e.group === GLYPH_GROUP;
13138
13909
  for (const [state, s] of states) {
13139
13910
  const fill = s['backgroundColor'] ? paintColours(resolveIn(values, s['backgroundColor']), boxInk) : [];
@@ -14474,5 +15245,5 @@ function planFontFamilyRemoval(existing, previous, family) {
14474
15245
  * Generated bundle index. Do not edit.
14475
15246
  */
14476
15247
 
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 };
15248
+ export { ACCENT_TOKEN_NAMES, AdoptOutcome, AdoptSkipReason, BAR_RESERVE_BREAKPOINTS, BAR_RESERVE_CLASS, 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, 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, barReserveClass, 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 };
14478
15249
  //# sourceMappingURL=vectoriox-iox-ui-design-core.mjs.map