@helixui/library 1.0.1 → 1.1.2-next.1

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 (699) hide show
  1. package/custom-elements.json +6013 -11864
  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 +19 -0
  9. package/dist/base/styles.d.ts.map +1 -0
  10. package/dist/components/hx-accordion/hx-accordion-item.d.ts +10 -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 +7 -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 +12 -2
  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 +31 -3
  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 +8 -1
  23. package/dist/components/hx-avatar/hx-avatar.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 +8 -1
  26. package/dist/components/hx-badge/hx-badge.d.ts.map +1 -1
  27. package/dist/components/hx-badge/hx-badge.styles.d.ts.map +1 -1
  28. package/dist/components/hx-badge/index.js +1 -1
  29. package/dist/components/hx-banner/hx-banner.d.ts +25 -4
  30. package/dist/components/hx-banner/hx-banner.d.ts.map +1 -1
  31. package/dist/components/hx-banner/hx-banner.styles.d.ts.map +1 -1
  32. package/dist/components/hx-banner/index.js +1 -1
  33. package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts +24 -4
  34. package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts.map +1 -1
  35. package/dist/components/hx-breadcrumb/index.js +1 -1
  36. package/dist/components/hx-button/hx-button.d.ts +16 -7
  37. package/dist/components/hx-button/hx-button.d.ts.map +1 -1
  38. package/dist/components/hx-button/hx-button.styles.d.ts.map +1 -1
  39. package/dist/components/hx-button/index.js +1 -1
  40. package/dist/components/hx-button-group/hx-button-group.d.ts +3 -6
  41. package/dist/components/hx-button-group/hx-button-group.d.ts.map +1 -1
  42. package/dist/components/hx-button-group/index.js +1 -1
  43. package/dist/components/hx-card/hx-card.d.ts +14 -7
  44. package/dist/components/hx-card/hx-card.d.ts.map +1 -1
  45. package/dist/components/hx-card/index.js +1 -1
  46. package/dist/components/hx-carousel/hx-carousel-item.d.ts +2 -0
  47. package/dist/components/hx-carousel/hx-carousel-item.d.ts.map +1 -1
  48. package/dist/components/hx-carousel/hx-carousel-item.styles.d.ts +2 -0
  49. package/dist/components/hx-carousel/hx-carousel-item.styles.d.ts.map +1 -0
  50. package/dist/components/hx-carousel/hx-carousel.d.ts +29 -2
  51. package/dist/components/hx-carousel/hx-carousel.d.ts.map +1 -1
  52. package/dist/components/hx-carousel/index.js +1 -1
  53. package/dist/components/hx-checkbox/hx-checkbox.d.ts +34 -18
  54. package/dist/components/hx-checkbox/hx-checkbox.d.ts.map +1 -1
  55. package/dist/components/hx-checkbox/hx-checkbox.styles.d.ts.map +1 -1
  56. package/dist/components/hx-checkbox/index.js +1 -1
  57. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts +27 -6
  58. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts.map +1 -1
  59. package/dist/components/hx-checkbox-group/index.js +1 -1
  60. package/dist/components/hx-clinical-status/hx-clinical-status.d.ts +126 -0
  61. package/dist/components/hx-clinical-status/hx-clinical-status.d.ts.map +1 -0
  62. package/dist/components/hx-clinical-status/hx-clinical-status.styles.d.ts +2 -0
  63. package/dist/components/hx-clinical-status/hx-clinical-status.styles.d.ts.map +1 -0
  64. package/dist/components/hx-clinical-status/index.d.ts +3 -0
  65. package/dist/components/hx-clinical-status/index.d.ts.map +1 -0
  66. package/dist/components/hx-clinical-status/index.js +5 -0
  67. package/dist/components/hx-clinical-status/index.js.map +1 -0
  68. package/dist/components/hx-code-snippet/hx-code-snippet.d.ts +10 -0
  69. package/dist/components/hx-code-snippet/hx-code-snippet.d.ts.map +1 -1
  70. package/dist/components/hx-code-snippet/hx-code-snippet.styles.d.ts.map +1 -1
  71. package/dist/components/hx-code-snippet/index.js +1 -1
  72. package/dist/components/hx-color-picker/color-utils.d.ts +27 -0
  73. package/dist/components/hx-color-picker/color-utils.d.ts.map +1 -0
  74. package/dist/components/hx-color-picker/hx-color-picker.d.ts +84 -4
  75. package/dist/components/hx-color-picker/hx-color-picker.d.ts.map +1 -1
  76. package/dist/components/hx-color-picker/hx-color-picker.styles.d.ts.map +1 -1
  77. package/dist/components/hx-color-picker/index.js +1 -1
  78. package/dist/components/hx-combobox/hx-combobox.d.ts +41 -6
  79. package/dist/components/hx-combobox/hx-combobox.d.ts.map +1 -1
  80. package/dist/components/hx-combobox/hx-combobox.styles.d.ts.map +1 -1
  81. package/dist/components/hx-combobox/index.js +1 -1
  82. package/dist/components/hx-container/index.js +1 -1
  83. package/dist/components/hx-copy-button/hx-copy-button.d.ts +17 -1
  84. package/dist/components/hx-copy-button/hx-copy-button.d.ts.map +1 -1
  85. package/dist/components/hx-copy-button/index.js +1 -1
  86. package/dist/components/hx-counter/hx-counter.d.ts +32 -6
  87. package/dist/components/hx-counter/hx-counter.d.ts.map +1 -1
  88. package/dist/components/hx-counter/hx-counter.styles.d.ts.map +1 -1
  89. package/dist/components/hx-counter/index.js +1 -1
  90. package/dist/components/hx-data-table/hx-data-table.d.ts +27 -2
  91. package/dist/components/hx-data-table/hx-data-table.d.ts.map +1 -1
  92. package/dist/components/hx-data-table/hx-data-table.styles.d.ts.map +1 -1
  93. package/dist/components/hx-data-table/index.js +1 -1
  94. package/dist/components/hx-date-picker/hx-date-picker.d.ts +101 -5
  95. package/dist/components/hx-date-picker/hx-date-picker.d.ts.map +1 -1
  96. package/dist/components/hx-date-picker/hx-date-picker.styles.d.ts.map +1 -1
  97. package/dist/components/hx-date-picker/index.js +1 -1
  98. package/dist/components/hx-dialog/hx-dialog.d.ts +34 -4
  99. package/dist/components/hx-dialog/hx-dialog.d.ts.map +1 -1
  100. package/dist/components/hx-dialog/hx-dialog.styles.d.ts.map +1 -1
  101. package/dist/components/hx-dialog/index.js +1 -1
  102. package/dist/components/hx-divider/hx-divider.d.ts +4 -1
  103. package/dist/components/hx-divider/hx-divider.d.ts.map +1 -1
  104. package/dist/components/hx-divider/index.js +1 -1
  105. package/dist/components/hx-drawer/hx-drawer.d.ts +28 -10
  106. package/dist/components/hx-drawer/hx-drawer.d.ts.map +1 -1
  107. package/dist/components/hx-drawer/hx-drawer.styles.d.ts.map +1 -1
  108. package/dist/components/hx-drawer/index.js +1 -1
  109. package/dist/components/hx-dropdown/hx-dropdown.d.ts +29 -3
  110. package/dist/components/hx-dropdown/hx-dropdown.d.ts.map +1 -1
  111. package/dist/components/hx-dropdown/index.js +1 -1
  112. package/dist/components/hx-field/hx-field.d.ts +11 -3
  113. package/dist/components/hx-field/hx-field.d.ts.map +1 -1
  114. package/dist/components/hx-field/index.js +1 -1
  115. package/dist/components/hx-field-label/hx-field-label.styles.d.ts.map +1 -1
  116. package/dist/components/hx-field-label/index.js +1 -1
  117. package/dist/components/hx-file-upload/hx-file-upload.d.ts +39 -3
  118. package/dist/components/hx-file-upload/hx-file-upload.d.ts.map +1 -1
  119. package/dist/components/hx-file-upload/hx-file-upload.styles.d.ts.map +1 -1
  120. package/dist/components/hx-file-upload/index.js +1 -1
  121. package/dist/components/hx-form/hx-form.d.ts.map +1 -1
  122. package/dist/components/hx-form/index.js +1 -1
  123. package/dist/components/hx-format-date/hx-format-date.d.ts +8 -0
  124. package/dist/components/hx-format-date/hx-format-date.d.ts.map +1 -1
  125. package/dist/components/hx-format-date/index.js +1 -1
  126. package/dist/components/hx-grid/hx-grid.d.ts +14 -12
  127. package/dist/components/hx-grid/hx-grid.d.ts.map +1 -1
  128. package/dist/components/hx-grid/index.js +1 -1
  129. package/dist/components/hx-help-text/index.js +1 -1
  130. package/dist/components/hx-icon/hx-icon.d.ts +10 -2
  131. package/dist/components/hx-icon/hx-icon.d.ts.map +1 -1
  132. package/dist/components/hx-icon/index.js +1 -1
  133. package/dist/components/hx-icon-button/hx-icon-button.d.ts +12 -0
  134. package/dist/components/hx-icon-button/hx-icon-button.d.ts.map +1 -1
  135. package/dist/components/hx-icon-button/index.js +1 -1
  136. package/dist/components/hx-image/hx-image.d.ts +8 -0
  137. package/dist/components/hx-image/hx-image.d.ts.map +1 -1
  138. package/dist/components/hx-image/index.js +1 -1
  139. package/dist/components/hx-link/hx-link.d.ts +4 -1
  140. package/dist/components/hx-link/hx-link.d.ts.map +1 -1
  141. package/dist/components/hx-link/hx-link.styles.d.ts.map +1 -1
  142. package/dist/components/hx-link/index.js +1 -1
  143. package/dist/components/hx-list/hx-list-item.d.ts +8 -2
  144. package/dist/components/hx-list/hx-list-item.d.ts.map +1 -1
  145. package/dist/components/hx-list/hx-list-item.styles.d.ts.map +1 -1
  146. package/dist/components/hx-list/hx-list.d.ts +6 -2
  147. package/dist/components/hx-list/hx-list.d.ts.map +1 -1
  148. package/dist/components/hx-list/index.js +1 -1
  149. package/dist/components/hx-menu/hx-menu-item.d.ts +11 -0
  150. package/dist/components/hx-menu/hx-menu-item.d.ts.map +1 -1
  151. package/dist/components/hx-menu/hx-menu-item.styles.d.ts.map +1 -1
  152. package/dist/components/hx-menu/hx-menu.d.ts +10 -1
  153. package/dist/components/hx-menu/hx-menu.d.ts.map +1 -1
  154. package/dist/components/hx-menu/index.js +1 -1
  155. package/dist/components/hx-meter/hx-meter.d.ts +10 -2
  156. package/dist/components/hx-meter/hx-meter.d.ts.map +1 -1
  157. package/dist/components/hx-meter/hx-meter.styles.d.ts.map +1 -1
  158. package/dist/components/hx-meter/index.js +1 -1
  159. package/dist/components/hx-nav/hx-nav.d.ts +15 -0
  160. package/dist/components/hx-nav/hx-nav.d.ts.map +1 -1
  161. package/dist/components/hx-nav/index.js +1 -1
  162. package/dist/components/hx-number-input/hx-number-input.d.ts +51 -4
  163. package/dist/components/hx-number-input/hx-number-input.d.ts.map +1 -1
  164. package/dist/components/hx-number-input/index.js +1 -1
  165. package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts +18 -3
  166. package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts.map +1 -1
  167. package/dist/components/hx-overflow-menu/hx-overflow-menu.styles.d.ts.map +1 -1
  168. package/dist/components/hx-overflow-menu/index.js +1 -1
  169. package/dist/components/hx-pagination/hx-pagination.d.ts +38 -0
  170. package/dist/components/hx-pagination/hx-pagination.d.ts.map +1 -1
  171. package/dist/components/hx-pagination/hx-pagination.styles.d.ts.map +1 -1
  172. package/dist/components/hx-pagination/index.js +1 -1
  173. package/dist/components/hx-patient-banner/hx-patient-banner.d.ts +105 -0
  174. package/dist/components/hx-patient-banner/hx-patient-banner.d.ts.map +1 -0
  175. package/dist/components/hx-patient-banner/hx-patient-banner.styles.d.ts +2 -0
  176. package/dist/components/hx-patient-banner/hx-patient-banner.styles.d.ts.map +1 -0
  177. package/dist/components/hx-patient-banner/index.d.ts +3 -0
  178. package/dist/components/hx-patient-banner/index.d.ts.map +1 -0
  179. package/dist/components/hx-patient-banner/index.js +5 -0
  180. package/dist/components/hx-patient-banner/index.js.map +1 -0
  181. package/dist/components/hx-phi-field/hx-phi-field.d.ts +72 -0
  182. package/dist/components/hx-phi-field/hx-phi-field.d.ts.map +1 -0
  183. package/dist/components/hx-phi-field/hx-phi-field.styles.d.ts +2 -0
  184. package/dist/components/hx-phi-field/hx-phi-field.styles.d.ts.map +1 -0
  185. package/dist/components/hx-phi-field/index.d.ts +3 -0
  186. package/dist/components/hx-phi-field/index.d.ts.map +1 -0
  187. package/dist/components/hx-phi-field/index.js +5 -0
  188. package/dist/components/hx-phi-field/index.js.map +1 -0
  189. package/dist/components/hx-popover/hx-popover.d.ts +77 -10
  190. package/dist/components/hx-popover/hx-popover.d.ts.map +1 -1
  191. package/dist/components/hx-popover/index.js +1 -1
  192. package/dist/components/hx-popup/hx-popup.d.ts +13 -8
  193. package/dist/components/hx-popup/hx-popup.d.ts.map +1 -1
  194. package/dist/components/hx-popup/hx-popup.styles.d.ts.map +1 -1
  195. package/dist/components/hx-popup/index.js +1 -1
  196. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts +10 -2
  197. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts.map +1 -1
  198. package/dist/components/hx-progress-bar/hx-progress-bar.styles.d.ts.map +1 -1
  199. package/dist/components/hx-progress-bar/index.js +1 -1
  200. package/dist/components/hx-progress-ring/hx-progress-ring.d.ts +8 -2
  201. package/dist/components/hx-progress-ring/hx-progress-ring.d.ts.map +1 -1
  202. package/dist/components/hx-progress-ring/index.js +1 -1
  203. package/dist/components/hx-prose/hx-prose.d.ts +6 -3
  204. package/dist/components/hx-prose/hx-prose.d.ts.map +1 -1
  205. package/dist/components/hx-prose/index.js +1 -1
  206. package/dist/components/hx-radio-group/hx-radio-group.d.ts +3 -7
  207. package/dist/components/hx-radio-group/hx-radio-group.d.ts.map +1 -1
  208. package/dist/components/hx-radio-group/hx-radio.d.ts +4 -2
  209. package/dist/components/hx-radio-group/hx-radio.d.ts.map +1 -1
  210. package/dist/components/hx-radio-group/hx-radio.styles.d.ts.map +1 -1
  211. package/dist/components/hx-radio-group/index.js +1 -1
  212. package/dist/components/hx-rating/hx-rating.d.ts +54 -2
  213. package/dist/components/hx-rating/hx-rating.d.ts.map +1 -1
  214. package/dist/components/hx-rating/hx-rating.styles.d.ts.map +1 -1
  215. package/dist/components/hx-rating/index.js +1 -1
  216. package/dist/components/hx-select/hx-select.d.ts +37 -12
  217. package/dist/components/hx-select/hx-select.d.ts.map +1 -1
  218. package/dist/components/hx-select/hx-select.styles.d.ts.map +1 -1
  219. package/dist/components/hx-select/index.js +1 -1
  220. package/dist/components/hx-side-nav/hx-nav-item.d.ts +13 -0
  221. package/dist/components/hx-side-nav/hx-nav-item.d.ts.map +1 -1
  222. package/dist/components/hx-side-nav/hx-nav-item.styles.d.ts.map +1 -1
  223. package/dist/components/hx-side-nav/hx-side-nav.d.ts +6 -1
  224. package/dist/components/hx-side-nav/hx-side-nav.d.ts.map +1 -1
  225. package/dist/components/hx-side-nav/hx-side-nav.styles.d.ts.map +1 -1
  226. package/dist/components/hx-side-nav/index.js +1 -1
  227. package/dist/components/hx-skeleton/hx-skeleton.d.ts +2 -2
  228. package/dist/components/hx-skeleton/hx-skeleton.d.ts.map +1 -1
  229. package/dist/components/hx-slider/hx-slider.d.ts +26 -9
  230. package/dist/components/hx-slider/hx-slider.d.ts.map +1 -1
  231. package/dist/components/hx-slider/hx-slider.styles.d.ts.map +1 -1
  232. package/dist/components/hx-slider/index.js +1 -1
  233. package/dist/components/hx-spinner/hx-spinner.d.ts +17 -2
  234. package/dist/components/hx-spinner/hx-spinner.d.ts.map +1 -1
  235. package/dist/components/hx-spinner/hx-spinner.styles.d.ts.map +1 -1
  236. package/dist/components/hx-spinner/index.js +1 -1
  237. package/dist/components/hx-split-button/hx-split-button.d.ts +22 -4
  238. package/dist/components/hx-split-button/hx-split-button.d.ts.map +1 -1
  239. package/dist/components/hx-split-button/hx-split-button.styles.d.ts.map +1 -1
  240. package/dist/components/hx-split-button/index.js +1 -1
  241. package/dist/components/hx-split-panel/hx-split-panel.d.ts +32 -2
  242. package/dist/components/hx-split-panel/hx-split-panel.d.ts.map +1 -1
  243. package/dist/components/hx-split-panel/hx-split-panel.styles.d.ts.map +1 -1
  244. package/dist/components/hx-split-panel/index.js +1 -1
  245. package/dist/components/hx-stack/index.js +1 -1
  246. package/dist/components/hx-stat/hx-stat.d.ts +12 -3
  247. package/dist/components/hx-stat/hx-stat.d.ts.map +1 -1
  248. package/dist/components/hx-stat/index.js +1 -1
  249. package/dist/components/hx-status-indicator/hx-status-indicator.d.ts +15 -14
  250. package/dist/components/hx-status-indicator/hx-status-indicator.d.ts.map +1 -1
  251. package/dist/components/hx-status-indicator/index.js +1 -1
  252. package/dist/components/hx-steps/hx-step.d.ts +7 -9
  253. package/dist/components/hx-steps/hx-step.d.ts.map +1 -1
  254. package/dist/components/hx-steps/hx-step.styles.d.ts.map +1 -1
  255. package/dist/components/hx-steps/hx-steps.d.ts +3 -3
  256. package/dist/components/hx-steps/hx-steps.d.ts.map +1 -1
  257. package/dist/components/hx-steps/index.js +1 -1
  258. package/dist/components/hx-structured-list/hx-structured-list.d.ts +10 -3
  259. package/dist/components/hx-structured-list/hx-structured-list.d.ts.map +1 -1
  260. package/dist/components/hx-structured-list/index.js +1 -1
  261. package/dist/components/hx-style-scope/hx-style-scope.d.ts +71 -0
  262. package/dist/components/hx-style-scope/hx-style-scope.d.ts.map +1 -0
  263. package/dist/components/hx-style-scope/hx-style-scope.styles.d.ts +10 -0
  264. package/dist/components/hx-style-scope/hx-style-scope.styles.d.ts.map +1 -0
  265. package/dist/components/hx-style-scope/index.d.ts +2 -0
  266. package/dist/components/hx-style-scope/index.d.ts.map +1 -0
  267. package/dist/components/hx-style-scope/index.js +5 -0
  268. package/dist/components/hx-style-scope/index.js.map +1 -0
  269. package/dist/components/hx-switch/hx-switch.d.ts +25 -5
  270. package/dist/components/hx-switch/hx-switch.d.ts.map +1 -1
  271. package/dist/components/hx-switch/hx-switch.styles.d.ts.map +1 -1
  272. package/dist/components/hx-switch/index.js +1 -1
  273. package/dist/components/hx-table/hx-table.d.ts +8 -2
  274. package/dist/components/hx-table/hx-table.d.ts.map +1 -1
  275. package/dist/components/hx-table/hx-table.styles.d.ts.map +1 -1
  276. package/dist/components/hx-table/hx-th.d.ts +4 -0
  277. package/dist/components/hx-table/hx-th.d.ts.map +1 -1
  278. package/dist/components/hx-table/index.js +1 -1
  279. package/dist/components/hx-tabs/hx-tab-panel.styles.d.ts.map +1 -1
  280. package/dist/components/hx-tabs/hx-tab.d.ts +4 -0
  281. package/dist/components/hx-tabs/hx-tab.d.ts.map +1 -1
  282. package/dist/components/hx-tabs/hx-tab.styles.d.ts.map +1 -1
  283. package/dist/components/hx-tabs/hx-tabs.d.ts +8 -2
  284. package/dist/components/hx-tabs/hx-tabs.d.ts.map +1 -1
  285. package/dist/components/hx-tabs/index.js +1 -1
  286. package/dist/components/hx-tag/hx-tag.d.ts +2 -0
  287. package/dist/components/hx-tag/hx-tag.d.ts.map +1 -1
  288. package/dist/components/hx-tag/hx-tag.styles.d.ts.map +1 -1
  289. package/dist/components/hx-tag/index.js +1 -1
  290. package/dist/components/hx-text/hx-text.d.ts +1 -0
  291. package/dist/components/hx-text/hx-text.d.ts.map +1 -1
  292. package/dist/components/hx-text/index.js +1 -1
  293. package/dist/components/hx-text-input/hx-text-input.d.ts +22 -16
  294. package/dist/components/hx-text-input/hx-text-input.d.ts.map +1 -1
  295. package/dist/components/hx-text-input/hx-text-input.styles.d.ts.map +1 -1
  296. package/dist/components/hx-text-input/index.js +1 -1
  297. package/dist/components/hx-textarea/hx-textarea.d.ts +13 -7
  298. package/dist/components/hx-textarea/hx-textarea.d.ts.map +1 -1
  299. package/dist/components/hx-textarea/hx-textarea.styles.d.ts.map +1 -1
  300. package/dist/components/hx-textarea/index.js +1 -1
  301. package/dist/components/hx-theme/hx-theme.d.ts +84 -5
  302. package/dist/components/hx-theme/hx-theme.d.ts.map +1 -1
  303. package/dist/components/hx-theme/index.js +1 -1
  304. package/dist/components/hx-time-picker/hx-time-picker.d.ts +24 -3
  305. package/dist/components/hx-time-picker/hx-time-picker.d.ts.map +1 -1
  306. package/dist/components/hx-time-picker/hx-time-picker.styles.d.ts.map +1 -1
  307. package/dist/components/hx-time-picker/index.js +1 -1
  308. package/dist/components/hx-toast/hx-toast-stack.d.ts +1 -1
  309. package/dist/components/hx-toast/hx-toast-stack.d.ts.map +1 -1
  310. package/dist/components/hx-toast/hx-toast.d.ts +17 -5
  311. package/dist/components/hx-toast/hx-toast.d.ts.map +1 -1
  312. package/dist/components/hx-toast/hx-toast.styles.d.ts.map +1 -1
  313. package/dist/components/hx-toast/index.js +1 -1
  314. package/dist/components/hx-toast/toast-factory.d.ts.map +1 -1
  315. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts +26 -2
  316. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts.map +1 -1
  317. package/dist/components/hx-toggle-button/hx-toggle-button.styles.d.ts.map +1 -1
  318. package/dist/components/hx-toggle-button/index.js +1 -1
  319. package/dist/components/hx-tooltip/hx-tooltip.d.ts +58 -2
  320. package/dist/components/hx-tooltip/hx-tooltip.d.ts.map +1 -1
  321. package/dist/components/hx-tooltip/index.js +1 -1
  322. package/dist/components/hx-top-nav/hx-top-nav.d.ts +4 -0
  323. package/dist/components/hx-top-nav/hx-top-nav.d.ts.map +1 -1
  324. package/dist/components/hx-top-nav/index.js +1 -1
  325. package/dist/components/hx-tree-view/hx-tree-item.d.ts +9 -0
  326. package/dist/components/hx-tree-view/hx-tree-item.d.ts.map +1 -1
  327. package/dist/components/hx-tree-view/hx-tree-view.d.ts +32 -2
  328. package/dist/components/hx-tree-view/hx-tree-view.d.ts.map +1 -1
  329. package/dist/components/hx-tree-view/hx-tree-view.styles.d.ts.map +1 -1
  330. package/dist/components/hx-tree-view/index.js +1 -1
  331. package/dist/controllers/helix-audit-controller.d.ts +71 -0
  332. package/dist/controllers/helix-audit-controller.d.ts.map +1 -0
  333. package/dist/css/helix-all.css +9581 -0
  334. package/dist/css/helix-core.css +1784 -0
  335. package/dist/css/helix-data.css +639 -0
  336. package/dist/css/helix-feedback.css +1239 -0
  337. package/dist/css/helix-forms.css +2498 -0
  338. package/dist/css/helix-layout.css +380 -0
  339. package/dist/css/helix-media.css +213 -0
  340. package/dist/css/helix-navigation.css +1122 -0
  341. package/dist/css/helix-overlay.css +643 -0
  342. package/dist/css/helix-tokens.css +432 -0
  343. package/dist/css/helix-utility.css +633 -0
  344. package/dist/css/hx-accordion.css +10 -0
  345. package/dist/css/hx-action-bar.css +117 -0
  346. package/dist/css/hx-alert.css +213 -0
  347. package/dist/css/hx-avatar.css +117 -0
  348. package/dist/css/hx-badge.css +174 -0
  349. package/dist/css/hx-banner.css +203 -0
  350. package/dist/css/hx-breadcrumb.css +36 -0
  351. package/dist/css/hx-button-group.css +91 -0
  352. package/dist/css/hx-button.css +262 -0
  353. package/dist/css/hx-card.css +161 -0
  354. package/dist/css/hx-carousel.css +211 -0
  355. package/dist/css/hx-checkbox-group.css +77 -0
  356. package/dist/css/hx-checkbox.css +219 -0
  357. package/dist/css/hx-clinical-status.css +246 -0
  358. package/dist/css/hx-code-snippet.css +179 -0
  359. package/dist/css/hx-color-picker.css +2 -0
  360. package/dist/css/hx-combobox.css +2 -0
  361. package/dist/css/hx-container.css +82 -0
  362. package/dist/css/hx-copy-button.css +121 -0
  363. package/dist/css/hx-counter.css +51 -0
  364. package/dist/css/hx-data-table.css +207 -0
  365. package/dist/css/hx-date-picker.css +2 -0
  366. package/dist/css/hx-dialog.css +190 -0
  367. package/dist/css/hx-divider.css +87 -0
  368. package/dist/css/hx-drawer.css +262 -0
  369. package/dist/css/hx-dropdown.css +46 -0
  370. package/dist/css/hx-field-label.css +38 -0
  371. package/dist/css/hx-field.css +119 -0
  372. package/dist/css/hx-file-upload.css +241 -0
  373. package/dist/css/hx-form.css +2 -0
  374. package/dist/css/hx-format-date.css +10 -0
  375. package/dist/css/hx-grid.css +14 -0
  376. package/dist/css/hx-help-text.css +50 -0
  377. package/dist/css/hx-icon-button.css +152 -0
  378. package/dist/css/hx-icon.css +73 -0
  379. package/dist/css/hx-image.css +41 -0
  380. package/dist/css/hx-link.css +105 -0
  381. package/dist/css/hx-list.css +48 -0
  382. package/dist/css/hx-menu.css +21 -0
  383. package/dist/css/hx-meter.css +113 -0
  384. package/dist/css/hx-nav.css +242 -0
  385. package/dist/css/hx-number-input.css +246 -0
  386. package/dist/css/hx-overflow-menu.css +133 -0
  387. package/dist/css/hx-pagination.css +193 -0
  388. package/dist/css/hx-patient-banner.css +111 -0
  389. package/dist/css/hx-phi-field.css +85 -0
  390. package/dist/css/hx-popover.css +61 -0
  391. package/dist/css/hx-popup.css +31 -0
  392. package/dist/css/hx-progress-bar.css +133 -0
  393. package/dist/css/hx-progress-ring.css +142 -0
  394. package/dist/css/hx-prose.css +2 -0
  395. package/dist/css/hx-radio-group.css +77 -0
  396. package/dist/css/hx-rating.css +96 -0
  397. package/dist/css/hx-select.css +268 -0
  398. package/dist/css/hx-side-nav.css +142 -0
  399. package/dist/css/hx-skeleton.css +82 -0
  400. package/dist/css/hx-slider.css +287 -0
  401. package/dist/css/hx-spinner.css +116 -0
  402. package/dist/css/hx-split-button.css +309 -0
  403. package/dist/css/hx-split-panel.css +168 -0
  404. package/dist/css/hx-stack.css +104 -0
  405. package/dist/css/hx-stat.css +106 -0
  406. package/dist/css/hx-status-indicator.css +97 -0
  407. package/dist/css/hx-steps.css +52 -0
  408. package/dist/css/hx-structured-list.css +75 -0
  409. package/dist/css/hx-style-scope.css +4 -0
  410. package/dist/css/hx-switch.css +169 -0
  411. package/dist/css/hx-table.css +128 -0
  412. package/dist/css/hx-tabs.css +76 -0
  413. package/dist/css/hx-tag.css +146 -0
  414. package/dist/css/hx-text-input.css +214 -0
  415. package/dist/css/hx-text.css +149 -0
  416. package/dist/css/hx-textarea.css +180 -0
  417. package/dist/css/hx-theme.css +23 -0
  418. package/dist/css/hx-time-picker.css +2 -0
  419. package/dist/css/hx-toast.css +230 -0
  420. package/dist/css/hx-toggle-button.css +207 -0
  421. package/dist/css/hx-tooltip.css +51 -0
  422. package/dist/css/hx-top-nav.css +203 -0
  423. package/dist/css/hx-tree-view.css +22 -0
  424. package/dist/css/hx-visually-hidden.css +26 -0
  425. package/dist/css/index.css +84 -0
  426. package/dist/css/manifest.json +2696 -0
  427. package/dist/index.d.ts +14 -0
  428. package/dist/index.d.ts.map +1 -1
  429. package/dist/index.js +266 -176
  430. package/dist/index.js.map +1 -1
  431. package/dist/mixins/FocusMixin.d.ts +49 -0
  432. package/dist/mixins/FocusMixin.d.ts.map +1 -0
  433. package/dist/mixins/FormMixin.d.ts +69 -0
  434. package/dist/mixins/FormMixin.d.ts.map +1 -0
  435. package/dist/mixins/aria-delegation.d.ts +97 -0
  436. package/dist/mixins/aria-delegation.d.ts.map +1 -0
  437. package/dist/mixins/index.d.ts +5 -0
  438. package/dist/mixins/index.d.ts.map +1 -0
  439. package/dist/shared/FormMixin-Bjvw20G5.js +88 -0
  440. package/dist/shared/FormMixin-Bjvw20G5.js.map +1 -0
  441. package/dist/shared/aria-delegation-CBP9eQ0M.js +107 -0
  442. package/dist/shared/aria-delegation-CBP9eQ0M.js.map +1 -0
  443. package/dist/shared/{hx-accordion-DT8qHOay.js → hx-accordion-_KeulaQR.js} +97 -57
  444. package/dist/shared/hx-accordion-_KeulaQR.js.map +1 -0
  445. package/dist/shared/{hx-action-bar-we_WJety.js → hx-action-bar-D4bulGQP.js} +38 -31
  446. package/dist/shared/hx-action-bar-D4bulGQP.js.map +1 -0
  447. package/dist/shared/{hx-alert-D6uok29t.js → hx-alert-DRZYP0Oo.js} +77 -52
  448. package/dist/shared/hx-alert-DRZYP0Oo.js.map +1 -0
  449. package/dist/shared/{hx-avatar-Cep6Urm3.js → hx-avatar-7p1cj3lG.js} +6 -2
  450. package/dist/shared/hx-avatar-7p1cj3lG.js.map +1 -0
  451. package/dist/shared/{hx-badge-BeuWuUj_.js → hx-badge-DCxvskdw.js} +60 -45
  452. package/dist/shared/hx-badge-DCxvskdw.js.map +1 -0
  453. package/dist/shared/{hx-banner-DnCBJtRR.js → hx-banner-2RS7Nux4.js} +102 -55
  454. package/dist/shared/hx-banner-2RS7Nux4.js.map +1 -0
  455. package/dist/shared/{hx-breadcrumb-item-Bj2UqhzR.js → hx-breadcrumb-item-B2rjepqy.js} +85 -72
  456. package/dist/shared/hx-breadcrumb-item-B2rjepqy.js.map +1 -0
  457. package/dist/shared/{hx-button-Cbhqpm5i.js → hx-button-6S3DwuIj.js} +96 -57
  458. package/dist/shared/hx-button-6S3DwuIj.js.map +1 -0
  459. package/dist/shared/{hx-button-group-CWjWv-wS.js → hx-button-group-ChTQsnQj.js} +10 -10
  460. package/dist/shared/hx-button-group-ChTQsnQj.js.map +1 -0
  461. package/dist/shared/{hx-card-B9j2SHyI.js → hx-card-dIKdcMhr.js} +41 -34
  462. package/dist/shared/hx-card-dIKdcMhr.js.map +1 -0
  463. package/dist/shared/{hx-carousel-item-Be0bC-7o.js → hx-carousel-item-Cm8a1nAi.js} +108 -91
  464. package/dist/shared/hx-carousel-item-Cm8a1nAi.js.map +1 -0
  465. package/dist/shared/{hx-checkbox-CuaJqEo7.js → hx-checkbox-_WUiuTo9.js} +75 -71
  466. package/dist/shared/hx-checkbox-_WUiuTo9.js.map +1 -0
  467. package/dist/shared/{hx-checkbox-group-ydUdV9Sx.js → hx-checkbox-group-B-ci-dxp.js} +62 -43
  468. package/dist/shared/hx-checkbox-group-B-ci-dxp.js.map +1 -0
  469. package/dist/shared/hx-clinical-status-De8yrA5I.js +467 -0
  470. package/dist/shared/hx-clinical-status-De8yrA5I.js.map +1 -0
  471. package/dist/shared/{hx-code-snippet-DBwIjl5p.js → hx-code-snippet-CQsyvthi.js} +72 -47
  472. package/dist/shared/hx-code-snippet-CQsyvthi.js.map +1 -0
  473. package/dist/shared/hx-color-picker-Dk2Myvaf.js +612 -0
  474. package/dist/shared/hx-color-picker-Dk2Myvaf.js.map +1 -0
  475. package/dist/shared/{hx-combobox-CNvY-es8.js → hx-combobox-CNAJXIxo.js} +100 -466
  476. package/dist/shared/hx-combobox-CNAJXIxo.js.map +1 -0
  477. package/dist/shared/{hx-container-DLUKnTi9.js → hx-container-7j16VuQE.js} +16 -16
  478. package/dist/shared/hx-container-7j16VuQE.js.map +1 -0
  479. package/dist/shared/{hx-copy-button-CLBA31to.js → hx-copy-button-B_ZHYO7_.js} +55 -40
  480. package/dist/shared/hx-copy-button-B_ZHYO7_.js.map +1 -0
  481. package/dist/shared/hx-counter-D_B7L9Pi.js +185 -0
  482. package/dist/shared/hx-counter-D_B7L9Pi.js.map +1 -0
  483. package/dist/shared/{hx-data-table-BwoJCFgs.js → hx-data-table-B1j4n4bm.js} +160 -90
  484. package/dist/shared/hx-data-table-B1j4n4bm.js.map +1 -0
  485. package/dist/shared/hx-date-picker-R-0kWFwr.js +627 -0
  486. package/dist/shared/hx-date-picker-R-0kWFwr.js.map +1 -0
  487. package/dist/shared/{hx-dialog-M7so0sRT.js → hx-dialog-U5d3s0Ps.js} +137 -108
  488. package/dist/shared/hx-dialog-U5d3s0Ps.js.map +1 -0
  489. package/dist/shared/{hx-divider-XgWIz4Mr.js → hx-divider-DdAN-_jB.js} +6 -5
  490. package/dist/shared/hx-divider-DdAN-_jB.js.map +1 -0
  491. package/dist/shared/{hx-drawer-CYxuhIQ0.js → hx-drawer-e0qeGxAD.js} +162 -93
  492. package/dist/shared/hx-drawer-e0qeGxAD.js.map +1 -0
  493. package/dist/shared/{hx-dropdown-7cfowTWv.js → hx-dropdown-DP_DNpEb.js} +71 -47
  494. package/dist/shared/hx-dropdown-DP_DNpEb.js.map +1 -0
  495. package/dist/shared/{hx-field-CDP8EXuj.js → hx-field-COM4KvMQ.js} +29 -21
  496. package/dist/shared/hx-field-COM4KvMQ.js.map +1 -0
  497. package/dist/shared/{hx-field-label-Bg-EWvqF.js → hx-field-label-BtZ9H9Yy.js} +8 -11
  498. package/dist/shared/hx-field-label-BtZ9H9Yy.js.map +1 -0
  499. package/dist/shared/{hx-file-upload-9HbONfqt.js → hx-file-upload-DbECypLe.js} +121 -91
  500. package/dist/shared/hx-file-upload-DbECypLe.js.map +1 -0
  501. package/dist/shared/hx-form-fJE-FJQV.js +262 -0
  502. package/dist/shared/hx-form-fJE-FJQV.js.map +1 -0
  503. package/dist/shared/{hx-format-date-BsVr8gpD.js → hx-format-date-C030ThSm.js} +20 -12
  504. package/dist/shared/hx-format-date-C030ThSm.js.map +1 -0
  505. package/dist/shared/{hx-grid-BsDBCTbt.js → hx-grid-DE8KM5Gf.js} +29 -22
  506. package/dist/shared/hx-grid-DE8KM5Gf.js.map +1 -0
  507. package/dist/shared/{hx-help-text-DaOPN1iB.js → hx-help-text-BAcEGRUE.js} +2 -2
  508. package/dist/shared/{hx-help-text-DaOPN1iB.js.map → hx-help-text-BAcEGRUE.js.map} +1 -1
  509. package/dist/shared/{hx-icon-button-iu0i_faq.js → hx-icon-button-Et9wq79n.js} +15 -1
  510. package/dist/shared/{hx-icon-button-iu0i_faq.js.map → hx-icon-button-Et9wq79n.js.map} +1 -1
  511. package/dist/shared/{hx-icon--xsJztDh.js → hx-icon-dYvrzvsO.js} +12 -7
  512. package/dist/shared/hx-icon-dYvrzvsO.js.map +1 -0
  513. package/dist/shared/{hx-image-xyb_tHCR.js → hx-image-DUsEi-oN.js} +20 -15
  514. package/dist/shared/hx-image-DUsEi-oN.js.map +1 -0
  515. package/dist/shared/{hx-link-DfNy_UU8.js → hx-link-Peg2LzOD.js} +19 -8
  516. package/dist/shared/hx-link-Peg2LzOD.js.map +1 -0
  517. package/dist/shared/{hx-list-CdRNgeoP.js → hx-list-DwInEX2H.js} +63 -37
  518. package/dist/shared/hx-list-DwInEX2H.js.map +1 -0
  519. package/dist/shared/{hx-menu-divider-DR8klkFT.js → hx-menu-divider-DR4G_rqw.js} +71 -40
  520. package/dist/shared/hx-menu-divider-DR4G_rqw.js.map +1 -0
  521. package/dist/shared/{hx-meter-CZ7lnMra.js → hx-meter-CVs4A649.js} +83 -67
  522. package/dist/shared/hx-meter-CVs4A649.js.map +1 -0
  523. package/dist/shared/{hx-nav-DM6-cGKF.js → hx-nav-D377Ngz4.js} +70 -54
  524. package/dist/shared/hx-nav-D377Ngz4.js.map +1 -0
  525. package/dist/shared/{hx-nav-item-D54-5eUM.js → hx-nav-item-ByU2N921.js} +84 -48
  526. package/dist/shared/hx-nav-item-ByU2N921.js.map +1 -0
  527. package/dist/shared/{hx-number-input-BP6TIA92.js → hx-number-input-BPgrlMLN.js} +97 -65
  528. package/dist/shared/hx-number-input-BPgrlMLN.js.map +1 -0
  529. package/dist/shared/{hx-overflow-menu-CobkjAb8.js → hx-overflow-menu-Bz02LPPk.js} +83 -67
  530. package/dist/shared/hx-overflow-menu-Bz02LPPk.js.map +1 -0
  531. package/dist/shared/{hx-pagination-10dpXS95.js → hx-pagination-DYhYPqDn.js} +119 -92
  532. package/dist/shared/hx-pagination-DYhYPqDn.js.map +1 -0
  533. package/dist/shared/hx-patient-banner-BoJHddAL.js +256 -0
  534. package/dist/shared/hx-patient-banner-BoJHddAL.js.map +1 -0
  535. package/dist/shared/hx-phi-field-EDWna59z.js +261 -0
  536. package/dist/shared/hx-phi-field-EDWna59z.js.map +1 -0
  537. package/dist/shared/{hx-popover-ULjonbaO.js → hx-popover-D6kYQkt3.js} +121 -89
  538. package/dist/shared/hx-popover-D6kYQkt3.js.map +1 -0
  539. package/dist/shared/{hx-popup-CYf9Q5sj.js → hx-popup-RQb6HUXc.js} +14 -2
  540. package/dist/shared/hx-popup-RQb6HUXc.js.map +1 -0
  541. package/dist/shared/{hx-progress-bar-CnTibV63.js → hx-progress-bar-ByEmxq1V.js} +77 -57
  542. package/dist/shared/hx-progress-bar-ByEmxq1V.js.map +1 -0
  543. package/dist/shared/{hx-progress-ring-BHJBaXNk.js → hx-progress-ring-CtVnNRQx.js} +36 -29
  544. package/dist/shared/hx-progress-ring-CtVnNRQx.js.map +1 -0
  545. package/dist/shared/hx-prose-Ml_L2zje.js +59 -0
  546. package/dist/shared/hx-prose-Ml_L2zje.js.map +1 -0
  547. package/dist/shared/{hx-radio-BnKcRuQu.js → hx-radio-jgeW92SV.js} +34 -34
  548. package/dist/shared/hx-radio-jgeW92SV.js.map +1 -0
  549. package/dist/shared/{hx-rating-Y_t7Z4qb.js → hx-rating-g_iy-DW_.js} +144 -81
  550. package/dist/shared/hx-rating-g_iy-DW_.js.map +1 -0
  551. package/dist/shared/{hx-select-C50lD7NS.js → hx-select-4-nHL0vd.js} +158 -208
  552. package/dist/shared/hx-select-4-nHL0vd.js.map +1 -0
  553. package/dist/shared/hx-skeleton-BHvALyd7.js.map +1 -1
  554. package/dist/shared/{hx-slider-CprSNrRi.js → hx-slider-7Q-e0_pc.js} +49 -28
  555. package/dist/shared/hx-slider-7Q-e0_pc.js.map +1 -0
  556. package/dist/shared/{hx-spinner-BOApJ-g9.js → hx-spinner-DEgrKsUo.js} +36 -28
  557. package/dist/shared/hx-spinner-DEgrKsUo.js.map +1 -0
  558. package/dist/shared/{hx-split-button-CHGy4FUc.js → hx-split-button-BA7P_ly5.js} +51 -31
  559. package/dist/shared/hx-split-button-BA7P_ly5.js.map +1 -0
  560. package/dist/shared/{hx-split-panel-DYtB45Tr.js → hx-split-panel-Bss54UN8.js} +68 -44
  561. package/dist/shared/hx-split-panel-Bss54UN8.js.map +1 -0
  562. package/dist/shared/{hx-stack-CfoW7jU7.js → hx-stack-BStY1RmV.js} +29 -29
  563. package/dist/shared/hx-stack-BStY1RmV.js.map +1 -0
  564. package/dist/shared/{hx-stat-C2wfph8W.js → hx-stat-CmkCUI8v.js} +49 -33
  565. package/dist/shared/hx-stat-CmkCUI8v.js.map +1 -0
  566. package/dist/shared/{hx-status-indicator-oYWOkWlD.js → hx-status-indicator-4ClvA5mU.js} +22 -19
  567. package/dist/shared/hx-status-indicator-4ClvA5mU.js.map +1 -0
  568. package/dist/shared/{hx-step-DYoIumpR.js → hx-step-DlANlr2A.js} +61 -89
  569. package/dist/shared/hx-step-DlANlr2A.js.map +1 -0
  570. package/dist/shared/{hx-structured-list-CMWllxGg.js → hx-structured-list-Db9rwLI_.js} +26 -23
  571. package/dist/shared/hx-structured-list-Db9rwLI_.js.map +1 -0
  572. package/dist/shared/hx-style-scope-BroUu83L.js +125 -0
  573. package/dist/shared/hx-style-scope-BroUu83L.js.map +1 -0
  574. package/dist/shared/{hx-switch-DkKchcuP.js → hx-switch-C0Lp5RGy.js} +19 -7
  575. package/dist/shared/hx-switch-C0Lp5RGy.js.map +1 -0
  576. package/dist/shared/{hx-tab-panel-BRNcLICw.js → hx-tab-panel-GGjk6Qg4.js} +139 -119
  577. package/dist/shared/hx-tab-panel-GGjk6Qg4.js.map +1 -0
  578. package/dist/shared/{hx-tag-B3N-vZ6B.js → hx-tag-K5fCjfqQ.js} +16 -14
  579. package/dist/shared/hx-tag-K5fCjfqQ.js.map +1 -0
  580. package/dist/shared/{hx-td-CVwCGBYf.js → hx-td-DZuILY3s.js} +64 -59
  581. package/dist/shared/hx-td-DZuILY3s.js.map +1 -0
  582. package/dist/shared/{hx-text-NjKoQATI.js → hx-text-DoEVOf47.js} +30 -29
  583. package/dist/shared/hx-text-DoEVOf47.js.map +1 -0
  584. package/dist/shared/{hx-text-input-CCZZbWQ9.js → hx-text-input-DTKWPVdy.js} +218 -86
  585. package/dist/shared/hx-text-input-DTKWPVdy.js.map +1 -0
  586. package/dist/shared/{hx-textarea-BsQdB1Rk.js → hx-textarea-BkSiU8oM.js} +35 -26
  587. package/dist/shared/hx-textarea-BkSiU8oM.js.map +1 -0
  588. package/dist/shared/hx-theme-Aag8QJvT.js +299 -0
  589. package/dist/shared/hx-theme-Aag8QJvT.js.map +1 -0
  590. package/dist/shared/{hx-time-picker-CJcIjH3C.js → hx-time-picker-BpCRsh_z.js} +101 -300
  591. package/dist/shared/hx-time-picker-BpCRsh_z.js.map +1 -0
  592. package/dist/shared/{hx-toggle-button-D4F1soEM.js → hx-toggle-button-CPFqs3eQ.js} +81 -41
  593. package/dist/shared/hx-toggle-button-CPFqs3eQ.js.map +1 -0
  594. package/dist/shared/{hx-tooltip-Bk1iQRHs.js → hx-tooltip-CrO4vzeX.js} +75 -53
  595. package/dist/shared/hx-tooltip-CrO4vzeX.js.map +1 -0
  596. package/dist/shared/{hx-top-nav-D2bQpns3.js → hx-top-nav-DYlnzDaU.js} +3 -1
  597. package/dist/shared/{hx-top-nav-D2bQpns3.js.map → hx-top-nav-DYlnzDaU.js.map} +1 -1
  598. package/dist/shared/{hx-tree-item-BobGN76x.js → hx-tree-item-DTDIBRrI.js} +140 -94
  599. package/dist/shared/hx-tree-item-DTDIBRrI.js.map +1 -0
  600. package/dist/shared/id-counter-JhvVCnjh.js +143 -0
  601. package/dist/shared/id-counter-JhvVCnjh.js.map +1 -0
  602. package/dist/shared/{toast-factory-MvMMreTu.js → toast-factory-f184Gi70.js} +96 -73
  603. package/dist/shared/toast-factory-f184Gi70.js.map +1 -0
  604. package/dist/styles/shared-field.styles.d.ts +6 -0
  605. package/dist/styles/shared-field.styles.d.ts.map +1 -0
  606. package/dist/utilities/adoptedStylesheetRegistry.d.ts +47 -0
  607. package/dist/utilities/adoptedStylesheetRegistry.d.ts.map +1 -0
  608. package/dist/utilities/generateScopedSelectors.d.ts +30 -0
  609. package/dist/utilities/generateScopedSelectors.d.ts.map +1 -0
  610. package/dist/utilities/injectLightStyles.d.ts +37 -0
  611. package/dist/utilities/injectLightStyles.d.ts.map +1 -0
  612. package/dist/utilities/lightStyleRegistry.d.ts +41 -0
  613. package/dist/utilities/lightStyleRegistry.d.ts.map +1 -0
  614. package/dist/utilities/sheetManager.d.ts +62 -0
  615. package/dist/utilities/sheetManager.d.ts.map +1 -0
  616. package/dist/utils/contrast-checker.d.ts +86 -0
  617. package/dist/utils/contrast-checker.d.ts.map +1 -0
  618. package/dist/utils/token-merger.d.ts +24 -0
  619. package/dist/utils/token-merger.d.ts.map +1 -0
  620. package/fouc.css +37 -0
  621. package/package.json +26 -9
  622. package/dist/shared/hx-accordion-DT8qHOay.js.map +0 -1
  623. package/dist/shared/hx-action-bar-we_WJety.js.map +0 -1
  624. package/dist/shared/hx-alert-D6uok29t.js.map +0 -1
  625. package/dist/shared/hx-avatar-Cep6Urm3.js.map +0 -1
  626. package/dist/shared/hx-badge-BeuWuUj_.js.map +0 -1
  627. package/dist/shared/hx-banner-DnCBJtRR.js.map +0 -1
  628. package/dist/shared/hx-breadcrumb-item-Bj2UqhzR.js.map +0 -1
  629. package/dist/shared/hx-button-Cbhqpm5i.js.map +0 -1
  630. package/dist/shared/hx-button-group-CWjWv-wS.js.map +0 -1
  631. package/dist/shared/hx-card-B9j2SHyI.js.map +0 -1
  632. package/dist/shared/hx-carousel-item-Be0bC-7o.js.map +0 -1
  633. package/dist/shared/hx-checkbox-CuaJqEo7.js.map +0 -1
  634. package/dist/shared/hx-checkbox-group-ydUdV9Sx.js.map +0 -1
  635. package/dist/shared/hx-code-snippet-DBwIjl5p.js.map +0 -1
  636. package/dist/shared/hx-color-picker-Bb2UPVc3.js +0 -803
  637. package/dist/shared/hx-color-picker-Bb2UPVc3.js.map +0 -1
  638. package/dist/shared/hx-combobox-CNvY-es8.js.map +0 -1
  639. package/dist/shared/hx-container-DLUKnTi9.js.map +0 -1
  640. package/dist/shared/hx-copy-button-CLBA31to.js.map +0 -1
  641. package/dist/shared/hx-counter-D-1NXzGs.js +0 -138
  642. package/dist/shared/hx-counter-D-1NXzGs.js.map +0 -1
  643. package/dist/shared/hx-data-table-BwoJCFgs.js.map +0 -1
  644. package/dist/shared/hx-date-picker-DDcIBJir.js +0 -980
  645. package/dist/shared/hx-date-picker-DDcIBJir.js.map +0 -1
  646. package/dist/shared/hx-dialog-M7so0sRT.js.map +0 -1
  647. package/dist/shared/hx-divider-XgWIz4Mr.js.map +0 -1
  648. package/dist/shared/hx-drawer-CYxuhIQ0.js.map +0 -1
  649. package/dist/shared/hx-dropdown-7cfowTWv.js.map +0 -1
  650. package/dist/shared/hx-field-CDP8EXuj.js.map +0 -1
  651. package/dist/shared/hx-field-label-Bg-EWvqF.js.map +0 -1
  652. package/dist/shared/hx-file-upload-9HbONfqt.js.map +0 -1
  653. package/dist/shared/hx-form-BFv_N1dm.js +0 -1272
  654. package/dist/shared/hx-form-BFv_N1dm.js.map +0 -1
  655. package/dist/shared/hx-format-date-BsVr8gpD.js.map +0 -1
  656. package/dist/shared/hx-grid-BsDBCTbt.js.map +0 -1
  657. package/dist/shared/hx-icon--xsJztDh.js.map +0 -1
  658. package/dist/shared/hx-image-xyb_tHCR.js.map +0 -1
  659. package/dist/shared/hx-link-DfNy_UU8.js.map +0 -1
  660. package/dist/shared/hx-list-CdRNgeoP.js.map +0 -1
  661. package/dist/shared/hx-menu-divider-DR8klkFT.js.map +0 -1
  662. package/dist/shared/hx-meter-CZ7lnMra.js.map +0 -1
  663. package/dist/shared/hx-nav-DM6-cGKF.js.map +0 -1
  664. package/dist/shared/hx-nav-item-D54-5eUM.js.map +0 -1
  665. package/dist/shared/hx-number-input-BP6TIA92.js.map +0 -1
  666. package/dist/shared/hx-overflow-menu-CobkjAb8.js.map +0 -1
  667. package/dist/shared/hx-pagination-10dpXS95.js.map +0 -1
  668. package/dist/shared/hx-popover-ULjonbaO.js.map +0 -1
  669. package/dist/shared/hx-popup-CYf9Q5sj.js.map +0 -1
  670. package/dist/shared/hx-progress-bar-CnTibV63.js.map +0 -1
  671. package/dist/shared/hx-progress-ring-BHJBaXNk.js.map +0 -1
  672. package/dist/shared/hx-prose-DZh2KrMb.js +0 -876
  673. package/dist/shared/hx-prose-DZh2KrMb.js.map +0 -1
  674. package/dist/shared/hx-radio-BnKcRuQu.js.map +0 -1
  675. package/dist/shared/hx-rating-Y_t7Z4qb.js.map +0 -1
  676. package/dist/shared/hx-select-C50lD7NS.js.map +0 -1
  677. package/dist/shared/hx-slider-CprSNrRi.js.map +0 -1
  678. package/dist/shared/hx-spinner-BOApJ-g9.js.map +0 -1
  679. package/dist/shared/hx-split-button-CHGy4FUc.js.map +0 -1
  680. package/dist/shared/hx-split-panel-DYtB45Tr.js.map +0 -1
  681. package/dist/shared/hx-stack-CfoW7jU7.js.map +0 -1
  682. package/dist/shared/hx-stat-C2wfph8W.js.map +0 -1
  683. package/dist/shared/hx-status-indicator-oYWOkWlD.js.map +0 -1
  684. package/dist/shared/hx-step-DYoIumpR.js.map +0 -1
  685. package/dist/shared/hx-structured-list-CMWllxGg.js.map +0 -1
  686. package/dist/shared/hx-switch-DkKchcuP.js.map +0 -1
  687. package/dist/shared/hx-tab-panel-BRNcLICw.js.map +0 -1
  688. package/dist/shared/hx-tag-B3N-vZ6B.js.map +0 -1
  689. package/dist/shared/hx-td-CVwCGBYf.js.map +0 -1
  690. package/dist/shared/hx-text-NjKoQATI.js.map +0 -1
  691. package/dist/shared/hx-text-input-CCZZbWQ9.js.map +0 -1
  692. package/dist/shared/hx-textarea-BsQdB1Rk.js.map +0 -1
  693. package/dist/shared/hx-theme-6GDoUG8j.js +0 -176
  694. package/dist/shared/hx-theme-6GDoUG8j.js.map +0 -1
  695. package/dist/shared/hx-time-picker-CJcIjH3C.js.map +0 -1
  696. package/dist/shared/hx-toggle-button-D4F1soEM.js.map +0 -1
  697. package/dist/shared/hx-tooltip-Bk1iQRHs.js.map +0 -1
  698. package/dist/shared/hx-tree-item-BobGN76x.js.map +0 -1
  699. package/dist/shared/toast-factory-MvMMreTu.js.map +0 -1
