@helixui/library 3.2.0-next.98 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. package/custom-elements.json +30 -18
  2. package/dist/components/hx-alert/hx-alert.styles.d.ts.map +1 -1
  3. package/dist/components/hx-alert/index.js +1 -1
  4. package/dist/components/hx-banner/hx-banner.styles.d.ts.map +1 -1
  5. package/dist/components/hx-banner/index.js +1 -1
  6. package/dist/components/hx-button/hx-button.d.ts +8 -6
  7. package/dist/components/hx-button/hx-button.d.ts.map +1 -1
  8. package/dist/components/hx-button/hx-button.styles.d.ts.map +1 -1
  9. package/dist/components/hx-button/index.js +1 -1
  10. package/dist/components/hx-checkbox/hx-checkbox.styles.d.ts.map +1 -1
  11. package/dist/components/hx-checkbox/index.js +1 -1
  12. package/dist/components/hx-code-snippet/hx-code-snippet.styles.d.ts.map +1 -1
  13. package/dist/components/hx-code-snippet/index.js +1 -1
  14. package/dist/components/hx-combobox/hx-combobox.styles.d.ts.map +1 -1
  15. package/dist/components/hx-combobox/index.js +1 -1
  16. package/dist/components/hx-date-picker/hx-date-picker.styles.d.ts.map +1 -1
  17. package/dist/components/hx-date-picker/index.js +1 -1
  18. package/dist/components/hx-link/hx-link.styles.d.ts.map +1 -1
  19. package/dist/components/hx-link/index.js +1 -1
  20. package/dist/components/hx-list/hx-list-item.styles.d.ts.map +1 -1
  21. package/dist/components/hx-list/index.js +1 -1
  22. package/dist/components/hx-radio-group/hx-radio.styles.d.ts.map +1 -1
  23. package/dist/components/hx-radio-group/index.js +1 -1
  24. package/dist/components/hx-rating/hx-rating.styles.d.ts.map +1 -1
  25. package/dist/components/hx-rating/index.js +1 -1
  26. package/dist/components/hx-select/hx-select.styles.d.ts.map +1 -1
  27. package/dist/components/hx-select/index.js +1 -1
  28. package/dist/components/hx-side-nav/hx-side-nav.d.ts +4 -3
  29. package/dist/components/hx-side-nav/hx-side-nav.d.ts.map +1 -1
  30. package/dist/components/hx-side-nav/hx-side-nav.styles.d.ts.map +1 -1
  31. package/dist/components/hx-side-nav/index.js +1 -1
  32. package/dist/components/hx-slider/hx-slider.styles.d.ts.map +1 -1
  33. package/dist/components/hx-slider/index.js +1 -1
  34. package/dist/components/hx-split-button/hx-split-button.styles.d.ts.map +1 -1
  35. package/dist/components/hx-split-button/index.js +1 -1
  36. package/dist/components/hx-switch/hx-switch.styles.d.ts.map +1 -1
  37. package/dist/components/hx-switch/index.js +1 -1
  38. package/dist/components/hx-tabs/hx-tab-panel.styles.d.ts.map +1 -1
  39. package/dist/components/hx-tabs/hx-tab.styles.d.ts.map +1 -1
  40. package/dist/components/hx-tabs/index.js +1 -1
  41. package/dist/components/hx-text-input/hx-text-input.styles.d.ts.map +1 -1
  42. package/dist/components/hx-text-input/index.js +1 -1
  43. package/dist/components/hx-textarea/hx-textarea.styles.d.ts.map +1 -1
  44. package/dist/components/hx-textarea/index.js +1 -1
  45. package/dist/components/hx-theme/hx-theme.d.ts +14 -2
  46. package/dist/components/hx-theme/hx-theme.d.ts.map +1 -1
  47. package/dist/components/hx-theme/index.js +1 -1
  48. package/dist/components/hx-toggle-button/hx-toggle-button.styles.d.ts.map +1 -1
  49. package/dist/components/hx-toggle-button/index.js +1 -1
  50. package/dist/components/hx-tree-view/hx-tree-view.styles.d.ts.map +1 -1
  51. package/dist/components/hx-tree-view/index.js +1 -1
  52. package/dist/css/helix-all.css +122 -120
  53. package/dist/css/helix-core.css +53 -23
  54. package/dist/css/helix-data.css +20 -6
  55. package/dist/css/helix-feedback.css +3 -12
  56. package/dist/css/helix-forms.css +16 -63
  57. package/dist/css/helix-navigation.css +28 -8
  58. package/dist/css/helix-tokens.css +8 -8
  59. package/dist/css/helix-utility.css +2 -8
  60. package/dist/css/hx-alert.css +1 -4
  61. package/dist/css/hx-banner.css +2 -8
  62. package/dist/css/hx-button.css +52 -19
  63. package/dist/css/hx-checkbox.css +1 -4
  64. package/dist/css/hx-code-snippet.css +20 -6
  65. package/dist/css/hx-combobox.css +2 -8
  66. package/dist/css/hx-date-picker.css +5 -21
  67. package/dist/css/hx-link.css +1 -4
  68. package/dist/css/hx-rating.css +1 -2
  69. package/dist/css/hx-select.css +1 -4
  70. package/dist/css/hx-side-nav.css +27 -6
  71. package/dist/css/hx-slider.css +1 -4
  72. package/dist/css/hx-split-button.css +2 -8
  73. package/dist/css/hx-switch.css +1 -4
  74. package/dist/css/hx-text-input.css +2 -8
  75. package/dist/css/hx-textarea.css +1 -4
  76. package/dist/css/hx-toggle-button.css +1 -4
  77. package/dist/css/hx-tree-view.css +1 -2
  78. package/dist/css/index.css +1 -1
  79. package/dist/css/manifest.json +20 -18
  80. package/dist/index.js +22 -22
  81. package/dist/shared/{hx-alert-C597yHpD.js → hx-alert-CLn7CstP.js} +2 -5
  82. package/dist/shared/hx-alert-CLn7CstP.js.map +1 -0
  83. package/dist/shared/{hx-banner-Cxd7eFUP.js → hx-banner-D3DzpfcP.js} +7 -13
  84. package/dist/shared/hx-banner-D3DzpfcP.js.map +1 -0
  85. package/dist/shared/{hx-button-9OUjJnk7.js → hx-button-DPY6SPVT.js} +58 -25
  86. package/dist/shared/hx-button-DPY6SPVT.js.map +1 -0
  87. package/dist/shared/{hx-checkbox-DBD-gMoz.js → hx-checkbox-D7xma9YH.js} +6 -9
  88. package/dist/shared/hx-checkbox-D7xma9YH.js.map +1 -0
  89. package/dist/shared/{hx-code-snippet-CJrFeyz0.js → hx-code-snippet-fVV3Z2DZ.js} +55 -41
  90. package/dist/shared/hx-code-snippet-fVV3Z2DZ.js.map +1 -0
  91. package/dist/shared/{hx-combobox-ClhNRAS5.js → hx-combobox-DDzqNKEW.js} +6 -12
  92. package/dist/shared/hx-combobox-DDzqNKEW.js.map +1 -0
  93. package/dist/shared/{hx-date-picker-BJm7Yrda.js → hx-date-picker-2iRG1p74.js} +12 -28
  94. package/dist/shared/hx-date-picker-2iRG1p74.js.map +1 -0
  95. package/dist/shared/{hx-link-9Ig2DW6L.js → hx-link-C-O6vq0Q.js} +2 -5
  96. package/dist/shared/hx-link-C-O6vq0Q.js.map +1 -0
  97. package/dist/shared/{hx-list-CkphGi9T.js → hx-list-MyEhh8c7.js} +3 -5
  98. package/dist/shared/hx-list-MyEhh8c7.js.map +1 -0
  99. package/dist/shared/{hx-nav-item-DH2tXcj1.js → hx-nav-item-xqRPOCWX.js} +58 -37
  100. package/dist/shared/hx-nav-item-xqRPOCWX.js.map +1 -0
  101. package/dist/shared/{hx-radio-dFjUAost.js → hx-radio-CJvNU2yP.js} +2 -5
  102. package/dist/shared/{hx-radio-dFjUAost.js.map → hx-radio-CJvNU2yP.js.map} +1 -1
  103. package/dist/shared/{hx-rating-CGtsejNf.js → hx-rating-C3QP53k9.js} +2 -3
  104. package/dist/shared/hx-rating-C3QP53k9.js.map +1 -0
  105. package/dist/shared/{hx-select-Bf4usFts.js → hx-select-C8fEHQhC.js} +2 -5
  106. package/dist/shared/hx-select-C8fEHQhC.js.map +1 -0
  107. package/dist/shared/{hx-slider-m0aEClH1.js → hx-slider-Blmv_rwS.js} +23 -26
  108. package/dist/shared/hx-slider-Blmv_rwS.js.map +1 -0
  109. package/dist/shared/{hx-split-button-BxDFfx4D.js → hx-split-button-Djnc5Aeg.js} +3 -9
  110. package/dist/shared/hx-split-button-Djnc5Aeg.js.map +1 -0
  111. package/dist/shared/{hx-switch-DvAW4YY-.js → hx-switch-BrZFaRue.js} +6 -9
  112. package/dist/shared/hx-switch-BrZFaRue.js.map +1 -0
  113. package/dist/shared/{hx-tab-panel-SWOEHuJc.js → hx-tab-panel-DspCrKqo.js} +3 -9
  114. package/dist/shared/{hx-tab-panel-SWOEHuJc.js.map → hx-tab-panel-DspCrKqo.js.map} +1 -1
  115. package/dist/shared/{hx-text-input-Bn7Gn8CI.js → hx-text-input-D6FlOZM-.js} +3 -9
  116. package/dist/shared/hx-text-input-D6FlOZM-.js.map +1 -0
  117. package/dist/shared/{hx-textarea-Jx1xnhgv.js → hx-textarea-CNG590KY.js} +6 -9
  118. package/dist/shared/hx-textarea-CNG590KY.js.map +1 -0
  119. package/dist/shared/{hx-theme-BiyQ7UUK.js → hx-theme-BsefFWTO.js} +83 -113
  120. package/dist/shared/hx-theme-BsefFWTO.js.map +1 -0
  121. package/dist/shared/{hx-toggle-button-DPAIh_Xo.js → hx-toggle-button-iLiYrMbD.js} +2 -5
  122. package/dist/shared/hx-toggle-button-iLiYrMbD.js.map +1 -0
  123. package/dist/shared/{hx-tree-item-Dt0Ozqyr.js → hx-tree-item-C2CiWuDE.js} +2 -3
  124. package/dist/shared/hx-tree-item-C2CiWuDE.js.map +1 -0
  125. package/figma-inventory.json +34 -19
  126. package/package.json +2 -2
  127. package/dist/shared/hx-alert-C597yHpD.js.map +0 -1
  128. package/dist/shared/hx-banner-Cxd7eFUP.js.map +0 -1
  129. package/dist/shared/hx-button-9OUjJnk7.js.map +0 -1
  130. package/dist/shared/hx-checkbox-DBD-gMoz.js.map +0 -1
  131. package/dist/shared/hx-code-snippet-CJrFeyz0.js.map +0 -1
  132. package/dist/shared/hx-combobox-ClhNRAS5.js.map +0 -1
  133. package/dist/shared/hx-date-picker-BJm7Yrda.js.map +0 -1
  134. package/dist/shared/hx-link-9Ig2DW6L.js.map +0 -1
  135. package/dist/shared/hx-list-CkphGi9T.js.map +0 -1
  136. package/dist/shared/hx-nav-item-DH2tXcj1.js.map +0 -1
  137. package/dist/shared/hx-rating-CGtsejNf.js.map +0 -1
  138. package/dist/shared/hx-select-Bf4usFts.js.map +0 -1
  139. package/dist/shared/hx-slider-m0aEClH1.js.map +0 -1
  140. package/dist/shared/hx-split-button-BxDFfx4D.js.map +0 -1
  141. package/dist/shared/hx-switch-DvAW4YY-.js.map +0 -1
  142. package/dist/shared/hx-text-input-Bn7Gn8CI.js.map +0 -1
  143. package/dist/shared/hx-textarea-Jx1xnhgv.js.map +0 -1
  144. package/dist/shared/hx-theme-BiyQ7UUK.js.map +0 -1
  145. package/dist/shared/hx-toggle-button-DPAIh_Xo.js.map +0 -1
  146. package/dist/shared/hx-tree-item-Dt0Ozqyr.js.map +0 -1
