@kerfjs/ui 5.0.0-beta.59 → 5.0.0-beta.60

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 (117) hide show
  1. package/ai/component-catalog.json +99 -10
  2. package/ai/component-composition.json +78 -6
  3. package/ai/components/README.md +1 -1
  4. package/ai/components/floating-toolbar.md +3 -1
  5. package/ai/components/list-header.md +1 -1
  6. package/ai/components/list-item.md +4 -1
  7. package/ai/components/resize.md +6 -1
  8. package/ai/components/select.md +5 -3
  9. package/ai/components/state-banner.md +3 -1
  10. package/ai/components/tab-bar.md +1 -1
  11. package/ai/components/tabs.md +2 -1
  12. package/ai/components/text.md +2 -1
  13. package/ai/components/token-search-field.md +1 -1
  14. package/ai/components/toolbar-text.md +4 -2
  15. package/ai/components/toolbar.md +2 -1
  16. package/ai/components/value-table.md +2 -1
  17. package/ai/public-api-signatures-v1.md +55 -18
  18. package/ai/skill.md +18 -6
  19. package/ai/webawesome-jsx-signatures-v1.md +1 -1
  20. package/dist/app-tab.d.ts +4 -1
  21. package/dist/app-tab.js +1 -1
  22. package/dist/catalog.js +6 -6
  23. package/dist/{chunk-2CCMJTVY.js → chunk-2OXQHM7I.js} +5 -5
  24. package/dist/{chunk-2CCMJTVY.js.map → chunk-2OXQHM7I.js.map} +1 -1
  25. package/dist/{chunk-XDKAYSVD.js → chunk-3SXMEK3B.js} +1 -1
  26. package/dist/chunk-3SXMEK3B.js.map +1 -0
  27. package/dist/{chunk-QOWG4ZCL.js → chunk-5I7OHCIP.js} +5 -2
  28. package/dist/chunk-5I7OHCIP.js.map +1 -0
  29. package/dist/{chunk-W4XKTST6.js → chunk-5PESG2VP.js} +3 -3
  30. package/dist/{chunk-W4XKTST6.js.map → chunk-5PESG2VP.js.map} +1 -1
  31. package/dist/{chunk-UX2VVXZ3.js → chunk-5Q3N6EV7.js} +2 -2
  32. package/dist/{chunk-UX2VVXZ3.js.map → chunk-5Q3N6EV7.js.map} +1 -1
  33. package/dist/{chunk-UFYZHYWU.js → chunk-A3CKOW2R.js} +4 -3
  34. package/dist/chunk-A3CKOW2R.js.map +1 -0
  35. package/dist/{chunk-UXT7TE6B.js → chunk-AUKT3KMG.js} +5 -1
  36. package/dist/chunk-AUKT3KMG.js.map +1 -0
  37. package/dist/{chunk-EVYKTVBQ.js → chunk-GLDWRCAM.js} +5 -1
  38. package/dist/chunk-GLDWRCAM.js.map +1 -0
  39. package/dist/{chunk-M7QV3IHH.js → chunk-I3Q7KKYM.js} +5 -1
  40. package/dist/chunk-I3Q7KKYM.js.map +1 -0
  41. package/dist/{chunk-3CGQ7ZNO.js → chunk-IA7TMD4Y.js} +2 -2
  42. package/dist/{chunk-3CGQ7ZNO.js.map → chunk-IA7TMD4Y.js.map} +1 -1
  43. package/dist/{chunk-VHADGP3B.js → chunk-KLJKU6ZL.js} +5 -1
  44. package/dist/chunk-KLJKU6ZL.js.map +1 -0
  45. package/dist/{chunk-6YFHCLHG.js → chunk-MERWRTBG.js} +1 -1
  46. package/dist/chunk-MERWRTBG.js.map +1 -0
  47. package/dist/{chunk-KH6VUGHU.js → chunk-NNMLEDMD.js} +2 -2
  48. package/dist/{chunk-KH6VUGHU.js.map → chunk-NNMLEDMD.js.map} +1 -1
  49. package/dist/{chunk-6CINWX2E.js → chunk-P7D3EMXM.js} +3 -1
  50. package/dist/chunk-P7D3EMXM.js.map +1 -0
  51. package/dist/{chunk-QPUPLNNB.js → chunk-T57AXDFM.js} +2 -2
  52. package/dist/{chunk-QPUPLNNB.js.map → chunk-T57AXDFM.js.map} +1 -1
  53. package/dist/{chunk-WOUF7YXM.js → chunk-T66UNBXL.js} +5 -2
  54. package/dist/chunk-T66UNBXL.js.map +1 -0
  55. package/dist/{chunk-XQV2B4IL.js → chunk-UIDKY4UB.js} +2 -2
  56. package/dist/{chunk-XQV2B4IL.js.map → chunk-UIDKY4UB.js.map} +1 -1
  57. package/dist/{chunk-OUK6QRDR.js → chunk-WPLIO5WJ.js} +5 -2
  58. package/dist/chunk-WPLIO5WJ.js.map +1 -0
  59. package/dist/collapsible-panel.d.ts +1 -0
  60. package/dist/collapsible-panel.js +2 -2
  61. package/dist/floating-toolbar.d.ts +8 -2
  62. package/dist/floating-toolbar.js +1 -1
  63. package/dist/index.js +13 -13
  64. package/dist/list-header.js +1 -1
  65. package/dist/list-item.d.ts +5 -2
  66. package/dist/list-item.js +1 -1
  67. package/dist/nav-stack.js +1 -1
  68. package/dist/resizable-region.d.ts +8 -3
  69. package/dist/resizable-region.js +1 -1
  70. package/dist/select.d.ts +4 -1
  71. package/dist/select.js +1 -1
  72. package/dist/split-view.d.ts +1 -0
  73. package/dist/split-view.js +2 -2
  74. package/dist/state-banner.d.ts +8 -2
  75. package/dist/state-banner.js +1 -1
  76. package/dist/styles/app-tab.css +3 -0
  77. package/dist/styles/floating-toolbar.css +56 -4
  78. package/dist/styles/list-header.css +15 -7
  79. package/dist/styles/list-item.css +60 -18
  80. package/dist/styles/resizable-region.css +33 -1
  81. package/dist/styles/select.css +26 -0
  82. package/dist/styles/state-banner.css +37 -0
  83. package/dist/styles/tab-bar.css +25 -10
  84. package/dist/styles/text.css +9 -0
  85. package/dist/styles/token-search-field.css +1 -1
  86. package/dist/styles/toolbar-text.css +4 -0
  87. package/dist/styles/toolbar.css +83 -1
  88. package/dist/styles/value-table.css +16 -3
  89. package/dist/text.d.ts +7 -2
  90. package/dist/text.js +1 -1
  91. package/dist/toolbar-text.d.ts +1 -1
  92. package/dist/toolbar-text.js +1 -1
  93. package/dist/toolbar.d.ts +4 -2
  94. package/dist/toolbar.js +1 -1
  95. package/dist/value-table.d.ts +3 -1
  96. package/dist/value-table.js +1 -1
  97. package/dist/wire-catalog.js +1 -1
  98. package/dist/wire-resizable-regions.js +1 -1
  99. package/dist/wire-token-search-fields.js +1 -1
  100. package/dist/wire-workbench.js +1 -1
  101. package/dist/workbench.js +1 -1
  102. package/docs/collapsible-panel.md +7 -1
  103. package/docs/component-selection.md +61 -0
  104. package/docs/document-baseline.md +3 -0
  105. package/llms.txt +32 -0
  106. package/package.json +1 -1
  107. package/dist/chunk-6CINWX2E.js.map +0 -1
  108. package/dist/chunk-6YFHCLHG.js.map +0 -1
  109. package/dist/chunk-EVYKTVBQ.js.map +0 -1
  110. package/dist/chunk-M7QV3IHH.js.map +0 -1
  111. package/dist/chunk-OUK6QRDR.js.map +0 -1
  112. package/dist/chunk-QOWG4ZCL.js.map +0 -1
  113. package/dist/chunk-UFYZHYWU.js.map +0 -1
  114. package/dist/chunk-UXT7TE6B.js.map +0 -1
  115. package/dist/chunk-VHADGP3B.js.map +0 -1
  116. package/dist/chunk-WOUF7YXM.js.map +0 -1
  117. package/dist/chunk-XDKAYSVD.js.map +0 -1
