@helixui/library 3.2.0 → 3.3.0-next.111

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 (294) hide show
  1. package/custom-elements.json +175 -326
  2. package/dist/components/hx-accordion/hx-accordion-item.styles.d.ts.map +1 -1
  3. package/dist/components/hx-accordion/index.js +1 -1
  4. package/dist/components/hx-alert/hx-alert.styles.d.ts.map +1 -1
  5. package/dist/components/hx-alert/index.js +1 -1
  6. package/dist/components/hx-banner/hx-banner.styles.d.ts.map +1 -1
  7. package/dist/components/hx-banner/index.js +1 -1
  8. package/dist/components/hx-breadcrumb/hx-breadcrumb-item.styles.d.ts.map +1 -1
  9. package/dist/components/hx-breadcrumb/index.js +1 -1
  10. package/dist/components/hx-button/hx-button.d.ts +46 -49
  11. package/dist/components/hx-button/hx-button.d.ts.map +1 -1
  12. package/dist/components/hx-button/hx-button.styles.d.ts.map +1 -1
  13. package/dist/components/hx-button/index.js +1 -1
  14. package/dist/components/hx-card/hx-card.styles.d.ts.map +1 -1
  15. package/dist/components/hx-card/index.js +1 -1
  16. package/dist/components/hx-carousel/index.js +1 -1
  17. package/dist/components/hx-checkbox/hx-checkbox.styles.d.ts.map +1 -1
  18. package/dist/components/hx-checkbox/index.js +1 -1
  19. package/dist/components/hx-clinical-status/hx-clinical-status.styles.d.ts.map +1 -1
  20. package/dist/components/hx-clinical-status/index.js +1 -1
  21. package/dist/components/hx-code-snippet/hx-code-snippet.styles.d.ts.map +1 -1
  22. package/dist/components/hx-code-snippet/index.js +1 -1
  23. package/dist/components/hx-color-picker/hx-color-picker.styles.d.ts.map +1 -1
  24. package/dist/components/hx-color-picker/index.js +1 -1
  25. package/dist/components/hx-combobox/hx-combobox.styles.d.ts.map +1 -1
  26. package/dist/components/hx-combobox/index.js +1 -1
  27. package/dist/components/hx-data-table/hx-data-table.styles.d.ts.map +1 -1
  28. package/dist/components/hx-data-table/index.js +1 -1
  29. package/dist/components/hx-date-picker/hx-date-picker.styles.d.ts.map +1 -1
  30. package/dist/components/hx-date-picker/index.js +1 -1
  31. package/dist/components/hx-dialog/hx-dialog.styles.d.ts.map +1 -1
  32. package/dist/components/hx-dialog/index.js +1 -1
  33. package/dist/components/hx-drawer/hx-drawer.styles.d.ts.map +1 -1
  34. package/dist/components/hx-drawer/index.js +1 -1
  35. package/dist/components/hx-file-upload/hx-file-upload.styles.d.ts.map +1 -1
  36. package/dist/components/hx-file-upload/index.js +1 -1
  37. package/dist/components/hx-icon-button/hx-icon-button.styles.d.ts.map +1 -1
  38. package/dist/components/hx-icon-button/index.js +1 -1
  39. package/dist/components/hx-link/hx-link.styles.d.ts.map +1 -1
  40. package/dist/components/hx-link/index.js +1 -1
  41. package/dist/components/hx-list/hx-list-item.styles.d.ts.map +1 -1
  42. package/dist/components/hx-list/index.js +1 -1
  43. package/dist/components/hx-menu/hx-menu-item.styles.d.ts.map +1 -1
  44. package/dist/components/hx-menu/index.js +1 -1
  45. package/dist/components/hx-meter/hx-meter.styles.d.ts.map +1 -1
  46. package/dist/components/hx-meter/index.js +1 -1
  47. package/dist/components/hx-nav/hx-nav.styles.d.ts.map +1 -1
  48. package/dist/components/hx-nav/index.js +1 -1
  49. package/dist/components/hx-overflow-menu/hx-overflow-menu.styles.d.ts.map +1 -1
  50. package/dist/components/hx-overflow-menu/index.js +1 -1
  51. package/dist/components/hx-pagination/hx-pagination.styles.d.ts.map +1 -1
  52. package/dist/components/hx-pagination/index.js +1 -1
  53. package/dist/components/hx-phi-field/hx-phi-field.styles.d.ts.map +1 -1
  54. package/dist/components/hx-phi-field/index.js +1 -1
  55. package/dist/components/hx-popover/hx-popover.styles.d.ts.map +1 -1
  56. package/dist/components/hx-popover/index.js +1 -1
  57. package/dist/components/hx-radio-group/hx-radio.styles.d.ts.map +1 -1
  58. package/dist/components/hx-radio-group/index.js +1 -1
  59. package/dist/components/hx-rating/hx-rating.styles.d.ts.map +1 -1
  60. package/dist/components/hx-rating/index.js +1 -1
  61. package/dist/components/hx-select/hx-select.styles.d.ts.map +1 -1
  62. package/dist/components/hx-select/index.js +1 -1
  63. package/dist/components/hx-side-nav/hx-nav-item.d.ts +7 -5
  64. package/dist/components/hx-side-nav/hx-nav-item.d.ts.map +1 -1
  65. package/dist/components/hx-side-nav/hx-nav-item.styles.d.ts.map +1 -1
  66. package/dist/components/hx-side-nav/hx-side-nav.d.ts +10 -23
  67. package/dist/components/hx-side-nav/hx-side-nav.d.ts.map +1 -1
  68. package/dist/components/hx-side-nav/hx-side-nav.styles.d.ts.map +1 -1
  69. package/dist/components/hx-side-nav/index.js +1 -1
  70. package/dist/components/hx-slider/hx-slider.styles.d.ts.map +1 -1
  71. package/dist/components/hx-slider/index.js +1 -1
  72. package/dist/components/hx-split-button/hx-split-button.d.ts +1 -1
  73. package/dist/components/hx-split-button/hx-split-button.styles.d.ts.map +1 -1
  74. package/dist/components/hx-split-button/index.js +1 -1
  75. package/dist/components/hx-split-panel/hx-split-panel.styles.d.ts.map +1 -1
  76. package/dist/components/hx-split-panel/index.js +1 -1
  77. package/dist/components/hx-steps/hx-step.styles.d.ts.map +1 -1
  78. package/dist/components/hx-steps/index.js +1 -1
  79. package/dist/components/hx-switch/hx-switch.styles.d.ts.map +1 -1
  80. package/dist/components/hx-switch/index.js +1 -1
  81. package/dist/components/hx-table/hx-table.styles.d.ts.map +1 -1
  82. package/dist/components/hx-table/index.js +1 -1
  83. package/dist/components/hx-tabs/hx-tab-panel.styles.d.ts.map +1 -1
  84. package/dist/components/hx-tabs/hx-tab.styles.d.ts.map +1 -1
  85. package/dist/components/hx-tabs/index.js +1 -1
  86. package/dist/components/hx-text-input/hx-text-input.d.ts +18 -35
  87. package/dist/components/hx-text-input/hx-text-input.d.ts.map +1 -1
  88. package/dist/components/hx-text-input/hx-text-input.styles.d.ts.map +1 -1
  89. package/dist/components/hx-text-input/index.js +1 -1
  90. package/dist/components/hx-textarea/hx-textarea.styles.d.ts.map +1 -1
  91. package/dist/components/hx-textarea/index.js +1 -1
  92. package/dist/components/hx-theme/hx-theme.d.ts +14 -2
  93. package/dist/components/hx-theme/hx-theme.d.ts.map +1 -1
  94. package/dist/components/hx-theme/index.js +1 -1
  95. package/dist/components/hx-time-picker/index.js +1 -1
  96. package/dist/components/hx-toast/hx-toast.d.ts +12 -8
  97. package/dist/components/hx-toast/hx-toast.d.ts.map +1 -1
  98. package/dist/components/hx-toast/hx-toast.styles.d.ts.map +1 -1
  99. package/dist/components/hx-toast/index.js +1 -1
  100. package/dist/components/hx-toggle-button/hx-toggle-button.styles.d.ts.map +1 -1
  101. package/dist/components/hx-toggle-button/index.js +1 -1
  102. package/dist/components/hx-top-nav/hx-top-nav.styles.d.ts.map +1 -1
  103. package/dist/components/hx-top-nav/index.js +1 -1
  104. package/dist/components/hx-tree-view/hx-tree-item.styles.d.ts.map +1 -1
  105. package/dist/components/hx-tree-view/hx-tree-view.styles.d.ts.map +1 -1
  106. package/dist/components/hx-tree-view/index.js +1 -1
  107. package/dist/css/helix-all.css +351 -308
  108. package/dist/css/helix-core.css +180 -56
  109. package/dist/css/helix-data.css +23 -16
  110. package/dist/css/helix-feedback.css +30 -29
  111. package/dist/css/helix-forms.css +53 -120
  112. package/dist/css/helix-layout.css +2 -8
  113. package/dist/css/helix-media.css +3 -3
  114. package/dist/css/helix-navigation.css +49 -45
  115. package/dist/css/helix-overlay.css +3 -12
  116. package/dist/css/helix-tokens.css +60 -5
  117. package/dist/css/helix-utility.css +5 -11
  118. package/dist/css/hx-alert.css +1 -4
  119. package/dist/css/hx-banner.css +2 -8
  120. package/dist/css/hx-button.css +176 -43
  121. package/dist/css/hx-card.css +1 -4
  122. package/dist/css/hx-carousel.css +3 -3
  123. package/dist/css/hx-checkbox.css +2 -5
  124. package/dist/css/hx-clinical-status.css +2 -4
  125. package/dist/css/hx-code-snippet.css +20 -6
  126. package/dist/css/hx-color-picker.css +3 -13
  127. package/dist/css/hx-combobox.css +7 -13
  128. package/dist/css/hx-data-table.css +2 -8
  129. package/dist/css/hx-date-picker.css +7 -23
  130. package/dist/css/hx-dialog.css +1 -4
  131. package/dist/css/hx-drawer.css +1 -4
  132. package/dist/css/hx-file-upload.css +4 -13
  133. package/dist/css/hx-icon-button.css +2 -5
  134. package/dist/css/hx-link.css +1 -4
  135. package/dist/css/hx-meter.css +1 -2
  136. package/dist/css/hx-nav.css +2 -8
  137. package/dist/css/hx-overflow-menu.css +2 -8
  138. package/dist/css/hx-pagination.css +2 -8
  139. package/dist/css/hx-phi-field.css +1 -4
  140. package/dist/css/hx-popover.css +1 -4
  141. package/dist/css/hx-rating.css +3 -4
  142. package/dist/css/hx-select.css +3 -7
  143. package/dist/css/hx-side-nav.css +41 -15
  144. package/dist/css/hx-slider.css +4 -7
  145. package/dist/css/hx-split-button.css +5 -11
  146. package/dist/css/hx-split-panel.css +2 -8
  147. package/dist/css/hx-switch.css +3 -6
  148. package/dist/css/hx-table.css +1 -2
  149. package/dist/css/hx-text-input.css +8 -14
  150. package/dist/css/hx-textarea.css +2 -5
  151. package/dist/css/hx-time-picker.css +3 -3
  152. package/dist/css/hx-toast.css +26 -15
  153. package/dist/css/hx-toggle-button.css +4 -7
  154. package/dist/css/hx-top-nav.css +1 -4
  155. package/dist/css/hx-tree-view.css +1 -2
  156. package/dist/css/index.css +1 -1
  157. package/dist/css/manifest.json +63 -46
  158. package/dist/index.js +46 -46
  159. package/dist/shared/{hx-accordion-cnKg4_la.js → hx-accordion-ZVzgDzTG.js} +4 -5
  160. package/dist/shared/hx-accordion-ZVzgDzTG.js.map +1 -0
  161. package/dist/shared/{hx-alert-BZH8iHQf.js → hx-alert-CLn7CstP.js} +2 -5
  162. package/dist/shared/hx-alert-CLn7CstP.js.map +1 -0
  163. package/dist/shared/{hx-banner-DT7Zn9Bo.js → hx-banner-D3DzpfcP.js} +7 -13
  164. package/dist/shared/hx-banner-D3DzpfcP.js.map +1 -0
  165. package/dist/shared/{hx-breadcrumb-item-COeYcB2x.js → hx-breadcrumb-item-3tKppF9h.js} +2 -5
  166. package/dist/shared/{hx-breadcrumb-item-COeYcB2x.js.map → hx-breadcrumb-item-3tKppF9h.js.map} +1 -1
  167. package/dist/shared/{hx-button-modUSOpY.js → hx-button-DPY6SPVT.js} +201 -69
  168. package/dist/shared/hx-button-DPY6SPVT.js.map +1 -0
  169. package/dist/shared/{hx-card-CU1QnjNb.js → hx-card-qNAM2QNV.js} +6 -9
  170. package/dist/shared/hx-card-qNAM2QNV.js.map +1 -0
  171. package/dist/shared/{hx-carousel-item-BaE4hpLl.js → hx-carousel-item-z1Lc24op.js} +4 -4
  172. package/dist/shared/hx-carousel-item-z1Lc24op.js.map +1 -0
  173. package/dist/shared/{hx-checkbox-C46TyXhM.js → hx-checkbox-D7xma9YH.js} +7 -10
  174. package/dist/shared/hx-checkbox-D7xma9YH.js.map +1 -0
  175. package/dist/shared/{hx-clinical-status-BmSjfSEN.js → hx-clinical-status-D3XQIOqX.js} +3 -5
  176. package/dist/shared/hx-clinical-status-D3XQIOqX.js.map +1 -0
  177. package/dist/shared/{hx-code-snippet-CJ0FbQYG.js → hx-code-snippet-fVV3Z2DZ.js} +55 -41
  178. package/dist/shared/hx-code-snippet-fVV3Z2DZ.js.map +1 -0
  179. package/dist/shared/{hx-color-picker-DiDLZyvK.js → hx-color-picker-uRc865FJ.js} +23 -33
  180. package/dist/shared/hx-color-picker-uRc865FJ.js.map +1 -0
  181. package/dist/shared/{hx-combobox-DaA5dBC4.js → hx-combobox-DDzqNKEW.js} +11 -17
  182. package/dist/shared/hx-combobox-DDzqNKEW.js.map +1 -0
  183. package/dist/shared/{hx-data-table-Cq3t86Ic.js → hx-data-table-CLqVqdxr.js} +3 -9
  184. package/dist/shared/hx-data-table-CLqVqdxr.js.map +1 -0
  185. package/dist/shared/{hx-date-picker-DMqRQNSB.js → hx-date-picker-2iRG1p74.js} +14 -30
  186. package/dist/shared/hx-date-picker-2iRG1p74.js.map +1 -0
  187. package/dist/shared/{hx-dialog-eIS8tcDm.js → hx-dialog-DRN_1-Y-.js} +2 -5
  188. package/dist/shared/hx-dialog-DRN_1-Y-.js.map +1 -0
  189. package/dist/shared/{hx-drawer-DDhDz7RI.js → hx-drawer-Y1Ui2IWJ.js} +2 -5
  190. package/dist/shared/hx-drawer-Y1Ui2IWJ.js.map +1 -0
  191. package/dist/shared/{hx-file-upload-zTDbjsRw.js → hx-file-upload-D3rKROK5.js} +17 -26
  192. package/dist/shared/hx-file-upload-D3rKROK5.js.map +1 -0
  193. package/dist/shared/{hx-icon-button-BmV97nqz.js → hx-icon-button-CGNdQSFM.js} +3 -6
  194. package/dist/shared/hx-icon-button-CGNdQSFM.js.map +1 -0
  195. package/dist/shared/{hx-link-DmiV-mPw.js → hx-link-C-O6vq0Q.js} +5 -8
  196. package/dist/shared/hx-link-C-O6vq0Q.js.map +1 -0
  197. package/dist/shared/{hx-list-CkphGi9T.js → hx-list-MyEhh8c7.js} +3 -5
  198. package/dist/shared/hx-list-MyEhh8c7.js.map +1 -0
  199. package/dist/shared/{hx-menu-divider-j__TZjH2.js → hx-menu-divider-C2omnPtj.js} +2 -5
  200. package/dist/shared/hx-menu-divider-C2omnPtj.js.map +1 -0
  201. package/dist/shared/{hx-meter-Cm7k_Ro8.js → hx-meter-BPscsw5t.js} +2 -3
  202. package/dist/shared/hx-meter-BPscsw5t.js.map +1 -0
  203. package/dist/shared/{hx-nav-item-D8xHLVOs.js → hx-nav-item-xqRPOCWX.js} +172 -110
  204. package/dist/shared/hx-nav-item-xqRPOCWX.js.map +1 -0
  205. package/dist/shared/{hx-nav-LoyEKZQC.js → hx-nav-ldFM3Fle.js} +37 -43
  206. package/dist/shared/hx-nav-ldFM3Fle.js.map +1 -0
  207. package/dist/shared/{hx-overflow-menu-BmKyAp5D.js → hx-overflow-menu-DCLsdIBy.js} +3 -9
  208. package/dist/shared/hx-overflow-menu-DCLsdIBy.js.map +1 -0
  209. package/dist/shared/{hx-pagination-Dqw5dorC.js → hx-pagination-C7y8GVyU.js} +54 -60
  210. package/dist/shared/hx-pagination-C7y8GVyU.js.map +1 -0
  211. package/dist/shared/{hx-phi-field-Bf9TdtC1.js → hx-phi-field-C19oxlrr.js} +2 -5
  212. package/dist/shared/hx-phi-field-C19oxlrr.js.map +1 -0
  213. package/dist/shared/{hx-popover-B93rTAfr.js → hx-popover-B-FP3-wW.js} +8 -11
  214. package/dist/shared/hx-popover-B-FP3-wW.js.map +1 -0
  215. package/dist/shared/{hx-radio-N8xgDd_5.js → hx-radio-CJvNU2yP.js} +4 -7
  216. package/dist/shared/{hx-radio-N8xgDd_5.js.map → hx-radio-CJvNU2yP.js.map} +1 -1
  217. package/dist/shared/{hx-rating-i2FL1WUN.js → hx-rating-C3QP53k9.js} +4 -5
  218. package/dist/shared/hx-rating-C3QP53k9.js.map +1 -0
  219. package/dist/shared/{hx-select-vgaBo1Ai.js → hx-select-C8fEHQhC.js} +4 -8
  220. package/dist/shared/hx-select-C8fEHQhC.js.map +1 -0
  221. package/dist/shared/{hx-slider-ydBamYhd.js → hx-slider-Blmv_rwS.js} +26 -29
  222. package/dist/shared/hx-slider-Blmv_rwS.js.map +1 -0
  223. package/dist/shared/{hx-split-button-BeMsmS6N.js → hx-split-button-Djnc5Aeg.js} +6 -12
  224. package/dist/shared/hx-split-button-Djnc5Aeg.js.map +1 -0
  225. package/dist/shared/{hx-split-panel-BVG1VWNT.js → hx-split-panel-B-u0Z3mm.js} +3 -9
  226. package/dist/shared/hx-split-panel-B-u0Z3mm.js.map +1 -0
  227. package/dist/shared/{hx-step-DL3PbOzm.js → hx-step-R2rjp1fT.js} +2 -5
  228. package/dist/shared/hx-step-R2rjp1fT.js.map +1 -0
  229. package/dist/shared/{hx-switch-Dougzsgp.js → hx-switch-BrZFaRue.js} +8 -11
  230. package/dist/shared/hx-switch-BrZFaRue.js.map +1 -0
  231. package/dist/shared/{hx-tab-panel-CbkO9VKu.js → hx-tab-panel-DspCrKqo.js} +3 -9
  232. package/dist/shared/{hx-tab-panel-CbkO9VKu.js.map → hx-tab-panel-DspCrKqo.js.map} +1 -1
  233. package/dist/shared/{hx-td-1zwTFLRw.js → hx-td-DnnEMIuA.js} +2 -3
  234. package/dist/shared/hx-td-DnnEMIuA.js.map +1 -0
  235. package/dist/shared/{hx-text-input-B-caO5fI.js → hx-text-input-D6FlOZM-.js} +24 -31
  236. package/dist/shared/hx-text-input-D6FlOZM-.js.map +1 -0
  237. package/dist/shared/{hx-textarea-D9O4U8cb.js → hx-textarea-CNG590KY.js} +3 -6
  238. package/dist/shared/hx-textarea-CNG590KY.js.map +1 -0
  239. package/dist/shared/{hx-theme-BiyQ7UUK.js → hx-theme-BsefFWTO.js} +83 -113
  240. package/dist/shared/hx-theme-BsefFWTO.js.map +1 -0
  241. package/dist/shared/{hx-time-picker-m0z4nFB-.js → hx-time-picker-BoEIZwzv.js} +4 -4
  242. package/dist/shared/{hx-time-picker-m0z4nFB-.js.map → hx-time-picker-BoEIZwzv.js.map} +1 -1
  243. package/dist/shared/{hx-toggle-button-Dd8clXB4.js → hx-toggle-button-iLiYrMbD.js} +24 -27
  244. package/dist/shared/hx-toggle-button-iLiYrMbD.js.map +1 -0
  245. package/dist/shared/{hx-top-nav-CchPYaiV.js → hx-top-nav-DP6OFS8C.js} +11 -14
  246. package/dist/shared/hx-top-nav-DP6OFS8C.js.map +1 -0
  247. package/dist/shared/{hx-tree-item-DtMC3DTa.js → hx-tree-item-C2CiWuDE.js} +4 -11
  248. package/dist/shared/hx-tree-item-C2CiWuDE.js.map +1 -0
  249. package/dist/shared/{toast-factory-DvDRAh0l.js → toast-factory-YSznocIV.js} +66 -56
  250. package/dist/shared/toast-factory-YSznocIV.js.map +1 -0
  251. package/figma-inventory.json +283 -420
  252. package/package.json +2 -2
  253. package/dist/shared/hx-accordion-cnKg4_la.js.map +0 -1
  254. package/dist/shared/hx-alert-BZH8iHQf.js.map +0 -1
  255. package/dist/shared/hx-banner-DT7Zn9Bo.js.map +0 -1
  256. package/dist/shared/hx-button-modUSOpY.js.map +0 -1
  257. package/dist/shared/hx-card-CU1QnjNb.js.map +0 -1
  258. package/dist/shared/hx-carousel-item-BaE4hpLl.js.map +0 -1
  259. package/dist/shared/hx-checkbox-C46TyXhM.js.map +0 -1
  260. package/dist/shared/hx-clinical-status-BmSjfSEN.js.map +0 -1
  261. package/dist/shared/hx-code-snippet-CJ0FbQYG.js.map +0 -1
  262. package/dist/shared/hx-color-picker-DiDLZyvK.js.map +0 -1
  263. package/dist/shared/hx-combobox-DaA5dBC4.js.map +0 -1
  264. package/dist/shared/hx-data-table-Cq3t86Ic.js.map +0 -1
  265. package/dist/shared/hx-date-picker-DMqRQNSB.js.map +0 -1
  266. package/dist/shared/hx-dialog-eIS8tcDm.js.map +0 -1
  267. package/dist/shared/hx-drawer-DDhDz7RI.js.map +0 -1
  268. package/dist/shared/hx-file-upload-zTDbjsRw.js.map +0 -1
  269. package/dist/shared/hx-icon-button-BmV97nqz.js.map +0 -1
  270. package/dist/shared/hx-link-DmiV-mPw.js.map +0 -1
  271. package/dist/shared/hx-list-CkphGi9T.js.map +0 -1
  272. package/dist/shared/hx-menu-divider-j__TZjH2.js.map +0 -1
  273. package/dist/shared/hx-meter-Cm7k_Ro8.js.map +0 -1
  274. package/dist/shared/hx-nav-LoyEKZQC.js.map +0 -1
  275. package/dist/shared/hx-nav-item-D8xHLVOs.js.map +0 -1
  276. package/dist/shared/hx-overflow-menu-BmKyAp5D.js.map +0 -1
  277. package/dist/shared/hx-pagination-Dqw5dorC.js.map +0 -1
  278. package/dist/shared/hx-phi-field-Bf9TdtC1.js.map +0 -1
  279. package/dist/shared/hx-popover-B93rTAfr.js.map +0 -1
  280. package/dist/shared/hx-rating-i2FL1WUN.js.map +0 -1
  281. package/dist/shared/hx-select-vgaBo1Ai.js.map +0 -1
  282. package/dist/shared/hx-slider-ydBamYhd.js.map +0 -1
  283. package/dist/shared/hx-split-button-BeMsmS6N.js.map +0 -1
  284. package/dist/shared/hx-split-panel-BVG1VWNT.js.map +0 -1
  285. package/dist/shared/hx-step-DL3PbOzm.js.map +0 -1
  286. package/dist/shared/hx-switch-Dougzsgp.js.map +0 -1
  287. package/dist/shared/hx-td-1zwTFLRw.js.map +0 -1
  288. package/dist/shared/hx-text-input-B-caO5fI.js.map +0 -1
  289. package/dist/shared/hx-textarea-D9O4U8cb.js.map +0 -1
  290. package/dist/shared/hx-theme-BiyQ7UUK.js.map +0 -1
  291. package/dist/shared/hx-toggle-button-Dd8clXB4.js.map +0 -1
  292. package/dist/shared/hx-top-nav-CchPYaiV.js.map +0 -1
  293. package/dist/shared/hx-tree-item-DtMC3DTa.js.map +0 -1
  294. package/dist/shared/toast-factory-DvDRAh0l.js.map +0 -1
