@helixui/library 1.1.2 → 2.0.0-next.31

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 (691) hide show
  1. package/custom-elements.json +3221 -2224
  2. package/dist/base/helix-element.d.ts +134 -0
  3. package/dist/base/helix-element.d.ts.map +1 -0
  4. package/dist/base/id-counter.d.ts +32 -0
  5. package/dist/base/id-counter.d.ts.map +1 -0
  6. package/dist/base/index.d.ts +4 -0
  7. package/dist/base/index.d.ts.map +1 -0
  8. package/dist/base/styles.d.ts +29 -0
  9. package/dist/base/styles.d.ts.map +1 -0
  10. package/dist/components/hx-accordion/hx-accordion-item.d.ts +3 -0
  11. package/dist/components/hx-accordion/hx-accordion-item.d.ts.map +1 -1
  12. package/dist/components/hx-accordion/hx-accordion.d.ts +4 -1
  13. package/dist/components/hx-accordion/hx-accordion.d.ts.map +1 -1
  14. package/dist/components/hx-accordion/index.js +1 -1
  15. package/dist/components/hx-action-bar/hx-action-bar.d.ts +1 -1
  16. package/dist/components/hx-action-bar/hx-action-bar.d.ts.map +1 -1
  17. package/dist/components/hx-action-bar/index.js +1 -1
  18. package/dist/components/hx-alert/hx-alert.d.ts +10 -5
  19. package/dist/components/hx-alert/hx-alert.d.ts.map +1 -1
  20. package/dist/components/hx-alert/hx-alert.styles.d.ts.map +1 -1
  21. package/dist/components/hx-alert/index.js +1 -1
  22. package/dist/components/hx-avatar/hx-avatar.d.ts.map +1 -1
  23. package/dist/components/hx-avatar/hx-avatar.styles.d.ts.map +1 -1
  24. package/dist/components/hx-avatar/index.js +1 -1
  25. package/dist/components/hx-badge/hx-badge.d.ts.map +1 -1
  26. package/dist/components/hx-badge/hx-badge.styles.d.ts.map +1 -1
  27. package/dist/components/hx-badge/index.js +1 -1
  28. package/dist/components/hx-banner/hx-banner.d.ts +15 -5
  29. package/dist/components/hx-banner/hx-banner.d.ts.map +1 -1
  30. package/dist/components/hx-banner/hx-banner.styles.d.ts.map +1 -1
  31. package/dist/components/hx-banner/index.js +1 -1
  32. package/dist/components/hx-breadcrumb/hx-breadcrumb-item.d.ts +1 -0
  33. package/dist/components/hx-breadcrumb/hx-breadcrumb-item.d.ts.map +1 -1
  34. package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts +42 -11
  35. package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts.map +1 -1
  36. package/dist/components/hx-breadcrumb/index.js +1 -1
  37. package/dist/components/hx-button/hx-button.d.ts +22 -13
  38. package/dist/components/hx-button/hx-button.d.ts.map +1 -1
  39. package/dist/components/hx-button/hx-button.styles.d.ts.map +1 -1
  40. package/dist/components/hx-button/index.js +1 -1
  41. package/dist/components/hx-button-group/hx-button-group.d.ts +3 -6
  42. package/dist/components/hx-button-group/hx-button-group.d.ts.map +1 -1
  43. package/dist/components/hx-button-group/index.js +1 -1
  44. package/dist/components/hx-card/hx-card.d.ts +7 -7
  45. package/dist/components/hx-card/hx-card.d.ts.map +1 -1
  46. package/dist/components/hx-card/index.js +1 -1
  47. package/dist/components/hx-carousel/hx-carousel-item.d.ts.map +1 -1
  48. package/dist/components/hx-carousel/hx-carousel.d.ts +2 -2
  49. package/dist/components/hx-carousel/hx-carousel.d.ts.map +1 -1
  50. package/dist/components/hx-carousel/index.js +1 -1
  51. package/dist/components/hx-checkbox/hx-checkbox.d.ts +18 -18
  52. package/dist/components/hx-checkbox/hx-checkbox.d.ts.map +1 -1
  53. package/dist/components/hx-checkbox/hx-checkbox.styles.d.ts.map +1 -1
  54. package/dist/components/hx-checkbox/index.js +1 -1
  55. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts +8 -3
  56. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts.map +1 -1
  57. package/dist/components/hx-checkbox-group/index.js +1 -1
  58. package/dist/components/hx-clinical-status/hx-clinical-status.d.ts +134 -0
  59. package/dist/components/hx-clinical-status/hx-clinical-status.d.ts.map +1 -0
  60. package/dist/components/hx-clinical-status/hx-clinical-status.styles.d.ts +2 -0
  61. package/dist/components/hx-clinical-status/hx-clinical-status.styles.d.ts.map +1 -0
  62. package/dist/components/hx-clinical-status/index.d.ts +3 -0
  63. package/dist/components/hx-clinical-status/index.d.ts.map +1 -0
  64. package/dist/components/hx-clinical-status/index.js +5 -0
  65. package/dist/components/hx-clinical-status/index.js.map +1 -0
  66. package/dist/components/hx-code-snippet/hx-code-snippet.d.ts.map +1 -1
  67. package/dist/components/hx-code-snippet/hx-code-snippet.styles.d.ts.map +1 -1
  68. package/dist/components/hx-code-snippet/index.js +1 -1
  69. package/dist/components/hx-color-picker/color-utils.d.ts +27 -0
  70. package/dist/components/hx-color-picker/color-utils.d.ts.map +1 -0
  71. package/dist/components/hx-color-picker/hx-color-picker.d.ts +16 -4
  72. package/dist/components/hx-color-picker/hx-color-picker.d.ts.map +1 -1
  73. package/dist/components/hx-color-picker/index.js +1 -1
  74. package/dist/components/hx-combobox/hx-combobox.d.ts +9 -4
  75. package/dist/components/hx-combobox/hx-combobox.d.ts.map +1 -1
  76. package/dist/components/hx-combobox/hx-combobox.styles.d.ts.map +1 -1
  77. package/dist/components/hx-combobox/index.js +1 -1
  78. package/dist/components/hx-container/hx-container.d.ts.map +1 -1
  79. package/dist/components/hx-container/index.js +1 -1
  80. package/dist/components/hx-copy-button/hx-copy-button.d.ts +6 -1
  81. package/dist/components/hx-copy-button/hx-copy-button.d.ts.map +1 -1
  82. package/dist/components/hx-copy-button/index.js +1 -1
  83. package/dist/components/hx-counter/hx-counter.d.ts +20 -3
  84. package/dist/components/hx-counter/hx-counter.d.ts.map +1 -1
  85. package/dist/components/hx-counter/hx-counter.styles.d.ts.map +1 -1
  86. package/dist/components/hx-counter/index.js +1 -1
  87. package/dist/components/hx-data-table/hx-data-table.d.ts +8 -0
  88. package/dist/components/hx-data-table/hx-data-table.d.ts.map +1 -1
  89. package/dist/components/hx-data-table/hx-data-table.styles.d.ts.map +1 -1
  90. package/dist/components/hx-data-table/index.js +1 -1
  91. package/dist/components/hx-date-picker/hx-date-picker.d.ts +40 -3
  92. package/dist/components/hx-date-picker/hx-date-picker.d.ts.map +1 -1
  93. package/dist/components/hx-date-picker/hx-date-picker.styles.d.ts.map +1 -1
  94. package/dist/components/hx-date-picker/index.js +1 -1
  95. package/dist/components/hx-dialog/hx-dialog.d.ts +4 -1
  96. package/dist/components/hx-dialog/hx-dialog.d.ts.map +1 -1
  97. package/dist/components/hx-dialog/index.js +1 -1
  98. package/dist/components/hx-divider/hx-divider.d.ts.map +1 -1
  99. package/dist/components/hx-divider/index.js +1 -1
  100. package/dist/components/hx-drawer/hx-drawer.d.ts +5 -8
  101. package/dist/components/hx-drawer/hx-drawer.d.ts.map +1 -1
  102. package/dist/components/hx-drawer/hx-drawer.styles.d.ts.map +1 -1
  103. package/dist/components/hx-drawer/index.js +1 -1
  104. package/dist/components/hx-dropdown/hx-dropdown.d.ts +14 -1
  105. package/dist/components/hx-dropdown/hx-dropdown.d.ts.map +1 -1
  106. package/dist/components/hx-dropdown/index.js +1 -1
  107. package/dist/components/hx-field/hx-field.d.ts +1 -1
  108. package/dist/components/hx-field/hx-field.d.ts.map +1 -1
  109. package/dist/components/hx-field/index.js +1 -1
  110. package/dist/components/hx-field-label/hx-field-label.d.ts.map +1 -1
  111. package/dist/components/hx-field-label/hx-field-label.styles.d.ts.map +1 -1
  112. package/dist/components/hx-field-label/index.js +1 -1
  113. package/dist/components/hx-file-upload/hx-file-upload.d.ts +8 -9
  114. package/dist/components/hx-file-upload/hx-file-upload.d.ts.map +1 -1
  115. package/dist/components/hx-file-upload/index.js +1 -1
  116. package/dist/components/hx-form/hx-form.d.ts.map +1 -1
  117. package/dist/components/hx-form/index.js +1 -1
  118. package/dist/components/hx-format-date/hx-format-date.d.ts.map +1 -1
  119. package/dist/components/hx-format-date/index.js +1 -1
  120. package/dist/components/hx-grid/hx-grid.d.ts +5 -9
  121. package/dist/components/hx-grid/hx-grid.d.ts.map +1 -1
  122. package/dist/components/hx-grid/index.js +1 -1
  123. package/dist/components/hx-help-text/hx-help-text.d.ts.map +1 -1
  124. package/dist/components/hx-help-text/index.js +1 -1
  125. package/dist/components/hx-icon/hx-icon.d.ts.map +1 -1
  126. package/dist/components/hx-icon/index.js +1 -1
  127. package/dist/components/hx-icon-button/hx-icon-button.d.ts +4 -3
  128. package/dist/components/hx-icon-button/hx-icon-button.d.ts.map +1 -1
  129. package/dist/components/hx-icon-button/index.js +1 -1
  130. package/dist/components/hx-image/hx-image.d.ts.map +1 -1
  131. package/dist/components/hx-image/index.js +1 -1
  132. package/dist/components/hx-link/hx-link.d.ts +1 -1
  133. package/dist/components/hx-link/hx-link.d.ts.map +1 -1
  134. package/dist/components/hx-link/hx-link.styles.d.ts.map +1 -1
  135. package/dist/components/hx-link/index.js +1 -1
  136. package/dist/components/hx-list/hx-list-item.d.ts.map +1 -1
  137. package/dist/components/hx-list/hx-list.d.ts.map +1 -1
  138. package/dist/components/hx-list/index.js +1 -1
  139. package/dist/components/hx-menu/hx-menu-divider.d.ts.map +1 -1
  140. package/dist/components/hx-menu/hx-menu-item.d.ts +5 -0
  141. package/dist/components/hx-menu/hx-menu-item.d.ts.map +1 -1
  142. package/dist/components/hx-menu/hx-menu.d.ts +1 -0
  143. package/dist/components/hx-menu/hx-menu.d.ts.map +1 -1
  144. package/dist/components/hx-menu/hx-menu.styles.d.ts.map +1 -1
  145. package/dist/components/hx-menu/index.js +1 -1
  146. package/dist/components/hx-meter/hx-meter.d.ts +2 -2
  147. package/dist/components/hx-meter/hx-meter.d.ts.map +1 -1
  148. package/dist/components/hx-meter/index.js +1 -1
  149. package/dist/components/hx-nav/hx-nav.d.ts +10 -0
  150. package/dist/components/hx-nav/hx-nav.d.ts.map +1 -1
  151. package/dist/components/hx-nav/index.js +1 -1
  152. package/dist/components/hx-number-input/hx-number-input.d.ts +4 -3
  153. package/dist/components/hx-number-input/hx-number-input.d.ts.map +1 -1
  154. package/dist/components/hx-number-input/index.js +1 -1
  155. package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts +3 -3
  156. package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts.map +1 -1
  157. package/dist/components/hx-overflow-menu/hx-overflow-menu.styles.d.ts.map +1 -1
  158. package/dist/components/hx-overflow-menu/index.js +1 -1
  159. package/dist/components/hx-pagination/hx-pagination.d.ts +8 -0
  160. package/dist/components/hx-pagination/hx-pagination.d.ts.map +1 -1
  161. package/dist/components/hx-pagination/hx-pagination.styles.d.ts.map +1 -1
  162. package/dist/components/hx-pagination/index.js +1 -1
  163. package/dist/components/hx-patient-banner/hx-patient-banner.d.ts +113 -0
  164. package/dist/components/hx-patient-banner/hx-patient-banner.d.ts.map +1 -0
  165. package/dist/components/hx-patient-banner/hx-patient-banner.styles.d.ts +2 -0
  166. package/dist/components/hx-patient-banner/hx-patient-banner.styles.d.ts.map +1 -0
  167. package/dist/components/hx-patient-banner/index.d.ts +3 -0
  168. package/dist/components/hx-patient-banner/index.d.ts.map +1 -0
  169. package/dist/components/hx-patient-banner/index.js +5 -0
  170. package/dist/components/hx-patient-banner/index.js.map +1 -0
  171. package/dist/components/hx-phi-field/hx-phi-field.d.ts +97 -0
  172. package/dist/components/hx-phi-field/hx-phi-field.d.ts.map +1 -0
  173. package/dist/components/hx-phi-field/hx-phi-field.styles.d.ts +2 -0
  174. package/dist/components/hx-phi-field/hx-phi-field.styles.d.ts.map +1 -0
  175. package/dist/components/hx-phi-field/index.d.ts +3 -0
  176. package/dist/components/hx-phi-field/index.d.ts.map +1 -0
  177. package/dist/components/hx-phi-field/index.js +5 -0
  178. package/dist/components/hx-phi-field/index.js.map +1 -0
  179. package/dist/components/hx-popover/hx-popover.d.ts +25 -9
  180. package/dist/components/hx-popover/hx-popover.d.ts.map +1 -1
  181. package/dist/components/hx-popover/index.js +1 -1
  182. package/dist/components/hx-popup/hx-popup.d.ts +5 -8
  183. package/dist/components/hx-popup/hx-popup.d.ts.map +1 -1
  184. package/dist/components/hx-popup/index.js +1 -1
  185. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts +2 -0
  186. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts.map +1 -1
  187. package/dist/components/hx-progress-bar/hx-progress-bar.styles.d.ts.map +1 -1
  188. package/dist/components/hx-progress-bar/index.js +1 -1
  189. package/dist/components/hx-progress-ring/hx-progress-ring.d.ts.map +1 -1
  190. package/dist/components/hx-progress-ring/index.js +1 -1
  191. package/dist/components/hx-prose/hx-prose.d.ts +1 -0
  192. package/dist/components/hx-prose/hx-prose.d.ts.map +1 -1
  193. package/dist/components/hx-radio-group/hx-radio-group.d.ts +3 -7
  194. package/dist/components/hx-radio-group/hx-radio-group.d.ts.map +1 -1
  195. package/dist/components/hx-radio-group/hx-radio.d.ts.map +1 -1
  196. package/dist/components/hx-radio-group/hx-radio.styles.d.ts.map +1 -1
  197. package/dist/components/hx-radio-group/index.js +1 -1
  198. package/dist/components/hx-rating/hx-rating.d.ts +3 -3
  199. package/dist/components/hx-rating/hx-rating.d.ts.map +1 -1
  200. package/dist/components/hx-rating/hx-rating.styles.d.ts.map +1 -1
  201. package/dist/components/hx-rating/index.js +1 -1
  202. package/dist/components/hx-select/hx-select.d.ts +17 -11
  203. package/dist/components/hx-select/hx-select.d.ts.map +1 -1
  204. package/dist/components/hx-select/hx-select.styles.d.ts.map +1 -1
  205. package/dist/components/hx-select/index.js +1 -1
  206. package/dist/components/hx-side-nav/hx-nav-item.d.ts +12 -0
  207. package/dist/components/hx-side-nav/hx-nav-item.d.ts.map +1 -1
  208. package/dist/components/hx-side-nav/hx-nav-item.styles.d.ts.map +1 -1
  209. package/dist/components/hx-side-nav/hx-side-nav.d.ts.map +1 -1
  210. package/dist/components/hx-side-nav/hx-side-nav.styles.d.ts.map +1 -1
  211. package/dist/components/hx-side-nav/index.js +1 -1
  212. package/dist/components/hx-skeleton/hx-skeleton.d.ts +2 -2
  213. package/dist/components/hx-skeleton/hx-skeleton.d.ts.map +1 -1
  214. package/dist/components/hx-skeleton/index.js +1 -1
  215. package/dist/components/hx-slider/hx-slider.d.ts +5 -8
  216. package/dist/components/hx-slider/hx-slider.d.ts.map +1 -1
  217. package/dist/components/hx-slider/hx-slider.styles.d.ts.map +1 -1
  218. package/dist/components/hx-slider/index.js +1 -1
  219. package/dist/components/hx-spinner/hx-spinner.d.ts +14 -1
  220. package/dist/components/hx-spinner/hx-spinner.d.ts.map +1 -1
  221. package/dist/components/hx-spinner/hx-spinner.styles.d.ts.map +1 -1
  222. package/dist/components/hx-spinner/index.js +1 -1
  223. package/dist/components/hx-split-button/hx-split-button.d.ts +10 -4
  224. package/dist/components/hx-split-button/hx-split-button.d.ts.map +1 -1
  225. package/dist/components/hx-split-button/hx-split-button.styles.d.ts.map +1 -1
  226. package/dist/components/hx-split-button/index.js +1 -1
  227. package/dist/components/hx-split-panel/hx-split-panel.d.ts.map +1 -1
  228. package/dist/components/hx-split-panel/hx-split-panel.styles.d.ts.map +1 -1
  229. package/dist/components/hx-split-panel/index.js +1 -1
  230. package/dist/components/hx-stack/hx-stack.d.ts.map +1 -1
  231. package/dist/components/hx-stack/index.js +1 -1
  232. package/dist/components/hx-stat/hx-stat.d.ts +7 -2
  233. package/dist/components/hx-stat/hx-stat.d.ts.map +1 -1
  234. package/dist/components/hx-stat/index.js +1 -1
  235. package/dist/components/hx-status-indicator/hx-status-indicator.d.ts +19 -3
  236. package/dist/components/hx-status-indicator/hx-status-indicator.d.ts.map +1 -1
  237. package/dist/components/hx-status-indicator/hx-status-indicator.styles.d.ts.map +1 -1
  238. package/dist/components/hx-status-indicator/index.js +1 -1
  239. package/dist/components/hx-steps/hx-step.d.ts +7 -0
  240. package/dist/components/hx-steps/hx-step.d.ts.map +1 -1
  241. package/dist/components/hx-steps/hx-step.styles.d.ts.map +1 -1
  242. package/dist/components/hx-steps/hx-steps.d.ts.map +1 -1
  243. package/dist/components/hx-steps/index.js +1 -1
  244. package/dist/components/hx-structured-list/hx-structured-list.d.ts +10 -3
  245. package/dist/components/hx-structured-list/hx-structured-list.d.ts.map +1 -1
  246. package/dist/components/hx-structured-list/index.js +1 -1
  247. package/dist/components/hx-style-scope/hx-style-scope.d.ts +71 -0
  248. package/dist/components/hx-style-scope/hx-style-scope.d.ts.map +1 -0
  249. package/dist/components/hx-style-scope/hx-style-scope.styles.d.ts +10 -0
  250. package/dist/components/hx-style-scope/hx-style-scope.styles.d.ts.map +1 -0
  251. package/dist/components/hx-style-scope/index.d.ts +2 -0
  252. package/dist/components/hx-style-scope/index.d.ts.map +1 -0
  253. package/dist/components/hx-style-scope/index.js +5 -0
  254. package/dist/components/hx-style-scope/index.js.map +1 -0
  255. package/dist/components/hx-switch/hx-switch.d.ts +4 -4
  256. package/dist/components/hx-switch/hx-switch.d.ts.map +1 -1
  257. package/dist/components/hx-switch/hx-switch.styles.d.ts.map +1 -1
  258. package/dist/components/hx-switch/index.js +1 -1
  259. package/dist/components/hx-table/hx-table.d.ts +1 -0
  260. package/dist/components/hx-table/hx-table.d.ts.map +1 -1
  261. package/dist/components/hx-table/hx-tbody.d.ts.map +1 -1
  262. package/dist/components/hx-table/hx-td.d.ts.map +1 -1
  263. package/dist/components/hx-table/hx-tfoot.d.ts.map +1 -1
  264. package/dist/components/hx-table/hx-th.d.ts.map +1 -1
  265. package/dist/components/hx-table/hx-thead.d.ts.map +1 -1
  266. package/dist/components/hx-table/hx-tr.d.ts.map +1 -1
  267. package/dist/components/hx-table/index.js +1 -1
  268. package/dist/components/hx-tabs/hx-tab-panel.d.ts.map +1 -1
  269. package/dist/components/hx-tabs/hx-tab-panel.styles.d.ts.map +1 -1
  270. package/dist/components/hx-tabs/hx-tab.d.ts +1 -0
  271. package/dist/components/hx-tabs/hx-tab.d.ts.map +1 -1
  272. package/dist/components/hx-tabs/hx-tab.styles.d.ts.map +1 -1
  273. package/dist/components/hx-tabs/hx-tabs.d.ts +12 -2
  274. package/dist/components/hx-tabs/hx-tabs.d.ts.map +1 -1
  275. package/dist/components/hx-tabs/index.js +1 -1
  276. package/dist/components/hx-tag/hx-tag.d.ts.map +1 -1
  277. package/dist/components/hx-tag/hx-tag.styles.d.ts.map +1 -1
  278. package/dist/components/hx-tag/index.js +1 -1
  279. package/dist/components/hx-text/hx-text.d.ts.map +1 -1
  280. package/dist/components/hx-text/index.js +1 -1
  281. package/dist/components/hx-text-input/hx-text-input.d.ts +16 -15
  282. package/dist/components/hx-text-input/hx-text-input.d.ts.map +1 -1
  283. package/dist/components/hx-text-input/hx-text-input.styles.d.ts.map +1 -1
  284. package/dist/components/hx-text-input/index.js +1 -1
  285. package/dist/components/hx-textarea/hx-textarea.d.ts +4 -4
  286. package/dist/components/hx-textarea/hx-textarea.d.ts.map +1 -1
  287. package/dist/components/hx-textarea/hx-textarea.styles.d.ts.map +1 -1
  288. package/dist/components/hx-textarea/index.js +1 -1
  289. package/dist/components/hx-theme/hx-theme.d.ts +82 -3
  290. package/dist/components/hx-theme/hx-theme.d.ts.map +1 -1
  291. package/dist/components/hx-theme/index.js +1 -1
  292. package/dist/components/hx-time-picker/hx-time-picker.d.ts +6 -1
  293. package/dist/components/hx-time-picker/hx-time-picker.d.ts.map +1 -1
  294. package/dist/components/hx-time-picker/index.js +1 -1
  295. package/dist/components/hx-toast/hx-toast-stack.d.ts +1 -1
  296. package/dist/components/hx-toast/hx-toast-stack.d.ts.map +1 -1
  297. package/dist/components/hx-toast/hx-toast.d.ts +9 -5
  298. package/dist/components/hx-toast/hx-toast.d.ts.map +1 -1
  299. package/dist/components/hx-toast/hx-toast.styles.d.ts.map +1 -1
  300. package/dist/components/hx-toast/index.js +1 -1
  301. package/dist/components/hx-toast/toast-factory.d.ts.map +1 -1
  302. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts +4 -3
  303. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts.map +1 -1
  304. package/dist/components/hx-toggle-button/hx-toggle-button.styles.d.ts.map +1 -1
  305. package/dist/components/hx-toggle-button/index.js +1 -1
  306. package/dist/components/hx-tooltip/hx-tooltip.d.ts +1 -2
  307. package/dist/components/hx-tooltip/hx-tooltip.d.ts.map +1 -1
  308. package/dist/components/hx-tooltip/index.js +1 -1
  309. package/dist/components/hx-top-nav/hx-top-nav.d.ts.map +1 -1
  310. package/dist/components/hx-top-nav/index.js +1 -1
  311. package/dist/components/hx-tree-view/hx-tree-item.d.ts +12 -0
  312. package/dist/components/hx-tree-view/hx-tree-item.d.ts.map +1 -1
  313. package/dist/components/hx-tree-view/hx-tree-view.d.ts +27 -2
  314. package/dist/components/hx-tree-view/hx-tree-view.d.ts.map +1 -1
  315. package/dist/components/hx-tree-view/hx-tree-view.styles.d.ts.map +1 -1
  316. package/dist/components/hx-tree-view/index.js +1 -1
  317. package/dist/components/hx-visually-hidden/hx-visually-hidden.d.ts.map +1 -1
  318. package/dist/components/hx-visually-hidden/index.js +1 -1
  319. package/dist/controllers/helix-audit-controller.d.ts +71 -0
  320. package/dist/controllers/helix-audit-controller.d.ts.map +1 -0
  321. package/dist/css/helix-all.css +9743 -0
  322. package/dist/css/helix-core.css +1839 -0
  323. package/dist/css/helix-data.css +639 -0
  324. package/dist/css/helix-feedback.css +1268 -0
  325. package/dist/css/helix-forms.css +2525 -0
  326. package/dist/css/helix-layout.css +380 -0
  327. package/dist/css/helix-media.css +213 -0
  328. package/dist/css/helix-navigation.css +1131 -0
  329. package/dist/css/helix-overlay.css +643 -0
  330. package/dist/css/helix-tokens.css +432 -0
  331. package/dist/css/helix-utility.css +633 -0
  332. package/dist/css/hx-accordion.css +10 -0
  333. package/dist/css/hx-action-bar.css +117 -0
  334. package/dist/css/hx-alert.css +213 -0
  335. package/dist/css/hx-avatar.css +134 -0
  336. package/dist/css/hx-badge.css +178 -0
  337. package/dist/css/hx-banner.css +203 -0
  338. package/dist/css/hx-breadcrumb.css +36 -0
  339. package/dist/css/hx-button-group.css +91 -0
  340. package/dist/css/hx-button.css +296 -0
  341. package/dist/css/hx-card.css +161 -0
  342. package/dist/css/hx-carousel.css +211 -0
  343. package/dist/css/hx-checkbox-group.css +77 -0
  344. package/dist/css/hx-checkbox.css +219 -0
  345. package/dist/css/hx-clinical-status.css +248 -0
  346. package/dist/css/hx-code-snippet.css +179 -0
  347. package/dist/css/hx-color-picker.css +2 -0
  348. package/dist/css/hx-combobox.css +2 -0
  349. package/dist/css/hx-container.css +82 -0
  350. package/dist/css/hx-copy-button.css +121 -0
  351. package/dist/css/hx-counter.css +51 -0
  352. package/dist/css/hx-data-table.css +207 -0
  353. package/dist/css/hx-date-picker.css +2 -0
  354. package/dist/css/hx-dialog.css +190 -0
  355. package/dist/css/hx-divider.css +87 -0
  356. package/dist/css/hx-drawer.css +262 -0
  357. package/dist/css/hx-dropdown.css +46 -0
  358. package/dist/css/hx-field-label.css +38 -0
  359. package/dist/css/hx-field.css +119 -0
  360. package/dist/css/hx-file-upload.css +241 -0
  361. package/dist/css/hx-form.css +2 -0
  362. package/dist/css/hx-format-date.css +10 -0
  363. package/dist/css/hx-grid.css +14 -0
  364. package/dist/css/hx-help-text.css +50 -0
  365. package/dist/css/hx-icon-button.css +152 -0
  366. package/dist/css/hx-icon.css +73 -0
  367. package/dist/css/hx-image.css +41 -0
  368. package/dist/css/hx-link.css +105 -0
  369. package/dist/css/hx-list.css +48 -0
  370. package/dist/css/hx-menu.css +23 -0
  371. package/dist/css/hx-meter.css +113 -0
  372. package/dist/css/hx-nav.css +242 -0
  373. package/dist/css/hx-number-input.css +246 -0
  374. package/dist/css/hx-overflow-menu.css +133 -0
  375. package/dist/css/hx-pagination.css +193 -0
  376. package/dist/css/hx-patient-banner.css +139 -0
  377. package/dist/css/hx-phi-field.css +97 -0
  378. package/dist/css/hx-popover.css +61 -0
  379. package/dist/css/hx-popup.css +31 -0
  380. package/dist/css/hx-progress-bar.css +133 -0
  381. package/dist/css/hx-progress-ring.css +142 -0
  382. package/dist/css/hx-prose.css +2 -0
  383. package/dist/css/hx-radio-group.css +77 -0
  384. package/dist/css/hx-rating.css +96 -0
  385. package/dist/css/hx-select.css +295 -0
  386. package/dist/css/hx-side-nav.css +149 -0
  387. package/dist/css/hx-skeleton.css +82 -0
  388. package/dist/css/hx-slider.css +287 -0
  389. package/dist/css/hx-spinner.css +116 -0
  390. package/dist/css/hx-split-button.css +309 -0
  391. package/dist/css/hx-split-panel.css +168 -0
  392. package/dist/css/hx-stack.css +104 -0
  393. package/dist/css/hx-stat.css +106 -0
  394. package/dist/css/hx-status-indicator.css +126 -0
  395. package/dist/css/hx-steps.css +52 -0
  396. package/dist/css/hx-structured-list.css +75 -0
  397. package/dist/css/hx-style-scope.css +4 -0
  398. package/dist/css/hx-switch.css +169 -0
  399. package/dist/css/hx-table.css +128 -0
  400. package/dist/css/hx-tabs.css +76 -0
  401. package/dist/css/hx-tag.css +146 -0
  402. package/dist/css/hx-text-input.css +214 -0
  403. package/dist/css/hx-text.css +149 -0
  404. package/dist/css/hx-textarea.css +180 -0
  405. package/dist/css/hx-theme.css +23 -0
  406. package/dist/css/hx-time-picker.css +2 -0
  407. package/dist/css/hx-toast.css +230 -0
  408. package/dist/css/hx-toggle-button.css +207 -0
  409. package/dist/css/hx-tooltip.css +51 -0
  410. package/dist/css/hx-top-nav.css +203 -0
  411. package/dist/css/hx-tree-view.css +22 -0
  412. package/dist/css/hx-visually-hidden.css +26 -0
  413. package/dist/css/index.css +84 -0
  414. package/dist/css/manifest.json +2704 -0
  415. package/dist/index.d.ts +15 -9
  416. package/dist/index.d.ts.map +1 -1
  417. package/dist/index.js +268 -176
  418. package/dist/index.js.map +1 -1
  419. package/dist/mixins/FocusMixin.d.ts +49 -0
  420. package/dist/mixins/FocusMixin.d.ts.map +1 -0
  421. package/dist/mixins/FormMixin.d.ts +69 -0
  422. package/dist/mixins/FormMixin.d.ts.map +1 -0
  423. package/dist/mixins/aria-delegation.d.ts +97 -0
  424. package/dist/mixins/aria-delegation.d.ts.map +1 -0
  425. package/dist/mixins/index.d.ts +5 -0
  426. package/dist/mixins/index.d.ts.map +1 -0
  427. package/dist/shared/FormMixin-Bjvw20G5.js +88 -0
  428. package/dist/shared/FormMixin-Bjvw20G5.js.map +1 -0
  429. package/dist/shared/aria-delegation-CBP9eQ0M.js +107 -0
  430. package/dist/shared/aria-delegation-CBP9eQ0M.js.map +1 -0
  431. package/dist/shared/document-token-adoption-DuYNKd4k.js +21 -0
  432. package/dist/shared/document-token-adoption-DuYNKd4k.js.map +1 -0
  433. package/dist/shared/{hx-accordion-D1kFhdeQ.js → hx-accordion-CpfO0YQo.js} +86 -58
  434. package/dist/shared/hx-accordion-CpfO0YQo.js.map +1 -0
  435. package/dist/shared/{hx-action-bar-D4bulGQP.js → hx-action-bar-BpY1Z1UV.js} +34 -35
  436. package/dist/shared/hx-action-bar-BpY1Z1UV.js.map +1 -0
  437. package/dist/shared/{hx-alert-CSxCF2rr.js → hx-alert-CHOjTBds.js} +38 -34
  438. package/dist/shared/hx-alert-CHOjTBds.js.map +1 -0
  439. package/dist/shared/{hx-avatar-Cun-O99h.js → hx-avatar-an-WsuLl.js} +32 -15
  440. package/dist/shared/hx-avatar-an-WsuLl.js.map +1 -0
  441. package/dist/shared/{hx-badge-CsFd2xtw.js → hx-badge-DDXTLoWi.js} +49 -40
  442. package/dist/shared/hx-badge-DDXTLoWi.js.map +1 -0
  443. package/dist/shared/{hx-banner-BTV-X2xF.js → hx-banner-B-WEDiq7.js} +95 -60
  444. package/dist/shared/hx-banner-B-WEDiq7.js.map +1 -0
  445. package/dist/shared/{hx-breadcrumb-item-4IwaLgaO.js → hx-breadcrumb-item-DzLyeL5Z.js} +92 -89
  446. package/dist/shared/hx-breadcrumb-item-DzLyeL5Z.js.map +1 -0
  447. package/dist/shared/{hx-button-7k-KeCYU.js → hx-button-DoN8jjQT.js} +128 -63
  448. package/dist/shared/hx-button-DoN8jjQT.js.map +1 -0
  449. package/dist/shared/{hx-button-group-CWjWv-wS.js → hx-button-group-BXlMQTt_.js} +9 -9
  450. package/dist/shared/hx-button-group-BXlMQTt_.js.map +1 -0
  451. package/dist/shared/{hx-card-0hT3G5hi.js → hx-card-BgXZXDuc.js} +34 -34
  452. package/dist/shared/hx-card-BgXZXDuc.js.map +1 -0
  453. package/dist/shared/{hx-carousel-item-DgeYyYZJ.js → hx-carousel-item-Dwt9Pphz.js} +25 -25
  454. package/dist/shared/hx-carousel-item-Dwt9Pphz.js.map +1 -0
  455. package/dist/shared/{hx-checkbox-BvjO-O41.js → hx-checkbox-CTEZ9IFq.js} +67 -70
  456. package/dist/shared/hx-checkbox-CTEZ9IFq.js.map +1 -0
  457. package/dist/shared/{hx-checkbox-group-Z5VvWzcj.js → hx-checkbox-group-DThZeN5d.js} +48 -42
  458. package/dist/shared/hx-checkbox-group-DThZeN5d.js.map +1 -0
  459. package/dist/shared/hx-clinical-status-m4soOOwg.js +469 -0
  460. package/dist/shared/hx-clinical-status-m4soOOwg.js.map +1 -0
  461. package/dist/shared/{hx-code-snippet-DqzPkH4K.js → hx-code-snippet-CoLYvX1Z.js} +57 -48
  462. package/dist/shared/hx-code-snippet-CoLYvX1Z.js.map +1 -0
  463. package/dist/shared/{hx-color-picker-Da8z6AlQ.js → hx-color-picker-DhOaNe6-.js} +153 -137
  464. package/dist/shared/hx-color-picker-DhOaNe6-.js.map +1 -0
  465. package/dist/shared/{hx-combobox-CivfelTS.js → hx-combobox-BJ4lQocO.js} +17 -17
  466. package/dist/shared/hx-combobox-BJ4lQocO.js.map +1 -0
  467. package/dist/shared/{hx-container-DLUKnTi9.js → hx-container-31QT9KV_.js} +15 -15
  468. package/dist/shared/hx-container-31QT9KV_.js.map +1 -0
  469. package/dist/shared/{hx-copy-button--0dymSvw.js → hx-copy-button-BoM0WsMd.js} +52 -45
  470. package/dist/shared/hx-copy-button-BoM0WsMd.js.map +1 -0
  471. package/dist/shared/hx-counter-CP42cSVK.js +185 -0
  472. package/dist/shared/hx-counter-CP42cSVK.js.map +1 -0
  473. package/dist/shared/{hx-data-table-BWvd5NNx.js → hx-data-table-D5Ne-goy.js} +89 -53
  474. package/dist/shared/hx-data-table-D5Ne-goy.js.map +1 -0
  475. package/dist/shared/{hx-date-picker-6voxxxNE.js → hx-date-picker-Cd3I3WkX.js} +105 -92
  476. package/dist/shared/hx-date-picker-Cd3I3WkX.js.map +1 -0
  477. package/dist/shared/{hx-dialog-DkUSnVgw.js → hx-dialog-D4ubstxx.js} +98 -89
  478. package/dist/shared/hx-dialog-D4ubstxx.js.map +1 -0
  479. package/dist/shared/{hx-divider-DNNs4e8q.js → hx-divider-BBtOLHRP.js} +15 -15
  480. package/dist/shared/hx-divider-BBtOLHRP.js.map +1 -0
  481. package/dist/shared/{hx-drawer-CJcRZcns.js → hx-drawer--WDLuWtS.js} +87 -47
  482. package/dist/shared/hx-drawer--WDLuWtS.js.map +1 -0
  483. package/dist/shared/{hx-dropdown-Bo0KTM1A.js → hx-dropdown-n5-XSmiV.js} +56 -41
  484. package/dist/shared/hx-dropdown-n5-XSmiV.js.map +1 -0
  485. package/dist/shared/{hx-field-3MmzJ4kZ.js → hx-field-CwT9tki1.js} +21 -21
  486. package/dist/shared/hx-field-CwT9tki1.js.map +1 -0
  487. package/dist/shared/{hx-field-label-Bg-EWvqF.js → hx-field-label-CcOK9VU3.js} +11 -14
  488. package/dist/shared/hx-field-label-CcOK9VU3.js.map +1 -0
  489. package/dist/shared/{hx-file-upload-ByjAgfNy.js → hx-file-upload-Dwtu3WcB.js} +79 -88
  490. package/dist/shared/hx-file-upload-Dwtu3WcB.js.map +1 -0
  491. package/dist/shared/{hx-form-BpS6v3Iu.js → hx-form-fJE-FJQV.js} +36 -32
  492. package/dist/shared/{hx-form-BpS6v3Iu.js.map → hx-form-fJE-FJQV.js.map} +1 -1
  493. package/dist/shared/{hx-format-date-BdnWV2kX.js → hx-format-date-B7L9odbA.js} +19 -17
  494. package/dist/shared/hx-format-date-B7L9odbA.js.map +1 -0
  495. package/dist/shared/{hx-grid-gEjuF0cR.js → hx-grid-BIAR5h9m.js} +12 -12
  496. package/dist/shared/hx-grid-BIAR5h9m.js.map +1 -0
  497. package/dist/shared/{hx-help-text-BAcEGRUE.js → hx-help-text-Bmb80bP4.js} +13 -13
  498. package/dist/shared/hx-help-text-Bmb80bP4.js.map +1 -0
  499. package/dist/shared/{hx-icon-CP6OnLoM.js → hx-icon-BKHs3OLu.js} +15 -15
  500. package/dist/shared/hx-icon-BKHs3OLu.js.map +1 -0
  501. package/dist/shared/{hx-icon-button-DzH_bRtC.js → hx-icon-button-CJuy9xbw.js} +10 -10
  502. package/dist/shared/hx-icon-button-CJuy9xbw.js.map +1 -0
  503. package/dist/shared/{hx-image-C6pGiI6c.js → hx-image-ztiXumZB.js} +21 -21
  504. package/dist/shared/hx-image-ztiXumZB.js.map +1 -0
  505. package/dist/shared/{hx-link-Tmk_YPvW.js → hx-link-IVsXmsKx.js} +27 -25
  506. package/dist/shared/hx-link-IVsXmsKx.js.map +1 -0
  507. package/dist/shared/{hx-list-DwInEX2H.js → hx-list-CoTDMp19.js} +12 -12
  508. package/dist/shared/hx-list-CoTDMp19.js.map +1 -0
  509. package/dist/shared/{hx-menu-divider-DR4G_rqw.js → hx-menu-divider-DRT8yHRZ.js} +50 -30
  510. package/dist/shared/hx-menu-divider-DRT8yHRZ.js.map +1 -0
  511. package/dist/shared/{hx-meter-uXkTZq-W.js → hx-meter-BvSJoqDp.js} +18 -18
  512. package/dist/shared/hx-meter-BvSJoqDp.js.map +1 -0
  513. package/dist/shared/{hx-nav-item-D3EJatzc.js → hx-nav-item-CJN4VDrf.js} +181 -115
  514. package/dist/shared/hx-nav-item-CJN4VDrf.js.map +1 -0
  515. package/dist/shared/{hx-nav-3JsN2Oak.js → hx-nav-l0Rp7WPW.js} +119 -107
  516. package/dist/shared/hx-nav-l0Rp7WPW.js.map +1 -0
  517. package/dist/shared/{hx-number-input-CIpL2BEh.js → hx-number-input-0Waw7Z7u.js} +42 -41
  518. package/dist/shared/hx-number-input-0Waw7Z7u.js.map +1 -0
  519. package/dist/shared/{hx-overflow-menu-2kgOJ_ht.js → hx-overflow-menu-DElwFSCd.js} +20 -16
  520. package/dist/shared/hx-overflow-menu-DElwFSCd.js.map +1 -0
  521. package/dist/shared/{hx-pagination-Blt-fFqV.js → hx-pagination-BNtx-LG6.js} +91 -75
  522. package/dist/shared/hx-pagination-BNtx-LG6.js.map +1 -0
  523. package/dist/shared/hx-patient-banner-BKiN7nIE.js +297 -0
  524. package/dist/shared/hx-patient-banner-BKiN7nIE.js.map +1 -0
  525. package/dist/shared/hx-phi-field-BiJH3V-k.js +295 -0
  526. package/dist/shared/hx-phi-field-BiJH3V-k.js.map +1 -0
  527. package/dist/shared/{hx-popover-DxE67miP.js → hx-popover-D63RXn5H.js} +96 -69
  528. package/dist/shared/hx-popover-D63RXn5H.js.map +1 -0
  529. package/dist/shared/{hx-popup-Dg6n_PbY.js → hx-popup-BQWMhvMO.js} +15 -15
  530. package/dist/shared/hx-popup-BQWMhvMO.js.map +1 -0
  531. package/dist/shared/{hx-progress-bar-Dm_EHyng.js → hx-progress-bar-Cm0VihTN.js} +44 -42
  532. package/dist/shared/hx-progress-bar-Cm0VihTN.js.map +1 -0
  533. package/dist/shared/{hx-progress-ring-DpxBDD5d.js → hx-progress-ring-BJeiDr3q.js} +8 -8
  534. package/dist/shared/hx-progress-ring-BJeiDr3q.js.map +1 -0
  535. package/dist/shared/hx-prose-Ml_L2zje.js.map +1 -1
  536. package/dist/shared/{hx-radio-BywgVSEu.js → hx-radio-f8c5ggHG.js} +40 -39
  537. package/dist/shared/hx-radio-f8c5ggHG.js.map +1 -0
  538. package/dist/shared/{hx-rating-CUWBQ0fZ.js → hx-rating-qRJZXskm.js} +92 -96
  539. package/dist/shared/hx-rating-qRJZXskm.js.map +1 -0
  540. package/dist/shared/{hx-select-BwDwxk-M.js → hx-select-B5wq9Swh.js} +137 -98
  541. package/dist/shared/hx-select-B5wq9Swh.js.map +1 -0
  542. package/dist/shared/{hx-skeleton-BHvALyd7.js → hx-skeleton-e5K9Qaxq.js} +6 -6
  543. package/dist/shared/hx-skeleton-e5K9Qaxq.js.map +1 -0
  544. package/dist/shared/{hx-slider-D_0EKJyk.js → hx-slider-BvXtvxmN.js} +31 -26
  545. package/dist/shared/hx-slider-BvXtvxmN.js.map +1 -0
  546. package/dist/shared/{hx-spinner-DMn4SChS.js → hx-spinner-Dyese1Tb.js} +15 -14
  547. package/dist/shared/hx-spinner-Dyese1Tb.js.map +1 -0
  548. package/dist/shared/{hx-split-button-CypgLXw1.js → hx-split-button-CPndTJlC.js} +44 -35
  549. package/dist/shared/hx-split-button-CPndTJlC.js.map +1 -0
  550. package/dist/shared/{hx-split-panel-CV_Kr4EK.js → hx-split-panel-Dx72NaET.js} +18 -15
  551. package/dist/shared/hx-split-panel-Dx72NaET.js.map +1 -0
  552. package/dist/shared/{hx-stack-BStY1RmV.js → hx-stack-B76_1O6g.js} +9 -9
  553. package/dist/shared/hx-stack-B76_1O6g.js.map +1 -0
  554. package/dist/shared/{hx-stat-CHntLHJM.js → hx-stat-DKD2E7An.js} +43 -35
  555. package/dist/shared/hx-stat-DKD2E7An.js.map +1 -0
  556. package/dist/shared/{hx-status-indicator-C1BwEvUw.js → hx-status-indicator-ClWpK6zz.js} +81 -40
  557. package/dist/shared/hx-status-indicator-ClWpK6zz.js.map +1 -0
  558. package/dist/shared/{hx-step-BIVWSPxd.js → hx-step-C2Jk4mHa.js} +48 -84
  559. package/dist/shared/hx-step-C2Jk4mHa.js.map +1 -0
  560. package/dist/shared/{hx-structured-list-CMWllxGg.js → hx-structured-list-DKlrv7kS.js} +25 -22
  561. package/dist/shared/hx-structured-list-DKlrv7kS.js.map +1 -0
  562. package/dist/shared/hx-style-scope-CsQ2Phf_.js +126 -0
  563. package/dist/shared/hx-style-scope-CsQ2Phf_.js.map +1 -0
  564. package/dist/shared/{hx-switch-BgX8kuWt.js → hx-switch-BzMN37PV.js} +14 -11
  565. package/dist/shared/hx-switch-BzMN37PV.js.map +1 -0
  566. package/dist/shared/{hx-tab-panel-DhOq67jj.js → hx-tab-panel-J58zOSjq.js} +165 -126
  567. package/dist/shared/hx-tab-panel-J58zOSjq.js.map +1 -0
  568. package/dist/shared/{hx-tag-CzOTDcXI.js → hx-tag-F0ZcYj9b.js} +20 -19
  569. package/dist/shared/hx-tag-F0ZcYj9b.js.map +1 -0
  570. package/dist/shared/{hx-td-h6oeW6YC.js → hx-td-CNCvzBwY.js} +49 -46
  571. package/dist/shared/hx-td-CNCvzBwY.js.map +1 -0
  572. package/dist/shared/{hx-text-DTXjiviE.js → hx-text-DcWBqZwx.js} +27 -27
  573. package/dist/shared/hx-text-DcWBqZwx.js.map +1 -0
  574. package/dist/shared/hx-text-input-Scyeefec.js +576 -0
  575. package/dist/shared/hx-text-input-Scyeefec.js.map +1 -0
  576. package/dist/shared/{hx-textarea-BgX7rxyo.js → hx-textarea-BfSJJtA1.js} +23 -23
  577. package/dist/shared/hx-textarea-BfSJJtA1.js.map +1 -0
  578. package/dist/shared/hx-theme-pc1V7dyL.js +300 -0
  579. package/dist/shared/hx-theme-pc1V7dyL.js.map +1 -0
  580. package/dist/shared/{hx-time-picker-DmLu7WUC.js → hx-time-picker-CZvmihHD.js} +89 -88
  581. package/dist/shared/hx-time-picker-CZvmihHD.js.map +1 -0
  582. package/dist/shared/{hx-toggle-button-D1jpDvSA.js → hx-toggle-button-BZUQUULm.js} +14 -11
  583. package/dist/shared/hx-toggle-button-BZUQUULm.js.map +1 -0
  584. package/dist/shared/{hx-tooltip-kh7QFPKu.js → hx-tooltip-Ny4i1Idj.js} +26 -21
  585. package/dist/shared/hx-tooltip-Ny4i1Idj.js.map +1 -0
  586. package/dist/shared/{hx-top-nav-DYlnzDaU.js → hx-top-nav-CC4FW2Hp.js} +7 -7
  587. package/dist/shared/hx-top-nav-CC4FW2Hp.js.map +1 -0
  588. package/dist/shared/{hx-tree-item-BP6UF_H1.js → hx-tree-item-CPQ9dJiK.js} +170 -106
  589. package/dist/shared/hx-tree-item-CPQ9dJiK.js.map +1 -0
  590. package/dist/shared/{hx-visually-hidden-CCTQTjbR.js → hx-visually-hidden-vKX8QjeX.js} +13 -13
  591. package/dist/shared/hx-visually-hidden-vKX8QjeX.js.map +1 -0
  592. package/dist/shared/id-counter-JhvVCnjh.js +143 -0
  593. package/dist/shared/id-counter-JhvVCnjh.js.map +1 -0
  594. package/dist/shared/{toast-factory-DTy-qN8r.js → toast-factory-CEMNOt1T.js} +58 -46
  595. package/dist/shared/toast-factory-CEMNOt1T.js.map +1 -0
  596. package/dist/utilities/adoptedStylesheetRegistry.d.ts +47 -0
  597. package/dist/utilities/adoptedStylesheetRegistry.d.ts.map +1 -0
  598. package/dist/utilities/document-token-adoption.d.ts +10 -0
  599. package/dist/utilities/document-token-adoption.d.ts.map +1 -0
  600. package/dist/utilities/generateScopedSelectors.d.ts +30 -0
  601. package/dist/utilities/generateScopedSelectors.d.ts.map +1 -0
  602. package/dist/utilities/injectLightStyles.d.ts +37 -0
  603. package/dist/utilities/injectLightStyles.d.ts.map +1 -0
  604. package/dist/utilities/lightStyleRegistry.d.ts +41 -0
  605. package/dist/utilities/lightStyleRegistry.d.ts.map +1 -0
  606. package/dist/utilities/sheetManager.d.ts +62 -0
  607. package/dist/utilities/sheetManager.d.ts.map +1 -0
  608. package/dist/utils/contrast-checker.d.ts +86 -0
  609. package/dist/utils/contrast-checker.d.ts.map +1 -0
  610. package/dist/utils/token-merger.d.ts +24 -0
  611. package/dist/utils/token-merger.d.ts.map +1 -0
  612. package/fouc.css +37 -0
  613. package/package.json +28 -6
  614. package/dist/shared/hx-accordion-D1kFhdeQ.js.map +0 -1
  615. package/dist/shared/hx-action-bar-D4bulGQP.js.map +0 -1
  616. package/dist/shared/hx-alert-CSxCF2rr.js.map +0 -1
  617. package/dist/shared/hx-avatar-Cun-O99h.js.map +0 -1
  618. package/dist/shared/hx-badge-CsFd2xtw.js.map +0 -1
  619. package/dist/shared/hx-banner-BTV-X2xF.js.map +0 -1
  620. package/dist/shared/hx-breadcrumb-item-4IwaLgaO.js.map +0 -1
  621. package/dist/shared/hx-button-7k-KeCYU.js.map +0 -1
  622. package/dist/shared/hx-button-group-CWjWv-wS.js.map +0 -1
  623. package/dist/shared/hx-card-0hT3G5hi.js.map +0 -1
  624. package/dist/shared/hx-carousel-item-DgeYyYZJ.js.map +0 -1
  625. package/dist/shared/hx-checkbox-BvjO-O41.js.map +0 -1
  626. package/dist/shared/hx-checkbox-group-Z5VvWzcj.js.map +0 -1
  627. package/dist/shared/hx-code-snippet-DqzPkH4K.js.map +0 -1
  628. package/dist/shared/hx-color-picker-Da8z6AlQ.js.map +0 -1
  629. package/dist/shared/hx-combobox-CivfelTS.js.map +0 -1
  630. package/dist/shared/hx-container-DLUKnTi9.js.map +0 -1
  631. package/dist/shared/hx-copy-button--0dymSvw.js.map +0 -1
  632. package/dist/shared/hx-counter-Duf00H7p.js +0 -147
  633. package/dist/shared/hx-counter-Duf00H7p.js.map +0 -1
  634. package/dist/shared/hx-data-table-BWvd5NNx.js.map +0 -1
  635. package/dist/shared/hx-date-picker-6voxxxNE.js.map +0 -1
  636. package/dist/shared/hx-dialog-DkUSnVgw.js.map +0 -1
  637. package/dist/shared/hx-divider-DNNs4e8q.js.map +0 -1
  638. package/dist/shared/hx-drawer-CJcRZcns.js.map +0 -1
  639. package/dist/shared/hx-dropdown-Bo0KTM1A.js.map +0 -1
  640. package/dist/shared/hx-field-3MmzJ4kZ.js.map +0 -1
  641. package/dist/shared/hx-field-label-Bg-EWvqF.js.map +0 -1
  642. package/dist/shared/hx-file-upload-ByjAgfNy.js.map +0 -1
  643. package/dist/shared/hx-format-date-BdnWV2kX.js.map +0 -1
  644. package/dist/shared/hx-grid-gEjuF0cR.js.map +0 -1
  645. package/dist/shared/hx-help-text-BAcEGRUE.js.map +0 -1
  646. package/dist/shared/hx-icon-CP6OnLoM.js.map +0 -1
  647. package/dist/shared/hx-icon-button-DzH_bRtC.js.map +0 -1
  648. package/dist/shared/hx-image-C6pGiI6c.js.map +0 -1
  649. package/dist/shared/hx-link-Tmk_YPvW.js.map +0 -1
  650. package/dist/shared/hx-list-DwInEX2H.js.map +0 -1
  651. package/dist/shared/hx-menu-divider-DR4G_rqw.js.map +0 -1
  652. package/dist/shared/hx-meter-uXkTZq-W.js.map +0 -1
  653. package/dist/shared/hx-nav-3JsN2Oak.js.map +0 -1
  654. package/dist/shared/hx-nav-item-D3EJatzc.js.map +0 -1
  655. package/dist/shared/hx-number-input-CIpL2BEh.js.map +0 -1
  656. package/dist/shared/hx-overflow-menu-2kgOJ_ht.js.map +0 -1
  657. package/dist/shared/hx-pagination-Blt-fFqV.js.map +0 -1
  658. package/dist/shared/hx-popover-DxE67miP.js.map +0 -1
  659. package/dist/shared/hx-popup-Dg6n_PbY.js.map +0 -1
  660. package/dist/shared/hx-progress-bar-Dm_EHyng.js.map +0 -1
  661. package/dist/shared/hx-progress-ring-DpxBDD5d.js.map +0 -1
  662. package/dist/shared/hx-radio-BywgVSEu.js.map +0 -1
  663. package/dist/shared/hx-rating-CUWBQ0fZ.js.map +0 -1
  664. package/dist/shared/hx-select-BwDwxk-M.js.map +0 -1
  665. package/dist/shared/hx-skeleton-BHvALyd7.js.map +0 -1
  666. package/dist/shared/hx-slider-D_0EKJyk.js.map +0 -1
  667. package/dist/shared/hx-spinner-DMn4SChS.js.map +0 -1
  668. package/dist/shared/hx-split-button-CypgLXw1.js.map +0 -1
  669. package/dist/shared/hx-split-panel-CV_Kr4EK.js.map +0 -1
  670. package/dist/shared/hx-stack-BStY1RmV.js.map +0 -1
  671. package/dist/shared/hx-stat-CHntLHJM.js.map +0 -1
  672. package/dist/shared/hx-status-indicator-C1BwEvUw.js.map +0 -1
  673. package/dist/shared/hx-step-BIVWSPxd.js.map +0 -1
  674. package/dist/shared/hx-structured-list-CMWllxGg.js.map +0 -1
  675. package/dist/shared/hx-switch-BgX8kuWt.js.map +0 -1
  676. package/dist/shared/hx-tab-panel-DhOq67jj.js.map +0 -1
  677. package/dist/shared/hx-tag-CzOTDcXI.js.map +0 -1
  678. package/dist/shared/hx-td-h6oeW6YC.js.map +0 -1
  679. package/dist/shared/hx-text-DTXjiviE.js.map +0 -1
  680. package/dist/shared/hx-text-input-CqEdDHMU.js +0 -461
  681. package/dist/shared/hx-text-input-CqEdDHMU.js.map +0 -1
  682. package/dist/shared/hx-textarea-BgX7rxyo.js.map +0 -1
  683. package/dist/shared/hx-theme-6GDoUG8j.js +0 -176
  684. package/dist/shared/hx-theme-6GDoUG8j.js.map +0 -1
  685. package/dist/shared/hx-time-picker-DmLu7WUC.js.map +0 -1
  686. package/dist/shared/hx-toggle-button-D1jpDvSA.js.map +0 -1
  687. package/dist/shared/hx-tooltip-kh7QFPKu.js.map +0 -1
  688. package/dist/shared/hx-top-nav-DYlnzDaU.js.map +0 -1
  689. package/dist/shared/hx-tree-item-BP6UF_H1.js.map +0 -1
  690. package/dist/shared/hx-visually-hidden-CCTQTjbR.js.map +0 -1
  691. package/dist/shared/toast-factory-DTy-qN8r.js.map +0 -1
