@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
@@ -515,6 +515,11 @@
515
515
  border: 1px solid ButtonText;
516
516
  }
517
517
  }
518
+
519
+ /* hx-icon glyph sizing for the migrated close-button SVG. */
520
+ .drawer-close-button-glyph {
521
+ --hx-icon-size: 16px;
522
+ }
518
523
  /* ── hx-dropdown ── */
519
524
  :host {
520
525
  display: inline-block;
@@ -530,11 +535,29 @@
530
535
  display: inline-block;
531
536
  }
532
537
 
538
+ /*
539
+ * AAA 2.4.13 Focus Appearance — enforce a ≥2px focus ring on the slotted
540
+ * trigger (typically <hx-button>, <button>, or <hx-icon-button>). The host
541
+ * is a popover-container; the interactive surface is the slotted trigger.
542
+ */
543
+ ::slotted([slot='trigger']:focus-visible),
544
+ ::slotted(button:focus-visible),
545
+ ::slotted(a:focus-visible) {
546
+ outline: var(--hx-focus-ring-width, 2px) solid
547
+ var(--hx-dropdown-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
548
+ outline-offset: var(--hx-focus-ring-offset, 2px);
549
+ }
550
+
533
551
  [part='panel'] {
534
552
  position: fixed;
535
553
  z-index: var(--hx-dropdown-panel-z-index, 1000);
536
554
  min-width: var(--hx-dropdown-panel-min-width, 160px);
537
555
  background: var(--hx-dropdown-panel-bg, var(--hx-color-surface-default, #ffffff));
556
+ /* Anchor slotted text color to the design-system primary text token so
557
+ slotted <li>'s and other native consumer markup don't inherit a
558
+ foreign color cascade (e.g. brand toolbar setting body { color: #fff }
559
+ and rendering Edit/Duplicate as white-on-white). */
560
+ color: var(--hx-dropdown-panel-color, var(--hx-color-text-primary, #1a1a1a));
538
561
  border: 1px solid var(--hx-dropdown-panel-border-color, var(--hx-color-border-default, #d6dbd5));
539
562
  border-radius: var(--hx-dropdown-panel-border-radius, var(--hx-border-radius-md, 0.375rem));
540
563
  box-shadow: var(
@@ -581,6 +604,19 @@
581
604
  display: inline-block;
582
605
  }
583
606
 
607
+ /*
608
+ * AAA 2.4.13 Focus Appearance — enforce a ≥2px focus ring on the slotted
609
+ * trigger so consumers who slot bare HTML controls inherit the same ring
610
+ * width as <hx-button>. Token-driven: --hx-focus-ring-width (default 2px).
611
+ */
612
+ ::slotted([slot='trigger']:focus-visible),
613
+ ::slotted(button:focus-visible),
614
+ ::slotted(a:focus-visible) {
615
+ outline: var(--hx-focus-ring-width, 2px) solid
616
+ var(--hx-popover-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
617
+ outline-offset: var(--hx-focus-ring-offset, 2px);
618
+ }
619
+
584
620
  [part='body'] {
585
621
  position: fixed;
586
622
  z-index: var(--hx-popover-z-index, 9999);
@@ -649,6 +685,20 @@
649
685
  display: inline-block;
650
686
  }
651
687
 
688
+ /*
689
+ * AAA 2.4.13 Focus Appearance — enforce a ≥2px focus ring on slotted
690
+ * trigger / anchor controls. hx-popup is a positioning primitive: it
691
+ * paints no surface itself, but slotted natives (<button>, <a>) must
692
+ * still meet the AAA ring threshold. Token-driven.
693
+ */
694
+ ::slotted([slot='anchor']:focus-visible),
695
+ ::slotted(button:focus-visible),
696
+ ::slotted(a:focus-visible) {
697
+ outline: var(--hx-focus-ring-width, 2px) solid
698
+ var(--hx-popup-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
699
+ outline-offset: var(--hx-focus-ring-offset, 2px);
700
+ }
701
+
652
702
  [part='popup'] {
653
703
  position: fixed;
654
704
  z-index: var(--hx-popup-z-index, 9000);
@@ -696,6 +746,19 @@
696
746
  display: inline-block;
697
747
  }
698
748
 
749
+ /*
750
+ * AAA 2.4.13 Focus Appearance — enforce a ≥2px focus ring on the slotted
751
+ * trigger. APG forbids the tooltip body from holding focus, so the
752
+ * trigger is the only AAA-relevant focus surface. Token-driven.
753
+ */
754
+ ::slotted([slot='trigger']:focus-visible),
755
+ ::slotted(button:focus-visible),
756
+ ::slotted(a:focus-visible) {
757
+ outline: var(--hx-focus-ring-width, 2px) solid
758
+ var(--hx-tooltip-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
759
+ outline-offset: var(--hx-focus-ring-offset, 2px);
760
+ }
761
+
699
762
  [part='tooltip'] {
700
763
  position: fixed;
701
764
  z-index: var(--hx-tooltip-z-index, var(--hx-z-index-tooltip, 1600));
@@ -91,7 +91,7 @@
91
91
  --hx-color-text-primary: var(--hx-color-neutral-900);
92
92
  --hx-color-text-strong: var(--hx-color-neutral-800);
93
93
  --hx-color-text-secondary: var(--hx-color-neutral-700);
94
- --hx-color-text-muted: var(--hx-color-neutral-600);
94
+ --hx-color-text-muted: var(--hx-color-neutral-700);
95
95
  --hx-color-text-placeholder: var(--hx-color-neutral-500);
96
96
  --hx-color-text-disabled: var(--hx-color-neutral-400);
97
97
  --hx-color-text-inverse: var(--hx-color-neutral-0);
@@ -104,12 +104,12 @@
104
104
  --hx-color-text-on-primary-strong: var(--hx-color-neutral-0);
105
105
  --hx-color-text-on-success-strong: var(--hx-color-neutral-0);
106
106
  --hx-color-text-on-error-strong: var(--hx-color-neutral-0);
107
- --hx-color-text-link: var(--hx-color-primary-600);
108
- --hx-color-text-link-hover: var(--hx-color-primary-700);
109
- --hx-color-text-link-visited: var(--hx-color-secondary-600);
110
- --hx-color-text-link-active: var(--hx-color-primary-800);
111
- --hx-color-error-text: var(--hx-color-error-600);
112
- --hx-color-success-text: var(--hx-color-success-700);
107
+ --hx-color-text-link: var(--hx-color-primary-700);
108
+ --hx-color-text-link-hover: var(--hx-color-primary-800);
109
+ --hx-color-text-link-visited: var(--hx-color-secondary-700);
110
+ --hx-color-text-link-active: var(--hx-color-primary-900);
111
+ --hx-color-error-text: var(--hx-color-error-700);
112
+ --hx-color-success-text: var(--hx-color-success-800);
113
113
  --hx-color-surface-default: var(--hx-color-neutral-0);
114
114
  --hx-color-surface-raised: var(--hx-color-neutral-50);
115
115
  --hx-color-surface-sunken: var(--hx-color-neutral-100);
@@ -129,15 +129,15 @@
129
129
  --hx-color-focus-ring: var(--hx-color-primary-600);
130
130
  --hx-color-selection-bg: var(--hx-color-primary-200);
131
131
  --hx-color-selection-color: var(--hx-color-neutral-900);
132
- --hx-color-action-primary-bg: var(--hx-color-primary-600);
132
+ --hx-color-action-primary-bg: var(--hx-color-primary-700);
133
133
  --hx-color-action-primary-bg-inverted-rest: var(--hx-color-primary-500);
134
- --hx-color-action-primary-bg-hover: var(--hx-color-primary-700);
135
- --hx-color-action-primary-bg-active: var(--hx-color-primary-800);
134
+ --hx-color-action-primary-bg-hover: var(--hx-color-primary-800);
135
+ --hx-color-action-primary-bg-active: var(--hx-color-primary-900);
136
136
  --hx-color-action-primary-bg-inverted-hover: var(--hx-color-primary-400);
137
- --hx-color-action-secondary-fg: var(--hx-color-primary-600);
138
- --hx-color-action-secondary-border: var(--hx-color-primary-600);
137
+ --hx-color-action-secondary-fg: var(--hx-color-primary-700);
138
+ --hx-color-action-secondary-border: var(--hx-color-primary-700);
139
139
  --hx-color-action-secondary-bg-hover: var(--hx-color-primary-50);
140
- --hx-color-action-ghost-fg: var(--hx-color-primary-600);
140
+ --hx-color-action-ghost-fg: var(--hx-color-primary-700);
141
141
  --hx-color-action-ghost-bg-hover: var(--hx-color-primary-50);
142
142
  --hx-color-action-danger-bg: var(--hx-color-error-500);
143
143
  --hx-color-action-danger-bg-hover: var(--hx-color-error-600);
@@ -267,8 +267,9 @@
267
267
  --hx-container-xl: 1280px;
268
268
  --hx-container-content: 72rem;
269
269
  --hx-container-narrow: 48rem;
270
+ --hx-icon-stroke-width: 2;
270
271
  --hx-input-height-sm: var(--hx-size-8);
271
- --hx-input-height-md: var(--hx-size-10);
272
+ --hx-input-height-md: var(--hx-size-11);
272
273
  --hx-input-height-lg: var(--hx-size-12);
273
274
  --hx-divider-color: var(--hx-color-border-default);
274
275
  --hx-divider-width: var(--hx-border-width-thin);
@@ -496,6 +497,7 @@
496
497
  --hx-color-focus-ring: #FFFF00;
497
498
  --hx-color-selection-bg: #1AEBFF;
498
499
  --hx-color-selection-color: #000000;
500
+ --hx-color-action-primary-bg-hover: var(--hx-color-primary-600);
499
501
  --hx-color-action-primary-bg-active: var(--hx-color-primary-700);
500
502
  --hx-color-action-danger-bg-active: var(--hx-color-error-500);
501
503
  --hx-body-bg: #000000;
@@ -118,6 +118,18 @@
118
118
  flex-shrink: 0;
119
119
  }
120
120
 
121
+ /*
122
+ * AAA 2.4.13 Focus Appearance — enforce a ≥2px focus ring on slotted
123
+ * natives (e.g. bare <button>, <a>) so consumers who slot non-HELiX
124
+ * controls inherit the same indicator as the HELiX components do.
125
+ * Token-driven: --hx-focus-ring-width resolves to 2px (default).
126
+ */
127
+ ::slotted(:focus-visible) {
128
+ outline: var(--hx-focus-ring-width, 2px) solid
129
+ var(--hx-action-bar-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
130
+ outline-offset: var(--hx-focus-ring-offset, 2px);
131
+ }
132
+
121
133
  /* ─── High Contrast Mode (forced-colors) ─── */
122
134
 
123
135
  @media (forced-colors: active) {
@@ -188,10 +200,13 @@
188
200
  font-size: var(--hx-font-size-sm);
189
201
  }
190
202
 
203
+ /* md — WCAG 2.5.5 AAA Target Size (Enhanced): 44×44 minimum.
204
+ Bound to --hx-touch-target-min so the default md variant clears the
205
+ AAA-strict floor without requiring consumers to opt into sm or lg. */
191
206
  .button--md {
192
207
  padding: var(--hx-space-2);
193
- min-width: var(--hx-size-10);
194
- height: var(--hx-size-10);
208
+ min-width: var(--hx-touch-target-min, 2.75rem);
209
+ min-height: var(--hx-touch-target-min, 2.75rem);
195
210
  font-size: var(--hx-font-size-md);
196
211
  }
197
212
 
@@ -488,6 +503,11 @@
488
503
  transform: rotate(180deg);
489
504
  }
490
505
 
506
+ /* hx-icon glyph sizing for the migrated chevron (12x8 → 12px). */
507
+ .split-button__chevron-glyph {
508
+ --hx-icon-size: 12px;
509
+ }
510
+
491
511
  /* ─── Size Variants ─── */
492
512
 
493
513
  /* sm */
@@ -502,16 +522,22 @@
502
522
  min-height: var(--hx-size-8, 2rem);
503
523
  }
504
524
 
505
- /* md */
525
+ /* md — WCAG 2.5.5 AAA Target Size (Enhanced): 44×44 minimum.
526
+ Bound to --hx-touch-target-min so the default md variant clears the
527
+ AAA-strict floor without requiring consumers to opt into sm or lg. */
506
528
  .split-button--md .split-button__primary {
507
529
  padding: var(--hx-space-2, 0.5rem) var(--hx-space-4, 1rem);
508
530
  font-size: var(--hx-font-size-md, 1rem);
509
- min-height: var(--hx-size-10, 2.5rem);
531
+ min-height: var(--hx-touch-target-min, 2.75rem);
510
532
  }
511
533
 
512
534
  .split-button--md .split-button__trigger {
513
535
  padding: var(--hx-space-2, 0.5rem) var(--hx-space-3, 0.75rem);
514
- min-height: var(--hx-size-10, 2.5rem);
536
+ /* WCAG 2.5.5 (Enhanced) AAA — chevron trigger must clear 44×44 in
537
+ BOTH dimensions. Without min-width, the trigger collapses to its
538
+ icon width (~38 px) and fails the brand-theme matrix audit. */
539
+ min-width: var(--hx-touch-target-min, 2.75rem);
540
+ min-height: var(--hx-touch-target-min, 2.75rem);
515
541
  }
516
542
 
517
543
  /* lg */
@@ -528,21 +554,27 @@
528
554
 
529
555
  /* ─── Variant: primary ─── */
530
556
 
557
+ /* Primary resting — bind through action.primary.bg (resolves to primary-600
558
+ across all 6 brands) coordinated with text.on-primary. Inline fallback
559
+ #0d1825 matches text.on-primary's resolved primitive (neutral-900) so a
560
+ cold-start without semantic tokens paints AA-tuned dark-on-teal (5.20:1)
561
+ rather than white-on-teal (3.43:1 fail). Mirrors hx-button precedent
562
+ (hx-button.styles.ts ~line 88) and Phase C structural fix. */
531
563
  .split-button--primary .split-button__primary,
532
564
  .split-button--primary .split-button__trigger {
533
- --hx-split-button-bg: var(--hx-color-primary-500, #429797);
534
- --hx-split-button-color: var(--hx-color-text-on-primary, #ffffff);
565
+ --hx-split-button-bg: var(--hx-color-action-primary-bg, #429797);
566
+ --hx-split-button-color: var(--hx-color-text-on-primary, #0d1825);
535
567
  --hx-split-button-border-color: transparent;
536
568
  --hx-split-button-divider-color: var(--hx-color-primary-900, #0b3232);
537
569
  }
538
570
 
539
- /* primary:hover — replace the universal brightness(0.9) filter (which would
540
- drop primary-500 + on-primary contrast to ~4.4:1) with an explicit swap
541
- to primary-600 and a neutral-0 foreground. Mirrors hx-button precedent. */
571
+ /* primary:hover — lift to action.primary.bg-hover (primary-700) with
572
+ text.on-primary-strong (neutral-0). Replaces the universal brightness(0.9)
573
+ filter which would degrade contrast on the resting pair. */
542
574
  .split-button--primary .split-button__primary:hover,
543
575
  .split-button--primary .split-button__trigger:hover {
544
- --hx-split-button-bg: var(--hx-color-primary-600, #0f7078);
545
- --hx-split-button-color: var(--hx-color-neutral-0, #ffffff);
576
+ --hx-split-button-bg: var(--hx-color-action-primary-bg-hover, #0f7078);
577
+ --hx-split-button-color: var(--hx-color-text-on-primary-strong, #ffffff);
546
578
  filter: none;
547
579
  }
548
580
 
@@ -116,6 +116,18 @@
116
116
  flex-shrink: 0;
117
117
  }
118
118
 
119
+ /*
120
+ * AAA 2.4.13 Focus Appearance — enforce a ≥2px focus ring on slotted
121
+ * natives (e.g. bare <button>, <a>) so consumers who slot non-HELiX
122
+ * controls inherit the same indicator as the HELiX components do.
123
+ * Token-driven: --hx-focus-ring-width resolves to 2px (default).
124
+ */
125
+ ::slotted(:focus-visible) {
126
+ outline: var(--hx-focus-ring-width, 2px) solid
127
+ var(--hx-action-bar-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
128
+ outline-offset: var(--hx-focus-ring-offset, 2px);
129
+ }
130
+
119
131
  /* ─── High Contrast Mode (forced-colors) ─── */
120
132
 
121
133
  @media (forced-colors: active) {
@@ -82,10 +82,8 @@
82
82
  color: var(--hx-alert-icon-color, var(--hx-color-info-500, #0c8beb));
83
83
  }
84
84
 
85
- .alert__icon svg {
86
- width: var(--hx-space-5, 1.25rem);
87
- height: var(--hx-space-5, 1.25rem);
88
- fill: currentColor;
85
+ .alert__icon .alert__glyph {
86
+ --hx-icon-size: var(--hx-space-5, 1.25rem);
89
87
  }
90
88
 
91
89
  /* ─── Title ─── */
@@ -172,10 +170,8 @@
172
170
  opacity: 1;
173
171
  }
174
172
 
175
- .alert__close-button svg {
176
- width: var(--hx-space-4, 1rem);
177
- height: var(--hx-space-4, 1rem);
178
- fill: currentColor;
173
+ .alert__close-button .alert__glyph {
174
+ --hx-icon-size: var(--hx-space-4, 1rem);
179
175
  }
180
176
 
181
177
  @media (prefers-reduced-motion: reduce) {
@@ -88,8 +88,7 @@
88
88
  /* ─── Fallback Icon ─── */
89
89
 
90
90
  .avatar__fallback-icon {
91
- width: 60%;
92
- height: 60%;
91
+ --hx-icon-size: 60%;
93
92
  color: var(--hx-avatar-color, var(--hx-color-primary-700, #0f6363));
94
93
  }
95
94
 
@@ -239,3 +239,8 @@
239
239
  border-width: 2px;
240
240
  }
241
241
  }
242
+
243
+ /* hx-icon glyph sizing for the migrated remove-button SVG. */
244
+ .badge__remove-glyph {
245
+ --hx-icon-size: 10px;
246
+ }
@@ -59,10 +59,8 @@
59
59
  color: var(--hx-banner-icon-color, var(--hx-color-info-500, #0c8beb));
60
60
  }
61
61
 
62
- .banner__icon svg {
63
- width: var(--hx-space-5, 1.25rem);
64
- height: var(--hx-space-5, 1.25rem);
65
- fill: currentColor;
62
+ .banner__icon .banner__glyph {
63
+ --hx-icon-size: var(--hx-space-5, 1.25rem);
66
64
  }
67
65
 
68
66
  /* ─── Message ─── */
@@ -142,10 +140,8 @@
142
140
  opacity: 1;
143
141
  }
144
142
 
145
- .banner__close-button svg {
146
- width: var(--hx-space-4, 1rem);
147
- height: var(--hx-space-4, 1rem);
148
- fill: currentColor;
143
+ .banner__close-button .banner__glyph {
144
+ --hx-icon-size: var(--hx-space-4, 1rem);
149
145
  }
150
146
 
151
147
  /* ─── Variant: info ─── */
@@ -72,7 +72,10 @@
72
72
  .button--md {
73
73
  padding: var(--hx-space-2, 0.5rem) var(--hx-space-4, 1rem);
74
74
  font-size: var(--hx-font-size-md, 1rem);
75
- min-height: var(--hx-size-10, 2.5rem);
75
+ /* WCAG 2.5.5 AAA Target Size (Enhanced): 44×44 minimum.
76
+ Bound to --hx-touch-target-min so the default md variant clears the
77
+ AAA-strict floor without requiring consumers to opt into sm or lg. */
78
+ min-height: var(--hx-touch-target-min, 2.75rem);
76
79
  }
77
80
 
78
81
  .button--lg {
@@ -71,9 +71,12 @@
71
71
  cursor: not-allowed;
72
72
  }
73
73
 
74
- .nav-btn svg {
75
- width: 1.25em;
76
- height: 1.25em;
74
+ .nav-btn .carousel__nav-glyph {
75
+ --hx-icon-size: 1.25em;
76
+ }
77
+
78
+ .play-pause-btn .carousel__autoplay-glyph {
79
+ --hx-icon-size: 1em;
77
80
  }
78
81
 
79
82
  /* ─── Play/Pause ─── */
@@ -8,6 +8,17 @@
8
8
  cursor: not-allowed;
9
9
  }
10
10
 
11
+ /*
12
+ * AAA 2.4.13 Focus Appearance — host-level focus ring (group is focusable
13
+ * via roving tabindex in Tier-2). Token-driven: --hx-focus-ring-width
14
+ * resolves to ≥2px.
15
+ */
16
+ :host(:focus-visible) {
17
+ outline: var(--hx-focus-ring-width, 2px) solid
18
+ var(--hx-checkbox-group-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
19
+ outline-offset: var(--hx-focus-ring-offset, 2px);
20
+ }
21
+
11
22
  * {
12
23
  box-sizing: border-box;
13
24
  }
@@ -70,6 +70,16 @@
70
70
 
71
71
  /* ─── Focus Ring ─── */
72
72
 
73
+ /*
74
+ * Suppress the browser default ~1px host outline. Without this, the formal
75
+ * AAA audit harness (which measures computed outline-width on the focused
76
+ * host) records a sub-2px outline and reports WCAG 2.4.13 Partially Supports.
77
+ * The visual focus indicator is rendered on the inner .checkbox__box below.
78
+ */
79
+ :host {
80
+ outline: none;
81
+ }
82
+
73
83
  /*
74
84
  * Host-focus path: on the modern (IDL element-references) render branch the
75
85
  * host is the tabbable surface (tabindex=0) and the inner input is demoted
@@ -143,17 +153,12 @@
143
153
  border-color: var(--hx-checkbox-error-color, var(--hx-color-error-500, #e5493e));
144
154
  }
145
155
 
146
- /* ─── Checkmark Icon ─── */
156
+ /* ─── Checkmark Icon (hx-icon library="helix") ─── */
147
157
 
148
158
  .checkbox__icon {
149
159
  display: none;
150
- width: calc(var(--hx-checkbox-size, var(--hx-size-5, 1.25rem)) * 0.65);
151
- height: calc(var(--hx-checkbox-size, var(--hx-size-5, 1.25rem)) * 0.65);
152
- fill: none;
153
- stroke: var(--hx-checkbox-checkmark-color, var(--hx-color-text-on-primary, #ffffff));
154
- stroke-width: 2.5;
155
- stroke-linecap: round;
156
- stroke-linejoin: round;
160
+ --hx-icon-size: calc(var(--hx-checkbox-size, var(--hx-size-5, 1.25rem)) * 0.65);
161
+ --hx-icon-color: var(--hx-checkbox-checkmark-color, var(--hx-color-text-on-primary, #ffffff));
157
162
  }
158
163
 
159
164
  .checkbox--checked .checkbox__icon--check {
@@ -260,7 +265,7 @@
260
265
  }
261
266
 
262
267
  .checkbox__icon {
263
- stroke: HighlightText;
268
+ --hx-icon-color: HighlightText;
264
269
  }
265
270
 
266
271
  .checkbox--error .checkbox__box {
@@ -108,15 +108,12 @@
108
108
  color: var(--hx-clinical-status-icon-color, var(--hx-color-info-500, #0c8beb));
109
109
  }
110
110
 
111
- .clinical-status__icon svg {
112
- width: var(--hx-space-5, 1.25rem);
113
- height: var(--hx-space-5, 1.25rem);
114
- fill: currentColor;
111
+ .clinical-status__glyph {
112
+ --hx-icon-size: var(--hx-space-5, 1.25rem);
115
113
  }
116
114
 
117
- .clinical-status--compact .clinical-status__icon svg {
118
- width: var(--hx-space-4, 1rem);
119
- height: var(--hx-space-4, 1rem);
115
+ .clinical-status--compact .clinical-status__glyph {
116
+ --hx-icon-size: var(--hx-space-4, 1rem);
120
117
  }
121
118
 
122
119
  /* ─── Message ─── */
@@ -44,6 +44,10 @@
44
44
  background: var(--hx-color-neutral-0, #ffffff);
45
45
  cursor: pointer;
46
46
  transition: border-color var(--hx-transition-fast, 150ms ease);
47
+ /* WCAG 2.5.5 AAA Target Size (Enhanced): 44×44 minimum.
48
+ Bound to --hx-touch-target-min so the trigger clears the AAA-strict
49
+ floor at default sizing. */
50
+ min-height: var(--hx-touch-target-min, 2.75rem);
47
51
  }
48
52
  .trigger:hover:not([disabled]) {
49
53
  border-color: var(
@@ -204,13 +208,20 @@
204
208
  }
205
209
  .format-btn {
206
210
  flex-shrink: 0;
211
+ /* WCAG 2.5.5 (Enhanced) AAA — interactive panel controls must clear
212
+ 44×44. Without min-width/min-height the format toggle collapses to
213
+ its label box (~44×24 in default rendering, sub-44 on the y-axis). */
214
+ min-width: var(--hx-touch-target-min, 2.75rem);
215
+ min-height: var(--hx-touch-target-min, 2.75rem);
207
216
  padding: var(--hx-space-1, 0.25rem) var(--hx-space-2, 0.5rem);
208
217
  background: var(--hx-color-neutral-100, #ebeee9);
209
218
  border: var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-300, #b6bfb9);
210
219
  border-radius: var(--hx-border-radius-sm, 0.25rem);
211
220
  cursor: pointer;
212
221
  font-size: var(--hx-font-size-xs, 0.75rem);
213
- color: var(--hx-color-neutral-600, #4a5362);
222
+ /* AAA 1.4.6: 12px label vs neutral-100 must be ≥7:1; neutral-700 = 9.34:1
223
+ (neutral-600 was 6.63:1, a tight AAA miss). */
224
+ color: var(--hx-color-neutral-700, #313e4b);
214
225
  text-transform: uppercase;
215
226
  font-weight: var(--hx-font-weight-semibold, 600);
216
227
  letter-spacing: 0.05em;
@@ -218,6 +229,8 @@
218
229
  .color-input {
219
230
  flex: 1;
220
231
  min-width: 0;
232
+ /* WCAG 2.5.5 (Enhanced) AAA — text input must clear 44×44. */
233
+ min-height: var(--hx-touch-target-min, 2.75rem);
221
234
  padding: var(--hx-space-1, 0.25rem) var(--hx-space-2, 0.5rem);
222
235
  border: var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-300, #b6bfb9);
223
236
  border-radius: var(--hx-border-radius-sm, 0.25rem);
@@ -384,3 +384,11 @@
384
384
  outline-offset: var(--hx-focus-ring-offset, 2px);
385
385
  opacity: 1;
386
386
  }
387
+
388
+ /* hx-icon glyph sizing for migrated inline SVGs (library="helix"). */
389
+ .field__chip-remove-glyph {
390
+ --hx-icon-size: 8px;
391
+ }
392
+ .field__clear-button-glyph {
393
+ --hx-icon-size: 12px;
394
+ }
@@ -55,10 +55,13 @@
55
55
  font-size: var(--hx-font-size-sm);
56
56
  }
57
57
 
58
+ /* md — WCAG 2.5.5 AAA Target Size (Enhanced): 44×44 minimum.
59
+ Bound to --hx-touch-target-min so the default md variant clears the
60
+ AAA-strict floor without requiring consumers to opt into sm or lg. */
58
61
  .button--md {
59
62
  padding: var(--hx-space-2);
60
- min-width: var(--hx-size-10);
61
- height: var(--hx-size-10);
63
+ min-width: var(--hx-touch-target-min, 2.75rem);
64
+ min-height: var(--hx-touch-target-min, 2.75rem);
62
65
  font-size: var(--hx-font-size-md);
63
66
  }
64
67
 
@@ -105,7 +105,8 @@
105
105
  font-size: var(--hx-font-size-md, 1rem);
106
106
  color: var(--hx-date-picker-color, var(--hx-color-text-strong, #202b39));
107
107
  line-height: var(--hx-line-height-normal, 1.5);
108
- min-height: var(--hx-size-10, 2.5rem);
108
+ /* WCAG 2.5.5 (Enhanced) AAA — primary input surface must meet 44×44. */
109
+ min-height: var(--hx-touch-target-min, 2.75rem);
109
110
  width: 100%;
110
111
  cursor: default;
111
112
  }
@@ -126,6 +127,10 @@
126
127
  display: flex;
127
128
  align-items: center;
128
129
  justify-content: center;
130
+ /* WCAG 2.5.5 (Enhanced) AAA — calendar trigger must clear 44×44.
131
+ Without min-width the icon button collapses to ~41 px wide. */
132
+ min-width: var(--hx-touch-target-min, 2.75rem);
133
+ min-height: var(--hx-touch-target-min, 2.75rem);
129
134
  padding: 0 var(--hx-space-3, 0.75rem);
130
135
  border: none;
131
136
  border-left: var(--hx-border-width-thin, 1px) solid
@@ -424,3 +429,8 @@
424
429
  border-color: LinkText;
425
430
  }
426
431
  }
432
+
433
+ /* hx-icon glyph sizing for the migrated calendar trigger SVG. */
434
+ .field__trigger-glyph {
435
+ --hx-icon-size: 16px;
436
+ }
@@ -298,3 +298,8 @@
298
298
  border: 1px solid ButtonText;
299
299
  }
300
300
  }
301
+
302
+ /* hx-icon glyph sizing for the migrated close-button SVG. */
303
+ .drawer-close-button-glyph {
304
+ --hx-icon-size: 16px;
305
+ }
@@ -13,11 +13,29 @@
13
13
  display: inline-block;
14
14
  }
15
15
 
16
+ /*
17
+ * AAA 2.4.13 Focus Appearance — enforce a ≥2px focus ring on the slotted
18
+ * trigger (typically <hx-button>, <button>, or <hx-icon-button>). The host
19
+ * is a popover-container; the interactive surface is the slotted trigger.
20
+ */
21
+ ::slotted([slot='trigger']:focus-visible),
22
+ ::slotted(button:focus-visible),
23
+ ::slotted(a:focus-visible) {
24
+ outline: var(--hx-focus-ring-width, 2px) solid
25
+ var(--hx-dropdown-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
26
+ outline-offset: var(--hx-focus-ring-offset, 2px);
27
+ }
28
+
16
29
  [part='panel'] {
17
30
  position: fixed;
18
31
  z-index: var(--hx-dropdown-panel-z-index, 1000);
19
32
  min-width: var(--hx-dropdown-panel-min-width, 160px);
20
33
  background: var(--hx-dropdown-panel-bg, var(--hx-color-surface-default, #ffffff));
34
+ /* Anchor slotted text color to the design-system primary text token so
35
+ slotted <li>'s and other native consumer markup don't inherit a
36
+ foreign color cascade (e.g. brand toolbar setting body { color: #fff }
37
+ and rendering Edit/Duplicate as white-on-white). */
38
+ color: var(--hx-dropdown-panel-color, var(--hx-color-text-primary, #1a1a1a));
21
39
  border: 1px solid var(--hx-dropdown-panel-border-color, var(--hx-color-border-default, #d6dbd5));
22
40
  border-radius: var(--hx-dropdown-panel-border-radius, var(--hx-border-radius-md, 0.375rem));
23
41
  box-shadow: var(
@@ -179,6 +179,10 @@
179
179
  outline-offset: var(--hx-focus-ring-offset, 2px);
180
180
  }
181
181
 
182
+ .file-item__remove-glyph {
183
+ --hx-icon-size: 14px;
184
+ }
185
+
182
186
  @media (prefers-reduced-motion: reduce) {
183
187
  .file-item__remove {
184
188
  transition: none;
@@ -21,6 +21,11 @@
21
21
  align-items: center;
22
22
  }
23
23
 
24
+ /* Render the migrated hx-icon glyph at 1em (matches the previous inline SVG sizing). */
25
+ .help-text__glyph {
26
+ --hx-icon-size: 1em;
27
+ }
28
+
24
29
  .help-text__text {
25
30
  min-width: 0;
26
31
  }