@@ -1420,6 +1420,7 @@
1420
1420
  "stacked zones at compact or narrow widths",
1421
1421
  "content-driven wrap that keeps a heading title whole",
1422
1422
  "center priority for an expanded center control",
1423
+ "trailing priority for an expanded trailing control at compact or narrow widths",
1423
1424
  "trailing groups wrap instead of clipping",
1424
1425
  "app bar or bottom bar claiming its screen edges (safeAreaEdges)"
1425
1426
  ],
@@ -1470,7 +1471,15 @@
1470
1471
  "publicTokens": [
1471
1472
  "--kui-color-neutral-border-normal",
1472
1473
  "--kui-font-sans",
1473
- "--kui-toolbar-divider-color"
1474
+ "--kui-toolbar-center-padding-inline",
1475
+ "--kui-toolbar-divider-color",
1476
+ "--kui-toolbar-leading-min-width",
1477
+ "--kui-toolbar-leading-padding-inline",
1478
+ "--kui-toolbar-trailing-gap",
1479
+ "--kui-toolbar-trailing-justify",
1480
+ "--kui-toolbar-trailing-justify-self",
1481
+ "--kui-toolbar-trailing-padding-inline",
1482
+ "--kui-toolbar-zone-padding-inline"
1474
1483
  ],
1475
1484
  "links": {
1476
1485
  "catalogRoute": "?component=toolbar",
@@ -1725,7 +1734,9 @@
1725
1734
  "bottom",
1726
1735
  "top-end",
1727
1736
  "top-start",
1728
- "top"
1737
+ "top",
1738
+ "inline placement",
1739
+ "safe-area-aware per-edge inset"
1729
1740
  ],
1730
1741
  "accessibility": [
1731
1742
  "Give the toolbar an accessible name (label is required — it exposes role=\"toolbar\")."
@@ -1748,6 +1759,10 @@
1748
1759
  ],
1749
1760
  "publicTokens": [
1750
1761
  "--kui-floating-toolbar-inset",
1762
+ "--kui-floating-toolbar-inset-block-start",
1763
+ "--kui-floating-toolbar-inset-block-end",
1764
+ "--kui-floating-toolbar-inset-inline-start",
1765
+ "--kui-floating-toolbar-inset-inline-end",
1751
1766
  "--kui-space-m",
1752
1767
  "--kui-space-xs"
1753
1768
  ],
@@ -1763,9 +1778,9 @@
1763
1778
  "category": "Structure",
1764
1779
  "kind": "component",
1765
1780
  "source": "kerf",
1766
- "description": "Large, default, and compact toolbar identity text.",
1781
+ "description": "Extra-large through extra-small toolbar identity text.",
1767
1782
  "uses": [],
1768
- "purpose": "Large, default, and compact toolbar identity text.",
1783
+ "purpose": "Extra-large through extra-small toolbar identity text.",
1769
1784
  "publicExports": [
1770
1785
  "ToolbarText"
1771
1786
  ],
@@ -1793,9 +1808,11 @@
1793
1808
  "responsive priority"
1794
1809
  ],
1795
1810
  "variants": [
1811
+ "xlarge",
1796
1812
  "large",
1797
1813
  "default",
1798
1814
  "small",
1815
+ "xsmall",
1799
1816
  "placeholder (loading)"
1800
1817
  ],
