@helixui/library 1.1.1 → 1.1.2-next.2

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 (623) hide show
  1. package/custom-elements.json +8089 -7072
  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 +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 +18 -10
  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/index.js +1 -1
  23. package/dist/components/hx-badge/hx-badge.d.ts.map +1 -1
  24. package/dist/components/hx-badge/hx-badge.styles.d.ts.map +1 -1
  25. package/dist/components/hx-badge/index.js +1 -1
  26. package/dist/components/hx-banner/hx-banner.d.ts +15 -5
  27. package/dist/components/hx-banner/hx-banner.d.ts.map +1 -1
  28. package/dist/components/hx-banner/hx-banner.styles.d.ts.map +1 -1
  29. package/dist/components/hx-banner/index.js +1 -1
  30. package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts +32 -3
  31. package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts.map +1 -1
  32. package/dist/components/hx-breadcrumb/index.js +1 -1
  33. package/dist/components/hx-button/hx-button.d.ts +11 -8
  34. package/dist/components/hx-button/hx-button.d.ts.map +1 -1
  35. package/dist/components/hx-button/hx-button.styles.d.ts.map +1 -1
  36. package/dist/components/hx-button/index.js +1 -1
  37. package/dist/components/hx-button-group/hx-button-group.d.ts +3 -6
  38. package/dist/components/hx-button-group/hx-button-group.d.ts.map +1 -1
  39. package/dist/components/hx-button-group/index.js +1 -1
  40. package/dist/components/hx-card/hx-card.d.ts +7 -7
  41. package/dist/components/hx-card/hx-card.d.ts.map +1 -1
  42. package/dist/components/hx-card/index.js +1 -1
  43. package/dist/components/hx-carousel/hx-carousel.d.ts +2 -2
  44. package/dist/components/hx-carousel/index.js +1 -1
  45. package/dist/components/hx-checkbox/hx-checkbox.d.ts +18 -18
  46. package/dist/components/hx-checkbox/hx-checkbox.d.ts.map +1 -1
  47. package/dist/components/hx-checkbox/hx-checkbox.styles.d.ts.map +1 -1
  48. package/dist/components/hx-checkbox/index.js +1 -1
  49. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts +8 -3
  50. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts.map +1 -1
  51. package/dist/components/hx-checkbox-group/index.js +1 -1
  52. package/dist/components/hx-clinical-status/hx-clinical-status.d.ts +126 -0
  53. package/dist/components/hx-clinical-status/hx-clinical-status.d.ts.map +1 -0
  54. package/dist/components/hx-clinical-status/hx-clinical-status.styles.d.ts +2 -0
  55. package/dist/components/hx-clinical-status/hx-clinical-status.styles.d.ts.map +1 -0
  56. package/dist/components/hx-clinical-status/index.d.ts +3 -0
  57. package/dist/components/hx-clinical-status/index.d.ts.map +1 -0
  58. package/dist/components/hx-clinical-status/index.js +5 -0
  59. package/dist/components/hx-clinical-status/index.js.map +1 -0
  60. package/dist/components/hx-code-snippet/hx-code-snippet.styles.d.ts.map +1 -1
  61. package/dist/components/hx-code-snippet/index.js +1 -1
  62. package/dist/components/hx-color-picker/color-utils.d.ts +27 -0
  63. package/dist/components/hx-color-picker/color-utils.d.ts.map +1 -0
  64. package/dist/components/hx-color-picker/hx-color-picker.d.ts +16 -4
  65. package/dist/components/hx-color-picker/hx-color-picker.d.ts.map +1 -1
  66. package/dist/components/hx-color-picker/index.js +1 -1
  67. package/dist/components/hx-combobox/hx-combobox.d.ts +9 -4
  68. package/dist/components/hx-combobox/hx-combobox.d.ts.map +1 -1
  69. package/dist/components/hx-combobox/hx-combobox.styles.d.ts.map +1 -1
  70. package/dist/components/hx-combobox/index.js +1 -1
  71. package/dist/components/hx-container/index.js +1 -1
  72. package/dist/components/hx-copy-button/hx-copy-button.d.ts +6 -1
  73. package/dist/components/hx-copy-button/hx-copy-button.d.ts.map +1 -1
  74. package/dist/components/hx-copy-button/index.js +1 -1
  75. package/dist/components/hx-counter/hx-counter.d.ts +20 -3
  76. package/dist/components/hx-counter/hx-counter.d.ts.map +1 -1
  77. package/dist/components/hx-counter/hx-counter.styles.d.ts.map +1 -1
  78. package/dist/components/hx-counter/index.js +1 -1
  79. package/dist/components/hx-data-table/hx-data-table.d.ts +13 -13
  80. package/dist/components/hx-data-table/hx-data-table.d.ts.map +1 -1
  81. package/dist/components/hx-data-table/hx-data-table.styles.d.ts.map +1 -1
  82. package/dist/components/hx-data-table/index.js +1 -1
  83. package/dist/components/hx-date-picker/hx-date-picker.d.ts +70 -13
  84. package/dist/components/hx-date-picker/hx-date-picker.d.ts.map +1 -1
  85. package/dist/components/hx-date-picker/hx-date-picker.styles.d.ts.map +1 -1
  86. package/dist/components/hx-date-picker/index.js +1 -1
  87. package/dist/components/hx-dialog/hx-dialog.d.ts +4 -1
  88. package/dist/components/hx-dialog/hx-dialog.d.ts.map +1 -1
  89. package/dist/components/hx-dialog/index.js +1 -1
  90. package/dist/components/hx-divider/hx-divider.d.ts.map +1 -1
  91. package/dist/components/hx-divider/index.js +1 -1
  92. package/dist/components/hx-drawer/hx-drawer.d.ts +5 -8
  93. package/dist/components/hx-drawer/hx-drawer.d.ts.map +1 -1
  94. package/dist/components/hx-drawer/hx-drawer.styles.d.ts.map +1 -1
  95. package/dist/components/hx-drawer/index.js +1 -1
  96. package/dist/components/hx-dropdown/hx-dropdown.d.ts +14 -1
  97. package/dist/components/hx-dropdown/hx-dropdown.d.ts.map +1 -1
  98. package/dist/components/hx-dropdown/index.js +1 -1
  99. package/dist/components/hx-field/hx-field.d.ts +1 -1
  100. package/dist/components/hx-field/hx-field.d.ts.map +1 -1
  101. package/dist/components/hx-field/index.js +1 -1
  102. package/dist/components/hx-field-label/hx-field-label.styles.d.ts.map +1 -1
  103. package/dist/components/hx-field-label/index.js +1 -1
  104. package/dist/components/hx-file-upload/hx-file-upload.d.ts +8 -9
  105. package/dist/components/hx-file-upload/hx-file-upload.d.ts.map +1 -1
  106. package/dist/components/hx-file-upload/index.js +1 -1
  107. package/dist/components/hx-form/hx-form.d.ts.map +1 -1
  108. package/dist/components/hx-form/index.js +1 -1
  109. package/dist/components/hx-format-date/hx-format-date.d.ts.map +1 -1
  110. package/dist/components/hx-format-date/index.js +1 -1
  111. package/dist/components/hx-grid/hx-grid.d.ts +5 -9
  112. package/dist/components/hx-grid/hx-grid.d.ts.map +1 -1
  113. package/dist/components/hx-grid/index.js +1 -1
  114. package/dist/components/hx-icon/hx-icon.d.ts.map +1 -1
  115. package/dist/components/hx-icon/index.js +1 -1
  116. package/dist/components/hx-icon-button/hx-icon-button.d.ts +4 -3
  117. package/dist/components/hx-icon-button/hx-icon-button.d.ts.map +1 -1
  118. package/dist/components/hx-icon-button/index.js +1 -1
  119. package/dist/components/hx-image/hx-image.d.ts.map +1 -1
  120. package/dist/components/hx-image/index.js +1 -1
  121. package/dist/components/hx-link/hx-link.d.ts +1 -1
  122. package/dist/components/hx-link/hx-link.d.ts.map +1 -1
  123. package/dist/components/hx-link/hx-link.styles.d.ts.map +1 -1
  124. package/dist/components/hx-link/index.js +1 -1
  125. package/dist/components/hx-meter/hx-meter.d.ts +2 -2
  126. package/dist/components/hx-meter/hx-meter.d.ts.map +1 -1
  127. package/dist/components/hx-meter/index.js +1 -1
  128. package/dist/components/hx-nav/hx-nav.d.ts.map +1 -1
  129. package/dist/components/hx-nav/index.js +1 -1
  130. package/dist/components/hx-number-input/hx-number-input.d.ts +19 -7
  131. package/dist/components/hx-number-input/hx-number-input.d.ts.map +1 -1
  132. package/dist/components/hx-number-input/index.js +1 -1
  133. package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts +3 -3
  134. package/dist/components/hx-overflow-menu/hx-overflow-menu.styles.d.ts.map +1 -1
  135. package/dist/components/hx-overflow-menu/index.js +1 -1
  136. package/dist/components/hx-pagination/hx-pagination.d.ts +26 -12
  137. package/dist/components/hx-pagination/hx-pagination.d.ts.map +1 -1
  138. package/dist/components/hx-pagination/hx-pagination.styles.d.ts.map +1 -1
  139. package/dist/components/hx-pagination/index.js +1 -1
  140. package/dist/components/hx-patient-banner/hx-patient-banner.d.ts +105 -0
  141. package/dist/components/hx-patient-banner/hx-patient-banner.d.ts.map +1 -0
  142. package/dist/components/hx-patient-banner/hx-patient-banner.styles.d.ts +2 -0
  143. package/dist/components/hx-patient-banner/hx-patient-banner.styles.d.ts.map +1 -0
  144. package/dist/components/hx-patient-banner/index.d.ts +3 -0
  145. package/dist/components/hx-patient-banner/index.d.ts.map +1 -0
  146. package/dist/components/hx-patient-banner/index.js +5 -0
  147. package/dist/components/hx-patient-banner/index.js.map +1 -0
  148. package/dist/components/hx-phi-field/hx-phi-field.d.ts +72 -0
  149. package/dist/components/hx-phi-field/hx-phi-field.d.ts.map +1 -0
  150. package/dist/components/hx-phi-field/hx-phi-field.styles.d.ts +2 -0
  151. package/dist/components/hx-phi-field/hx-phi-field.styles.d.ts.map +1 -0
  152. package/dist/components/hx-phi-field/index.d.ts +3 -0
  153. package/dist/components/hx-phi-field/index.d.ts.map +1 -0
  154. package/dist/components/hx-phi-field/index.js +5 -0
  155. package/dist/components/hx-phi-field/index.js.map +1 -0
  156. package/dist/components/hx-popover/hx-popover.d.ts +25 -9
  157. package/dist/components/hx-popover/hx-popover.d.ts.map +1 -1
  158. package/dist/components/hx-popover/index.js +1 -1
  159. package/dist/components/hx-popup/hx-popup.d.ts +5 -8
  160. package/dist/components/hx-popup/hx-popup.d.ts.map +1 -1
  161. package/dist/components/hx-popup/index.js +1 -1
  162. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts +2 -0
  163. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts.map +1 -1
  164. package/dist/components/hx-progress-bar/hx-progress-bar.styles.d.ts.map +1 -1
  165. package/dist/components/hx-progress-bar/index.js +1 -1
  166. package/dist/components/hx-progress-ring/hx-progress-ring.d.ts.map +1 -1
  167. package/dist/components/hx-progress-ring/index.js +1 -1
  168. package/dist/components/hx-prose/hx-prose.d.ts +1 -0
  169. package/dist/components/hx-prose/hx-prose.d.ts.map +1 -1
  170. package/dist/components/hx-radio-group/hx-radio-group.d.ts +3 -7
  171. package/dist/components/hx-radio-group/hx-radio-group.d.ts.map +1 -1
  172. package/dist/components/hx-radio-group/hx-radio.d.ts.map +1 -1
  173. package/dist/components/hx-radio-group/hx-radio.styles.d.ts.map +1 -1
  174. package/dist/components/hx-radio-group/index.js +1 -1
  175. package/dist/components/hx-rating/hx-rating.d.ts +3 -3
  176. package/dist/components/hx-rating/hx-rating.d.ts.map +1 -1
  177. package/dist/components/hx-rating/hx-rating.styles.d.ts.map +1 -1
  178. package/dist/components/hx-rating/index.js +1 -1
  179. package/dist/components/hx-select/hx-select.d.ts +16 -11
  180. package/dist/components/hx-select/hx-select.d.ts.map +1 -1
  181. package/dist/components/hx-select/hx-select.styles.d.ts.map +1 -1
  182. package/dist/components/hx-select/index.js +1 -1
  183. package/dist/components/hx-side-nav/hx-nav-item.d.ts +7 -0
  184. package/dist/components/hx-side-nav/hx-nav-item.d.ts.map +1 -1
  185. package/dist/components/hx-side-nav/hx-nav-item.styles.d.ts.map +1 -1
  186. package/dist/components/hx-side-nav/hx-side-nav.d.ts.map +1 -1
  187. package/dist/components/hx-side-nav/hx-side-nav.styles.d.ts.map +1 -1
  188. package/dist/components/hx-side-nav/index.js +1 -1
  189. package/dist/components/hx-skeleton/hx-skeleton.d.ts +2 -2
  190. package/dist/components/hx-skeleton/hx-skeleton.d.ts.map +1 -1
  191. package/dist/components/hx-slider/hx-slider.d.ts +5 -8
  192. package/dist/components/hx-slider/hx-slider.d.ts.map +1 -1
  193. package/dist/components/hx-slider/hx-slider.styles.d.ts.map +1 -1
  194. package/dist/components/hx-slider/index.js +1 -1
  195. package/dist/components/hx-spinner/hx-spinner.d.ts +14 -1
  196. package/dist/components/hx-spinner/hx-spinner.d.ts.map +1 -1
  197. package/dist/components/hx-spinner/hx-spinner.styles.d.ts.map +1 -1
  198. package/dist/components/hx-spinner/index.js +1 -1
  199. package/dist/components/hx-split-button/hx-split-button.d.ts +10 -4
  200. package/dist/components/hx-split-button/hx-split-button.d.ts.map +1 -1
  201. package/dist/components/hx-split-button/hx-split-button.styles.d.ts.map +1 -1
  202. package/dist/components/hx-split-button/index.js +1 -1
  203. package/dist/components/hx-split-panel/hx-split-panel.d.ts +13 -9
  204. package/dist/components/hx-split-panel/hx-split-panel.d.ts.map +1 -1
  205. package/dist/components/hx-split-panel/hx-split-panel.styles.d.ts.map +1 -1
  206. package/dist/components/hx-split-panel/index.js +1 -1
  207. package/dist/components/hx-stat/hx-stat.d.ts +7 -2
  208. package/dist/components/hx-stat/hx-stat.d.ts.map +1 -1
  209. package/dist/components/hx-stat/index.js +1 -1
  210. package/dist/components/hx-status-indicator/hx-status-indicator.d.ts +2 -2
  211. package/dist/components/hx-status-indicator/hx-status-indicator.d.ts.map +1 -1
  212. package/dist/components/hx-status-indicator/index.js +1 -1
  213. package/dist/components/hx-steps/hx-step.styles.d.ts.map +1 -1
  214. package/dist/components/hx-steps/hx-steps.d.ts.map +1 -1
  215. package/dist/components/hx-steps/index.js +1 -1
  216. package/dist/components/hx-structured-list/hx-structured-list.d.ts +10 -3
  217. package/dist/components/hx-structured-list/hx-structured-list.d.ts.map +1 -1
  218. package/dist/components/hx-structured-list/index.js +1 -1
  219. package/dist/components/hx-style-scope/hx-style-scope.d.ts +71 -0
  220. package/dist/components/hx-style-scope/hx-style-scope.d.ts.map +1 -0
  221. package/dist/components/hx-style-scope/hx-style-scope.styles.d.ts +10 -0
  222. package/dist/components/hx-style-scope/hx-style-scope.styles.d.ts.map +1 -0
  223. package/dist/components/hx-style-scope/index.d.ts +2 -0
  224. package/dist/components/hx-style-scope/index.d.ts.map +1 -0
  225. package/dist/components/hx-style-scope/index.js +5 -0
  226. package/dist/components/hx-style-scope/index.js.map +1 -0
  227. package/dist/components/hx-switch/hx-switch.d.ts +4 -4
  228. package/dist/components/hx-switch/hx-switch.d.ts.map +1 -1
  229. package/dist/components/hx-switch/hx-switch.styles.d.ts.map +1 -1
  230. package/dist/components/hx-switch/index.js +1 -1
  231. package/dist/components/hx-table/hx-table.d.ts +1 -0
  232. package/dist/components/hx-table/hx-table.d.ts.map +1 -1
  233. package/dist/components/hx-table/index.js +1 -1
  234. package/dist/components/hx-tabs/hx-tab-panel.styles.d.ts.map +1 -1
  235. package/dist/components/hx-tabs/hx-tab.d.ts +1 -0
  236. package/dist/components/hx-tabs/hx-tab.d.ts.map +1 -1
  237. package/dist/components/hx-tabs/hx-tab.styles.d.ts.map +1 -1
  238. package/dist/components/hx-tabs/hx-tabs.d.ts +2 -2
  239. package/dist/components/hx-tabs/hx-tabs.d.ts.map +1 -1
  240. package/dist/components/hx-tabs/index.js +1 -1
  241. package/dist/components/hx-tag/hx-tag.styles.d.ts.map +1 -1
  242. package/dist/components/hx-tag/index.js +1 -1
  243. package/dist/components/hx-text/index.js +1 -1
  244. package/dist/components/hx-text-input/hx-text-input.d.ts +16 -15
  245. package/dist/components/hx-text-input/hx-text-input.d.ts.map +1 -1
  246. package/dist/components/hx-text-input/hx-text-input.styles.d.ts.map +1 -1
  247. package/dist/components/hx-text-input/index.js +1 -1
  248. package/dist/components/hx-textarea/hx-textarea.d.ts +4 -4
  249. package/dist/components/hx-textarea/hx-textarea.d.ts.map +1 -1
  250. package/dist/components/hx-textarea/hx-textarea.styles.d.ts.map +1 -1
  251. package/dist/components/hx-textarea/index.js +1 -1
  252. package/dist/components/hx-theme/hx-theme.d.ts +82 -3
  253. package/dist/components/hx-theme/hx-theme.d.ts.map +1 -1
  254. package/dist/components/hx-theme/index.js +1 -1
  255. package/dist/components/hx-time-picker/hx-time-picker.d.ts +6 -1
  256. package/dist/components/hx-time-picker/hx-time-picker.d.ts.map +1 -1
  257. package/dist/components/hx-time-picker/index.js +1 -1
  258. package/dist/components/hx-toast/hx-toast-stack.d.ts +1 -1
  259. package/dist/components/hx-toast/hx-toast-stack.d.ts.map +1 -1
  260. package/dist/components/hx-toast/hx-toast.d.ts +9 -5
  261. package/dist/components/hx-toast/hx-toast.d.ts.map +1 -1
  262. package/dist/components/hx-toast/hx-toast.styles.d.ts.map +1 -1
  263. package/dist/components/hx-toast/index.js +1 -1
  264. package/dist/components/hx-toast/toast-factory.d.ts.map +1 -1
  265. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts +4 -3
  266. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts.map +1 -1
  267. package/dist/components/hx-toggle-button/hx-toggle-button.styles.d.ts.map +1 -1
  268. package/dist/components/hx-toggle-button/index.js +1 -1
  269. package/dist/components/hx-tooltip/hx-tooltip.d.ts +1 -2
  270. package/dist/components/hx-tooltip/hx-tooltip.d.ts.map +1 -1
  271. package/dist/components/hx-tooltip/index.js +1 -1
  272. package/dist/components/hx-tree-view/hx-tree-item.d.ts +7 -0
  273. package/dist/components/hx-tree-view/hx-tree-item.d.ts.map +1 -1
  274. package/dist/components/hx-tree-view/hx-tree-view.d.ts +21 -2
  275. package/dist/components/hx-tree-view/hx-tree-view.d.ts.map +1 -1
  276. package/dist/components/hx-tree-view/hx-tree-view.styles.d.ts.map +1 -1
  277. package/dist/components/hx-tree-view/index.js +1 -1
  278. package/dist/controllers/helix-audit-controller.d.ts +71 -0
  279. package/dist/controllers/helix-audit-controller.d.ts.map +1 -0
  280. package/dist/css/helix-all.css +9592 -0
  281. package/dist/css/helix-core.css +1788 -0
  282. package/dist/css/helix-data.css +639 -0
  283. package/dist/css/helix-feedback.css +1239 -0
  284. package/dist/css/helix-forms.css +2498 -0
  285. package/dist/css/helix-layout.css +380 -0
  286. package/dist/css/helix-media.css +213 -0
  287. package/dist/css/helix-navigation.css +1129 -0
  288. package/dist/css/helix-overlay.css +643 -0
  289. package/dist/css/helix-tokens.css +432 -0
  290. package/dist/css/helix-utility.css +633 -0
  291. package/dist/css/hx-accordion.css +10 -0
  292. package/dist/css/hx-action-bar.css +117 -0
  293. package/dist/css/hx-alert.css +213 -0
  294. package/dist/css/hx-avatar.css +117 -0
  295. package/dist/css/hx-badge.css +178 -0
  296. package/dist/css/hx-banner.css +203 -0
  297. package/dist/css/hx-breadcrumb.css +36 -0
  298. package/dist/css/hx-button-group.css +91 -0
  299. package/dist/css/hx-button.css +262 -0
  300. package/dist/css/hx-card.css +161 -0
  301. package/dist/css/hx-carousel.css +211 -0
  302. package/dist/css/hx-checkbox-group.css +77 -0
  303. package/dist/css/hx-checkbox.css +219 -0
  304. package/dist/css/hx-clinical-status.css +246 -0
  305. package/dist/css/hx-code-snippet.css +179 -0
  306. package/dist/css/hx-color-picker.css +2 -0
  307. package/dist/css/hx-combobox.css +2 -0
  308. package/dist/css/hx-container.css +82 -0
  309. package/dist/css/hx-copy-button.css +121 -0
  310. package/dist/css/hx-counter.css +51 -0
  311. package/dist/css/hx-data-table.css +207 -0
  312. package/dist/css/hx-date-picker.css +2 -0
  313. package/dist/css/hx-dialog.css +190 -0
  314. package/dist/css/hx-divider.css +87 -0
  315. package/dist/css/hx-drawer.css +262 -0
  316. package/dist/css/hx-dropdown.css +46 -0
  317. package/dist/css/hx-field-label.css +38 -0
  318. package/dist/css/hx-field.css +119 -0
  319. package/dist/css/hx-file-upload.css +241 -0
  320. package/dist/css/hx-form.css +2 -0
  321. package/dist/css/hx-format-date.css +10 -0
  322. package/dist/css/hx-grid.css +14 -0
  323. package/dist/css/hx-help-text.css +50 -0
  324. package/dist/css/hx-icon-button.css +152 -0
  325. package/dist/css/hx-icon.css +73 -0
  326. package/dist/css/hx-image.css +41 -0
  327. package/dist/css/hx-link.css +105 -0
  328. package/dist/css/hx-list.css +48 -0
  329. package/dist/css/hx-menu.css +21 -0
  330. package/dist/css/hx-meter.css +113 -0
  331. package/dist/css/hx-nav.css +242 -0
  332. package/dist/css/hx-number-input.css +246 -0
  333. package/dist/css/hx-overflow-menu.css +133 -0
  334. package/dist/css/hx-pagination.css +193 -0
  335. package/dist/css/hx-patient-banner.css +111 -0
  336. package/dist/css/hx-phi-field.css +85 -0
  337. package/dist/css/hx-popover.css +61 -0
  338. package/dist/css/hx-popup.css +31 -0
  339. package/dist/css/hx-progress-bar.css +133 -0
  340. package/dist/css/hx-progress-ring.css +142 -0
  341. package/dist/css/hx-prose.css +2 -0
  342. package/dist/css/hx-radio-group.css +77 -0
  343. package/dist/css/hx-rating.css +96 -0
  344. package/dist/css/hx-select.css +268 -0
  345. package/dist/css/hx-side-nav.css +149 -0
  346. package/dist/css/hx-skeleton.css +82 -0
  347. package/dist/css/hx-slider.css +287 -0
  348. package/dist/css/hx-spinner.css +116 -0
  349. package/dist/css/hx-split-button.css +309 -0
  350. package/dist/css/hx-split-panel.css +168 -0
  351. package/dist/css/hx-stack.css +104 -0
  352. package/dist/css/hx-stat.css +106 -0
  353. package/dist/css/hx-status-indicator.css +97 -0
  354. package/dist/css/hx-steps.css +52 -0
  355. package/dist/css/hx-structured-list.css +75 -0
  356. package/dist/css/hx-style-scope.css +4 -0
  357. package/dist/css/hx-switch.css +169 -0
  358. package/dist/css/hx-table.css +128 -0
  359. package/dist/css/hx-tabs.css +76 -0
  360. package/dist/css/hx-tag.css +146 -0
  361. package/dist/css/hx-text-input.css +214 -0
  362. package/dist/css/hx-text.css +149 -0
  363. package/dist/css/hx-textarea.css +180 -0
  364. package/dist/css/hx-theme.css +23 -0
  365. package/dist/css/hx-time-picker.css +2 -0
  366. package/dist/css/hx-toast.css +230 -0
  367. package/dist/css/hx-toggle-button.css +207 -0
  368. package/dist/css/hx-tooltip.css +51 -0
  369. package/dist/css/hx-top-nav.css +203 -0
  370. package/dist/css/hx-tree-view.css +22 -0
  371. package/dist/css/hx-visually-hidden.css +26 -0
  372. package/dist/css/index.css +84 -0
  373. package/dist/css/manifest.json +2696 -0
  374. package/dist/index.d.ts +14 -0
  375. package/dist/index.d.ts.map +1 -1
  376. package/dist/index.js +266 -176
  377. package/dist/index.js.map +1 -1
  378. package/dist/mixins/FocusMixin.d.ts +49 -0
  379. package/dist/mixins/FocusMixin.d.ts.map +1 -0
  380. package/dist/mixins/FormMixin.d.ts +69 -0
  381. package/dist/mixins/FormMixin.d.ts.map +1 -0
  382. package/dist/mixins/aria-delegation.d.ts +97 -0
  383. package/dist/mixins/aria-delegation.d.ts.map +1 -0
  384. package/dist/mixins/index.d.ts +5 -0
  385. package/dist/mixins/index.d.ts.map +1 -0
  386. package/dist/shared/FormMixin-Bjvw20G5.js +88 -0
  387. package/dist/shared/FormMixin-Bjvw20G5.js.map +1 -0
  388. package/dist/shared/aria-delegation-CBP9eQ0M.js +107 -0
  389. package/dist/shared/aria-delegation-CBP9eQ0M.js.map +1 -0
  390. package/dist/shared/{hx-accordion-D1kFhdeQ.js → hx-accordion-_KeulaQR.js} +83 -55
  391. package/dist/shared/hx-accordion-_KeulaQR.js.map +1 -0
  392. package/dist/shared/{hx-action-bar-D4bulGQP.js → hx-action-bar-vGFnNwNY.js} +33 -34
  393. package/dist/shared/hx-action-bar-vGFnNwNY.js.map +1 -0
  394. package/dist/shared/{hx-alert-K5F8KeqI.js → hx-alert-DRZYP0Oo.js} +32 -23
  395. package/dist/shared/hx-alert-DRZYP0Oo.js.map +1 -0
  396. package/dist/shared/{hx-avatar-Cun-O99h.js → hx-avatar-7p1cj3lG.js} +2 -2
  397. package/dist/shared/hx-avatar-7p1cj3lG.js.map +1 -0
  398. package/dist/shared/{hx-badge-CsFd2xtw.js → hx-badge-Xg7zoh4Q.js} +46 -37
  399. package/dist/shared/hx-badge-Xg7zoh4Q.js.map +1 -0
  400. package/dist/shared/{hx-banner-BTV-X2xF.js → hx-banner-2RS7Nux4.js} +93 -58
  401. package/dist/shared/hx-banner-2RS7Nux4.js.map +1 -0
  402. package/dist/shared/{hx-breadcrumb-item-4IwaLgaO.js → hx-breadcrumb-item-B2rjepqy.js} +79 -78
  403. package/dist/shared/hx-breadcrumb-item-B2rjepqy.js.map +1 -0
  404. package/dist/shared/{hx-button-7k-KeCYU.js → hx-button-6S3DwuIj.js} +81 -56
  405. package/dist/shared/hx-button-6S3DwuIj.js.map +1 -0
  406. package/dist/shared/{hx-button-group-CWjWv-wS.js → hx-button-group-ChTQsnQj.js} +10 -10
  407. package/dist/shared/hx-button-group-ChTQsnQj.js.map +1 -0
  408. package/dist/shared/{hx-card-0hT3G5hi.js → hx-card-dIKdcMhr.js} +32 -32
  409. package/dist/shared/hx-card-dIKdcMhr.js.map +1 -0
  410. package/dist/shared/{hx-carousel-item-DgeYyYZJ.js → hx-carousel-item-Cm8a1nAi.js} +3 -3
  411. package/dist/shared/hx-carousel-item-Cm8a1nAi.js.map +1 -0
  412. package/dist/shared/{hx-checkbox-BvjO-O41.js → hx-checkbox-_WUiuTo9.js} +68 -71
  413. package/dist/shared/hx-checkbox-_WUiuTo9.js.map +1 -0
  414. package/dist/shared/{hx-checkbox-group-Z5VvWzcj.js → hx-checkbox-group-B-ci-dxp.js} +37 -31
  415. package/dist/shared/hx-checkbox-group-B-ci-dxp.js.map +1 -0
  416. package/dist/shared/hx-clinical-status-De8yrA5I.js +467 -0
  417. package/dist/shared/hx-clinical-status-De8yrA5I.js.map +1 -0
  418. package/dist/shared/{hx-code-snippet-DqzPkH4K.js → hx-code-snippet-CQsyvthi.js} +56 -47
  419. package/dist/shared/hx-code-snippet-CQsyvthi.js.map +1 -0
  420. package/dist/shared/{hx-color-picker-Da8z6AlQ.js → hx-color-picker-Dk2Myvaf.js} +153 -137
  421. package/dist/shared/hx-color-picker-Dk2Myvaf.js.map +1 -0
  422. package/dist/shared/{hx-combobox-CivfelTS.js → hx-combobox-CNAJXIxo.js} +10 -10
  423. package/dist/shared/hx-combobox-CNAJXIxo.js.map +1 -0
  424. package/dist/shared/{hx-container-DLUKnTi9.js → hx-container-7j16VuQE.js} +16 -16
  425. package/dist/shared/hx-container-7j16VuQE.js.map +1 -0
  426. package/dist/shared/{hx-copy-button--0dymSvw.js → hx-copy-button-B_ZHYO7_.js} +47 -40
  427. package/dist/shared/hx-copy-button-B_ZHYO7_.js.map +1 -0
  428. package/dist/shared/hx-counter-D_B7L9Pi.js +185 -0
  429. package/dist/shared/hx-counter-D_B7L9Pi.js.map +1 -0
  430. package/dist/shared/{hx-data-table-DujB9hSE.js → hx-data-table-B1j4n4bm.js} +134 -107
  431. package/dist/shared/hx-data-table-B1j4n4bm.js.map +1 -0
  432. package/dist/shared/{hx-date-picker-C8d2HtRV.js → hx-date-picker-R-0kWFwr.js} +146 -130
  433. package/dist/shared/hx-date-picker-R-0kWFwr.js.map +1 -0
  434. package/dist/shared/{hx-dialog-DkUSnVgw.js → hx-dialog-U5d3s0Ps.js} +98 -89
  435. package/dist/shared/hx-dialog-U5d3s0Ps.js.map +1 -0
  436. package/dist/shared/{hx-divider-DNNs4e8q.js → hx-divider-DdAN-_jB.js} +5 -5
  437. package/dist/shared/hx-divider-DdAN-_jB.js.map +1 -0
  438. package/dist/shared/{hx-drawer-CJcRZcns.js → hx-drawer-e0qeGxAD.js} +117 -77
  439. package/dist/shared/hx-drawer-e0qeGxAD.js.map +1 -0
  440. package/dist/shared/{hx-dropdown-Bo0KTM1A.js → hx-dropdown-DP_DNpEb.js} +56 -41
  441. package/dist/shared/hx-dropdown-DP_DNpEb.js.map +1 -0
  442. package/dist/shared/{hx-field-3MmzJ4kZ.js → hx-field-COM4KvMQ.js} +9 -9
  443. package/dist/shared/hx-field-COM4KvMQ.js.map +1 -0
  444. package/dist/shared/{hx-field-label-Bg-EWvqF.js → hx-field-label-BtZ9H9Yy.js} +8 -11
  445. package/dist/shared/hx-field-label-BtZ9H9Yy.js.map +1 -0
  446. package/dist/shared/{hx-file-upload-ByjAgfNy.js → hx-file-upload-DbECypLe.js} +78 -87
  447. package/dist/shared/hx-file-upload-DbECypLe.js.map +1 -0
  448. package/dist/shared/{hx-form-BpS6v3Iu.js → hx-form-fJE-FJQV.js} +36 -32
  449. package/dist/shared/{hx-form-BpS6v3Iu.js.map → hx-form-fJE-FJQV.js.map} +1 -1
  450. package/dist/shared/{hx-format-date-BdnWV2kX.js → hx-format-date-C030ThSm.js} +14 -12
  451. package/dist/shared/hx-format-date-C030ThSm.js.map +1 -0
  452. package/dist/shared/{hx-grid-gEjuF0cR.js → hx-grid-DE8KM5Gf.js} +7 -7
  453. package/dist/shared/hx-grid-DE8KM5Gf.js.map +1 -0
  454. package/dist/shared/{hx-icon-button-DzH_bRtC.js → hx-icon-button-Et9wq79n.js} +4 -4
  455. package/dist/shared/{hx-icon-button-DzH_bRtC.js.map → hx-icon-button-Et9wq79n.js.map} +1 -1
  456. package/dist/shared/{hx-icon-CP6OnLoM.js → hx-icon-dYvrzvsO.js} +7 -7
  457. package/dist/shared/hx-icon-dYvrzvsO.js.map +1 -0
  458. package/dist/shared/{hx-image-C6pGiI6c.js → hx-image-DUsEi-oN.js} +15 -15
  459. package/dist/shared/hx-image-DUsEi-oN.js.map +1 -0
  460. package/dist/shared/{hx-link-Tmk_YPvW.js → hx-link-Peg2LzOD.js} +43 -41
  461. package/dist/shared/hx-link-Peg2LzOD.js.map +1 -0
  462. package/dist/shared/{hx-meter-uXkTZq-W.js → hx-meter-CVs4A649.js} +13 -13
  463. package/dist/shared/hx-meter-CVs4A649.js.map +1 -0
  464. package/dist/shared/{hx-nav-3JsN2Oak.js → hx-nav-D377Ngz4.js} +23 -24
  465. package/dist/shared/hx-nav-D377Ngz4.js.map +1 -0
  466. package/dist/shared/{hx-nav-item-D3EJatzc.js → hx-nav-item-CuGiJPAf.js} +75 -49
  467. package/dist/shared/hx-nav-item-CuGiJPAf.js.map +1 -0
  468. package/dist/shared/{hx-number-input-CAAibZ8X.js → hx-number-input-BPgrlMLN.js} +70 -66
  469. package/dist/shared/hx-number-input-BPgrlMLN.js.map +1 -0
  470. package/dist/shared/{hx-overflow-menu-2kgOJ_ht.js → hx-overflow-menu-Bz02LPPk.js} +15 -11
  471. package/dist/shared/hx-overflow-menu-Bz02LPPk.js.map +1 -0
  472. package/dist/shared/{hx-pagination-DBs-vmSv.js → hx-pagination-DYhYPqDn.js} +68 -63
  473. package/dist/shared/hx-pagination-DYhYPqDn.js.map +1 -0
  474. package/dist/shared/hx-patient-banner-BoJHddAL.js +256 -0
  475. package/dist/shared/hx-patient-banner-BoJHddAL.js.map +1 -0
  476. package/dist/shared/hx-phi-field-EDWna59z.js +261 -0
  477. package/dist/shared/hx-phi-field-EDWna59z.js.map +1 -0
  478. package/dist/shared/{hx-popover-DxE67miP.js → hx-popover-D6kYQkt3.js} +96 -69
  479. package/dist/shared/hx-popover-D6kYQkt3.js.map +1 -0
  480. package/dist/shared/{hx-popup-Dg6n_PbY.js → hx-popup-RQb6HUXc.js} +2 -2
  481. package/dist/shared/hx-popup-RQb6HUXc.js.map +1 -0
  482. package/dist/shared/{hx-progress-bar-Dm_EHyng.js → hx-progress-bar-ByEmxq1V.js} +42 -40
  483. package/dist/shared/hx-progress-bar-ByEmxq1V.js.map +1 -0
  484. package/dist/shared/{hx-progress-ring-DpxBDD5d.js → hx-progress-ring-CtVnNRQx.js} +2 -2
  485. package/dist/shared/{hx-progress-ring-DpxBDD5d.js.map → hx-progress-ring-CtVnNRQx.js.map} +1 -1
  486. package/dist/shared/hx-prose-Ml_L2zje.js.map +1 -1
  487. package/dist/shared/{hx-radio-BywgVSEu.js → hx-radio-jgeW92SV.js} +28 -27
  488. package/dist/shared/hx-radio-jgeW92SV.js.map +1 -0
  489. package/dist/shared/{hx-rating-CUWBQ0fZ.js → hx-rating-g_iy-DW_.js} +92 -96
  490. package/dist/shared/hx-rating-g_iy-DW_.js.map +1 -0
  491. package/dist/shared/{hx-select-BwDwxk-M.js → hx-select-4-nHL0vd.js} +73 -61
  492. package/dist/shared/hx-select-4-nHL0vd.js.map +1 -0
  493. package/dist/shared/hx-skeleton-BHvALyd7.js.map +1 -1
  494. package/dist/shared/{hx-slider-D_0EKJyk.js → hx-slider-7Q-e0_pc.js} +27 -22
  495. package/dist/shared/hx-slider-7Q-e0_pc.js.map +1 -0
  496. package/dist/shared/{hx-spinner-DMn4SChS.js → hx-spinner-DEgrKsUo.js} +3 -2
  497. package/dist/shared/hx-spinner-DEgrKsUo.js.map +1 -0
  498. package/dist/shared/{hx-split-button-CypgLXw1.js → hx-split-button-BA7P_ly5.js} +40 -31
  499. package/dist/shared/hx-split-button-BA7P_ly5.js.map +1 -0
  500. package/dist/shared/{hx-split-panel-BPMWKPGu.js → hx-split-panel-Bss54UN8.js} +28 -28
  501. package/dist/shared/hx-split-panel-Bss54UN8.js.map +1 -0
  502. package/dist/shared/{hx-stat-CHntLHJM.js → hx-stat-CmkCUI8v.js} +40 -32
  503. package/dist/shared/{hx-stat-CHntLHJM.js.map → hx-stat-CmkCUI8v.js.map} +1 -1
  504. package/dist/shared/{hx-status-indicator-C1BwEvUw.js → hx-status-indicator-4ClvA5mU.js} +19 -19
  505. package/dist/shared/hx-status-indicator-4ClvA5mU.js.map +1 -0
  506. package/dist/shared/{hx-step-BIVWSPxd.js → hx-step-DlANlr2A.js} +31 -71
  507. package/dist/shared/hx-step-DlANlr2A.js.map +1 -0
  508. package/dist/shared/{hx-structured-list-CMWllxGg.js → hx-structured-list-Db9rwLI_.js} +26 -23
  509. package/dist/shared/hx-structured-list-Db9rwLI_.js.map +1 -0
  510. package/dist/shared/hx-style-scope-BroUu83L.js +125 -0
  511. package/dist/shared/hx-style-scope-BroUu83L.js.map +1 -0
  512. package/dist/shared/{hx-switch-BgX8kuWt.js → hx-switch-C0Lp5RGy.js} +8 -5
  513. package/dist/shared/hx-switch-C0Lp5RGy.js.map +1 -0
  514. package/dist/shared/{hx-tab-panel-DhOq67jj.js → hx-tab-panel-GGjk6Qg4.js} +129 -118
  515. package/dist/shared/hx-tab-panel-GGjk6Qg4.js.map +1 -0
  516. package/dist/shared/{hx-tag-CzOTDcXI.js → hx-tag-K5fCjfqQ.js} +15 -14
  517. package/dist/shared/hx-tag-K5fCjfqQ.js.map +1 -0
  518. package/dist/shared/{hx-td-h6oeW6YC.js → hx-td-DZuILY3s.js} +43 -40
  519. package/dist/shared/hx-td-DZuILY3s.js.map +1 -0
  520. package/dist/shared/{hx-text-DTXjiviE.js → hx-text-DoEVOf47.js} +29 -29
  521. package/dist/shared/hx-text-DoEVOf47.js.map +1 -0
  522. package/dist/shared/hx-text-input-DTKWPVdy.js +576 -0
  523. package/dist/shared/hx-text-input-DTKWPVdy.js.map +1 -0
  524. package/dist/shared/{hx-textarea-BgX7rxyo.js → hx-textarea-BkSiU8oM.js} +15 -15
  525. package/dist/shared/hx-textarea-BkSiU8oM.js.map +1 -0
  526. package/dist/shared/hx-theme-Aag8QJvT.js +299 -0
  527. package/dist/shared/hx-theme-Aag8QJvT.js.map +1 -0
  528. package/dist/shared/{hx-time-picker-DmLu7WUC.js → hx-time-picker-BpCRsh_z.js} +54 -53
  529. package/dist/shared/hx-time-picker-BpCRsh_z.js.map +1 -0
  530. package/dist/shared/{hx-toggle-button-D1jpDvSA.js → hx-toggle-button-CPFqs3eQ.js} +8 -5
  531. package/dist/shared/hx-toggle-button-CPFqs3eQ.js.map +1 -0
  532. package/dist/shared/{hx-tooltip-kh7QFPKu.js → hx-tooltip-CrO4vzeX.js} +15 -10
  533. package/dist/shared/hx-tooltip-CrO4vzeX.js.map +1 -0
  534. package/dist/shared/{hx-tree-item-BP6UF_H1.js → hx-tree-item-DTDIBRrI.js} +122 -89
  535. package/dist/shared/hx-tree-item-DTDIBRrI.js.map +1 -0
  536. package/dist/shared/id-counter-JhvVCnjh.js +143 -0
  537. package/dist/shared/id-counter-JhvVCnjh.js.map +1 -0
  538. package/dist/shared/{toast-factory-DTy-qN8r.js → toast-factory-f184Gi70.js} +57 -45
  539. package/dist/shared/toast-factory-f184Gi70.js.map +1 -0
  540. package/dist/utilities/adoptedStylesheetRegistry.d.ts +47 -0
  541. package/dist/utilities/adoptedStylesheetRegistry.d.ts.map +1 -0
  542. package/dist/utilities/generateScopedSelectors.d.ts +30 -0
  543. package/dist/utilities/generateScopedSelectors.d.ts.map +1 -0
  544. package/dist/utilities/injectLightStyles.d.ts +37 -0
  545. package/dist/utilities/injectLightStyles.d.ts.map +1 -0
  546. package/dist/utilities/lightStyleRegistry.d.ts +41 -0
  547. package/dist/utilities/lightStyleRegistry.d.ts.map +1 -0
  548. package/dist/utilities/sheetManager.d.ts +62 -0
  549. package/dist/utilities/sheetManager.d.ts.map +1 -0
  550. package/dist/utils/contrast-checker.d.ts +86 -0
  551. package/dist/utils/contrast-checker.d.ts.map +1 -0
  552. package/dist/utils/token-merger.d.ts +24 -0
  553. package/dist/utils/token-merger.d.ts.map +1 -0
  554. package/fouc.css +37 -0
  555. package/package.json +26 -6
  556. package/dist/shared/hx-accordion-D1kFhdeQ.js.map +0 -1
  557. package/dist/shared/hx-action-bar-D4bulGQP.js.map +0 -1
  558. package/dist/shared/hx-alert-K5F8KeqI.js.map +0 -1
  559. package/dist/shared/hx-avatar-Cun-O99h.js.map +0 -1
  560. package/dist/shared/hx-badge-CsFd2xtw.js.map +0 -1
  561. package/dist/shared/hx-banner-BTV-X2xF.js.map +0 -1
  562. package/dist/shared/hx-breadcrumb-item-4IwaLgaO.js.map +0 -1
  563. package/dist/shared/hx-button-7k-KeCYU.js.map +0 -1
  564. package/dist/shared/hx-button-group-CWjWv-wS.js.map +0 -1
  565. package/dist/shared/hx-card-0hT3G5hi.js.map +0 -1
  566. package/dist/shared/hx-carousel-item-DgeYyYZJ.js.map +0 -1
  567. package/dist/shared/hx-checkbox-BvjO-O41.js.map +0 -1
  568. package/dist/shared/hx-checkbox-group-Z5VvWzcj.js.map +0 -1
  569. package/dist/shared/hx-code-snippet-DqzPkH4K.js.map +0 -1
  570. package/dist/shared/hx-color-picker-Da8z6AlQ.js.map +0 -1
  571. package/dist/shared/hx-combobox-CivfelTS.js.map +0 -1
  572. package/dist/shared/hx-container-DLUKnTi9.js.map +0 -1
  573. package/dist/shared/hx-copy-button--0dymSvw.js.map +0 -1
  574. package/dist/shared/hx-counter-Duf00H7p.js +0 -147
  575. package/dist/shared/hx-counter-Duf00H7p.js.map +0 -1
  576. package/dist/shared/hx-data-table-DujB9hSE.js.map +0 -1
  577. package/dist/shared/hx-date-picker-C8d2HtRV.js.map +0 -1
  578. package/dist/shared/hx-dialog-DkUSnVgw.js.map +0 -1
  579. package/dist/shared/hx-divider-DNNs4e8q.js.map +0 -1
  580. package/dist/shared/hx-drawer-CJcRZcns.js.map +0 -1
  581. package/dist/shared/hx-dropdown-Bo0KTM1A.js.map +0 -1
  582. package/dist/shared/hx-field-3MmzJ4kZ.js.map +0 -1
  583. package/dist/shared/hx-field-label-Bg-EWvqF.js.map +0 -1
  584. package/dist/shared/hx-file-upload-ByjAgfNy.js.map +0 -1
  585. package/dist/shared/hx-format-date-BdnWV2kX.js.map +0 -1
  586. package/dist/shared/hx-grid-gEjuF0cR.js.map +0 -1
  587. package/dist/shared/hx-icon-CP6OnLoM.js.map +0 -1
  588. package/dist/shared/hx-image-C6pGiI6c.js.map +0 -1
  589. package/dist/shared/hx-link-Tmk_YPvW.js.map +0 -1
  590. package/dist/shared/hx-meter-uXkTZq-W.js.map +0 -1
  591. package/dist/shared/hx-nav-3JsN2Oak.js.map +0 -1
  592. package/dist/shared/hx-nav-item-D3EJatzc.js.map +0 -1
  593. package/dist/shared/hx-number-input-CAAibZ8X.js.map +0 -1
  594. package/dist/shared/hx-overflow-menu-2kgOJ_ht.js.map +0 -1
  595. package/dist/shared/hx-pagination-DBs-vmSv.js.map +0 -1
  596. package/dist/shared/hx-popover-DxE67miP.js.map +0 -1
  597. package/dist/shared/hx-popup-Dg6n_PbY.js.map +0 -1
  598. package/dist/shared/hx-progress-bar-Dm_EHyng.js.map +0 -1
  599. package/dist/shared/hx-radio-BywgVSEu.js.map +0 -1
  600. package/dist/shared/hx-rating-CUWBQ0fZ.js.map +0 -1
  601. package/dist/shared/hx-select-BwDwxk-M.js.map +0 -1
  602. package/dist/shared/hx-slider-D_0EKJyk.js.map +0 -1
  603. package/dist/shared/hx-spinner-DMn4SChS.js.map +0 -1
  604. package/dist/shared/hx-split-button-CypgLXw1.js.map +0 -1
  605. package/dist/shared/hx-split-panel-BPMWKPGu.js.map +0 -1
  606. package/dist/shared/hx-status-indicator-C1BwEvUw.js.map +0 -1
  607. package/dist/shared/hx-step-BIVWSPxd.js.map +0 -1
  608. package/dist/shared/hx-structured-list-CMWllxGg.js.map +0 -1
  609. package/dist/shared/hx-switch-BgX8kuWt.js.map +0 -1
  610. package/dist/shared/hx-tab-panel-DhOq67jj.js.map +0 -1
  611. package/dist/shared/hx-tag-CzOTDcXI.js.map +0 -1
  612. package/dist/shared/hx-td-h6oeW6YC.js.map +0 -1
  613. package/dist/shared/hx-text-DTXjiviE.js.map +0 -1
  614. package/dist/shared/hx-text-input-CqEdDHMU.js +0 -461
  615. package/dist/shared/hx-text-input-CqEdDHMU.js.map +0 -1
  616. package/dist/shared/hx-textarea-BgX7rxyo.js.map +0 -1
  617. package/dist/shared/hx-theme-6GDoUG8j.js +0 -176
  618. package/dist/shared/hx-theme-6GDoUG8j.js.map +0 -1
  619. package/dist/shared/hx-time-picker-DmLu7WUC.js.map +0 -1
  620. package/dist/shared/hx-toggle-button-D1jpDvSA.js.map +0 -1
  621. package/dist/shared/hx-tooltip-kh7QFPKu.js.map +0 -1
  622. package/dist/shared/hx-tree-item-BP6UF_H1.js.map +0 -1
  623. package/dist/shared/toast-factory-DTy-qN8r.js.map +0 -1
