@helixui/library 3.3.1 → 3.4.0-next.121

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 (321) hide show
  1. package/custom-elements.json +340 -71
  2. package/dist/components/hx-accordion/hx-accordion-item.d.ts +35 -0
  3. package/dist/components/hx-accordion/hx-accordion-item.d.ts.map +1 -1
  4. package/dist/components/hx-alert/hx-alert.d.ts +11 -0
  5. package/dist/components/hx-alert/hx-alert.d.ts.map +1 -1
  6. package/dist/components/hx-alert/hx-alert.styles.d.ts.map +1 -1
  7. package/dist/components/hx-alert/index.js +1 -1
  8. package/dist/components/hx-badge/hx-badge.styles.d.ts.map +1 -1
  9. package/dist/components/hx-badge/index.js +1 -1
  10. package/dist/components/hx-banner/hx-banner.d.ts +9 -1
  11. package/dist/components/hx-banner/hx-banner.d.ts.map +1 -1
  12. package/dist/components/hx-banner/index.js +1 -1
  13. package/dist/components/hx-button/hx-button.d.ts +11 -1
  14. package/dist/components/hx-button/hx-button.d.ts.map +1 -1
  15. package/dist/components/hx-button/index.js +1 -1
  16. package/dist/components/hx-button-group/hx-button-group.d.ts +13 -0
  17. package/dist/components/hx-button-group/hx-button-group.d.ts.map +1 -1
  18. package/dist/components/hx-button-group/index.js +1 -1
  19. package/dist/components/hx-checkbox/hx-checkbox.d.ts +153 -1
  20. package/dist/components/hx-checkbox/hx-checkbox.d.ts.map +1 -1
  21. package/dist/components/hx-checkbox/hx-checkbox.styles.d.ts.map +1 -1
  22. package/dist/components/hx-checkbox/index.js +1 -1
  23. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts +151 -2
  24. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts.map +1 -1
  25. package/dist/components/hx-checkbox-group/index.js +1 -1
  26. package/dist/components/hx-color-picker/hx-color-picker.d.ts +163 -1
  27. package/dist/components/hx-color-picker/hx-color-picker.d.ts.map +1 -1
  28. package/dist/components/hx-color-picker/hx-color-picker.styles.d.ts.map +1 -1
  29. package/dist/components/hx-color-picker/index.js +1 -1
  30. package/dist/components/hx-combobox/hx-combobox.d.ts +311 -2
  31. package/dist/components/hx-combobox/hx-combobox.d.ts.map +1 -1
  32. package/dist/components/hx-combobox/index.js +1 -1
  33. package/dist/components/hx-data-table/hx-data-table.d.ts.map +1 -1
  34. package/dist/components/hx-data-table/index.js +1 -1
  35. package/dist/components/hx-date-picker/hx-date-picker.d.ts +182 -56
  36. package/dist/components/hx-date-picker/hx-date-picker.d.ts.map +1 -1
  37. package/dist/components/hx-date-picker/hx-date-picker.styles.d.ts.map +1 -1
  38. package/dist/components/hx-date-picker/index.js +1 -1
  39. package/dist/components/hx-dialog/hx-dialog.d.ts +240 -0
  40. package/dist/components/hx-dialog/hx-dialog.d.ts.map +1 -1
  41. package/dist/components/hx-dialog/index.js +1 -1
  42. package/dist/components/hx-drawer/hx-drawer.d.ts +201 -0
  43. package/dist/components/hx-drawer/hx-drawer.d.ts.map +1 -1
  44. package/dist/components/hx-drawer/hx-drawer.styles.d.ts.map +1 -1
  45. package/dist/components/hx-drawer/index.js +1 -1
  46. package/dist/components/hx-dropdown/hx-dropdown.d.ts +168 -0
  47. package/dist/components/hx-dropdown/hx-dropdown.d.ts.map +1 -1
  48. package/dist/components/hx-dropdown/index.js +1 -1
  49. package/dist/components/hx-field/hx-field.d.ts +109 -0
  50. package/dist/components/hx-field/hx-field.d.ts.map +1 -1
  51. package/dist/components/hx-field/index.js +1 -1
  52. package/dist/components/hx-icon-button/hx-icon-button.d.ts +16 -3
  53. package/dist/components/hx-icon-button/hx-icon-button.d.ts.map +1 -1
  54. package/dist/components/hx-icon-button/hx-icon-button.styles.d.ts.map +1 -1
  55. package/dist/components/hx-icon-button/index.js +1 -1
  56. package/dist/components/hx-link/hx-link.d.ts +10 -1
  57. package/dist/components/hx-link/hx-link.d.ts.map +1 -1
  58. package/dist/components/hx-link/index.js +1 -1
  59. package/dist/components/hx-list/hx-list-item.d.ts +27 -1
  60. package/dist/components/hx-list/hx-list-item.d.ts.map +1 -1
  61. package/dist/components/hx-list/hx-list.d.ts +28 -0
  62. package/dist/components/hx-list/hx-list.d.ts.map +1 -1
  63. package/dist/components/hx-list/index.js +1 -1
  64. package/dist/components/hx-menu/hx-menu-divider.d.ts +10 -0
  65. package/dist/components/hx-menu/hx-menu-divider.d.ts.map +1 -1
  66. package/dist/components/hx-menu/hx-menu-item.d.ts +99 -2
  67. package/dist/components/hx-menu/hx-menu-item.d.ts.map +1 -1
  68. package/dist/components/hx-menu/hx-menu-item.styles.d.ts.map +1 -1
  69. package/dist/components/hx-menu/hx-menu.d.ts +117 -2
  70. package/dist/components/hx-menu/hx-menu.d.ts.map +1 -1
  71. package/dist/components/hx-menu/index.js +1 -1
  72. package/dist/components/hx-meter/hx-meter.d.ts +39 -0
  73. package/dist/components/hx-meter/hx-meter.d.ts.map +1 -1
  74. package/dist/components/hx-meter/hx-meter.styles.d.ts.map +1 -1
  75. package/dist/components/hx-meter/index.js +1 -1
  76. package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts +132 -1
  77. package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts.map +1 -1
  78. package/dist/components/hx-overflow-menu/index.js +1 -1
  79. package/dist/components/hx-phi-field/hx-phi-field.d.ts +0 -1
  80. package/dist/components/hx-phi-field/hx-phi-field.d.ts.map +1 -1
  81. package/dist/components/hx-popover/hx-popover.d.ts +91 -0
  82. package/dist/components/hx-popover/hx-popover.d.ts.map +1 -1
  83. package/dist/components/hx-popover/index.js +1 -1
  84. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts +33 -0
  85. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts.map +1 -1
  86. package/dist/components/hx-progress-bar/index.js +1 -1
  87. package/dist/components/hx-radio-group/hx-radio-group.d.ts +152 -1
  88. package/dist/components/hx-radio-group/hx-radio-group.d.ts.map +1 -1
  89. package/dist/components/hx-radio-group/hx-radio.d.ts +14 -0
  90. package/dist/components/hx-radio-group/hx-radio.d.ts.map +1 -1
  91. package/dist/components/hx-radio-group/index.js +1 -1
  92. package/dist/components/hx-select/hx-select.d.ts +304 -2
  93. package/dist/components/hx-select/hx-select.d.ts.map +1 -1
  94. package/dist/components/hx-select/hx-select.styles.d.ts.map +1 -1
  95. package/dist/components/hx-select/index.js +1 -1
  96. package/dist/components/hx-side-nav/hx-nav-item.styles.d.ts.map +1 -1
  97. package/dist/components/hx-side-nav/index.js +1 -1
  98. package/dist/components/hx-spinner/hx-spinner.d.ts +14 -0
  99. package/dist/components/hx-spinner/hx-spinner.d.ts.map +1 -1
  100. package/dist/components/hx-spinner/index.js +1 -1
  101. package/dist/components/hx-split-button/hx-split-button.d.ts +94 -7
  102. package/dist/components/hx-split-button/hx-split-button.d.ts.map +1 -1
  103. package/dist/components/hx-split-button/index.js +1 -1
  104. package/dist/components/hx-stat/hx-stat.d.ts +28 -0
  105. package/dist/components/hx-stat/hx-stat.d.ts.map +1 -1
  106. package/dist/components/hx-stat/index.js +1 -1
  107. package/dist/components/hx-switch/hx-switch.d.ts +78 -1
  108. package/dist/components/hx-switch/hx-switch.d.ts.map +1 -1
  109. package/dist/components/hx-switch/hx-switch.styles.d.ts.map +1 -1
  110. package/dist/components/hx-switch/index.js +1 -1
  111. package/dist/components/hx-table/hx-td.d.ts +30 -3
  112. package/dist/components/hx-table/hx-td.d.ts.map +1 -1
  113. package/dist/components/hx-table/hx-th.d.ts +39 -3
  114. package/dist/components/hx-table/hx-th.d.ts.map +1 -1
  115. package/dist/components/hx-table/hx-tr.d.ts +26 -0
  116. package/dist/components/hx-table/hx-tr.d.ts.map +1 -1
  117. package/dist/components/hx-table/index.js +1 -1
  118. package/dist/components/hx-tabs/hx-tab-panel.d.ts +34 -0
  119. package/dist/components/hx-tabs/hx-tab-panel.d.ts.map +1 -1
  120. package/dist/components/hx-tabs/hx-tab.d.ts +45 -2
  121. package/dist/components/hx-tabs/hx-tab.d.ts.map +1 -1
  122. package/dist/components/hx-tabs/hx-tab.styles.d.ts.map +1 -1
  123. package/dist/components/hx-tabs/hx-tabs.d.ts +32 -2
  124. package/dist/components/hx-tabs/hx-tabs.d.ts.map +1 -1
  125. package/dist/components/hx-tabs/index.js +1 -1
  126. package/dist/components/hx-tag/hx-tag.styles.d.ts.map +1 -1
  127. package/dist/components/hx-tag/index.js +1 -1
  128. package/dist/components/hx-theme/hx-theme.d.ts +10 -5
  129. package/dist/components/hx-theme/hx-theme.d.ts.map +1 -1
  130. package/dist/components/hx-time-picker/hx-time-picker.d.ts +210 -2
  131. package/dist/components/hx-time-picker/hx-time-picker.d.ts.map +1 -1
  132. package/dist/components/hx-time-picker/hx-time-picker.styles.d.ts.map +1 -1
  133. package/dist/components/hx-time-picker/index.js +1 -1
  134. package/dist/components/hx-toast/hx-toast-stack.d.ts +14 -0
  135. package/dist/components/hx-toast/hx-toast-stack.d.ts.map +1 -1
  136. package/dist/components/hx-toast/hx-toast.d.ts +22 -3
  137. package/dist/components/hx-toast/hx-toast.d.ts.map +1 -1
  138. package/dist/components/hx-toast/index.js +1 -1
  139. package/dist/components/hx-toast/toast-factory.d.ts.map +1 -1
  140. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts +110 -0
  141. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts.map +1 -1
  142. package/dist/components/hx-toggle-button/hx-toggle-button.styles.d.ts.map +1 -1
  143. package/dist/components/hx-toggle-button/index.js +1 -1
  144. package/dist/components/hx-tooltip/hx-tooltip.d.ts +52 -0
  145. package/dist/components/hx-tooltip/hx-tooltip.d.ts.map +1 -1
  146. package/dist/components/hx-tooltip/index.js +1 -1
  147. package/dist/components/hx-tree-view/hx-tree-item.d.ts +117 -12
  148. package/dist/components/hx-tree-view/hx-tree-item.d.ts.map +1 -1
  149. package/dist/components/hx-tree-view/hx-tree-view.d.ts +87 -7
  150. package/dist/components/hx-tree-view/hx-tree-view.d.ts.map +1 -1
  151. package/dist/components/hx-tree-view/index.js +1 -1
  152. package/dist/css/helix-all.css +221 -1
  153. package/dist/css/helix-core.css +81 -0
  154. package/dist/css/helix-feedback.css +14 -0
  155. package/dist/css/helix-forms.css +109 -1
  156. package/dist/css/helix-overlay.css +17 -0
  157. package/dist/css/hx-alert.css +9 -0
  158. package/dist/css/hx-badge.css +28 -0
  159. package/dist/css/hx-checkbox.css +18 -0
  160. package/dist/css/hx-color-picker.css +25 -0
  161. package/dist/css/hx-date-picker.css +2 -1
  162. package/dist/css/hx-drawer.css +17 -0
  163. package/dist/css/hx-icon-button.css +30 -0
  164. package/dist/css/hx-meter.css +5 -0
  165. package/dist/css/hx-select.css +19 -0
  166. package/dist/css/hx-switch.css +17 -0
  167. package/dist/css/hx-tag.css +23 -0
  168. package/dist/css/hx-time-picker.css +11 -0
  169. package/dist/css/hx-toggle-button.css +17 -0
  170. package/dist/css/index.css +1 -1
  171. package/dist/css/manifest.json +4 -1
  172. package/dist/index.js +38 -38
  173. package/dist/shared/aria-flatten-DY6v2vah.js +22 -0
  174. package/dist/shared/aria-flatten-DY6v2vah.js.map +1 -0
  175. package/dist/shared/aria-idref-CxvyzfQS.js +126 -0
  176. package/dist/shared/aria-idref-CxvyzfQS.js.map +1 -0
  177. package/dist/shared/hx-accordion-ZVzgDzTG.js.map +1 -1
  178. package/dist/shared/{hx-alert-CLn7CstP.js → hx-alert-Bto8-TIi.js} +55 -37
  179. package/dist/shared/hx-alert-Bto8-TIi.js.map +1 -0
  180. package/dist/shared/{hx-badge-CQXgOXJM.js → hx-badge-JlFtAdxS.js} +37 -9
  181. package/dist/shared/hx-badge-JlFtAdxS.js.map +1 -0
  182. package/dist/shared/{hx-banner-D3DzpfcP.js → hx-banner-fpRnciIO.js} +13 -5
  183. package/dist/shared/hx-banner-fpRnciIO.js.map +1 -0
  184. package/dist/shared/{hx-button-DPY6SPVT.js → hx-button-BOwAEcF1.js} +108 -85
  185. package/dist/shared/{hx-button-DPY6SPVT.js.map → hx-button-BOwAEcF1.js.map} +1 -1
  186. package/dist/shared/{hx-button-group-BI-QBqmO.js → hx-button-group-DcHP5MBv.js} +15 -16
  187. package/dist/shared/{hx-button-group-BI-QBqmO.js.map → hx-button-group-DcHP5MBv.js.map} +1 -1
  188. package/dist/shared/hx-checkbox-C48KYKFq.js +696 -0
  189. package/dist/shared/hx-checkbox-C48KYKFq.js.map +1 -0
  190. package/dist/shared/hx-checkbox-group-BJIAX3zU.js +496 -0
  191. package/dist/shared/hx-checkbox-group-BJIAX3zU.js.map +1 -0
  192. package/dist/shared/hx-color-picker-Dk4cBwYQ.js +1221 -0
  193. package/dist/shared/hx-color-picker-Dk4cBwYQ.js.map +1 -0
  194. package/dist/shared/hx-combobox-BTLO9qiK.js +1359 -0
  195. package/dist/shared/hx-combobox-BTLO9qiK.js.map +1 -0
  196. package/dist/shared/{hx-data-table-CLqVqdxr.js → hx-data-table-Ct3gQ6ya.js} +3 -2
  197. package/dist/shared/{hx-data-table-CLqVqdxr.js.map → hx-data-table-Ct3gQ6ya.js.map} +1 -1
  198. package/dist/shared/{hx-date-picker-2iRG1p74.js → hx-date-picker-CiR7FVnR.js} +542 -206
  199. package/dist/shared/hx-date-picker-CiR7FVnR.js.map +1 -0
  200. package/dist/shared/hx-dialog-AOZpHSuF.js +717 -0
  201. package/dist/shared/hx-dialog-AOZpHSuF.js.map +1 -0
  202. package/dist/shared/{hx-drawer-Y1Ui2IWJ.js → hx-drawer-DH6CdAN1.js} +300 -98
  203. package/dist/shared/hx-drawer-DH6CdAN1.js.map +1 -0
  204. package/dist/shared/hx-dropdown-DiLd40Lm.js +401 -0
  205. package/dist/shared/hx-dropdown-DiLd40Lm.js.map +1 -0
  206. package/dist/shared/{hx-field-B3Qo8OLS.js → hx-field-zw0U1KVi.js} +99 -38
  207. package/dist/shared/hx-field-zw0U1KVi.js.map +1 -0
  208. package/dist/shared/{hx-icon-button-CGNdQSFM.js → hx-icon-button-a6OpeQz5.js} +149 -68
  209. package/dist/shared/hx-icon-button-a6OpeQz5.js.map +1 -0
  210. package/dist/shared/{hx-link-C-O6vq0Q.js → hx-link-CMnZRUtQ.js} +55 -43
  211. package/dist/shared/hx-link-CMnZRUtQ.js.map +1 -0
  212. package/dist/shared/{hx-list-MyEhh8c7.js → hx-list-De66EtAP.js} +163 -107
  213. package/dist/shared/hx-list-De66EtAP.js.map +1 -0
  214. package/dist/shared/hx-menu-divider-BjiRIWKq.js +797 -0
  215. package/dist/shared/hx-menu-divider-BjiRIWKq.js.map +1 -0
  216. package/dist/shared/{hx-meter-BPscsw5t.js → hx-meter-BJdh6nrF.js} +105 -64
  217. package/dist/shared/hx-meter-BJdh6nrF.js.map +1 -0
  218. package/dist/shared/{hx-nav-item-xqRPOCWX.js → hx-nav-item-CODtUlew.js} +13 -9
  219. package/dist/shared/{hx-nav-item-xqRPOCWX.js.map → hx-nav-item-CODtUlew.js.map} +1 -1
  220. package/dist/shared/hx-overflow-menu-BQ4fiMYu.js +492 -0
  221. package/dist/shared/hx-overflow-menu-BQ4fiMYu.js.map +1 -0
  222. package/dist/shared/hx-phi-field-C19oxlrr.js.map +1 -1
  223. package/dist/shared/{hx-popover-B-FP3-wW.js → hx-popover-B9W8-tC0.js} +123 -66
  224. package/dist/shared/hx-popover-B9W8-tC0.js.map +1 -0
  225. package/dist/shared/hx-progress-bar-C8nDMdYa.js +290 -0
  226. package/dist/shared/hx-progress-bar-C8nDMdYa.js.map +1 -0
  227. package/dist/shared/hx-radio-Z1lV1zTO.js +822 -0
  228. package/dist/shared/hx-radio-Z1lV1zTO.js.map +1 -0
  229. package/dist/shared/hx-select-D18CnJ0e.js +1089 -0
  230. package/dist/shared/hx-select-D18CnJ0e.js.map +1 -0
  231. package/dist/shared/{hx-spinner-DL5AYr16.js → hx-spinner-BB0h2hKZ.js} +62 -34
  232. package/dist/shared/hx-spinner-BB0h2hKZ.js.map +1 -0
  233. package/dist/shared/{hx-split-button-Djnc5Aeg.js → hx-split-button-BoABoEm5.js} +153 -82
  234. package/dist/shared/hx-split-button-BoABoEm5.js.map +1 -0
  235. package/dist/shared/{hx-stat-WOcNV1Ry.js → hx-stat-Dtf9lz-O.js} +77 -47
  236. package/dist/shared/hx-stat-Dtf9lz-O.js.map +1 -0
  237. package/dist/shared/hx-switch-B6kr-EwE.js +540 -0
  238. package/dist/shared/hx-switch-B6kr-EwE.js.map +1 -0
  239. package/dist/shared/{hx-tab-panel-DspCrKqo.js → hx-tab-panel-BQtBXKLD.js} +255 -131
  240. package/dist/shared/hx-tab-panel-BQtBXKLD.js.map +1 -0
  241. package/dist/shared/{hx-tag-CNSmdyaK.js → hx-tag-C5aCUpVi.js} +63 -40
  242. package/dist/shared/hx-tag-C5aCUpVi.js.map +1 -0
  243. package/dist/shared/{hx-td-DnnEMIuA.js → hx-td-BGkFOJEK.js} +267 -123
  244. package/dist/shared/hx-td-BGkFOJEK.js.map +1 -0
  245. package/dist/shared/hx-theme-BsefFWTO.js.map +1 -1
  246. package/dist/shared/hx-time-picker-iwCD7rzW.js +1038 -0
  247. package/dist/shared/hx-time-picker-iwCD7rzW.js.map +1 -0
  248. package/dist/shared/{hx-toggle-button-iLiYrMbD.js → hx-toggle-button-BQ81EDkl.js} +226 -65
  249. package/dist/shared/hx-toggle-button-BQ81EDkl.js.map +1 -0
  250. package/dist/shared/{hx-tooltip-nYOv9OLu.js → hx-tooltip-DVqtKPCD.js} +68 -46
  251. package/dist/shared/hx-tooltip-DVqtKPCD.js.map +1 -0
  252. package/dist/shared/hx-tree-item-CHrUhuZL.js +925 -0
  253. package/dist/shared/hx-tree-item-CHrUhuZL.js.map +1 -0
  254. package/dist/shared/menu-roving-DmMnzJhn.js +14 -0
  255. package/dist/shared/menu-roving-DmMnzJhn.js.map +1 -0
  256. package/dist/shared/menu-tree-BNM0SYYq.js +42 -0
  257. package/dist/shared/menu-tree-BNM0SYYq.js.map +1 -0
  258. package/dist/shared/{toast-factory-YSznocIV.js → toast-factory-CL2BzdSB.js} +128 -77
  259. package/dist/shared/toast-factory-CL2BzdSB.js.map +1 -0
  260. package/dist/utils/aria-flatten.d.ts +56 -0
  261. package/dist/utils/aria-flatten.d.ts.map +1 -0
  262. package/dist/utils/aria-idref.d.ts +127 -0
  263. package/dist/utils/aria-idref.d.ts.map +1 -0
  264. package/dist/utils/menu-label.d.ts +18 -0
  265. package/dist/utils/menu-label.d.ts.map +1 -0
  266. package/dist/utils/menu-roving.d.ts +28 -0
  267. package/dist/utils/menu-roving.d.ts.map +1 -0
  268. package/dist/utils/menu-tree.d.ts +41 -0
  269. package/dist/utils/menu-tree.d.ts.map +1 -0
  270. package/dist/utils/tree-walk.d.ts +53 -0
  271. package/dist/utils/tree-walk.d.ts.map +1 -0
  272. package/figma-inventory.json +132 -20
  273. package/package.json +2 -2
  274. package/dist/shared/hx-alert-CLn7CstP.js.map +0 -1
  275. package/dist/shared/hx-badge-CQXgOXJM.js.map +0 -1
  276. package/dist/shared/hx-banner-D3DzpfcP.js.map +0 -1
  277. package/dist/shared/hx-checkbox-D7xma9YH.js +0 -524
  278. package/dist/shared/hx-checkbox-D7xma9YH.js.map +0 -1
  279. package/dist/shared/hx-checkbox-group-C9n315Ju.js +0 -323
  280. package/dist/shared/hx-checkbox-group-C9n315Ju.js.map +0 -1
  281. package/dist/shared/hx-color-picker-uRc865FJ.js +0 -882
  282. package/dist/shared/hx-color-picker-uRc865FJ.js.map +0 -1
  283. package/dist/shared/hx-combobox-DDzqNKEW.js +0 -924
  284. package/dist/shared/hx-combobox-DDzqNKEW.js.map +0 -1
  285. package/dist/shared/hx-date-picker-2iRG1p74.js.map +0 -1
  286. package/dist/shared/hx-dialog-DRN_1-Y-.js +0 -514
  287. package/dist/shared/hx-dialog-DRN_1-Y-.js.map +0 -1
  288. package/dist/shared/hx-drawer-Y1Ui2IWJ.js.map +0 -1
  289. package/dist/shared/hx-dropdown-LyaRc8Rf.js +0 -263
  290. package/dist/shared/hx-dropdown-LyaRc8Rf.js.map +0 -1
  291. package/dist/shared/hx-field-B3Qo8OLS.js.map +0 -1
  292. package/dist/shared/hx-icon-button-CGNdQSFM.js.map +0 -1
  293. package/dist/shared/hx-link-C-O6vq0Q.js.map +0 -1
  294. package/dist/shared/hx-list-MyEhh8c7.js.map +0 -1
  295. package/dist/shared/hx-menu-divider-C2omnPtj.js +0 -558
  296. package/dist/shared/hx-menu-divider-C2omnPtj.js.map +0 -1
  297. package/dist/shared/hx-meter-BPscsw5t.js.map +0 -1
  298. package/dist/shared/hx-overflow-menu-DCLsdIBy.js +0 -374
  299. package/dist/shared/hx-overflow-menu-DCLsdIBy.js.map +0 -1
  300. package/dist/shared/hx-popover-B-FP3-wW.js.map +0 -1
  301. package/dist/shared/hx-progress-bar-Bn3JEPUf.js +0 -258
  302. package/dist/shared/hx-progress-bar-Bn3JEPUf.js.map +0 -1
  303. package/dist/shared/hx-radio-CJvNU2yP.js +0 -621
  304. package/dist/shared/hx-radio-CJvNU2yP.js.map +0 -1
  305. package/dist/shared/hx-select-C8fEHQhC.js +0 -807
  306. package/dist/shared/hx-select-C8fEHQhC.js.map +0 -1
  307. package/dist/shared/hx-spinner-DL5AYr16.js.map +0 -1
  308. package/dist/shared/hx-split-button-Djnc5Aeg.js.map +0 -1
  309. package/dist/shared/hx-stat-WOcNV1Ry.js.map +0 -1
  310. package/dist/shared/hx-switch-BrZFaRue.js +0 -420
  311. package/dist/shared/hx-switch-BrZFaRue.js.map +0 -1
  312. package/dist/shared/hx-tab-panel-DspCrKqo.js.map +0 -1
  313. package/dist/shared/hx-tag-CNSmdyaK.js.map +0 -1
  314. package/dist/shared/hx-td-DnnEMIuA.js.map +0 -1
  315. package/dist/shared/hx-time-picker-BoEIZwzv.js +0 -688
  316. package/dist/shared/hx-time-picker-BoEIZwzv.js.map +0 -1
  317. package/dist/shared/hx-toggle-button-iLiYrMbD.js.map +0 -1
  318. package/dist/shared/hx-tooltip-nYOv9OLu.js.map +0 -1
  319. package/dist/shared/hx-tree-item-C2CiWuDE.js +0 -703
  320. package/dist/shared/hx-tree-item-C2CiWuDE.js.map +0 -1
  321. package/dist/shared/toast-factory-YSznocIV.js.map +0 -1
