@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 u, LitElement as m, html as n, nothing as p } from "lit";
2
- import { property as c, state as f, customElement as y } from "lit/decorators.js";
1
+ import { css as b, LitElement as m, html as l, nothing as p } from "lit";
2
+ import { property as d, state as f, customElement as y } from "lit/decorators.js";
3
3
  import { repeat as w } from "lit/directives/repeat.js";
4
4
  import { tokenStyles as x } from "@helixui/tokens/lit";
5
- const g = u`
5
+ const g = b`
6
6
  :host {
7
7
  display: block;
8
8
  overflow-x: auto;
@@ -109,14 +109,14 @@ const g = u`
109
109
  flex-shrink: 0;
110
110
  width: 1em;
111
111
  height: 1em;
112
- opacity: 0.4;
112
+ opacity: var(--hx-opacity-25, 0.25); /* sort icon inactive — intentionally subtle */
113
113
  transition:
114
114
  opacity var(--hx-transition-fast, 150ms ease),
115
115
  transform var(--hx-transition-fast, 150ms ease);
116
116
  }
117
117
 
118
118
  .sort-icon--active {
119
- opacity: 1;
119
+ opacity: var(--hx-opacity-100, 1);
120
120
  color: var(--hx-color-primary-500, #2563eb);
121
121
  }
122
122
 
@@ -160,7 +160,7 @@ const g = u`
160
160
  var(--hx-color-neutral-200, #e2e8f0) 75%
161
161
  );
162
162
  background-size: 200% 100%;
163
- animation: hx-shimmer 1.5s infinite;
163
+ animation: hx-shimmer var(--hx-data-table-shimmer-duration, 1.5s) infinite;
164
164
  }
165
165
 
166
166
  @keyframes hx-shimmer {
@@ -175,7 +175,10 @@ const g = u`
175
175
  @media (prefers-reduced-motion: reduce) {
176
176
  .skeleton-cell {
177
177
  animation: none;
178
- opacity: 0.6;
178
+ opacity: var(
179
+ --hx-opacity-50,
180
+ 0.5
181
+ ); /* reduced from animation; approximate to available token */
179
182
  }
180
183
 
181
184
  .sort-icon {
@@ -207,14 +210,14 @@ const g = u`
207
210
  padding: var(--hx-space-8, 2rem) var(--hx-space-4, 1rem);
208
211
  }
