@helixui/library 3.7.0 → 3.8.0-next.145

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 (394) hide show
  1. package/README.md +41 -0
  2. package/aaa-verdicts.json +2036 -0
  3. package/custom-elements.json +1657 -71
  4. package/dist/components/hx-accordion/hx-accordion-item.d.ts.map +1 -1
  5. package/dist/components/hx-accordion/hx-accordion-item.styles.d.ts.map +1 -1
  6. package/dist/components/hx-accordion/index.js +1 -1
  7. package/dist/components/hx-action-bar/hx-action-bar.d.ts +18 -0
  8. package/dist/components/hx-action-bar/hx-action-bar.d.ts.map +1 -1
  9. package/dist/components/hx-action-bar/hx-action-bar.styles.d.ts.map +1 -1
  10. package/dist/components/hx-action-bar/index.js +1 -1
  11. package/dist/components/hx-alert/hx-alert.d.ts +0 -8
  12. package/dist/components/hx-alert/hx-alert.d.ts.map +1 -1
  13. package/dist/components/hx-alert/hx-alert.styles.d.ts.map +1 -1
  14. package/dist/components/hx-alert/index.js +1 -1
  15. package/dist/components/hx-avatar/hx-avatar.d.ts +4 -1
  16. package/dist/components/hx-avatar/hx-avatar.d.ts.map +1 -1
  17. package/dist/components/hx-avatar/hx-avatar.styles.d.ts.map +1 -1
  18. package/dist/components/hx-avatar/index.js +1 -1
  19. package/dist/components/hx-badge/hx-badge.d.ts.map +1 -1
  20. package/dist/components/hx-badge/hx-badge.styles.d.ts.map +1 -1
  21. package/dist/components/hx-badge/index.js +1 -1
  22. package/dist/components/hx-banner/hx-banner.d.ts +19 -8
  23. package/dist/components/hx-banner/hx-banner.d.ts.map +1 -1
  24. package/dist/components/hx-banner/hx-banner.styles.d.ts.map +1 -1
  25. package/dist/components/hx-banner/index.js +1 -1
  26. package/dist/components/hx-breadcrumb/hx-breadcrumb-item.d.ts.map +1 -1
  27. package/dist/components/hx-breadcrumb/hx-breadcrumb-item.styles.d.ts.map +1 -1
  28. package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts +18 -0
  29. package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts.map +1 -1
  30. package/dist/components/hx-breadcrumb/index.js +1 -1
  31. package/dist/components/hx-button/hx-button.styles.d.ts.map +1 -1
  32. package/dist/components/hx-button/index.js +1 -1
  33. package/dist/components/hx-button-group/hx-button-group.d.ts +47 -0
  34. package/dist/components/hx-button-group/hx-button-group.d.ts.map +1 -1
  35. package/dist/components/hx-button-group/index.js +1 -1
  36. package/dist/components/hx-carousel/hx-carousel.d.ts.map +1 -1
  37. package/dist/components/hx-carousel/hx-carousel.styles.d.ts.map +1 -1
  38. package/dist/components/hx-carousel/index.js +1 -1
  39. package/dist/components/hx-checkbox/hx-checkbox.d.ts.map +1 -1
  40. package/dist/components/hx-checkbox/hx-checkbox.styles.d.ts.map +1 -1
  41. package/dist/components/hx-checkbox/index.js +1 -1
  42. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts +36 -0
  43. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts.map +1 -1
  44. package/dist/components/hx-checkbox-group/hx-checkbox-group.styles.d.ts.map +1 -1
  45. package/dist/components/hx-checkbox-group/index.js +1 -1
  46. package/dist/components/hx-clinical-status/hx-clinical-status.d.ts +26 -9
  47. package/dist/components/hx-clinical-status/hx-clinical-status.d.ts.map +1 -1
  48. package/dist/components/hx-clinical-status/hx-clinical-status.styles.d.ts.map +1 -1
  49. package/dist/components/hx-clinical-status/index.js +1 -1
  50. package/dist/components/hx-color-picker/hx-color-picker.d.ts +18 -0
  51. package/dist/components/hx-color-picker/hx-color-picker.d.ts.map +1 -1
  52. package/dist/components/hx-color-picker/hx-color-picker.styles.d.ts.map +1 -1
  53. package/dist/components/hx-color-picker/index.js +1 -1
  54. package/dist/components/hx-combobox/hx-combobox.d.ts +18 -0
  55. package/dist/components/hx-combobox/hx-combobox.d.ts.map +1 -1
  56. package/dist/components/hx-combobox/hx-combobox.styles.d.ts.map +1 -1
  57. package/dist/components/hx-combobox/index.js +1 -1
  58. package/dist/components/hx-copy-button/hx-copy-button.d.ts +18 -0
  59. package/dist/components/hx-copy-button/hx-copy-button.d.ts.map +1 -1
  60. package/dist/components/hx-copy-button/hx-copy-button.styles.d.ts.map +1 -1
  61. package/dist/components/hx-copy-button/index.js +1 -1
  62. package/dist/components/hx-date-picker/hx-date-picker.d.ts +18 -0
  63. package/dist/components/hx-date-picker/hx-date-picker.d.ts.map +1 -1
  64. package/dist/components/hx-date-picker/hx-date-picker.styles.d.ts.map +1 -1
  65. package/dist/components/hx-date-picker/index.js +1 -1
  66. package/dist/components/hx-drawer/hx-drawer.d.ts +18 -0
  67. package/dist/components/hx-drawer/hx-drawer.d.ts.map +1 -1
  68. package/dist/components/hx-drawer/hx-drawer.styles.d.ts.map +1 -1
  69. package/dist/components/hx-drawer/index.js +1 -1
  70. package/dist/components/hx-dropdown/hx-dropdown.d.ts +18 -0
  71. package/dist/components/hx-dropdown/hx-dropdown.d.ts.map +1 -1
  72. package/dist/components/hx-dropdown/hx-dropdown.styles.d.ts.map +1 -1
  73. package/dist/components/hx-dropdown/index.js +1 -1
  74. package/dist/components/hx-field/hx-field.d.ts +17 -0
  75. package/dist/components/hx-field/hx-field.d.ts.map +1 -1
  76. package/dist/components/hx-field-label/hx-field-label.d.ts +17 -0
  77. package/dist/components/hx-field-label/hx-field-label.d.ts.map +1 -1
  78. package/dist/components/hx-file-upload/hx-file-upload.d.ts +46 -0
  79. package/dist/components/hx-file-upload/hx-file-upload.d.ts.map +1 -1
  80. package/dist/components/hx-file-upload/hx-file-upload.styles.d.ts.map +1 -1
  81. package/dist/components/hx-file-upload/index.js +1 -1
  82. package/dist/components/hx-form/hx-form.d.ts +19 -0
  83. package/dist/components/hx-form/hx-form.d.ts.map +1 -1
  84. package/dist/components/hx-help-text/hx-help-text.d.ts +17 -0
  85. package/dist/components/hx-help-text/hx-help-text.d.ts.map +1 -1
  86. package/dist/components/hx-help-text/hx-help-text.styles.d.ts.map +1 -1
  87. package/dist/components/hx-help-text/index.js +1 -1
  88. package/dist/components/hx-icon/hx-icon.d.ts +108 -12
  89. package/dist/components/hx-icon/hx-icon.d.ts.map +1 -1
  90. package/dist/components/hx-icon/hx-icon.styles.d.ts.map +1 -1
  91. package/dist/components/hx-icon/index.js +1 -1
  92. package/dist/components/hx-icon-button/hx-icon-button.d.ts +18 -0
  93. package/dist/components/hx-icon-button/hx-icon-button.d.ts.map +1 -1
  94. package/dist/components/hx-link/hx-link.d.ts.map +1 -1
  95. package/dist/components/hx-link/hx-link.styles.d.ts.map +1 -1
  96. package/dist/components/hx-link/index.js +1 -1
  97. package/dist/components/hx-menu/hx-menu-item.d.ts.map +1 -1
  98. package/dist/components/hx-menu/hx-menu-item.styles.d.ts.map +1 -1
  99. package/dist/components/hx-menu/hx-menu.d.ts +18 -0
  100. package/dist/components/hx-menu/hx-menu.d.ts.map +1 -1
  101. package/dist/components/hx-menu/index.js +1 -1
  102. package/dist/components/hx-nav/hx-nav.d.ts +18 -0
  103. package/dist/components/hx-nav/hx-nav.d.ts.map +1 -1
  104. package/dist/components/hx-nav/hx-nav.styles.d.ts.map +1 -1
  105. package/dist/components/hx-nav/index.js +1 -1
  106. package/dist/components/hx-number-input/hx-number-input.d.ts +18 -0
  107. package/dist/components/hx-number-input/hx-number-input.d.ts.map +1 -1
  108. package/dist/components/hx-number-input/hx-number-input.styles.d.ts.map +1 -1
  109. package/dist/components/hx-number-input/index.js +1 -1
  110. package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts +23 -1
  111. package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts.map +1 -1
  112. package/dist/components/hx-overflow-menu/hx-overflow-menu.styles.d.ts.map +1 -1
  113. package/dist/components/hx-overflow-menu/index.js +1 -1
  114. package/dist/components/hx-phi-field/hx-phi-field.d.ts.map +1 -1
  115. package/dist/components/hx-phi-field/hx-phi-field.styles.d.ts.map +1 -1
  116. package/dist/components/hx-phi-field/index.js +1 -1
  117. package/dist/components/hx-popover/hx-popover.d.ts +18 -0
  118. package/dist/components/hx-popover/hx-popover.d.ts.map +1 -1
  119. package/dist/components/hx-popover/hx-popover.styles.d.ts.map +1 -1
  120. package/dist/components/hx-popover/index.js +1 -1
  121. package/dist/components/hx-popup/hx-popup.d.ts +18 -0
  122. package/dist/components/hx-popup/hx-popup.d.ts.map +1 -1
  123. package/dist/components/hx-popup/hx-popup.styles.d.ts.map +1 -1
  124. package/dist/components/hx-popup/index.js +1 -1
  125. package/dist/components/hx-radio-group/hx-radio-group.d.ts +18 -0
  126. package/dist/components/hx-radio-group/hx-radio-group.d.ts.map +1 -1
  127. package/dist/components/hx-radio-group/hx-radio-group.styles.d.ts.map +1 -1
  128. package/dist/components/hx-radio-group/hx-radio.styles.d.ts.map +1 -1
  129. package/dist/components/hx-radio-group/index.js +1 -1
  130. package/dist/components/hx-rating/hx-rating.d.ts +19 -0
  131. package/dist/components/hx-rating/hx-rating.d.ts.map +1 -1
  132. package/dist/components/hx-rating/hx-rating.styles.d.ts.map +1 -1
  133. package/dist/components/hx-rating/index.js +1 -1
  134. package/dist/components/hx-select/hx-select.d.ts +18 -0
  135. package/dist/components/hx-select/hx-select.d.ts.map +1 -1
  136. package/dist/components/hx-side-nav/hx-nav-item.d.ts.map +1 -1
  137. package/dist/components/hx-side-nav/hx-nav-item.styles.d.ts.map +1 -1
  138. package/dist/components/hx-side-nav/hx-side-nav.d.ts +18 -0
  139. package/dist/components/hx-side-nav/hx-side-nav.d.ts.map +1 -1
  140. package/dist/components/hx-side-nav/hx-side-nav.styles.d.ts.map +1 -1
  141. package/dist/components/hx-side-nav/index.js +1 -1
  142. package/dist/components/hx-slider/hx-slider.d.ts +47 -0
  143. package/dist/components/hx-slider/hx-slider.d.ts.map +1 -1
  144. package/dist/components/hx-slider/index.js +1 -1
  145. package/dist/components/hx-split-button/hx-split-button.d.ts +18 -0
  146. package/dist/components/hx-split-button/hx-split-button.d.ts.map +1 -1
  147. package/dist/components/hx-split-button/hx-split-button.styles.d.ts.map +1 -1
  148. package/dist/components/hx-split-button/index.js +1 -1
  149. package/dist/components/hx-stat/hx-stat.d.ts.map +1 -1
  150. package/dist/components/hx-stat/hx-stat.styles.d.ts.map +1 -1
  151. package/dist/components/hx-stat/index.js +1 -1
  152. package/dist/components/hx-steps/hx-step.d.ts.map +1 -1
  153. package/dist/components/hx-steps/hx-step.styles.d.ts.map +1 -1
  154. package/dist/components/hx-steps/index.js +1 -1
  155. package/dist/components/hx-switch/hx-switch.d.ts +18 -0
  156. package/dist/components/hx-switch/hx-switch.d.ts.map +1 -1
  157. package/dist/components/hx-switch/hx-switch.styles.d.ts.map +1 -1
  158. package/dist/components/hx-switch/index.js +1 -1
  159. package/dist/components/hx-tabs/hx-tab.styles.d.ts.map +1 -1
  160. package/dist/components/hx-tabs/hx-tabs.d.ts +18 -0
  161. package/dist/components/hx-tabs/hx-tabs.d.ts.map +1 -1
  162. package/dist/components/hx-tabs/index.js +1 -1
  163. package/dist/components/hx-tag/hx-tag.d.ts.map +1 -1
  164. package/dist/components/hx-tag/hx-tag.styles.d.ts.map +1 -1
  165. package/dist/components/hx-tag/index.js +1 -1
  166. package/dist/components/hx-text-input/hx-text-input.styles.d.ts.map +1 -1
  167. package/dist/components/hx-text-input/index.js +1 -1
  168. package/dist/components/hx-textarea/hx-textarea.d.ts +18 -0
  169. package/dist/components/hx-textarea/hx-textarea.d.ts.map +1 -1
  170. package/dist/components/hx-time-picker/hx-time-picker.d.ts +18 -0
  171. package/dist/components/hx-time-picker/hx-time-picker.d.ts.map +1 -1
  172. package/dist/components/hx-time-picker/hx-time-picker.styles.d.ts.map +1 -1
  173. package/dist/components/hx-time-picker/index.js +1 -1
  174. package/dist/components/hx-toast/hx-toast.d.ts +19 -8
  175. package/dist/components/hx-toast/hx-toast.d.ts.map +1 -1
  176. package/dist/components/hx-toast/hx-toast.styles.d.ts.map +1 -1
  177. package/dist/components/hx-toast/index.js +1 -1
  178. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts +18 -0
  179. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts.map +1 -1
  180. package/dist/components/hx-toggle-button/hx-toggle-button.styles.d.ts.map +1 -1
  181. package/dist/components/hx-toggle-button/index.js +1 -1
  182. package/dist/components/hx-tooltip/hx-tooltip.d.ts +18 -0
  183. package/dist/components/hx-tooltip/hx-tooltip.d.ts.map +1 -1
  184. package/dist/components/hx-tooltip/hx-tooltip.styles.d.ts.map +1 -1
  185. package/dist/components/hx-tooltip/index.js +1 -1
  186. package/dist/components/hx-top-nav/hx-top-nav.d.ts +18 -0
  187. package/dist/components/hx-top-nav/hx-top-nav.d.ts.map +1 -1
  188. package/dist/components/hx-top-nav/hx-top-nav.styles.d.ts.map +1 -1
  189. package/dist/components/hx-top-nav/index.js +1 -1
  190. package/dist/components/hx-tree-view/hx-tree-item.d.ts.map +1 -1
  191. package/dist/components/hx-tree-view/hx-tree-item.styles.d.ts.map +1 -1
  192. package/dist/components/hx-tree-view/index.js +1 -1
  193. package/dist/css/helix-all.css +355 -84
  194. package/dist/css/helix-core.css +23 -5
  195. package/dist/css/helix-feedback.css +15 -18
  196. package/dist/css/helix-forms.css +139 -27
  197. package/dist/css/helix-media.css +6 -3
  198. package/dist/css/helix-navigation.css +59 -9
  199. package/dist/css/helix-overlay.css +63 -0
  200. package/dist/css/helix-tokens.css +16 -14
  201. package/dist/css/helix-utility.css +44 -12
  202. package/dist/css/hx-action-bar.css +12 -0
  203. package/dist/css/hx-alert.css +4 -8
  204. package/dist/css/hx-avatar.css +1 -2
  205. package/dist/css/hx-badge.css +5 -0
  206. package/dist/css/hx-banner.css +4 -8
  207. package/dist/css/hx-button.css +4 -1
  208. package/dist/css/hx-carousel.css +6 -3
  209. package/dist/css/hx-checkbox-group.css +11 -0
  210. package/dist/css/hx-checkbox.css +14 -9
  211. package/dist/css/hx-clinical-status.css +4 -7
  212. package/dist/css/hx-color-picker.css +14 -1
  213. package/dist/css/hx-combobox.css +8 -0
  214. package/dist/css/hx-copy-button.css +5 -2
  215. package/dist/css/hx-date-picker.css +11 -1
  216. package/dist/css/hx-drawer.css +5 -0
  217. package/dist/css/hx-dropdown.css +18 -0
  218. package/dist/css/hx-file-upload.css +4 -0
  219. package/dist/css/hx-help-text.css +5 -0
  220. package/dist/css/hx-icon.css +7 -0
  221. package/dist/css/hx-link.css +1 -2
  222. package/dist/css/hx-nav.css +31 -2
  223. package/dist/css/hx-number-input.css +10 -11
  224. package/dist/css/hx-overflow-menu.css +5 -0
  225. package/dist/css/hx-phi-field.css +2 -3
  226. package/dist/css/hx-popover.css +13 -0
  227. package/dist/css/hx-popup.css +14 -0
  228. package/dist/css/hx-radio-group.css +10 -0
  229. package/dist/css/hx-rating.css +6 -0
  230. package/dist/css/hx-side-nav.css +10 -5
  231. package/dist/css/hx-split-button.css +27 -10
  232. package/dist/css/hx-stat.css +1 -2
  233. package/dist/css/hx-switch.css +19 -1
  234. package/dist/css/hx-tag.css +5 -0
  235. package/dist/css/hx-text-input.css +4 -1
  236. package/dist/css/hx-time-picker.css +12 -2
  237. package/dist/css/hx-toast.css +6 -0
  238. package/dist/css/hx-toggle-button.css +11 -1
  239. package/dist/css/hx-tooltip.css +13 -0
  240. package/dist/css/hx-top-nav.css +13 -2
  241. package/dist/css/index.css +1 -1
  242. package/dist/css/manifest.json +43 -12
  243. package/dist/index.js +47 -47
  244. package/dist/shared/{hx-accordion-ZVzgDzTG.js → hx-accordion-DR--Ev4t.js} +48 -54
  245. package/dist/shared/hx-accordion-DR--Ev4t.js.map +1 -0
  246. package/dist/shared/{hx-action-bar-CitgcpGv.js → hx-action-bar-BlEG4aZv.js} +41 -29
  247. package/dist/shared/hx-action-bar-BlEG4aZv.js.map +1 -0
  248. package/dist/shared/{hx-alert-Bto8-TIi.js → hx-alert-C0axS32J.js} +40 -79
  249. package/dist/shared/hx-alert-C0axS32J.js.map +1 -0
  250. package/dist/shared/{hx-avatar-C9hOmlAb.js → hx-avatar-ChAYWnK8.js} +22 -24
  251. package/dist/shared/hx-avatar-ChAYWnK8.js.map +1 -0
  252. package/dist/shared/{hx-badge-DFL35nzi.js → hx-badge-vX-1cuLA.js} +16 -11
  253. package/dist/shared/hx-badge-vX-1cuLA.js.map +1 -0
  254. package/dist/shared/{hx-banner-fpRnciIO.js → hx-banner-PbHwFNSb.js} +51 -90
  255. package/dist/shared/hx-banner-PbHwFNSb.js.map +1 -0
  256. package/dist/shared/{hx-breadcrumb-item-3tKppF9h.js → hx-breadcrumb-item-D8xYqe3s.js} +56 -43
  257. package/dist/shared/hx-breadcrumb-item-D8xYqe3s.js.map +1 -0
  258. package/dist/shared/{hx-button-rRNmD4fd.js → hx-button-DOZTZnz-.js} +18 -15
  259. package/dist/shared/hx-button-DOZTZnz-.js.map +1 -0
  260. package/dist/shared/hx-button-group-D3QUmSzl.js +248 -0
  261. package/dist/shared/hx-button-group-D3QUmSzl.js.map +1 -0
  262. package/dist/shared/{hx-carousel-item-z1Lc24op.js → hx-carousel-item-BVIKgQ4i.js} +72 -102
  263. package/dist/shared/hx-carousel-item-BVIKgQ4i.js.map +1 -0
  264. package/dist/shared/{hx-checkbox-hPlIw6Lb.js → hx-checkbox-DDSXXhps.js} +33 -30
  265. package/dist/shared/hx-checkbox-DDSXXhps.js.map +1 -0
  266. package/dist/shared/{hx-checkbox-group-D5piJLY8.js → hx-checkbox-group-C0q6HDqn.js} +101 -58
  267. package/dist/shared/hx-checkbox-group-C0q6HDqn.js.map +1 -0
  268. package/dist/shared/{hx-clinical-status-D3XQIOqX.js → hx-clinical-status-ZSVEc3Qg.js} +68 -87
  269. package/dist/shared/hx-clinical-status-ZSVEc3Qg.js.map +1 -0
  270. package/dist/shared/{hx-color-picker-DBwJzT5f.js → hx-color-picker-CYjx8i8R.js} +97 -84
  271. package/dist/shared/hx-color-picker-CYjx8i8R.js.map +1 -0
  272. package/dist/shared/{hx-combobox-NgJaLbs2.js → hx-combobox-Be-mqOv4.js} +35 -45
  273. package/dist/shared/hx-combobox-Be-mqOv4.js.map +1 -0
  274. package/dist/shared/{hx-copy-button-sUVuikyH.js → hx-copy-button-DJirFCUL.js} +18 -15
  275. package/dist/shared/hx-copy-button-DJirFCUL.js.map +1 -0
  276. package/dist/shared/{hx-date-picker-DSKDkCy1.js → hx-date-picker-CziP3Hm1.js} +80 -82
  277. package/dist/shared/hx-date-picker-CziP3Hm1.js.map +1 -0
  278. package/dist/shared/{hx-drawer-CM_upadk.js → hx-drawer-BlU2oX8-.js} +32 -36
  279. package/dist/shared/hx-drawer-BlU2oX8-.js.map +1 -0
  280. package/dist/shared/{hx-dropdown-D626S2ZG.js → hx-dropdown-DREqpIpm.js} +51 -33
  281. package/dist/shared/hx-dropdown-DREqpIpm.js.map +1 -0
  282. package/dist/shared/hx-field-label-BVRyyKeh.js.map +1 -1
  283. package/dist/shared/hx-field-zw0U1KVi.js.map +1 -1
  284. package/dist/shared/{hx-file-upload-D3rKROK5.js → hx-file-upload-CU5QGZSP.js} +137 -80
  285. package/dist/shared/hx-file-upload-CU5QGZSP.js.map +1 -0
  286. package/dist/shared/hx-form-CkChEATa.js.map +1 -1
  287. package/dist/shared/hx-help-text-CNaZ82LT.js +137 -0
  288. package/dist/shared/hx-help-text-CNaZ82LT.js.map +1 -0
  289. package/dist/shared/hx-icon-button-B2BdVdyK.js.map +1 -1
  290. package/dist/shared/hx-icon-bxz9eB9a.js +386 -0
  291. package/dist/shared/hx-icon-bxz9eB9a.js.map +1 -0
  292. package/dist/shared/{hx-link-CMnZRUtQ.js → hx-link-BURSdYLp.js} +19 -26
  293. package/dist/shared/hx-link-BURSdYLp.js.map +1 -0
  294. package/dist/shared/{hx-menu-divider-A6Guuzi_.js → hx-menu-divider-g0grbWV9.js} +19 -31
  295. package/dist/shared/hx-menu-divider-g0grbWV9.js.map +1 -0
  296. package/dist/shared/{hx-nav-ldFM3Fle.js → hx-nav-GTsAZGOx.js} +94 -85
  297. package/dist/shared/hx-nav-GTsAZGOx.js.map +1 -0
  298. package/dist/shared/{hx-nav-item-CODtUlew.js → hx-nav-item-CxE7Mp3M.js} +46 -41
  299. package/dist/shared/hx-nav-item-CxE7Mp3M.js.map +1 -0
  300. package/dist/shared/{hx-number-input-yUzFOSC1.js → hx-number-input-Bvyc9kOi.js} +59 -64
  301. package/dist/shared/hx-number-input-Bvyc9kOi.js.map +1 -0
  302. package/dist/shared/{hx-overflow-menu-DFjJAziP.js → hx-overflow-menu-LrTteeR1.js} +32 -39
  303. package/dist/shared/{hx-overflow-menu-DFjJAziP.js.map → hx-overflow-menu-LrTteeR1.js.map} +1 -1
  304. package/dist/shared/{hx-phi-field-C19oxlrr.js → hx-phi-field-sZt_rYIL.js} +46 -66
  305. package/dist/shared/hx-phi-field-sZt_rYIL.js.map +1 -0
  306. package/dist/shared/{hx-popover-BAlAFOH9.js → hx-popover-BjB0nkcq.js} +51 -38
  307. package/dist/shared/hx-popover-BjB0nkcq.js.map +1 -0
  308. package/dist/shared/{hx-popup-COUXXZ9X.js → hx-popup-BiV_2evC.js} +59 -45
  309. package/dist/shared/hx-popup-BiV_2evC.js.map +1 -0
  310. package/dist/shared/{hx-radio-CY4kQfZw.js → hx-radio-BD_c9NJy.js} +83 -70
  311. package/dist/shared/hx-radio-BD_c9NJy.js.map +1 -0
  312. package/dist/shared/{hx-rating-C3QP53k9.js → hx-rating-BGK4AxvI.js} +45 -71
  313. package/dist/shared/hx-rating-BGK4AxvI.js.map +1 -0
  314. package/dist/shared/hx-select-DahFehiZ.js.map +1 -1
  315. package/dist/shared/{hx-slider-Blmv_rwS.js → hx-slider-CkOk5BCY.js} +83 -23
  316. package/dist/shared/hx-slider-CkOk5BCY.js.map +1 -0
  317. package/dist/shared/{hx-split-button-Ddle8iVx.js → hx-split-button-Bg9FHrFK.js} +73 -65
  318. package/dist/shared/hx-split-button-Bg9FHrFK.js.map +1 -0
  319. package/dist/shared/{hx-stat-Gtw_SpK8.js → hx-stat-wKxbyep6.js} +22 -55
  320. package/dist/shared/hx-stat-wKxbyep6.js.map +1 -0
  321. package/dist/shared/{hx-step-CUzliIK_.js → hx-step-CyGQAuiB.js} +5 -25
  322. package/dist/shared/hx-step-CyGQAuiB.js.map +1 -0
  323. package/dist/shared/{hx-switch-TvKGvZJz.js → hx-switch-BCXuNxEH.js} +42 -24
  324. package/dist/shared/hx-switch-BCXuNxEH.js.map +1 -0
  325. package/dist/shared/{hx-tab-panel-DzsX8BHV.js → hx-tab-panel-BfisavKo.js} +47 -32
  326. package/dist/shared/hx-tab-panel-BfisavKo.js.map +1 -0
  327. package/dist/shared/{hx-tag-C5aCUpVi.js → hx-tag-BqO6HY6V.js} +26 -21
  328. package/dist/shared/hx-tag-BqO6HY6V.js.map +1 -0
  329. package/dist/shared/{hx-text-input-D6FlOZM-.js → hx-text-input-V5sQOpDh.js} +5 -2
  330. package/dist/shared/hx-text-input-V5sQOpDh.js.map +1 -0
  331. package/dist/shared/hx-textarea-CNG590KY.js.map +1 -1
  332. package/dist/shared/{hx-time-picker-Bo7FWzmf.js → hx-time-picker-if5Cl0Ei.js} +42 -43
  333. package/dist/shared/hx-time-picker-if5Cl0Ei.js.map +1 -0
  334. package/dist/shared/{hx-toggle-button-DSJeFlb0.js → hx-toggle-button-xNVYeA3X.js} +37 -27
  335. package/dist/shared/hx-toggle-button-xNVYeA3X.js.map +1 -0
  336. package/dist/shared/{hx-tooltip-DVqtKPCD.js → hx-tooltip-CamO-9nd.js} +24 -11
  337. package/dist/shared/hx-tooltip-CamO-9nd.js.map +1 -0
  338. package/dist/shared/{hx-top-nav-DP6OFS8C.js → hx-top-nav-vP6oDWMV.js} +42 -44
  339. package/dist/shared/hx-top-nav-vP6oDWMV.js.map +1 -0
  340. package/dist/shared/{hx-tree-item-CXyspGxI.js → hx-tree-item-D8hwKd5m.js} +54 -57
  341. package/dist/shared/hx-tree-item-D8hwKd5m.js.map +1 -0
  342. package/dist/shared/{toast-factory-Dht3pVsw.js → toast-factory-DgnbFxVs.js} +127 -153
  343. package/dist/shared/toast-factory-DgnbFxVs.js.map +1 -0
  344. package/figma-inventory.json +1166 -411
  345. package/package.json +8 -4
  346. package/dist/shared/hx-accordion-ZVzgDzTG.js.map +0 -1
  347. package/dist/shared/hx-action-bar-CitgcpGv.js.map +0 -1
  348. package/dist/shared/hx-alert-Bto8-TIi.js.map +0 -1
  349. package/dist/shared/hx-avatar-C9hOmlAb.js.map +0 -1
  350. package/dist/shared/hx-badge-DFL35nzi.js.map +0 -1
  351. package/dist/shared/hx-banner-fpRnciIO.js.map +0 -1
  352. package/dist/shared/hx-breadcrumb-item-3tKppF9h.js.map +0 -1
  353. package/dist/shared/hx-button-group-4NUBpkyC.js +0 -181
  354. package/dist/shared/hx-button-group-4NUBpkyC.js.map +0 -1
  355. package/dist/shared/hx-button-rRNmD4fd.js.map +0 -1
  356. package/dist/shared/hx-carousel-item-z1Lc24op.js.map +0 -1
  357. package/dist/shared/hx-checkbox-group-D5piJLY8.js.map +0 -1
  358. package/dist/shared/hx-checkbox-hPlIw6Lb.js.map +0 -1
  359. package/dist/shared/hx-clinical-status-D3XQIOqX.js.map +0 -1
  360. package/dist/shared/hx-color-picker-DBwJzT5f.js.map +0 -1
  361. package/dist/shared/hx-combobox-NgJaLbs2.js.map +0 -1
  362. package/dist/shared/hx-copy-button-sUVuikyH.js.map +0 -1
  363. package/dist/shared/hx-date-picker-DSKDkCy1.js.map +0 -1
  364. package/dist/shared/hx-drawer-CM_upadk.js.map +0 -1
  365. package/dist/shared/hx-dropdown-D626S2ZG.js.map +0 -1
  366. package/dist/shared/hx-file-upload-D3rKROK5.js.map +0 -1
  367. package/dist/shared/hx-help-text-Xb2Yr8x2.js +0 -156
  368. package/dist/shared/hx-help-text-Xb2Yr8x2.js.map +0 -1
  369. package/dist/shared/hx-icon-fuVm4-bk.js +0 -283
  370. package/dist/shared/hx-icon-fuVm4-bk.js.map +0 -1
  371. package/dist/shared/hx-link-CMnZRUtQ.js.map +0 -1
  372. package/dist/shared/hx-menu-divider-A6Guuzi_.js.map +0 -1
  373. package/dist/shared/hx-nav-item-CODtUlew.js.map +0 -1
  374. package/dist/shared/hx-nav-ldFM3Fle.js.map +0 -1
  375. package/dist/shared/hx-number-input-yUzFOSC1.js.map +0 -1
  376. package/dist/shared/hx-phi-field-C19oxlrr.js.map +0 -1
  377. package/dist/shared/hx-popover-BAlAFOH9.js.map +0 -1
  378. package/dist/shared/hx-popup-COUXXZ9X.js.map +0 -1
  379. package/dist/shared/hx-radio-CY4kQfZw.js.map +0 -1
  380. package/dist/shared/hx-rating-C3QP53k9.js.map +0 -1
  381. package/dist/shared/hx-slider-Blmv_rwS.js.map +0 -1
  382. package/dist/shared/hx-split-button-Ddle8iVx.js.map +0 -1
  383. package/dist/shared/hx-stat-Gtw_SpK8.js.map +0 -1
  384. package/dist/shared/hx-step-CUzliIK_.js.map +0 -1
  385. package/dist/shared/hx-switch-TvKGvZJz.js.map +0 -1
  386. package/dist/shared/hx-tab-panel-DzsX8BHV.js.map +0 -1
  387. package/dist/shared/hx-tag-C5aCUpVi.js.map +0 -1
  388. package/dist/shared/hx-text-input-D6FlOZM-.js.map +0 -1
  389. package/dist/shared/hx-time-picker-Bo7FWzmf.js.map +0 -1
  390. package/dist/shared/hx-toggle-button-DSJeFlb0.js.map +0 -1
  391. package/dist/shared/hx-tooltip-DVqtKPCD.js.map +0 -1
  392. package/dist/shared/hx-top-nav-DP6OFS8C.js.map +0 -1
  393. package/dist/shared/hx-tree-item-CXyspGxI.js.map +0 -1
  394. package/dist/shared/toast-factory-Dht3pVsw.js.map +0 -1