@@ -0,0 +1,1239 @@
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
+ position: relative;
919
+ flex-shrink: 0;
920
+ --_dot-color: var(--hx-status-indicator-color-default, var(--hx-color-neutral-300, #ced4da));
921
+ }
922
+
923
+ .indicator {
924
+ display: inline-flex;
925
+ align-items: center;
926
+ justify-content: center;
927
+ position: relative;
928
+ width: var(--_indicator-size);
929
+ height: var(--_indicator-size);
930
+ flex-shrink: 0;
931
+ }
932
+
933
+ .indicator__dot {
934
+ width: 100%;
935
+ height: 100%;
936
+ border-radius: 50%;
937
+ background-color: var(--_dot-color);
938
+ position: relative;
939
+ z-index: 1; /* dot above pulse ring within shadow root */
940
+ }
941
+
942
+ .indicator__pulse-ring {
943
+ display: none;
944
+ position: absolute;
945
+ inset: 0;
946
+ border-radius: 50%;
947
+ background-color: var(--hx-status-indicator-pulse-color, var(--_dot-color));
948
+ opacity: var(--hx-state-focus-opacity, 0.12); /* intentional: pulse ring start opacity */
949
+ animation: hx-status-pulse var(--hx-status-indicator-pulse-duration, 1.5s) ease-out infinite;
950
+ z-index: 0; /* pulse ring beneath dot within shadow root */
951
+ }
952
+
953
+ :host([pulse]) .indicator__pulse-ring {
954
+ display: block;
955
+ }
956
+
957
+ @keyframes hx-status-pulse {
958
+ 0% {
959
+ transform: scale(1);
960
+ opacity: var(--hx-state-focus-opacity, 0.12); /* intentional: pulse ring start opacity */
961
+ }
962
+ 100% {
963
+ transform: scale(var(--hx-status-indicator-pulse-scale, 2.5));
964
+ opacity: 0;
965
+ }
966
+ }
967
+
968
+ @media (prefers-reduced-motion: reduce) {
969
+ :host([pulse]) .indicator__pulse-ring {
970
+ animation: none;
971
+ display: none;
972
+ }
973
+ }
974
+
975
+ /* ─── Size Variants ─── */
976
+
977
+ :host([size='sm']) {
978
+ --_indicator-size: var(--hx-status-indicator-size-sm, var(--hx-space-2, 0.5rem));
979
+ }
980
+
981
+ :host([size='md']) {
982
+ --_indicator-size: var(--hx-status-indicator-size-md, var(--hx-space-3, 0.75rem));
983
+ }
984
+
985
+ :host([size='lg']) {
986
+ --_indicator-size: var(--hx-status-indicator-size-lg, var(--hx-size-4));
987
+ }
988
+
989
+ /* ─── Status Colors ─── */
990
+
991
+ :host([status='online']) {
992
+ --_dot-color: var(--hx-status-indicator-color-online, var(--hx-color-success-500));
993
+ }
994
+
995
+ :host([status='offline']) {
996
+ --_dot-color: var(--hx-status-indicator-color-offline, var(--hx-color-neutral-400));
997
+ }
998
+
999
+ :host([status='away']) {
1000
+ --_dot-color: var(--hx-status-indicator-color-away, var(--hx-color-warning-500));
1001
+ }
1002
+
1003
+ :host([status='busy']) {
1004
+ --_dot-color: var(--hx-status-indicator-color-busy, var(--hx-color-error-500));
1005
+ }
1006
+
1007
+ :host([status='unknown']) {
1008
+ --_dot-color: var(--hx-status-indicator-color-unknown, var(--hx-color-neutral-300));
1009
+ }
1010
+ /* ── hx-toast ── */
1011
+ /* ─── hx-toast host ─── */
1012
+
1013
+ :host {
1014
+ display: block;
1015
+ pointer-events: none;
1016
+ }
1017
+
1018
+ :host([open]) {
1019
+ pointer-events: auto;
1020
+ }
1021
+
1022
+ /* ─── Toast base ─── */
1023
+
1024
+ .toast {
1025
+ display: flex;
1026
+ align-items: flex-start;
1027
+ gap: var(--hx-space-3, 0.75rem);
1028
+ padding: var(--hx-space-3, 0.75rem) var(--hx-space-4, 1rem);
1029
+ border-radius: var(--hx-toast-border-radius, var(--hx-border-radius-md, 0.375rem));
1030
+ background-color: var(--hx-toast-bg, var(--hx-color-neutral-900, #0f172a));
1031
+ color: var(--hx-toast-color, var(--hx-color-neutral-0, #ffffff));
1032
+ font-family: var(--hx-font-family-sans, sans-serif);
1033
+ font-size: var(--hx-font-size-sm, 0.875rem);
1034
+ line-height: var(--hx-line-height-normal, 1.5);
1035
+ box-shadow: var(
1036
+ --hx-toast-shadow,
1037
+ 0 4px 6px -1px rgb(0 0 0 / 0.1),
1038
+ 0 2px 4px -2px rgb(0 0 0 / 0.1)
1039
+ );
1040
+ opacity: 0;
1041
+ transform: translateY(var(--hx-toast-enter-translate, var(--hx-space-2, 0.5rem)));
1042
+ transition:
1043
+ opacity var(--hx-transition-normal, 250ms ease),
1044
+ transform var(--hx-transition-normal, 250ms ease);
1045
+ width: var(--hx-toast-width, 20rem);
1046
+ max-width: 100%;
1047
+ pointer-events: auto;
1048
+ }
1049
+
1050
+ :host([open]) .toast {
1051
+ opacity: 1;
1052
+ transform: translateY(0);
1053
+ }
1054
+
1055
+ /* ─── Variant overrides ─── */
1056
+
1057
+ .toast--success {
1058
+ --hx-toast-bg: var(--hx-color-success-600, #16a34a);
1059
+ --hx-toast-color: var(--hx-color-neutral-0, #ffffff);
1060
+ }
1061
+
1062
+ .toast--warning {
1063
+ --hx-toast-bg: var(--hx-color-warning-500, #f59e0b);
1064
+ --hx-toast-color: var(--hx-color-neutral-900, #0f172a);
1065
+ }
1066
+
1067
+ .toast--danger {
1068
+ --hx-toast-bg: var(--hx-color-error-600, #dc2626);
1069
+ --hx-toast-color: var(--hx-color-neutral-0, #ffffff);
1070
+ }
1071
+
1072
+ .toast--info {
1073
+ --hx-toast-bg: var(--hx-color-primary-600, #2563eb);
1074
+ --hx-toast-color: var(--hx-color-neutral-0, #ffffff);
1075
+ }
1076
+
1077
+ /* ─── Severity Label (WCAG 1.4.1) ─── */
1078
+ /* Visually hidden — non-color cue for severity variants (success/warning/danger/info). */
1079
+ /* Ensures variant is not conveyed by color alone for color-blind users. */
1080
+
1081
+ .toast__severity-label {
1082
+ position: absolute;
1083
+ width: 1px;
1084
+ height: 1px;
1085
+ padding: 0;
1086
+ margin: -1px;
1087
+ overflow: hidden;
1088
+ clip: rect(0, 0, 0, 0);
1089
+ white-space: nowrap;
1090
+ border: 0;
1091
+ }
1092
+
1093
+ /* ─── Icon ─── */
1094
+
1095
+ .toast__icon {
1096
+ flex-shrink: 0;
1097
+ display: inline-flex;
1098
+ align-items: center;
1099
+ line-height: 1;
1100
+ }
1101
+
1102
+ .toast__icon:empty {
1103
+ display: none;
1104
+ }
1105
+
1106
+ /* ─── Message ─── */
1107
+
1108
+ .toast__message {
1109
+ flex: 1 1 auto;
1110
+ min-width: 0;
1111
+ }
1112
+
1113
+ /* ─── Action slot ─── */
1114
+
1115
+ .toast__action {
1116
+ flex-shrink: 0;
1117
+ display: inline-flex;
1118
+ align-items: center;
1119
+ }
1120
+
1121
+ .toast__action:empty {
1122
+ display: none;
1123
+ }
1124
+
1125
+ /* ─── Close button ─── */
1126
+
1127
+ .toast__close {
1128
+ flex-shrink: 0;
1129
+ display: inline-flex;
1130
+ align-items: center;
1131
+ justify-content: center;
1132
+ /* WCAG 2.5.5: minimum 44×44px touch target */
1133
+ min-width: var(--hx-touch-target-min, 2.75rem);
1134
+ min-height: var(--hx-touch-target-min, 2.75rem);
1135
+ padding: var(--hx-space-1, 0.25rem);
1136
+ background: transparent;
1137
+ border: none;
1138
+ border-radius: var(--hx-border-radius-sm, 0.25rem);
1139
+ color: inherit;
1140
+ cursor: pointer;
1141
+ opacity: var(--hx-opacity-75, 0.75);
1142
+ transition: opacity var(--hx-transition-fast, 150ms ease);
1143
+ }
1144
+
1145
+ .toast__close:hover {
1146
+ opacity: 1;
1147
+ }
1148
+
1149
+ .toast__close:focus-visible {
1150
+ outline: var(--hx-focus-ring-width, 2px) solid currentColor;
1151
+ outline-offset: var(--hx-focus-ring-offset, 2px);
1152
+ }
1153
+
1154
+ /* ─── Reduced motion ─── */
1155
+
1156
+ @media (prefers-reduced-motion: reduce) {
1157
+ .toast {
1158
+ transition: none;
1159
+ }
1160
+
1161
+ .toast__close {
1162
+ transition: none;
1163
+ }
1164
+ }
1165
+ `;
1166
+
1167
+ export const helixToastStackStyles = css`
1168
+ :host {
1169
+ display: block;
1170
+ position: fixed;
1171
+ z-index: var(--hx-z-index-toast, 1700);
1172
+ pointer-events: none;
1173
+ }
1174
+
1175
+ .toast-stack {
1176
+ display: flex;
1177
+ flex-direction: column;
1178
+ gap: var(--hx-space-3, 0.75rem);
1179
+ padding: var(--hx-space-4, 1rem);
1180
+ pointer-events: none;
1181
+ }
1182
+
1183
+ /* ─── Placements ─── */
1184
+
1185
+ :host([placement='top-start']) {
1186
+ top: 0;
1187
+ inset-inline-start: 0;
1188
+ inset-inline-end: auto;
1189
+ bottom: auto;
1190
+ }
1191
+
1192
+ :host([placement='top-center']) {
1193
+ top: 0;
1194
+ inset-inline-start: 50%;
1195
+ transform: translateX(-50%);
1196
+ inset-inline-end: auto;
1197
+ bottom: auto;
1198
+ }
1199
+
1200
+ :host([placement='top-end']) {
1201
+ top: 0;
1202
+ inset-inline-end: 0;
1203
+ inset-inline-start: auto;
1204
+ bottom: auto;
1205
+ }
1206
+
1207
+ :host([placement='bottom-start']) {
1208
+ bottom: 0;
1209
+ inset-inline-start: 0;
1210
+ inset-inline-end: auto;
1211
+ top: auto;
1212
+ }
1213
+
1214
+ :host([placement='bottom-center']) {
1215
+ bottom: 0;
1216
+ inset-inline-start: 50%;
1217
+ transform: translateX(-50%);
1218
+ inset-inline-end: auto;
1219
+ top: auto;
1220
+ }
1221
+
1222
+ :host([placement='bottom-end']) {
1223
+ bottom: 0;
1224
+ inset-inline-end: 0;
1225
+ inset-inline-start: auto;
1226
+ top: auto;
1227
+ }
1228
+
1229
+ /* ─── Bottom placements: reverse order so newest is on top ─── */
1230
+
1231
+ :host([placement^='bottom']) .toast-stack {
1232
+ flex-direction: column-reverse;
1233
+ }
1234
+
1235
+ /* ─── Slide direction by placement ─── */
1236
+
1237
+ :host([placement^='top']) ::slotted(hx-toast) {
1238
+ --hx-toast-enter-translate: calc(var(--hx-space-2, 0.5rem) * -1);
1239
+ }