@@ -2826,7 +2826,7 @@
2826
2826
  "name": "HelixButton",
2827
2827
  "cssProperties": [
2828
2828
  {
2829
- "description": "Button background color (3.2.1 cascade variant rules route through action.{primary,secondary,ghost,danger}.bg).",
2829
+ "description": "Button background color. **Variant-shadowed**: every `.button--{variant}` rule rebinds this property at descendant scope, so a host-level override (`style=\"--hx-button-bg: …\"` or `:host`-targeting CSS) does not reach paint for primary/secondary/tertiary/danger/ghost/outline buttons. To recolor a variant fill, override the upstream semantic instead — e.g. `--hx-color-action-primary-bg` (light primary), `--hx-color-action-primary-bg-inverted-rest` (inverted primary), `--hx-color-action-danger-bg` (danger), or the inverted overlay tokens for tertiary/secondary/ghost/outline. The `--hx-button-bg` hook still works for the rare case of an unstyled base button without a `variant` class, and is internally rebound by the variant rules to participate in the active/hover override chain.",
2830
2830
  "name": "--hx-button-bg",
2831
2831
  "default": "var(--hx-color-action-primary-bg)"
2832
2832
  },
@@ -2884,12 +2884,12 @@
2884
2884
  "default": "var(--hx-color-text-on-error)"
2885
2885
  },
2886
2886
  {
2887
- "description": "Ghost hover bg when inverted (overlay-white-30 5:1 vs neutral-900).",
2887
+ "description": "Ghost hover bg when inverted (overlay-white-30 translucent fill, not a border; contrast not applicable).",
2888
2888
  "name": "--hx-button-inverted-ghost-hover-bg",
2889
- "default": "var(--hx-color-border-on-dark-default)"
2889
+ "default": "var(--hx-color-surface-on-dark-overlay-default)"
2890
2890
  },