@@ -90,8 +90,7 @@
90
90
  /* ─── Fallback Icon ─── */
91
91
 
92
92
  .avatar__fallback-icon {
93
- width: 60%;
94
- height: 60%;
93
+ --hx-icon-size: 60%;
95
94
  color: var(--hx-avatar-color, var(--hx-color-primary-700, #0f6363));
96
95
  }
97
96
 
@@ -375,6 +374,11 @@
375
374
  border-width: 2px;
376
375
  }
377
376
  }
377
+
378
+ /* hx-icon glyph sizing for the migrated remove-button SVG. */
379
+ .badge__remove-glyph {
380
+ --hx-icon-size: 10px;
381
+ }
378
382
  /* ── hx-button ── */
379
383
  :host {
380
384
  display: inline-block;
@@ -449,7 +453,10 @@
449
453
  .button--md {
450
454
  padding: var(--hx-space-2, 0.5rem) var(--hx-space-4, 1rem);
451
455
  font-size: var(--hx-font-size-md, 1rem);
452
- min-height: var(--hx-size-10, 2.5rem);
456
+ /* WCAG 2.5.5 AAA Target Size (Enhanced): 44×44 minimum.
457
+ Bound to --hx-touch-target-min so the default md variant clears the
458
+ AAA-strict floor without requiring consumers to opt into sm or lg. */
459
+ min-height: var(--hx-touch-target-min, 2.75rem);
453
460
  }
454
461
 
455
462
  .button--lg {
@@ -1295,6 +1302,12 @@
1295
1302
  width: 100%;
1296
1303
  height: 100%;
1297
1304
  fill: currentColor;
1305
+ /* stroke-width is consumed by stroke-paint and mixed-paint icon libraries
1306
+ (Lucide, Heroicons-outline, Phosphor). Built-in helix + fa-free
1307
+ libraries declare paintMode: 'fill' and ignore this property; setting
1308
+ it here makes the token universally available without per-library
1309
+ branching in the resolver. */
1310
+ stroke-width: var(--hx-icon-stroke-width, 2);
1298
1311
  display: block;
1299
1312
  overflow: visible;
1300
1313
  }
@@ -1315,6 +1328,7 @@
1315
1328
  width: 100%;
1316
1329
  height: 100%;
1317
1330
  fill: currentColor;
1331
+ stroke-width: var(--hx-icon-stroke-width, 2);
1318
1332
  display: block;
1319
1333
  }
