@helixui/library 3.3.1 → 3.4.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 (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 +1 -1
  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
@@ -72,6 +72,23 @@
72
72
 
73
73
  /* ─── Focus Ring ─── */
74
74
 
75
+ /*
76
+ * Host-focus path: on the modern (IDL element-references) render branch the
77
+ * host is the tabbable surface (tabindex=0) and the inner input is demoted
78
+ * to tabindex=-1. Drive the focus ring from ':host(:focus-visible)' so
79
+ * keyboard users still get a visible affordance. Codex round-11 P1.
80
+ */
81
+ :host(:focus-visible) .checkbox__box {
82
+ outline: var(--hx-checkbox-focus-ring-width, var(--hx-focus-ring-width, 2px)) solid
83
+ var(--hx-checkbox-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
84
+ outline-offset: var(--hx-checkbox-focus-ring-offset, var(--hx-focus-ring-offset, 2px));
85
+ }
86
+
87
+ /*
88
+ * Fallback (no-IDL-ref) path: the host carries tabindex=-1 and the inner
89
+ * input is the tab target. The native :focus-visible on the input drives
90
+ * the same visual ring, scoped via the inner-state class.
91
+ */
75
92
  .checkbox__input:focus-visible ~ .checkbox__box {
76
93
  outline: var(--hx-checkbox-focus-ring-width, var(--hx-focus-ring-width, 2px)) solid
77
94
  var(--hx-checkbox-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
@@ -226,6 +243,7 @@
226
243
  border: 2px solid ButtonText;
227
244
  }
228
245
 
246
+ :host(:focus-visible) .checkbox__box,
229
247
  .checkbox__input:focus-visible ~ .checkbox__box {
230
248
  outline: 3px solid Highlight;
231
249
  outline-offset: 2px;
@@ -402,6 +420,31 @@
402
420
  pointer-events: none;
403
421
  opacity: var(--hx-opacity-disabled, 0.5);
404
422
  }
423
+ /* Slotted label / help / error blocks for cross-shadow naming. */
424
+ .hx-color-picker__label {
425
+ display: block;
426
+ margin-bottom: var(--hx-space-1, 0.25rem);
427
+ font-weight: var(--hx-font-weight-semibold, 600);
428
+ color: var(--hx-color-neutral-900, #1a1a1a);
429
+ }
430
+ .hx-color-picker__label:empty {
431
+ display: none;
432
+ }
433
+ .hx-color-picker__help {
434
+ display: block;
435
+ margin-top: var(--hx-space-1, 0.25rem);
436
+ font-size: var(--hx-font-size-xs, 0.75rem);
437
+ color: var(--hx-color-neutral-600, #525252);
438
+ }
439
+ .hx-color-picker__error {
440
+ display: block;
441
+ margin-top: var(--hx-space-1, 0.25rem);
442
+ font-size: var(--hx-font-size-xs, 0.75rem);
443
+ color: var(--hx-color-danger-700, #c43e3e);
444
+ }
445
+ [hidden] {
446
+ display: none !important;
447
+ }
405
448
  .trigger {
406
449
  display: inline-flex;
407
450
  align-items: center;
@@ -1398,7 +1441,8 @@
1398
1441
  Live region (screen reader announcements)
1399
1442
  ============================================================ */
1400
1443
 
1401
- .calendar__live-region {
1444
+ .calendar__live-region,
1445
+ .field__sr-only {
1402
1446
  position: absolute;
1403
1447
  width: 1px;
1404
1448
  height: 1px;
@@ -2615,6 +2659,11 @@
2615
2659
  /* ─── 3-tier token cascade: component → semantic → hardcoded fallback ─── */
2616
2660
  :host {
2617
2661
  display: block;
2662
+ /* Round-3 finding 1: host is the canonical combobox surface, so it owns
2663
+ keyboard focus. Suppress the UA default outline; the custom focus ring
2664
+ is painted on the inner trigger via :host(:focus-visible)
2665
+ .field__trigger so visual feedback follows the host's focus state. */
2666
+ outline: none;
2618
2667
 
2619
2668
  /* Background & foreground */
2620
2669
  --_bg: var(--hx-select-bg, var(--hx-color-surface-default, #ffffff));
@@ -2691,6 +2740,12 @@
2691
2740
  }
2692
2741
 
2693
2742
  .field__trigger {
2743
+ /* Round-3 finding 1 / CodeRabbit F1: trigger is a <button type="button">
2744
+ (labelable) so native <label for> click activation works for mouse
2745
+ users. Reset native button chrome before applying field styles. */
2746
+ appearance: none;
2747
+ -webkit-appearance: none;
2748
+ margin: 0;
2694
2749
  display: flex;
2695
2750
  align-items: center;
2696
2751
  justify-content: space-between;
@@ -2701,6 +2756,7 @@
2701
2756
  border-radius: var(--_border-radius);
2702
2757
  background-color: var(--_bg);
2703
2758
  color: var(--_color);
2759
+ font: inherit;
2704
2760
  font-family: inherit;
2705
2761
  font-size: var(--hx-font-size-md, 1rem);
2706
2762
  line-height: var(--hx-line-height-normal, 1.5);
@@ -2713,6 +2769,11 @@
2713
2769
  outline: none;
2714
2770
  }
2715
2771
 
2772
+ /* Round-3 finding 1: host is the canonical focusable surface. Both the
2773
+ :host(:focus-visible) descendant selector AND the legacy
2774
+ .field__trigger:focus-visible (kept for forced-colors regression test
2775
+ parity) paint the focus ring on the visual trigger. */
2776
+ :host(:focus-visible) .field__trigger,
2716
2777
  .field__trigger:focus-visible {
2717
2778
  border-color: var(--_focus-ring-color);
2718
2779
  box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
@@ -2781,6 +2842,7 @@
2781
2842
  border-color: var(--_error-color);
2782
2843
  }
2783
2844
 
2845
+ :host(:focus-visible) .field--error .field__trigger,
2784
2846
  .field--error .field__trigger:focus-visible {
2785
2847
  border-color: var(--_error-color);
2786
2848
  box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
@@ -2914,6 +2976,7 @@
2914
2976
  border: 2px solid ButtonText;
2915
2977
  }
2916
2978
 
2979
+ :host(:focus-visible) .field__trigger,
2917
2980
  .field__trigger:focus-visible {
2918
2981
  outline: 3px solid Highlight;
2919
2982
  outline-offset: 2px;
@@ -3328,6 +3391,22 @@
3328
3391
  appearance: none;
3329
3392
  }
3330
3393
 
3394
+ /*
3395
+ * Host-focus path: on the modern (IDL element-references) render branch the
3396
+ * host is the tabbable surface (tabindex=0) and the inner track button is
3397
+ * demoted to tabindex=-1. Drive the focus ring from ':host(:focus-visible)'
3398
+ * so keyboard users still see a visible affordance. Codex round-11 P1.
3399
+ */
3400
+ :host(:focus-visible) .switch__track {
3401
+ outline: var(--hx-focus-ring-width, 2px) solid
3402
+ var(--hx-switch-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
3403
+ outline-offset: var(--hx-focus-ring-offset, 2px);
3404
+ }
3405
+
3406
+ /*
3407
+ * Fallback (no-IDL-ref) path: the host carries tabindex=-1 and the inner
3408
+ * track button is the tab target. Native :focus-visible drives the ring.
3409
+ */
3331
3410
  .switch__track:focus-visible {
3332
3411
  outline: var(--hx-focus-ring-width, 2px) solid
3333
3412
  var(--hx-switch-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
@@ -3465,6 +3544,7 @@
3465
3544
  border: 2px solid ButtonText;
3466
3545
  }
3467
3546
 
3547
+ :host(:focus-visible) .switch__track,
3468
3548
  .switch__track:focus-visible {
3469
3549
  outline: 3px solid Highlight;
3470
3550
  outline-offset: 2px;
@@ -4323,6 +4403,17 @@
4323
4403
  .field__error {
4324
4404
  color: var(--hx-time-picker-error-color, var(--hx-color-error-text, #c92a2a));
4325
4405
  }
4406
+ .field__sr-only {
4407
+ position: absolute;
4408
+ width: 1px;
4409
+ height: 1px;
4410
+ padding: 0;
4411
+ margin: -1px;
4412
+ overflow: hidden;
4413
+ clip: rect(0, 0, 0, 0);
4414
+ white-space: nowrap;
4415
+ border: 0;
4416
+ }
4326
4417
  @media (forced-colors: active) {
4327
4418
  .field__combobox {
4328
4419
  border-color: ButtonText;
@@ -4400,6 +4491,22 @@
4400
4491
  -webkit-user-select: none;
4401
4492
  }
4402
4493
 
4494
+ /*
4495
+ * Host-focus path: on the modern (IDL element-references) render branch the
4496
+ * host is the tabbable surface (tabindex=0) and the inner <button> is
4497
+ * demoted to tabindex=-1. Drive the focus ring from ':host(:focus-visible)'
4498
+ * so keyboard users still see a visible affordance. Codex round-11 P1.
4499
+ */
4500
+ :host(:focus-visible) .button {
4501
+ outline: var(--hx-focus-ring-width, 2px) solid
4502
+ var(--hx-toggle-button-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
4503
+ outline-offset: var(--hx-focus-ring-offset, 2px);
4504
+ }
4505
+
4506
+ /*
4507
+ * Fallback (no-IDL-ref) path: the host carries tabindex=-1 and the inner
4508
+ * <button> is the tab target. Native :focus-visible drives the ring.
4509
+ */
4403
4510
  .button:focus-visible {
4404
4511
  outline: var(--hx-focus-ring-width, 2px) solid
4405
4512
  var(--hx-toggle-button-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
@@ -4598,6 +4705,7 @@
4598
4705
  border: 2px solid ButtonText;
4599
4706
  }
4600
4707
 
4708
+ :host(:focus-visible) .button,
4601
4709
  .button:focus-visible {
4602
4710
  outline: 3px solid Highlight;
4603
4711
  outline-offset: 2px;
@@ -456,6 +456,23 @@
456
456
  margin: 0;
457
457
  }
458
458
 
459
+ /* ─── Synthesized consumer-description span ─── */
460
+ /* Visually hidden mirror of consumer-resolved aria-describedby text used by */
461
+ /* the host-canonical ARIA pipeline. Always present in the shadow tree so AT */
462
+ /* can resolve the same-root id even when the description is currently empty. */
463
+
464
+ .drawer-sr-only {
465
+ position: absolute;
466
+ width: 1px;
467
+ height: 1px;
468
+ padding: 0;
469
+ margin: -1px;
470
+ overflow: hidden;
471
+ clip: rect(0, 0, 0, 0);
472
+ white-space: nowrap;
473
+ border: 0;
474
+ }
475
+
459
476
  /* ─── Body ─── */
460
477
 
461
478
  .drawer-body {
@@ -107,6 +107,15 @@
107
107
  min-width: 0;
108
108
  }
109
109
 
110
+ /* (group-6 5.1) Wrapper around the default slot. Carries aria-hidden=true
111
+ so the visible message text is not double-announced alongside the
112
+ sr-only announcer. display:contents keeps the wrapper visually
113
+ transparent so children participate in the parent flex layout as if
114
+ the wrapper were not there. */
115
+ .alert__default-slot {
116
+ display: contents;
117
+ }
118
+
110
119
  /* ─── Actions ─── */
111
120
  /* Hidden by default; shown via JS slotchange detection to avoid invisible */
112
121
  /* margin-top spacing when no actions are slotted. */
@@ -201,6 +201,9 @@
201
201
  @media (forced-colors: active) {
202
202
  .badge {
203
203
  border: 1px solid CanvasText;
204
+ forced-color-adjust: none;
205
+ background-color: Canvas;
206
+ color: CanvasText;
204
207
  }
205
208
 
206
209
  .badge--pulse {
@@ -210,4 +213,29 @@
210
213
  .badge__remove-button {
211
214
  color: ButtonText;
212
215
  }
216
+
217
+ /* Per-semantic-variant forced-colors fallbacks. The visually-hidden
218
+ semantic variant label (.badge__variant-label) keeps AT users
219
+ informed; these blocks restore visual semantic distinction for
220
+ sighted users in HCM where bg/color collapse to system defaults.
221
+ Pattern: distinct border-style per variant. */
222
+ .badge--success {
223
+ border-style: solid;
224
+ border-width: 2px;
225
+ }
226
+
227
+ .badge--warning {
228
+ border-style: dashed;
229
+ border-width: 2px;
230
+ }
231
+
232
+ .badge--error {
233
+ border-style: double;
234
+ border-width: 3px;
235
+ }
236
+
237
+ .badge--info {
238
+ border-style: dotted;
239
+ border-width: 2px;
240
+ }
213
241
  }
@@ -70,6 +70,23 @@
70
70
 
71
71
  /* ─── Focus Ring ─── */
72
72
 
73
+ /*
74
+ * Host-focus path: on the modern (IDL element-references) render branch the
75
+ * host is the tabbable surface (tabindex=0) and the inner input is demoted
76
+ * to tabindex=-1. Drive the focus ring from ':host(:focus-visible)' so
77
+ * keyboard users still get a visible affordance. Codex round-11 P1.
78
+ */
79
+ :host(:focus-visible) .checkbox__box {
80
+ outline: var(--hx-checkbox-focus-ring-width, var(--hx-focus-ring-width, 2px)) solid
81
+ var(--hx-checkbox-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
82
+ outline-offset: var(--hx-checkbox-focus-ring-offset, var(--hx-focus-ring-offset, 2px));
83
+ }
84
+
85
+ /*
86
+ * Fallback (no-IDL-ref) path: the host carries tabindex=-1 and the inner
87
+ * input is the tab target. The native :focus-visible on the input drives
88
+ * the same visual ring, scoped via the inner-state class.
89
+ */
73
90
  .checkbox__input:focus-visible ~ .checkbox__box {
74
91
  outline: var(--hx-checkbox-focus-ring-width, var(--hx-focus-ring-width, 2px)) solid
75
92
  var(--hx-checkbox-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
@@ -224,6 +241,7 @@
224
241
  border: 2px solid ButtonText;
225
242
  }
226
243
 
244
+ :host(:focus-visible) .checkbox__box,
227
245
  .checkbox__input:focus-visible ~ .checkbox__box {
228
246
  outline: 3px solid Highlight;
229
247
  outline-offset: 2px;
@@ -9,6 +9,31 @@
9
9
  pointer-events: none;
10
10
  opacity: var(--hx-opacity-disabled, 0.5);
11
11
  }
12
+ /* Slotted label / help / error blocks for cross-shadow naming. */
13
+ .hx-color-picker__label {
14
+ display: block;
15
+ margin-bottom: var(--hx-space-1, 0.25rem);
16
+ font-weight: var(--hx-font-weight-semibold, 600);
17
+ color: var(--hx-color-neutral-900, #1a1a1a);
18
+ }
19
+ .hx-color-picker__label:empty {
20
+ display: none;
21
+ }
22
+ .hx-color-picker__help {
23
+ display: block;
24
+ margin-top: var(--hx-space-1, 0.25rem);
25
+ font-size: var(--hx-font-size-xs, 0.75rem);
26
+ color: var(--hx-color-neutral-600, #525252);
27
+ }
28
+ .hx-color-picker__error {
29
+ display: block;
30
+ margin-top: var(--hx-space-1, 0.25rem);
31
+ font-size: var(--hx-font-size-xs, 0.75rem);
32
+ color: var(--hx-color-danger-700, #c43e3e);
33
+ }
34
+ [hidden] {
35
+ display: none !important;
36
+ }
12
37
  .trigger {
13
38
  display: inline-flex;
14
39
  align-items: center;
@@ -335,7 +335,8 @@
335
335
  Live region (screen reader announcements)
336
336
  ============================================================ */
337
337
 
338
- .calendar__live-region {
338
+ .calendar__live-region,
339
+ .field__sr-only {
339
340
  position: absolute;
340
341
  width: 1px;
341
342
  height: 1px;
@@ -239,6 +239,23 @@
239
239
  margin: 0;
240
240
  }
241
241
 
242
+ /* ─── Synthesized consumer-description span ─── */
243
+ /* Visually hidden mirror of consumer-resolved aria-describedby text used by */
244
+ /* the host-canonical ARIA pipeline. Always present in the shadow tree so AT */
245
+ /* can resolve the same-root id even when the description is currently empty. */
246
+
247
+ .drawer-sr-only {
248
+ position: absolute;
249
+ width: 1px;
250
+ height: 1px;
251
+ padding: 0;
252
+ margin: -1px;
253
+ overflow: hidden;
254
+ clip: rect(0, 0, 0, 0);
255
+ white-space: nowrap;
256
+ border: 0;
257
+ }
258
+
242
259
  /* ─── Body ─── */
243
260
 
244
261
  .drawer-body {
@@ -151,12 +151,37 @@
151
151
  multiplicative stacking (0.5 * 0.5 = 0.25). Do not add opacity here. */
152
152
  }
153
153
 
154
+ /* ─── Loading State ─── */
155
+
156
+ .button--loading {
157
+ position: relative;
158
+ cursor: wait;
159
+ }
160
+
161
+ .button__spinner {
162
+ width: 1em;
163
+ height: 1em;
164
+ flex-shrink: 0;
165
+ animation: hx-icon-button-spin var(--hx-duration-spinner, 750ms) linear infinite;
166
+ }
167
+
168
+ @keyframes hx-icon-button-spin {
169
+ to {
170
+ transform: rotate(360deg);
171
+ }
172
+ }
173
+
154
174
  /* ─── Reduced Motion ─── */
155
175
 
156
176
  @media (prefers-reduced-motion: reduce) {
157
177
  .button {
158
178
  transition: none;
159
179
  }
180
+
181
+ .button__spinner {
182
+ animation: none;
183
+ opacity: var(--hx-opacity-muted, 0.6);
184
+ }
160
185
  }
161
186
 
162
187
  /* ─── High Contrast Mode (forced-colors) ─── */
@@ -184,4 +209,9 @@
184
209
  :host([disabled]) {
185
210
  opacity: 1;
186
211
  }
212
+
213
+ .button--loading .button__spinner {
214
+ stroke: ButtonText;
215
+ forced-color-adjust: none;
216
+ }
187
217
  }
@@ -116,6 +116,11 @@
116
116
  /* ─── Forced Colors (Windows High Contrast) ─── */
117
117
 
118
118
  @media (forced-colors: active) {
119
+ .meter:focus-visible {
120
+ outline: 2px solid Highlight;
121
+ outline-offset: var(--hx-focus-ring-offset, 2px);
122
+ }
123
+
119
124
  .meter__track {
120
125
  border: 1px solid CanvasText;
121
126
  }
@@ -2,6 +2,11 @@
2
2
  /* ─── 3-tier token cascade: component → semantic → hardcoded fallback ─── */
3
3
  :host {
4
4
  display: block;
5
+ /* Round-3 finding 1: host is the canonical combobox surface, so it owns
6
+ keyboard focus. Suppress the UA default outline; the custom focus ring
7
+ is painted on the inner trigger via :host(:focus-visible)
8
+ .field__trigger so visual feedback follows the host's focus state. */
9
+ outline: none;
5
10
 
6
11
  /* Background & foreground */
7
12
  --_bg: var(--hx-select-bg, var(--hx-color-surface-default, #ffffff));
@@ -78,6 +83,12 @@
78
83
  }
79
84
 
80
85
  .field__trigger {
86
+ /* Round-3 finding 1 / CodeRabbit F1: trigger is a <button type="button">
87
+ (labelable) so native <label for> click activation works for mouse
88
+ users. Reset native button chrome before applying field styles. */
89
+ appearance: none;
90
+ -webkit-appearance: none;
91
+ margin: 0;
81
92
  display: flex;
82
93
  align-items: center;
83
94
  justify-content: space-between;
@@ -88,6 +99,7 @@
88
99
  border-radius: var(--_border-radius);
89
100
  background-color: var(--_bg);
90
101
  color: var(--_color);
102
+ font: inherit;
91
103
  font-family: inherit;
92
104
  font-size: var(--hx-font-size-md, 1rem);
93
105
  line-height: var(--hx-line-height-normal, 1.5);
@@ -100,6 +112,11 @@
100
112
  outline: none;
101
113
  }
102
114
 
115
+ /* Round-3 finding 1: host is the canonical focusable surface. Both the
116
+ :host(:focus-visible) descendant selector AND the legacy
117
+ .field__trigger:focus-visible (kept for forced-colors regression test
118
+ parity) paint the focus ring on the visual trigger. */
119
+ :host(:focus-visible) .field__trigger,
103
120
  .field__trigger:focus-visible {
104
121
  border-color: var(--_focus-ring-color);
105
122
  box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
@@ -168,6 +185,7 @@
168
185
  border-color: var(--_error-color);
169
186
  }
170
187
 
188
+ :host(:focus-visible) .field--error .field__trigger,
171
189
  .field--error .field__trigger:focus-visible {
172
190
  border-color: var(--_error-color);
173
191
  box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
@@ -301,6 +319,7 @@
301
319
  border: 2px solid ButtonText;
302
320
  }
303
321
 
322
+ :host(:focus-visible) .field__trigger,
304
323
  .field__trigger:focus-visible {
305
324
  outline: 3px solid Highlight;
306
325
  outline-offset: 2px;
@@ -49,6 +49,22 @@
49
49
  appearance: none;
50
50
  }
51
51
 
52
+ /*
53
+ * Host-focus path: on the modern (IDL element-references) render branch the
54
+ * host is the tabbable surface (tabindex=0) and the inner track button is
55
+ * demoted to tabindex=-1. Drive the focus ring from ':host(:focus-visible)'
56
+ * so keyboard users still see a visible affordance. Codex round-11 P1.
57
+ */
58
+ :host(:focus-visible) .switch__track {
59
+ outline: var(--hx-focus-ring-width, 2px) solid
60
+ var(--hx-switch-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
61
+ outline-offset: var(--hx-focus-ring-offset, 2px);
62
+ }
63
+
64
+ /*
65
+ * Fallback (no-IDL-ref) path: the host carries tabindex=-1 and the inner
66
+ * track button is the tab target. Native :focus-visible drives the ring.
67
+ */
52
68
  .switch__track:focus-visible {
53
69
  outline: var(--hx-focus-ring-width, 2px) solid
54
70
  var(--hx-switch-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
@@ -186,6 +202,7 @@
186
202
  border: 2px solid ButtonText;
187
203
  }
188
204
 
205
+ :host(:focus-visible) .switch__track,
189
206
  .switch__track:focus-visible {
190
207
  outline: 3px solid Highlight;
191
208
  outline-offset: 2px;
@@ -150,9 +150,32 @@
150
150
  @media (forced-colors: active) {
151
151
  .tag {
152
152
  border-color: CanvasText;
153
+ forced-color-adjust: none;
154
+ background-color: Canvas;
155
+ color: CanvasText;
153
156
  }
154
157
 
155
158
  .tag__remove-button {
156
159
  color: ButtonText;
157
160
  }
161
+
162
+ /* Per-semantic-variant forced-colors fallbacks. The visually-hidden
163
+ semantic variant label (.tag__variant-label) keeps AT users
164
+ informed; these blocks restore visual semantic distinction for
165
+ sighted users in HCM where bg/color collapse to system defaults.
166
+ Pattern: distinct border-style per variant (matches hx-badge). */
167
+ .tag--success {
168
+ border-style: solid;
169
+ border-width: 2px;
170
+ }
171
+
172
+ .tag--warning {
173
+ border-style: dashed;
174
+ border-width: 2px;
175
+ }
176
+
177
+ .tag--danger {
178
+ border-style: double;
179
+ border-width: 3px;
180
+ }
158
181
  }
@@ -188,6 +188,17 @@
188
188
  .field__error {
189
189
  color: var(--hx-time-picker-error-color, var(--hx-color-error-text, #c92a2a));
190
190
  }
191
+ .field__sr-only {
192
+ position: absolute;
193
+ width: 1px;
194
+ height: 1px;
195
+ padding: 0;
196
+ margin: -1px;
197
+ overflow: hidden;
198
+ clip: rect(0, 0, 0, 0);
199
+ white-space: nowrap;
200
+ border: 0;
201
+ }
191
202
  @media (forced-colors: active) {
192
203
  .field__combobox {
193
204
  border-color: ButtonText;
@@ -34,6 +34,22 @@
34
34
  -webkit-user-select: none;
35
35
  }
36
36
 
37
+ /*
38
+ * Host-focus path: on the modern (IDL element-references) render branch the
39
+ * host is the tabbable surface (tabindex=0) and the inner <button> is
40
+ * demoted to tabindex=-1. Drive the focus ring from ':host(:focus-visible)'
41
+ * so keyboard users still see a visible affordance. Codex round-11 P1.
42
+ */
43
+ :host(:focus-visible) .button {
44
+ outline: var(--hx-focus-ring-width, 2px) solid
45
+ var(--hx-toggle-button-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
46
+ outline-offset: var(--hx-focus-ring-offset, 2px);
47
+ }
48
+
49
+ /*
50
+ * Fallback (no-IDL-ref) path: the host carries tabindex=-1 and the inner
51
+ * <button> is the tab target. Native :focus-visible drives the ring.
52
+ */
37
53
  .button:focus-visible {
38
54
  outline: var(--hx-focus-ring-width, 2px) solid
39
55
  var(--hx-toggle-button-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
@@ -232,6 +248,7 @@
232
248
  border: 2px solid ButtonText;
233
249
  }
234
250
 
251
+ :host(:focus-visible) .button,
235
252
  .button:focus-visible {
236
253
  outline: 3px solid Highlight;
237
254
  outline-offset: 2px;
@@ -1,4 +1,4 @@
1
- /* index.css — generated 2026-05-03T13:57:26.583Z */
1
+ /* index.css — generated 2026-05-06T11:06:24.524Z */
2
2
  /* Imports all per-component CSS files for Drupal asset pipeline */
3
3
 
4
4
  @import './hx-accordion.css';
@@ -1,5 +1,5 @@
1
1
  {
2
- "generated": "2026-05-03T13:57:26.582Z",
2
+ "generated": "2026-05-06T11:06:24.523Z",
3
3
  "components": [
4
4
  {
5
5
  "name": "hx-accordion",
@@ -595,6 +595,7 @@
595
595
  "--hx-border-radius-md",
596
596
  "--hx-border-radius-sm",
597
597
  "--hx-border-width-thin",
598
+ "--hx-color-danger-700",
598
599
  "--hx-color-neutral-0",
599
600
  "--hx-color-neutral-100",
600
601
  "--hx-color-neutral-200",
@@ -1178,6 +1179,7 @@
1178
1179
  "--hx-color-text-on-error",
1179
1180
  "--hx-color-text-on-primary",
1180
1181
  "--hx-color-text-strong",
1182
+ "--hx-duration-spinner",
1181
1183
  "--hx-filter-brightness-active",
1182
1184
  "--hx-focus-ring-color",
1183
1185
  "--hx-focus-ring-offset",
@@ -1192,6 +1194,7 @@
1192
1194
  "--hx-icon-button-focus-ring-color",
1193
1195
  "--hx-icon-button-size",
1194
1196
  "--hx-opacity-disabled",
1197
+ "--hx-opacity-muted",
1195
1198
  "--hx-size-10",
1196
1199
  "--hx-size-12",
1197
1200
  "--hx-size-8",