@@ -0,0 +1,1268 @@
1
+ /* helix-feedback.css — 8 components */
2
+
3
+ /* ── hx-alert ── */
4
+ :host {
5
+ display: block;
6
+ }
7
+
8
+ :host(:not([open])) {
9
+ display: none;
10
+ }
11
+
12
+ /* ─── Screen-reader-only announcement region ─── */
13
+ /* Always present in DOM so AT registers it before content is injected. */
14
+ /* Visually hidden via clip-path technique (superior to display:none which */
15
+ /* removes the element from the AT tree entirely). */
16
+
17
+ .sr-only {
18
+ position: absolute;
19
+ width: 1px;
20
+ height: 1px;
21
+ padding: 0;
22
+ margin: -1px;
23
+ overflow: hidden;
24
+ clip: rect(0, 0, 0, 0);
25
+ white-space: nowrap;
26
+ border: 0;
27
+ }
28
+
29
+ * {
30
+ box-sizing: border-box;
31
+ }
32
+
33
+ /* ─── Alert Container ─── */
34
+
35
+ .alert {
36
+ display: flex;
37
+ align-items: flex-start;
38
+ gap: var(--hx-alert-gap, var(--hx-space-3, 0.75rem));
39
+ padding: var(--hx-alert-padding, var(--hx-space-4, 1rem));
40
+ border: var(--hx-alert-border-width, var(--hx-border-width-thin, 1px)) solid
41
+ var(--hx-alert-border-color, var(--hx-color-info-200, #b3d9ef));
42
+ border-radius: var(--hx-alert-border-radius, var(--hx-border-radius-md, 0.375rem));
43
+ background-color: var(--hx-alert-bg, var(--hx-color-info-50, #e8f4fd));
44
+ color: var(--hx-alert-color, var(--hx-color-info-800, #1a3a4a));
45
+ font-family: var(--hx-alert-font-family, var(--hx-font-family-sans, sans-serif));
46
+ font-size: var(--hx-font-size-sm, 0.875rem);
47
+ line-height: var(--hx-line-height-normal, 1.5);
48
+ }
49
+
50
+ /* ─── Accent Variant (left border stripe) ─── */
51
+ /* Removes full border and replaces with a left-side accent stripe. */
52
+ /* Common healthcare/enterprise dashboard pattern for dense information UIs. */
53
+
54
+ .alert--accent {
55
+ border-width: 0;
56
+ border-inline-start: var(--hx-alert-accent-width, 4px) solid
57
+ var(--hx-alert-border-color, var(--hx-color-info-200, #b3d9ef));
58
+ border-radius: 0;
59
+ }
60
+
61
+ /* ─── Severity Label (WCAG 1.4.1) ─── */
62
+ /* Visually hidden — provides a non-color cue for screen readers and users */
63
+ /* who cannot distinguish variants by color alone (e.g. color-blind users). */
64
+ /* Always present regardless of showIcon so severity is never color-only. */
65
+
66
+ .alert__severity-label {
67
+ position: absolute;
68
+ width: 1px;
69
+ height: 1px;
70
+ padding: 0;
71
+ margin: -1px;
72
+ overflow: hidden;
73
+ clip: rect(0, 0, 0, 0);
74
+ white-space: nowrap;
75
+ border: 0;
76
+ }
77
+
78
+ /* ─── Icon ─── */
79
+
80
+ .alert__icon {
81
+ display: flex;
82
+ align-items: center;
83
+ flex-shrink: 0;
84
+ color: var(--hx-alert-icon-color, var(--hx-color-info-500, #3b82f6));
85
+ }
86
+
87
+ .alert__icon svg {
88
+ width: var(--hx-space-5, 1.25rem);
89
+ height: var(--hx-space-5, 1.25rem);
90
+ fill: currentColor;
91
+ }
92
+
93
+ /* ─── Title ─── */
94
+
95
+ .alert__title {
96
+ display: none;
97
+ font-weight: var(--hx-font-weight-semibold, 600);
98
+ margin-bottom: var(--hx-space-1, 0.25rem);
99
+ }
100
+
101
+ .alert__title--visible {
102
+ display: block;
103
+ }
104
+
105
+ /* ─── Message ─── */
106
+
107
+ .alert__message {
108
+ flex: 1;
109
+ min-width: 0;
110
+ }
111
+
112
+ /* ─── Actions ─── */
113
+ /* Hidden by default; shown via JS slotchange detection to avoid invisible */
114
+ /* margin-top spacing when no actions are slotted. */
115
+
116
+ .alert__actions {
117
+ display: none;
118
+ align-items: center;
119
+ gap: var(--hx-space-2, 0.5rem);
120
+ margin-top: var(--hx-space-2, 0.5rem);
121
+ }
122
+
123
+ .alert__actions--visible {
124
+ display: flex;
125
+ }
126
+
127
+ /* ─── Close Button ─── */
128
+ /* Minimum 44px touch target per WCAG 2.5.8 (Target Size Minimum, AA) and */
129
+ /* Apple HIG / Google Material guidelines. Uses absolute px units to ensure */
130
+ /* the target size is independent of the consumer's base font size. */
131
+
132
+ .alert__close-button {
133
+ display: inline-flex;
134
+ align-items: center;
135
+ justify-content: center;
136
+ flex-shrink: 0;
137
+ min-width: var(--hx-touch-target-size, 44px);
138
+ min-height: var(--hx-touch-target-size, 44px);
139
+ margin-inline-start: auto;
140
+ padding: 0;
141
+ border: none;
142
+ border-radius: var(--hx-border-radius-sm, 0.25rem);
143
+ background: transparent;
144
+ color: var(--hx-alert-color, var(--hx-color-info-800, #1a3a4a));
145
+ cursor: pointer;
146
+ font-size: var(--hx-font-size-md, 1rem);
147
+ line-height: 1;
148
+ transition:
149
+ background-color var(--hx-transition-fast, 150ms ease),
150
+ opacity var(--hx-transition-fast, 150ms ease);
151
+ opacity: var(--hx-opacity-75, 0.75);
152
+ }
153
+
154
+ .alert__close-button:hover {
155
+ opacity: var(--hx-opacity-100, 1);
156
+ /* color-mix() is supported in Chrome 111+, Firefox 113+, Safari 16.2+. */
157
+ /* Falls back to transparent (no hover background) in older environments. */
158
+ background-color: color-mix(in srgb, currentColor 10%, transparent);
159
+ }
160
+
161
+ .alert__close-button:focus-visible {
162
+ outline: var(--hx-focus-ring-width, 2px) solid
163
+ var(--hx-focus-ring-color, var(--hx-color-primary-400, #60a5fa));
164
+ outline-offset: var(--hx-focus-ring-offset, 2px);
165
+ opacity: 1;
166
+ }
167
+
168
+ .alert__close-button svg {
169
+ width: var(--hx-space-4, 1rem);
170
+ height: var(--hx-space-4, 1rem);
171
+ fill: currentColor;
172
+ }
173
+
174
+ @media (prefers-reduced-motion: reduce) {
175
+ .alert__close-button {
176
+ transition: none;
177
+ }
178
+ }
179
+
180
+ /* ─── Variant: info ─── */
181
+
182
+ :host([variant='info']) .alert,
183
+ :host(:not([variant])) .alert {
184
+ --hx-alert-bg: var(--hx-color-info-50, #e8f4fd);
185
+ --hx-alert-border-color: var(--hx-color-info-200, #b3d9ef);
186
+ --hx-alert-color: var(--hx-color-info-800, #1a3a4a);
187
+ --hx-alert-icon-color: var(--hx-color-info-500, #3b82f6);
188
+ }
189
+
190
+ /* ─── Variant: success ─── */
191
+
192
+ :host([variant='success']) .alert {
193
+ --hx-alert-bg: var(--hx-color-success-50, #ecfdf5);
194
+ --hx-alert-border-color: var(--hx-color-success-200, #a7f3d0);
195
+ --hx-alert-color: var(--hx-color-success-800, #065f46);
196
+ --hx-alert-icon-color: var(--hx-color-success-500, #10b981);
197
+ }
198
+
199
+ /* ─── Variant: warning ─── */
200
+
201
+ :host([variant='warning']) .alert {
202
+ --hx-alert-bg: var(--hx-color-warning-50, #fffbeb);
203
+ --hx-alert-border-color: var(--hx-color-warning-200, #fde68a);
204
+ --hx-alert-color: var(--hx-color-warning-800, #92400e);
205
+ --hx-alert-icon-color: var(--hx-color-warning-500, #f59e0b);
206
+ }
207
+
208
+ /* ─── Variant: error ─── */
209
+
210
+ :host([variant='error']) .alert {
211
+ --hx-alert-bg: var(--hx-color-error-50, #fef2f2);
212
+ --hx-alert-border-color: var(--hx-color-error-200, #fecaca);
213
+ --hx-alert-color: var(--hx-color-error-800, #991b1b);
214
+ --hx-alert-icon-color: var(--hx-color-error-500, #ef4444);
215
+ }
216
+ /* ── hx-banner ── */
217
+ :host {
218
+ display: block;
219
+ width: 100%;
220
+ position: var(--hx-banner-position, sticky);
221
+ top: 0;
222
+ left: 0;
223
+ right: 0;
224
+ z-index: var(--hx-banner-z-index, 100);
225
+ }
226
+
227
+ :host(:not([open])) {
228
+ display: none;
229
+ }
230
+
231
+ * {
232
+ box-sizing: border-box;
233
+ }
234
+
235
+ /* ─── Severity Label (WCAG 1.4.1) ─── */
236
+ /* Visually hidden — ensures variant is never conveyed by color alone. */
237
+ /* Always rendered so screen readers can identify the banner severity. */
238
+
239
+ .banner__severity-label {
240
+ position: absolute;
241
+ width: 1px;
242
+ height: 1px;
243
+ padding: 0;
244
+ margin: -1px;
245
+ overflow: hidden;
246
+ clip: rect(0, 0, 0, 0);
247
+ white-space: nowrap;
248
+ border: 0;
249
+ }
250
+
251
+ /* ─── Banner Container ─── */
252
+
253
+ .banner {
254
+ display: flex;
255
+ align-items: center;
256
+ gap: var(--hx-banner-gap, var(--hx-space-3, 0.75rem));
257
+ padding: var(--hx-banner-padding, var(--hx-space-3, 0.75rem) var(--hx-space-4, 1rem));
258
+ background-color: var(--hx-banner-bg, var(--hx-color-info-50, #e8f4fd));
259
+ color: var(--hx-banner-color, var(--hx-color-info-800, #1a3a4a));
260
+ border-bottom: var(--hx-banner-border-width, var(--hx-border-width-thin, 1px)) solid
261
+ var(--hx-banner-border-color, var(--hx-color-info-200, #b3d9ef));
262
+ font-family: var(--hx-banner-font-family, var(--hx-font-family-sans, sans-serif));
263
+ font-size: var(--hx-font-size-sm, 0.875rem);
264
+ line-height: var(--hx-line-height-normal, 1.5);
265
+ width: 100%;
266
+ }
267
+
268
+ /* ─── Icon ─── */
269
+
270
+ .banner__icon {
271
+ display: flex;
272
+ align-items: center;
273
+ flex-shrink: 0;
274
+ color: var(--hx-banner-icon-color, var(--hx-color-info-500, #3b82f6));
275
+ }
276
+
277
+ .banner__icon svg {
278
+ width: var(--hx-space-5, 1.25rem);
279
+ height: var(--hx-space-5, 1.25rem);
280
+ fill: currentColor;
281
+ }
282
+
283
+ /* ─── Message ─── */
284
+
285
+ .banner__message {
286
+ flex: 1;
287
+ min-width: 0;
288
+ }
289
+
290
+ /* ─── Action Link ─── */
291
+
292
+ .banner__action {
293
+ display: inline-flex;
294
+ align-items: center;
295
+ flex-shrink: 0;
296
+ color: var(--hx-banner-action-color, var(--hx-banner-color, var(--hx-color-info-800, #1a3a4a)));
297
+ font-weight: var(--hx-font-weight-semibold, 600);
298
+ text-decoration: underline;
299
+ text-underline-offset: 2px;
300
+ cursor: pointer;
301
+ background: transparent;
302
+ border: none;
303
+ padding: 0;
304
+ font-size: inherit;
305
+ font-family: inherit;
306
+ }
307
+
308
+ .banner__action:hover {
309
+ opacity: var(--hx-opacity-90, 0.9);
310
+ }
311
+
312
+ .banner__action:focus-visible {
313
+ outline: var(--hx-focus-ring-width, 2px) solid
314
+ var(--hx-focus-ring-color, var(--hx-color-primary-400, #60a5fa));
315
+ outline-offset: var(--hx-focus-ring-offset, 2px);
316
+ border-radius: var(--hx-border-radius-sm, 0.25rem);
317
+ }
318
+
319
+ /* ─── Close Button ─── */
320
+ /* Minimum 44px touch target per WCAG 2.5.8 (Target Size Minimum, AA) and */
321
+ /* Apple HIG / Google Material guidelines. Uses absolute px units to ensure */
322
+ /* the target size is independent of the consumer's base font size. */
323
+
324
+ .banner__close-button {
325
+ display: inline-flex;
326
+ align-items: center;
327
+ justify-content: center;
328
+ flex-shrink: 0;
329
+ min-width: var(--hx-touch-target-size, 44px);
330
+ min-height: var(--hx-touch-target-size, 44px);
331
+ margin-inline-start: auto;
332
+ padding: 0;
333
+ border: none;
334
+ border-radius: var(--hx-border-radius-sm, 0.25rem);
335
+ background: transparent;
336
+ color: var(--hx-banner-color, var(--hx-color-info-800, #1a3a4a));
337
+ cursor: pointer;
338
+ font-size: var(--hx-font-size-md, 1rem);
339
+ line-height: 1;
340
+ transition:
341
+ background-color var(--hx-transition-fast, 150ms ease),
342
+ opacity var(--hx-transition-fast, 150ms ease);
343
+ opacity: var(--hx-opacity-75, 0.75);
344
+ }
345
+
346
+ .banner__close-button:hover {
347
+ opacity: var(--hx-opacity-100, 1);
348
+ /* color-mix() is supported in Chrome 111+, Firefox 113+, Safari 16.2+. */
349
+ /* Falls back to transparent (no hover background) in older environments. */
350
+ background-color: color-mix(in srgb, currentColor 10%, transparent);
351
+ }
352
+
353
+ .banner__close-button:focus-visible {
354
+ outline: var(--hx-focus-ring-width, 2px) solid
355
+ var(--hx-focus-ring-color, var(--hx-color-primary-400, #60a5fa));
356
+ outline-offset: var(--hx-focus-ring-offset, 2px);
357
+ opacity: 1;
358
+ }
359
+
360
+ .banner__close-button svg {
361
+ width: var(--hx-space-4, 1rem);
362
+ height: var(--hx-space-4, 1rem);
363
+ fill: currentColor;
364
+ }
365
+
366
+ /* ─── Variant: info ─── */
367
+
368
+ :host([variant='info']) .banner,
369
+ :host(:not([variant])) .banner {
370
+ --hx-banner-bg: var(--hx-color-info-50, #e8f4fd);
371
+ --hx-banner-border-color: var(--hx-color-info-200, #b3d9ef);
372
+ --hx-banner-color: var(--hx-color-info-800, #1a3a4a);
373
+ --hx-banner-icon-color: var(--hx-color-info-500, #3b82f6);
374
+ }
375
+
376
+ /* ─── Variant: success ─── */
377
+
378
+ :host([variant='success']) .banner {
379
+ --hx-banner-bg: var(--hx-color-success-50, #ecfdf5);
380
+ --hx-banner-border-color: var(--hx-color-success-200, #a7f3d0);
381
+ --hx-banner-color: var(--hx-color-success-800, #065f46);
382
+ --hx-banner-icon-color: var(--hx-color-success-500, #10b981);
383
+ }
384
+
385
+ /* ─── Variant: warning ─── */
386
+
387
+ :host([variant='warning']) .banner {
388
+ --hx-banner-bg: var(--hx-color-warning-50, #fffbeb);
389
+ --hx-banner-border-color: var(--hx-color-warning-200, #fde68a);
390
+ --hx-banner-color: var(--hx-color-warning-800, #92400e);
391
+ --hx-banner-icon-color: var(--hx-color-warning-500, #f59e0b);
392
+ }
393
+
394
+ /* ─── Variant: error ─── */
395
+
396
+ :host([variant='error']) .banner {
397
+ --hx-banner-bg: var(--hx-color-error-50, #fef2f2);
398
+ --hx-banner-border-color: var(--hx-color-error-200, #fecaca);
399
+ --hx-banner-color: var(--hx-color-error-800, #991b1b);
400
+ --hx-banner-icon-color: var(--hx-color-error-500, #ef4444);
401
+ }
402
+
403
+ /* ─── Position: fixed ─── */
404
+ /* When position="fixed", override the host-level CSS custom property. */
405
+ /* The :host rule above sets position via var(--hx-banner-position). */
406
+ /* We use an attribute selector to override it cleanly without duplication. */
407
+
408
+ :host([position='fixed']) {
409
+ position: fixed;
410
+ }
411
+
412
+ /* ─── Reduced Motion ─── */
413
+
414
+ @media (prefers-reduced-motion: reduce) {
415
+ .banner__close-button {
416
+ transition: none;
417
+ }
418
+ }
419
+ /* ── hx-meter ── */
420
+ :host {
421
+ display: block;
422
+ width: 100%;
423
+ }
424
+
425
+ .meter {
426
+ display: flex;
427
+ flex-direction: column;
428
+ gap: var(--hx-space-2, 0.5rem);
429
+ width: 100%;
430
+ }
431
+
432
+ .meter__label {
433
+ font-size: var(--hx-font-size-sm, 0.875rem);
434
+ font-weight: var(--hx-font-weight-medium, 500);
435
+ color: var(--hx-meter-label-color, var(--hx-color-neutral-700, #374151));
436
+ line-height: var(--hx-line-height-normal, 1.5);
437
+ }
438
+
439
+ .meter__track {
440
+ position: relative;
441
+ width: 100%;
442
+ height: var(--hx-meter-track-height, var(--hx-space-2, 0.5rem));
443
+ background-color: var(--hx-meter-track-color, var(--hx-color-neutral-200, #e5e7eb));
444
+ border-radius: var(--hx-meter-track-radius, var(--hx-border-radius-full, 9999px));
445
+ overflow: hidden;
446
+ }
447
+
448
+ .meter__indicator {
449
+ position: absolute;
450
+ inset-block: 0;
451
+ inset-inline-start: 0;
452
+ height: 100%;
453
+ width: 100%;
454
+ border-radius: inherit;
455
+ background-color: var(--_indicator-color);
456
+ transform-origin: left center;
457
+ transform: scaleX(var(--_value-ratio, 0));
458
+ transition:
459
+ transform var(--hx-transition-fast, 150ms ease),
460
+ background-color var(--hx-transition-fast, 150ms ease);
461
+ }
462
+
463
+ @media (prefers-reduced-motion: reduce) {
464
+ .meter__indicator {
465
+ transition: none;
466
+ }
467
+ }
468
+
469
+ /* ─── Default (no thresholds configured) ─── */
470
+
471
+ :host {
472
+ --_indicator-color: var(--hx-meter-indicator-color, var(--hx-color-primary-500, #3b82f6));
473
+ }
474
+
475
+ /* ─── Semantic state colors ─── */
476
+
477
+ :host([data-state='optimum']) {
478
+ --_indicator-color: var(--hx-meter-color-optimum, var(--hx-color-success-500, #22c55e));
479
+ }
480
+
481
+ :host([data-state='warning']) {
482
+ --_indicator-color: var(--hx-meter-color-warning, var(--hx-color-warning-500, #f59e0b));
483
+ }
484
+
485
+ :host([data-state='danger']) {
486
+ --_indicator-color: var(--hx-meter-color-danger, var(--hx-color-error-500, #dc2626));
487
+ }
488
+
489
+ /* ─── State Label (WCAG 1.4.1) ─── */
490
+ /* Visible text label rendered below the track when a semantic state is active. */
491
+ /* Ensures the meter state is not conveyed by fill color alone. */
492
+ /* aria-hidden="true" because aria-valuetext already includes the state for AT. */
493
+
494
+ .meter__state-label {
495
+ font-size: var(--hx-font-size-xs, 0.75rem);
496
+ font-weight: var(--hx-font-weight-medium, 500);
497
+ line-height: var(--hx-line-height-tight, 1.25);
498
+ font-family: var(--hx-font-family-sans, sans-serif);
499
+ }
500
+
501
+ .meter__state-label[data-state='optimum'] {
502
+ color: var(--hx-meter-color-optimum, var(--hx-color-success-700, #15803d));
503
+ }
504
+
505
+ .meter__state-label[data-state='warning'] {
506
+ color: var(--hx-meter-color-warning, var(--hx-color-warning-700, #b45309));
507
+ }
508
+
509
+ .meter__state-label[data-state='danger'] {
510
+ color: var(--hx-meter-color-danger, var(--hx-color-error-700, #991b1b));
511
+ }
512
+
513
+ @media (prefers-reduced-motion: reduce) {
514
+ .meter__indicator {
515
+ transition: none;
516
+ }
517
+ }
518
+
519
+ /* ─── Native meter hidden (we use custom rendering) ─── */
520
+
521
+ .meter__native {
522
+ position: absolute;
523
+ width: 1px;
524
+ height: 1px;
525
+ padding: 0;
526
+ margin: -1px;
527
+ overflow: hidden;
528
+ clip: rect(0, 0, 0, 0);
529
+ white-space: nowrap;
530
+ border: 0;
531
+ }
532
+ /* ── hx-progress-bar ── */
533
+ :host {
534
+ display: block;
535
+ }
536
+
537
+ .sr-only {
538
+ position: absolute;
539
+ width: 1px;
540
+ height: 1px;
541
+ padding: 0;
542
+ margin: -1px;
543
+ overflow: hidden;
544
+ clip: rect(0, 0, 0, 0);
545
+ white-space: nowrap;
546
+ border-width: 0;
547
+ }
548
+
549
+ .progress-bar {
550
+ display: flex;
551
+ flex-direction: column;
552
+ gap: var(--hx-space-1, 0.25rem);
553
+ }
554
+
555
+ .progress-bar__label {
556
+ font-family: var(--hx-progress-bar-label-font-family, var(--hx-font-family-sans, sans-serif));
557
+ font-size: var(--hx-progress-bar-label-font-size, var(--hx-font-size-sm, 0.875rem));
558
+ font-weight: var(--hx-progress-bar-label-font-weight, var(--hx-font-weight-medium, 500));
559
+ color: var(--hx-progress-bar-label-color, var(--hx-color-neutral-700));
560
+ line-height: var(--hx-line-height-tight, 1.25);
561
+ }
562
+
563
+ .progress-bar__track {
564
+ position: relative;
565
+ overflow: hidden;
566
+ border-radius: var(--hx-progress-bar-border-radius, var(--hx-border-radius-full, 9999px));
567
+ background-color: var(--hx-progress-bar-track-bg, var(--hx-color-neutral-100));
568
+ width: 100%;
569
+ }
570
+
571
+ /* ─── Size Variants ─── */
572
+
573
+ .progress-bar--sm .progress-bar__track {
574
+ height: var(--hx-progress-bar-height-sm, var(--hx-space-1, 0.25rem));
575
+ }
576
+
577
+ .progress-bar--md .progress-bar__track {
578
+ height: var(--hx-progress-bar-height-md, var(--hx-space-2, 0.5rem));
579
+ }
580
+
581
+ .progress-bar--lg .progress-bar__track {
582
+ height: var(--hx-progress-bar-height-lg, var(--hx-space-3, 0.75rem));
583
+ }
584
+
585
+ .progress-bar__fill {
586
+ height: 100%;
587
+ width: 100%;
588
+ border-radius: inherit;
589
+ background-color: var(--hx-progress-bar-indicator-bg, var(--hx-color-primary-500));
590
+ transform-origin: left center;
591
+ transform: scaleX(var(--_value-ratio, 0));
592
+ transition: transform var(--hx-transition-fast, 150ms ease);
593
+ }
594
+
595
+ @media (prefers-reduced-motion: reduce) {
596
+ .progress-bar__fill {
597
+ transition: none;
598
+ }
599
+ }
600
+
601
+ /* ─── Variant Colors ─── */
602
+
603
+ .progress-bar--default .progress-bar__fill {
604
+ --hx-progress-bar-indicator-bg: var(--hx-color-primary-500);
605
+ }
606
+
607
+ .progress-bar--success .progress-bar__fill {
608
+ --hx-progress-bar-indicator-bg: var(--hx-color-success-700);
609
+ }
610
+
611
+ .progress-bar--warning .progress-bar__fill {
612
+ --hx-progress-bar-indicator-bg: var(--hx-color-warning-500);
613
+ }
614
+
615
+ .progress-bar--danger .progress-bar__fill {
616
+ --hx-progress-bar-indicator-bg: var(--hx-color-error-500);
617
+ }
618
+
619
+ /* ─── Indeterminate Animation ─── */
620
+
621
+ @keyframes hx-progress-indeterminate {
622
+ 0% {
623
+ transform: translateX(-100%) scaleX(0.4);
624
+ }
625
+ 50% {
626
+ transform: translateX(50%) scaleX(0.6);
627
+ }
628
+ 100% {
629
+ transform: translateX(250%) scaleX(0.4);
630
+ }
631
+ }
632
+
633
+ .progress-bar--indeterminate .progress-bar__fill {
634
+ transform: translateX(-100%) scaleX(0.4);
635
+ transform-origin: left center;
636
+ animation: hx-progress-indeterminate var(--hx-progress-bar-indeterminate-duration, 1.5s)
637
+ ease-in-out infinite;
638
+ }
639
+
640
+ @media (prefers-reduced-motion: reduce) {
641
+ .progress-bar__fill {
642
+ transition: none;
643
+ }
644
+
645
+ .progress-bar--indeterminate .progress-bar__fill {
646
+ animation: none;
647
+ transform: scaleX(1);
648
+ opacity: var(--hx-opacity-disabled, 0.5); /* reduced from animation; no exact token for 0.4 */
649
+ }
650
+ }
651
+
652
+ /* ─── High Contrast Mode ─── */
653
+
654
+ @media (forced-colors: active) {
655
+ .progress-bar__track {
656
+ border: 1px solid ButtonText;
657
+ background-color: Canvas;
658
+ }
659
+
660
+ .progress-bar__fill {
661
+ background-color: Highlight;
662
+ forced-color-adjust: none;
663
+ }
664
+ }
665
+ /* ── hx-progress-ring ── */
666
+ :host {
667
+ display: inline-flex;
668
+ align-items: center;
669
+ justify-content: center;
670
+ }
671
+
672
+ /* ─── Base Container ─── */
673
+
674
+ .progress-ring {
675
+ position: relative;
676
+ display: inline-flex;
677
+ align-items: center;
678
+ justify-content: center;
679
+ }
680
+
681
+ /* ─── SVG ─── */
682
+
683
+ .progress-ring__svg {
684
+ transform: rotate(-90deg);
685
+ overflow: visible;
686
+ }
687
+
688
+ /* ─── Track ─── */
689
+
690
+ .progress-ring__track {
691
+ fill: none;
692
+ stroke: var(--hx-progress-ring-track-color, var(--hx-color-neutral-200, #e2e8f0));
693
+ }
694
+
695
+ /* ─── Indicator ─── */
696
+
697
+ .progress-ring__indicator {
698
+ fill: none;
699
+ stroke: var(--hx-progress-ring-indicator-color, var(--hx-color-primary-500, #2563eb));
700
+ stroke-linecap: round;
701
+ transition: stroke-dashoffset var(--hx-transition-base, 300ms ease);
702
+ }
703
+
704
+ /* ─── Variant Colors ─── */
705
+
706
+ :host([variant='success']) .progress-ring__indicator {
707
+ stroke: var(--hx-progress-ring-indicator-color, var(--hx-color-success-500, #16a34a));
708
+ }
709
+
710
+ :host([variant='warning']) .progress-ring__indicator {
711
+ stroke: var(--hx-progress-ring-indicator-color, var(--hx-color-warning-500, #d97706));
712
+ }
713
+
714
+ :host([variant='danger']) .progress-ring__indicator {
715
+ stroke: var(--hx-progress-ring-indicator-color, var(--hx-color-error-500, #dc2626));
716
+ }
717
+
718
+ /* ─── Indeterminate Animation ─── */
719
+
720
+ :host([indeterminate]) .progress-ring__svg {
721
+ animation: hx-progress-ring-rotate var(--hx-duration-spinner, 1400ms) linear infinite;
722
+ }
723
+
724
+ :host([indeterminate]) .progress-ring__indicator {
725
+ animation: hx-progress-ring-dash var(--hx-duration-spinner, 1400ms) ease-in-out infinite;
726
+ transition: none;
727
+ stroke-dasharray: 1, 200;
728
+ stroke-dashoffset: 0;
729
+ }
730
+
731
+ @keyframes hx-progress-ring-rotate {
732
+ to {
733
+ transform: rotate(270deg);
734
+ }
735
+ }
736
+
737
+ /*
738
+ * Indeterminate spinner keyframes — values are tuned for default strokeWidth=4
739
+ * (radius ≈ 48, circumference ≈ 301). The gap value 200 is intentionally smaller
740
+ * than the full circumference; the repeating pattern is a standard CSS spinner
741
+ * technique that produces an arc of ~35% coverage. At non-default strokeWidths
742
+ * the arc coverage will vary slightly but remains visually acceptable.
743
+ */
744
+ @keyframes hx-progress-ring-dash {
745
+ 0% {
746
+ stroke-dasharray: 1, 200;
747
+ stroke-dashoffset: 0;
748
+ }
749
+ 50% {
750
+ stroke-dasharray: 89, 200;
751
+ stroke-dashoffset: -35;
752
+ }
753
+ 100% {
754
+ stroke-dasharray: 89, 200;
755
+ stroke-dashoffset: -124;
756
+ }
757
+ }
758
+
759
+ @media (prefers-reduced-motion: reduce) {
760
+ :host([indeterminate]) .progress-ring__svg {
761
+ animation: none;
762
+ }
763
+
764
+ :host([indeterminate]) .progress-ring__indicator {
765
+ animation: none;
766
+ stroke-dasharray: 89, 200;
767
+ stroke-dashoffset: -35;
768
+ }
769
+
770
+ .progress-ring__indicator {
771
+ transition: none;
772
+ }
773
+ }
774
+
775
+ /* ─── Size Variants ─── */
776
+
777
+ :host([size='sm']) .progress-ring {
778
+ width: var(--hx-size-8, 2rem);
779
+ height: var(--hx-size-8, 2rem);
780
+ }
781
+
782
+ :host([size='md']) .progress-ring,
783
+ .progress-ring {
784
+ width: var(--hx-size-12, 3rem);
785
+ height: var(--hx-size-12, 3rem);
786
+ }
787
+
788
+ :host([size='lg']) .progress-ring {
789
+ width: var(--hx-size-16, 4rem);
790
+ height: var(--hx-size-16, 4rem);
791
+ }
792
+
793
+ /* ─── Label (center slot wrapper) ─── */
794
+
795
+ .progress-ring__label {
796
+ position: absolute;
797
+ display: flex;
798
+ align-items: center;
799
+ justify-content: center;
800
+ inset: 0;
801
+ font-size: var(--hx-font-size-xs, 0.75rem);
802
+ font-family: var(--hx-font-family-sans, sans-serif);
803
+ font-weight: var(--hx-font-weight-semibold, 600);
804
+ color: var(--hx-progress-ring-label-color, var(--hx-color-neutral-900, #0f172a));
805
+ pointer-events: none;
806
+ }
807
+ /* ── hx-stat ── */
808
+ :host {
809
+ display: block;
810
+ }
811
+
812
+ .stat {
813
+ display: flex;
814
+ flex-direction: column;
815
+ gap: var(--hx-stat-gap, var(--hx-space-1, 0.25rem));
816
+ font-family: var(--hx-stat-font-family, var(--hx-font-family-sans, sans-serif));
817
+ color: var(--hx-stat-color, var(--hx-color-neutral-800, #212529));
818
+ }
819
+
820
+ /* ─── Size Variants ─── */
821
+
822
+ .stat--sm .stat__value {
823
+ font-size: var(--hx-stat-value-font-size-sm, var(--hx-font-size-xl, 1.25rem));
824
+ line-height: var(--hx-line-height-tight, 1.25);
825
+ font-weight: var(--hx-stat-value-font-weight, var(--hx-font-weight-bold, 700));
826
+ }
827
+
828
+ .stat--sm .stat__label {
829
+ font-size: var(--hx-stat-label-font-size-sm, var(--hx-font-size-xs, 0.75rem));
830
+ }
831
+
832
+ .stat--md .stat__value {
833
+ font-size: var(--hx-stat-value-font-size-md, var(--hx-font-size-3xl, 1.875rem));
834
+ line-height: var(--hx-line-height-tight, 1.25);
835
+ font-weight: var(--hx-stat-value-font-weight, var(--hx-font-weight-bold, 700));
836
+ }
837
+
838
+ .stat--md .stat__label {
839
+ font-size: var(--hx-stat-label-font-size-md, var(--hx-font-size-sm, 0.875rem));
840
+ }
841
+
842
+ .stat--lg .stat__value {
843
+ font-size: var(--hx-stat-value-font-size-lg, var(--hx-font-size-5xl, 3rem));
844
+ line-height: var(--hx-line-height-tight, 1.25);
845
+ font-weight: var(--hx-stat-value-font-weight, var(--hx-font-weight-bold, 700));
846
+ }
847
+
848
+ .stat--lg .stat__label {
849
+ font-size: var(--hx-stat-label-font-size-lg, var(--hx-font-size-md, 1rem));
850
+ }
851
+
852
+ /* ─── Value ─── */
853
+
854
+ .stat__header {
855
+ display: flex;
856
+ align-items: center;
857
+ gap: var(--hx-stat-header-gap, var(--hx-space-2, 0.5rem));
858
+ }
859
+
860
+ .stat__value {
861
+ color: var(--hx-stat-value-color, var(--hx-color-neutral-900, #111827));
862
+ }
863
+
864
+ /* ─── Label ─── */
865
+
866
+ .stat__label {
867
+ color: var(--hx-stat-label-color, var(--hx-color-neutral-500, #6c757d));
868
+ font-weight: var(--hx-font-weight-normal, 400);
869
+ }
870
+
871
+ /* ─── Icon Slot ─── */
872
+
873
+ .stat__icon {
874
+ display: flex;
875
+ align-items: center;
876
+ color: var(--hx-stat-icon-color, var(--hx-color-primary-500, #2563eb));
877
+ flex-shrink: 0;
878
+ }
879
+
880
+ /* ─── Trend Indicator ─── */
881
+
882
+ .stat__trend {
883
+ display: inline-flex;
884
+ align-items: center;
885
+ gap: var(--hx-space-1, 0.25rem);
886
+ font-size: var(--hx-font-size-sm, 0.875rem);
887
+ font-weight: var(--hx-font-weight-semibold, 600);
888
+ border-radius: var(--hx-border-radius-sm, 0.25rem);
889
+ padding: var(--hx-space-0-5, 0.125rem) var(--hx-space-1-5, 0.375rem);
890
+ }
891
+
892
+ .stat__trend--up {
893
+ color: var(--hx-stat-trend-up-color, var(--hx-color-success-700, #15803d));
894
+ background-color: var(--hx-stat-trend-up-bg, var(--hx-color-success-50, #f0fdf4));
895
+ }
896
+
897
+ .stat__trend--down {
898
+ color: var(--hx-stat-trend-down-color, var(--hx-color-error-700, #b91c1c));
899
+ background-color: var(--hx-stat-trend-down-bg, var(--hx-color-error-50, #fef2f2));
900
+ }
901
+
902
+ .stat__trend-arrow {
903
+ width: 0.75em;
904
+ height: 0.75em;
905
+ flex-shrink: 0;
906
+ }
907
+
908
+ /* ─── Hidden empty slot wrappers ─── */
909
+
910
+ [hidden] {
911
+ display: none !important;
912
+ }
913
+ /* ── hx-status-indicator ── */
914
+ :host {
915
+ display: inline-flex;
916
+ align-items: center;
917
+ justify-content: center;
918
+ gap: var(--hx-space-2, 0.5rem);
919
+ position: relative;
920
+ flex-shrink: 0;
921
+ --_dot-color: var(--hx-status-indicator-color-default, var(--hx-color-neutral-300, #ced4da));
922
+ /* Default size (md) — always defined so .indicator never collapses to 0x0 */
923
+ --_indicator-size: var(--hx-status-indicator-size-md, var(--hx-space-3, 0.75rem));
924
+ }
925
+
926
+ .indicator {
927
+ display: inline-flex;
928
+ align-items: center;
929
+ justify-content: center;
930
+ position: relative;
931
+ width: var(--_indicator-size);
932
+ height: var(--_indicator-size);
933
+ flex-shrink: 0;
934
+ }
935
+
936
+ .indicator__dot {
937
+ width: 100%;
938
+ height: 100%;
939
+ border-radius: 50%;
940
+ background-color: var(--_dot-color);
941
+ position: relative;
942
+ z-index: 1; /* dot above pulse ring within shadow root */
943
+ }
944
+
945
+ .indicator__pulse-ring {
946
+ display: none;
947
+ position: absolute;
948
+ inset: 0;
949
+ border-radius: 50%;
950
+ background-color: var(--hx-status-indicator-pulse-color, var(--_dot-color));
951
+ opacity: var(--hx-state-focus-opacity, 0.12); /* intentional: pulse ring start opacity */
952
+ animation: hx-status-pulse var(--hx-status-indicator-pulse-duration, 1.5s) ease-out infinite;
953
+ z-index: 0; /* pulse ring beneath dot within shadow root */
954
+ }
955
+
956
+ :host([pulse]) .indicator__pulse-ring {
957
+ display: block;
958
+ }
959
+
960
+ @keyframes hx-status-pulse {
961
+ 0% {
962
+ transform: scale(1);
963
+ opacity: var(--hx-state-focus-opacity, 0.12); /* intentional: pulse ring start opacity */
964
+ }
965
+ 100% {
966
+ transform: scale(var(--hx-status-indicator-pulse-scale, 2.5));
967
+ opacity: 0;
968
+ }
969
+ }
970
+
971
+ @media (prefers-reduced-motion: reduce) {
972
+ :host([pulse]) .indicator__pulse-ring {
973
+ animation: none;
974
+ display: none;
975
+ }
976
+ }
977
+
978
+ /* ─── Visible label (part="label") ─── */
979
+
980
+ .indicator__label {
981
+ font-size: var(
982
+ --hx-status-indicator-label-font-size,
983
+ var(--hx-font-size-sm, var(--hx-text-sm, 0.875rem))
984
+ );
985
+ color: var(--hx-status-indicator-label-color, var(--hx-color-neutral-700, #374151));
986
+ line-height: 1;
987
+ white-space: nowrap;
988
+ }
989
+
990
+ /* ─── aria-live announcement region (visually hidden) ─── */
991
+
992
+ .indicator__live-region {
993
+ position: absolute;
994
+ width: 1px;
995
+ height: 1px;
996
+ padding: 0;
997
+ margin: -1px;
998
+ overflow: hidden;
999
+ clip: rect(0, 0, 0, 0);
1000
+ white-space: nowrap;
1001
+ border: 0;
1002
+ }
1003
+
1004
+ /* ─── Size Variants ─── */
1005
+
1006
+ :host([hx-size='sm']) {
1007
+ --_indicator-size: var(--hx-status-indicator-size-sm, var(--hx-space-2, 0.5rem));
1008
+ }
1009
+
1010
+ :host([hx-size='md']) {
1011
+ --_indicator-size: var(--hx-status-indicator-size-md, var(--hx-space-3, 0.75rem));
1012
+ }
1013
+
1014
+ :host([hx-size='lg']) {
1015
+ --_indicator-size: var(--hx-status-indicator-size-lg, var(--hx-space-4, 1rem));
1016
+ }
1017
+
1018
+ /* ─── Status Colors ─── */
1019
+
1020
+ :host([status='online']) {
1021
+ --_dot-color: var(--hx-status-indicator-color-online, var(--hx-color-success-500));
1022
+ }
1023
+
1024
+ :host([status='offline']) {
1025
+ --_dot-color: var(--hx-status-indicator-color-offline, var(--hx-color-neutral-400));
1026
+ }
1027
+
1028
+ :host([status='away']) {
1029
+ --_dot-color: var(--hx-status-indicator-color-away, var(--hx-color-warning-500));
1030
+ }
1031
+
1032
+ :host([status='busy']) {
1033
+ --_dot-color: var(--hx-status-indicator-color-busy, var(--hx-color-error-500));
1034
+ }
1035
+
1036
+ :host([status='unknown']) {
1037
+ --_dot-color: var(--hx-status-indicator-color-unknown, var(--hx-color-neutral-300));
1038
+ }
1039
+ /* ── hx-toast ── */
1040
+ /* ─── hx-toast host ─── */
1041
+
1042
+ :host {
1043
+ display: block;
1044
+ pointer-events: none;
1045
+ }
1046
+
1047
+ :host([open]) {
1048
+ pointer-events: auto;
1049
+ }
1050
+
1051
+ /* ─── Toast base ─── */
1052
+
1053
+ .toast {
1054
+ display: flex;
1055
+ align-items: flex-start;
1056
+ gap: var(--hx-space-3, 0.75rem);
1057
+ padding: var(--hx-space-3, 0.75rem) var(--hx-space-4, 1rem);
1058
+ border-radius: var(--hx-toast-border-radius, var(--hx-border-radius-md, 0.375rem));
1059
+ background-color: var(--hx-toast-bg, var(--hx-color-neutral-900, #0f172a));
1060
+ color: var(--hx-toast-color, var(--hx-color-neutral-0, #ffffff));
1061
+ font-family: var(--hx-font-family-sans, sans-serif);
1062
+ font-size: var(--hx-font-size-sm, 0.875rem);
1063
+ line-height: var(--hx-line-height-normal, 1.5);
1064
+ box-shadow: var(
1065
+ --hx-toast-shadow,
1066
+ 0 4px 6px -1px rgb(0 0 0 / 0.1),
1067
+ 0 2px 4px -2px rgb(0 0 0 / 0.1)
1068
+ );
1069
+ opacity: 0;
1070
+ transform: translateY(var(--hx-toast-enter-translate, var(--hx-space-2, 0.5rem)));
1071
+ transition:
1072
+ opacity var(--hx-transition-normal, 250ms ease),
1073
+ transform var(--hx-transition-normal, 250ms ease);
1074
+ width: var(--hx-toast-width, 20rem);
1075
+ max-width: 100%;
1076
+ pointer-events: auto;
1077
+ }
1078
+
1079
+ :host([open]) .toast {
1080
+ opacity: 1;
1081
+ transform: translateY(0);
1082
+ }
1083
+
1084
+ /* ─── Variant overrides ─── */
1085
+
1086
+ .toast--success {
1087
+ --hx-toast-bg: var(--hx-color-success-600, #16a34a);
1088
+ --hx-toast-color: var(--hx-color-neutral-0, #ffffff);
1089
+ }
1090
+
1091
+ .toast--warning {
1092
+ --hx-toast-bg: var(--hx-color-warning-500, #f59e0b);
1093
+ --hx-toast-color: var(--hx-color-neutral-900, #0f172a);
1094
+ }
1095
+
1096
+ .toast--danger {
1097
+ --hx-toast-bg: var(--hx-color-error-600, #dc2626);
1098
+ --hx-toast-color: var(--hx-color-neutral-0, #ffffff);
1099
+ }
1100
+
1101
+ .toast--info {
1102
+ --hx-toast-bg: var(--hx-color-primary-600, #2563eb);
1103
+ --hx-toast-color: var(--hx-color-neutral-0, #ffffff);
1104
+ }
1105
+
1106
+ /* ─── Severity Label (WCAG 1.4.1) ─── */
1107
+ /* Visually hidden — non-color cue for severity variants (success/warning/danger/info). */
1108
+ /* Ensures variant is not conveyed by color alone for color-blind users. */
1109
+
1110
+ .toast__severity-label {
1111
+ position: absolute;
1112
+ width: 1px;
1113
+ height: 1px;
1114
+ padding: 0;
1115
+ margin: -1px;
1116
+ overflow: hidden;
1117
+ clip: rect(0, 0, 0, 0);
1118
+ white-space: nowrap;
1119
+ border: 0;
1120
+ }
1121
+
1122
+ /* ─── Icon ─── */
1123
+
1124
+ .toast__icon {
1125
+ flex-shrink: 0;
1126
+ display: inline-flex;
1127
+ align-items: center;
1128
+ line-height: 1;
1129
+ }
1130
+
1131
+ .toast__icon:empty {
1132
+ display: none;
1133
+ }
1134
+
1135
+ /* ─── Message ─── */
1136
+
1137
+ .toast__message {
1138
+ flex: 1 1 auto;
1139
+ min-width: 0;
1140
+ }
1141
+
1142
+ /* ─── Action slot ─── */
1143
+
1144
+ .toast__action {
1145
+ flex-shrink: 0;
1146
+ display: inline-flex;
1147
+ align-items: center;
1148
+ }
1149
+
1150
+ .toast__action:empty {
1151
+ display: none;
1152
+ }
1153
+
1154
+ /* ─── Close button ─── */
1155
+
1156
+ .toast__close {
1157
+ flex-shrink: 0;
1158
+ display: inline-flex;
1159
+ align-items: center;
1160
+ justify-content: center;
1161
+ /* WCAG 2.5.5: minimum 44×44px touch target */
1162
+ min-width: var(--hx-touch-target-min, 2.75rem);
1163
+ min-height: var(--hx-touch-target-min, 2.75rem);
1164
+ padding: var(--hx-space-1, 0.25rem);
1165
+ background: transparent;
1166
+ border: none;
1167
+ border-radius: var(--hx-border-radius-sm, 0.25rem);
1168
+ color: inherit;
1169
+ cursor: pointer;
1170
+ opacity: var(--hx-opacity-75, 0.75);
1171
+ transition: opacity var(--hx-transition-fast, 150ms ease);
1172
+ }
1173
+
1174
+ .toast__close:hover {
1175
+ opacity: 1;
1176
+ }
1177
+
1178
+ .toast__close:focus-visible {
1179
+ outline: var(--hx-focus-ring-width, 2px) solid currentColor;
1180
+ outline-offset: var(--hx-focus-ring-offset, 2px);
1181
+ }
1182
+
1183
+ /* ─── Reduced motion ─── */
1184
+
1185
+ @media (prefers-reduced-motion: reduce) {
1186
+ .toast {
1187
+ transition: none;
1188
+ }
1189
+
1190
+ .toast__close {
1191
+ transition: none;
1192
+ }
1193
+ }
1194
+ `;
1195
+
1196
+ export const helixToastStackStyles = css`
1197
+ :host {
1198
+ display: block;
1199
+ position: fixed;
1200
+ z-index: var(--hx-z-index-toast, 1700);
1201
+ pointer-events: none;
1202
+ }
1203
+
1204
+ .toast-stack {
1205
+ display: flex;
1206
+ flex-direction: column;
1207
+ gap: var(--hx-space-3, 0.75rem);
1208
+ padding: var(--hx-space-4, 1rem);
1209
+ pointer-events: none;
1210
+ }
1211
+
1212
+ /* ─── Placements ─── */
1213
+
1214
+ :host([placement='top-start']) {
1215
+ top: 0;
1216
+ inset-inline-start: 0;
1217
+ inset-inline-end: auto;
1218
+ bottom: auto;
1219
+ }
1220
+
1221
+ :host([placement='top-center']) {
1222
+ top: 0;
1223
+ inset-inline-start: 50%;
1224
+ transform: translateX(-50%);
1225
+ inset-inline-end: auto;
1226
+ bottom: auto;
1227
+ }
1228
+
1229
+ :host([placement='top-end']) {
1230
+ top: 0;
1231
+ inset-inline-end: 0;
1232
+ inset-inline-start: auto;
1233
+ bottom: auto;
1234
+ }
1235
+
1236
+ :host([placement='bottom-start']) {
1237
+ bottom: 0;
1238
+ inset-inline-start: 0;
1239
+ inset-inline-end: auto;
1240
+ top: auto;
1241
+ }
1242
+
1243
+ :host([placement='bottom-center']) {
1244
+ bottom: 0;
1245
+ inset-inline-start: 50%;
1246
+ transform: translateX(-50%);
1247
+ inset-inline-end: auto;
1248
+ top: auto;
1249
+ }
1250
+
1251
+ :host([placement='bottom-end']) {
1252
+ bottom: 0;
1253
+ inset-inline-end: 0;
1254
+ inset-inline-start: auto;
1255
+ top: auto;
1256
+ }
1257
+
1258
+ /* ─── Bottom placements: reverse order so newest is on top ─── */
1259
+
1260
+ :host([placement^='bottom']) .toast-stack {
1261
+ flex-direction: column-reverse;
1262
+ }
1263
+
1264
+ /* ─── Slide direction by placement ─── */
1265
+
1266
+ :host([placement^='top']) ::slotted(hx-toast) {
1267
+ --hx-toast-enter-translate: calc(var(--hx-space-2, 0.5rem) * -1);
1268
+ }