@@ -46,10 +46,7 @@
46
46
 
47
47
  .button:focus-visible {
48
48
  outline: var(--hx-focus-ring-width, 2px) solid
49
- var(
50
- --hx-button-focus-ring-color,
51
- var(--hx-focus-ring-color, var(--hx-color-primary-500, #429797))
52
- );
49
+ var(--hx-button-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
53
50
  outline-offset: var(--hx-focus-ring-offset, 2px);
54
51
  }
55
52
 
@@ -87,21 +84,24 @@
87
84
  /* ─── Style Variants ─── */
88
85
 
89
86
  .button--primary {
90
- --hx-button-bg: var(--hx-color-primary-500, #429797);
91
- --hx-button-color: var(--hx-color-text-on-primary, #ffffff);
87
+ --hx-button-bg: var(--hx-color-action-primary-bg, #429797);
88
+ /* Inline #0d1825 matches text.on-primary's resolved primitive (neutral-900);
89
+ cold-start without the semantic still paints AA-tuned dark-on-primary
90
+ rather than white-on-primary (3.43:1 fail). */
91
+ --hx-button-color: var(--hx-color-text-on-primary, #0d1825);
92
92
  --hx-button-border-color: transparent;
93
93
  }
94
94
 
95
95
  .button--secondary {
96
96
  --hx-button-bg: transparent;
97
- /* primary-500 (#429797) text on white surface = 3.43:1 — fails AA.
98
- primary-600 (#0F7078) on white = 6.06:1 — AA pass. */
99
- --hx-button-color: var(--hx-color-primary-600, #0f7078);
100
- --hx-button-border-color: var(--hx-color-primary-600, #0f7078);
97
+ /* primary-500 (#429797) text on white surface = 3.44:1 — fails AA.
98
+ primary-600 (#0F7078) on white = 5.82:1 — AA pass. */
99
+ --hx-button-color: var(--hx-color-action-secondary-fg, #0f7078);
100
+ --hx-button-border-color: var(--hx-color-action-secondary-border, #0f7078);
101
101
  }
102
102
 
103
103
  .button--secondary:hover {
104
- --hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-surface-raised, #f5f8f3));
104
+ --hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-action-secondary-bg-hover, #ebf8f8));
105
105
  }
106
106
 
107
107
  .button--tertiary {
@@ -115,36 +115,52 @@
115
115
  }
116
116
 
117
117
  .button--danger {
118
- --hx-button-bg: var(--hx-color-error-500, #e5493e);
119
- --hx-button-color: var(--hx-color-text-on-error, #ffffff);
118
+ --hx-button-bg: var(--hx-color-action-danger-bg, #e5493e);
119
+ /* Inline #0d1825 matches text.on-error's resolved primitive (neutral-900);
120
+ cold-start without the semantic still paints AA-tuned dark-on-error
121
+ rather than white-on-error (3.92:1 fail). */
122
+ --hx-button-color: var(--hx-color-text-on-error, #0d1825);
120
123
  --hx-button-border-color: transparent;
121
124
  }
122
125
 
123
126
  /* on-error tokens are tuned for error-500 (neutral-900 on #E5493E ≈ 4.59:1).
124
- error-600 (#C92A2A) drops that to 2.25:1 — AA fail. Hold fg at neutral-0
125
- directly so darker hover fills stay legible. Mirrors hx-toast precedent
126
- (commit 300e21ab0). */
127
+ error-600 (#C92A2A) drops that to 3.28:1 — AA fail. text.on-error-strong
128
+ resolves to neutral-0 across modes (no dark flip) so the darker hover fill
129
+ stays legible. Mirrors hx-toast precedent (commit 300e21ab0); routed
130
+ through the semantic tier in 3.2.1 token-cascade remediation. */
127
131
  .button--danger:hover {
128
- --hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-error-600, #c92a2a));
129
- --hx-button-color: var(--hx-color-neutral-0, #ffffff);
132
+ --hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-action-danger-bg-hover, #c92a2a));
133
+ --hx-button-color: var(--hx-color-text-on-error-strong, #ffffff);
134
+ }
135
+
136
+ /* Pressed state binds explicitly to action.danger.bg-active (error-700,
137
+ #A21312) + text.on-error-strong (neutral-0) = 7.96:1 AA. Base
138
+ .button:active filter:brightness(0.8) would compound on top of bg-hover
139
+ (#C92A2A) and produce ~3.3:1 sub-AA on the bound colors. Override the
140
+ filter to none. HC override on action.danger.bg-active flips to HC
141
+ error-500 so the on-error-strong (HC = #000) pair is AA in HC too. */
142
+ .button--danger:active {
143
+ --hx-button-bg: var(--hx-button-active-bg, var(--hx-color-action-danger-bg-active, #a21312));
144
+ --hx-button-color: var(--hx-color-text-on-error-strong, #ffffff);
145
+ filter: none;
130
146
  }
131
147
 
132
148
  .button--ghost {
133
149
  --hx-button-bg: transparent;
134
- /* primary-500 (#429797) text on white surface = 3.43:1 — fails AA.
135
- primary-600 (#0F7078) on white = 6.06:1 — AA pass. */
136
- --hx-button-color: var(--hx-color-primary-600, #0f7078);
150
+ /* primary-500 (#429797) text on white surface = 3.44:1 — fails AA.
151
+ primary-600 (#0F7078) on white = 5.82:1 — AA pass. */
152
+ --hx-button-color: var(--hx-color-action-ghost-fg, #0f7078);
137
153
  --hx-button-border-color: transparent;
138
154
  }
139
155
 
140
156
  .button--ghost:hover {
141
- --hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-surface-raised, #f5f8f3));
157
+ --hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-action-ghost-bg-hover, #ebf8f8));
142
158
  }
143
159
 
144
160
  .button--outline {
145
161
  --hx-button-bg: transparent;
146
162
  --hx-button-color: var(--hx-color-text-primary, #0d1825);
147
- --hx-button-border-color: var(--hx-color-border-strong, #8e9c98);
163
+ --hx-button-border-color: var(--hx-color-border-strong, #66787b);
148
164
  }
149
165
 
150
166
  .button--outline:hover {
@@ -152,12 +168,24 @@
152
168
  }
153
169
 
154
170
  /* on-primary token resolves to neutral-900 (#0D1825) — tuned for primary-500.
155
- primary-600 (#0F7078) drops the pair to 3.07:1 — AA fail. Pin fg at
156
- neutral-0 for the darker hover fill. Mirrors hx-toast precedent
157
- (commit 300e21ab0). */
171
+ primary-600 (#0F7078) drops the pair to 3.07:1 — AA fail. text.on-primary-strong
172
+ resolves to neutral-0 across modes (no dark flip) for the darker hover fill.
173
+ Mirrors hx-toast precedent (commit 300e21ab0); routed through the semantic
174
+ tier in 3.2.1 token-cascade remediation. */
158
175
  .button--primary:hover {
159
- --hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-primary-600, #0f7078));
160
- --hx-button-color: var(--hx-color-neutral-0, #ffffff);
176
+ --hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-action-primary-bg-hover, #0f7078));
177
+ --hx-button-color: var(--hx-color-text-on-primary-strong, #ffffff);
178
+ }
179
+
180
+ /* Pressed state binds explicitly to action.primary.bg-active (primary-700,
181
+ #0F6363) + text.on-primary-strong (neutral-0) = 7.03:1 AA. The base
182
+ .button:active filter:brightness(0.8) would compound on top of bg-hover
183
+ (#0F7078) and produce ~3.7:1 sub-AA on the bound colors. Override the
184
+ filter to none so the action.*.bg-active token is what actually paints. */
185
+ .button--primary:active {
186
+ --hx-button-bg: var(--hx-button-active-bg, var(--hx-color-action-primary-bg-active, #0f6363));
187
+ --hx-button-color: var(--hx-color-text-on-primary-strong, #ffffff);
188
+ filter: none;
161
189
  }
162
190
 
163
191
  /* ─── Disabled ─── */
@@ -201,9 +229,20 @@
201
229
 
202
230
  /* ─── Inverted Mode ─── */
203
231
 
232
+ /* Inline-fallback contract for the on-dark-* tokens in this section:
233
+ the literal rgba(255, 255, 255, 0.X) arms are a LIGHT-MODE-only last
234
+ resort (cold-start, CSS-not-loaded). At runtime, hx-theme injects
235
+ the dark.* override (overlay-black-* for the strong border and the
236
+ surface.on-dark-overlay-* fills) so dark-mode inverted buttons stay
237
+ visible on the now-light surface.inverse (#EBEEE9). The inline white
238
+ overlays would render invisible (≈1.1:1) on a light surface, but
239
+ they never paint when the theme is mounted. If a future change
240
+ moves these into a context where hx-theme is not guaranteed,
241
+ replace with mode-aware tokens. */
242
+
204
243
  /* Override text color and filter-based hover/active for all variants */
205
244
  :host([inverted]) .button {
206
- color: var(--hx-button-inverted-color, var(--hx-color-neutral-0, #ffffff));
245
+ color: var(--hx-button-inverted-color, var(--hx-color-text-inverse, #ffffff));
207
246
  filter: none;
208
247
  }
209
248
 
@@ -216,37 +255,115 @@
216
255
  }
217
256
 
218
257
  :host([inverted]) .button:focus-visible {
258
+ /* WCAG 1.4.11: focus indicator needs ≥3:1 against adjacent colors.
259
+ border-on-dark-strong (overlay-white-70) ≈ 5:1 on neutral-900 — passes.
260
+ The lower-alpha siblings used to live in border.* but were sub-3:1
261
+ against any plausible surface and could not honour a border contract;
262
+ they're now surface.on-dark-overlay-{default,subtle} (translucent
263
+ fills, not borders) and used elsewhere in this file. See
264
+ tokens.json color.surface.on-dark-overlay-* for canonical ratios. */
219
265
  outline-color: var(
220
266
  --hx-button-inverted-focus-ring-color,
221
- var(--hx-overlay-white-50, rgba(255, 255, 255, 0.5))
267
+ var(--hx-color-border-on-dark-strong, rgba(255, 255, 255, 0.7))
222
268
  );
223
269
  }
224
270
 
225
- /* Primary inverted — slight transparent white overlay on hover */
226
- :host([inverted]) .button--primary:hover {
227
- --hx-button-bg: var(--hx-color-primary-400, #6ab1b1);
271
+ /* Primary inverted — resting bg routes through action.primary.bg-inverted-rest
272
+ so dark mode can flip the fill to primary-600. surface.inverse becomes light
273
+ (#EBEEE9) in dark mode; primary-500 on #EBEEE9 = 2.94:1 (sub-3:1 UI floor
274
+ fail for the inverted-button boundary). primary-600 on #EBEEE9 = 4.97:1
275
+ (AA pass). Light mode tracks action.primary.bg-inverted-rest's base value
276
+ (primary-500, 5.20:1 on dark surface.inverse).
277
+
278
+ Override path note (codex round-11): this binds --hx-button-bg directly,
279
+ matching the cascade convention every other .button--{variant} rule uses
280
+ (light primary at line 89, danger at 120, secondary, tertiary, ghost). The
281
+ consumer override path for inverted-primary rest is
282
+ --hx-color-action-primary-bg-inverted-rest, NOT --hx-button-bg — the same
283
+ pattern as light primary (consumers override --hx-color-action-primary-bg).
284
+ Pinned by dark-mode-resolution.test.ts:185-197 across both modes. */
285
+ :host([inverted]) .button--primary {
286
+ --hx-button-bg: var(--hx-color-action-primary-bg-inverted-rest, #429797);
287
+ }
288
+
289
+ /* Primary inverted — hover/pressed lift to action.primary.bg-inverted-hover
290
+ (primary-400, light teal). The base :host([inverted]) .button rule binds
291
+ color to text.inverse, which flips by mode (neutral-0 in light, neutral-900
292
+ in dark). On a permanent light-teal fill, white text drops to 2.4:1 in
293
+ light mode (AA fail). Pin color to text.on-primary (neutral-900, no
294
+ dark-mode flip) for both hover and active so the foreground is dark in
295
+ both modes — neutral-900 on primary-400 = 7.27:1 (AA pass).
296
+ Pressed === hover visually in inverted mode is acceptable UX (the
297
+ transient absence of pointer over the button signals release).
298
+ The fallback chain wraps --hx-button-active-bg (highest precedence) and
299
+ --hx-button-hover-bg so consumer overrides on either prop apply under
300
+ :host([inverted]) — the two share a paint here, so either knob is
301
+ honored, with active-bg winning when both are set. */
302
+ :host([inverted]) .button--primary:hover,
303
+ :host([inverted]) .button--primary:active {
304
+ --hx-button-bg: var(
305
+ --hx-button-active-bg,
306
+ var(--hx-button-hover-bg, var(--hx-color-action-primary-bg-inverted-hover, #6ab1b1))
307
+ );
308
+ color: var(
309
+ --hx-button-inverted-primary-interactive-color,
310
+ var(--hx-color-text-on-primary, #0d1825)
311
+ );
228
312
  }
229
313
 
230
- /* Secondary inverted — white border and text */
314
+ /* Danger inverted — sister to primary. Hover/pressed lift to
315
+ action.danger.bg-inverted-hover (error-400, #FC7264). Same foreground
316
+ contract: text.inverse fails in light mode (white on light red ≈ 2.6:1);
317
+ pin to text.on-error (neutral-900, no dark-mode flip) for 6.58:1 in both
318
+ modes. Same active-bg → hover-bg → semantic fallback chain as primary. */
319
+ :host([inverted]) .button--danger:hover,
320
+ :host([inverted]) .button--danger:active {
321
+ --hx-button-bg: var(
322
+ --hx-button-active-bg,
323
+ var(--hx-button-hover-bg, var(--hx-color-action-danger-bg-inverted-hover, #fc7264))
324
+ );
325
+ color: var(
326
+ --hx-button-inverted-danger-interactive-color,
327
+ var(--hx-color-text-on-error, #0d1825)
328
+ );
329
+ }
330
+
331
+ /* Secondary inverted — white border and translucent hover fill */
231
332
  :host([inverted]) .button--secondary {
232
- --hx-button-border-color: var(--hx-overlay-white-70, rgba(255, 255, 255, 0.7));
333
+ --hx-button-border-color: var(--hx-color-border-on-dark-strong, rgba(255, 255, 255, 0.7));
233
334
  }
234
335
 
336
+ /* Inverted overlay fills read both names so consumer overrides reach paint
337
+ regardless of which token they target: the deprecated --hx-color-border-on-dark-*
338
+ names (3.2.0/3.2.1 public API, scheduled for removal in 4.0.0) and the canonical
339
+ --hx-color-surface-on-dark-overlay-* names (round-8 rename). Deprecated name
340
+ wins when set; otherwise resolves through the canonical alias chain. */
235
341
  :host([inverted]) .button--secondary:hover {
236
- --hx-button-bg: var(--hx-overlay-white-15, rgba(255, 255, 255, 0.15));
342
+ --hx-button-bg: var(
343
+ --hx-color-border-on-dark-default,
344
+ var(--hx-color-surface-on-dark-overlay-default, rgba(255, 255, 255, 0.3))
345
+ );
237
346
  }
238
347
 
239
- /* Tertiary inverted */
348
+ /* Tertiary inverted — resting at the subtle overlay (10%) lifts to the default
349
+ overlay (30%) on hover so the runtime hover delta is visually distinct, not
350
+ collapsed onto a single token. */
240
351
  :host([inverted]) .button--tertiary {
241
- --hx-button-bg: var(--hx-overlay-white-15, rgba(255, 255, 255, 0.15));
352
+ --hx-button-bg: var(
353
+ --hx-color-border-on-dark-subtle,
354
+ var(--hx-color-surface-on-dark-overlay-subtle, rgba(255, 255, 255, 0.1))
355
+ );
242
356
  --hx-button-border-color: transparent;
243
357
  }
244
358
 
245
359
  :host([inverted]) .button--tertiary:hover {
246
- --hx-button-bg: var(--hx-overlay-white-25, rgba(255, 255, 255, 0.25));
360
+ --hx-button-bg: var(
361
+ --hx-color-border-on-dark-default,
362
+ var(--hx-color-surface-on-dark-overlay-default, rgba(255, 255, 255, 0.3))
363
+ );
247
364
  }
248
365
 
249
- /* Ghost inverted — transparent base, white hover bg */
366
+ /* Ghost inverted — transparent base, translucent hover bg */
250
367
  :host([inverted]) .button--ghost {
251
368
  --hx-button-bg: transparent;
252
369
  --hx-button-border-color: transparent;
@@ -255,17 +372,23 @@
255
372
  :host([inverted]) .button--ghost:hover {
256
373
  --hx-button-bg: var(
257
374
  --hx-button-inverted-ghost-hover-bg,
258
- var(--hx-overlay-white-20, rgba(255, 255, 255, 0.2))
375
+ var(
376
+ --hx-color-border-on-dark-default,
377
+ var(--hx-color-surface-on-dark-overlay-default, rgba(255, 255, 255, 0.3))
378
+ )
259
379
  );
260
380
  }
261
381
 
262
382
  /* Outline inverted — white border */
263
383
  :host([inverted]) .button--outline {
264
- --hx-button-border-color: var(--hx-overlay-white-70, rgba(255, 255, 255, 0.7));
384
+ --hx-button-border-color: var(--hx-color-border-on-dark-strong, rgba(255, 255, 255, 0.7));
265
385
  }
266
386
 
267
387
  :host([inverted]) .button--outline:hover {
268
- --hx-button-bg: var(--hx-overlay-white-15, rgba(255, 255, 255, 0.15));
388
+ --hx-button-bg: var(
389
+ --hx-color-border-on-dark-default,
390
+ var(--hx-color-surface-on-dark-overlay-default, rgba(255, 255, 255, 0.3))
391
+ );
269
392
  }
270
393
 
271
394
  /* ─── Prefix / Suffix / Label ─── */
@@ -293,6 +416,16 @@
293
416
  border: 2px solid ButtonText;
294
417
  }
295
418
 
419
+ .button:hover {
420
+ /* Hover affordance must survive in HC. Highlight/HighlightText is the
421
+ OS-level "selected" pair, mirroring the forcedColorsInteractive mixin's
422
+ hover contract — kept inline since this component owns its bespoke HC
423
+ block (XOR rule). */
424
+ background-color: Highlight;
425
+ color: HighlightText;
426
+ border-color: Highlight;
427
+ }
428
+
296
429
  .button:focus-visible {
297
430
  outline: 3px solid Highlight;
298
431
  outline-offset: 2px;
@@ -84,10 +84,7 @@
84
84
 
85
85
  .card--interactive:focus-visible {
86
86
  outline: var(--hx-focus-ring-width, 2px) solid
87
- var(
88
- --hx-card-focus-ring-color,
89
- var(--hx-focus-ring-color, var(--hx-color-primary-500, #429797))
90
- );
87
+ var(--hx-card-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
91
88
  outline-offset: var(--hx-focus-ring-offset, 2px);
92
89
  }
93
90
 
@@ -62,7 +62,7 @@
62
62
 
63
63
  .nav-btn:focus-visible {
64
64
  outline: var(--hx-focus-ring-width, 2px) solid
65
- var(--hx-carousel-focus-ring-color, var(--hx-focus-ring-color, var(--hx-color-primary-500)));
65
+ var(--hx-carousel-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
66
66
  outline-offset: var(--hx-focus-ring-offset, 2px);
67
67
  }
68
68
 
@@ -104,7 +104,7 @@
104
104
 
105
105
  .play-pause-btn:focus-visible {
106
106
  outline: var(--hx-focus-ring-width, 2px) solid
107
- var(--hx-carousel-focus-ring-color, var(--hx-focus-ring-color, var(--hx-color-primary-500)));
107
+ var(--hx-carousel-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
108
108
  outline-offset: var(--hx-focus-ring-offset, 2px);
109
109
  }
110
110
 
@@ -176,7 +176,7 @@
176
176
 
177
177
  .pagination-item:focus-visible {
178
178
  outline: var(--hx-focus-ring-width, 2px) solid
179
- var(--hx-carousel-focus-ring-color, var(--hx-focus-ring-color, var(--hx-color-primary-500)));
179
+ var(--hx-carousel-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
180
180
  outline-offset: var(--hx-focus-ring-offset, 2px);
181
181
  border-radius: var(--hx-border-radius-full, 9999px);
182
182
  }
@@ -58,7 +58,7 @@
58
58
  width: var(--hx-checkbox-size, var(--hx-size-5, 1.25rem));
59
59
  height: var(--hx-checkbox-size, var(--hx-size-5, 1.25rem));
60
60
  border: var(--hx-border-width-medium, 2px) solid
61
- var(--hx-checkbox-border-color, var(--hx-color-border-strong, #8e9c98));
61
+ var(--hx-checkbox-border-color, var(--hx-color-border-strong, #66787b));
62
62
  border-radius: var(--hx-checkbox-border-radius, var(--hx-border-radius-sm, 0.25rem));
63
63
  background-color: var(--hx-checkbox-bg, var(--hx-color-surface-default, #ffffff));
64
64
  transition:
@@ -72,10 +72,7 @@
72
72
 
73
73
  .checkbox__input:focus-visible ~ .checkbox__box {
74
74
  outline: var(--hx-checkbox-focus-ring-width, var(--hx-focus-ring-width, 2px)) solid
75
- var(
76
- --hx-checkbox-focus-ring-color,
77
- var(--hx-focus-ring-color, var(--hx-color-primary-400, #6ab1b1))
78
- );
75
+ var(--hx-checkbox-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
79
76
  outline-offset: var(--hx-checkbox-focus-ring-offset, var(--hx-focus-ring-offset, 2px));
80
77
  }
81
78
 
@@ -184,8 +184,7 @@
184
184
  }
185
185
 
186
186
  .clinical-status__dismiss-button:focus-visible {
187
- outline: var(--hx-focus-ring-width, 2px) solid
188
- var(--hx-focus-ring-color, var(--hx-color-focus, #429797));
187
+ outline: var(--hx-focus-ring-width, 2px) solid var(--hx-focus-ring-color, #0f7078);
189
188
  outline-offset: var(--hx-focus-ring-offset, 2px);
190
189
  opacity: 1;
191
190
  }
@@ -230,8 +229,7 @@
230
229
  }
231
230
 
232
231
  .clinical-status__acknowledge-button:focus-visible {
233
- outline: var(--hx-focus-ring-width, 2px) solid
234
- var(--hx-focus-ring-color, var(--hx-color-focus, #429797));
232
+ outline: var(--hx-focus-ring-width, 2px) solid var(--hx-focus-ring-color, #0f7078);
235
233
  outline-offset: var(--hx-focus-ring-offset, 2px);
236
234
  }
237
235
 
@@ -78,7 +78,8 @@
78
78
  min-width: var(--hx-touch-target-min, 2.75rem);
79
79
  min-height: var(--hx-touch-target-min, 2.75rem);
80
80
  padding: var(--hx-space-1, 0.25rem) var(--hx-space-2, 0.5rem);
81
- border: var(--hx-border-width-thin, 1px) solid var(--hx-color-border-strong, #8e9c98);
81
+ border: var(--hx-border-width-thin, 1px) solid
82
+ var(--hx-color-border-on-dark-strong, rgba(255, 255, 255, 0.7));
82
83
  border-radius: var(--hx-border-radius-sm, 0.25rem);
83
84
  /* Copy button sits on the always-dark block snippet surface; uses inverse family for contrast on the terminal background. */
84
85
  background-color: var(--hx-color-surface-inverse, #0d1825);
@@ -103,8 +104,14 @@
103
104
  }
104
105
 
105
106
  .code-snippet__copy-button:focus-visible {
106
- outline: var(--hx-focus-ring-width, 2px) solid
107
- var(--hx-focus-ring-color, var(--hx-color-primary-400, #6ab1b1));
107
+ /* Always-dark terminal surface — uses primary-400 (#6AB1B1, 7.27:1 on #0d1825)
108
+ instead of the light-mode --hx-focus-ring-color (primary-600, 3.07:1 — razor
109
+ above the 3:1 UI floor with no headroom). Deliberate primitive-tier consumption:
110
+ there is no semantic focus-ring-on-dark alias today — the dark.color.focus-ring
111
+ override at tokens.json only fires under theme=dark, but this surface is dark in
112
+ every theme. Tracked for promotion to a semantic alias in a future token-cascade
113
+ follow-up. */
114
+ outline: var(--hx-focus-ring-width, 2px) solid var(--hx-color-primary-400, #6ab1b1);
108
115
  outline-offset: var(--hx-focus-ring-offset, 2px);
109
116
  }
110
117
 
@@ -123,7 +130,8 @@
123
130
  min-height: var(--hx-touch-target-min, 2.75rem);
124
131
  padding: var(--hx-space-2, 0.5rem) var(--hx-space-4, 1rem);
125
132
  border: none;
126
- border-top: var(--hx-border-width-thin, 1px) solid var(--hx-color-border-strong, #8e9c98);
133
+ border-top: var(--hx-border-width-thin, 1px) solid
134
+ var(--hx-color-border-on-dark-strong, rgba(255, 255, 255, 0.7));
127
135
  /* Expand button is attached to the always-dark block snippet — inverse family maintains the terminal aesthetic. */
128
136
  background-color: var(--hx-color-surface-inverse, #0d1825);
129
137
  color: var(--hx-color-text-inverse, #ffffff);
@@ -144,8 +152,14 @@
144
152
  }
145
153
 
146
154
  .code-snippet__expand-button:focus-visible {
147
- outline: var(--hx-focus-ring-width, 2px) solid
148
- var(--hx-focus-ring-color, var(--hx-color-primary-400, #6ab1b1));
155
+ /* Always-dark terminal surface — uses primary-400 (#6AB1B1, 7.27:1 on #0d1825)
156
+ instead of the light-mode --hx-focus-ring-color (primary-600, 3.07:1 — razor
157
+ above the 3:1 UI floor with no headroom). Deliberate primitive-tier consumption:
158
+ there is no semantic focus-ring-on-dark alias today — the dark.color.focus-ring
159
+ override at tokens.json only fires under theme=dark, but this surface is dark in
160
+ every theme. Tracked for promotion to a semantic alias in a future token-cascade
161
+ follow-up. */
162
+ outline: var(--hx-focus-ring-width, 2px) solid var(--hx-color-primary-400, #6ab1b1);
149
163
  outline-offset: var(--hx-focus-ring-offset, 2px);
150
164
  }
151
165
 
@@ -28,10 +28,7 @@
28
28
  }
29
29
  :is(.trigger, .gradient-grid, .slider-track, .swatch-btn, .format-btn):focus-visible {
30
30
  outline: var(--hx-focus-ring-width, 2px) solid
31
- var(
32
- --hx-color-picker-focus-ring-color,
33
- var(--hx-focus-ring-color, var(--hx-color-primary-500, #429797))
34
- );
31
+ var(--hx-color-picker-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
35
32
  outline-offset: var(--hx-focus-ring-offset, 2px);
36
33
  }
37
34
  .trigger-swatch {
@@ -206,18 +203,11 @@
206
203
  outline: none;
207
204
  }
208
205
  .color-input:focus-visible {
209
- border-color: var(
210
- --hx-color-picker-focus-ring-color,
211
- var(--hx-focus-ring-color, var(--hx-color-primary-500, #429797))
212
- );
206
+ border-color: var(--hx-color-picker-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
213
207
  box-shadow: 0 0 0 2px
214
208
  color-mix(
215
209
  in srgb,
216
- var(
217
- --hx-color-picker-focus-ring-color,
218
- var(--hx-focus-ring-color, var(--hx-color-primary-500, #429797))
219
- )
220
- 20%,
210
+ var(--hx-color-picker-focus-ring-color, var(--hx-focus-ring-color, #0f7078)) 20%,
221
211
  transparent
222
212
  );
223
213
  }
@@ -34,7 +34,7 @@
34
34
  display: flex;
35
35
  align-items: center;
36
36
  border: var(--hx-border-width-thin, 1px) solid
37
- var(--hx-combobox-border-color, var(--hx-color-border-strong, #8e9c98));
37
+ var(--hx-combobox-border-color, var(--hx-color-border-strong, #66787b));
38
38
  border-radius: var(--hx-combobox-border-radius, var(--hx-border-radius-md, 0.375rem));
39
39
  background-color: var(--hx-combobox-bg, var(--hx-color-surface-default, #ffffff));
40
40
  transition:
@@ -42,17 +42,11 @@
42
42
  box-shadow var(--hx-transition-fast, 150ms ease);
43
43
  }
44
44
  .field__input-wrapper:focus-within {
45
- border-color: var(
46
- --hx-combobox-focus-ring-color,
47
- var(--hx-focus-ring-color, var(--hx-color-primary-400, #6ab1b1))
48
- );
45
+ border-color: var(--hx-combobox-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
49
46
  box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
50
47
  color-mix(
51
48
  in srgb,
52
- var(
53
- --hx-combobox-focus-ring-color,
54
- var(--hx-focus-ring-color, var(--hx-color-primary-400, #6ab1b1))
55
- )
49
+ var(--hx-combobox-focus-ring-color, var(--hx-focus-ring-color, #0f7078))
56
50
  calc(var(--hx-focus-ring-opacity, 0.25) * 100%),
57
51
  transparent
58
52
  );
@@ -128,7 +122,7 @@
128
122
  }
129
123
  .field__clear-button:focus-visible {
130
124
  outline: var(--hx-focus-ring-width, 2px) solid
131
- var(--hx-combobox-focus-ring-color, var(--hx-focus-ring-color, var(--hx-color-primary-500)));
125
+ var(--hx-combobox-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
132
126
  outline-offset: var(--hx-focus-ring-offset, 2px);
133
127
  }
134
128
  .field__loading-indicator {
@@ -161,7 +155,7 @@
161
155
  z-index: var(--hx-z-index-dropdown, 1000);
162
156
  background-color: var(--hx-combobox-listbox-bg, var(--hx-color-surface-default, #ffffff));
163
157
  border: var(--hx-border-width-thin, 1px) solid
164
- var(--hx-combobox-border-color, var(--hx-color-border-strong, #8e9c98));
158
+ var(--hx-combobox-border-color, var(--hx-color-border-strong, #66787b));
165
159
  border-radius: var(--hx-combobox-border-radius, var(--hx-border-radius-md, 0.375rem));
166
160
  box-shadow: var(
167
161
  --hx-combobox-listbox-shadow,
@@ -202,7 +196,7 @@
202
196
  .field__option--focused {
203
197
  background-color: var(--hx-combobox-option-hover-bg, var(--hx-color-primary-50, #ebf8f8));
204
198
  outline: var(--hx-focus-ring-width, 2px) solid
205
- var(--hx-combobox-focus-ring-color, var(--hx-focus-ring-color, var(--hx-color-primary-500)));
199
+ var(--hx-combobox-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
206
200
  outline-offset: var(--hx-combobox-option-focus-ring-offset, -2px);
207
201
  }
208
202
  .field__option--focused.field__option--selected {
@@ -386,7 +380,7 @@
386
380
  }
387
381
  .field__chip-remove:focus-visible {
388
382
  outline: var(--hx-focus-ring-width, 2px) solid
389
- var(--hx-combobox-focus-ring-color, var(--hx-focus-ring-color, var(--hx-color-primary-500)));
383
+ var(--hx-combobox-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
390
384
  outline-offset: var(--hx-focus-ring-offset, 2px);
391
385
  opacity: 1;
392
386
  }
@@ -92,10 +92,7 @@
92
92
 
93
93
  .sort-btn:focus-visible {
94
94
  outline: var(--hx-focus-ring-width, 2px) solid
95
- var(
96
- --hx-data-table-focus-ring-color,
97
- var(--hx-focus-ring-color, var(--hx-color-primary-500, #429797))
98
- );
95
+ var(--hx-data-table-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
99
96
  outline-offset: var(--hx-focus-ring-offset, 2px);
100
97
  border-radius: var(--hx-border-radius-sm, 2px);
101
98
  }
@@ -197,10 +194,7 @@
197
194
  [part~='td']:focus-visible,
198
195
  [part~='th']:focus-visible {
199
196
  outline: var(--hx-focus-ring-width, 2px) solid
200
- var(
201
- --hx-data-table-focus-ring-color,
202
- var(--hx-focus-ring-color, var(--hx-color-primary-500, #429797))
203
- );
197
+ var(--hx-data-table-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
204
198
  outline-offset: var(--hx-focus-ring-offset, -2px);
205
199
  border-radius: var(--hx-border-radius-sm, 2px);
206
200
  }
@@ -56,7 +56,7 @@
56
56
  display: flex;
57
57
  align-items: stretch;
58
58
  border: var(--hx-border-width-thin, 1px) solid
59
- var(--hx-date-picker-border-color, var(--hx-color-border-strong, #8e9c98));
59
+ var(--hx-date-picker-border-color, var(--hx-color-border-strong, #66787b));
60
60
  border-radius: var(--hx-date-picker-border-radius, var(--hx-border-radius-md, 0.375rem));
61
61
  background-color: var(--hx-date-picker-bg, var(--hx-color-surface-default, #ffffff));
62
62
  transition:
@@ -66,17 +66,11 @@
66
66
  }
67
67
 
68
68
  .field__input-wrapper:focus-within {
69
- border-color: var(
70
- --hx-date-picker-focus-ring-color,
71
- var(--hx-focus-ring-color, var(--hx-color-primary-400, #6ab1b1))
72
- );
69
+ border-color: var(--hx-date-picker-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
73
70
  box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
74
71
  color-mix(
75
72
  in srgb,
76
- var(
77
- --hx-date-picker-focus-ring-color,
78
- var(--hx-focus-ring-color, var(--hx-color-primary-400, #6ab1b1))
79
- )
73
+ var(--hx-date-picker-focus-ring-color, var(--hx-focus-ring-color, #0f7078))
80
74
  calc(var(--hx-focus-ring-opacity, 0.25) * 100%),
81
75
  transparent
82
76
  );
@@ -135,7 +129,7 @@
135
129
  padding: 0 var(--hx-space-3, 0.75rem);
136
130
  border: none;
137
131
  border-left: var(--hx-border-width-thin, 1px) solid
138
- var(--hx-date-picker-border-color, var(--hx-color-border-strong, #8e9c98));
132
+ var(--hx-date-picker-border-color, var(--hx-color-border-strong, #66787b));
139
133
  background: transparent;
140
134
  color: var(--hx-date-picker-trigger-color, var(--hx-color-text-muted, #4a5362));
141
135
  cursor: pointer;
@@ -145,17 +139,10 @@
145
139
  }
146
140
 
147
141
  .field__trigger:focus-visible {
148
- color: var(
149
- --hx-date-picker-focus-ring-color,
150
- var(--hx-focus-ring-color, var(--hx-color-primary-400, #6ab1b1))
151
- );
142
+ color: var(--hx-date-picker-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
152
143
  background-color: color-mix(
153
144
  in srgb,
154
- var(
155
- --hx-date-picker-focus-ring-color,
156
- var(--hx-focus-ring-color, var(--hx-color-primary-400, #6ab1b1))
157
- )
158
- 8%,
145
+ var(--hx-date-picker-focus-ring-color, var(--hx-focus-ring-color, #0f7078)) 8%,
159
146
  transparent
160
147
  );
161
148
  }
@@ -252,10 +239,7 @@
252
239
 
253
240
  :is(.calendar__nav-btn, .calendar__day):focus-visible {
254
241
  box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
255
- var(
256
- --hx-date-picker-focus-ring-color,
257
- var(--hx-focus-ring-color, var(--hx-color-primary-400, #6ab1b1))
258
- );
242
+ var(--hx-date-picker-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
259
243
  z-index: 1;
260
244
  }
261
245