2891
2891
  {
2892
- "description": "Focus ring color when inverted (overlay-white-70 = ~5:1 vs neutral-900).",
2892
+ "description": "Focus ring color when inverted (overlay-white-70 5:1 vs neutral-900 — clears WCAG 1.4.11 3:1 floor for non-text UI).",
2893
2893
  "name": "--hx-button-inverted-focus-ring-color",
2894
2894
  "default": "var(--hx-color-border-on-dark-strong)"
2895
2895
  },
@@ -2974,16 +2974,24 @@
2974
2974
  "name": "--hx-color-surface-raised"
2975
2975
  },
2976
2976
  {
2977
- "description": "Inverted-tertiary resting border (overlay-white-10).",
2978
- "name": "--hx-color-border-on-dark-subtle"
2977
+ "description": "Inverted-tertiary resting fill (overlay-white-10 — translucent fill, not a border).",
2978
+ "name": "--hx-color-surface-on-dark-overlay-subtle"
2979
2979
  },
2980
2980
  {
2981
- "description": "Inverted-tertiary hover border + inverted-secondary/ghost hover border (overlay-white-30).",
2982
- "name": "--hx-color-border-on-dark-default"
2981
+ "description": "Inverted-tertiary hover fill + inverted-secondary/ghost/outline hover fill (overlay-white-30 — translucent fill, not a border).",
2982
+ "name": "--hx-color-surface-on-dark-overlay-default"
2983
2983
  },
2984
2984
  {
2985
- "description": "Inverted focus-visible outline (overlay-white-70).",
2985
+ "description": "Inverted-secondary/outline border + inverted focus-visible outline (overlay-white-70 ≈ 5:1 — clears WCAG 1.4.11 3:1 floor).",
2986
2986
  "name": "--hx-color-border-on-dark-strong"
2987
+ },
2988
+ {
2989
+ "description": "DEPRECATED 3.2.2; renamed to --hx-color-surface-on-dark-overlay-subtle (the value paints a translucent fill, not a border). Consume sites read both names via deprecated-first fallback so existing overrides keep working until removal in 4.0.0.",
2990
+ "name": "--hx-color-border-on-dark-subtle"
2991
+ },
2992
+ {
2993
+ "description": "DEPRECATED 3.2.2; renamed to --hx-color-surface-on-dark-overlay-default (the value paints a translucent fill, not a border). Consume sites read both names via deprecated-first fallback so existing overrides keep working until removal in 4.0.0.",
2994
+ "name": "--hx-color-border-on-dark-default"
2987
2995
  }
2988
2996
  ],
2989
2997
  "cssParts": [
@@ -23004,9 +23012,9 @@
23004
23012
  "default": "var(--hx-color-text-inverse)"
23005
23013
  },
23006
23014
  {
23007
- "description": "Border color.",
23015
+ "description": "Border color (against the dark surface-inverse host bg).",
23008
23016
  "name": "--hx-side-nav-border-color",
23009
- "default": "var(--hx-color-border-strong)"
23017
+ "default": "var(--hx-color-border-on-dark-strong)"
23010
23018
  },
23011
23019
  {
23012
23020
  "description": "Header padding.",
@@ -23037,11 +23045,15 @@
23037
23045
  "name": "--hx-color-text-inverse"
23038
23046
  },
23039
23047
  {
23040
- "description": "Header/footer divider border.",
23041
- "name": "--hx-color-border-strong"
23048
+ "description": "Container/header/footer divider border (overlay-white-70 light, overlay-black-50 dark — sized for visibility on the mode-flipped surface-inverse).",
23049
+ "name": "--hx-color-border-on-dark-strong"
23050
+ },
23051
+ {
23052
+ "description": "Toggle button hover surface (overlay-white-10 primitive — translucent fill, not a border).",
23053
+ "name": "--hx-color-surface-on-dark-overlay-subtle"
23042
23054
  },
23043
23055
  {
23044
- "description": "Toggle button hover surface (overlay-white-10 primitive semantic layer for inverted affordances).",
23056
+ "description": "DEPRECATED 3.2.2; renamed to --hx-color-surface-on-dark-overlay-subtle (the value paints a translucent fill, not a border). Toggle-hover rule reads both names via deprecated-first fallback so existing overrides keep working until removal in 4.0.0.",
23045
23057
  "name": "--hx-color-border-on-dark-subtle"
23046
23058
  }
23047
23059
  ],
@@ -31020,7 +31032,7 @@
31020
31032
  "text": "string"
31021
31033
  },
31022
31034
  "default": "''",
31023
- "description": "The registered brand name to apply on top of the base theme.\nWhen set, brand-specific CSS custom property overrides are merged\nafter the base theme tokens in the adopted stylesheet, enabling\nhospital system white-label implementations.\n\nThe brand must first be registered via `HelixBrandRegistry.register()`.\nIf the brand name is non-empty but not registered, a warning is logged\nand the base theme is applied without brand overrides.",
31035
+ "description": "The registered brand name to apply on top of the base theme.\nWhen set, brand-specific CSS custom property overrides are merged\nafter the base theme tokens in the adopted stylesheet, enabling\nhospital system white-label implementations.\n\nThe brand must first be registered via `HelixBrandRegistry.register()`.\nIf the brand name is non-empty but not registered, a warning is logged\nand the base theme is applied without brand overrides.\n\n**High-contrast suppression:** When `theme=\"high-contrast\"`, the brand\nmerge is intentionally skipped to preserve the WCAG 1.4.6 Enhanced\nContrast (7:1+) guarantee that the HC token set is tuned for. A\nregistered brand applied under HC emits a `console.info` to surface\nthe suppression in development. Brand merging on `light` and `dark`\nis unaffected. See `BRAND_THEMING.md`.",
31024
31036
  "attribute": "brand",
31025
31037
  "reflects": true
31026
31038
  },
@@ -31050,9 +31062,9 @@
31050
31062
  "kind": "field",
31051
31063
  "name": "effectiveTheme",
31052
31064
  "type": {
31053
- "text": "'light' | 'dark' | 'high-contrast' | 'auto'"
31065
+ "text": "'light' | 'dark' | 'high-contrast'"
31054
31066
  },
31055
- "description": "Returns the currently active theme name.\nWhen `system=true` or `theme=\"auto\"`, reflects the OS preference (`\"light\"` or `\"dark\"`).\nOtherwise returns the `theme` property value.",
31067
+ "description": "Returns the currently active theme name.\nWhen `theme=\"auto\"`, reflects the OS preference (`\"light\"` or `\"dark\"`).\nOtherwise returns the `theme` property value.",
31056
31068
  "readonly": true
31057
31069
  },
31058
31070
  {
@@ -31082,7 +31094,7 @@
31082
31094
  "text": "string"
31083
31095
  },
31084
31096
  "default": "''",