209
212
  `;
210
- var v = Object.defineProperty, k = Object.getOwnPropertyDescriptor, l = (t, e, r, o) => {
211
- for (var s = o > 1 ? void 0 : o ? k(e, r) : e, i = t.length - 1, h; i >= 0; i--)
212
- (h = t[i]) && (s = (o ? h(e, r, s) : h(s)) || s);
213
+ var v = Object.defineProperty, k = Object.getOwnPropertyDescriptor, n = (t, e, r, o) => {
214
+ for (var s = o > 1 ? void 0 : o ? k(e, r) : e, a = t.length - 1, c; a >= 0; a--)
215
+ (c = t[a]) && (s = (o ? c(e, r, s) : c(s)) || s);
213
216
  return o && s && v(e, r, s), s;
214
217
  };
215
- let a = class extends m {
218
+ let i = class extends m {
216
219
  constructor() {
217
- super(...arguments), this.columns = [], this.rows = [], this.selectable = !1, this.sortKey = "", this.sortDirection = "asc", this.loading = !1, this.emptyLabel = "No data", this.label = "", this.stickyHeader = !1, this.labelSelectAll = "Select all rows", this.labelSortBy = (t, e) => e ? `Sort by ${t}, currently sorted ${e === "asc" ? "ascending" : "descending"}` : `Sort by ${t}`, this.labelSelectRow = (t) => `Select row ${t}`, this.page = 1, this.pageSize = 0, this._selectedRows = /* @__PURE__ */ new Set();
220
+ super(...arguments), this.columns = [], this.rows = [], this.selectable = !1, this.sortKey = "", this.sortDirection = "asc", this.loading = !1, this.emptyLabel = "No data", this.label = "", this.selectAllLabel = "Select all rows", this.stickyHeader = !1, this.page = 1, this.pageSize = 0, this._selectedRows = /* @__PURE__ */ new Set(), this._cachedCells = null;
218
221
  }
219
222
  // ─── Lifecycle ───
220
223
  willUpdate(t) {
@@ -240,6 +243,9 @@ let a = class extends m {
240
243
  }
241
244
  t.has("rows") && this.rows.length > 500, (t.has("label") || t.has("columns")) && this.columns.length > 0 && this.label;
242
245
  }
246
+ updated(t) {
247
+ (t.has("rows") || t.has("columns")) && (this._cachedCells = null);
248
+ }
243
249
  // ─── Event Handlers ───
244
250
  /** @internal */
245
251
  _handleSort(t) {
@@ -289,47 +295,50 @@ let a = class extends m {
289
295
  // ─── Keyboard Navigation ───
290
296
  /** @internal */
291
297
  _handleKeydown(t) {
292
- var b;
298
+ var u;
293
299
  if (!["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight", "Home", "End", " "].includes(t.key))
294
300
  return;
295
301
  const e = this.shadowRoot;
296
302
  if (!e) return;
297
- const r = Array.from(e.querySelectorAll('[part~="td"],[part~="th"]'));
303
+ this._cachedCells || (this._cachedCells = Array.from(
304
+ e.querySelectorAll('[part~="td"],[part~="th"]')
305
+ ));
306
+ const r = this._cachedCells;
298
307
  let o = e.activeElement;
299
308
  if (!o) return;
300
309
  if (r.indexOf(o) === -1) {
301
- let d = o.parentElement;
302
- for (; d; ) {
303
- if (r.includes(d)) {
304
- o = d;
310
+ let h = o.parentElement;
311
+ for (; h; ) {
312
+ if (r.includes(h)) {
313
+ o = h;
305
314
  break;
306
315
  }
307
- d = d.parentElement;
316
+ h = h.parentElement;
308
317
  }
309
318
  }
310
- const s = this.columns.length + (this.selectable ? 1 : 0), i = r.indexOf(o);
311
- if (i === -1) return;
312
- let h = null;
313
- if (t.key === "ArrowRight" && i + 1 < r.length)
314
- h = r[i + 1] ?? null;
315
- else if (t.key === "ArrowLeft" && i - 1 >= 0)
316
- h = r[i - 1] ?? null;
317
- else if (t.key === "ArrowDown" && i + s < r.length)
318
- h = r[i + s] ?? null;
319
- else if (t.key === "ArrowUp" && i - s >= 0)
320
- h = r[i - s] ?? null;
319
+ const s = this.columns.length + (this.selectable ? 1 : 0), a = r.indexOf(o);
320
+ if (a === -1) return;
321
+ let c = null;
322
+ if (t.key === "ArrowRight" && a + 1 < r.length)
323
+ c = r[a + 1] ?? null;
324
+ else if (t.key === "ArrowLeft" && a - 1 >= 0)
325
+ c = r[a - 1] ?? null;
326
+ else if (t.key === "ArrowDown" && a + s < r.length)
327
+ c = r[a + s] ?? null;
328
+ else if (t.key === "ArrowUp" && a - s >= 0)
329
+ c = r[a - s] ?? null;
321
330
  else if (t.key === "Home") {
322
- const d = i - i % s;
323
- h = r[d] ?? null;
331
+ const h = a - a % s;
332
+ c = r[h] ?? null;
324
333
  } else if (t.key === "End") {
325
- const d = Math.min(i - i % s + s - 1, r.length - 1);
326
- h = r[d] ?? null;
327
- } else if (t.key === " " && ((b = o.getAttribute("part")) != null && b.includes("td"))) {
328
- const d = Number(o.dataset.rowIndex);
329
- this.selectable && !isNaN(d) && (t.preventDefault(), this._handleSelect(d, !this._selectedRows.has(d)));
334
+ const h = Math.min(a - a % s + s - 1, r.length - 1);
335
+ c = r[h] ?? null;
336
+ } else if (t.key === " " && ((u = o.getAttribute("part")) != null && u.includes("td"))) {
337
+ const h = Number(o.dataset.rowIndex);
338
+ this.selectable && !isNaN(h) && (t.preventDefault(), this._handleSelect(h, !this._selectedRows.has(h)));
330
339
  return;
331
340
  }
332
- h && (t.preventDefault(), h.setAttribute("tabindex", "0"), h.focus(), o.setAttribute("tabindex", "-1"));
341
+ c && (t.preventDefault(), c.setAttribute("tabindex", "0"), c.focus(), o.setAttribute("tabindex", "-1"));
333
342
  }
334
343
  // ─── Render Helpers ───
335
344
  /** @internal */
@@ -339,7 +348,7 @@ let a = class extends m {
339
348
  e ? "sort-icon--active" : "",
340
349
  e && this.sortDirection === "desc" ? "sort-icon--desc" : ""
341
350
  ].filter(Boolean).join(" ");
342
- return n`
351
+ return l`
343
352
  <span part="sort-icon" class=${r} aria-hidden="true">
344
353
  <svg
345
354
  xmlns="http://www.w3.org/2000/svg"
@@ -355,14 +364,14 @@ let a = class extends m {
355
364
  }
356
365
  /** @internal */
357
366
  _renderHeaderRow() {
358
- return n`
367
+ return l`
359
368
  <tr part="tr">
360
- ${this.selectable ? n`
369
+ ${this.selectable ? l`
361
370
  <th part="th" class="col-checkbox" tabindex="0">
362
371
  <input
363
372
  type="checkbox"
364
373
  part="checkbox"
365
- aria-label=${this.labelSelectAll}
374
+ aria-label=${this.selectAllLabel}
366
375
  .indeterminate=${this._selectedRows.size > 0 && this._selectedRows.size < this.rows.length}
367
376
  .checked=${this._selectedRows.size === this.rows.length && this.rows.length > 0}
368
377
  @change=${(t) => this._handleSelectAll(t.target.checked)}
@@ -370,21 +379,18 @@ let a = class extends m {
370
379
  </th>
371
380
  ` : p}