@@ -258,6 +258,15 @@
258
258
  min-width: 0;
259
259
  }
260
260
 
261
+ /* (group-6 5.1) Wrapper around the default slot. Carries aria-hidden=true
262
+ so the visible message text is not double-announced alongside the
263
+ sr-only announcer. display:contents keeps the wrapper visually
264
+ transparent so children participate in the parent flex layout as if
265
+ the wrapper were not there. */
266
+ .alert__default-slot {
267
+ display: contents;
268
+ }
269
+
261
270
  /* ─── Actions ─── */
262
271
  /* Hidden by default; shown via JS slotchange detection to avoid invisible */
263
272
  /* margin-top spacing when no actions are slotted. */
@@ -721,6 +730,9 @@
721
730
  @media (forced-colors: active) {
722
731
  .badge {
723
732
  border: 1px solid CanvasText;
733
+ forced-color-adjust: none;
734
+ background-color: Canvas;
735
+ color: CanvasText;
724
736
  }
725
737
 
726
738
  .badge--pulse {
@@ -730,6 +742,31 @@
730
742
  .badge__remove-button {
731
743
  color: ButtonText;
732
744
  }
745
+
746
+ /* Per-semantic-variant forced-colors fallbacks. The visually-hidden
747
+ semantic variant label (.badge__variant-label) keeps AT users
748
+ informed; these blocks restore visual semantic distinction for
749
+ sighted users in HCM where bg/color collapse to system defaults.
750
+ Pattern: distinct border-style per variant. */
751
+ .badge--success {
752
+ border-style: solid;
753
+ border-width: 2px;
754
+ }
755
+
756
+ .badge--warning {
757
+ border-style: dashed;
758
+ border-width: 2px;
759
+ }
760
+
761
+ .badge--error {
762
+ border-style: double;
763
+ border-width: 3px;
764
+ }
765
+
766
+ .badge--info {
767
+ border-style: dotted;
768
+ border-width: 2px;
769
+ }
733
770
  }
734
771
  /* ── hx-banner ── */
735
772
  :host {
@@ -2080,6 +2117,23 @@
2080
2117
 
2081
2118
  /* ─── Focus Ring ─── */
2082
2119
 
2120
+ /*
2121
+ * Host-focus path: on the modern (IDL element-references) render branch the
2122
+ * host is the tabbable surface (tabindex=0) and the inner input is demoted
2123
+ * to tabindex=-1. Drive the focus ring from ':host(:focus-visible)' so
2124
+ * keyboard users still get a visible affordance. Codex round-11 P1.
2125
+ */
2126
+ :host(:focus-visible) .checkbox__box {
2127
+ outline: var(--hx-checkbox-focus-ring-width, var(--hx-focus-ring-width, 2px)) solid
2128
+ var(--hx-checkbox-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
2129
+ outline-offset: var(--hx-checkbox-focus-ring-offset, var(--hx-focus-ring-offset, 2px));
2130
+ }
2131
+
2132
+ /*
2133
+ * Fallback (no-IDL-ref) path: the host carries tabindex=-1 and the inner
2134
+ * input is the tab target. The native :focus-visible on the input drives
2135
+ * the same visual ring, scoped via the inner-state class.
2136
+ */
2083
2137
  .checkbox__input:focus-visible ~ .checkbox__box {
2084
2138
  outline: var(--hx-checkbox-focus-ring-width, var(--hx-focus-ring-width, 2px)) solid
2085
2139
  var(--hx-checkbox-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
@@ -2234,6 +2288,7 @@
2234
2288
  border: 2px solid ButtonText;
2235
2289
  }
2236
2290
 
2291
+ :host(:focus-visible) .checkbox__box,
2237
2292
  .checkbox__input:focus-visible ~ .checkbox__box {
2238
2293
  outline: 3px solid Highlight;
2239
2294
  outline-offset: 2px;
@@ -2900,6 +2955,31 @@
2900
2955
  pointer-events: none;
2901
2956
  opacity: var(--hx-opacity-disabled, 0.5);
2902
2957
  }
2958
+ /* Slotted label / help / error blocks for cross-shadow naming. */
2959
+ .hx-color-picker__label {
2960
+ display: block;
2961
+ margin-bottom: var(--hx-space-1, 0.25rem);
2962
+ font-weight: var(--hx-font-weight-semibold, 600);
2963
+ color: var(--hx-color-neutral-900, #1a1a1a);
2964
+ }
2965
+ .hx-color-picker__label:empty {
2966
+ display: none;
2967
+ }
2968
+ .hx-color-picker__help {
2969
+ display: block;
2970
+ margin-top: var(--hx-space-1, 0.25rem);
2971
+ font-size: var(--hx-font-size-xs, 0.75rem);
2972
+ color: var(--hx-color-neutral-600, #525252);
2973
+ }
2974
+ .hx-color-picker__error {
2975
+ display: block;
2976
+ margin-top: var(--hx-space-1, 0.25rem);
2977
+ font-size: var(--hx-font-size-xs, 0.75rem);
2978
+ color: var(--hx-color-danger-700, #c43e3e);
2979
+ }
2980
+ [hidden] {
2981
+ display: none !important;
2982
+ }
2903
2983
  .trigger {
2904
2984
  display: inline-flex;
2905
2985
  align-items: center;
@@ -4426,7 +4506,8 @@
4426
4506
  Live region (screen reader announcements)
4427
4507
  ============================================================ */
4428
4508
 
4429
- .calendar__live-region {
4509
+ .calendar__live-region,
4510
+ .field__sr-only {
4430
4511
  position: absolute;
4431
4512
  width: 1px;
4432
4513
  height: 1px;
@@ -5062,6 +5143,23 @@
5062
5143
  margin: 0;
5063
5144
  }
5064
5145
 
5146
+ /* ─── Synthesized consumer-description span ─── */
5147
+ /* Visually hidden mirror of consumer-resolved aria-describedby text used by */
5148
+ /* the host-canonical ARIA pipeline. Always present in the shadow tree so AT */
5149
+ /* can resolve the same-root id even when the description is currently empty. */
5150
+
5151
+ .drawer-sr-only {
5152
+ position: absolute;
5153
+ width: 1px;
5154
+ height: 1px;
5155
+ padding: 0;
5156
+ margin: -1px;
5157
+ overflow: hidden;
5158
+ clip: rect(0, 0, 0, 0);
5159
+ white-space: nowrap;
5160
+ border: 0;
5161
+ }
5162
+
5065
5163
  /* ─── Body ─── */
5066
5164
 
5067
5165
  .drawer-body {
@@ -5997,12 +6095,37 @@ export const helixGridItemStyles = css`
5997
6095
  multiplicative stacking (0.5 * 0.5 = 0.25). Do not add opacity here. */
5998
6096
  }
5999
6097
 
6098
+ /* ─── Loading State ─── */
6099
+
6100
+ .button--loading {
6101
+ position: relative;
6102
+ cursor: wait;
6103
+ }
6104
+
6105
+ .button__spinner {
6106
+ width: 1em;
6107
+ height: 1em;
6108
+ flex-shrink: 0;
6109
+ animation: hx-icon-button-spin var(--hx-duration-spinner, 750ms) linear infinite;
6110
+ }
6111
+
6112
+ @keyframes hx-icon-button-spin {
6113
+ to {
6114
+ transform: rotate(360deg);
6115
+ }
6116
+ }
6117
+
6000
6118
  /* ─── Reduced Motion ─── */
6001
6119
 
6002
6120
  @media (prefers-reduced-motion: reduce) {
6003
6121
  .button {
6004
6122
  transition: none;
6005
6123
  }
6124
+
6125
+ .button__spinner {
6126
+ animation: none;
6127
+ opacity: var(--hx-opacity-muted, 0.6);
6128
+ }
6006
6129
  }
6007
6130
 
6008
6131
  /* ─── High Contrast Mode (forced-colors) ─── */
@@ -6030,6 +6153,11 @@ export const helixGridItemStyles = css`
6030
6153
  :host([disabled]) {
6031
6154
  opacity: 1;
6032
6155
  }
6156
+
6157
+ .button--loading .button__spinner {
6158
+ stroke: ButtonText;
6159
+ forced-color-adjust: none;
6160
+ }
6033
6161
  }
6034
6162
  /* ── hx-image ── */
6035
6163
  :host {
@@ -6407,6 +6535,11 @@ export const helixGridItemStyles = css`
6407
6535
  /* ─── Forced Colors (Windows High Contrast) ─── */
6408
6536
 
6409
6537
  @media (forced-colors: active) {
6538
+ .meter:focus-visible {
6539
+ outline: 2px solid Highlight;
6540
+ outline-offset: var(--hx-focus-ring-offset, 2px);
6541
+ }
6542
+
6410
6543
  .meter__track {
6411
6544
  border: 1px solid CanvasText;
6412
6545
  }
@@ -8298,6 +8431,11 @@ export const helixGridItemStyles = css`
8298
8431
  /* ─── 3-tier token cascade: component → semantic → hardcoded fallback ─── */
8299
8432
  :host {
8300
8433
  display: block;
8434
+ /* Round-3 finding 1: host is the canonical combobox surface, so it owns
8435
+ keyboard focus. Suppress the UA default outline; the custom focus ring
8436
+ is painted on the inner trigger via :host(:focus-visible)
8437
+ .field__trigger so visual feedback follows the host's focus state. */
8438
+ outline: none;
8301
8439
 
8302
8440
  /* Background & foreground */
8303
8441
  --_bg: var(--hx-select-bg, var(--hx-color-surface-default, #ffffff));
@@ -8374,6 +8512,12 @@ export const helixGridItemStyles = css`
8374
8512
  }
8375
8513
 
8376
8514
  .field__trigger {
8515
+ /* Round-3 finding 1 / CodeRabbit F1: trigger is a <button type="button">
8516
+ (labelable) so native <label for> click activation works for mouse
8517
+ users. Reset native button chrome before applying field styles. */
8518
+ appearance: none;
8519
+ -webkit-appearance: none;
8520
+ margin: 0;
8377
8521
  display: flex;
8378
8522
  align-items: center;
8379
8523
  justify-content: space-between;
@@ -8384,6 +8528,7 @@ export const helixGridItemStyles = css`
8384
8528
  border-radius: var(--_border-radius);
8385
8529
  background-color: var(--_bg);
8386
8530
  color: var(--_color);
8531
+ font: inherit;
8387
8532
  font-family: inherit;
8388
8533
  font-size: var(--hx-font-size-md, 1rem);
8389
8534
  line-height: var(--hx-line-height-normal, 1.5);
@@ -8396,6 +8541,11 @@ export const helixGridItemStyles = css`
8396
8541
  outline: none;
8397
8542
  }
8398
8543
 
8544
+ /* Round-3 finding 1: host is the canonical focusable surface. Both the
8545
+ :host(:focus-visible) descendant selector AND the legacy
8546
+ .field__trigger:focus-visible (kept for forced-colors regression test
8547
+ parity) paint the focus ring on the visual trigger. */
8548
+ :host(:focus-visible) .field__trigger,
8399
8549
  .field__trigger:focus-visible {
8400
8550
  border-color: var(--_focus-ring-color);
8401
8551
  box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
@@ -8464,6 +8614,7 @@ export const helixGridItemStyles = css`
8464
8614
  border-color: var(--_error-color);
8465
8615
  }
8466
8616
 
8617
+ :host(:focus-visible) .field--error .field__trigger,
8467
8618
  .field--error .field__trigger:focus-visible {
8468
8619
  border-color: var(--_error-color);
8469
8620
  box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
@@ -8597,6 +8748,7 @@ export const helixGridItemStyles = css`
8597
8748
  border: 2px solid ButtonText;
8598
8749
  }
8599
8750
 
8751
+ :host(:focus-visible) .field__trigger,
8600
8752
  .field__trigger:focus-visible {
8601
8753
  outline: 3px solid Highlight;
8602
8754
  outline-offset: 2px;
@@ -10544,6 +10696,22 @@ export const helixStructuredListRowStyles = css`
10544
10696
  appearance: none;
10545
10697
  }
10546
10698
 
10699
+ /*
10700
+ * Host-focus path: on the modern (IDL element-references) render branch the
10701
+ * host is the tabbable surface (tabindex=0) and the inner track button is
10702
+ * demoted to tabindex=-1. Drive the focus ring from ':host(:focus-visible)'
10703
+ * so keyboard users still see a visible affordance. Codex round-11 P1.
10704
+ */
10705
+ :host(:focus-visible) .switch__track {
10706
+ outline: var(--hx-focus-ring-width, 2px) solid
10707
+ var(--hx-switch-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
10708
+ outline-offset: var(--hx-focus-ring-offset, 2px);
10709
+ }
10710
+
10711
+ /*
10712
+ * Fallback (no-IDL-ref) path: the host carries tabindex=-1 and the inner
10713
+ * track button is the tab target. Native :focus-visible drives the ring.
10714
+ */
10547
10715
  .switch__track:focus-visible {
10548
10716
  outline: var(--hx-focus-ring-width, 2px) solid
10549
10717
  var(--hx-switch-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
@@ -10681,6 +10849,7 @@ export const helixStructuredListRowStyles = css`
10681
10849
  border: 2px solid ButtonText;
10682
10850
  }
10683
10851
 
10852
+ :host(:focus-visible) .switch__track,
10684
10853
  .switch__track:focus-visible {
10685
10854
  outline: 3px solid Highlight;
10686
10855
  outline-offset: 2px;
@@ -11104,11 +11273,34 @@ export const helixTableSectionBaseStyles = css`
11104
11273
  @media (forced-colors: active) {
11105
11274
  .tag {
11106
11275
  border-color: CanvasText;
11276
+ forced-color-adjust: none;
11277
+ background-color: Canvas;
11278
+ color: CanvasText;
11107
11279
  }
11108
11280
 
11109
11281
  .tag__remove-button {
11110
11282
  color: ButtonText;
11111
11283
  }
11284
+
11285
+ /* Per-semantic-variant forced-colors fallbacks. The visually-hidden
11286
+ semantic variant label (.tag__variant-label) keeps AT users
11287
+ informed; these blocks restore visual semantic distinction for
11288
+ sighted users in HCM where bg/color collapse to system defaults.
11289
+ Pattern: distinct border-style per variant (matches hx-badge). */
11290
+ .tag--success {
11291
+ border-style: solid;
11292
+ border-width: 2px;
11293
+ }
11294
+
11295
+ .tag--warning {
11296
+ border-style: dashed;
11297
+ border-width: 2px;
11298
+ }
11299
+
11300
+ .tag--danger {
11301
+ border-style: double;
11302
+ border-width: 3px;
11303
+ }
11112
11304
  }
11113
11305
  /* ── hx-text ── */
11114
11306
  :host {
@@ -12138,6 +12330,17 @@ export const helixTableSectionBaseStyles = css`
12138
12330
  .field__error {
12139
12331
  color: var(--hx-time-picker-error-color, var(--hx-color-error-text, #c92a2a));
12140
12332
  }
12333
+ .field__sr-only {
12334
+ position: absolute;
12335
+ width: 1px;
12336
+ height: 1px;
12337
+ padding: 0;
12338
+ margin: -1px;
12339
+ overflow: hidden;
12340
+ clip: rect(0, 0, 0, 0);
12341
+ white-space: nowrap;
12342
+ border: 0;
12343
+ }
12141
12344
  @media (forced-colors: active) {
12142
12345
  .field__combobox {
12143
12346
  border-color: ButtonText;
@@ -12483,6 +12686,22 @@ export const helixToastStackStyles = css`
12483
12686
  -webkit-user-select: none;
12484
12687
  }
12485
12688
 
12689
+ /*
12690
+ * Host-focus path: on the modern (IDL element-references) render branch the
12691
+ * host is the tabbable surface (tabindex=0) and the inner <button> is
12692
+ * demoted to tabindex=-1. Drive the focus ring from ':host(:focus-visible)'
12693
+ * so keyboard users still see a visible affordance. Codex round-11 P1.
12694
+ */
12695
+ :host(:focus-visible) .button {
12696
+ outline: var(--hx-focus-ring-width, 2px) solid
12697
+ var(--hx-toggle-button-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
12698
+ outline-offset: var(--hx-focus-ring-offset, 2px);
12699
+ }
12700
+
12701
+ /*
12702
+ * Fallback (no-IDL-ref) path: the host carries tabindex=-1 and the inner
12703
+ * <button> is the tab target. Native :focus-visible drives the ring.
12704
+ */
12486
12705
  .button:focus-visible {
12487
12706
  outline: var(--hx-focus-ring-width, 2px) solid
12488
12707
  var(--hx-toggle-button-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
@@ -12681,6 +12900,7 @@ export const helixToastStackStyles = css`
12681
12900
  border: 2px solid ButtonText;
12682
12901
  }
12683
12902
 
12903
+ :host(:focus-visible) .button,
12684
12904
  .button:focus-visible {
12685
12905
  outline: 3px solid Highlight;
12686
12906
  outline-offset: 2px;
@@ -337,6 +337,9 @@
337
337
  @media (forced-colors: active) {
338
338
  .badge {
339
339
  border: 1px solid CanvasText;
340
+ forced-color-adjust: none;
341
+ background-color: Canvas;
342
+ color: CanvasText;
340
343
  }
341
344
 
342
345
  .badge--pulse {
@@ -346,6 +349,31 @@
346
349
  .badge__remove-button {
347
350
  color: ButtonText;
348
351
  }
352
+
353
+ /* Per-semantic-variant forced-colors fallbacks. The visually-hidden
354
+ semantic variant label (.badge__variant-label) keeps AT users
355
+ informed; these blocks restore visual semantic distinction for
356
+ sighted users in HCM where bg/color collapse to system defaults.
357
+ Pattern: distinct border-style per variant. */
358
+ .badge--success {
359
+ border-style: solid;
360
+ border-width: 2px;
361
+ }
362
+
363
+ .badge--warning {
364
+ border-style: dashed;
365
+ border-width: 2px;
366
+ }
367
+
368
+ .badge--error {
369
+ border-style: double;
370
+ border-width: 3px;
371
+ }
372
+
373
+ .badge--info {
374
+ border-style: dotted;
375
+ border-width: 2px;
376
+ }
349
377
  }
350
378
  /* ── hx-button ── */
351
379
  :host {
@@ -1430,12 +1458,37 @@
1430
1458
  multiplicative stacking (0.5 * 0.5 = 0.25). Do not add opacity here. */
1431
1459
  }
1432
1460
 
1461
+ /* ─── Loading State ─── */
1462
+
1463
+ .button--loading {
1464
+ position: relative;
1465
+ cursor: wait;
1466
+ }
1467
+
1468
+ .button__spinner {
1469
+ width: 1em;
1470
+ height: 1em;
1471
+ flex-shrink: 0;
1472
+ animation: hx-icon-button-spin var(--hx-duration-spinner, 750ms) linear infinite;
1473
+ }
1474
+
1475
+ @keyframes hx-icon-button-spin {
1476
+ to {
1477
+ transform: rotate(360deg);
1478
+ }
1479
+ }
1480
+
1433
1481
  /* ─── Reduced Motion ─── */
1434
1482
 
1435
1483
  @media (prefers-reduced-motion: reduce) {
1436
1484
  .button {
1437
1485
  transition: none;
1438
1486
  }
1487
+
1488
+ .button__spinner {
1489
+ animation: none;
1490
+ opacity: var(--hx-opacity-muted, 0.6);
1491
+ }
1439
1492
  }
1440
1493
 
1441
1494
  /* ─── High Contrast Mode (forced-colors) ─── */
@@ -1463,6 +1516,11 @@
1463
1516
  :host([disabled]) {
1464
1517
  opacity: 1;
1465
1518
  }
1519
+
1520
+ .button--loading .button__spinner {
1521
+ stroke: ButtonText;
1522
+ forced-color-adjust: none;
1523
+ }
1466
1524
  }
1467
1525
  /* ── hx-image ── */
1468
1526
  :host {
@@ -2007,11 +2065,34 @@
2007
2065
  @media (forced-colors: active) {
2008
2066
  .tag {
2009
2067
  border-color: CanvasText;
2068
+ forced-color-adjust: none;
2069
+ background-color: Canvas;
2070
+ color: CanvasText;
2010
2071
  }
2011
2072
 
2012
2073
  .tag__remove-button {
2013
2074
  color: ButtonText;
2014
2075
  }
2076
+
2077
+ /* Per-semantic-variant forced-colors fallbacks. The visually-hidden
2078
+ semantic variant label (.tag__variant-label) keeps AT users
2079
+ informed; these blocks restore visual semantic distinction for
2080
+ sighted users in HCM where bg/color collapse to system defaults.
2081
+ Pattern: distinct border-style per variant (matches hx-badge). */
2082
+ .tag--success {
2083
+ border-style: solid;
2084
+ border-width: 2px;
2085
+ }
2086
+
2087
+ .tag--warning {
2088
+ border-style: dashed;
2089
+ border-width: 2px;
2090
+ }
2091
+
2092
+ .tag--danger {
2093
+ border-style: double;
2094
+ border-width: 3px;
2095
+ }
2015
2096
  }
2016
2097
  /* ── hx-text ── */
2017
2098
  :host {
@@ -109,6 +109,15 @@
109
109
  min-width: 0;
110
110
  }
111
111
 
112
+ /* (group-6 5.1) Wrapper around the default slot. Carries aria-hidden=true
113
+ so the visible message text is not double-announced alongside the
114
+ sr-only announcer. display:contents keeps the wrapper visually
115
+ transparent so children participate in the parent flex layout as if
116
+ the wrapper were not there. */
117
+ .alert__default-slot {
118
+ display: contents;
119
+ }
120
+
112
121
  /* ─── Actions ─── */
113
122
  /* Hidden by default; shown via JS slotchange detection to avoid invisible */
114
123
  /* margin-top spacing when no actions are slotted. */
@@ -574,6 +583,11 @@
574
583
  /* ─── Forced Colors (Windows High Contrast) ─── */
575
584
 
576
585
  @media (forced-colors: active) {
586
+ .meter:focus-visible {
587
+ outline: 2px solid Highlight;
588
+ outline-offset: var(--hx-focus-ring-offset, 2px);
589
+ }
590
+
577
591
  .meter__track {
578
592
  border: 1px solid CanvasText;
579
593
  }