1320
1334
 
@@ -1668,8 +1682,7 @@
1668
1682
 
1669
1683
  .link__external-icon {
1670
1684
  display: inline-flex;
1671
- width: 0.75em;
1672
- height: 0.75em;
1685
+ --hx-icon-size: 0.75em;
1673
1686
  flex-shrink: 0;
1674
1687
  }
1675
1688
 
@@ -2113,6 +2126,11 @@
2113
2126
  border-width: 3px;
2114
2127
  }
2115
2128
  }
2129
+
2130
+ /* hx-icon glyph sizing for the migrated remove-button SVG. */
2131
+ .tag__remove-glyph {
2132
+ --hx-icon-size: 10px;
2133
+ }
2116
2134
  /* ── hx-text ── */
2117
2135
  :host {
2118
2136
  display: inline;
@@ -84,10 +84,8 @@
84
84
  color: var(--hx-alert-icon-color, var(--hx-color-info-500, #0c8beb));
85
85
  }
86
86
 
87
- .alert__icon svg {
88
- width: var(--hx-space-5, 1.25rem);
89
- height: var(--hx-space-5, 1.25rem);
90
- fill: currentColor;
87
+ .alert__icon .alert__glyph {
88
+ --hx-icon-size: var(--hx-space-5, 1.25rem);
91
89
  }
92
90
 
93
91
  /* ─── Title ─── */
@@ -174,10 +172,8 @@
174
172
  opacity: 1;
175
173
  }
176
174
 
177
- .alert__close-button svg {
178
- width: var(--hx-space-4, 1rem);
179
- height: var(--hx-space-4, 1rem);
180
- fill: currentColor;
175
+ .alert__close-button .alert__glyph {
176
+ --hx-icon-size: var(--hx-space-4, 1rem);
181
177
  }
182
178
 
183
179
  @media (prefers-reduced-motion: reduce) {
@@ -305,10 +301,8 @@
305
301
  color: var(--hx-banner-icon-color, var(--hx-color-info-500, #0c8beb));
306
302
  }
307
303
 
308
- .banner__icon svg {
309
- width: var(--hx-space-5, 1.25rem);
310
- height: var(--hx-space-5, 1.25rem);
311
- fill: currentColor;
304
+ .banner__icon .banner__glyph {
305
+ --hx-icon-size: var(--hx-space-5, 1.25rem);
312
306
  }
313
307
 
314
308
  /* ─── Message ─── */
@@ -388,10 +382,8 @@
388
382
  opacity: 1;
389
383
  }
390
384
 
391
- .banner__close-button svg {
392
- width: var(--hx-space-4, 1rem);
393
- height: var(--hx-space-4, 1rem);
394
- fill: currentColor;
385
+ .banner__close-button .banner__glyph {
386
+ --hx-icon-size: var(--hx-space-4, 1rem);
395
387
  }
396
388
 
397
389
  /* ─── Variant: info ─── */
@@ -990,8 +982,7 @@
990
982
  }
991
983
 
992
984
  .stat__trend-arrow {
993
- width: 0.75em;
994
- height: 0.75em;
985
+ --hx-icon-size: 0.75em;
995
986
  flex-shrink: 0;
996
987
  }
997
988
 
@@ -1300,6 +1291,12 @@
1300
1291
  display: none;
1301
1292
  }
1302
1293
 
1294
+ /* Match the previous inline 16x16 SVG sizing for both the variant icon and
1295
+ the close-button glyph migrated to hx-icon (library="helix"). */
1296
+ .toast__glyph {
1297
+ --hx-icon-size: 16px;
1298
+ }
1299
+
1303
1300
  /* ─── Message ─── */
1304
1301
 
1305
1302
  .toast__message {
@@ -72,6 +72,16 @@
72
72
 
73
73
  /* ─── Focus Ring ─── */
74
74
 
75
+ /*
76
+ * Suppress the browser default ~1px host outline. Without this, the formal
77
+ * AAA audit harness (which measures computed outline-width on the focused
78
+ * host) records a sub-2px outline and reports WCAG 2.4.13 Partially Supports.
79
+ * The visual focus indicator is rendered on the inner .checkbox__box below.
80
+ */
81
+ :host {
82
+ outline: none;
83
+ }
84
+
75
85
  /*
76
86
  * Host-focus path: on the modern (IDL element-references) render branch the
77
87
  * host is the tabbable surface (tabindex=0) and the inner input is demoted
@@ -145,17 +155,12 @@
145
155
  border-color: var(--hx-checkbox-error-color, var(--hx-color-error-500, #e5493e));
146
156
  }
147
157
 
148
- /* ─── Checkmark Icon ─── */
158
+ /* ─── Checkmark Icon (hx-icon library="helix") ─── */
149
159
 
150
160
  .checkbox__icon {
151
161
  display: none;
152
- width: calc(var(--hx-checkbox-size, var(--hx-size-5, 1.25rem)) * 0.65);
153
- height: calc(var(--hx-checkbox-size, var(--hx-size-5, 1.25rem)) * 0.65);
154
- fill: none;
155
- stroke: var(--hx-checkbox-checkmark-color, var(--hx-color-text-on-primary, #ffffff));
156
- stroke-width: 2.5;
157
- stroke-linecap: round;
158
- stroke-linejoin: round;
162
+ --hx-icon-size: calc(var(--hx-checkbox-size, var(--hx-size-5, 1.25rem)) * 0.65);
163
+ --hx-icon-color: var(--hx-checkbox-checkmark-color, var(--hx-color-text-on-primary, #ffffff));
159
164
  }
160
165
 
161
166
  .checkbox--checked .checkbox__icon--check {
@@ -262,7 +267,7 @@
262
267
  }
263
268
 
264
269
  .checkbox__icon {
265
- stroke: HighlightText;
270
+ --hx-icon-color: HighlightText;
266
271
  }
267
272
 
268
273
  .checkbox--error .checkbox__box {
@@ -316,6 +321,17 @@
316
321
  cursor: not-allowed;
317
322
  }
318
323
 
324
+ /*
325
+ * AAA 2.4.13 Focus Appearance — host-level focus ring (group is focusable
326
+ * via roving tabindex in Tier-2). Token-driven: --hx-focus-ring-width
327
+ * resolves to ≥2px.
328
+ */
329
+ :host(:focus-visible) {
330
+ outline: var(--hx-focus-ring-width, 2px) solid
331
+ var(--hx-checkbox-group-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
332
+ outline-offset: var(--hx-focus-ring-offset, 2px);
333
+ }
334
+
319
335
  * {
320
336
  box-sizing: border-box;
321
337
  }
@@ -461,6 +477,10 @@
461
477
  background: var(--hx-color-neutral-0, #ffffff);
462
478
  cursor: pointer;
463
479
  transition: border-color var(--hx-transition-fast, 150ms ease);
480
+ /* WCAG 2.5.5 AAA Target Size (Enhanced): 44×44 minimum.
481
+ Bound to --hx-touch-target-min so the trigger clears the AAA-strict
482
+ floor at default sizing. */
483
+ min-height: var(--hx-touch-target-min, 2.75rem);
464
484
  }
465
485
  .trigger:hover:not([disabled]) {
466
486
  border-color: var(
@@ -621,13 +641,20 @@
621
641
  }
622
642
  .format-btn {
623
643
  flex-shrink: 0;
644
+ /* WCAG 2.5.5 (Enhanced) AAA — interactive panel controls must clear
645
+ 44×44. Without min-width/min-height the format toggle collapses to
646
+ its label box (~44×24 in default rendering, sub-44 on the y-axis). */
647
+ min-width: var(--hx-touch-target-min, 2.75rem);
648
+ min-height: var(--hx-touch-target-min, 2.75rem);
624
649
  padding: var(--hx-space-1, 0.25rem) var(--hx-space-2, 0.5rem);
625
650
  background: var(--hx-color-neutral-100, #ebeee9);
626
651
  border: var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-300, #b6bfb9);
627
652
  border-radius: var(--hx-border-radius-sm, 0.25rem);
628
653
  cursor: pointer;
629
654
  font-size: var(--hx-font-size-xs, 0.75rem);
630
- color: var(--hx-color-neutral-600, #4a5362);
655
+ /* AAA 1.4.6: 12px label vs neutral-100 must be ≥7:1; neutral-700 = 9.34:1
656
+ (neutral-600 was 6.63:1, a tight AAA miss). */
657
+ color: var(--hx-color-neutral-700, #313e4b);
631
658
  text-transform: uppercase;
632
659
  font-weight: var(--hx-font-weight-semibold, 600);
633
660
  letter-spacing: 0.05em;
@@ -635,6 +662,8 @@
635
662
  .color-input {
636
663
  flex: 1;
637
664
  min-width: 0;
665
+ /* WCAG 2.5.5 (Enhanced) AAA — text input must clear 44×44. */
666
+ min-height: var(--hx-touch-target-min, 2.75rem);
638
667
  padding: var(--hx-space-1, 0.25rem) var(--hx-space-2, 0.5rem);
639
668
  border: var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-300, #b6bfb9);
640
669
  border-radius: var(--hx-border-radius-sm, 0.25rem);
@@ -1110,6 +1139,14 @@
1110
1139
  outline-offset: var(--hx-focus-ring-offset, 2px);
1111
1140
  opacity: 1;
1112
1141
  }
1142
+
1143
+ /* hx-icon glyph sizing for migrated inline SVGs (library="helix"). */
1144
+ .field__chip-remove-glyph {
1145
+ --hx-icon-size: 8px;
1146
+ }
1147
+ .field__clear-button-glyph {
1148
+ --hx-icon-size: 12px;
1149
+ }
1113
1150
  /* ── hx-date-picker ── */
1114
1151
  /* ============================================================
1115
1152
  Host
@@ -1217,7 +1254,8 @@
1217
1254
  font-size: var(--hx-font-size-md, 1rem);
1218
1255
  color: var(--hx-date-picker-color, var(--hx-color-text-strong, #202b39));
1219
1256
  line-height: var(--hx-line-height-normal, 1.5);
1220
- min-height: var(--hx-size-10, 2.5rem);
1257
+ /* WCAG 2.5.5 (Enhanced) AAA — primary input surface must meet 44×44. */
1258
+ min-height: var(--hx-touch-target-min, 2.75rem);
1221
1259
  width: 100%;
1222
1260
  cursor: default;
1223
1261
  }
@@ -1238,6 +1276,10 @@
1238
1276
  display: flex;
1239
1277
  align-items: center;
1240
1278
  justify-content: center;
1279
+ /* WCAG 2.5.5 (Enhanced) AAA — calendar trigger must clear 44×44.
1280
+ Without min-width the icon button collapses to ~41 px wide. */
1281
+ min-width: var(--hx-touch-target-min, 2.75rem);
1282
+ min-height: var(--hx-touch-target-min, 2.75rem);
1241
1283
  padding: 0 var(--hx-space-3, 0.75rem);
1242
1284
  border: none;
1243
1285
  border-left: var(--hx-border-width-thin, 1px) solid
@@ -1536,6 +1578,11 @@
1536
1578
  border-color: LinkText;
1537
1579
  }
1538
1580
  }
1581
+
1582
+ /* hx-icon glyph sizing for the migrated calendar trigger SVG. */
1583
+ .field__trigger-glyph {
1584
+ --hx-icon-size: 16px;
1585
+ }
1539
1586
  /* ── hx-field ── */
1540
1587
  :host {
1541
1588
  display: block;
@@ -1926,6 +1973,10 @@
1926
1973
  outline-offset: var(--hx-focus-ring-offset, 2px);
1927
1974
  }
1928
1975
 
1976
+ .file-item__remove-glyph {
1977
+ --hx-icon-size: 14px;
1978
+ }
1979
+
1929
1980
  @media (prefers-reduced-motion: reduce) {
1930
1981
  .file-item__remove {
1931
1982
  transition: none;
@@ -2048,6 +2099,11 @@
2048
2099
  align-items: center;
2049
2100
  }
2050
2101
 
2102
+ /* Render the migrated hx-icon glyph at 1em (matches the previous inline SVG sizing). */
2103
+ .help-text__glyph {
2104
+ --hx-icon-size: 1em;
2105
+ }
2106
+
2051
2107
  .help-text__text {
2052
2108
  min-width: 0;
2053
2109
  }
@@ -2155,13 +2211,13 @@
2155
2211
  .field__input-wrapper:focus-within {
2156
2212
  border-color: var(--hx-number-input-focus-ring-color, var(--hx-focus-ring-color));
2157
2213
  /* Fallback for Safari < 16.2 (no color-mix support) */
2158
- box-shadow: 0 0 0 var(--hx-focus-ring-width)
2214
+ box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
2159
2215
  var(--hx-number-input-focus-ring-color, var(--hx-focus-ring-color));
2160
- box-shadow: 0 0 0 var(--hx-focus-ring-width)
2216
+ box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
2161
2217
  color-mix(
2162
2218
  in srgb,
2163
2219
  var(--hx-number-input-focus-ring-color, var(--hx-focus-ring-color))
2164
- calc(var(--hx-focus-ring-opacity) * 100%),
2220
+ calc(var(--hx-focus-ring-opacity, 0.25) * 100%),
2165
2221
  transparent
2166
2222
  );
2167
2223
  }
@@ -2175,13 +2231,13 @@
2175
2231
  .field--error .field__input-wrapper:focus-within {
2176
2232
  border-color: var(--hx-number-input-error-color, var(--hx-color-error-500, #e5493e));
2177
2233
  /* Fallback for Safari < 16.2 (no color-mix support) */
2178
- box-shadow: 0 0 0 var(--hx-focus-ring-width)
2234
+ box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
2179
2235
  var(--hx-number-input-error-color, var(--hx-color-error-500, #e5493e));
2180
- box-shadow: 0 0 0 var(--hx-focus-ring-width)
2236
+ box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
2181
2237
  color-mix(
2182
2238
  in srgb,
2183
2239
  var(--hx-number-input-error-color, var(--hx-color-error-500, #e5493e))
2184
- calc(var(--hx-focus-ring-opacity) * 100%),
2240
+ calc(var(--hx-focus-ring-opacity, 0.25) * 100%),
2185
2241
  transparent
2186
2242
  );
2187
2243
  }
@@ -2208,10 +2264,10 @@
2208
2264
  color: var(--hx-number-input-color, var(--hx-color-text-strong));
2209
2265
  line-height: var(--hx-line-height-normal);
2210
2266
  width: 100%;
2211
- /* Size: md (default) */
2267
+ /* Size: md (default) — WCAG 2.5.5 (Enhanced) AAA touch target. */
2212
2268
  padding: var(--hx-space-2) var(--hx-space-3);
2213
2269
  font-size: var(--hx-font-size-md);
2214
- min-height: var(--hx-size-10);
2270
+ min-height: var(--hx-touch-target-min, 2.75rem);
2215
2271
  }
2216
2272
 
2217
2273
  .field__input::placeholder {
@@ -2300,10 +2356,9 @@
2300
2356
  cursor: not-allowed;
2301
2357
  }
2302
2358
 
2303
- .field__stepper-btn svg {
2359
+ .field__stepper-glyph {
2304
2360
  pointer-events: none;
2305
- width: var(--hx-number-input-icon-size, var(--hx-space-3, 0.75rem));
2306
- height: var(--hx-number-input-icon-size, var(--hx-space-3, 0.75rem));
2361
+ --hx-icon-size: var(--hx-number-input-icon-size, var(--hx-space-3, 0.75rem));
2307
2362
  }
2308
2363
 
2309
2364
  /* Size sm adjustments for stepper */
@@ -2429,6 +2484,16 @@
2429
2484
  pointer-events: none;
2430
2485
  }
2431
2486
 
2487
+ /*
2488
+ * AAA 2.4.13 Focus Appearance — host-level focus ring for the group host
2489
+ * when it carries focus via roving tabindex. Token-driven: ≥2px width.
2490
+ */
2491
+ :host(:focus-visible) {
2492
+ outline: var(--hx-focus-ring-width, 2px) solid
2493
+ var(--hx-radio-group-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
2494
+ outline-offset: var(--hx-focus-ring-offset, 2px);
2495
+ }
2496
+
2432
2497
  * {
2433
2498
  box-sizing: border-box;
2434
2499
  }
@@ -2590,6 +2655,12 @@
2590
2655
  color: var(--hx-rating-hover-color, var(--hx-color-warning-300, #eeb383));
2591
2656
  }
2592
2657
 
2658
+ /* ─── Star Glyph (hx-icon) Sizing ─── */
2659
+
2660
+ .star-glyph {
2661
+ --hx-icon-size: 1em;
2662
+ }
2663
+
2593
2664
  /* ─── Half-Star Layout ─── */
2594
2665
 
2595
2666
  .star-half {
@@ -3352,6 +3423,13 @@
3352
3423
  /* ── hx-switch ── */
3353
3424
  :host {
3354
3425
  display: block;
3426
+ /*
3427
+ * Suppress the browser default ~1px host outline. Without this the formal
3428
+ * AAA audit harness (which measures computed outline-width on the focused
3429
+ * host) records a sub-2px outline and reports WCAG 2.4.13 Partially Supports.
3430
+ * The visual focus indicator is rendered on the inner .switch__track below.
3431
+ */
3432
+ outline: none;
3355
3433
  }
3356
3434
 
3357
3435
  :host([disabled]) {
@@ -3423,7 +3501,18 @@
3423
3501
  }
3424
3502
 
3425
3503
  .switch--checked .switch__track {
3426
- background-color: var(--hx-switch-track-checked-bg, var(--hx-color-primary-500, #429797));
3504
+ /* WCAG 1.4.6 AAA-strict 7:1: consume action.primary.bg (primary-700 since
3505
+ 3.4.0) so the checked track inherits the elevated AAA-strict action
3506
+ surface contract used by every other primary interactive surface
3507
+ (hx-button, hx-checkbox checked-bg, hx-radio checked-bg, etc.). The
3508
+ prior primary-500 fallback (#429797 in Apex) clears AA (5.20:1) but
3509
+ only resolves to ~6.11:1 in the formal harness's contrast probe —
3510
+ below the 7:1 AAA-strict floor. action.primary.bg = primary-700
3511
+ (#0F6363 in Apex) clears 7.03:1 across all 6 brands. */
3512
+ background-color: var(
3513
+ --hx-switch-track-checked-bg,
3514
+ var(--hx-color-action-primary-bg, var(--hx-color-primary-700, #0f7078))
3515
+ );
3427
3516
  }
3428
3517
 
3429
3518
  .switch:not(.switch--checked) .switch__track:hover {
@@ -3825,7 +3914,10 @@
3825
3914
  font-size: var(--_text-input-font-size);
3826
3915
  color: var(--_text-input-color);
3827
3916
  line-height: var(--hx-line-height-normal, 1.5);
3828
- min-height: var(--hx-size-10, 2.5rem);
3917
+ /* WCAG 2.5.5 (Enhanced) AAA — primary input surface must meet 44×44.
3918
+ --hx-touch-target-min resolves to 2.75rem (44px); --hx-size-10 alone
3919
+ resolves to 2.5rem (40px) and fails AAA on the inner input. */
3920
+ min-height: var(--hx-touch-target-min, 2.75rem);
3829
3921
  width: 100%;
3830
3922
  }
3831
3923
 
@@ -4299,7 +4391,8 @@
4299
4391
  font-size: var(--hx-font-size-md, 1rem);
4300
4392
  color: var(--hx-time-picker-color, var(--hx-color-text-strong, #202b39));
4301
4393
  line-height: var(--hx-line-height-normal, 1.5);
4302
- min-height: var(--hx-size-10, 2.5rem);
4394
+ /* WCAG 2.5.5 (Enhanced) AAA — primary input surface must meet 44×44. */
4395
+ min-height: var(--hx-touch-target-min, 2.75rem);
4303
4396
  width: 100%;
4304
4397
  cursor: text;
4305
4398
  }
@@ -4319,7 +4412,11 @@
4319
4412
  color: var(--hx-time-picker-chevron-color, var(--hx-color-text-muted, #4a5362));
4320
4413
  cursor: pointer;
4321
4414
  height: 100%;
4322
- min-height: var(--hx-size-10, 2.5rem);
4415
+ /* WCAG 2.5.5 (Enhanced) AAA — toggle button must meet 44×44 in
4416
+ BOTH dimensions; without min-width the icon button collapses to
4417
+ ~41 px wide and fails the matrix audit. */
4418
+ min-width: var(--hx-touch-target-min, 2.75rem);
4419
+ min-height: var(--hx-touch-target-min, 2.75rem);
4323
4420
  flex-shrink: 0;
4324
4421
  border-inline-start: var(--hx-border-width-thin, 1px) solid
4325
4422
  var(--hx-time-picker-border-color, var(--hx-color-border-strong, #66787b));
@@ -4464,9 +4561,21 @@
4464
4561
  color: LinkText;
4465
4562
  }
4466
4563
  }
4564
+
4565
+ /* hx-icon glyph sizing for the migrated clock toggle icon. */
4566
+ .field__toggle-glyph {
4567
+ --hx-icon-size: 16px;
4568
+ }
4467
4569
  /* ── hx-toggle-button ── */
4468
4570
  :host {
4469
4571
  display: inline-block;
4572
+ /*
4573
+ * Suppress the browser default ~1px host outline. Without this the formal
4574
+ * AAA audit harness (which measures computed outline-width on the focused
4575
+ * host) records a sub-2px outline and reports WCAG 2.4.13 Partially Supports.
4576
+ * The visual focus indicator is rendered on the inner .button below.
4577
+ */
4578
+ outline: none;
4470
4579
  }
4471
4580
 
4472
4581
  :host([disabled]) {
@@ -4544,7 +4653,10 @@
4544
4653
  .button--md {
4545
4654
  padding: var(--hx-space-2, 0.5rem) var(--hx-space-4, 1rem);
4546
4655
  font-size: var(--hx-font-size-md, 1rem);
4547
- min-height: var(--hx-size-10, 2.5rem);
4656
+ /* WCAG 2.5.5 AAA Target Size (Enhanced): 44×44 minimum.
4657
+ Bound to --hx-touch-target-min so the default md variant clears the
4658
+ AAA-strict floor without requiring consumers to opt into sm or lg. */
4659
+ min-height: var(--hx-touch-target-min, 2.75rem);
4548
4660
  }
4549
4661
 
4550
4662
  .button--lg {
@@ -73,9 +73,12 @@
73
73
  cursor: not-allowed;
74
74
  }
75
75
 
76
- .nav-btn svg {
77
- width: 1.25em;
78
- height: 1.25em;
76
+ .nav-btn .carousel__nav-glyph {
77
+ --hx-icon-size: 1.25em;
78
+ }
79
+
80
+ .play-pause-btn .carousel__autoplay-glyph {
81
+ --hx-icon-size: 1em;
79
82
  }
80
83
 
81
84
  /* ─── Play/Pause ─── */
@@ -166,6 +166,16 @@
166
166
  align-items: center;
167
167
  gap: var(--hx-space-1, 0.25rem);
168
168
  padding: var(--hx-nav-item-padding, var(--hx-space-2, 0.5rem) var(--hx-space-3, 0.75rem));
169
+ /*
170
+ * WCAG 2.5.5 (Enhanced) AAA — nav links rendered with default padding
171
+ * land at ~37 px tall (8 px + 1.5 line-height + 8 px). The link
172
+ * content is first-party (rendered via consumer-supplied props on
173
+ * <hx-nav-item>), so the slotted-content carve-out does not apply —
174
+ * this is a real component obligation. Bind --hx-nav-link-min-height
175
+ * to --hx-touch-target-min (2.75rem / 44 px) to grow the interactive
176
+ * area without enlarging the visible label.
177
+ */
178
+ min-height: var(--hx-nav-link-min-height, var(--hx-touch-target-min, 2.75rem));
169
179
  color: var(--hx-nav-link-color, var(--hx-color-neutral-100, #ebeee9));
170
180
  text-decoration: none;
171
181
  border-radius: var(--hx-nav-border-radius, var(--hx-border-radius-sm, 0.25rem));
@@ -194,13 +204,26 @@
194
204
  }
195
205
 
196
206
  .nav__link--active {
197
- background-color: var(--hx-nav-link-active-bg, var(--hx-color-primary-600, #0f7078));
198
- color: var(--hx-nav-link-active-color, var(--hx-color-neutral-0, #ffffff));
207
+ background-color: var(--hx-nav-link-active-bg, var(--hx-color-action-primary-bg, #0f6363));
208
+ /* Use --hx-color-text-on-primary so the active-link text inherits the
209
+ * action-surface AAA-strict pairing (white on primary-700 in default
210
+ * themes; black on lighter primary-700 in the high-contrast theme).
211
+ * Pre-3.4.0 this consumed --hx-color-primary-600 directly which
212
+ * resolved to Apex #0F7078 + white = 5.82:1 — AAA-large only, AAA
213
+ * normal fail under WCAG 1.4.6 for body-text-sized link labels. The
214
+ * Phase 4 Tier 3 chain shift moved action.primary.bg to primary-700
215
+ * (Apex 7.03:1 with white) and consuming the action semantic here
216
+ * picks up the AAA-strict pairing across the full 6-brand matrix.
217
+ * Hardcoding white previously failed AAA-large in high-contrast
218
+ * (ratio 2.54 vs. 4.5 floor); the on-primary token resolves correctly
219
+ * in HC mode. */
220
+ color: var(--hx-nav-link-active-color, var(--hx-color-text-on-primary, #ffffff));
199
221
  }
200
222
 
201
223
  /* ─── Chevron Icon ─── */
202
224
 
203
225
  .nav__chevron {
226
+ --hx-icon-size: 16px;
204
227
  transition: transform var(--hx-transition-normal, 200ms) ease;
205
228
  flex-shrink: 0;
206
229
  }
@@ -209,6 +232,12 @@
209
232
  transform: rotate(180deg);
210
233
  }
211
234
 
235
+ /* ─── Hamburger Icon (mobile menu trigger) ─── */
236
+
237
+ .nav__hamburger-glyph {
238
+ --hx-icon-size: 24px;
239
+ }
240
+
212
241
  /* ─── Submenu ─── */
213
242
 
214
243
  .nav__submenu {
@@ -518,6 +547,11 @@
518
547
  border: 2px solid CanvasText;
519
548
  }
520
549
  }
550
+
551
+ /* hx-icon glyph sizing for the migrated trigger icons (1em parity). */
552
+ .trigger__glyph {
553
+ --hx-icon-size: 1em;
554
+ }
521
555
  /* ── hx-pagination ── */
522
556
  :host {
523
557
  display: block;
@@ -812,8 +846,15 @@
812
846
  display: flex;
813
847
  align-items: center;
814
848
  justify-content: center;
849
+ /* Visual icon area stays 2rem (32px) — preserves the side-nav header
850
+ silhouette while the wrapping touch target grows to 44×44 to meet
851
+ WCAG 2.5.5 (Enhanced) AAA. min-width/min-height own the hit area;
852
+ width/height drive the visual painted area, but the button's
853
+ intrinsic size always matches the hit-area floor. */
815
854
  width: var(--hx-space-8, 2rem);
816
855
  height: var(--hx-space-8, 2rem);
856
+ min-width: var(--hx-touch-target-min, 2.75rem);
857
+ min-height: var(--hx-touch-target-min, 2.75rem);
817
858
  margin-inline-start: auto;
818
859
  flex-shrink: 0;
819
860
  padding: 0;
@@ -859,15 +900,13 @@
859
900
  outline-offset: var(--hx-focus-ring-offset, 2px);
860
901
  }
861
902
 
862
- .side-nav__toggle svg {
863
- width: var(--hx-space-5, 1.25rem);
864
- height: var(--hx-space-5, 1.25rem);
865
- fill: currentColor;
903
+ .side-nav__toggle .side-nav__toggle-glyph {
904
+ --hx-icon-size: var(--hx-space-5, 1.25rem);
866
905
  flex-shrink: 0;
867
906
  transition: transform var(--hx-transition-normal, 300ms) ease;
868
907
  }
869
908
 
870
- :host([collapsed]) .side-nav__toggle svg {
909
+ :host([collapsed]) .side-nav__toggle .side-nav__toggle-glyph {
871
910
  transform: rotate(180deg);
872
911
  }
873
912
 
@@ -1149,9 +1188,20 @@
1149
1188
  outline-offset: var(--hx-focus-ring-offset, 2px);
1150
1189
  }
1151
1190
 
1191
+ /*
1192
+ * AAA 2.4.13 Focus Appearance — enforce a ≥2px ring on slotted nav
1193
+ * controls (links, buttons, hx-link, hx-button). Slotted bare anchors
1194
+ * otherwise fall back to the 1px browser default.
1195
+ */
1196
+ ::slotted(a:focus-visible),
1197
+ ::slotted(button:focus-visible) {
1198
+ outline: var(--hx-focus-ring-width, 2px) solid
1199
+ var(--hx-top-nav-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
1200
+ outline-offset: var(--hx-focus-ring-offset, 2px);
1201
+ }
1202
+
1152
1203
  .mobile-toggle__icon {
1153
- width: var(--hx-space-6, 1.5rem);
1154
- height: var(--hx-space-6, 1.5rem);
1204
+ --hx-icon-size: var(--hx-space-6, 1.5rem);
1155
1205
  }
1156
1206
 
1157
1207
  /* ─── Collapsible panel (mobile) ─── */