31085
- "description": "The registered brand name to apply on top of the base theme.\nWhen set, brand-specific CSS custom property overrides are merged\nafter the base theme tokens in the adopted stylesheet, enabling\nhospital system white-label implementations.\n\nThe brand must first be registered via `HelixBrandRegistry.register()`.\nIf the brand name is non-empty but not registered, a warning is logged\nand the base theme is applied without brand overrides.",
31097
+ "description": "The registered brand name to apply on top of the base theme.\nWhen set, brand-specific CSS custom property overrides are merged\nafter the base theme tokens in the adopted stylesheet, enabling\nhospital system white-label implementations.\n\nThe brand must first be registered via `HelixBrandRegistry.register()`.\nIf the brand name is non-empty but not registered, a warning is logged\nand the base theme is applied without brand overrides.\n\n**High-contrast suppression:** When `theme=\"high-contrast\"`, the brand\nmerge is intentionally skipped to preserve the WCAG 1.4.6 Enhanced\nContrast (7:1+) guarantee that the HC token set is tuned for. A\nregistered brand applied under HC emits a `console.info` to surface\nthe suppression in development. Brand merging on `light` and `dark`\nis unaffected. See `BRAND_THEMING.md`.",
31086
31098
  "fieldName": "brand",
31087
31099
  "attribute": "brand"
31088
31100
  },