1801
1818
  "accessibility": [
@@ -1820,6 +1837,7 @@
1820
1837
  "publicTokens": [
1821
1838
  "--kui-color-neutral-on-quiet",
1822
1839
  "--kui-color-text",
1840
+ "--kui-font-2xs",
1823
1841
  "--kui-font-2xl",
1824
1842
  "--kui-font-l",
1825
1843
  "--kui-font-m",
@@ -1873,7 +1891,8 @@
1873
1891
  "p, h1 through h6, or inline span semantic variant",
1874
1892
  "default, quiet, or danger tone",
1875
1893
  "compact, default, large, or xlarge size",
1876
- "default or monospace font"
1894
+ "default or monospace font",
1895
+ "flush item geometry and tight line height"
1877
1896
  ],
1878
1897
  "accessibility": [
1879
1898
  "Text renders a native paragraph by default; choose an h1 through h6 variant by document outline rather than appearance, or span for inline secondary text.",
@@ -1885,7 +1904,7 @@
1885
1904
  "border": "self",
1886
1905
  "padding": "self",
1887
1906
  "notes": [
1888
- "Block Text variants reset native margins and add a 1px transparent border plus the standard 8px item padding; span has no margin, border, or padding."
1907
+ "Block Text variants reset native margins and add a 1px transparent border plus the standard 8px item padding; flush removes the border and padding. Tight line height is available for compact copy. Span has no margin, border, or padding."
1889
1908
  ]
1890
1909
  },
1891
1910
  "delivery": {
@@ -1998,6 +2017,7 @@
1998
2017
  "variants": [
1999
2018
  "icon rows",
2000
2019
  "iconless rows",
2020
+ "compact density",
2001
2021
  "placeholder (loading)"
2002
2022
  ],
2003
2023
  "accessibility": [
@@ -2034,7 +2054,10 @@
2034
2054
  "--kui-space-2xs",
2035
2055
  "--kui-value-table-background",
2036
2056
  "--kui-value-table-border",
2037
- "--kui-value-table-icon-size"
2057
+ "--kui-value-table-icon-size",
2058
+ "--kui-value-table-row-columns",
2059
+ "--kui-value-table-row-padding-block",
2060
+ "--kui-value-table-row-gap"
2038
2061
  ],
2039
2062
  "links": {
2040
2063
  "catalogRoute": "?component=value-table",
@@ -2766,7 +2789,12 @@
2766
2789
  "--kui-color-neutral-border-quiet",
2767
2790
  "--kui-focus-ring",
2768
2791
  "--kui-list-header-action-icon-size",
2792
+ "--kui-list-header-border-width",
2769
2793
  "--kui-list-header-color",
2794
+ "--kui-list-header-min-height",
2795
+ "--kui-list-header-title-min-height",
2796
+ "--kui-list-header-title-padding-block",
2797
+ "--kui-list-header-title-padding-inline",
2770
2798
  "--kui-layout-inline-margin",
2771
2799
  "--kui-layout-item-gap",
2772
2800
  "--kui-layout-item-padding",
@@ -2965,6 +2993,9 @@
2965
2993
  "multiline",
2966
2994
  "placeholder (loading)",
2967
2995
  "compact density",
2996
+ "spacious density",
2997
+ "centered icon beside a multiline label",
2998
+ "drag-target state",
2968
2999
  "description and status",
2969
3000
  "busy while retaining content",
2970
3001
  "before, after, or paired group divider"
@@ -2995,6 +3026,8 @@
2995
3026
  "kui-list-item__trailing"
2996
3027
  ],
2997
3028
  "publicTokens": [
3029
+ "--kui-color-brand-border-normal",
3030
+ "--kui-color-brand-fill-quiet",
2998
3031
  "--kui-color-brand-fill-normal",
2999
3032
  "--kui-color-neutral-fill-quiet",
3000
3033
  "--kui-color-neutral-on-normal",
@@ -3002,9 +3035,25 @@
3002
3035
  "--kui-color-neutral-border-quiet",
3003
3036
  "--kui-focus-ring",
3004
3037
  "--kui-list-item-color",
3038
+ "--kui-list-item-align-items",
3039
+ "--kui-list-item-border-width",
3040
+ "--kui-list-item-columns",
3041
+ "--kui-list-item-drag-target-background",
3042
+ "--kui-list-item-drag-target-outline",
3043
+ "--kui-list-item-drag-target-outline-offset",
3044
+ "--kui-list-item-gap",
3005
3045
  "--kui-list-item-hover-background",
3046
+ "--kui-list-item-icon-color",
3047
+ "--kui-list-item-icon-size",
3048
+ "--kui-list-item-label-max-width",
3049
+ "--kui-list-item-label-weight",
3050
+ "--kui-list-item-min-height",
3051
+ "--kui-list-item-padding-block",
3052
+ "--kui-list-item-padding-inline",
3053
+ "--kui-list-item-radius",
3006
3054
  "--kui-list-item-selected-background",
3007
3055
  "--kui-list-item-selected-color",
3056
+ "--kui-list-item-trailing-color",
3008
3057
  "--kui-list-group-divider-color",
3009
3058
  "--kui-font-xs",
3010
3059
  "--kui-layout-inline-margin",
@@ -3333,7 +3382,8 @@
3333
3382
  "compact size",
3334
3383
  "segmented presentation",
3335
3384
  "icon-only accessible presentation",
3336
- "label maximum width and truncation"
3385
+ "label maximum width and truncation",
3386
+ "attention name color"
3337
3387
  ],
3338
3388
  "accessibility": [
3339
3389
  "Compose in a tablist and pair with an application-owned tabpanel.",
@@ -3362,6 +3412,7 @@
3362
3412
  "kui-app-tab__trailing"
3363
3413
  ],
3364
3414
  "publicTokens": [
3415
+ "--kui-app-tab-attention-color",
3365
3416
  "--kui-app-tab-color",
3366
3417
  "--kui-app-tab-drop-indicator",
3367
3418
  "--kui-app-tab-hover-background",
@@ -3517,7 +3568,18 @@
3517
3568
  "publicTokens": [
3518
3569
  "--kui-tab-bar-background",
3519
3570
  "--kui-tab-bar-border",
3520
- "--kui-tab-bar-divider-color"
3571
+ "--kui-tab-bar-divider-color",
3572
+ "--kui-tab-bar-strip-background",
3573
+ "--kui-tab-bar-strip-border-width",
3574
+ "--kui-tab-bar-strip-flex",
3575
+ "--kui-tab-bar-strip-gap",
3576
+ "--kui-tab-bar-strip-margin-block",
3577
+ "--kui-tab-bar-strip-min-height",
3578
+ "--kui-tab-bar-strip-overflow-block",
3579
+ "--kui-tab-bar-strip-padding",
3580
+ "--kui-tab-bar-strip-radius",
3581
+ "--kui-tab-bar-strip-scroll-padding-inline",
3582
+ "--kui-tab-bar-trailing-flex"
3521
3583
  ],
3522
3584
  "links": {
3523
3585
  "catalogRoute": "?component=tab-bar",
@@ -3749,6 +3811,7 @@
3749
3811
  "--kui-radius-pill",
3750
3812
  "--kui-token-search-background",
3751
3813
  "--kui-token-search-border",
3814
+ "--kui-token-search-editor-min-width",
3752
3815
  "--kui-token-search-line-size",
3753
3816
  "--kui-token-search-token-background",
3754
3817
  "--kui-token-search-token-foreground",
@@ -3777,6 +3840,19 @@
3777
3840
  "resizeRegionFromPointer",
3778
3841
  "wireResizableRegions"
3779
3842
  ],
3843
+ "cssValueProps": [
3844
+ {
3845
+ "path": "restoreInset",
3846
+ "grammar": "length",
3847
+ "helpers": ["px", "rem", "em", "pct", "space", "lengthVar", "calc"],
3848
+ "nonStandaloneHelpers": ["plus"],
3849
+ "shorthands": [],
3850
+ "canonicalShorthands": [],
3851
+ "exceptionalShorthands": [],
3852
+ "rawPolicy": "forbid",
3853
+ "examples": ["restoreInset={space(\"xs\")}"]
3854
+ }
3855
+ ],
3780
3856
  "useWhen": [
3781
3857
  "Provide a controlled user-resizable application pane."
3782
3858
  ],
@@ -3811,6 +3887,7 @@
3811
3887
  "clipped, scrolling, or popup-visible content",
3812
3888
  "inline, overlay, or hidden responsive presentation",
3813
3889
  "safe-area restore control"
3890
+ ,"top-corner or inline restore placement"
3814
3891
  ],
3815
3892
  "accessibility": [
3816
3893
  "Preserve separator naming, value ARIA, and keyboard behavior.",
@@ -3874,6 +3951,7 @@
3874
3951
  "--kui-focus-ring",
3875
3952
  "--kui-radius-s",
3876
3953
  "--kui-resizable-region-edge-extent",
3954
+ "--kui-resizable-region-background",
3877
3955
  "--kui-resizable-region-handle-active-color",
3878
3956
  "--kui-resizable-region-handle-color",
3879
3957
  "--kui-resizable-region-overlay-z",
@@ -3969,6 +4047,8 @@
3969
4047
  "label or icon-only selected presentation",
3970
4048
  "select- or group-owned focus ring",
3971
4049
  "label maximum width and truncation",
4050
+ "fit-content, max-content, or fill trigger width",
4051
+ "custom selected content typography and ellipsis",
3972
4052
  "multiple selection",
3973
4053
  "multiple icon-only filter trigger with a fixed triggerIcon"
3974
4054
  ],
@@ -4001,6 +4081,7 @@
4001
4081
  "kui-select--fit-menu",
4002
4082
  "kui-select--label-hidden",
4003
4083
  "kui-select__custom-selected",
4084
+ "kui-select__custom-selected-content",
4004
4085
  "kui-select__group",
4005
4086
  "kui-select__group--separated",
4006
4087
  "kui-select__group-title",
@@ -4010,7 +4091,11 @@
4010
4091
  "--kui-color-neutral-border-quiet",
4011
4092
  "--kui-color-neutral-on-quiet",
4012
4093
  "--kui-disclosure-icon-scale",
4013
- "--kui-font-2xs"
4094
+ "--kui-font-2xs",
4095
+ "--kui-select-selected-color",
4096
+ "--kui-select-selected-font-size",
4097
+ "--kui-select-selected-font-weight",
4098
+ "--kui-select-trigger-max-width"
4014
4099
  ],
4015
4100
  "links": {
4016
4101
  "catalogRoute": "?component=select",
@@ -4249,6 +4334,8 @@
4249
4334
  "status",
4250
4335
  "alert",
4251
4336
  "badge",
4337
+ "stacked copy",
4338
+ "action below",
4252
4339
  "placeholder (loading)"
4253
4340
  ],
4254
4341
  "accessibility": [
@@ -4304,6 +4391,8 @@
4304
4391
  "--kui-state-banner-action-hover-background",
4305
4392
  "--kui-state-banner-background",
4306
4393
  "--kui-state-banner-border",
4394
+ "--kui-state-banner-copy-gap",
4395
+ "--kui-state-banner-copy-row-gap",
4307
4396
  "--kui-state-banner-danger-background",
4308
4397
  "--kui-state-banner-danger-border",
4309
4398
  "--kui-state-banner-danger-foreground",
@@ -1405,7 +1405,15 @@
1405
1405
  "publicTokens": [
1406
1406
  "--kui-color-neutral-border-normal",
1407
1407
  "--kui-font-sans",
1408
- "--kui-toolbar-divider-color"
1408
+ "--kui-toolbar-center-padding-inline",
1409
+ "--kui-toolbar-divider-color",
1410
+ "--kui-toolbar-leading-min-width",
1411
+ "--kui-toolbar-leading-padding-inline",
1412
+ "--kui-toolbar-trailing-gap",
1413
+ "--kui-toolbar-trailing-justify",
1414
+ "--kui-toolbar-trailing-justify-self",
1415
+ "--kui-toolbar-trailing-padding-inline",
1416
+ "--kui-toolbar-zone-padding-inline"
1409
1417
  ]
1410
1418
  },
1411
1419
  "diagnostics": [
@@ -1613,6 +1621,10 @@
1613
1621
  "publicClasses": ["kui-floating-toolbar"],
1614
1622
  "publicTokens": [
1615
1623
  "--kui-floating-toolbar-inset",
1624
+ "--kui-floating-toolbar-inset-block-start",
1625
+ "--kui-floating-toolbar-inset-block-end",
1626
+ "--kui-floating-toolbar-inset-inline-start",
1627
+ "--kui-floating-toolbar-inset-inline-end",
1616
1628
  "--kui-space-m",
1617
1629
  "--kui-space-xs"
1618
1630
  ]
@@ -1665,6 +1677,7 @@
1665
1677
  "publicTokens": [
1666
1678
  "--kui-color-neutral-on-quiet",
1667
1679
  "--kui-color-text",
1680
+ "--kui-font-2xs",
1668
1681
  "--kui-font-2xl",
1669
1682
  "--kui-font-l",
1670
1683
  "--kui-font-m",
@@ -1715,7 +1728,7 @@
1715
1728
  "border": "self",
1716
1729
  "padding": "self",
1717
1730
  "notes": [
1718
- "Block Text variants reset native margins and add a 1px transparent border plus the standard 8px item padding; span has no margin, border, or padding."
1731
+ "Block Text variants reset native margins and add a 1px transparent border plus the standard 8px item padding; flush removes the border and padding. Tight line height is available for compact copy. Span has no margin, border, or padding."
1719
1732
  ]
1720
1733
  }
1721
1734
  },
@@ -1843,7 +1856,10 @@
1843
1856
  "--kui-space-2xs",
1844
1857
  "--kui-value-table-background",
1845
1858
  "--kui-value-table-border",
1846
- "--kui-value-table-icon-size"
1859
+ "--kui-value-table-icon-size",
1860
+ "--kui-value-table-row-columns",
1861
+ "--kui-value-table-row-padding-block",
1862
+ "--kui-value-table-row-gap"
1847
1863
  ]