372
381
  ${this.columns.map(
373
- (t) => n`
382
+ (t) => l`
374
383
  <th
375
384
  part="th"
376
385
  tabindex="0"
377
386
  style=${t.width ? `width: ${t.width}` : ""}
378
387
  aria-sort=${t.sortable ? this.sortKey === t.key ? this.sortDirection === "asc" ? "ascending" : "descending" : "none" : p}
379
388
  >
380
- ${t.sortable ? n`
389
+ ${t.sortable ? l`
381
390
  <button
382
391
  class="sort-btn"
383
392
  @click=${() => this._handleSort(t.key)}
384
- aria-label=${this.labelSortBy(
385
- t.label,
386
- this.sortKey === t.key ? this.sortDirection : null
387
- )}
393
+ aria-label=${this.sortKey === t.key ? `Sort by ${t.label}, currently sorted ${this.sortDirection === "asc" ? "ascending" : "descending"}` : `Sort by ${t.label}`}
388
394
  >
389
395
  ${t.label} ${this._renderSortIcon(t.key)}
390
396
  </button>
@@ -399,13 +405,13 @@ let a = class extends m {
399
405
  _renderSkeletonRows() {
400
406
  return Array.from(
401
407
  { length: 3 },
402
- (t) => n`
408
+ (t) => l`
403
409
  <tr part="tr" aria-hidden="true">
404
- ${this.selectable ? n`<td part="td" class="col-checkbox">
410
+ ${this.selectable ? l`<td part="td" class="col-checkbox">
405
411
  <span class="skeleton-cell" style="width:1rem;margin:auto"></span>
406
412
  </td>` : p}
407
413
  ${this.columns.map(
408
- () => n`
414
+ () => l`
409
415
  <td part="td">
410
416
  <span class="skeleton-cell"></span>
411
417
  </td>
@@ -418,7 +424,7 @@ let a = class extends m {
418
424
  /** @internal */
419
425
  _renderEmptyRow() {
420
426
  const t = this.columns.length + (this.selectable ? 1 : 0);
421
- return n`
427
+ return l`
422
428
  <tr part="tr">
423
429
  <td part="td" colspan=${t} class="empty-cell">
424
430
  <slot name="empty">${this.emptyLabel}</slot>
@@ -438,18 +444,21 @@ let a = class extends m {
438
444
  (e, r) => this.pageSize > 0 ? (this.page - 1) * this.pageSize + r : r,
439
445
  (e, r) => {
440
446
  const o = this.pageSize > 0 ? (this.page - 1) * this.pageSize + r : r;
441
- return n`
447
+ return l`
442
448
  <tr
443
449
  part="tr"
444
450
  aria-selected=${this.selectable ? String(this._selectedRows.has(o)) : p}
445
451
  @click=${() => this._handleRowClick(e, o)}
452
+ @keydown=${(s) => {
453
+ (s.key === "Enter" || s.key === " ") && (s.preventDefault(), this._handleRowClick(e, o));
454
+ }}
446
455
  >
447
- ${this.selectable ? n`
456
+ ${this.selectable ? l`
448
457
  <td part="td" class="col-checkbox" tabindex="-1" data-row-index=${o}>
449
458
  <input
450
459
  type="checkbox"
451
460
  part="checkbox"
452
- aria-label=${this.labelSelectRow(o + 1)}
461
+ aria-label=${`Select row ${o + 1}`}
453
462
  .checked=${this._selectedRows.has(o)}
454
463
  @click=${(s) => s.stopPropagation()}
455
464
  @change=${(s) => this._handleSelect(o, s.target.checked)}
@@ -457,7 +466,7 @@ let a = class extends m {
457
466
  </td>
458
467
  ` : p}
459
468
  ${this.columns.map(
460
- (s) => n`
469
+ (s) => l`
461
470
  <td part="td" tabindex="-1" data-row-index=${o}>
462
471
  ${e[s.key] != null ? String(e[s.key]) : ""}
463
472
  </td>
@@ -470,7 +479,7 @@ let a = class extends m {
470
479
  }
471
480
  // ─── Render ───
472
481
  render() {
473
- return n`
482
+ return l`
474
483
  <slot name="toolbar"></slot>
475
484
  <div class="table-wrapper">
476
485
  <table
@@ -484,63 +493,81 @@ let a = class extends m {
484
493
  ${this._renderHeaderRow()}
485
494
  </thead>
486
495
  <tbody part="tbody">
487
- ${this.loading ? n`<slot name="loading">${this._renderSkeletonRows()}</slot>` : this.rows.length === 0 ? this._renderEmptyRow() : this._renderDataRows()}
496
+ ${this.loading ? l`<slot name="loading">${this._renderSkeletonRows()}</slot>` : this.rows.length === 0 ? this._renderEmptyRow() : this._renderDataRows()}
488
497
  </tbody>
489
498
  </table>
490
499
  </div>
491
500
  `;
492
501
  }
493
502
  };
494
- a.styles = [x, g];
495
- l([
496
- c({ type: Array })
497
- ], a.prototype, "columns", 2);
498
- l([
499
- c({ type: Array })
500
- ], a.prototype, "rows", 2);
501
- l([
502
- c({ type: Boolean, reflect: !0 })
503
- ], a.prototype, "selectable", 2);
504
- l([
505
- c({ type: String, attribute: "sort-key" })
506
- ], a.prototype, "sortKey", 2);
507
- l([
508
- c({ type: String, attribute: "sort-direction" })
509
- ], a.prototype, "sortDirection", 2);
510
- l([
511
- c({ type: Boolean, reflect: !0 })
512
- ], a.prototype, "loading", 2);
513
- l([
514
- c({ type: String, attribute: "empty-label" })
515
- ], a.prototype, "emptyLabel", 2);
516
- l([
517
- c({ type: String })
518
- ], a.prototype, "label", 2);
519
- l([
520
- c({ type: Boolean, reflect: !0, attribute: "sticky-header" })
521
- ], a.prototype, "stickyHeader", 2);
522
- l([
523
- c({ type: String, attribute: "label-select-all" })
524
- ], a.prototype, "labelSelectAll", 2);
525
- l([
526
- c({ attribute: !1 })
527
- ], a.prototype, "labelSortBy", 2);
528
- l([
529
- c({ attribute: !1 })
530
- ], a.prototype, "labelSelectRow", 2);
531
- l([
532
- c({ type: Number })
533
- ], a.prototype, "page", 2);
534
- l([
535
- c({ type: Number, attribute: "page-size" })
536
- ], a.prototype, "pageSize", 2);
537
- l([
503
+ i.styles = [x, g];
504
+ n([
505
+ d({
506
+ type: Array,
507
+ converter: {
508
+ fromAttribute(t) {
509
+ if (!t) return [];
510
+ try {
511
+ return JSON.parse(t);
512
+ } catch {
513
+ return [];
514
+ }
515
+ }
516
+ }
517
+ })
518
+ ], i.prototype, "columns", 2);
519
+ n([
520
+ d({
521
+ type: Array,
522
+ converter: {
523
+ fromAttribute(t) {
524
+ if (!t) return [];
525
+ try {
526
+ return JSON.parse(t);
527
+ } catch {
528
+ return [];
529
+ }
530
+ }
531
+ }
532
+ })
533
+ ], i.prototype, "rows", 2);
534
+ n([
535
+ d({ type: Boolean, reflect: !0 })
536
+ ], i.prototype, "selectable", 2);
537
+ n([
538
+ d({ type: String, attribute: "sort-key" })
539
+ ], i.prototype, "sortKey", 2);
540
+ n([
541
+ d({ type: String, attribute: "sort-direction" })
542
+ ], i.prototype, "sortDirection", 2);
543
+ n([
544
+ d({ type: Boolean, reflect: !0 })
545
+ ], i.prototype, "loading", 2);
546
+ n([
547
+ d({ type: String, attribute: "empty-label" })
548
+ ], i.prototype, "emptyLabel", 2);
549
+ n([
550
+ d({ type: String })
551
+ ], i.prototype, "label", 2);
552
+ n([
553
+ d({ attribute: "select-all-label" })
554
+ ], i.prototype, "selectAllLabel", 2);
555
+ n([
556
+ d({ type: Boolean, reflect: !0, attribute: "sticky-header" })
557
+ ], i.prototype, "stickyHeader", 2);
558
+ n([
559
+ d({ type: Number })
560
+ ], i.prototype, "page", 2);
561
+ n([
562
+ d({ type: Number, attribute: "page-size" })
563
+ ], i.prototype, "pageSize", 2);
564
+ n([
538
565
  f()
539
- ], a.prototype, "_selectedRows", 2);
540
- a = l([
566
+ ], i.prototype, "_selectedRows", 2);
567
+ i = n([
541
568
  y("hx-data-table")
542
- ], a);
569
+ ], i);
543
570
  export {
544
- a as H
571
+ i as H
545
572
  };
546
- //# sourceMappingURL=hx-data-table-DujB9hSE.js.map
573
+ //# sourceMappingURL=hx-data-table-B1j4n4bm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hx-data-table-B1j4n4bm.js","sources":["../../src/components/hx-data-table/hx-data-table.styles.ts","../../src/components/hx-data-table/hx-data-table.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixDataTableStyles = css`\n :host {\n display: block;\n overflow-x: auto;\n font-family: var(--hx-font-family-sans, sans-serif);\n font-size: var(--hx-font-size-sm, 0.875rem);\n }\n\n /* ─── Scroll Wrapper ─── */\n\n .table-wrapper {\n min-width: 0;\n width: 100%;\n }\n\n /* ─── Table ─── */\n\n table {\n width: 100%;\n border-collapse: collapse;\n border-spacing: 0;\n min-width: var(--hx-data-table-min-width, 600px);\n }\n\n /* ─── Head ─── */\n\n thead {\n background-color: var(--hx-data-table-header-bg, var(--hx-color-neutral-50, #f8fafc));\n }\n\n :host([sticky-header]) thead th {\n position: sticky;\n top: 0;\n z-index: 1;\n background-color: var(--hx-data-table-header-bg, var(--hx-color-neutral-50, #f8fafc));\n }\n\n /* ─── Cells ─── */\n\n th,\n td {\n padding: var(--hx-space-3, 0.75rem) var(--hx-space-4, 1rem);\n text-align: start;\n border-bottom: var(--hx-border-width-thin, 1px) solid\n var(--hx-data-table-border-color, var(--hx-color-neutral-200, #e2e8f0));\n vertical-align: middle;\n }\n\n th {\n font-weight: var(--hx-font-weight-semibold, 600);\n color: var(--hx-data-table-header-color, var(--hx-color-neutral-700, #334155));\n white-space: nowrap;\n }\n\n td {\n color: var(--hx-data-table-cell-color, var(--hx-color-neutral-900, #0f172a));\n }\n\n /* ─── Checkbox Column ─── */\n\n th.col-checkbox,\n td.col-checkbox {\n /* WCAG 2.5.5 (healthcare mandate): minimum 44x44px touch target */\n width: var(--hx-touch-target-min, 2.75rem);\n min-width: var(--hx-touch-target-min, 2.75rem);\n padding-inline-end: var(--hx-space-2, 0.5rem);\n }\n\n th.col-checkbox {\n text-align: center;\n }\n\n td.col-checkbox {\n text-align: center;\n }\n\n /* ─── Sort Button ─── */\n\n .sort-btn {\n display: inline-flex;\n align-items: center;\n gap: var(--hx-space-1, 0.25rem);\n background: none;\n border: none;\n padding: 0;\n font: inherit;\n font-weight: inherit;\n color: inherit;\n cursor: pointer;\n white-space: nowrap;\n }\n\n .sort-btn:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid\n var(--hx-focus-ring-color, var(--hx-color-primary-500, #2563eb));\n outline-offset: var(--hx-focus-ring-offset, 2px);\n border-radius: var(--hx-border-radius-sm, 2px);\n }\n\n /* ─── Sort Icon ─── */\n\n .sort-icon {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n opacity: var(--hx-opacity-25, 0.25); /* sort icon inactive — intentionally subtle */\n transition:\n opacity var(--hx-transition-fast, 150ms ease),\n transform var(--hx-transition-fast, 150ms ease);\n }\n\n .sort-icon--active {\n opacity: var(--hx-opacity-100, 1);\n color: var(--hx-color-primary-500, #2563eb);\n }\n\n .sort-icon--desc {\n transform: rotate(180deg);\n }\n\n /* ─── Row States ─── */\n\n tbody tr {\n transition: background-color var(--hx-transition-fast, 150ms ease);\n }\n\n tbody tr:hover {\n background-color: var(--hx-data-table-row-hover-bg, var(--hx-color-neutral-50, #f8fafc));\n }\n\n tbody tr[aria-selected='true'] {\n background-color: var(--hx-data-table-row-selected-bg, var(--hx-color-primary-50, #eff6ff));\n }\n\n /* ─── Checkbox Input ─── */\n\n input[type='checkbox'] {\n width: var(--hx-size-4, 1rem);\n height: var(--hx-size-4, 1rem);\n cursor: pointer;\n accent-color: var(--hx-color-primary-500, #2563eb);\n }\n\n /* ─── Loading Skeleton ─── */\n\n .skeleton-cell {\n display: block;\n height: 1em;\n border-radius: var(--hx-border-radius-sm, 2px);\n background: linear-gradient(\n 90deg,\n var(--hx-color-neutral-200, #e2e8f0) 25%,\n var(--hx-color-neutral-100, #f1f5f9) 50%,\n var(--hx-color-neutral-200, #e2e8f0) 75%\n );\n background-size: 200% 100%;\n animation: hx-shimmer var(--hx-data-table-shimmer-duration, 1.5s) infinite;\n }\n\n @keyframes hx-shimmer {\n 0% {\n background-position: 200% 0;\n }\n 100% {\n background-position: -200% 0;\n }\n }\n\n @media (prefers-reduced-motion: reduce) {\n .skeleton-cell {\n animation: none;\n opacity: var(\n --hx-opacity-50,\n 0.5\n ); /* reduced from animation; approximate to available token */\n }\n\n .sort-icon {\n transition: none;\n }\n\n tbody tr {\n transition: none;\n }\n }\n\n /* ─── Cell Focus ─── */\n\n td:focus-visible,\n th:focus-visible,\n [part~='td']:focus-visible,\n [part~='th']:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid\n var(--hx-focus-ring-color, var(--hx-color-primary-500, #2563eb));\n outline-offset: var(--hx-focus-ring-offset, -2px);\n border-radius: var(--hx-border-radius-sm, 2px);\n }\n\n /* ─── Empty State ─── */\n\n .empty-cell {\n text-align: center;\n color: var(--hx-data-table-empty-color, var(--hx-color-neutral-600, #475569));\n padding: var(--hx-space-8, 2rem) var(--hx-space-4, 1rem);\n }\n`;\n","import { LitElement, html, nothing, type PropertyValues } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { repeat } from 'lit/directives/repeat.js';\nimport { tokenStyles } from '@helixui/tokens/lit';\nimport { helixDataTableStyles } from './hx-data-table.styles.js';\nimport { devWarn } from '../../utils/dev-warn.js';\n\n/**\n * Column definition for `hx-data-table`.\n */\nexport interface HxDataTableColumn {\n key: string;\n label: string;\n sortable?: boolean;\n width?: string;\n}\n\n/**\n * Sort state exported for TypeScript consumers and CEM event types.\n */\nexport interface HxDataTableSortState {\n key: string;\n direction: 'asc' | 'desc';\n}\n\n/**\n * An enterprise data table with sorting, row selection, and keyboard navigation.\n *\n * @summary Enterprise data table with sorting, selection, and responsive scroll.\n *\n * @tag hx-data-table\n *\n * @slot toolbar - Content rendered above the table (e.g., search, actions).\n * @slot empty - Custom empty-state content rendered when `rows` is empty and not loading.\n * @slot loading - Custom loading content rendered when `loading` is true.\n *\n * @fires {CustomEvent<HxDataTableSortState>} hx-sort - Dispatched when a sortable column header is clicked.\n * @fires {CustomEvent<{selectedRows: Record<string, unknown>[]}>} hx-select - Dispatched when row selection changes.\n * @fires {CustomEvent<{row: Record<string, unknown>, index: number}>} hx-row-click - Dispatched when a data row is clicked.\n *\n * @csspart table - The `<table>` element.\n * @csspart thead - The `<thead>` element.\n * @csspart tbody - The `<tbody>` element.\n * @csspart tr - Each `<tr>` element.\n * @csspart th - Each `<th>` element.\n * @csspart td - Each `<td>` element.\n * @csspart sort-icon - The sort indicator icon `<span>` inside sortable headers.\n * @csspart checkbox - Each `<input type=\"checkbox\">` element.\n *\n * @cssprop [--hx-data-table-header-bg=var(--hx-color-neutral-50)] - Header background color.\n * @cssprop [--hx-data-table-header-color=var(--hx-color-neutral-700)] - Header text color.\n * @cssprop [--hx-data-table-cell-color=var(--hx-color-neutral-900)] - Cell text color.\n * @cssprop [--hx-data-table-border-color=var(--hx-color-neutral-200)] - Row border color.\n * @cssprop [--hx-data-table-row-hover-bg=var(--hx-color-neutral-50)] - Row hover background.\n * @cssprop [--hx-data-table-row-selected-bg=var(--hx-color-primary-50)] - Selected row background.\n * @cssprop [--hx-data-table-empty-color=var(--hx-color-neutral-600)] - Empty state text color.\n * @cssprop [--hx-data-table-min-width=600px] - Minimum table width before horizontal scrolling.\n */\n@customElement('hx-data-table')\nexport class HelixDataTable extends LitElement {\n static override styles = [tokenStyles, helixDataTableStyles];\n\n // ─── Public Properties ───\n\n /**\n * Column definitions. Each item: `{ key, label, sortable?, width? }`.\n * Can be set as a JS array or a JSON string (e.g., from a Drupal Twig attribute).\n * @attr columns\n */\n @property({\n type: Array,\n converter: {\n fromAttribute(value: string | null) {\n if (!value) return [];\n try {\n return JSON.parse(value);\n } catch {\n return [];\n }\n },\n },\n })\n columns: HxDataTableColumn[] = [];\n\n /**\n * Row data. Each item is a plain object keyed by column `key` values.\n * Can be set as a JS array or a JSON string (e.g., from a Drupal Twig attribute).\n * @attr rows\n */\n @property({\n type: Array,\n converter: {\n fromAttribute(value: string | null) {\n if (!value) return [];\n try {\n return JSON.parse(value);\n } catch {\n return [];\n }\n },\n },\n })\n rows: Record<string, unknown>[] = [];\n\n /**\n * When true, renders a checkbox column for row selection.\n * @attr selectable\n */\n @property({ type: Boolean, reflect: true })\n selectable = false;\n\n /**\n * The column key currently used for sorting.\n * @attr sort-key\n */\n @property({ type: String, attribute: 'sort-key' })\n sortKey = '';\n\n /**\n * Current sort direction.\n * @attr sort-direction\n */\n @property({ type: String, attribute: 'sort-direction' })\n sortDirection: 'asc' | 'desc' = 'asc';\n\n /**\n * When true, renders a loading skeleton and sets `aria-busy=\"true\"` on the host.\n * @attr loading\n */\n @property({ type: Boolean, reflect: true })\n loading = false;\n\n /**\n * Text displayed in the default empty state when `rows` is empty and not loading.\n * @attr empty-label\n */\n @property({ type: String, attribute: 'empty-label' })\n emptyLabel = 'No data';\n\n /**\n * Accessible name for the table. Exposed via `aria-label` on the `<table>` element.\n * Required when the table has columns — a missing label is a WCAG 4.1.2 violation.\n * @attr label\n */\n @property({ type: String })\n label = '';\n\n /**\n * Accessible label for the \"select all rows\" checkbox in the table header.\n * @attr select-all-label\n */\n @property({ attribute: 'select-all-label' })\n selectAllLabel = 'Select all rows';\n\n /**\n * When true, the header row is sticky (position: sticky; top: 0).\n * @attr sticky-header\n */\n @property({ type: Boolean, reflect: true, attribute: 'sticky-header' })\n stickyHeader = false;\n\n /**\n * Current page (1-based). Set to 0 or leave at default (0) to disable pagination.\n * @attr page\n */\n @property({ type: Number })\n page = 1;\n\n /**\n * Number of rows per page. Set to 0 to disable pagination (show all rows).\n * @attr page-size\n */\n @property({ type: Number, attribute: 'page-size' })\n pageSize = 0;\n\n // ─── Internal State ───\n\n /** @internal */\n @state()\n private _selectedRows: Set<number> = new Set();\n\n /**\n * Cached flat list of all td/th cells in the shadow DOM.\n * Invalidated (set to null) whenever rows or columns change so the next keydown\n * re-queries the DOM and re-caches. Avoids repeated querySelectorAll on every keypress.\n * @internal\n */\n private _cachedCells: HTMLElement[] | null = null;\n\n // ─── Lifecycle ───\n\n override willUpdate(changed: PropertyValues<this>): void {\n // Coerce JSON strings to arrays — this is the Drupal/Twig integration path.\n // Lit does not JSON-parse array attributes automatically, so we do it here.\n // Note: Lit's defaultConverter returns null (not a string) when JSON.parse fails for\n // type: Array — so we guard against both string and any non-array value.\n if (changed.has('columns')) {\n const rawColumns: unknown = this.columns;\n if (typeof rawColumns === 'string') {\n try {\n this.columns = JSON.parse(rawColumns) as HxDataTableColumn[];\n } catch {\n this.columns = [];\n }\n } else if (!Array.isArray(this.columns)) {\n this.columns = [];\n }\n }\n if (changed.has('rows')) {\n const rawRows: unknown = this.rows;\n if (typeof rawRows === 'string') {\n try {\n this.rows = JSON.parse(rawRows) as Record<string, unknown>[];\n } catch {\n this.rows = [];\n }\n } else if (!Array.isArray(this.rows)) {\n this.rows = [];\n }\n }\n // Only warn when rows actually changes to avoid noise on every property update.\n if (changed.has('rows') && this.rows.length > 500) {\n devWarn(\n 'hx-data-table',\n 'Rendering more than 500 rows may impact performance. Consider server-side pagination.',\n );\n }\n // WCAG 4.1.2: data tables must have an accessible name so screen readers can identify them.\n if (\n (changed.has('label') || changed.has('columns')) &&\n this.columns.length > 0 &&\n !this.label\n ) {\n devWarn(\n 'hx-data-table',\n 'No accessible name provided. Set the `label` attribute so screen readers can identify this table (WCAG 4.1.2).',\n );\n }\n }\n\n override updated(changed: PropertyValues<this>): void {\n // Invalidate cell cache when rows or columns change so the next keyboard\n // navigation re-queries and re-caches the updated DOM.\n if (changed.has('rows') || changed.has('columns')) {\n this._cachedCells = null;\n }\n }\n\n // ─── Event Handlers ───\n\n /** @internal */\n private _handleSort(key: string): void {\n const direction =\n this.sortKey === key ? (this.sortDirection === 'asc' ? 'desc' : 'asc') : 'asc';\n this.sortKey = key;\n this.sortDirection = direction;\n this.dispatchEvent(\n new CustomEvent<HxDataTableSortState>('hx-sort', {\n bubbles: true,\n composed: true,\n detail: { key, direction },\n }),\n );\n }\n\n /** @internal */\n private _handleRowClick(row: Record<string, unknown>, index: number): void {\n this.dispatchEvent(\n new CustomEvent<{ row: Record<string, unknown>; index: number }>('hx-row-click', {\n bubbles: true,\n composed: true,\n detail: { row, index },\n }),\n );\n }\n\n /** @internal */\n private _handleSelect(index: number, checked: boolean): void {\n const next = new Set(this._selectedRows);\n if (checked) {\n next.add(index);\n } else {\n next.delete(index);\n }\n this._selectedRows = next;\n this._dispatchSelect();\n }\n\n /** @internal */\n private _handleSelectAll(checked: boolean): void {\n this._selectedRows = checked ? new Set(this.rows.map((_, i) => i)) : new Set<number>();\n this._dispatchSelect();\n }\n\n /** @internal */\n private _dispatchSelect(): void {\n this.dispatchEvent(\n new CustomEvent<{ selectedRows: Record<string, unknown>[] }>('hx-select', {\n bubbles: true,\n composed: true,\n detail: {\n selectedRows: [...this._selectedRows].flatMap((i) => {\n const row = this.rows[i];\n return row !== undefined ? [row] : [];\n }),\n },\n }),\n );\n }\n\n // ─── Keyboard Navigation ───\n\n /** @internal */\n private _handleKeydown(e: KeyboardEvent): void {\n if (!['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'Home', 'End', ' '].includes(e.key))\n return;\n\n const root = this.shadowRoot;\n if (!root) return;\n\n // Use cached cell list; re-query only when invalidated by rows/columns change\n if (!this._cachedCells) {\n this._cachedCells = Array.from(\n root.querySelectorAll<HTMLElement>('[part~=\"td\"],[part~=\"th\"]'),\n );\n }\n const cells = this._cachedCells;\n\n // When focus is inside a child element (e.g., the sort <button> inside a <th>),\n // shadowRoot.activeElement returns the child, not the cell. Walk up to find the cell.\n let focused = root.activeElement as HTMLElement | null;\n if (!focused) return;\n\n if (cells.indexOf(focused) === -1) {\n let ancestor = focused.parentElement;\n while (ancestor) {\n if (cells.includes(ancestor as HTMLElement)) {\n focused = ancestor as HTMLElement;\n break;\n }\n ancestor = ancestor.parentElement;\n }\n }\n\n const colCount = this.columns.length + (this.selectable ? 1 : 0);\n const idx = cells.indexOf(focused);\n if (idx === -1) return;\n\n let target: HTMLElement | null = null;\n\n if (e.key === 'ArrowRight' && idx + 1 < cells.length) {\n target = cells[idx + 1] ?? null;\n } else if (e.key === 'ArrowLeft' && idx - 1 >= 0) {\n target = cells[idx - 1] ?? null;\n } else if (e.key === 'ArrowDown' && idx + colCount < cells.length) {\n target = cells[idx + colCount] ?? null;\n } else if (e.key === 'ArrowUp' && idx - colCount >= 0) {\n target = cells[idx - colCount] ?? null;\n } else if (e.key === 'Home') {\n // First cell of the current row\n const rowStart = idx - (idx % colCount);\n target = cells[rowStart] ?? null;\n } else if (e.key === 'End') {\n // Last cell of the current row\n const rowEnd = Math.min(idx - (idx % colCount) + colCount - 1, cells.length - 1);\n target = cells[rowEnd] ?? null;\n } else if (e.key === ' ' && focused.getAttribute('part')?.includes('td')) {\n // Toggle selection on Space in a data row\n const rowIdx = Number(focused.dataset['rowIndex']);\n if (this.selectable && !isNaN(rowIdx)) {\n e.preventDefault();\n this._handleSelect(rowIdx, !this._selectedRows.has(rowIdx));\n }\n return;\n }\n\n if (target) {\n e.preventDefault();\n target.setAttribute('tabindex', '0');\n target.focus();\n focused.setAttribute('tabindex', '-1');\n }\n }\n\n // ─── Render Helpers ───\n\n /** @internal */\n private _renderSortIcon(key: string) {\n const isActive = this.sortKey === key;\n const iconClass = [\n 'sort-icon',\n isActive ? 'sort-icon--active' : '',\n isActive && this.sortDirection === 'desc' ? 'sort-icon--desc' : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return html`\n <span part=\"sort-icon\" class=${iconClass} aria-hidden=\"true\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 16 16\"\n fill=\"currentColor\"\n width=\"16\"\n height=\"16\"\n >\n <path d=\"M8 3L5 7h6L8 3zM8 13l3-4H5l3 4z\" fill-rule=\"evenodd\" />\n </svg>\n </span>\n `;\n }\n\n /** @internal */\n private _renderHeaderRow() {\n return html`\n <tr part=\"tr\">\n ${this.selectable\n ? html`\n <th part=\"th\" class=\"col-checkbox\" tabindex=\"0\">\n <input\n type=\"checkbox\"\n part=\"checkbox\"\n aria-label=${this.selectAllLabel}\n .indeterminate=${this._selectedRows.size > 0 &&\n this._selectedRows.size < this.rows.length}\n .checked=${this._selectedRows.size === this.rows.length && this.rows.length > 0}\n @change=${(e: Event) =>\n this._handleSelectAll((e.target as HTMLInputElement).checked)}\n />\n </th>\n `\n : nothing}\n ${this.columns.map(\n (col) => html`\n <th\n part=\"th\"\n tabindex=\"0\"\n style=${col.width ? `width: ${col.width}` : ''}\n aria-sort=${col.sortable\n ? this.sortKey === col.key\n ? this.sortDirection === 'asc'\n ? 'ascending'\n : 'descending'\n : 'none'\n : nothing}\n >\n ${col.sortable\n ? html`\n <button\n class=\"sort-btn\"\n @click=${() => this._handleSort(col.key)}\n aria-label=${this.sortKey === col.key\n ? `Sort by ${col.label}, currently sorted ${this.sortDirection === 'asc' ? 'ascending' : 'descending'}`\n : `Sort by ${col.label}`}\n >\n ${col.label} ${this._renderSortIcon(col.key)}\n </button>\n `\n : col.label}\n </th>\n `,\n )}\n </tr>\n `;\n }\n\n /** @internal */\n private _renderSkeletonRows() {\n return Array.from(\n { length: 3 },\n (_) => html`\n <tr part=\"tr\" aria-hidden=\"true\">\n ${this.selectable\n ? html`<td part=\"td\" class=\"col-checkbox\">\n <span class=\"skeleton-cell\" style=\"width:1rem;margin:auto\"></span>\n </td>`\n : nothing}\n ${this.columns.map(\n () => html`\n <td part=\"td\">\n <span class=\"skeleton-cell\"></span>\n </td>\n `,\n )}\n </tr>\n `,\n );\n }\n\n /** @internal */\n private _renderEmptyRow() {\n const colSpan = this.columns.length + (this.selectable ? 1 : 0);\n return html`\n <tr part=\"tr\">\n <td part=\"td\" colspan=${colSpan} class=\"empty-cell\">\n <slot name=\"empty\">${this.emptyLabel}</slot>\n </td>\n </tr>\n `;\n }\n\n /** @internal */\n private _renderDataRows() {\n let displayRows = this.rows;\n\n // Client-side pagination when pageSize > 0\n if (this.pageSize > 0) {\n const start = (this.page - 1) * this.pageSize;\n displayRows = this.rows.slice(start, start + this.pageSize);\n }\n\n return repeat(\n displayRows,\n (_row, pageIndex) => {\n const globalIndex =\n this.pageSize > 0 ? (this.page - 1) * this.pageSize + pageIndex : pageIndex;\n return globalIndex;\n },\n (row, pageIndex) => {\n // The global row index for selection and events\n const globalIndex =\n this.pageSize > 0 ? (this.page - 1) * this.pageSize + pageIndex : pageIndex;\n return html`\n <tr\n part=\"tr\"\n aria-selected=${this.selectable ? String(this._selectedRows.has(globalIndex)) : nothing}\n @click=${() => this._handleRowClick(row, globalIndex)}\n @keydown=${(e: KeyboardEvent) => {\n // WCAG 2.1.1: rows are keyboard-activatable via Enter and Space so that\n // the hx-row-click event fires equivalently for keyboard users.\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n this._handleRowClick(row, globalIndex);\n }\n }}\n >\n ${this.selectable\n ? html`\n <td part=\"td\" class=\"col-checkbox\" tabindex=\"-1\" data-row-index=${globalIndex}>\n <input\n type=\"checkbox\"\n part=\"checkbox\"\n aria-label=${`Select row ${globalIndex + 1}`}\n .checked=${this._selectedRows.has(globalIndex)}\n @click=${(e: Event) => e.stopPropagation()}\n @change=${(e: Event) =>\n this._handleSelect(globalIndex, (e.target as HTMLInputElement).checked)}\n />\n </td>\n `\n : nothing}\n ${this.columns.map(\n (col) => html`\n <td part=\"td\" tabindex=\"-1\" data-row-index=${globalIndex}>\n ${row[col.key] != null ? String(row[col.key]) : ''}\n </td>\n `,\n )}\n </tr>\n `;\n },\n );\n }\n\n // ─── Render ───\n\n override render() {\n return html`\n <slot name=\"toolbar\"></slot>\n <div class=\"table-wrapper\">\n <table\n part=\"table\"\n role=\"grid\"\n aria-label=${this.label.trim() || 'Table'}\n aria-busy=${this.loading ? 'true' : nothing}\n @keydown=${this._handleKeydown}\n >\n <thead part=\"thead\">\n ${this._renderHeaderRow()}\n </thead>\n <tbody part=\"tbody\">\n ${this.loading\n ? html`<slot name=\"loading\">${this._renderSkeletonRows()}</slot>`\n : this.rows.length === 0\n ? this._renderEmptyRow()\n : this._renderDataRows()}\n </tbody>\n </table>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-data-table': HelixDataTable;\n }\n}\n"],"names":["helixDataTableStyles","css","HelixDataTable","LitElement","changed","rawColumns","rawRows","key","direction","row","index","checked","next","_","i","e","root","cells","focused","ancestor","colCount","idx","target","rowStart","rowEnd","_a","rowIdx","isActive","iconClass","html","nothing","col","colSpan","displayRows","start","repeat","_row","pageIndex","globalIndex","tokenStyles","__decorateClass","property","value","state","customElement"],"mappings":"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"}