@@ -1,8 +1,8 @@
1
- import { css as d, LitElement as v, html as n, nothing as p } from "lit";
1
+ import { css as v, LitElement as p, html as i, nothing as c } from "lit";
2
2
  import { property as l, state as f, customElement as x } from "lit/decorators.js";
3
- import { classMap as g } from "lit/directives/class-map.js";
4
- import { tokenStyles as u } from "@helixui/tokens/lit";
5
- const _ = d`
3
+ import { classMap as u } from "lit/directives/class-map.js";
4
+ import { tokenStyles as g } from "@helixui/tokens/lit";
5
+ const _ = v`
6
6
  :host {
7
7
  display: block;
8
8
  }
@@ -109,14 +109,14 @@ const _ = d`
109
109
  display: none !important;
110
110
  }
111
111
  `;
112
- var m = Object.defineProperty, w = Object.getOwnPropertyDescriptor, s = (t, e, i, o) => {
113
- for (var a = o > 1 ? void 0 : o ? w(e, i) : e, h = t.length - 1, c; h >= 0; h--)
114
- (c = t[h]) && (a = (o ? c(e, i, a) : c(a)) || a);
115
- return o && a && m(e, i, a), a;
112
+ var m = Object.defineProperty, b = Object.getOwnPropertyDescriptor, s = (t, r, o, n) => {
113
+ for (var a = n > 1 ? void 0 : n ? b(r, o) : r, h = t.length - 1, d; h >= 0; h--)
114
+ (d = t[h]) && (a = (n ? d(r, o, a) : d(a)) || a);
115
+ return n && a && m(r, o, a), a;
116
116
  };
117
- let r = class extends v {
117
+ let e = class extends p {
118
118
  constructor() {
119
- super(...arguments), this.label = "", this.value = "", this.trend = "neutral", this.size = "md", this._hasIcon = !1;
119
+ super(...arguments), this.label = "", this.value = "", this.trend = "neutral", this.size = "md", this.labelTrend = "Trend", this._hasIcon = !1;
120
120
  }
121
121
  // ─── Lifecycle ───
122
122
  connectedCallback() {
@@ -126,13 +126,13 @@ let r = class extends v {
126
126
  }
127
127
  /** @internal */
128
128
  _onIconSlotChange(t) {
129
- const e = t.target;
130
- this._hasIcon = e.assignedNodes({ flatten: !0 }).length > 0;
129
+ const r = t.target;
130
+ this._hasIcon = r.assignedNodes({ flatten: !0 }).length > 0;
131
131
  }
132
132
  // ─── Render Helpers ───
133
133
  /** @internal */
134
134
  _renderTrendArrow(t) {
135
- return t === "up" ? n`
135
+ return t === "up" ? i`
136
136
  <svg
137
137
  class="stat__trend-arrow"
138
138
  aria-hidden="true"
@@ -148,7 +148,7 @@ let r = class extends v {
148
148
  stroke-linejoin="round"
149
149
  />
150
150
  </svg>
151
- ` : n`
151
+ ` : i`
152
152
  <svg
153
153
  class="stat__trend-arrow"
154
154
  aria-hidden="true"
@@ -171,50 +171,58 @@ let r = class extends v {
171
171
  const t = {
172
172
  stat: !0,
173
173
  [`stat--${this.size}`]: !0
174
- }, e = this.trend !== "neutral";
175
- return n`
176
- <div part="container" class=${g(t)}>
174
+ }, r = this.trend !== "neutral", o = this.value && this.label ? `${this.value}: ${this.label}` : this.value || this.label || c;
175
+ return i`
176
+ <div
177
+ part="container"
178
+ class=${u(t)}
179
+ role="group"
180
+ aria-label=${o}
181
+ >
177
182
  <div part="header" class="stat__header">
178
183
  <span part="icon" class="stat__icon" ?hidden=${!this._hasIcon}>
179
184
  <slot name="icon" @slotchange=${this._onIconSlotChange}></slot>
180
185
  </span>
181
- <span part="value" class="stat__value">${this.value}</span>
182
- ${e ? n`
186
+ <span part="value" class="stat__value" aria-hidden="true">${this.value}</span>
187
+ ${r ? i`
183
188
  <span
184
189
  part="trend"
185
190
  class="stat__trend stat__trend--${this.trend}"
186
191
  role="img"
187
- aria-label="Trend: ${this.trend}"
192
+ aria-label="${this.labelTrend}: ${this.trend}"
188
193
  >
189
194
  ${this._renderTrendArrow(this.trend)}
190
195
  </span>
191
- ` : p}
196
+ ` : c}
192
197
  </div>
193
- <span part="label" class="stat__label">${this.label}</span>
198
+ <span part="label" class="stat__label" aria-hidden="true">${this.label}</span>
194
199
  </div>
195
200
  `;
196
201
  }
197
202
  };
198
- r.styles = [u, _];
203
+ e.styles = [g, _];
199
204
  s([
200
205
  l({ type: String, reflect: !0 })
201
- ], r.prototype, "label", 2);
206
+ ], e.prototype, "label", 2);
202
207
  s([
203
208
  l({ type: String, reflect: !0 })
204
- ], r.prototype, "value", 2);
209
+ ], e.prototype, "value", 2);
205
210
  s([
206
211
  l({ type: String, reflect: !0 })
207
- ], r.prototype, "trend", 2);
212
+ ], e.prototype, "trend", 2);
208
213
  s([
209
214
  l({ type: String, reflect: !0, attribute: "hx-size" })
210
- ], r.prototype, "size", 2);
215
+ ], e.prototype, "size", 2);
216
+ s([
217
+ l({ attribute: "label-trend" })
218
+ ], e.prototype, "labelTrend", 2);
211
219
  s([
212
220
  f()
213
- ], r.prototype, "_hasIcon", 2);
214
- r = s([
221
+ ], e.prototype, "_hasIcon", 2);
222
+ e = s([
215
223
  x("hx-stat")
216
- ], r);
224
+ ], e);
217
225
  export {
218
- r as H
226
+ e as H
219
227
  };
220
- //# sourceMappingURL=hx-stat-CHntLHJM.js.map
228
+ //# sourceMappingURL=hx-stat-CmkCUI8v.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hx-stat-CHntLHJM.js","sources":["../../src/components/hx-stat/hx-stat.styles.ts","../../src/components/hx-stat/hx-stat.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixStatStyles = css`\n :host {\n display: block;\n }\n\n .stat {\n display: flex;\n flex-direction: column;\n gap: var(--hx-stat-gap, var(--hx-space-1, 0.25rem));\n font-family: var(--hx-stat-font-family, var(--hx-font-family-sans, sans-serif));\n color: var(--hx-stat-color, var(--hx-color-neutral-800, #212529));\n }\n\n /* ─── Size Variants ─── */\n\n .stat--sm .stat__value {\n font-size: var(--hx-stat-value-font-size-sm, var(--hx-font-size-xl, 1.25rem));\n line-height: var(--hx-line-height-tight, 1.25);\n font-weight: var(--hx-stat-value-font-weight, var(--hx-font-weight-bold, 700));\n }\n\n .stat--sm .stat__label {\n font-size: var(--hx-stat-label-font-size-sm, var(--hx-font-size-xs, 0.75rem));\n }\n\n .stat--md .stat__value {\n font-size: var(--hx-stat-value-font-size-md, var(--hx-font-size-3xl, 1.875rem));\n line-height: var(--hx-line-height-tight, 1.25);\n font-weight: var(--hx-stat-value-font-weight, var(--hx-font-weight-bold, 700));\n }\n\n .stat--md .stat__label {\n font-size: var(--hx-stat-label-font-size-md, var(--hx-font-size-sm, 0.875rem));\n }\n\n .stat--lg .stat__value {\n font-size: var(--hx-stat-value-font-size-lg, var(--hx-font-size-5xl, 3rem));\n line-height: var(--hx-line-height-tight, 1.25);\n font-weight: var(--hx-stat-value-font-weight, var(--hx-font-weight-bold, 700));\n }\n\n .stat--lg .stat__label {\n font-size: var(--hx-stat-label-font-size-lg, var(--hx-font-size-md, 1rem));\n }\n\n /* ─── Value ─── */\n\n .stat__header {\n display: flex;\n align-items: center;\n gap: var(--hx-stat-header-gap, var(--hx-space-2, 0.5rem));\n }\n\n .stat__value {\n color: var(--hx-stat-value-color, var(--hx-color-neutral-900, #111827));\n }\n\n /* ─── Label ─── */\n\n .stat__label {\n color: var(--hx-stat-label-color, var(--hx-color-neutral-500, #6c757d));\n font-weight: var(--hx-font-weight-normal, 400);\n }\n\n /* ─── Icon Slot ─── */\n\n .stat__icon {\n display: flex;\n align-items: center;\n color: var(--hx-stat-icon-color, var(--hx-color-primary-500, #2563eb));\n flex-shrink: 0;\n }\n\n /* ─── Trend Indicator ─── */\n\n .stat__trend {\n display: inline-flex;\n align-items: center;\n gap: var(--hx-space-1, 0.25rem);\n font-size: var(--hx-font-size-sm, 0.875rem);\n font-weight: var(--hx-font-weight-semibold, 600);\n border-radius: var(--hx-border-radius-sm, 0.25rem);\n padding: var(--hx-space-0-5, 0.125rem) var(--hx-space-1-5, 0.375rem);\n }\n\n .stat__trend--up {\n color: var(--hx-stat-trend-up-color, var(--hx-color-success-700, #15803d));\n background-color: var(--hx-stat-trend-up-bg, var(--hx-color-success-50, #f0fdf4));\n }\n\n .stat__trend--down {\n color: var(--hx-stat-trend-down-color, var(--hx-color-error-700, #b91c1c));\n background-color: var(--hx-stat-trend-down-bg, var(--hx-color-error-50, #fef2f2));\n }\n\n .stat__trend-arrow {\n width: 0.75em;\n height: 0.75em;\n flex-shrink: 0;\n }\n\n /* ─── Hidden empty slot wrappers ─── */\n\n [hidden] {\n display: none !important;\n }\n`;\n","import { LitElement, html, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { tokenStyles } from '@helixui/tokens/lit';\nimport { devWarn } from '../../utils/dev-warn.js';\nimport { helixStatStyles } from './hx-stat.styles.js';\n\nexport type StatSize = 'sm' | 'md' | 'lg';\nexport type StatTrend = 'up' | 'down' | 'neutral';\n\n/**\n * A static stat display component for presenting key metrics in a healthcare dashboard.\n *\n * @summary Displays a labeled metric value with optional trend indicator and icon slot.\n *\n * @tag hx-stat\n *\n * @slot icon - Optional icon displayed alongside the stat value.\n *\n * @csspart container - The outer stat container element.\n * @csspart header - The row containing the value and optional icon.\n * @csspart value - The stat value element.\n * @csspart label - The stat label element.\n * @csspart trend - The trend indicator element (only rendered when trend is not 'neutral').\n * @csspart icon - The icon slot container.\n *\n * @cssprop [--hx-stat-gap=var(--hx-space-1)] - Gap between value and label.\n * @cssprop [--hx-stat-header-gap=var(--hx-space-2)] - Gap between icon and value in the header row.\n * @cssprop [--hx-stat-color=var(--hx-color-neutral-800)] - Default text color.\n * @cssprop [--hx-stat-value-color=var(--hx-color-neutral-900)] - Value text color.\n * @cssprop [--hx-stat-label-color=var(--hx-color-neutral-500)] - Label text color.\n * @cssprop [--hx-stat-icon-color=var(--hx-color-primary-500)] - Icon color.\n * @cssprop [--hx-stat-value-font-weight=var(--hx-font-weight-bold)] - Value font weight.\n * @cssprop [--hx-stat-font-family=var(--hx-font-family-sans)] - Font family.\n * @cssprop [--hx-stat-value-font-size-sm=var(--hx-font-size-xl)] - Value font size at sm.\n * @cssprop [--hx-stat-value-font-size-md=var(--hx-font-size-3xl)] - Value font size at md.\n * @cssprop [--hx-stat-value-font-size-lg=var(--hx-font-size-5xl)] - Value font size at lg.\n * @cssprop [--hx-stat-label-font-size-sm=var(--hx-font-size-xs)] - Label font size at sm.\n * @cssprop [--hx-stat-label-font-size-md=var(--hx-font-size-sm)] - Label font size at md.\n * @cssprop [--hx-stat-label-font-size-lg=var(--hx-font-size-md)] - Label font size at lg.\n * @cssprop [--hx-stat-trend-up-color=var(--hx-color-success-700)] - Trend up text color.\n * @cssprop [--hx-stat-trend-up-bg=var(--hx-color-success-50)] - Trend up background color.\n * @cssprop [--hx-stat-trend-down-color=var(--hx-color-error-700)] - Trend down text color.\n * @cssprop [--hx-stat-trend-down-bg=var(--hx-color-error-50)] - Trend down background color.\n */\n@customElement('hx-stat')\nexport class HelixStat extends LitElement {\n static override styles = [tokenStyles, helixStatStyles];\n\n /**\n * The metric label displayed below the value.\n * @attr label\n */\n @property({ type: String, reflect: true })\n label = '';\n\n /**\n * The metric value displayed prominently.\n * @attr value\n */\n @property({ type: String, reflect: true })\n value = '';\n\n /**\n * Trend direction indicator. 'neutral' hides the indicator.\n * @attr trend\n */\n @property({ type: String, reflect: true })\n trend: StatTrend = 'neutral';\n\n /**\n * Size variant controlling font size.\n * @attr hx-size\n */\n @property({ type: String, reflect: true, attribute: 'hx-size' })\n size: StatSize = 'md';\n\n // ─── Lifecycle ───\n\n override connectedCallback(): void {\n super.connectedCallback();\n // Backward compat: accept legacy `size` attribute. When present and `hx-size`\n // is not set, map the value and emit a deprecation warning.\n const legacySize = this.getAttribute('size');\n if (legacySize !== null && !this.hasAttribute('hx-size')) {\n devWarn('hx-stat', 'The \"size\" attribute is deprecated. Use \"hx-size\" instead.');\n this.size = legacySize as StatSize;\n }\n }\n\n // ─── Slot Detection ───\n\n /** @internal */\n @state() private _hasIcon = false;\n\n /** @internal */\n private _onIconSlotChange(e: Event): void {\n const slot = e.target as HTMLSlotElement;\n this._hasIcon = slot.assignedNodes({ flatten: true }).length > 0;\n }\n\n // ─── Render Helpers ───\n\n /** @internal */\n private _renderTrendArrow(trend: 'up' | 'down'): ReturnType<typeof html> {\n if (trend === 'up') {\n return html`\n <svg\n class=\"stat__trend-arrow\"\n aria-hidden=\"true\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M6 10V2M6 2L2 6M6 2L10 6\"\n stroke=\"currentColor\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n `;\n }\n return html`\n <svg\n class=\"stat__trend-arrow\"\n aria-hidden=\"true\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M6 2V10M6 10L2 6M6 10L10 6\"\n stroke=\"currentColor\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n `;\n }\n\n // ─── Render ───\n\n override render() {\n const containerClasses = {\n stat: true,\n [`stat--${this.size}`]: true,\n };\n\n const hasTrend = this.trend !== 'neutral';\n\n return html`\n <div part=\"container\" class=${classMap(containerClasses)}>\n <div part=\"header\" class=\"stat__header\">\n <span part=\"icon\" class=\"stat__icon\" ?hidden=${!this._hasIcon}>\n <slot name=\"icon\" @slotchange=${this._onIconSlotChange}></slot>\n </span>\n <span part=\"value\" class=\"stat__value\">${this.value}</span>\n ${hasTrend\n ? html`\n <span\n part=\"trend\"\n class=\"stat__trend stat__trend--${this.trend}\"\n role=\"img\"\n aria-label=\"Trend: ${this.trend}\"\n >\n ${this._renderTrendArrow(this.trend as 'up' | 'down')}\n </span>\n `\n : nothing}\n </div>\n <span part=\"label\" class=\"stat__label\">${this.label}</span>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-stat': HelixStat;\n }\n}\n"],"names":["helixStatStyles","css","HelixStat","LitElement","legacySize","e","slot","trend","html","containerClasses","hasTrend","classMap","nothing","tokenStyles","__decorateClass","property","state","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"hx-stat-CmkCUI8v.js","sources":["../../src/components/hx-stat/hx-stat.styles.ts","../../src/components/hx-stat/hx-stat.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixStatStyles = css`\n :host {\n display: block;\n }\n\n .stat {\n display: flex;\n flex-direction: column;\n gap: var(--hx-stat-gap, var(--hx-space-1, 0.25rem));\n font-family: var(--hx-stat-font-family, var(--hx-font-family-sans, sans-serif));\n color: var(--hx-stat-color, var(--hx-color-neutral-800, #212529));\n }\n\n /* ─── Size Variants ─── */\n\n .stat--sm .stat__value {\n font-size: var(--hx-stat-value-font-size-sm, var(--hx-font-size-xl, 1.25rem));\n line-height: var(--hx-line-height-tight, 1.25);\n font-weight: var(--hx-stat-value-font-weight, var(--hx-font-weight-bold, 700));\n }\n\n .stat--sm .stat__label {\n font-size: var(--hx-stat-label-font-size-sm, var(--hx-font-size-xs, 0.75rem));\n }\n\n .stat--md .stat__value {\n font-size: var(--hx-stat-value-font-size-md, var(--hx-font-size-3xl, 1.875rem));\n line-height: var(--hx-line-height-tight, 1.25);\n font-weight: var(--hx-stat-value-font-weight, var(--hx-font-weight-bold, 700));\n }\n\n .stat--md .stat__label {\n font-size: var(--hx-stat-label-font-size-md, var(--hx-font-size-sm, 0.875rem));\n }\n\n .stat--lg .stat__value {\n font-size: var(--hx-stat-value-font-size-lg, var(--hx-font-size-5xl, 3rem));\n line-height: var(--hx-line-height-tight, 1.25);\n font-weight: var(--hx-stat-value-font-weight, var(--hx-font-weight-bold, 700));\n }\n\n .stat--lg .stat__label {\n font-size: var(--hx-stat-label-font-size-lg, var(--hx-font-size-md, 1rem));\n }\n\n /* ─── Value ─── */\n\n .stat__header {\n display: flex;\n align-items: center;\n gap: var(--hx-stat-header-gap, var(--hx-space-2, 0.5rem));\n }\n\n .stat__value {\n color: var(--hx-stat-value-color, var(--hx-color-neutral-900, #111827));\n }\n\n /* ─── Label ─── */\n\n .stat__label {\n color: var(--hx-stat-label-color, var(--hx-color-neutral-500, #6c757d));\n font-weight: var(--hx-font-weight-normal, 400);\n }\n\n /* ─── Icon Slot ─── */\n\n .stat__icon {\n display: flex;\n align-items: center;\n color: var(--hx-stat-icon-color, var(--hx-color-primary-500, #2563eb));\n flex-shrink: 0;\n }\n\n /* ─── Trend Indicator ─── */\n\n .stat__trend {\n display: inline-flex;\n align-items: center;\n gap: var(--hx-space-1, 0.25rem);\n font-size: var(--hx-font-size-sm, 0.875rem);\n font-weight: var(--hx-font-weight-semibold, 600);\n border-radius: var(--hx-border-radius-sm, 0.25rem);\n padding: var(--hx-space-0-5, 0.125rem) var(--hx-space-1-5, 0.375rem);\n }\n\n .stat__trend--up {\n color: var(--hx-stat-trend-up-color, var(--hx-color-success-700, #15803d));\n background-color: var(--hx-stat-trend-up-bg, var(--hx-color-success-50, #f0fdf4));\n }\n\n .stat__trend--down {\n color: var(--hx-stat-trend-down-color, var(--hx-color-error-700, #b91c1c));\n background-color: var(--hx-stat-trend-down-bg, var(--hx-color-error-50, #fef2f2));\n }\n\n .stat__trend-arrow {\n width: 0.75em;\n height: 0.75em;\n flex-shrink: 0;\n }\n\n /* ─── Hidden empty slot wrappers ─── */\n\n [hidden] {\n display: none !important;\n }\n`;\n","import { LitElement, html, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { tokenStyles } from '@helixui/tokens/lit';\nimport { devWarn } from '../../utils/dev-warn.js';\nimport { helixStatStyles } from './hx-stat.styles.js';\n\nexport type StatSize = 'sm' | 'md' | 'lg';\nexport type StatTrend = 'up' | 'down' | 'neutral';\n\n/**\n * A static stat display component for presenting key metrics in a healthcare dashboard.\n *\n * @summary Displays a labeled metric value with optional trend indicator and icon slot.\n *\n * @tag hx-stat\n *\n * @slot icon - Optional icon displayed alongside the stat value.\n *\n * @csspart container - The outer stat container element.\n * @csspart header - The row containing the value and optional icon.\n * @csspart value - The stat value element.\n * @csspart label - The stat label element.\n * @csspart trend - The trend indicator element (only rendered when trend is not 'neutral').\n * @csspart icon - The icon slot container.\n *\n * @cssprop [--hx-stat-gap=var(--hx-space-1)] - Gap between value and label.\n * @cssprop [--hx-stat-header-gap=var(--hx-space-2)] - Gap between icon and value in the header row.\n * @cssprop [--hx-stat-color=var(--hx-color-neutral-800)] - Default text color.\n * @cssprop [--hx-stat-value-color=var(--hx-color-neutral-900)] - Value text color.\n * @cssprop [--hx-stat-label-color=var(--hx-color-neutral-500)] - Label text color.\n * @cssprop [--hx-stat-icon-color=var(--hx-color-primary-500)] - Icon color.\n * @cssprop [--hx-stat-value-font-weight=var(--hx-font-weight-bold)] - Value font weight.\n * @cssprop [--hx-stat-font-family=var(--hx-font-family-sans)] - Font family.\n * @cssprop [--hx-stat-value-font-size-sm=var(--hx-font-size-xl)] - Value font size at sm.\n * @cssprop [--hx-stat-value-font-size-md=var(--hx-font-size-3xl)] - Value font size at md.\n * @cssprop [--hx-stat-value-font-size-lg=var(--hx-font-size-5xl)] - Value font size at lg.\n * @cssprop [--hx-stat-label-font-size-sm=var(--hx-font-size-xs)] - Label font size at sm.\n * @cssprop [--hx-stat-label-font-size-md=var(--hx-font-size-sm)] - Label font size at md.\n * @cssprop [--hx-stat-label-font-size-lg=var(--hx-font-size-md)] - Label font size at lg.\n * @cssprop [--hx-stat-trend-up-color=var(--hx-color-success-700)] - Trend up text color.\n * @cssprop [--hx-stat-trend-up-bg=var(--hx-color-success-50)] - Trend up background color.\n * @cssprop [--hx-stat-trend-down-color=var(--hx-color-error-700)] - Trend down text color.\n * @cssprop [--hx-stat-trend-down-bg=var(--hx-color-error-50)] - Trend down background color.\n */\n@customElement('hx-stat')\nexport class HelixStat extends LitElement {\n static override styles = [tokenStyles, helixStatStyles];\n\n /**\n * The metric label displayed below the value.\n * @attr label\n */\n @property({ type: String, reflect: true })\n label = '';\n\n /**\n * The metric value displayed prominently.\n * @attr value\n */\n @property({ type: String, reflect: true })\n value = '';\n\n /**\n * Trend direction indicator. 'neutral' hides the indicator.\n * @attr trend\n */\n @property({ type: String, reflect: true })\n trend: 'up' | 'down' | 'neutral' = 'neutral';\n\n /**\n * Size variant controlling font size.\n * @attr hx-size\n */\n @property({ type: String, reflect: true, attribute: 'hx-size' })\n size: 'sm' | 'md' | 'lg' = 'md';\n\n /**\n * Prefix label for trend indicator. Override for i18n.\n * @attr label-trend\n */\n @property({ attribute: 'label-trend' }) labelTrend = 'Trend';\n\n // ─── Lifecycle ───\n\n override connectedCallback(): void {\n super.connectedCallback();\n // Backward compat: accept legacy `size` attribute. When present and `hx-size`\n // is not set, map the value and emit a deprecation warning.\n const legacySize = this.getAttribute('size');\n if (legacySize !== null && !this.hasAttribute('hx-size')) {\n devWarn('hx-stat', 'The \"size\" attribute is deprecated. Use \"hx-size\" instead.');\n this.size = legacySize as StatSize;\n }\n }\n\n // ─── Slot Detection ───\n\n /** @internal */\n @state() private _hasIcon = false;\n\n /** @internal */\n private _onIconSlotChange(e: Event): void {\n const slot = e.target as HTMLSlotElement;\n this._hasIcon = slot.assignedNodes({ flatten: true }).length > 0;\n }\n\n // ─── Render Helpers ───\n\n /** @internal */\n private _renderTrendArrow(trend: 'up' | 'down'): ReturnType<typeof html> {\n if (trend === 'up') {\n return html`\n <svg\n class=\"stat__trend-arrow\"\n aria-hidden=\"true\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M6 10V2M6 2L2 6M6 2L10 6\"\n stroke=\"currentColor\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n `;\n }\n return html`\n <svg\n class=\"stat__trend-arrow\"\n aria-hidden=\"true\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M6 2V10M6 10L2 6M6 10L10 6\"\n stroke=\"currentColor\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n `;\n }\n\n // ─── Render ───\n\n override render() {\n const containerClasses = {\n stat: true,\n [`stat--${this.size}`]: true,\n };\n\n const hasTrend = this.trend !== 'neutral';\n\n // WCAG 1.3.1: wrap value and label in a group so screen readers announce them\n // together with a combined accessible name instead of as disconnected text runs.\n const groupLabel =\n this.value && this.label\n ? `${this.value}: ${this.label}`\n : this.value || this.label || nothing;\n\n return html`\n <div\n part=\"container\"\n class=${classMap(containerClasses)}\n role=\"group\"\n aria-label=${groupLabel}\n >\n <div part=\"header\" class=\"stat__header\">\n <span part=\"icon\" class=\"stat__icon\" ?hidden=${!this._hasIcon}>\n <slot name=\"icon\" @slotchange=${this._onIconSlotChange}></slot>\n </span>\n <span part=\"value\" class=\"stat__value\" aria-hidden=\"true\">${this.value}</span>\n ${hasTrend\n ? html`\n <span\n part=\"trend\"\n class=\"stat__trend stat__trend--${this.trend}\"\n role=\"img\"\n aria-label=\"${this.labelTrend}: ${this.trend}\"\n >\n ${this._renderTrendArrow(this.trend as 'up' | 'down')}\n </span>\n `\n : nothing}\n </div>\n <span part=\"label\" class=\"stat__label\" aria-hidden=\"true\">${this.label}</span>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-stat': HelixStat;\n }\n}\n"],"names":["helixStatStyles","css","HelixStat","LitElement","legacySize","e","slot","trend","html","containerClasses","hasTrend","groupLabel","nothing","classMap","tokenStyles","__decorateClass","property","state","customElement"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { css as c, LitElement as d, html as h } from "lit";
2
- import { property as a, customElement as p } from "lit/decorators.js";
1
+ import { css as u, LitElement as d, html as h } from "lit";
2
+ import { property as r, customElement as p } from "lit/decorators.js";
3
3
  import { tokenStyles as v } from "@helixui/tokens/lit";
4
- const x = c`
4
+ const x = u`
5
5
  :host {
6
6
  display: inline-flex;
7
7
  align-items: center;
@@ -36,7 +36,7 @@ const x = c`
36
36
  inset: 0;
37
37
  border-radius: 50%;
38
38
  background-color: var(--hx-status-indicator-pulse-color, var(--_dot-color));
39
- opacity: 0.4;
39
+ opacity: var(--hx-state-focus-opacity, 0.12); /* intentional: pulse ring start opacity */
40
40
  animation: hx-status-pulse var(--hx-status-indicator-pulse-duration, 1.5s) ease-out infinite;
41
41
  z-index: 0; /* pulse ring beneath dot within shadow root */
42
42
  }
@@ -48,7 +48,7 @@ const x = c`
48
48
  @keyframes hx-status-pulse {
49
49
  0% {
50
50
  transform: scale(1);
51
- opacity: 0.4;
51
+ opacity: var(--hx-state-focus-opacity, 0.12); /* intentional: pulse ring start opacity */
52
52
  }
53
53
  100% {
54
54
  transform: scale(var(--hx-status-indicator-pulse-scale, 2.5));
@@ -66,11 +66,11 @@ const x = c`
66
66
  /* ─── Size Variants ─── */
67
67
 
68
68
  :host([size='sm']) {
69
- --_indicator-size: var(--hx-status-indicator-size-sm, var(--hx-size-2));
69
+ --_indicator-size: var(--hx-status-indicator-size-sm, var(--hx-space-2, 0.5rem));
70
70
  }
71
71
 
72
72
  :host([size='md']) {
73
- --_indicator-size: var(--hx-status-indicator-size-md, var(--hx-size-3));
73
+ --_indicator-size: var(--hx-status-indicator-size-md, var(--hx-space-3, 0.75rem));
74
74
  }
75
75
 
76
76
  :host([size='lg']) {
@@ -92,19 +92,19 @@ const x = c`
92
92
  }
93
93
 
94
94
  :host([status='busy']) {
95
- --_dot-color: var(--hx-status-indicator-color-busy, var(--hx-color-danger-500));
95
+ --_dot-color: var(--hx-status-indicator-color-busy, var(--hx-color-error-500));
96
96
  }
97
97
 
98
98
  :host([status='unknown']) {
99
99
  --_dot-color: var(--hx-status-indicator-color-unknown, var(--hx-color-neutral-300));
100
100
  }
101
101
  `;
102
- var f = Object.defineProperty, _ = Object.getOwnPropertyDescriptor, e = (t, o, n, r) => {
103
- for (var s = r > 1 ? void 0 : r ? _(o, n) : o, l = t.length - 1, u; l >= 0; l--)
104
- (u = t[l]) && (s = (r ? u(o, n, s) : u(s)) || s);
105
- return r && s && f(o, n, s), s;
102
+ var f = Object.defineProperty, y = Object.getOwnPropertyDescriptor, e = (t, o, n, a) => {
103
+ for (var s = a > 1 ? void 0 : a ? y(o, n) : o, l = t.length - 1, c; l >= 0; l--)
104
+ (c = t[l]) && (s = (a ? c(o, n, s) : c(s)) || s);
105
+ return a && s && f(o, n, s), s;
106
106
  };
107
- const b = {
107
+ const _ = {
108
108
  online: "Online",
109
109
  offline: "Offline",
110
110
  away: "Away",
@@ -117,7 +117,7 @@ let i = class extends d {
117
117
  }
118
118
  /** @internal */
119
119
  _getLabel() {
120
- return this.label ? this.label : `Status: ${b[this.status] ?? "Unknown"}`;
120
+ return this.label ? this.label : `Status: ${_[this.status] ?? "Unknown"}`;
121
121
  }
122
122
  // ─── Lifecycle ───
123
123
  connectedCallback() {
@@ -139,16 +139,16 @@ let i = class extends d {
139
139
  };
140
140
  i.styles = [v, x];
141
141
  e([
142
- a({ type: String, reflect: !0 })
142
+ r({ type: String, reflect: !0 })
143
143
  ], i.prototype, "status", 2);
144
144
  e([
145
- a({ type: String, reflect: !0, attribute: "hx-size" })
145
+ r({ type: String, reflect: !0, attribute: "hx-size" })
146
146
  ], i.prototype, "size", 2);
147
147
  e([
148
- a({ type: Boolean, reflect: !0 })
148
+ r({ type: Boolean, reflect: !0 })
149
149
  ], i.prototype, "pulse", 2);
150
150
  e([
151
- a({ type: String })
151
+ r({ type: String })
152
152
  ], i.prototype, "label", 2);
153
153
  i = e([
154
154
  p("hx-status-indicator")
@@ -156,4 +156,4 @@ i = e([
156
156
  export {
157
157
  i as H
158
158
  };
159
- //# sourceMappingURL=hx-status-indicator-C1BwEvUw.js.map
159
+ //# sourceMappingURL=hx-status-indicator-4ClvA5mU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hx-status-indicator-4ClvA5mU.js","sources":["../../src/components/hx-status-indicator/hx-status-indicator.styles.ts","../../src/components/hx-status-indicator/hx-status-indicator.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixStatusIndicatorStyles = css`\n :host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n position: relative;\n flex-shrink: 0;\n --_dot-color: var(--hx-status-indicator-color-default, var(--hx-color-neutral-300, #ced4da));\n }\n\n .indicator {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n position: relative;\n width: var(--_indicator-size);\n height: var(--_indicator-size);\n flex-shrink: 0;\n }\n\n .indicator__dot {\n width: 100%;\n height: 100%;\n border-radius: 50%;\n background-color: var(--_dot-color);\n position: relative;\n z-index: 1; /* dot above pulse ring within shadow root */\n }\n\n .indicator__pulse-ring {\n display: none;\n position: absolute;\n inset: 0;\n border-radius: 50%;\n background-color: var(--hx-status-indicator-pulse-color, var(--_dot-color));\n opacity: var(--hx-state-focus-opacity, 0.12); /* intentional: pulse ring start opacity */\n animation: hx-status-pulse var(--hx-status-indicator-pulse-duration, 1.5s) ease-out infinite;\n z-index: 0; /* pulse ring beneath dot within shadow root */\n }\n\n :host([pulse]) .indicator__pulse-ring {\n display: block;\n }\n\n @keyframes hx-status-pulse {\n 0% {\n transform: scale(1);\n opacity: var(--hx-state-focus-opacity, 0.12); /* intentional: pulse ring start opacity */\n }\n 100% {\n transform: scale(var(--hx-status-indicator-pulse-scale, 2.5));\n opacity: 0;\n }\n }\n\n @media (prefers-reduced-motion: reduce) {\n :host([pulse]) .indicator__pulse-ring {\n animation: none;\n display: none;\n }\n }\n\n /* ─── Size Variants ─── */\n\n :host([size='sm']) {\n --_indicator-size: var(--hx-status-indicator-size-sm, var(--hx-space-2, 0.5rem));\n }\n\n :host([size='md']) {\n --_indicator-size: var(--hx-status-indicator-size-md, var(--hx-space-3, 0.75rem));\n }\n\n :host([size='lg']) {\n --_indicator-size: var(--hx-status-indicator-size-lg, var(--hx-size-4));\n }\n\n /* ─── Status Colors ─── */\n\n :host([status='online']) {\n --_dot-color: var(--hx-status-indicator-color-online, var(--hx-color-success-500));\n }\n\n :host([status='offline']) {\n --_dot-color: var(--hx-status-indicator-color-offline, var(--hx-color-neutral-400));\n }\n\n :host([status='away']) {\n --_dot-color: var(--hx-status-indicator-color-away, var(--hx-color-warning-500));\n }\n\n :host([status='busy']) {\n --_dot-color: var(--hx-status-indicator-color-busy, var(--hx-color-error-500));\n }\n\n :host([status='unknown']) {\n --_dot-color: var(--hx-status-indicator-color-unknown, var(--hx-color-neutral-300));\n }\n`;\n","import { LitElement, html, type PropertyValues } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { tokenStyles } from '@helixui/tokens/lit';\nimport { devWarn } from '../../utils/dev-warn.js';\nimport { helixStatusIndicatorStyles } from './hx-status-indicator.styles.js';\n\nexport type StatusIndicatorStatus = 'online' | 'offline' | 'away' | 'busy' | 'unknown';\nexport type StatusIndicatorSize = 'sm' | 'md' | 'lg';\n\nconst STATUS_LABELS: Record<StatusIndicatorStatus, string> = {\n online: 'Online',\n offline: 'Offline',\n away: 'Away',\n busy: 'Busy',\n unknown: 'Unknown',\n};\n\n/**\n * A colored dot/badge indicating system or entity health status.\n * Purely visual — no slots. Supports an animated pulse ring.\n *\n * Uses `role=\"img\"` with an auto-generated `aria-label` (e.g. \"Status: Online\").\n * When used decoratively alongside visible text that conveys the same status information\n * (e.g. \"Provider is available\"), set `aria-hidden=\"true\"` on the host element to prevent\n * duplicate announcements to screen reader users. This is the recommended composition\n * pattern in healthcare dashboards.\n *\n * @remarks\n * The status vocabulary (`online`, `offline`, `away`, `busy`, `unknown`) is the intentional\n * implementation canonical form for this component. Although a prior spec draft used\n * `active/inactive/error/warning`, the current vocabulary was approved as a deliberate\n * design decision for flexibility and UX clarity in healthcare dashboard contexts.\n *\n * @summary Status indicator dot component.\n *\n * @tag hx-status-indicator\n *\n * @csspart base - The dot element.\n * @csspart pulse-ring - The animated pulse ring element.\n *\n * @cssprop [--hx-status-indicator-color-online] - Override color for the \"online\" status dot.\n * @cssprop [--hx-status-indicator-color-offline] - Override color for the \"offline\" status dot.\n * @cssprop [--hx-status-indicator-color-away] - Override color for the \"away\" status dot.\n * @cssprop [--hx-status-indicator-color-busy] - Override color for the \"busy\" status dot.\n * @cssprop [--hx-status-indicator-color-unknown] - Override color for the \"unknown\" status dot.\n * @cssprop [--hx-status-indicator-size-sm] - Override size for the \"sm\" variant.\n * @cssprop [--hx-status-indicator-size-md] - Override size for the \"md\" variant.\n * @cssprop [--hx-status-indicator-size-lg] - Override size for the \"lg\" variant.\n * @cssprop [--hx-status-indicator-pulse-duration] - Override pulse animation duration.\n * @cssprop [--hx-status-indicator-pulse-scale] - Override pulse animation max scale.\n * @cssprop [--hx-status-indicator-pulse-color] - Override pulse ring color independently from dot color.\n */\n@customElement('hx-status-indicator')\nexport class HelixStatusIndicator extends LitElement {\n static override styles = [tokenStyles, helixStatusIndicatorStyles];\n\n /**\n * The status to display.\n * @attr status\n */\n @property({ type: String, reflect: true })\n status: 'online' | 'offline' | 'away' | 'busy' | 'unknown' = 'unknown';\n\n /**\n * Size of the indicator dot.\n * @attr hx-size\n */\n @property({ type: String, reflect: true, attribute: 'hx-size' })\n size: 'sm' | 'md' | 'lg' = 'md';\n\n /**\n * Whether to show an animated pulse ring around the dot.\n * Animation is suppressed when prefers-reduced-motion is active.\n * @attr pulse\n * @remarks\n * In Twig (Drupal) templates, render as a bare attribute: `pulse` — NOT `pulse=\"true\"`.\n * The value is ignored; only attribute presence matters.\n */\n @property({ type: Boolean, reflect: true })\n pulse = false;\n\n /**\n * Accessible label for the indicator. Defaults to \"Status: {Status}\".\n * Set aria-hidden=\"true\" on the host when status is conveyed by adjacent text.\n * @attr label\n */\n @property({ type: String })\n label = '';\n\n /** @internal */\n private _getLabel(): string {\n if (this.label) return this.label;\n const statusText = STATUS_LABELS[this.status] ?? 'Unknown';\n return `Status: ${statusText}`;\n }\n\n // ─── Lifecycle ───\n\n override connectedCallback(): void {\n super.connectedCallback();\n // Backward compat: accept legacy `size` attribute. When present and `hx-size`\n // is not set, map the value and emit a deprecation warning.\n const legacySize = this.getAttribute('size');\n if (legacySize !== null && !this.hasAttribute('hx-size')) {\n devWarn('hx-status-indicator', 'The \"size\" attribute is deprecated. Use \"hx-size\" instead.');\n this.size = legacySize as StatusIndicatorSize;\n }\n // T3-01-4: Place role=\"img\" on the host element for robust AT traversal.\n // Some screen reader + browser combinations skip shadow children; host-level\n // ARIA attributes are more reliable across the flat accessibility tree.\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'img');\n }\n this.setAttribute('aria-label', this._getLabel());\n }\n\n override updated(changedProperties: PropertyValues<this>): void {\n super.updated(changedProperties);\n // Keep host aria-label in sync when status or label properties change.\n if (changedProperties.has('status') || changedProperties.has('label')) {\n this.setAttribute('aria-label', this._getLabel());\n }\n }\n\n override render() {\n return html`\n <div class=\"indicator\">\n <div class=\"indicator__pulse-ring\" part=\"pulse-ring\"></div>\n <div class=\"indicator__dot\" part=\"base\"></div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-status-indicator': HelixStatusIndicator;\n }\n}\n"],"names":["helixStatusIndicatorStyles","css","STATUS_LABELS","HelixStatusIndicator","LitElement","legacySize","changedProperties","html","tokenStyles","__decorateClass","property","customElement"],"mappings":";;;AAEO,MAAMA,IAA6BC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;ACO1C,MAAMC,IAAuD;AAAA,EAC3D,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,MAAM;AAAA,EACN,MAAM;AAAA,EACN,SAAS;AACX;AAsCO,IAAMC,IAAN,cAAmCC,EAAW;AAAA,EAA9C,cAAA;AAAA,UAAA,GAAA,SAAA,GAQL,KAAA,SAA6D,WAO7D,KAAA,OAA2B,MAW3B,KAAA,QAAQ,IAQR,KAAA,QAAQ;AAAA,EAAA;AAAA;AAAA,EAGA,YAAoB;AAC1B,WAAI,KAAK,QAAc,KAAK,QAErB,WADYF,EAAc,KAAK,MAAM,KAAK,SACrB;AAAA,EAC9B;AAAA;AAAA,EAIS,oBAA0B;AACjC,UAAM,kBAAA;AAGN,UAAMG,IAAa,KAAK,aAAa,MAAM;AAC3C,IAAIA,MAAe,QAAQ,CAAC,KAAK,aAAa,SAAS,MAErD,KAAK,OAAOA,IAKT,KAAK,aAAa,MAAM,KAC3B,KAAK,aAAa,QAAQ,KAAK,GAEjC,KAAK,aAAa,cAAc,KAAK,UAAA,CAAW;AAAA,EAClD;AAAA,EAES,QAAQC,GAA+C;AAC9D,UAAM,QAAQA,CAAiB,IAE3BA,EAAkB,IAAI,QAAQ,KAAKA,EAAkB,IAAI,OAAO,MAClE,KAAK,aAAa,cAAc,KAAK,UAAA,CAAW;AAAA,EAEpD;AAAA,EAES,SAAS;AAChB,WAAOC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMT;AACF;AA/EaJ,EACK,SAAS,CAACK,GAAaR,CAA0B;AAOjES,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAP9BP,EAQX,WAAA,UAAA,CAAA;AAOAM,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM,WAAW,WAAW;AAAA,GAdpDP,EAeX,WAAA,QAAA,CAAA;AAWAM,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAzB/BP,EA0BX,WAAA,SAAA,CAAA;AAQAM,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAjCfP,EAkCX,WAAA,SAAA,CAAA;AAlCWA,IAANM,EAAA;AAAA,EADNE,EAAc,qBAAqB;AAAA,GACvBR,CAAA;"}
@@ -1,14 +1,14 @@
1
- import { css as x, LitElement as u, nothing as f, html as d } from "lit";
1
+ import { css as x, LitElement as u, nothing as m, html as d } from "lit";
2
2
  import { property as a, customElement as v } from "lit/decorators.js";
3
- import { tokenStyles as m } from "@helixui/tokens/lit";
3
+ import { tokenStyles as f } from "@helixui/tokens/lit";
4
4
  const b = x`
5
5
  :host {
6
6
  display: block;
7
7
 
8
8
  /* ─── Size defaults (md) ─── */
9
- --hx-steps-indicator-size: 2rem;
9
+ --hx-steps-indicator-size: var(--hx-size-8, 2rem);
10
10
  --hx-steps-indicator-font-size: var(--hx-font-size-sm, 0.875rem);
11
- --hx-steps-indicator-icon-size: 1rem;
11
+ --hx-steps-indicator-icon-size: var(--hx-size-4, 1rem);
12
12
  --hx-steps-label-font-size: var(--hx-font-size-sm, 0.875rem);
13
13
  --hx-steps-description-font-size: var(--hx-font-size-xs, 0.75rem);
14
14
 
@@ -37,9 +37,9 @@ const b = x`
37
37
  /* ─── Size: sm ─── */
38
38
 
39
39
  :host([size='sm']) {
40
- --hx-steps-indicator-size: 1.5rem;
40
+ --hx-steps-indicator-size: var(--hx-size-6, 1.5rem);
41
41
  --hx-steps-indicator-font-size: var(--hx-font-size-xs, 0.75rem);
42
- --hx-steps-indicator-icon-size: 0.75rem;
42
+ --hx-steps-indicator-icon-size: var(--hx-space-3, 0.75rem);
43
43
  --hx-steps-label-font-size: var(--hx-font-size-xs, 0.75rem);
44
44
  --hx-steps-description-font-size: var(--hx-font-size-xs, 0.75rem);
45
45
  }
@@ -47,19 +47,19 @@ const b = x`
47
47
  /* ─── Size: lg ─── */
48
48
 
49
49
  :host([size='lg']) {
50
- --hx-steps-indicator-size: 2.5rem;
50
+ --hx-steps-indicator-size: var(--hx-size-10, 2.5rem);
51
51
  --hx-steps-indicator-font-size: var(--hx-font-size-md, 1rem);
52
- --hx-steps-indicator-icon-size: 1.25rem;
52
+ --hx-steps-indicator-icon-size: var(--hx-size-5, 1.25rem);
53
53
  --hx-steps-label-font-size: var(--hx-font-size-md, 1rem);
54
54
  --hx-steps-description-font-size: var(--hx-font-size-sm, 0.875rem);
55
55
  }
56
56
  `;
57
57
  var _ = Object.defineProperty, y = Object.getOwnPropertyDescriptor, p = (t, r, i, s) => {
58
- for (var e = s > 1 ? void 0 : s ? y(r, i) : r, l = t.length - 1, c; l >= 0; l--)
59
- (c = t[l]) && (e = (s ? c(r, i, e) : c(e)) || e);
58
+ for (var e = s > 1 ? void 0 : s ? y(r, i) : r, l = t.length - 1, h; l >= 0; l--)
59
+ (h = t[l]) && (e = (s ? h(r, i, e) : h(e)) || e);
60
60
  return s && e && _(r, i, e), e;
61
61
  };
62
- let h = class extends u {
62
+ let c = class extends u {
63
63
  constructor() {
64
64
  super(...arguments), this.orientation = "horizontal", this.size = "md", this.ariaLabel = null, this._handleSlotChange = () => {
65
65
  this._syncChildren();
@@ -83,7 +83,7 @@ let h = class extends u {
83
83
  connectedCallback() {
84
84
  super.connectedCallback();
85
85
  const t = this.getAttribute("size");
86
- t !== null && !this.hasAttribute("hx-size") && (this.size = t), this.addEventListener("hx-step-click-internal", this._handleStepClickInternal);
86
+ t !== null && !this.hasAttribute("hx-size") && (this.size = t), this.hasAttribute("role") || this.setAttribute("role", "none"), this.addEventListener("hx-step-click-internal", this._handleStepClickInternal);
87
87
  }
88
88
  disconnectedCallback() {
89
89
  super.disconnectedCallback(), this.removeEventListener("hx-step-click-internal", this._handleStepClickInternal);
@@ -108,25 +108,25 @@ let h = class extends u {
108
108
  // ─── Render ───
109
109
  render() {
110
110
  return d`
111
- <div part="base" class="steps" role="list" aria-label=${this.ariaLabel ?? f}>
111
+ <div part="base" class="steps" role="list" aria-label=${this.ariaLabel ?? m}>
112
112
  <slot @slotchange=${this._handleSlotChange}></slot>
113
113
  </div>
114
114
  `;
115
115
  }
116
116
  };
117
- h.styles = [m, b];
117
+ c.styles = [f, b];
118
118
  p([
119
119
  a({ type: String, reflect: !0 })
120
- ], h.prototype, "orientation", 2);
120
+ ], c.prototype, "orientation", 2);
121
121
  p([
122
122
  a({ type: String, reflect: !0, attribute: "hx-size" })
123
- ], h.prototype, "size", 2);
123
+ ], c.prototype, "size", 2);
124
124
  p([
125
125
  a({ type: String, attribute: "aria-label" })
126
- ], h.prototype, "ariaLabel", 2);
127
- h = p([
126
+ ], c.prototype, "ariaLabel", 2);
127
+ c = p([
128
128
  v("hx-steps")
129
- ], h);
129
+ ], c);
130
130
  const g = x`
131
131
  :host {
132
132
  display: flex;
@@ -162,8 +162,8 @@ const g = x`
162
162
  /* ─── Focus ─── */
163
163
 
164
164
  :host(:focus-visible) .step__indicator {
165
- outline: 2px solid var(--hx-color-primary-500);
166
- outline-offset: 2px;
165
+ outline: var(--hx-focus-ring-width, 2px) solid var(--hx-color-primary-500);
166
+ outline-offset: var(--hx-focus-ring-offset, 2px);
167
167
  }
168
168
 
169
169
  /* ─── Track (indicator + connector) ─── */
@@ -185,7 +185,7 @@ const g = x`
185
185
  width: var(--hx-steps-indicator-size, 2rem);
186
186
  height: var(--hx-steps-indicator-size, 2rem);
187
187
  border-radius: var(--hx-border-radius-full, 9999px);
188
- border: 2px solid var(--hx-color-neutral-300);
188
+ border: var(--hx-border-width-medium, 2px) solid var(--hx-color-neutral-300);
189
189
  background-color: var(--hx-color-neutral-0);
190
190
  color: var(--hx-color-neutral-500);
191
191
  font-size: var(--hx-steps-indicator-font-size, var(--hx-font-size-sm));
@@ -290,7 +290,7 @@ const g = x`
290
290
 
291
291
  :host([disabled]) .step {
292
292
  cursor: not-allowed;
293
- opacity: 0.5;
293
+ opacity: var(--hx-opacity-disabled, 0.5);
294
294
  pointer-events: none;
295
295
  }
296
296
 
@@ -328,7 +328,7 @@ const g = x`
328
328
  }
329
329
 
330
330
  :host([orientation='vertical']) .step__label-area {
331
- text-align: left;
331
+ text-align: start;
332
332
  margin-top: 0;
333
333
  padding-bottom: var(--hx-space-4, 1rem);
334
334
  padding-inline-start: 0;
@@ -347,50 +347,10 @@ const g = x`
347
347
  transition: none;
348
348
  }
349
349
  }
350
-
351
- /* ─── Dark Mode ─── */
352
-
353
- @media (prefers-color-scheme: dark) {
354
- .step__indicator {
355
- background-color: var(--hx-color-neutral-800);
356
- border-color: var(--hx-color-neutral-600);
357
- color: var(--hx-color-neutral-300);
358
- }
359
-
360
- .step__connector {
361
- background-color: var(--hx-color-neutral-700);
362
- }
363
-
364
- .step__label {
365
- color: var(--hx-color-neutral-300);
366
- }
367
-
368
- .step__description {
369
- color: var(--hx-color-neutral-400);
370
- }
371
-
372
- :host([status='active']) .step__label {
373
- color: var(--hx-color-primary-300);
374
- }
375
-
376
- :host([status='complete']) .step__label {
377
- color: var(--hx-color-neutral-200);
378
- }
379
-
380
- :host([status='error']) .step__label {
381
- color: var(--hx-color-error-300);
382
- }
383
-
384
- :host([disabled]) .step__indicator {
385
- background-color: var(--hx-color-neutral-900);
386
- border-color: var(--hx-color-neutral-700);
387
- color: var(--hx-color-neutral-600);
388
- }
389
- }
390
350
  `;
391
- var z = Object.defineProperty, k = Object.getOwnPropertyDescriptor, n = (t, r, i, s) => {
392
- for (var e = s > 1 ? void 0 : s ? k(r, i) : r, l = t.length - 1, c; l >= 0; l--)
393
- (c = t[l]) && (e = (s ? c(r, i, e) : c(e)) || e);
351
+ var z = Object.defineProperty, w = Object.getOwnPropertyDescriptor, n = (t, r, i, s) => {
352
+ for (var e = s > 1 ? void 0 : s ? w(r, i) : r, l = t.length - 1, h; l >= 0; l--)
353
+ (h = t[l]) && (e = (s ? h(r, i, e) : h(e)) || e);
394
354
  return s && e && z(r, i, e), e;
395
355
  };
396
356
  let o = class extends u {
@@ -459,7 +419,7 @@ let o = class extends u {
459
419
  // ─── Render ───
460
420
  render() {
461
421
  return d`
462
- <div part="base" class="step" @click=${this._handleClick}>
422
+ <div part="base" class="step" role="button" @click=${this._handleClick}>
463
423
  <div class="step__track">
464
424
  <div part="indicator" class="step__indicator">${this._renderIndicatorContent()}</div>
465
425
  <div part="connector" class="step__connector" aria-hidden="true"></div>
@@ -476,7 +436,7 @@ let o = class extends u {
476
436
  `;
477
437
  }
478
438
  };
479
- o.styles = [m, g];
439
+ o.styles = [f, g];
480
440
  n([
481
441
  a({ type: String, reflect: !0 })
482
442
  ], o.prototype, "label", 2);
@@ -503,6 +463,6 @@ o = n([
503
463
  ], o);
504
464
  export {
505
465
  o as H,
506
- h as a
466
+ c as a
507
467
  };
508
- //# sourceMappingURL=hx-step-BIVWSPxd.js.map
468
+ //# sourceMappingURL=hx-step-DlANlr2A.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hx-step-DlANlr2A.js","sources":["../../src/components/hx-steps/hx-steps.styles.ts","../../src/components/hx-steps/hx-steps.ts","../../src/components/hx-steps/hx-step.styles.ts","../../src/components/hx-steps/hx-step.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixStepsStyles = css`\n :host {\n display: block;\n\n /* ─── Size defaults (md) ─── */\n --hx-steps-indicator-size: var(--hx-size-8, 2rem);\n --hx-steps-indicator-font-size: var(--hx-font-size-sm, 0.875rem);\n --hx-steps-indicator-icon-size: var(--hx-size-4, 1rem);\n --hx-steps-label-font-size: var(--hx-font-size-sm, 0.875rem);\n --hx-steps-description-font-size: var(--hx-font-size-xs, 0.75rem);\n\n /* ─── Item layout defaults (horizontal) ─── */\n --hx-steps-item-flex: 1;\n --hx-steps-item-width: auto;\n }\n\n .steps {\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n }\n\n /* ─── Orientation: vertical ─── */\n\n :host([orientation='vertical']) {\n --hx-steps-item-flex: initial;\n --hx-steps-item-width: 100%;\n }\n\n :host([orientation='vertical']) .steps {\n flex-direction: column;\n }\n\n /* ─── Size: sm ─── */\n\n :host([size='sm']) {\n --hx-steps-indicator-size: var(--hx-size-6, 1.5rem);\n --hx-steps-indicator-font-size: var(--hx-font-size-xs, 0.75rem);\n --hx-steps-indicator-icon-size: var(--hx-space-3, 0.75rem);\n --hx-steps-label-font-size: var(--hx-font-size-xs, 0.75rem);\n --hx-steps-description-font-size: var(--hx-font-size-xs, 0.75rem);\n }\n\n /* ─── Size: lg ─── */\n\n :host([size='lg']) {\n --hx-steps-indicator-size: var(--hx-size-10, 2.5rem);\n --hx-steps-indicator-font-size: var(--hx-font-size-md, 1rem);\n --hx-steps-indicator-icon-size: var(--hx-size-5, 1.25rem);\n --hx-steps-label-font-size: var(--hx-font-size-md, 1rem);\n --hx-steps-description-font-size: var(--hx-font-size-sm, 0.875rem);\n }\n`;\n","import { LitElement, html, nothing, type PropertyValues } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { tokenStyles } from '@helixui/tokens/lit';\nimport { devWarn } from '../../utils/dev-warn.js';\nimport { helixStepsStyles } from './hx-steps.styles.js';\nimport type { HelixStep } from './hx-step.js';\n\n/**\n * A multi-step wizard / stepper progress indicator. Renders a sequence of\n * `<hx-step>` children as a horizontal or vertical step tracker with connector\n * lines and status-based styling.\n *\n * Provide an `aria-label` on `<hx-steps>` to describe the step process for assistive technology.\n *\n * @summary Multi-step progress indicator container.\n *\n * @tag hx-steps\n *\n * @slot - Default slot for `<hx-step>` elements.\n *\n * @fires {CustomEvent<{step: HelixStep, index: number}>} hx-step-click - Dispatched when\n * a step is clicked. Detail contains the clicked `step` element and its zero-based `index`.\n *\n * @csspart base - The inner wrapper element.\n *\n * @cssprop [--hx-steps-indicator-size=2rem] - Step indicator circle diameter.\n * @cssprop [--hx-steps-connector-color=var(--hx-color-neutral-200)] - Connector line color.\n * @cssprop [--hx-steps-label-color=var(--hx-color-neutral-600)] - Step label text color.\n * @cssprop [--hx-steps-description-color=var(--hx-color-neutral-500)] - Step description color.\n */\n@customElement('hx-steps')\nexport class HelixSteps extends LitElement {\n static override styles = [tokenStyles, helixStepsStyles];\n\n // ─── Public Properties ───\n\n /**\n * Layout orientation of the steps.\n * @attr orientation\n */\n @property({ type: String, reflect: true })\n orientation: 'horizontal' | 'vertical' = 'horizontal';\n\n /**\n * Size variant of the steps.\n * @attr hx-size\n */\n @property({ type: String, reflect: true, attribute: 'hx-size' })\n size: 'sm' | 'md' | 'lg' = 'md';\n\n /**\n * Accessible label for the list. Forwarded to the inner list element.\n * @attr aria-label\n */\n @property({ type: String, attribute: 'aria-label' })\n ariaLabel: string | null = null;\n\n // ─── Lifecycle ───\n\n override connectedCallback(): void {\n super.connectedCallback();\n // Backward compat: accept legacy `size` attribute. When present and `hx-size`\n // is not set, map the value and emit a deprecation warning.\n const legacySize = this.getAttribute('size');\n if (legacySize !== null && !this.hasAttribute('hx-size')) {\n devWarn('hx-steps', 'The \"size\" attribute is deprecated. Use \"hx-size\" instead.');\n this.size = legacySize as 'sm' | 'md' | 'lg';\n }\n // WCAG 4.1.2: suppress the host element's implicit ARIA role so only the\n // inner div[role=\"list\"] is announced. Mirrors the hx-action-bar pattern.\n // Without this, the consumer's aria-label attribute on the host causes dual\n // announcement — once for the host element and once for the inner list.\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'none');\n }\n this.addEventListener('hx-step-click-internal', this._handleStepClickInternal);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('hx-step-click-internal', this._handleStepClickInternal);\n }\n\n override firstUpdated(): void {\n this._syncChildren();\n }\n\n override updated(changedProperties: PropertyValues<this>): void {\n super.updated(changedProperties);\n if (changedProperties.has('orientation') || changedProperties.has('size')) {\n this._syncChildren();\n }\n }\n\n // ─── Child Sync ───\n\n /** @internal */\n private _getSteps(): HelixStep[] {\n return Array.from(this.querySelectorAll(':scope > hx-step')) as HelixStep[];\n }\n\n /** @internal */\n private _syncChildren(): void {\n const steps = this._getSteps();\n steps.forEach((step, i) => {\n step.orientation = this.orientation;\n step.size = this.size;\n step.index = i;\n });\n }\n\n // ─── Event Handling ───\n\n /** @internal */\n private _handleSlotChange = (): void => {\n this._syncChildren();\n };\n\n /** @internal */\n private _handleStepClickInternal = (e: Event): void => {\n e.stopPropagation();\n const steps = this._getSteps();\n const step = e\n .composedPath()\n .find(\n (el): el is HelixStep => el instanceof Element && el.tagName.toLowerCase() === 'hx-step',\n );\n if (!step) return;\n const index = steps.indexOf(step);\n\n /**\n * Dispatched when a step is clicked.\n * @event hx-step-click\n */\n this.dispatchEvent(\n new CustomEvent<{ step: HelixStep; index: number }>('hx-step-click', {\n bubbles: true,\n composed: true,\n detail: { step, index },\n }),\n );\n };\n\n // ─── Render ───\n\n override render() {\n return html`\n <div part=\"base\" class=\"steps\" role=\"list\" aria-label=${this.ariaLabel ?? nothing}>\n <slot @slotchange=${this._handleSlotChange}></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-steps': HelixSteps;\n }\n}\n","import { css } from 'lit';\n\nexport const helixStepStyles = css`\n :host {\n display: flex;\n flex: var(--hx-steps-item-flex, 1);\n width: var(--hx-steps-item-width, auto);\n min-width: 0;\n }\n\n /* ─── Visually Hidden (SR only) ─── */\n\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n }\n\n /* ─── Step Wrapper ─── */\n\n .step {\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 100%;\n cursor: pointer;\n }\n\n /* ─── Focus ─── */\n\n :host(:focus-visible) .step__indicator {\n outline: var(--hx-focus-ring-width, 2px) solid var(--hx-color-primary-500);\n outline-offset: var(--hx-focus-ring-offset, 2px);\n }\n\n /* ─── Track (indicator + connector) ─── */\n\n .step__track {\n display: flex;\n flex-direction: row;\n align-items: center;\n width: 100%;\n }\n\n /* ─── Indicator ─── */\n\n .step__indicator {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: var(--hx-steps-indicator-size, 2rem);\n height: var(--hx-steps-indicator-size, 2rem);\n border-radius: var(--hx-border-radius-full, 9999px);\n border: var(--hx-border-width-medium, 2px) solid var(--hx-color-neutral-300);\n background-color: var(--hx-color-neutral-0);\n color: var(--hx-color-neutral-500);\n font-size: var(--hx-steps-indicator-font-size, var(--hx-font-size-sm));\n font-weight: var(--hx-font-weight-semibold);\n font-family: var(--hx-font-family-sans);\n transition:\n background-color var(--hx-transition-fast, 150ms ease),\n border-color var(--hx-transition-fast, 150ms ease),\n color var(--hx-transition-fast, 150ms ease);\n position: relative;\n z-index: 1;\n }\n\n .step__indicator svg {\n width: var(--hx-steps-indicator-icon-size, 1rem);\n height: var(--hx-steps-indicator-icon-size, 1rem);\n }\n\n /* ─── Connector ─── */\n\n .step__connector {\n flex: 1;\n height: var(--hx-steps-connector-thickness, var(--hx-border-width, 2px));\n min-width: 0;\n background-color: var(--hx-steps-connector-color, var(--hx-color-neutral-200));\n transition: background-color var(--hx-transition-fast, 150ms ease);\n }\n\n :host(:last-child) .step__connector {\n display: none;\n }\n\n /* ─── Label Area ─── */\n\n .step__label-area {\n text-align: center;\n margin-top: var(--hx-space-2, 0.5rem);\n width: 100%;\n padding: 0 var(--hx-space-1, 0.25rem);\n }\n\n .step__label {\n font-family: var(--hx-font-family-sans);\n font-size: var(--hx-steps-label-font-size, var(--hx-font-size-sm));\n font-weight: var(--hx-font-weight-medium);\n color: var(--hx-steps-label-color, var(--hx-color-neutral-600));\n line-height: var(--hx-line-height-tight, 1.25);\n }\n\n .step__description {\n font-family: var(--hx-font-family-sans);\n font-size: var(--hx-steps-description-font-size, var(--hx-font-size-xs));\n color: var(--hx-steps-description-color, var(--hx-color-neutral-500));\n margin-top: var(--hx-space-1, 0.25rem);\n line-height: var(--hx-line-height-normal, 1.5);\n }\n\n /* ─── Status: active ─── */\n\n /* Active: outlined indicator (in-progress) — visually distinct from complete (filled) */\n :host([status='active']) .step__indicator {\n border-color: var(--hx-color-primary-500);\n background-color: var(--hx-color-primary-500);\n color: var(--hx-color-neutral-0);\n }\n\n :host([status='active']) .step__label {\n color: var(--hx-color-primary-700);\n font-weight: var(--hx-font-weight-semibold);\n }\n\n /* ─── Status: complete ─── */\n\n /* Complete: filled indicator with darker shade — visually distinct from active */\n :host([status='complete']) .step__indicator {\n border-color: var(--hx-color-primary-700);\n background-color: var(--hx-color-primary-700);\n color: var(--hx-color-neutral-0);\n }\n\n :host([status='complete']) .step__connector {\n background-color: var(--hx-steps-connector-complete-color, var(--hx-color-primary-500));\n }\n\n :host([status='complete']) .step__label {\n color: var(--hx-color-neutral-700);\n }\n\n /* ─── Status: error ─── */\n\n :host([status='error']) .step__indicator {\n border-color: var(--hx-color-error-500);\n background-color: var(--hx-color-error-500);\n color: var(--hx-color-neutral-0);\n }\n\n :host([status='error']) .step__label {\n color: var(--hx-color-error-700);\n }\n\n /* ─── Status: disabled ─── */\n\n :host([disabled]) .step {\n cursor: not-allowed;\n opacity: var(--hx-opacity-disabled, 0.5);\n pointer-events: none;\n }\n\n :host([disabled]) .step__indicator {\n border-color: var(--hx-color-neutral-300);\n background-color: var(--hx-color-neutral-100);\n color: var(--hx-color-neutral-400);\n }\n\n /* ─── Vertical Layout ─── */\n\n :host([orientation='vertical']) {\n flex: initial;\n width: 100%;\n }\n\n :host([orientation='vertical']) .step {\n flex-direction: row;\n align-items: flex-start;\n gap: var(--hx-space-3, 0.75rem);\n }\n\n :host([orientation='vertical']) .step__track {\n flex-direction: column;\n align-items: center;\n width: auto;\n flex-shrink: 0;\n }\n\n :host([orientation='vertical']) .step__connector {\n width: var(--hx-steps-connector-thickness, var(--hx-border-width, 2px));\n height: auto;\n min-height: var(--hx-space-8, 2rem);\n flex: 1;\n }\n\n :host([orientation='vertical']) .step__label-area {\n text-align: start;\n margin-top: 0;\n padding-bottom: var(--hx-space-4, 1rem);\n padding-inline-start: 0;\n }\n\n :host([orientation='vertical']:last-child) .step__label-area {\n padding-bottom: 0;\n }\n\n @media (prefers-reduced-motion: reduce) {\n .step__indicator {\n transition: none;\n }\n\n .step__connector {\n transition: none;\n }\n }\n`;\n","import { LitElement, html, type PropertyValues } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { tokenStyles } from '@helixui/tokens/lit';\nimport { helixStepStyles } from './hx-step.styles.js';\n\n/**\n * An individual step, designed to be used inside an `<hx-steps>` container.\n * Represents a single step in a multi-step wizard or progress indicator.\n *\n * @summary Individual step item within an `<hx-steps>` progress indicator.\n *\n * @tag hx-step\n *\n * @slot icon - Custom icon for the step indicator. Shown when status is `pending` or `active`.\n * @slot label - Step label text. Falls back to the `label` property.\n * @slot description - Step description text. Falls back to the `description` property.\n *\n * @csspart base - The outermost wrapper element.\n * @csspart indicator - The circular step indicator.\n * @csspart connector - The line connecting this step to the next.\n * @csspart label - The step label element.\n * @csspart description - The step description element.\n *\n * @cssprop [--hx-steps-indicator-size=2rem] - Indicator circle diameter.\n * @cssprop [--hx-steps-indicator-font-size=var(--hx-font-size-sm)] - Indicator text size.\n * @cssprop [--hx-steps-indicator-icon-size=1rem] - Indicator icon size.\n * @cssprop [--hx-steps-label-font-size=var(--hx-font-size-sm)] - Label font size.\n * @cssprop [--hx-steps-description-font-size=var(--hx-font-size-xs)] - Description font size.\n * @cssprop [--hx-steps-connector-color=var(--hx-color-neutral-200)] - Connector line color.\n * @cssprop [--hx-steps-connector-complete-color=var(--hx-color-primary-500)] - Connector color when step is complete.\n * @cssprop [--hx-steps-connector-thickness=var(--hx-border-width,2px)] - Connector line thickness.\n * @cssprop [--hx-steps-label-color=var(--hx-color-neutral-600)] - Label text color.\n * @cssprop [--hx-steps-description-color=var(--hx-color-neutral-500)] - Description text color.\n */\n@customElement('hx-step')\nexport class HelixStep extends LitElement {\n static override styles = [tokenStyles, helixStepStyles];\n\n // ─── Public Properties ───\n\n /**\n * The step label text.\n * @attr label\n */\n @property({ type: String, reflect: true })\n label = '';\n\n /**\n * Current status of the step.\n * @attr status\n */\n @property({ type: String, reflect: true })\n status: 'pending' | 'active' | 'complete' | 'error' = 'pending';\n\n /**\n * Optional description text shown below the label.\n * @attr description\n */\n @property({ type: String, reflect: true })\n description = '';\n\n /**\n * Whether the step is disabled and non-interactive.\n * @attr disabled\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n // ─── Internal Properties (set by parent hx-steps) ───\n\n /**\n * Layout orientation. Set by the parent `<hx-steps>` container via JS property.\n * Do not set this attribute directly on `<hx-step>` — use the `orientation`\n * property on the parent `<hx-steps>` container instead. The parent will\n * propagate the value to all child steps via `_syncChildren()`.\n * @internal\n */\n @property({ attribute: false })\n orientation: 'horizontal' | 'vertical' = 'horizontal';\n\n /**\n * Size variant. Set by the parent `<hx-steps>` container via JS property.\n * Do not set this attribute directly on `<hx-step>` — use the `size` property\n * on the parent `<hx-steps>` container instead. The parent will propagate the\n * value to all child steps via `_syncChildren()`.\n * @internal\n */\n @property({ attribute: false })\n size: 'sm' | 'md' | 'lg' = 'md';\n\n /**\n * Zero-based index of this step. Set by the parent `<hx-steps>` container.\n * @internal\n */\n @property({ type: Number })\n index = 0;\n\n // ─── Lifecycle ───\n\n override connectedCallback(): void {\n super.connectedCallback();\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'listitem');\n }\n this.setAttribute('tabindex', this.disabled ? '-1' : '0');\n this.addEventListener('keydown', this._handleKeydown);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('keydown', this._handleKeydown);\n }\n\n override updated(changedProperties: PropertyValues<this>): void {\n super.updated(changedProperties);\n if (changedProperties.has('status')) {\n if (this.status === 'active') {\n this.setAttribute('aria-current', 'step');\n } else {\n this.removeAttribute('aria-current');\n }\n }\n if (changedProperties.has('disabled')) {\n if (this.disabled) {\n this.setAttribute('tabindex', '-1');\n this.setAttribute('aria-disabled', 'true');\n } else {\n this.setAttribute('tabindex', '0');\n this.removeAttribute('aria-disabled');\n }\n }\n if (changedProperties.has('orientation')) {\n this.setAttribute('orientation', this.orientation);\n }\n if (changedProperties.has('size')) {\n this.setAttribute('size', this.size);\n }\n }\n\n // ─── Event Handling ───\n\n /** @internal */\n private _handleKeydown = (event: KeyboardEvent): void => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this._handleClick();\n }\n };\n\n /** @internal */\n private _handleClick(): void {\n if (this.disabled) {\n return;\n }\n\n /**\n * Internal event dispatched to signal step click to the parent container.\n * @internal\n */\n this.dispatchEvent(\n new CustomEvent<void>('hx-step-click-internal', {\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n // ─── Render Helpers ───\n\n /** @internal */\n private _renderCheckmark() {\n return html`\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <path d=\"M20 6L9 17l-5-5\" />\n </svg>\n <span class=\"sr-only\">Complete</span>\n `;\n }\n\n /** @internal */\n private _renderXMark() {\n return html`\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2.5\"\n stroke-linecap=\"round\"\n >\n <path d=\"M18 6L6 18M6 6l12 12\" />\n </svg>\n <span class=\"sr-only\">Error</span>\n `;\n }\n\n /** @internal */\n private _renderIndicatorContent() {\n if (this.status === 'complete') {\n return this._renderCheckmark();\n }\n if (this.status === 'error') {\n return this._renderXMark();\n }\n return html`<slot name=\"icon\">${this.index + 1}</slot>`;\n }\n\n // ─── Render ───\n\n override render() {\n return html`\n <div part=\"base\" class=\"step\" role=\"button\" @click=${this._handleClick}>\n <div class=\"step__track\">\n <div part=\"indicator\" class=\"step__indicator\">${this._renderIndicatorContent()}</div>\n <div part=\"connector\" class=\"step__connector\" aria-hidden=\"true\"></div>\n </div>\n <div class=\"step__label-area\">\n <div part=\"label\" class=\"step__label\">\n <slot name=\"label\">${this.label}</slot>\n </div>\n <div part=\"description\" class=\"step__description\">\n <slot name=\"description\">${this.description}</slot>\n </div>\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-step': HelixStep;\n }\n}\n"],"names":["helixStepsStyles","css","HelixSteps","LitElement","e","steps","step","el","index","legacySize","changedProperties","html","nothing","tokenStyles","__decorateClass","property","customElement","helixStepStyles","HelixStep","event"],"mappings":"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"}