1848
1864
  },
1849
1865
  "diagnostics": [],
@@ -2274,7 +2290,12 @@
2274
2290
  "--kui-color-neutral-border-quiet",
2275
2291
  "--kui-focus-ring",
2276
2292
  "--kui-list-header-action-icon-size",
2293
+ "--kui-list-header-border-width",
2277
2294
  "--kui-list-header-color",
2295
+ "--kui-list-header-min-height",
2296
+ "--kui-list-header-title-min-height",
2297
+ "--kui-list-header-title-padding-block",
2298
+ "--kui-list-header-title-padding-inline",
2278
2299
  "--kui-layout-inline-margin",
2279
2300
  "--kui-layout-item-gap",
2280
2301
  "--kui-layout-item-padding",
@@ -2458,6 +2479,8 @@
2458
2479
  "kui-list-item__trailing"
2459
2480
  ],
2460
2481
  "publicTokens": [
2482
+ "--kui-color-brand-border-normal",
2483
+ "--kui-color-brand-fill-quiet",
2461
2484
  "--kui-color-brand-fill-normal",
2462
2485
  "--kui-color-neutral-fill-quiet",
2463
2486
  "--kui-color-neutral-on-normal",
@@ -2465,9 +2488,25 @@
2465
2488
  "--kui-color-neutral-border-quiet",
2466
2489
  "--kui-focus-ring",
2467
2490
  "--kui-list-item-color",
2491
+ "--kui-list-item-align-items",
2492
+ "--kui-list-item-border-width",
2493
+ "--kui-list-item-columns",
2494
+ "--kui-list-item-drag-target-background",
2495
+ "--kui-list-item-drag-target-outline",
2496
+ "--kui-list-item-drag-target-outline-offset",
2497
+ "--kui-list-item-gap",
2468
2498
  "--kui-list-item-hover-background",
2499
+ "--kui-list-item-icon-color",
2500
+ "--kui-list-item-icon-size",
2501
+ "--kui-list-item-label-max-width",
2502
+ "--kui-list-item-label-weight",
2503
+ "--kui-list-item-min-height",
2504
+ "--kui-list-item-padding-block",
2505
+ "--kui-list-item-padding-inline",
2506
+ "--kui-list-item-radius",
2469
2507
  "--kui-list-item-selected-background",
2470
2508
  "--kui-list-item-selected-color",
2509
+ "--kui-list-item-trailing-color",
2471
2510
  "--kui-list-group-divider-color",
2472
2511
  "--kui-font-xs",
2473
2512
  "--kui-layout-inline-margin",
@@ -2778,6 +2817,7 @@
2778
2817
  "kui-app-tab__trailing"
2779
2818
  ],