@@ -1 +1 @@
1
- {"version":3,"file":"hx-alert.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-alert/hx-alert.styles.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,yBA8O5B,CAAC"}
1
+ {"version":3,"file":"hx-alert.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-alert/hx-alert.styles.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,yBA2O5B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { H as l } from "../../shared/hx-alert-C597yHpD.js";
1
+ import { H as l } from "../../shared/hx-alert-CLn7CstP.js";
2
2
  export {
3
3
  l as HelixAlert
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"hx-banner.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-banner/hx-banner.styles.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iBAAiB,yBAmO7B,CAAC"}
1
+ {"version":3,"file":"hx-banner.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-banner/hx-banner.styles.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iBAAiB,yBA6N7B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { H as a } from "../../shared/hx-banner-Cxd7eFUP.js";
1
+ import { H as a } from "../../shared/hx-banner-D3DzpfcP.js";
2
2
  export {
3
3
  a as HelixBanner
4
4
  };
@@ -27,7 +27,7 @@ declare const HelixButton_base: typeof HelixElement;
27
27
  * @csspart suffix - The suffix slot container span.
28
28
  * @csspart spinner - The loading spinner SVG element.
29
29
  *
30
- * @cssprop [--hx-button-bg=var(--hx-color-action-primary-bg)] - Button background color (3.2.1 cascade variant rules route through action.{primary,secondary,ghost,danger}.bg).
30
+ * @cssprop [--hx-button-bg=var(--hx-color-action-primary-bg)] - Button background color. **Variant-shadowed**: every `.button--{variant}` rule rebinds this property at descendant scope, so a host-level override (`style="--hx-button-bg: …"` or `:host`-targeting CSS) does not reach paint for primary/secondary/tertiary/danger/ghost/outline buttons. To recolor a variant fill, override the upstream semantic instead — e.g. `--hx-color-action-primary-bg` (light primary), `--hx-color-action-primary-bg-inverted-rest` (inverted primary), `--hx-color-action-danger-bg` (danger), or the inverted overlay tokens for tertiary/secondary/ghost/outline. The `--hx-button-bg` hook still works for the rare case of an unstyled base button without a `variant` class, and is internally rebound by the variant rules to participate in the active/hover override chain.
31
31
  * @cssprop [--hx-button-hover-bg] - Hover background override (primary and danger variants only). Other variants (secondary/outline, ghost) keep their hover fills routed through their semantic action.* tokens and do not consume this hook. Under [inverted] for primary/danger, hover and active share a paint (combined :hover, :active rule), so this override applies to both states unless --hx-button-active-bg also takes precedence.
32
32
  * @cssprop [--hx-button-active-bg] - Pressed/active background override (primary and danger variants only, including their inverted modes). Takes precedence over --hx-button-hover-bg in the fallback chain. Standard-mode primary/danger default to action.{primary,danger}.bg-active (with filter:none) for AA-pinned pressed contrast. Inverted-mode primary/danger reuse action.{primary,danger}.bg-inverted-hover (combined :hover, :active rule); setting --hx-button-active-bg under [inverted] therefore overrides the lifted hover fill as well as the pressed fill — the two share a paint in inverted mode. Other variants do not consume this hook.
33
33
  * @cssprop [--hx-button-color=var(--hx-color-text-on-primary)] - Button text color (variants route through text.on-{role} / text.on-{role}-strong).
@@ -40,8 +40,8 @@ declare const HelixButton_base: typeof HelixElement;
40
40
  * @cssprop [--hx-button-inverted-color=var(--hx-color-text-inverse)] - Text color when inverted (resolves to neutral-0).
41
41
  * @cssprop [--hx-button-inverted-primary-interactive-color=var(--hx-color-text-on-primary)] - Foreground override for inverted primary hover and pressed (combined :hover, :active rule). Defaults to text.on-primary (neutral-900, no dark-mode flip) so dark text rides the lifted primary-400 fill — text.inverse on light teal collapses to ~2.4:1 in light mode.
42
42
  * @cssprop [--hx-button-inverted-danger-interactive-color=var(--hx-color-text-on-error)] - Foreground override for inverted danger hover and pressed (combined :hover, :active rule). Defaults to text.on-error (neutral-900); same rationale as the primary override.
43
- * @cssprop [--hx-button-inverted-ghost-hover-bg=var(--hx-color-border-on-dark-default)] - Ghost hover bg when inverted (overlay-white-30 5:1 vs neutral-900).
44
- * @cssprop [--hx-button-inverted-focus-ring-color=var(--hx-color-border-on-dark-strong)] - Focus ring color when inverted (overlay-white-70 = ~5:1 vs neutral-900).
43
+ * @cssprop [--hx-button-inverted-ghost-hover-bg=var(--hx-color-surface-on-dark-overlay-default)] - Ghost hover bg when inverted (overlay-white-30 translucent fill, not a border; contrast not applicable).
44
+ * @cssprop [--hx-button-inverted-focus-ring-color=var(--hx-color-border-on-dark-strong)] - Focus ring color when inverted (overlay-white-70 5:1 vs neutral-900 — clears WCAG 1.4.11 3:1 floor for non-text UI).
45
45
  *
46
46
  * @cssprop [--hx-color-action-primary-bg] - Primary variant resting fill (3.2.1 semantic action layer).
47
47
  * @cssprop [--hx-color-action-primary-bg-hover] - Primary variant hover fill.
@@ -63,9 +63,11 @@ declare const HelixButton_base: typeof HelixElement;
63
63
  * @cssprop [--hx-color-text-primary] - Foreground for tertiary variant on surface.sunken.
64
64
  * @cssprop [--hx-color-surface-sunken] - Tertiary variant resting fill.
65
65
  * @cssprop [--hx-color-surface-raised] - Tertiary variant hover fill.
66
- * @cssprop [--hx-color-border-on-dark-subtle] - Inverted-tertiary resting border (overlay-white-10).
67
- * @cssprop [--hx-color-border-on-dark-default] - Inverted-tertiary hover border + inverted-secondary/ghost hover border (overlay-white-30).
68
- * @cssprop [--hx-color-border-on-dark-strong] - Inverted focus-visible outline (overlay-white-70).
66
+ * @cssprop [--hx-color-surface-on-dark-overlay-subtle] - Inverted-tertiary resting fill (overlay-white-10 — translucent fill, not a border).
67
+ * @cssprop [--hx-color-surface-on-dark-overlay-default] - Inverted-tertiary hover fill + inverted-secondary/ghost/outline hover fill (overlay-white-30 — translucent fill, not a border).
68
+ * @cssprop [--hx-color-border-on-dark-strong] - Inverted-secondary/outline border + inverted focus-visible outline (overlay-white-70 ≈ 5:1 — clears WCAG 1.4.11 3:1 floor).
69
+ * @cssprop [--hx-color-border-on-dark-subtle] - DEPRECATED 3.2.2; renamed to --hx-color-surface-on-dark-overlay-subtle (the value paints a translucent fill, not a border). Consume sites read both names via deprecated-first fallback so existing overrides keep working until removal in 4.0.0.
70
+ * @cssprop [--hx-color-border-on-dark-default] - DEPRECATED 3.2.2; renamed to --hx-color-surface-on-dark-overlay-default (the value paints a translucent fill, not a border). Consume sites read both names via deprecated-first fallback so existing overrides keep working until removal in 4.0.0.
69
71
  */
70
72
  export declare class HelixButton extends HelixButton_base {
71
73
  static styles: import('lit').CSSResult[];
@@ -1 +1 @@
1
- {"version":3,"file":"hx-button.d.ts","sourceRoot":"","sources":["../../../src/components/hx-button/hx-button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAC9E,OAAO,4CAA4C,CAAC;AAIpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAKnD,6DAA6D;AAC7D,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,UAAU,CAAC;CAC3B;;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AACH,qBACa,WAAY,SAAQ,gBAAgC;IAM/D,OAAgB,MAAM,4BAAuB;IAI7C,gBAAgB;IAChB,OAAgB,cAAc,UAAQ;IAItC;;;OAGG;IAEH,OAAO,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAa;IAE3F;;;OAGG;IAEH,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAQ;IAEhC;;;OAGG;IAEH,QAAQ,UAAS;IAEjB;;;;OAIG;IAEH,OAAO,UAAS;IAEhB;;;OAGG;IAEH,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAY;IAE/C;;;OAGG;IAEH,IAAI,EAAE,MAAM,GAAG,SAAS,CAAa;IAErC;;;OAGG;IAEH,MAAM,EAAE,MAAM,GAAG,SAAS,CAAa;IAEvC;;;OAGG;IAEH,IAAI,EAAE,MAAM,GAAG,SAAS,CAAa;IAErC;;;OAGG;IAEH,KAAK,EAAE,MAAM,GAAG,SAAS,CAAa;IAEtC;;;;OAIG;IAEH,IAAI,UAAS;IAEb;;;;;;;;;;;;;;OAcG;IAEH,QAAQ,UAAS;IAEjB;;;;;;;;OAQG;IAEH,eAAe,EAAE,MAAM,CAAM;IAE7B;;;;OAIG;IACH,OAAO,KAAK,eAAe,GAE1B;cAIkB,eAAe,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAM3D,gBAAgB;IAChB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAO5B;IAGX,OAAO,CAAC,qBAAqB,CAAS;IAE7B,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAe3D,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAgB/D,gBAAgB;IAChB,OAAO,CAAC,wBAAwB;IAoBhC;;;OAGG;IACH,OAAO,CAAC,YAAY;IAgCpB;;;OAGG;IACH,OAAO,CAAC,cAAc;IA6BtB;;;OAGG;IACH,OAAO,CAAC,YAAY;IAiBX,MAAM;CAyChB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,WAAW,CAAC;KAC1B;IACD,UAAU,mBAAmB;QAC3B,UAAU,EAAE,WAAW,CAAC;YAAE,aAAa,EAAE,UAAU,CAAA;SAAE,CAAC,CAAC;KACxD;CACF"}
1
+ {"version":3,"file":"hx-button.d.ts","sourceRoot":"","sources":["../../../src/components/hx-button/hx-button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAC9E,OAAO,4CAA4C,CAAC;AAIpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAKnD,6DAA6D;AAC7D,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,UAAU,CAAC;CAC3B;;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,qBACa,WAAY,SAAQ,gBAAgC;IAM/D,OAAgB,MAAM,4BAAuB;IAI7C,gBAAgB;IAChB,OAAgB,cAAc,UAAQ;IAItC;;;OAGG;IAEH,OAAO,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAa;IAE3F;;;OAGG;IAEH,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAQ;IAEhC;;;OAGG;IAEH,QAAQ,UAAS;IAEjB;;;;OAIG;IAEH,OAAO,UAAS;IAEhB;;;OAGG;IAEH,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAY;IAE/C;;;OAGG;IAEH,IAAI,EAAE,MAAM,GAAG,SAAS,CAAa;IAErC;;;OAGG;IAEH,MAAM,EAAE,MAAM,GAAG,SAAS,CAAa;IAEvC;;;OAGG;IAEH,IAAI,EAAE,MAAM,GAAG,SAAS,CAAa;IAErC;;;OAGG;IAEH,KAAK,EAAE,MAAM,GAAG,SAAS,CAAa;IAEtC;;;;OAIG;IAEH,IAAI,UAAS;IAEb;;;;;;;;;;;;;;OAcG;IAEH,QAAQ,UAAS;IAEjB;;;;;;;;OAQG;IAEH,eAAe,EAAE,MAAM,CAAM;IAE7B;;;;OAIG;IACH,OAAO,KAAK,eAAe,GAE1B;cAIkB,eAAe,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAM3D,gBAAgB;IAChB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAO5B;IAGX,OAAO,CAAC,qBAAqB,CAAS;IAE7B,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAe3D,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAgB/D,gBAAgB;IAChB,OAAO,CAAC,wBAAwB;IAoBhC;;;OAGG;IACH,OAAO,CAAC,YAAY;IAgCpB;;;OAGG;IACH,OAAO,CAAC,cAAc;IA6BtB;;;OAGG;IACH,OAAO,CAAC,YAAY;IAiBX,MAAM;CAyChB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,WAAW,CAAC;KAC1B;IACD,UAAU,mBAAmB;QAC3B,UAAU,EAAE,WAAW,CAAC;YAAE,aAAa,EAAE,UAAU,CAAA;SAAE,CAAC,CAAC;KACxD;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"hx-button.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-button/hx-button.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,yBAga7B,CAAC"}
1
+ {"version":3,"file":"hx-button.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-button/hx-button.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,yBAic7B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { H as e } from "../../shared/hx-button-9OUjJnk7.js";
1
+ import { H as e } from "../../shared/hx-button-DPY6SPVT.js";
2
2
  export {
3
3
  e as HelixButton
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"hx-checkbox.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-checkbox/hx-checkbox.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,yBA6R/B,CAAC"}
1
+ {"version":3,"file":"hx-checkbox.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-checkbox/hx-checkbox.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,yBA0R/B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { H as x } from "../../shared/hx-checkbox-DBD-gMoz.js";
1
+ import { H as x } from "../../shared/hx-checkbox-D7xma9YH.js";
2
2
  export {
3
3
  x as HelixCheckbox
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"hx-code-snippet.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-code-snippet/hx-code-snippet.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,sBAAsB,yBA+MlC,CAAC"}
1
+ {"version":3,"file":"hx-code-snippet.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-code-snippet/hx-code-snippet.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,sBAAsB,yBA6NlC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { H as p } from "../../shared/hx-code-snippet-CJrFeyz0.js";
1
+ import { H as p } from "../../shared/hx-code-snippet-fVV3Z2DZ.js";
2
2
  export {
3
3
  p as HelixCodeSnippet
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"hx-combobox.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-combobox/hx-combobox.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,yBAwY/B,CAAC"}
1
+ {"version":3,"file":"hx-combobox.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-combobox/hx-combobox.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,yBAkY/B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { H as b } from "../../shared/hx-combobox-ClhNRAS5.js";
1
+ import { H as b } from "../../shared/hx-combobox-DDzqNKEW.js";
2
2
  export {
3
3
  b as HelixCombobox
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"hx-date-picker.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-date-picker/hx-date-picker.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,qBAAqB,yBAsbjC,CAAC"}
1
+ {"version":3,"file":"hx-date-picker.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-date-picker/hx-date-picker.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,qBAAqB,yBAsajC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { H as a } from "../../shared/hx-date-picker-BJm7Yrda.js";
1
+ import { H as a } from "../../shared/hx-date-picker-2iRG1p74.js";
2
2
  export {
3
3
  a as HelixDatePicker
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"hx-link.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-link/hx-link.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe,yBA2H3B,CAAC"}
1
+ {"version":3,"file":"hx-link.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-link/hx-link.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe,yBAwH3B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { H as o } from "../../shared/hx-link-9Ig2DW6L.js";
1
+ import { H as o } from "../../shared/hx-link-C-O6vq0Q.js";
2
2
  export {
3
3
  o as HelixLink
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"hx-list-item.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-list/hx-list-item.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,yBA4I/B,CAAC"}
1
+ {"version":3,"file":"hx-list-item.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-list/hx-list-item.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,yBA0I/B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { H as s, a as t } from "../../shared/hx-list-CkphGi9T.js";
1
+ import { H as s, a as t } from "../../shared/hx-list-MyEhh8c7.js";
2
2
  export {
3
3
  s as HelixList,
4
4
  t as HelixListItem
@@ -1 +1 @@
1
- {"version":3,"file":"hx-radio.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-radio-group/hx-radio.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB,yBAqK5B,CAAC"}
1
+ {"version":3,"file":"hx-radio.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-radio-group/hx-radio.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB,yBAkK5B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { H as i, a as e } from "../../shared/hx-radio-dFjUAost.js";
1
+ import { H as i, a as e } from "../../shared/hx-radio-CJvNU2yP.js";
2
2
  export {
3
3
  i as HelixRadio,
4
4
  e as HelixRadioGroup
@@ -1 +1 @@
1
- {"version":3,"file":"hx-rating.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-rating/hx-rating.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,yBAyI7B,CAAC"}
1
+ {"version":3,"file":"hx-rating.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-rating/hx-rating.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,yBAwI7B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { H as i } from "../../shared/hx-rating-CGtsejNf.js";
1
+ import { H as i } from "../../shared/hx-rating-C3QP53k9.js";
2
2
  export {
3
3
  i as HelixRating
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"hx-select.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-select/hx-select.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,yBAyX7B,CAAC"}
1
+ {"version":3,"file":"hx-select.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-select/hx-select.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,yBAsX7B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { H as o } from "../../shared/hx-select-Bf4usFts.js";
1
+ import { H as o } from "../../shared/hx-select-C8fEHQhC.js";
2
2
  export {
3
3
  o as HelixSelect
4
4
  };
@@ -25,15 +25,16 @@ import { HelixElement } from '../../base/index.js';
25
25
  * @cssprop [--hx-side-nav-collapsed-width=3.5rem] - Collapsed icon-only width.
26
26
  * @cssprop [--hx-side-nav-bg=var(--hx-color-surface-inverse)] - Background color.
27
27
  * @cssprop [--hx-side-nav-color=var(--hx-color-text-inverse)] - Text color.
28
- * @cssprop [--hx-side-nav-border-color=var(--hx-color-border-strong)] - Border color.
28
+ * @cssprop [--hx-side-nav-border-color=var(--hx-color-border-on-dark-strong)] - Border color (against the dark surface-inverse host bg).
29
29
  * @cssprop [--hx-side-nav-header-padding=var(--hx-space-4)] - Header padding.
30
30
  * @cssprop [--hx-side-nav-footer-padding=var(--hx-space-4)] - Footer padding.
31
31
  * @cssprop [--hx-side-nav-toggle-color=var(--hx-color-text-inverse)] - Toggle button icon color (resting).
32
32
  * @cssprop [--hx-side-nav-toggle-hover-color=var(--hx-color-text-inverse)] - Toggle button icon color on hover.
33
33
  * @cssprop [--hx-color-surface-inverse] - Side-nav surface fill (resolves to neutral-900 light, near-black dark).
34
34
  * @cssprop [--hx-color-text-inverse] - Side-nav text color (resolves to neutral-0).
35
- * @cssprop [--hx-color-border-strong] - Header/footer divider border.
36
- * @cssprop [--hx-color-border-on-dark-subtle] - Toggle button hover surface (overlay-white-10 primitive — semantic layer for inverted affordances).
35
+ * @cssprop [--hx-color-border-on-dark-strong] - Container/header/footer divider border (overlay-white-70 light, overlay-black-50 dark — sized for visibility on the mode-flipped surface-inverse).
36
+ * @cssprop [--hx-color-surface-on-dark-overlay-subtle] - Toggle button hover surface (overlay-white-10 primitive — translucent fill, not a border).
37
+ * @cssprop [--hx-color-border-on-dark-subtle] - DEPRECATED 3.2.2; renamed to --hx-color-surface-on-dark-overlay-subtle (the value paints a translucent fill, not a border). Toggle-hover rule reads both names via deprecated-first fallback so existing overrides keep working until removal in 4.0.0.
37
38
  */
38
39
  export declare class HelixSideNav extends HelixElement {
39
40
  static styles: import('lit').CSSResult[];
@@ -1 +1 @@
1
- {"version":3,"file":"hx-side-nav.d.ts","sourceRoot":"","sources":["../../../src/components/hx-side-nav/hx-side-nav.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAChD,OAAO,4CAA4C,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBACa,YAAa,SAAQ,YAAY;IAI5C,OAAgB,MAAM,4BAAwB;IAI9C;;;OAGG;IAEH,SAAS,UAAS;IAElB;;;OAGG;IAEH,KAAK,SAAqB;IAIjB,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAS/D;;;;OAIG;IACH,gBAAgB;IAChB,OAAO,CAAC,6BAA6B;IAkBrC;;;OAGG;IACH,gBAAgB;IAChB,OAAO,CAAC,oBAAoB;IAM5B;;;;;OAKG;IACH,gBAAgB;IAChB,OAAO,CAAC,cAAc;IAgItB,gBAAgB;IAChB,OAAO,CAAC,aAAa;IAgCrB,gBAAgB;IAChB,OAAO,CAAC,iBAAiB;IAQhB,MAAM;CA0BhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,YAAY,CAAC;KAC7B;CACF;AAED,YAAY,EAAE,YAAY,IAAI,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"hx-side-nav.d.ts","sourceRoot":"","sources":["../../../src/components/hx-side-nav/hx-side-nav.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAChD,OAAO,4CAA4C,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,qBACa,YAAa,SAAQ,YAAY;IAI5C,OAAgB,MAAM,4BAAwB;IAI9C;;;OAGG;IAEH,SAAS,UAAS;IAElB;;;OAGG;IAEH,KAAK,SAAqB;IAIjB,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAS/D;;;;OAIG;IACH,gBAAgB;IAChB,OAAO,CAAC,6BAA6B;IAkBrC;;;OAGG;IACH,gBAAgB;IAChB,OAAO,CAAC,oBAAoB;IAM5B;;;;;OAKG;IACH,gBAAgB;IAChB,OAAO,CAAC,cAAc;IAgItB,gBAAgB;IAChB,OAAO,CAAC,aAAa;IAgCrB,gBAAgB;IAChB,OAAO,CAAC,iBAAiB;IAQhB,MAAM;CA0BhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,YAAY,CAAC;KAC7B;CACF;AAED,YAAY,EAAE,YAAY,IAAI,SAAS,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"hx-side-nav.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-side-nav/hx-side-nav.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB,yBAuL9B,CAAC"}
1
+ {"version":3,"file":"hx-side-nav.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-side-nav/hx-side-nav.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB,yBA4M9B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { H as i, a as x } from "../../shared/hx-nav-item-DH2tXcj1.js";
1
+ import { H as i, a as x } from "../../shared/hx-nav-item-xqRPOCWX.js";
2
2
  export {
3
3
  i as HelixNavItem,
4
4
  x as HelixSideNav
@@ -1 +1 @@
1
- {"version":3,"file":"hx-slider.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-slider/hx-slider.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,yBAuS7B,CAAC"}
1
+ {"version":3,"file":"hx-slider.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-slider/hx-slider.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,yBAoS7B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { H as i } from "../../shared/hx-slider-m0aEClH1.js";
1
+ import { H as i } from "../../shared/hx-slider-Blmv_rwS.js";
2
2
  export {
3
3
  i as HelixSlider
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"hx-split-button.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-split-button/hx-split-button.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,sBAAsB,yBAsWlC,CAAC"}
1
+ {"version":3,"file":"hx-split-button.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-split-button/hx-split-button.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,sBAAsB,yBAgWlC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { H as e } from "../../shared/hx-split-button-BxDFfx4D.js";
1
+ import { H as e } from "../../shared/hx-split-button-Djnc5Aeg.js";
2
2
  export {
3
3
  e as HelixSplitButton
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"hx-switch.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-switch/hx-switch.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,yBA+O7B,CAAC"}
1
+ {"version":3,"file":"hx-switch.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-switch/hx-switch.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,yBA4O7B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { H as o } from "../../shared/hx-switch-DvAW4YY-.js";
1
+ import { H as o } from "../../shared/hx-switch-BrZFaRue.js";
2
2
  export {
3
3
  o as HelixSwitch
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"hx-tab-panel.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-tabs/hx-tab-panel.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,yBA4C/B,CAAC"}
1
+ {"version":3,"file":"hx-tab-panel.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-tabs/hx-tab-panel.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,yBAyC/B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"hx-tab.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-tabs/hx-tab.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,yBA8H1B,CAAC"}
1
+ {"version":3,"file":"hx-tab.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-tabs/hx-tab.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,yBA2H1B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { H as b, a as l, b as s } from "../../shared/hx-tab-panel-SWOEHuJc.js";
1
+ import { H as b, a as l, b as s } from "../../shared/hx-tab-panel-DspCrKqo.js";
2
2
  export {
3
3
  b as HelixTab,
4
4
  l as HelixTabPanel,
@@ -1 +1 @@
1
- {"version":3,"file":"hx-text-input.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-text-input/hx-text-input.styles.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB,yBAkWhC,CAAC"}
1
+ {"version":3,"file":"hx-text-input.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-text-input/hx-text-input.styles.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB,yBA4VhC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { H as x } from "../../shared/hx-text-input-Bn7Gn8CI.js";
1
+ import { H as x } from "../../shared/hx-text-input-D6FlOZM-.js";
2
2
  export {
3
3
  x as HelixTextInput
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"hx-textarea.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-textarea/hx-textarea.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,yBAmR/B,CAAC"}
1
+ {"version":3,"file":"hx-textarea.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-textarea/hx-textarea.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,yBAgR/B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { H as r } from "../../shared/hx-textarea-Jx1xnhgv.js";
1
+ import { H as r } from "../../shared/hx-textarea-CNG590KY.js";
2
2
  export {
3
3
  r as HelixTextarea
4
4
  };
@@ -101,6 +101,13 @@ export declare class HelixTheme extends HelixElement {
101
101
  * If the brand name is non-empty but not registered, a warning is logged
102
102
  * and the base theme is applied without brand overrides.
103
103
  *
104
+ * **High-contrast suppression:** When `theme="high-contrast"`, the brand
105
+ * merge is intentionally skipped to preserve the WCAG 1.4.6 Enhanced
106
+ * Contrast (7:1+) guarantee that the HC token set is tuned for. A
107
+ * registered brand applied under HC emits a `console.info` to surface
108
+ * the suppression in development. Brand merging on `light` and `dark`
109
+ * is unaffected. See `BRAND_THEMING.md`.
110
+ *
104
111
  * @attr brand
105
112
  * @example
106
113
  * ```html
@@ -143,15 +150,20 @@ export declare class HelixTheme extends HelixElement {
143
150
  private _motionQuery;
144
151
  /** @internal */
145
152
  private _motionHandler;
153
+ /** @internal — last `${brand}|${effectiveTheme}|${kind}` for which a brand
154
+ * suppression info / unregistered warn was emitted. `_applyEffectiveTheme()`
155
+ * runs on every relevant property change, so without this guard the message
156
+ * fires once per `update()` tick rather than once per applied state. */
157
+ private _lastBrandAdvisoryKey;
146
158
  firstUpdated(changed: PropertyValues<this>): void;
147
159
  updated(changed: PropertyValues<this>): void;
148
160
  disconnectedCallback(): void;
149
161
  /**
150
162
  * Returns the currently active theme name.
151
- * When `system=true` or `theme="auto"`, reflects the OS preference (`"light"` or `"dark"`).
163
+ * When `theme="auto"`, reflects the OS preference (`"light"` or `"dark"`).
152
164
  * Otherwise returns the `theme` property value.
153
165
  */
154
- get effectiveTheme(): 'light' | 'dark' | 'high-contrast' | 'auto';
166
+ get effectiveTheme(): 'light' | 'dark' | 'high-contrast';
155
167
  /**
156
168
  * Returns the resolved motion level after considering the `motion` attribute and OS preference.
157
169
  * When `motion="full"` and the OS reports `prefers-reduced-motion: reduce`, returns `"reduced"`.
@@ -1 +1 @@
1
- {"version":3,"file":"hx-theme.d.ts","sourceRoot":"","sources":["../../../src/components/hx-theme/hx-theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAChD,OAAO,4CAA4C,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAKnD,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEnE;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,SAAS,GAAG,UAAU,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;AAErD;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,eAAe,GAAG,MAAM,CAAC;AAqLpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,qBACa,UAAW,SAAQ,YAAY;IAC1C,OAAgB,MAAM,4BAAsB;IAE5C;;;;;;;OAOG;IAEH,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,eAAe,GAAG,MAAM,CAAW;IAK7D;;;;;;;;;;;;;;;;;OAiBG;IAEH,KAAK,SAAM;IAEX;;;;;;;;;;;OAWG;IAEH,MAAM,EAAE,UAAU,CAAU;IAE5B;;;;;;OAMG;IAEH,OAAO,EAAE,WAAW,CAAiB;IAErC,gBAAgB;IAChB,OAAO,CAAC,WAAW,CAA+B;IAClD,gBAAgB;IAChB,OAAO,CAAC,aAAa,CAA6B;IAClD,gBAAgB;IAChB,OAAO,CAAC,WAAW,CAA8B;IACjD,gBAAgB;IAChB,OAAO,CAAC,aAAa,CAA8B;IACnD,4DAA4D;IAC5D,OAAO,CAAC,YAAY,CAA+B;IACnD,gBAAgB;IAChB,OAAO,CAAC,cAAc,CAA6B;IAE1C,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAWjD,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IA2B5C,oBAAoB,IAAI,IAAI;IAMrC;;;;OAIG;IACH,IAAI,cAAc,IAAI,OAAO,GAAG,MAAM,GAAG,eAAe,GAAG,MAAM,CAMhE;IAED;;;;OAIG;IACH,IAAI,eAAe,IAAI,MAAM,GAAG,SAAS,CASxC;IAED,gBAAgB;IAChB,OAAO,CAAC,eAAe;IAcvB,gBAAgB;IAChB,OAAO,CAAC,iBAAiB;IAUzB,gBAAgB;IAChB,OAAO,CAAC,iBAAiB;IAQzB,+EAA+E;IAC/E,OAAO,CAAC,kBAAkB;IAS1B,gBAAgB;IAChB,OAAO,CAAC,kBAAkB;IAQ1B,+EAA+E;IAC/E,OAAO,CAAC,oBAAoB;IAO5B,gBAAgB;IAChB,OAAO,CAAC,oBAAoB;IAyB5B,gBAAgB;IAChB,OAAO,CAAC,aAAa;IAcZ,MAAM;CAQhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,UAAU,CAAC;KACxB;CACF;AAED,6FAA6F;AAC7F,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC"}
1
+ {"version":3,"file":"hx-theme.d.ts","sourceRoot":"","sources":["../../../src/components/hx-theme/hx-theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAChD,OAAO,4CAA4C,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAUnD,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEnE;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,SAAS,GAAG,UAAU,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;AAErD;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,eAAe,GAAG,MAAM,CAAC;AA+HpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,qBACa,UAAW,SAAQ,YAAY;IAC1C,OAAgB,MAAM,4BAAsB;IAE5C;;;;;;;OAOG;IAEH,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,eAAe,GAAG,MAAM,CAAW;IAK7D;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IAEH,KAAK,SAAM;IAEX;;;;;;;;;;;OAWG;IAEH,MAAM,EAAE,UAAU,CAAU;IAE5B;;;;;;OAMG;IAEH,OAAO,EAAE,WAAW,CAAiB;IAErC,gBAAgB;IAChB,OAAO,CAAC,WAAW,CAA+B;IAClD,gBAAgB;IAChB,OAAO,CAAC,aAAa,CAA6B;IAClD,gBAAgB;IAChB,OAAO,CAAC,WAAW,CAA8B;IACjD,gBAAgB;IAChB,OAAO,CAAC,aAAa,CAA8B;IACnD,4DAA4D;IAC5D,OAAO,CAAC,YAAY,CAA+B;IACnD,gBAAgB;IAChB,OAAO,CAAC,cAAc,CAA6B;IACnD;;;4EAGwE;IACxE,OAAO,CAAC,qBAAqB,CAAuB;IAE3C,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAWjD,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IA2B5C,oBAAoB,IAAI,IAAI;IAMrC;;;;OAIG;IACH,IAAI,cAAc,IAAI,OAAO,GAAG,MAAM,GAAG,eAAe,CAMvD;IAED;;;;OAIG;IACH,IAAI,eAAe,IAAI,MAAM,GAAG,SAAS,CASxC;IAED,gBAAgB;IAChB,OAAO,CAAC,eAAe;IAcvB,gBAAgB;IAChB,OAAO,CAAC,iBAAiB;IAUzB,gBAAgB;IAChB,OAAO,CAAC,iBAAiB;IAQzB,+EAA+E;IAC/E,OAAO,CAAC,kBAAkB;IAS1B,gBAAgB;IAChB,OAAO,CAAC,kBAAkB;IAQ1B,+EAA+E;IAC/E,OAAO,CAAC,oBAAoB;IAO5B,gBAAgB;IAChB,OAAO,CAAC,oBAAoB;IAgE5B,gBAAgB;IAChB,OAAO,CAAC,aAAa;IAcZ,MAAM;CAQhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,UAAU,CAAC;KACxB;CACF;AAED,6FAA6F;AAC7F,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC"}
@@ -1,4 +1,4 @@
1
- import { H as o } from "../../shared/hx-theme-BiyQ7UUK.js";
1
+ import { H as o } from "../../shared/hx-theme-BsefFWTO.js";
2
2
  export {
3
3
  o as HelixTheme
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"hx-toggle-button.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-toggle-button/hx-toggle-button.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,uBAAuB,yBAoQnC,CAAC"}
1
+ {"version":3,"file":"hx-toggle-button.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-toggle-button/hx-toggle-button.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,uBAAuB,yBAiQnC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { H as t } from "../../shared/hx-toggle-button-DPAIh_Xo.js";
1
+ import { H as t } from "../../shared/hx-toggle-button-iLiYrMbD.js";
2
2
  export {
3
3
  t as HelixToggleButton
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"hx-tree-view.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-tree-view/hx-tree-view.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,yBA+B/B,CAAC"}
1
+ {"version":3,"file":"hx-tree-view.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-tree-view/hx-tree-view.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,yBA8B/B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { H as a, a as i } from "../../shared/hx-tree-item-Dt0Ozqyr.js";
1
+ import { H as a, a as i } from "../../shared/hx-tree-item-C2CiWuDE.js";
2
2
  export {
3
3
  a as HelixTreeItem,
4
4
  i as HelixTreeView