2780
2819
  "publicTokens": [
2820
+ "--kui-app-tab-attention-color",
2781
2821
  "--kui-app-tab-color",
2782
2822
  "--kui-app-tab-drop-indicator",
2783
2823
  "--kui-app-tab-hover-background",
@@ -2922,7 +2962,18 @@
2922
2962
  "publicTokens": [
2923
2963
  "--kui-tab-bar-background",
2924
2964
  "--kui-tab-bar-border",
2925
- "--kui-tab-bar-divider-color"
2965
+ "--kui-tab-bar-divider-color",
2966
+ "--kui-tab-bar-strip-background",
2967
+ "--kui-tab-bar-strip-border-width",
2968
+ "--kui-tab-bar-strip-flex",
2969
+ "--kui-tab-bar-strip-gap",
2970
+ "--kui-tab-bar-strip-margin-block",
2971
+ "--kui-tab-bar-strip-min-height",
2972
+ "--kui-tab-bar-strip-overflow-block",
2973
+ "--kui-tab-bar-strip-padding",
2974
+ "--kui-tab-bar-strip-radius",
2975
+ "--kui-tab-bar-strip-scroll-padding-inline",
2976
+ "--kui-tab-bar-trailing-flex"
2926
2977
  ]
2927
2978
  },
2928
2979
  "diagnostics": [
@@ -3104,6 +3155,7 @@
3104
3155
  "--kui-radius-pill",
3105
3156
  "--kui-token-search-background",
3106
3157
  "--kui-token-search-border",
3158
+ "--kui-token-search-editor-min-width",
3107
3159
  "--kui-token-search-line-size",
3108
3160
  "--kui-token-search-token-background",
3109
3161
  "--kui-token-search-token-foreground",
@@ -3175,7 +3227,19 @@
3175
3227
  "Keep handleIcon decorative and free of interactive descendants; the separator owns focus, naming, and pointer/keyboard interaction."
3176
3228
  ]
3177
3229
  },
3178
- "cssValueProps": [],
3230
+ "cssValueProps": [
3231
+ {
3232
+ "path": "restoreInset",
3233
+ "grammar": "length",
3234
+ "helpers": ["px", "rem", "em", "pct", "space", "lengthVar", "calc"],
3235
+ "nonStandaloneHelpers": ["plus"],
3236
+ "shorthands": [],
3237
+ "canonicalShorthands": [],
3238
+ "exceptionalShorthands": [],
3239
+ "rawPolicy": "forbid",
3240
+ "examples": ["restoreInset={space(\"xs\")}"]
3241
+ }
3242
+ ],
3179
3243
  "boundaries": {
3180
3244
  "rootClass": "kui-resizable-region",
3181
3245
  "publicClasses": [
@@ -3192,6 +3256,7 @@
3192
3256
  "--kui-focus-ring",
3193
3257
  "--kui-radius-s",
3194
3258
  "--kui-resizable-region-edge-extent",
3259
+ "--kui-resizable-region-background",
3195
3260
  "--kui-resizable-region-handle-active-color",
3196
3261
  "--kui-resizable-region-handle-color",
3197
3262
  "--kui-resizable-region-overlay-z",
@@ -3274,6 +3339,7 @@
3274
3339
  "kui-select--fit-menu",
3275
3340
  "kui-select--label-hidden",
3276
3341
  "kui-select__custom-selected",
3342
+ "kui-select__custom-selected-content",
3277
3343
  "kui-select__group",
3278
3344
  "kui-select__group--separated",
3279
3345
  "kui-select__group-title",
@@ -3283,7 +3349,11 @@
3283
3349
  "--kui-color-neutral-border-quiet",
3284
3350
  "--kui-color-neutral-on-quiet",
3285
3351
  "--kui-disclosure-icon-scale",
3286
- "--kui-font-2xs"
3352
+ "--kui-font-2xs",
3353
+ "--kui-select-selected-color",
3354
+ "--kui-select-selected-font-size",
3355
+ "--kui-select-selected-font-weight",
3356
+ "--kui-select-trigger-max-width"
3287
3357
  ]
3288
3358
  },
3289
3359
  "diagnostics": [
@@ -3499,6 +3569,8 @@
3499
3569
  "--kui-state-banner-action-hover-background",
3500
3570
  "--kui-state-banner-background",
3501
3571
  "--kui-state-banner-border",
3572
+ "--kui-state-banner-copy-gap",
3573
+ "--kui-state-banner-copy-row-gap",
3502
3574
  "--kui-state-banner-danger-background",
3503
3575
  "--kui-state-banner-danger-border",
3504
3576
  "--kui-state-banner-danger-foreground",
@@ -28,7 +28,7 @@ Exact prop and callback types live in [`public-api-signatures-v1.md`](../public-
28
28
  - [ToolbarControlGroup](./toolbar-control-group.md) — Provide complete toolbar action geometry through configuration, including semantic anchors, overflow containment, and dropdown menu insets without application CSS.
29
29
  - [Surface scaffolds](./surface-scaffold.md) — Configure recurring dialog and popup geometry without consumer ::part() overrides.
30
30
  - [FloatingToolbar](./floating-toolbar.md) — A transparent, forced-dark toolbar that floats over its container's content.
31
- - [ToolbarText](./toolbar-text.md) — Large, default, and compact toolbar identity text.
31
+ - [ToolbarText](./toolbar-text.md) — Extra-large through extra-small toolbar identity text.
32
32
  - [Text](./text.md) — Render paragraph semantics by default, h1 through h6 when selected, or geometry-free inline secondary text as a span while independently configuring quiet or danger tone, compact through extra-large size, or monospace font.
33
33
  - [Headers](./headers.md) — Page, dialog, and definition-list hierarchy.
34
34
  - [ValueTable](./value-table.md) — Key/value rows with optional icons and aligned separators.
@@ -36,6 +36,8 @@ Exact prop names and types: [`@kerfjs/ui/floating-toolbar`](../public-api-signat
36
36
  - top-end
37
37
  - top-start
38
38
  - top
39
+ - inline placement
40
+ - safe-area-aware per-edge inset
39
41
 
40
42
  **CSS-value props** (typed builders from `@kerfjs/ui/css-values`; raw CSS strings are rejected):
41
43
 
@@ -69,7 +71,7 @@ Public class hooks (select for layout placement only, never to change the compon
69
71
 
70
72
  Never put `kui-floating-toolbar` on an element you write; render `FloatingToolbar` instead (`KUI-L103`).
71
73
 
72
- Public tokens it reads: `--kui-floating-toolbar-inset`, `--kui-space-m`, `--kui-space-xs`. Set a token only where its public contract allows; prefer a prop.
74
+ Public tokens it reads: `--kui-floating-toolbar-inset`, `--kui-floating-toolbar-inset-block-start`, `--kui-floating-toolbar-inset-block-end`, `--kui-floating-toolbar-inset-inline-start`, `--kui-floating-toolbar-inset-inline-end`, `--kui-space-m`, `--kui-space-xs`. Set a token only where its public contract allows; prefer a prop.
73
75
 
74
76
  Everything else is internal: `kerf-ui-analyze` reports private or unknown `.kui-*` selectors (`KUI-L001`, `KUI-L010`), unknown or private tokens (`KUI-L002`, `KUI-L012`), and any application rule that restyles the component, forced dimensions included (`KUI-L019`).
75
77
 
@@ -74,7 +74,7 @@ Public class hooks (select for layout placement only, never to change the compon
74
74
 
75
75
  Never put `kui-list-header`, `kui-list-header__action`, `kui-list-header__action-layer`, `kui-list-header__title`, `kui-list-header__toggle` on an element you write; render `ListHeader` instead (`KUI-L103`).
76
76
 
77
- Public tokens it reads: `--kui-color-neutral-border-quiet`, `--kui-focus-ring`, `--kui-list-header-action-icon-size`, `--kui-list-header-color`, `--kui-layout-inline-margin`, `--kui-layout-item-gap`, `--kui-layout-item-padding`, `--kui-list-header-hover-background`, `--kui-list-group-divider-color`. Set a token only where its public contract allows; prefer a prop.
77
+ Public tokens it reads: `--kui-color-neutral-border-quiet`, `--kui-focus-ring`, `--kui-list-header-action-icon-size`, `--kui-list-header-border-width`, `--kui-list-header-color`, `--kui-list-header-min-height`, `--kui-list-header-title-min-height`, `--kui-list-header-title-padding-block`, `--kui-list-header-title-padding-inline`, `--kui-layout-inline-margin`, `--kui-layout-item-gap`, `--kui-layout-item-padding`, `--kui-list-header-hover-background`, `--kui-list-group-divider-color`. Set a token only where its public contract allows; prefer a prop.
78
78
 
79
79
  Everything else is internal: `kerf-ui-analyze` reports private or unknown `.kui-*` selectors (`KUI-L001`, `KUI-L010`), unknown or private tokens (`KUI-L002`, `KUI-L012`), and any application rule that restyles the component, forced dimensions included (`KUI-L019`).
80
80
 
@@ -40,6 +40,9 @@ Exact prop names and types: [`@kerfjs/ui/list-item`](../public-api-signatures-v1
40
40
  - multiline
41
41
  - placeholder (loading)
42
42
  - compact density
43
+ - spacious density
44
+ - centered icon beside a multiline label
45
+ - drag-target state
43
46
  - description and status
44
47
  - busy while retaining content
45
48
  - before, after, or paired group divider
@@ -77,7 +80,7 @@ Public class hooks (select for layout placement only, never to change the compon
77
80
 
78
81
  Never put `kui-list-item`, `kui-list-item__icon`, `kui-list-item__label`, `kui-list-item__primary-label`, `kui-list-item__description`, `kui-list-item__status`, `kui-list-item__trailing` on an element you write; render `ListItem` instead (`KUI-L103`).
79
82
 
80
- Public tokens it reads: `--kui-color-brand-fill-normal`, `--kui-color-neutral-fill-quiet`, `--kui-color-neutral-on-normal`, `--kui-color-neutral-on-quiet`, `--kui-color-neutral-border-quiet`, `--kui-focus-ring`, `--kui-list-item-color`, `--kui-list-item-hover-background`, `--kui-list-item-selected-background`, `--kui-list-item-selected-color`, `--kui-list-group-divider-color`, `--kui-font-xs`, `--kui-layout-inline-margin`, `--kui-layout-item-gap`, `--kui-layout-item-padding`, `--kui-layout-rounded-radius`. Set a token only where its public contract allows; prefer a prop.
83
+ Public tokens it reads: `--kui-color-brand-border-normal`, `--kui-color-brand-fill-quiet`, `--kui-color-brand-fill-normal`, `--kui-color-neutral-fill-quiet`, `--kui-color-neutral-on-normal`, `--kui-color-neutral-on-quiet`, `--kui-color-neutral-border-quiet`, `--kui-focus-ring`, `--kui-list-item-color`, `--kui-list-item-align-items`, `--kui-list-item-border-width`, `--kui-list-item-columns`, `--kui-list-item-drag-target-background`, `--kui-list-item-drag-target-outline`, `--kui-list-item-drag-target-outline-offset`, `--kui-list-item-gap`, `--kui-list-item-hover-background`, `--kui-list-item-icon-color`, `--kui-list-item-icon-size`, `--kui-list-item-label-max-width`, `--kui-list-item-label-weight`, `--kui-list-item-min-height`, `--kui-list-item-padding-block`, `--kui-list-item-padding-inline`, `--kui-list-item-radius`, `--kui-list-item-selected-background`, `--kui-list-item-selected-color`, `--kui-list-item-trailing-color`, `--kui-list-group-divider-color`, `--kui-font-xs`, `--kui-layout-inline-margin`, `--kui-layout-item-gap`, `--kui-layout-item-padding`, `--kui-layout-rounded-radius`. Set a token only where its public contract allows; prefer a prop.
81
84
 
82
85
  Everything else is internal: `kerf-ui-analyze` reports private or unknown `.kui-*` selectors (`KUI-L001`, `KUI-L010`), unknown or private tokens (`KUI-L002`, `KUI-L012`), and any application rule that restyles the component, forced dimensions included (`KUI-L019`).
83
86
 
@@ -45,6 +45,11 @@ Exact prop names and types: [`@kerfjs/ui/resizable-region`](../public-api-signat
45
45
  - clipped, scrolling, or popup-visible content
46
46
  - inline, overlay, or hidden responsive presentation
47
47
  - safe-area restore control
48
+ - top-corner or inline restore placement
49
+
50
+ **CSS-value props** (typed builders from `@kerfjs/ui/css-values`; raw CSS strings are rejected):
51
+
52
+ - `restoreInset`: length grammar; raw values: forbid; helpers `px`, `rem`, `em`, `pct`, `space`, `lengthVar`, `calc` — e.g. `restoreInset={space("xs")}`
48
53
 
49
54
  ## Composition
50
55
 
@@ -86,7 +91,7 @@ Public class hooks (select for layout placement only, never to change the compon
86
91
 
87
92
  Never put `kui-resizable-region`, `kui-resizable-region__content`, `kui-resizable-region__handle`, `kui-resizable-region__handle-icon`, `kui-resizable-region__restore` on an element you write; render `ResizableRegion` instead (`KUI-L103`).
88
93
 
89
- Public tokens it reads: `--kui-color-neutral-border-normal`, `--kui-color-neutral-on-quiet`, `--kui-color-text-link`, `--kui-focus-ring`, `--kui-radius-s`, `--kui-resizable-region-edge-extent`, `--kui-resizable-region-handle-active-color`, `--kui-resizable-region-handle-color`, `--kui-resizable-region-overlay-z`, `--kui-resizable-region-popup-z`, `--kui-resizable-region-restore-inset`, `--kui-resizable-region-restore-z`, `--kui-resizable-region-separator-color`, `--kui-resizable-region-size`. Set a token only where its public contract allows; prefer a prop.
94
+ Public tokens it reads: `--kui-color-neutral-border-normal`, `--kui-color-neutral-on-quiet`, `--kui-color-text-link`, `--kui-focus-ring`, `--kui-radius-s`, `--kui-resizable-region-edge-extent`, `--kui-resizable-region-background`, `--kui-resizable-region-handle-active-color`, `--kui-resizable-region-handle-color`, `--kui-resizable-region-overlay-z`, `--kui-resizable-region-popup-z`, `--kui-resizable-region-restore-inset`, `--kui-resizable-region-restore-z`, `--kui-resizable-region-separator-color`, `--kui-resizable-region-size`. Set a token only where its public contract allows; prefer a prop.
90
95
 
91
96
  Everything else is internal: `kerf-ui-analyze` reports private or unknown `.kui-*` selectors (`KUI-L001`, `KUI-L010`), unknown or private tokens (`KUI-L002`, `KUI-L012`), and any application rule that restyles the component, forced dimensions included (`KUI-L019`).
92
97
 
@@ -48,6 +48,8 @@ Exact prop names and types: [`@kerfjs/ui/select`](../public-api-signatures-v1.md
48
48
  - label or icon-only selected presentation
49
49
  - select- or group-owned focus ring
50
50
  - label maximum width and truncation
51
+ - fit-content, max-content, or fill trigger width
52
+ - custom selected content typography and ellipsis
51
53
  - multiple selection
52
54
  - multiple icon-only filter trigger with a fixed triggerIcon
53
55
 
@@ -88,11 +90,11 @@ Margin: none · border: self · padding: self (layout role: controls). `self` me
88
90
 
89
91
  The component owns its own styles. Configure it through its props and variants; do not override its internals.
90
92
 
91
- Public class hooks (select for layout placement only, never to change the component's look): `kui-select`, `kui-select--custom-selected`, `kui-select--fit-menu`, `kui-select--label-hidden`, `kui-select__custom-selected`, `kui-select__group`, `kui-select__group--separated`, `kui-select__group-title`, `kui-select__icon`.
93
+ Public class hooks (select for layout placement only, never to change the component's look): `kui-select`, `kui-select--custom-selected`, `kui-select--fit-menu`, `kui-select--label-hidden`, `kui-select__custom-selected`, `kui-select__custom-selected-content`, `kui-select__group`, `kui-select__group--separated`, `kui-select__group-title`, `kui-select__icon`.
92
94
 
93
- Never put `kui-select`, `kui-select--custom-selected`, `kui-select--fit-menu`, `kui-select--label-hidden`, `kui-select__custom-selected`, `kui-select__group`, `kui-select__group--separated`, `kui-select__group-title`, `kui-select__icon` on an element you write; render `Select` instead (`KUI-L103`).
95
+ Never put `kui-select`, `kui-select--custom-selected`, `kui-select--fit-menu`, `kui-select--label-hidden`, `kui-select__custom-selected`, `kui-select__custom-selected-content`, `kui-select__group`, `kui-select__group--separated`, `kui-select__group-title`, `kui-select__icon` on an element you write; render `Select` instead (`KUI-L103`).
94
96
 
95
- Public tokens it reads: `--kui-color-neutral-border-quiet`, `--kui-color-neutral-on-quiet`, `--kui-disclosure-icon-scale`, `--kui-font-2xs`. Set a token only where its public contract allows; prefer a prop.
97
+ Public tokens it reads: `--kui-color-neutral-border-quiet`, `--kui-color-neutral-on-quiet`, `--kui-disclosure-icon-scale`, `--kui-font-2xs`, `--kui-select-selected-color`, `--kui-select-selected-font-size`, `--kui-select-selected-font-weight`, `--kui-select-trigger-max-width`. Set a token only where its public contract allows; prefer a prop.
96
98
 
97
99
  Everything else is internal: `kerf-ui-analyze` reports private or unknown `.kui-*` selectors (`KUI-L001`, `KUI-L010`), unknown or private tokens (`KUI-L002`, `KUI-L012`), and any application rule that restyles the component, forced dimensions included (`KUI-L019`).
98
100
 
@@ -44,6 +44,8 @@ Exact prop names and types: [`@kerfjs/ui/state-banner`](../public-api-signatures
44
44
  - status
45
45
  - alert
46
46
  - badge
47
+ - stacked copy
48
+ - action below
47
49
  - placeholder (loading)
48
50
 
49
51
  ## Composition
@@ -81,7 +83,7 @@ Public class hooks (select for layout placement only, never to change the compon
81
83
 
82
84
  Never put `kui-state-banner`, `kui-state-banner__action`, `kui-state-banner__copy`, `kui-state-banner__detail`, `kui-state-banner__icon` on an element you write; render `StateBanner` instead (`KUI-L103`).
83
85
 
84
- Public tokens it reads: `--kui-color-brand-border-quiet`, `--kui-color-brand-fill-quiet`, `--kui-color-brand-on-fill`, `--kui-color-pop-border-normal`, `--kui-color-pop-fill-quiet`, `--kui-color-pop-on-fill`, `--kui-color-danger-border-quiet`, `--kui-color-danger-fill-quiet`, `--kui-color-danger-on-fill`, `--kui-color-neutral-border-normal`, `--kui-color-neutral-fill-quiet`, `--kui-color-neutral-on-normal`, `--kui-color-neutral-on-quiet`, `--kui-color-success-border-normal`, `--kui-color-success-fill-quiet`, `--kui-color-success-on-fill`, `--kui-color-surface`, `--kui-color-text-link`, `--kui-color-warning-border-normal`, `--kui-color-warning-fill-quiet`, `--kui-color-warning-on-fill`, `--kui-font-2xs`, `--kui-font-xs`, `--kui-radius-pill`, `--kui-state-banner-action-background`, `--kui-state-banner-action-hover-background`, `--kui-state-banner-background`, `--kui-state-banner-border`, `--kui-state-banner-danger-background`, `--kui-state-banner-danger-border`, `--kui-state-banner-danger-foreground`, `--kui-state-banner-detail`, `--kui-state-banner-foreground`, `--kui-state-banner-info-background`, `--kui-state-banner-info-border`, `--kui-state-banner-info-foreground`, `--kui-state-banner-pop-background`, `--kui-state-banner-pop-border`, `--kui-state-banner-pop-foreground`, `--kui-state-banner-neutral-background`, `--kui-state-banner-neutral-border`, `--kui-state-banner-neutral-foreground`, `--kui-state-banner-success-background`, `--kui-state-banner-success-border`, `--kui-state-banner-success-foreground`, `--kui-state-banner-warning-background`, `--kui-state-banner-warning-border`, `--kui-state-banner-warning-foreground`. Set a token only where its public contract allows; prefer a prop.
86
+ Public tokens it reads: `--kui-color-brand-border-quiet`, `--kui-color-brand-fill-quiet`, `--kui-color-brand-on-fill`, `--kui-color-pop-border-normal`, `--kui-color-pop-fill-quiet`, `--kui-color-pop-on-fill`, `--kui-color-danger-border-quiet`, `--kui-color-danger-fill-quiet`, `--kui-color-danger-on-fill`, `--kui-color-neutral-border-normal`, `--kui-color-neutral-fill-quiet`, `--kui-color-neutral-on-normal`, `--kui-color-neutral-on-quiet`, `--kui-color-success-border-normal`, `--kui-color-success-fill-quiet`, `--kui-color-success-on-fill`, `--kui-color-surface`, `--kui-color-text-link`, `--kui-color-warning-border-normal`, `--kui-color-warning-fill-quiet`, `--kui-color-warning-on-fill`, `--kui-font-2xs`, `--kui-font-xs`, `--kui-radius-pill`, `--kui-state-banner-action-background`, `--kui-state-banner-action-hover-background`, `--kui-state-banner-background`, `--kui-state-banner-border`, `--kui-state-banner-copy-gap`, `--kui-state-banner-copy-row-gap`, `--kui-state-banner-danger-background`, `--kui-state-banner-danger-border`, `--kui-state-banner-danger-foreground`, `--kui-state-banner-detail`, `--kui-state-banner-foreground`, `--kui-state-banner-info-background`, `--kui-state-banner-info-border`, `--kui-state-banner-info-foreground`, `--kui-state-banner-pop-background`, `--kui-state-banner-pop-border`, `--kui-state-banner-pop-foreground`, `--kui-state-banner-neutral-background`, `--kui-state-banner-neutral-border`, `--kui-state-banner-neutral-foreground`, `--kui-state-banner-success-background`, `--kui-state-banner-success-border`, `--kui-state-banner-success-foreground`, `--kui-state-banner-warning-background`, `--kui-state-banner-warning-border`, `--kui-state-banner-warning-foreground`. Set a token only where its public contract allows; prefer a prop.
85
87
 
86
88
  Everything else is internal: `kerf-ui-analyze` reports private or unknown `.kui-*` selectors (`KUI-L001`, `KUI-L010`), unknown or private tokens (`KUI-L002`, `KUI-L012`), and any application rule that restyles the component, forced dimensions included (`KUI-L019`).
87
89
 
@@ -97,7 +97,7 @@ Public class hooks (select for layout placement only, never to change the compon
97
97
 
98
98
  Never put `kui-tab-bar`, `kui-tab-bar__leading`, `kui-tab-bar__tabs`, `kui-tab-bar__trailing`, `kui-tab-bar__end` on an element you write; render `TabBar` instead (`KUI-L103`).
99
99
 
100
- Public tokens it reads: `--kui-tab-bar-background`, `--kui-tab-bar-border`, `--kui-tab-bar-divider-color`. Set a token only where its public contract allows; prefer a prop.
100
+ Public tokens it reads: `--kui-tab-bar-background`, `--kui-tab-bar-border`, `--kui-tab-bar-divider-color`, `--kui-tab-bar-strip-background`, `--kui-tab-bar-strip-border-width`, `--kui-tab-bar-strip-flex`, `--kui-tab-bar-strip-gap`, `--kui-tab-bar-strip-margin-block`, `--kui-tab-bar-strip-min-height`, `--kui-tab-bar-strip-overflow-block`, `--kui-tab-bar-strip-padding`, `--kui-tab-bar-strip-radius`, `--kui-tab-bar-strip-scroll-padding-inline`, `--kui-tab-bar-trailing-flex`. Set a token only where its public contract allows; prefer a prop.
101
101
 
102
102
  Everything else is internal: `kerf-ui-analyze` reports private or unknown `.kui-*` selectors (`KUI-L001`, `KUI-L010`), unknown or private tokens (`KUI-L002`, `KUI-L012`), and any application rule that restyles the component, forced dimensions included (`KUI-L019`).
103
103
 
@@ -41,6 +41,7 @@ Exact prop names and types: [`@kerfjs/ui/app-tab`](../public-api-signatures-v1.m
41
41
  - segmented presentation
42
42
  - icon-only accessible presentation
43
43
  - label maximum width and truncation
44
+ - attention name color
44
45
 
45
46
  ## Composition
46
47
 
@@ -79,7 +80,7 @@ Public class hooks (select for layout placement only, never to change the compon
79
80
 
80
81
  Never put `kui-app-tab`, `kui-app-tab__close`, `kui-app-tab__close-icon`, `kui-app-tab__name`, `kui-app-tab__select`, `kui-app-tab__trailing` on an element you write; render `AppTab` instead (`KUI-L103`).
81
82
 
82
- Public tokens it reads: `--kui-app-tab-color`, `--kui-app-tab-drop-indicator`, `--kui-app-tab-hover-background`, `--kui-app-tab-selected-background`, `--kui-app-tab-selected-border`, `--kui-app-tab-selected-color`, `--kui-color-brand-border-normal`, `--kui-color-brand-on-quiet`, `--kui-color-neutral-border-normal`, `--kui-color-neutral-on-quiet`, `--kui-color-surface`, `--kui-color-text`, `--kui-focus-ring`, `--kui-font-xs`, `--kui-radius-pill`, `--kui-shadow-s`, `--kui-space-2xs`, `--kui-space-xs`. Set a token only where its public contract allows; prefer a prop.
83
+ Public tokens it reads: `--kui-app-tab-attention-color`, `--kui-app-tab-color`, `--kui-app-tab-drop-indicator`, `--kui-app-tab-hover-background`, `--kui-app-tab-selected-background`, `--kui-app-tab-selected-border`, `--kui-app-tab-selected-color`, `--kui-color-brand-border-normal`, `--kui-color-brand-on-quiet`, `--kui-color-neutral-border-normal`, `--kui-color-neutral-on-quiet`, `--kui-color-surface`, `--kui-color-text`, `--kui-focus-ring`, `--kui-font-xs`, `--kui-radius-pill`, `--kui-shadow-s`, `--kui-space-2xs`, `--kui-space-xs`. Set a token only where its public contract allows; prefer a prop.
83
84
 
84
85
  Everything else is internal: `kerf-ui-analyze` reports private or unknown `.kui-*` selectors (`KUI-L001`, `KUI-L010`), unknown or private tokens (`KUI-L002`, `KUI-L012`), and any application rule that restyles the component, forced dimensions included (`KUI-L019`).
85
86