@helixui/library 2.1.2-next.53 → 2.1.2-next.57

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 (753) hide show
  1. package/custom-elements.json +847 -1038
  2. package/dist/base/helix-element.d.ts +20 -8
  3. package/dist/base/helix-element.d.ts.map +1 -1
  4. package/dist/components/hx-accordion/hx-accordion-item.d.ts +7 -2
  5. package/dist/components/hx-accordion/hx-accordion-item.d.ts.map +1 -1
  6. package/dist/components/hx-accordion/hx-accordion.d.ts +3 -2
  7. package/dist/components/hx-accordion/hx-accordion.d.ts.map +1 -1
  8. package/dist/components/hx-accordion/index.d.ts +1 -0
  9. package/dist/components/hx-accordion/index.d.ts.map +1 -1
  10. package/dist/components/hx-accordion/index.js +1 -1
  11. package/dist/components/hx-action-bar/hx-action-bar.d.ts +2 -11
  12. package/dist/components/hx-action-bar/hx-action-bar.d.ts.map +1 -1
  13. package/dist/components/hx-action-bar/hx-action-bar.styles.d.ts.map +1 -1
  14. package/dist/components/hx-action-bar/index.js +1 -1
  15. package/dist/components/hx-alert/hx-alert.d.ts +7 -2
  16. package/dist/components/hx-alert/hx-alert.d.ts.map +1 -1
  17. package/dist/components/hx-alert/index.d.ts +1 -0
  18. package/dist/components/hx-alert/index.d.ts.map +1 -1
  19. package/dist/components/hx-alert/index.js +1 -1
  20. package/dist/components/hx-avatar/hx-avatar.d.ts +3 -2
  21. package/dist/components/hx-avatar/hx-avatar.d.ts.map +1 -1
  22. package/dist/components/hx-avatar/index.js +1 -1
  23. package/dist/components/hx-badge/hx-badge.d.ts +2 -9
  24. package/dist/components/hx-badge/hx-badge.d.ts.map +1 -1
  25. package/dist/components/hx-badge/index.d.ts +1 -1
  26. package/dist/components/hx-badge/index.d.ts.map +1 -1
  27. package/dist/components/hx-badge/index.js +1 -1
  28. package/dist/components/hx-banner/hx-banner.d.ts +3 -2
  29. package/dist/components/hx-banner/hx-banner.d.ts.map +1 -1
  30. package/dist/components/hx-banner/index.js +1 -1
  31. package/dist/components/hx-breadcrumb/hx-breadcrumb-item.d.ts +2 -2
  32. package/dist/components/hx-breadcrumb/hx-breadcrumb-item.d.ts.map +1 -1
  33. package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts +9 -12
  34. package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts.map +1 -1
  35. package/dist/components/hx-breadcrumb/hx-breadcrumb.styles.d.ts.map +1 -1
  36. package/dist/components/hx-breadcrumb/index.js +1 -1
  37. package/dist/components/hx-button/hx-button.d.ts +22 -0
  38. package/dist/components/hx-button/hx-button.d.ts.map +1 -1
  39. package/dist/components/hx-button/index.d.ts +1 -0
  40. package/dist/components/hx-button/index.d.ts.map +1 -1
  41. package/dist/components/hx-button/index.js +1 -1
  42. package/dist/components/hx-button-group/hx-button-group.d.ts +3 -2
  43. package/dist/components/hx-button-group/hx-button-group.d.ts.map +1 -1
  44. package/dist/components/hx-button-group/hx-button-group.styles.d.ts.map +1 -1
  45. package/dist/components/hx-button-group/index.js +1 -1
  46. package/dist/components/hx-card/hx-card.d.ts +3 -2
  47. package/dist/components/hx-card/hx-card.d.ts.map +1 -1
  48. package/dist/components/hx-card/index.js +1 -1
  49. package/dist/components/hx-carousel/hx-carousel-item.d.ts +2 -2
  50. package/dist/components/hx-carousel/hx-carousel-item.d.ts.map +1 -1
  51. package/dist/components/hx-carousel/hx-carousel-item.styles.d.ts.map +1 -1
  52. package/dist/components/hx-carousel/hx-carousel.d.ts +2 -2
  53. package/dist/components/hx-carousel/hx-carousel.d.ts.map +1 -1
  54. package/dist/components/hx-carousel/index.js +1 -1
  55. package/dist/components/hx-checkbox/hx-checkbox.d.ts +44 -5
  56. package/dist/components/hx-checkbox/hx-checkbox.d.ts.map +1 -1
  57. package/dist/components/hx-checkbox/index.d.ts +1 -0
  58. package/dist/components/hx-checkbox/index.d.ts.map +1 -1
  59. package/dist/components/hx-checkbox/index.js +1 -1
  60. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts +9 -13
  61. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts.map +1 -1
  62. package/dist/components/hx-checkbox-group/index.d.ts +1 -0
  63. package/dist/components/hx-checkbox-group/index.d.ts.map +1 -1
  64. package/dist/components/hx-checkbox-group/index.js +1 -1
  65. package/dist/components/hx-clinical-status/hx-clinical-status.d.ts +0 -7
  66. package/dist/components/hx-clinical-status/hx-clinical-status.d.ts.map +1 -1
  67. package/dist/components/hx-clinical-status/index.js +1 -1
  68. package/dist/components/hx-code-snippet/index.js +1 -1
  69. package/dist/components/hx-color-picker/hx-color-picker.d.ts +8 -11
  70. package/dist/components/hx-color-picker/hx-color-picker.d.ts.map +1 -1
  71. package/dist/components/hx-color-picker/hx-color-picker.styles.d.ts.map +1 -1
  72. package/dist/components/hx-color-picker/index.d.ts +1 -0
  73. package/dist/components/hx-color-picker/index.d.ts.map +1 -1
  74. package/dist/components/hx-color-picker/index.js +1 -1
  75. package/dist/components/hx-combobox/hx-combobox.d.ts +32 -15
  76. package/dist/components/hx-combobox/hx-combobox.d.ts.map +1 -1
  77. package/dist/components/hx-combobox/hx-combobox.styles.d.ts.map +1 -1
  78. package/dist/components/hx-combobox/index.d.ts +1 -0
  79. package/dist/components/hx-combobox/index.d.ts.map +1 -1
  80. package/dist/components/hx-combobox/index.js +1 -1
  81. package/dist/components/hx-container/hx-container.d.ts +2 -4
  82. package/dist/components/hx-container/hx-container.d.ts.map +1 -1
  83. package/dist/components/hx-container/hx-container.styles.d.ts.map +1 -1
  84. package/dist/components/hx-container/index.d.ts +0 -1
  85. package/dist/components/hx-container/index.d.ts.map +1 -1
  86. package/dist/components/hx-container/index.js +1 -1
  87. package/dist/components/hx-copy-button/hx-copy-button.d.ts +2 -2
  88. package/dist/components/hx-copy-button/hx-copy-button.d.ts.map +1 -1
  89. package/dist/components/hx-copy-button/index.js +1 -1
  90. package/dist/components/hx-counter/hx-counter.d.ts +3 -2
  91. package/dist/components/hx-counter/hx-counter.d.ts.map +1 -1
  92. package/dist/components/hx-counter/hx-counter.styles.d.ts.map +1 -1
  93. package/dist/components/hx-counter/index.js +1 -1
  94. package/dist/components/hx-data-table/hx-data-table.d.ts +26 -2
  95. package/dist/components/hx-data-table/hx-data-table.d.ts.map +1 -1
  96. package/dist/components/hx-data-table/index.d.ts +1 -0
  97. package/dist/components/hx-data-table/index.d.ts.map +1 -1
  98. package/dist/components/hx-data-table/index.js +1 -1
  99. package/dist/components/hx-date-picker/hx-date-picker.d.ts +30 -19
  100. package/dist/components/hx-date-picker/hx-date-picker.d.ts.map +1 -1
  101. package/dist/components/hx-date-picker/hx-date-picker.styles.d.ts.map +1 -1
  102. package/dist/components/hx-date-picker/index.d.ts +1 -0
  103. package/dist/components/hx-date-picker/index.d.ts.map +1 -1
  104. package/dist/components/hx-date-picker/index.js +1 -1
  105. package/dist/components/hx-dialog/hx-dialog.d.ts +37 -5
  106. package/dist/components/hx-dialog/hx-dialog.d.ts.map +1 -1
  107. package/dist/components/hx-dialog/index.js +1 -1
  108. package/dist/components/hx-divider/hx-divider.d.ts +3 -4
  109. package/dist/components/hx-divider/hx-divider.d.ts.map +1 -1
  110. package/dist/components/hx-divider/index.d.ts +0 -1
  111. package/dist/components/hx-divider/index.d.ts.map +1 -1
  112. package/dist/components/hx-divider/index.js +1 -1
  113. package/dist/components/hx-drawer/hx-drawer.d.ts +32 -2
  114. package/dist/components/hx-drawer/hx-drawer.d.ts.map +1 -1
  115. package/dist/components/hx-drawer/index.js +1 -1
  116. package/dist/components/hx-dropdown/hx-dropdown.d.ts +3 -2
  117. package/dist/components/hx-dropdown/hx-dropdown.d.ts.map +1 -1
  118. package/dist/components/hx-dropdown/index.js +1 -1
  119. package/dist/components/hx-field/hx-field.d.ts +4 -3
  120. package/dist/components/hx-field/hx-field.d.ts.map +1 -1
  121. package/dist/components/hx-field/index.js +1 -1
  122. package/dist/components/hx-field-label/hx-field-label.d.ts +2 -2
  123. package/dist/components/hx-field-label/hx-field-label.d.ts.map +1 -1
  124. package/dist/components/hx-field-label/index.js +1 -1
  125. package/dist/components/hx-file-upload/hx-file-upload.d.ts +31 -5
  126. package/dist/components/hx-file-upload/hx-file-upload.d.ts.map +1 -1
  127. package/dist/components/hx-file-upload/index.d.ts +1 -0
  128. package/dist/components/hx-file-upload/index.d.ts.map +1 -1
  129. package/dist/components/hx-file-upload/index.js +1 -1
  130. package/dist/components/hx-form/hx-form.d.ts +2 -2
  131. package/dist/components/hx-form/hx-form.d.ts.map +1 -1
  132. package/dist/components/hx-form/hx-form.styles.d.ts +8 -0
  133. package/dist/components/hx-form/hx-form.styles.d.ts.map +1 -1
  134. package/dist/components/hx-form/index.js +1 -1
  135. package/dist/components/hx-format-date/hx-format-date.d.ts +2 -2
  136. package/dist/components/hx-format-date/hx-format-date.d.ts.map +1 -1
  137. package/dist/components/hx-format-date/hx-format-date.styles.d.ts.map +1 -1
  138. package/dist/components/hx-format-date/index.js +1 -1
  139. package/dist/components/hx-grid/hx-grid.d.ts +4 -3
  140. package/dist/components/hx-grid/hx-grid.d.ts.map +1 -1
  141. package/dist/components/hx-grid/hx-grid.styles.d.ts.map +1 -1
  142. package/dist/components/hx-grid/index.js +1 -1
  143. package/dist/components/hx-help-text/hx-help-text.d.ts +2 -4
  144. package/dist/components/hx-help-text/hx-help-text.d.ts.map +1 -1
  145. package/dist/components/hx-help-text/index.js +1 -1
  146. package/dist/components/hx-icon/hx-icon.d.ts +17 -2
  147. package/dist/components/hx-icon/hx-icon.d.ts.map +1 -1
  148. package/dist/components/hx-icon/index.js +1 -1
  149. package/dist/components/hx-icon-button/index.js +1 -1
  150. package/dist/components/hx-image/hx-image.d.ts +2 -2
  151. package/dist/components/hx-image/hx-image.d.ts.map +1 -1
  152. package/dist/components/hx-image/index.js +1 -1
  153. package/dist/components/hx-link/hx-link.d.ts +2 -2
  154. package/dist/components/hx-link/hx-link.d.ts.map +1 -1
  155. package/dist/components/hx-link/index.js +1 -1
  156. package/dist/components/hx-list/hx-list-item.d.ts +3 -2
  157. package/dist/components/hx-list/hx-list-item.d.ts.map +1 -1
  158. package/dist/components/hx-list/hx-list.d.ts +3 -2
  159. package/dist/components/hx-list/hx-list.d.ts.map +1 -1
  160. package/dist/components/hx-list/hx-list.styles.d.ts.map +1 -1
  161. package/dist/components/hx-list/index.js +1 -1
  162. package/dist/components/hx-menu/hx-menu-divider.d.ts +2 -2
  163. package/dist/components/hx-menu/hx-menu-divider.d.ts.map +1 -1
  164. package/dist/components/hx-menu/hx-menu-item.d.ts +2 -2
  165. package/dist/components/hx-menu/hx-menu-item.d.ts.map +1 -1
  166. package/dist/components/hx-menu/hx-menu-item.styles.d.ts.map +1 -1
  167. package/dist/components/hx-menu/hx-menu.d.ts +2 -2
  168. package/dist/components/hx-menu/hx-menu.d.ts.map +1 -1
  169. package/dist/components/hx-menu/hx-menu.styles.d.ts.map +1 -1
  170. package/dist/components/hx-menu/index.js +1 -1
  171. package/dist/components/hx-meter/hx-meter.d.ts +3 -2
  172. package/dist/components/hx-meter/hx-meter.d.ts.map +1 -1
  173. package/dist/components/hx-meter/index.js +1 -1
  174. package/dist/components/hx-nav/hx-nav.d.ts +2 -4
  175. package/dist/components/hx-nav/hx-nav.d.ts.map +1 -1
  176. package/dist/components/hx-nav/hx-nav.styles.d.ts.map +1 -1
  177. package/dist/components/hx-nav/index.d.ts +1 -1
  178. package/dist/components/hx-nav/index.d.ts.map +1 -1
  179. package/dist/components/hx-nav/index.js +1 -1
  180. package/dist/components/hx-number-input/hx-number-input.d.ts +9 -13
  181. package/dist/components/hx-number-input/hx-number-input.d.ts.map +1 -1
  182. package/dist/components/hx-number-input/index.d.ts +1 -0
  183. package/dist/components/hx-number-input/index.d.ts.map +1 -1
  184. package/dist/components/hx-number-input/index.js +1 -1
  185. package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts +2 -2
  186. package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts.map +1 -1
  187. package/dist/components/hx-overflow-menu/index.js +1 -1
  188. package/dist/components/hx-pagination/hx-pagination.d.ts +10 -2
  189. package/dist/components/hx-pagination/hx-pagination.d.ts.map +1 -1
  190. package/dist/components/hx-pagination/index.d.ts +1 -0
  191. package/dist/components/hx-pagination/index.d.ts.map +1 -1
  192. package/dist/components/hx-pagination/index.js +1 -1
  193. package/dist/components/hx-patient-banner/hx-patient-banner.d.ts +47 -5
  194. package/dist/components/hx-patient-banner/hx-patient-banner.d.ts.map +1 -1
  195. package/dist/components/hx-patient-banner/index.js +1 -1
  196. package/dist/components/hx-phi-field/hx-phi-field.d.ts +85 -5
  197. package/dist/components/hx-phi-field/hx-phi-field.d.ts.map +1 -1
  198. package/dist/components/hx-phi-field/hx-phi-field.styles.d.ts.map +1 -1
  199. package/dist/components/hx-phi-field/index.js +1 -1
  200. package/dist/components/hx-popover/hx-popover.d.ts +3 -2
  201. package/dist/components/hx-popover/hx-popover.d.ts.map +1 -1
  202. package/dist/components/hx-popover/index.js +1 -1
  203. package/dist/components/hx-popup/hx-popup.d.ts +7 -2
  204. package/dist/components/hx-popup/hx-popup.d.ts.map +1 -1
  205. package/dist/components/hx-popup/index.js +1 -1
  206. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts +3 -2
  207. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts.map +1 -1
  208. package/dist/components/hx-progress-bar/index.js +1 -1
  209. package/dist/components/hx-progress-ring/hx-progress-ring.d.ts +3 -2
  210. package/dist/components/hx-progress-ring/hx-progress-ring.d.ts.map +1 -1
  211. package/dist/components/hx-progress-ring/hx-progress-ring.styles.d.ts.map +1 -1
  212. package/dist/components/hx-progress-ring/index.js +1 -1
  213. package/dist/components/hx-prose/hx-prose.d.ts +3 -2
  214. package/dist/components/hx-prose/hx-prose.d.ts.map +1 -1
  215. package/dist/components/hx-prose/hx-prose.styles.d.ts +8 -0
  216. package/dist/components/hx-prose/hx-prose.styles.d.ts.map +1 -1
  217. package/dist/components/hx-prose/index.js +1 -1
  218. package/dist/components/hx-radio-group/hx-radio-group.d.ts +9 -29
  219. package/dist/components/hx-radio-group/hx-radio-group.d.ts.map +1 -1
  220. package/dist/components/hx-radio-group/hx-radio.d.ts +19 -4
  221. package/dist/components/hx-radio-group/hx-radio.d.ts.map +1 -1
  222. package/dist/components/hx-radio-group/index.d.ts +1 -0
  223. package/dist/components/hx-radio-group/index.d.ts.map +1 -1
  224. package/dist/components/hx-radio-group/index.js +1 -1
  225. package/dist/components/hx-rating/hx-rating.d.ts +4 -10
  226. package/dist/components/hx-rating/hx-rating.d.ts.map +1 -1
  227. package/dist/components/hx-rating/hx-rating.styles.d.ts.map +1 -1
  228. package/dist/components/hx-rating/index.d.ts +1 -0
  229. package/dist/components/hx-rating/index.d.ts.map +1 -1
  230. package/dist/components/hx-rating/index.js +1 -1
  231. package/dist/components/hx-select/hx-select.d.ts +26 -25
  232. package/dist/components/hx-select/hx-select.d.ts.map +1 -1
  233. package/dist/components/hx-select/index.d.ts +1 -0
  234. package/dist/components/hx-select/index.d.ts.map +1 -1
  235. package/dist/components/hx-select/index.js +1 -1
  236. package/dist/components/hx-side-nav/hx-nav-item.d.ts +2 -2
  237. package/dist/components/hx-side-nav/hx-nav-item.d.ts.map +1 -1
  238. package/dist/components/hx-side-nav/hx-nav-item.styles.d.ts.map +1 -1
  239. package/dist/components/hx-side-nav/hx-side-nav.d.ts +3 -2
  240. package/dist/components/hx-side-nav/hx-side-nav.d.ts.map +1 -1
  241. package/dist/components/hx-side-nav/hx-side-nav.styles.d.ts.map +1 -1
  242. package/dist/components/hx-side-nav/index.js +1 -1
  243. package/dist/components/hx-skeleton/hx-skeleton.d.ts +3 -2
  244. package/dist/components/hx-skeleton/hx-skeleton.d.ts.map +1 -1
  245. package/dist/components/hx-skeleton/index.js +1 -1
  246. package/dist/components/hx-slider/hx-slider.d.ts +7 -11
  247. package/dist/components/hx-slider/hx-slider.d.ts.map +1 -1
  248. package/dist/components/hx-slider/hx-slider.styles.d.ts.map +1 -1
  249. package/dist/components/hx-slider/index.d.ts +1 -0
  250. package/dist/components/hx-slider/index.d.ts.map +1 -1
  251. package/dist/components/hx-slider/index.js +1 -1
  252. package/dist/components/hx-spinner/hx-spinner.d.ts +2 -2
  253. package/dist/components/hx-spinner/hx-spinner.d.ts.map +1 -1
  254. package/dist/components/hx-spinner/index.js +1 -1
  255. package/dist/components/hx-split-button/hx-split-button.d.ts +10 -4
  256. package/dist/components/hx-split-button/hx-split-button.d.ts.map +1 -1
  257. package/dist/components/hx-split-button/index.js +1 -1
  258. package/dist/components/hx-split-panel/hx-split-panel.d.ts +12 -2
  259. package/dist/components/hx-split-panel/hx-split-panel.d.ts.map +1 -1
  260. package/dist/components/hx-split-panel/index.js +1 -1
  261. package/dist/components/hx-stack/hx-stack.d.ts +2 -2
  262. package/dist/components/hx-stack/hx-stack.d.ts.map +1 -1
  263. package/dist/components/hx-stack/hx-stack.styles.d.ts.map +1 -1
  264. package/dist/components/hx-stack/index.js +1 -1
  265. package/dist/components/hx-stat/hx-stat.d.ts +3 -2
  266. package/dist/components/hx-stat/hx-stat.d.ts.map +1 -1
  267. package/dist/components/hx-stat/index.js +1 -1
  268. package/dist/components/hx-status-indicator/hx-status-indicator.d.ts +3 -2
  269. package/dist/components/hx-status-indicator/hx-status-indicator.d.ts.map +1 -1
  270. package/dist/components/hx-status-indicator/index.js +1 -1
  271. package/dist/components/hx-steps/hx-step.d.ts +3 -2
  272. package/dist/components/hx-steps/hx-step.d.ts.map +1 -1
  273. package/dist/components/hx-steps/hx-step.styles.d.ts.map +1 -1
  274. package/dist/components/hx-steps/hx-steps.d.ts +11 -4
  275. package/dist/components/hx-steps/hx-steps.d.ts.map +1 -1
  276. package/dist/components/hx-steps/hx-steps.styles.d.ts.map +1 -1
  277. package/dist/components/hx-steps/index.js +1 -1
  278. package/dist/components/hx-structured-list/hx-structured-list.d.ts +3 -3
  279. package/dist/components/hx-structured-list/hx-structured-list.d.ts.map +1 -1
  280. package/dist/components/hx-structured-list/index.js +1 -1
  281. package/dist/components/hx-style-scope/hx-style-scope.d.ts +3 -2
  282. package/dist/components/hx-style-scope/hx-style-scope.d.ts.map +1 -1
  283. package/dist/components/hx-style-scope/hx-style-scope.styles.d.ts.map +1 -1
  284. package/dist/components/hx-style-scope/index.js +1 -1
  285. package/dist/components/hx-switch/hx-switch.d.ts +20 -21
  286. package/dist/components/hx-switch/hx-switch.d.ts.map +1 -1
  287. package/dist/components/hx-switch/index.d.ts +2 -1
  288. package/dist/components/hx-switch/index.d.ts.map +1 -1
  289. package/dist/components/hx-switch/index.js +1 -1
  290. package/dist/components/hx-table/hx-table.d.ts +3 -2
  291. package/dist/components/hx-table/hx-table.d.ts.map +1 -1
  292. package/dist/components/hx-table/hx-tbody.d.ts +2 -2
  293. package/dist/components/hx-table/hx-tbody.d.ts.map +1 -1
  294. package/dist/components/hx-table/hx-td.d.ts +2 -2
  295. package/dist/components/hx-table/hx-td.d.ts.map +1 -1
  296. package/dist/components/hx-table/hx-tfoot.d.ts +2 -2
  297. package/dist/components/hx-table/hx-tfoot.d.ts.map +1 -1
  298. package/dist/components/hx-table/hx-th.d.ts +2 -2
  299. package/dist/components/hx-table/hx-th.d.ts.map +1 -1
  300. package/dist/components/hx-table/hx-thead.d.ts +2 -2
  301. package/dist/components/hx-table/hx-thead.d.ts.map +1 -1
  302. package/dist/components/hx-table/hx-tr.d.ts +2 -2
  303. package/dist/components/hx-table/hx-tr.d.ts.map +1 -1
  304. package/dist/components/hx-table/index.js +1 -1
  305. package/dist/components/hx-tabs/hx-tab-panel.d.ts +2 -2
  306. package/dist/components/hx-tabs/hx-tab-panel.d.ts.map +1 -1
  307. package/dist/components/hx-tabs/hx-tab.d.ts +2 -2
  308. package/dist/components/hx-tabs/hx-tab.d.ts.map +1 -1
  309. package/dist/components/hx-tabs/hx-tab.styles.d.ts.map +1 -1
  310. package/dist/components/hx-tabs/hx-tabs.d.ts +8 -2
  311. package/dist/components/hx-tabs/hx-tabs.d.ts.map +1 -1
  312. package/dist/components/hx-tabs/index.d.ts +1 -0
  313. package/dist/components/hx-tabs/index.d.ts.map +1 -1
  314. package/dist/components/hx-tabs/index.js +1 -1
  315. package/dist/components/hx-tag/hx-tag.d.ts +2 -4
  316. package/dist/components/hx-tag/hx-tag.d.ts.map +1 -1
  317. package/dist/components/hx-tag/index.d.ts +0 -2
  318. package/dist/components/hx-tag/index.d.ts.map +1 -1
  319. package/dist/components/hx-tag/index.js +1 -1
  320. package/dist/components/hx-text/hx-text.d.ts +2 -2
  321. package/dist/components/hx-text/hx-text.d.ts.map +1 -1
  322. package/dist/components/hx-text/hx-text.styles.d.ts.map +1 -1
  323. package/dist/components/hx-text/index.js +1 -1
  324. package/dist/components/hx-text-input/hx-text-input.d.ts +29 -13
  325. package/dist/components/hx-text-input/hx-text-input.d.ts.map +1 -1
  326. package/dist/components/hx-text-input/index.d.ts +1 -0
  327. package/dist/components/hx-text-input/index.d.ts.map +1 -1
  328. package/dist/components/hx-text-input/index.js +1 -1
  329. package/dist/components/hx-textarea/hx-textarea.d.ts +32 -24
  330. package/dist/components/hx-textarea/hx-textarea.d.ts.map +1 -1
  331. package/dist/components/hx-textarea/hx-textarea.styles.d.ts.map +1 -1
  332. package/dist/components/hx-textarea/index.d.ts +1 -0
  333. package/dist/components/hx-textarea/index.d.ts.map +1 -1
  334. package/dist/components/hx-textarea/index.js +1 -1
  335. package/dist/components/hx-theme/hx-theme.d.ts +3 -11
  336. package/dist/components/hx-theme/hx-theme.d.ts.map +1 -1
  337. package/dist/components/hx-theme/hx-theme.styles.d.ts.map +1 -1
  338. package/dist/components/hx-theme/index.d.ts +0 -2
  339. package/dist/components/hx-theme/index.d.ts.map +1 -1
  340. package/dist/components/hx-theme/index.js +1 -1
  341. package/dist/components/hx-time-picker/hx-time-picker.d.ts +8 -15
  342. package/dist/components/hx-time-picker/hx-time-picker.d.ts.map +1 -1
  343. package/dist/components/hx-time-picker/hx-time-picker.styles.d.ts.map +1 -1
  344. package/dist/components/hx-time-picker/index.d.ts +1 -0
  345. package/dist/components/hx-time-picker/index.d.ts.map +1 -1
  346. package/dist/components/hx-time-picker/index.js +1 -1
  347. package/dist/components/hx-toast/hx-toast-stack.d.ts +2 -2
  348. package/dist/components/hx-toast/hx-toast-stack.d.ts.map +1 -1
  349. package/dist/components/hx-toast/hx-toast.d.ts +3 -2
  350. package/dist/components/hx-toast/hx-toast.d.ts.map +1 -1
  351. package/dist/components/hx-toast/hx-toast.styles.d.ts.map +1 -1
  352. package/dist/components/hx-toast/index.js +1 -1
  353. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts +4 -0
  354. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts.map +1 -1
  355. package/dist/components/hx-toggle-button/index.d.ts +1 -0
  356. package/dist/components/hx-toggle-button/index.d.ts.map +1 -1
  357. package/dist/components/hx-toggle-button/index.js +1 -1
  358. package/dist/components/hx-tooltip/hx-tooltip.d.ts +2 -2
  359. package/dist/components/hx-tooltip/hx-tooltip.d.ts.map +1 -1
  360. package/dist/components/hx-tooltip/index.js +1 -1
  361. package/dist/components/hx-top-nav/hx-top-nav.d.ts +2 -2
  362. package/dist/components/hx-top-nav/hx-top-nav.d.ts.map +1 -1
  363. package/dist/components/hx-top-nav/index.js +1 -1
  364. package/dist/components/hx-tree-view/hx-tree-item.d.ts +2 -4
  365. package/dist/components/hx-tree-view/hx-tree-item.d.ts.map +1 -1
  366. package/dist/components/hx-tree-view/hx-tree-item.styles.d.ts.map +1 -1
  367. package/dist/components/hx-tree-view/hx-tree-view.d.ts +2 -4
  368. package/dist/components/hx-tree-view/hx-tree-view.d.ts.map +1 -1
  369. package/dist/components/hx-tree-view/hx-tree-view.styles.d.ts.map +1 -1
  370. package/dist/components/hx-tree-view/index.d.ts +0 -4
  371. package/dist/components/hx-tree-view/index.d.ts.map +1 -1
  372. package/dist/components/hx-tree-view/index.js +1 -1
  373. package/dist/components/hx-visually-hidden/hx-visually-hidden.d.ts +2 -2
  374. package/dist/components/hx-visually-hidden/hx-visually-hidden.d.ts.map +1 -1
  375. package/dist/components/hx-visually-hidden/hx-visually-hidden.styles.d.ts.map +1 -1
  376. package/dist/components/hx-visually-hidden/index.js +1 -1
  377. package/dist/css/helix-all.css +2232 -680
  378. package/dist/css/helix-core.css +107 -49
  379. package/dist/css/helix-data.css +17 -7
  380. package/dist/css/helix-feedback.css +82 -61
  381. package/dist/css/helix-forms.css +1456 -131
  382. package/dist/css/helix-layout.css +31 -1
  383. package/dist/css/helix-media.css +16 -16
  384. package/dist/css/helix-navigation.css +99 -48
  385. package/dist/css/helix-overlay.css +12 -12
  386. package/dist/css/helix-tokens.css +30 -11
  387. package/dist/css/helix-utility.css +53 -10
  388. package/dist/css/hx-accordion.css +1 -1
  389. package/dist/css/hx-action-bar.css +17 -3
  390. package/dist/css/hx-alert.css +18 -18
  391. package/dist/css/hx-avatar.css +1 -1
  392. package/dist/css/hx-badge.css +15 -15
  393. package/dist/css/hx-banner.css +18 -18
  394. package/dist/css/hx-breadcrumb.css +27 -0
  395. package/dist/css/hx-button-group.css +13 -0
  396. package/dist/css/hx-button.css +2 -2
  397. package/dist/css/hx-card.css +6 -6
  398. package/dist/css/hx-carousel.css +16 -16
  399. package/dist/css/hx-checkbox-group.css +4 -4
  400. package/dist/css/hx-checkbox.css +8 -8
  401. package/dist/css/hx-clinical-status.css +23 -23
  402. package/dist/css/hx-code-snippet.css +3 -3
  403. package/dist/css/hx-color-picker.css +276 -1
  404. package/dist/css/hx-combobox.css +391 -1
  405. package/dist/css/hx-container.css +10 -0
  406. package/dist/css/hx-copy-button.css +3 -3
  407. package/dist/css/hx-counter.css +9 -2
  408. package/dist/css/hx-data-table.css +1 -1
  409. package/dist/css/hx-date-picker.css +437 -1
  410. package/dist/css/hx-dialog.css +2 -2
  411. package/dist/css/hx-drawer.css +1 -1
  412. package/dist/css/hx-dropdown.css +1 -1
  413. package/dist/css/hx-field-label.css +2 -2
  414. package/dist/css/hx-field.css +3 -3
  415. package/dist/css/hx-file-upload.css +12 -12
  416. package/dist/css/hx-format-date.css +11 -0
  417. package/dist/css/hx-grid.css +10 -0
  418. package/dist/css/hx-help-text.css +5 -5
  419. package/dist/css/hx-image.css +3 -3
  420. package/dist/css/hx-link.css +5 -5
  421. package/dist/css/hx-list.css +10 -0
  422. package/dist/css/hx-menu.css +1 -2
  423. package/dist/css/hx-meter.css +9 -9
  424. package/dist/css/hx-nav.css +11 -12
  425. package/dist/css/hx-overflow-menu.css +10 -10
  426. package/dist/css/hx-pagination.css +13 -13
  427. package/dist/css/hx-patient-banner.css +10 -10
  428. package/dist/css/hx-phi-field.css +5 -2
  429. package/dist/css/hx-popover.css +4 -4
  430. package/dist/css/hx-progress-bar.css +1 -1
  431. package/dist/css/hx-progress-ring.css +23 -1
  432. package/dist/css/hx-radio-group.css +3 -3
  433. package/dist/css/hx-rating.css +6 -4
  434. package/dist/css/hx-select.css +7 -7
  435. package/dist/css/hx-side-nav.css +5 -0
  436. package/dist/css/hx-slider.css +16 -11
  437. package/dist/css/hx-split-button.css +2 -2
  438. package/dist/css/hx-stack.css +10 -0
  439. package/dist/css/hx-stat.css +5 -5
  440. package/dist/css/hx-status-indicator.css +2 -2
  441. package/dist/css/hx-steps.css +12 -0
  442. package/dist/css/hx-structured-list.css +2 -2
  443. package/dist/css/hx-style-scope.css +11 -0
  444. package/dist/css/hx-switch.css +4 -4
  445. package/dist/css/hx-table.css +1 -1
  446. package/dist/css/hx-tabs.css +3 -3
  447. package/dist/css/hx-tag.css +12 -12
  448. package/dist/css/hx-text-input.css +9 -9
  449. package/dist/css/hx-text.css +38 -5
  450. package/dist/css/hx-textarea.css +9 -15
  451. package/dist/css/hx-theme.css +11 -0
  452. package/dist/css/hx-time-picker.css +224 -1
  453. package/dist/css/hx-toast.css +6 -7
  454. package/dist/css/hx-toggle-button.css +3 -3
  455. package/dist/css/hx-tooltip.css +4 -4
  456. package/dist/css/hx-top-nav.css +8 -8
  457. package/dist/css/hx-tree-view.css +9 -0
  458. package/dist/css/hx-visually-hidden.css +12 -0
  459. package/dist/css/index.css +1 -1
  460. package/dist/css/manifest.json +39 -7
  461. package/dist/form-test-utils.d.ts +45 -0
  462. package/dist/form-test-utils.d.ts.map +1 -0
  463. package/dist/index.d.ts +28 -14
  464. package/dist/index.d.ts.map +1 -1
  465. package/dist/index.js +189 -177
  466. package/dist/index.js.map +1 -1
  467. package/dist/mixins/FormMixin.d.ts +24 -5
  468. package/dist/mixins/FormMixin.d.ts.map +1 -1
  469. package/dist/mixins/aria-delegation.d.ts +0 -2
  470. package/dist/mixins/aria-delegation.d.ts.map +1 -1
  471. package/dist/mixins/index.d.ts +3 -1
  472. package/dist/mixins/index.d.ts.map +1 -1
  473. package/dist/shared/{FormMixin-Bjvw20G5.js → FormMixin-B8PXk5RQ.js} +31 -14
  474. package/dist/shared/FormMixin-B8PXk5RQ.js.map +1 -0
  475. package/dist/shared/aria-delegation-Doq6RRUy.js.map +1 -1
  476. package/dist/shared/{helix-element-BJh1Ffvi.js → helix-element-BNEYeiys.js} +30 -24
  477. package/dist/shared/helix-element-BNEYeiys.js.map +1 -0
  478. package/dist/shared/{hx-accordion-SlwR2C6S.js → hx-accordion-Wt52OOZD.js} +49 -49
  479. package/dist/shared/hx-accordion-Wt52OOZD.js.map +1 -0
  480. package/dist/shared/{hx-action-bar-CNLYufVd.js → hx-action-bar-BKMADbHj.js} +89 -85
  481. package/dist/shared/hx-action-bar-BKMADbHj.js.map +1 -0
  482. package/dist/shared/{hx-alert-DdlSyJGk.js → hx-alert-D7n94HwI.js} +26 -26
  483. package/dist/shared/hx-alert-D7n94HwI.js.map +1 -0
  484. package/dist/shared/{hx-avatar-an-WsuLl.js → hx-avatar-iLYzu8MJ.js} +10 -10
  485. package/dist/shared/hx-avatar-iLYzu8MJ.js.map +1 -0
  486. package/dist/shared/{hx-badge-B_PzGlUo.js → hx-badge-CVCmMPyW.js} +27 -27
  487. package/dist/shared/hx-badge-CVCmMPyW.js.map +1 -0
  488. package/dist/shared/{hx-banner-D8AxkCfc.js → hx-banner-C_He7Tr4.js} +51 -51
  489. package/dist/shared/hx-banner-C_He7Tr4.js.map +1 -0
  490. package/dist/shared/{hx-breadcrumb-item-BCUIvpYX.js → hx-breadcrumb-item-CldCwD1d.js} +105 -82
  491. package/dist/shared/hx-breadcrumb-item-CldCwD1d.js.map +1 -0
  492. package/dist/shared/{hx-button-BzqsDHmZ.js → hx-button-Ddl-T6T-.js} +110 -84
  493. package/dist/shared/hx-button-Ddl-T6T-.js.map +1 -0
  494. package/dist/shared/{hx-button-group-a5Pb_9fU.js → hx-button-group-BJOGWoMa.js} +30 -17
  495. package/dist/shared/hx-button-group-BJOGWoMa.js.map +1 -0
  496. package/dist/shared/{hx-card-DYlaxQy0.js → hx-card-ycveujjL.js} +13 -13
  497. package/dist/shared/hx-card-ycveujjL.js.map +1 -0
  498. package/dist/shared/{hx-carousel-item-KQfCekKF.js → hx-carousel-item-D_dCv61-.js} +37 -28
  499. package/dist/shared/hx-carousel-item-D_dCv61-.js.map +1 -0
  500. package/dist/shared/{hx-checkbox-DyDbR1B9.js → hx-checkbox-DkkoWoye.js} +77 -60
  501. package/dist/shared/hx-checkbox-DkkoWoye.js.map +1 -0
  502. package/dist/shared/{hx-checkbox-group-C8TaFqy0.js → hx-checkbox-group-C3poJ-Zw.js} +55 -64
  503. package/dist/shared/hx-checkbox-group-C3poJ-Zw.js.map +1 -0
  504. package/dist/shared/{hx-clinical-status-dDyk5oj1.js → hx-clinical-status-BS5lcddT.js} +52 -53
  505. package/dist/shared/hx-clinical-status-BS5lcddT.js.map +1 -0
  506. package/dist/shared/{hx-code-snippet-DasrRF9k.js → hx-code-snippet-B7wUKzyb.js} +12 -13
  507. package/dist/shared/hx-code-snippet-B7wUKzyb.js.map +1 -0
  508. package/dist/shared/{hx-color-picker-zv6wtok4.js → hx-color-picker-DBaKTVLr.js} +318 -57
  509. package/dist/shared/hx-color-picker-DBaKTVLr.js.map +1 -0
  510. package/dist/shared/hx-combobox-BmgYT7Ar.js +929 -0
  511. package/dist/shared/hx-combobox-BmgYT7Ar.js.map +1 -0
  512. package/dist/shared/{hx-container-BwWbMPTH.js → hx-container-DVI7sxfX.js} +25 -15
  513. package/dist/shared/hx-container-DVI7sxfX.js.map +1 -0
  514. package/dist/shared/{hx-copy-button-DikpbhWY.js → hx-copy-button-8deNUdwP.js} +20 -20
  515. package/dist/shared/hx-copy-button-8deNUdwP.js.map +1 -0
  516. package/dist/shared/{hx-counter-_m4cq45V.js → hx-counter-CKfl_g8K.js} +36 -29
  517. package/dist/shared/hx-counter-CKfl_g8K.js.map +1 -0
  518. package/dist/shared/{hx-data-table-609C-e9w.js → hx-data-table-B6h0RPn0.js} +107 -101
  519. package/dist/shared/hx-data-table-B6h0RPn0.js.map +1 -0
  520. package/dist/shared/hx-date-picker-Dq2Nb68_.js +1077 -0
  521. package/dist/shared/hx-date-picker-Dq2Nb68_.js.map +1 -0
  522. package/dist/shared/{hx-dialog-D_DeqcNS.js → hx-dialog-CvIlY0Tc.js} +66 -54
  523. package/dist/shared/hx-dialog-CvIlY0Tc.js.map +1 -0
  524. package/dist/shared/{hx-divider-lfOMElo2.js → hx-divider-DwpOrzMW.js} +7 -7
  525. package/dist/shared/hx-divider-DwpOrzMW.js.map +1 -0
  526. package/dist/shared/{hx-drawer-NleCbKuN.js → hx-drawer-Cx2ZJhBe.js} +14 -14
  527. package/dist/shared/hx-drawer-Cx2ZJhBe.js.map +1 -0
  528. package/dist/shared/{hx-dropdown-CA9WYdhm.js → hx-dropdown-BjDrPUq5.js} +30 -31
  529. package/dist/shared/hx-dropdown-BjDrPUq5.js.map +1 -0
  530. package/dist/shared/{hx-field-Duiib9Bj.js → hx-field-Dp3qQMut.js} +15 -15
  531. package/dist/shared/hx-field-Dp3qQMut.js.map +1 -0
  532. package/dist/shared/{hx-field-label-Dud-psvE.js → hx-field-label-BC8QViXv.js} +8 -8
  533. package/dist/shared/hx-field-label-BC8QViXv.js.map +1 -0
  534. package/dist/shared/{hx-file-upload-CmCCAvej.js → hx-file-upload-B6Yl1u0i.js} +101 -84
  535. package/dist/shared/hx-file-upload-B6Yl1u0i.js.map +1 -0
  536. package/dist/shared/{hx-form-BM6PHsw3.js → hx-form-ButQFt9A.js} +12 -11
  537. package/dist/shared/hx-form-ButQFt9A.js.map +1 -0
  538. package/dist/shared/{hx-format-date-B7L9odbA.js → hx-format-date-CKnlQOmV.js} +20 -9
  539. package/dist/shared/hx-format-date-CKnlQOmV.js.map +1 -0
  540. package/dist/shared/{hx-grid-BIAR5h9m.js → hx-grid-CXZf3jeK.js} +28 -18
  541. package/dist/shared/hx-grid-CXZf3jeK.js.map +1 -0
  542. package/dist/shared/{hx-help-text-DARi-Pfp.js → hx-help-text-D7eytSim.js} +12 -12
  543. package/dist/shared/hx-help-text-D7eytSim.js.map +1 -0
  544. package/dist/shared/{hx-icon-jWcGmn66.js → hx-icon-CcyDPDYY.js} +96 -62
  545. package/dist/shared/hx-icon-CcyDPDYY.js.map +1 -0
  546. package/dist/shared/{hx-icon-button-BcZtVVtH.js → hx-icon-button-BHneqPCU.js} +2 -3
  547. package/dist/shared/{hx-icon-button-BcZtVVtH.js.map → hx-icon-button-BHneqPCU.js.map} +1 -1
  548. package/dist/shared/{hx-image-DOjPp-K5.js → hx-image-2gt14zZd.js} +9 -9
  549. package/dist/shared/hx-image-2gt14zZd.js.map +1 -0
  550. package/dist/shared/{hx-link-DCBct0f4.js → hx-link-BESrWK8M.js} +17 -17
  551. package/dist/shared/hx-link-BESrWK8M.js.map +1 -0
  552. package/dist/shared/{hx-list-Dnei26t4.js → hx-list-_9qVv02L.js} +32 -22
  553. package/dist/shared/hx-list-_9qVv02L.js.map +1 -0
  554. package/dist/shared/{hx-menu-divider-DVWER7iT.js → hx-menu-divider-Ck-9Os1t.js} +19 -19
  555. package/dist/shared/hx-menu-divider-Ck-9Os1t.js.map +1 -0
  556. package/dist/shared/{hx-meter-ChZdWNF2.js → hx-meter-TbROk-dw.js} +18 -18
  557. package/dist/shared/hx-meter-TbROk-dw.js.map +1 -0
  558. package/dist/shared/{hx-nav-CHX1JOWB.js → hx-nav-BcYDmjf7.js} +59 -60
  559. package/dist/shared/hx-nav-BcYDmjf7.js.map +1 -0
  560. package/dist/shared/{hx-nav-item-CRAESq9s.js → hx-nav-item-pqPasRUm.js} +33 -23
  561. package/dist/shared/hx-nav-item-pqPasRUm.js.map +1 -0
  562. package/dist/shared/{hx-number-input-Cm682AVP.js → hx-number-input-mOIZ3-46.js} +57 -66
  563. package/dist/shared/hx-number-input-mOIZ3-46.js.map +1 -0
  564. package/dist/shared/{hx-overflow-menu-BDl6QfUD.js → hx-overflow-menu-Dprb9lnT.js} +46 -47
  565. package/dist/shared/hx-overflow-menu-Dprb9lnT.js.map +1 -0
  566. package/dist/shared/{hx-pagination-BNtx-LG6.js → hx-pagination-AguTQjYC.js} +35 -35
  567. package/dist/shared/hx-pagination-AguTQjYC.js.map +1 -0
  568. package/dist/shared/{hx-patient-banner-B4IjHeTx.js → hx-patient-banner-uE6gqLpT.js} +16 -16
  569. package/dist/shared/hx-patient-banner-uE6gqLpT.js.map +1 -0
  570. package/dist/shared/{hx-phi-field-DD1qcBSO.js → hx-phi-field-BC_XowhC.js} +138 -56
  571. package/dist/shared/hx-phi-field-BC_XowhC.js.map +1 -0
  572. package/dist/shared/{hx-popover-ZGRFgBbx.js → hx-popover-B2_203ct.js} +25 -25
  573. package/dist/shared/hx-popover-B2_203ct.js.map +1 -0
  574. package/dist/shared/{hx-popup-Cc4qz89i.js → hx-popup-DZXpsJ1R.js} +77 -64
  575. package/dist/shared/hx-popup-DZXpsJ1R.js.map +1 -0
  576. package/dist/shared/{hx-progress-bar-BY1uE6bN.js → hx-progress-bar-KjEkEJLy.js} +19 -19
  577. package/dist/shared/hx-progress-bar-KjEkEJLy.js.map +1 -0
  578. package/dist/shared/{hx-progress-ring-Cs0WgWDJ.js → hx-progress-ring-3zMwvrwD.js} +53 -31
  579. package/dist/shared/hx-progress-ring-3zMwvrwD.js.map +1 -0
  580. package/dist/shared/{hx-prose-Ml_L2zje.js → hx-prose-BCtK7YL6.js} +48 -15
  581. package/dist/shared/{hx-prose-Ml_L2zje.js.map → hx-prose-BCtK7YL6.js.map} +1 -1
  582. package/dist/shared/{hx-radio-YEEsbUPN.js → hx-radio-BBC5qZgE.js} +99 -105
  583. package/dist/shared/hx-radio-BBC5qZgE.js.map +1 -0
  584. package/dist/shared/{hx-rating-DjUJTT0M.js → hx-rating-C3E3ENJb.js} +42 -56
  585. package/dist/shared/hx-rating-C3E3ENJb.js.map +1 -0
  586. package/dist/shared/{hx-select-DZ7wfcJx.js → hx-select-CixTo7jp.js} +105 -116
  587. package/dist/shared/hx-select-CixTo7jp.js.map +1 -0
  588. package/dist/shared/{hx-skeleton-aqa-gr1S.js → hx-skeleton-LxkI0pxr.js} +15 -15
  589. package/dist/shared/hx-skeleton-LxkI0pxr.js.map +1 -0
  590. package/dist/shared/{hx-slider-DAilFrR_.js → hx-slider-DFHuzF3N.js} +74 -89
  591. package/dist/shared/hx-slider-DFHuzF3N.js.map +1 -0
  592. package/dist/shared/{hx-spinner-Dw3cRY-9.js → hx-spinner-BKjuCdZB.js} +9 -9
  593. package/dist/shared/hx-spinner-BKjuCdZB.js.map +1 -0
  594. package/dist/shared/{hx-split-button-Dk-zMDDo.js → hx-split-button-CGcJMmCG.js} +14 -14
  595. package/dist/shared/hx-split-button-CGcJMmCG.js.map +1 -0
  596. package/dist/shared/{hx-split-panel-Kdp4BiLz.js → hx-split-panel-C-1R10Mc.js} +57 -47
  597. package/dist/shared/hx-split-panel-C-1R10Mc.js.map +1 -0
  598. package/dist/shared/{hx-stack-B76_1O6g.js → hx-stack-DGfcOfWJ.js} +21 -11
  599. package/dist/shared/hx-stack-DGfcOfWJ.js.map +1 -0
  600. package/dist/shared/{hx-stat-DKlyBL_K.js → hx-stat-BTpykQAt.js} +14 -14
  601. package/dist/shared/hx-stat-BTpykQAt.js.map +1 -0
  602. package/dist/shared/{hx-status-indicator-DWSM0Ctm.js → hx-status-indicator-X2QEWNFt.js} +13 -13
  603. package/dist/shared/hx-status-indicator-X2QEWNFt.js.map +1 -0
  604. package/dist/shared/{hx-step-CuoOvcI8.js → hx-step-CRNQlmSo.js} +47 -30
  605. package/dist/shared/hx-step-CRNQlmSo.js.map +1 -0
  606. package/dist/shared/{hx-structured-list-CQCD7bCT.js → hx-structured-list-CqNbaEXg.js} +12 -12
  607. package/dist/shared/hx-structured-list-CqNbaEXg.js.map +1 -0
  608. package/dist/shared/hx-style-scope-TDnR8H4O.js +251 -0
  609. package/dist/shared/hx-style-scope-TDnR8H4O.js.map +1 -0
  610. package/dist/shared/{hx-switch-BdxKN9WM.js → hx-switch-DqOD9JR7.js} +56 -72
  611. package/dist/shared/hx-switch-DqOD9JR7.js.map +1 -0
  612. package/dist/shared/{hx-tab-panel-CwClQoWP.js → hx-tab-panel-BIzKfW5i.js} +29 -28
  613. package/dist/shared/hx-tab-panel-BIzKfW5i.js.map +1 -0
  614. package/dist/shared/{hx-tag-BL5qJJCN.js → hx-tag-CgnrNnte.js} +23 -23
  615. package/dist/shared/hx-tag-CgnrNnte.js.map +1 -0
  616. package/dist/shared/{hx-td-CzSvVKdp.js → hx-td-Bra35cH4.js} +37 -37
  617. package/dist/shared/hx-td-Bra35cH4.js.map +1 -0
  618. package/dist/shared/{hx-text-DcWBqZwx.js → hx-text-DMC2CPlL.js} +74 -41
  619. package/dist/shared/hx-text-DMC2CPlL.js.map +1 -0
  620. package/dist/shared/{hx-text-input-BfMrvN9N.js → hx-text-input--q0GH78x.js} +19 -20
  621. package/dist/shared/hx-text-input--q0GH78x.js.map +1 -0
  622. package/dist/shared/{hx-textarea-C-i_Vam6.js → hx-textarea-CK621vSL.js} +28 -54
  623. package/dist/shared/hx-textarea-CK621vSL.js.map +1 -0
  624. package/dist/shared/{hx-theme-pc1V7dyL.js → hx-theme-DfEy-SJA.js} +72 -64
  625. package/dist/shared/hx-theme-DfEy-SJA.js.map +1 -0
  626. package/dist/shared/{hx-time-picker-MZyLQPW9.js → hx-time-picker-tPUfgElQ.js} +264 -35
  627. package/dist/shared/hx-time-picker-tPUfgElQ.js.map +1 -0
  628. package/dist/shared/{hx-toggle-button-ClyNYNVI.js → hx-toggle-button-L-uBJr-a.js} +9 -10
  629. package/dist/shared/hx-toggle-button-L-uBJr-a.js.map +1 -0
  630. package/dist/shared/{hx-tooltip-ByWT987R.js → hx-tooltip-B_zfKvwc.js} +22 -23
  631. package/dist/shared/hx-tooltip-B_zfKvwc.js.map +1 -0
  632. package/dist/shared/{hx-top-nav-k7hY78kt.js → hx-top-nav-CATbRvIv.js} +24 -22
  633. package/dist/shared/hx-top-nav-CATbRvIv.js.map +1 -0
  634. package/dist/shared/{hx-tree-item-D0ZphA45.js → hx-tree-item-A45WCiBu.js} +29 -9
  635. package/dist/shared/hx-tree-item-A45WCiBu.js.map +1 -0
  636. package/dist/shared/hx-visually-hidden-0bZKOWgT.js +66 -0
  637. package/dist/shared/hx-visually-hidden-0bZKOWgT.js.map +1 -0
  638. package/dist/shared/id-counter-DuX8vsui.js +11 -0
  639. package/dist/shared/{id-counter-PTgF-zcG.js.map → id-counter-DuX8vsui.js.map} +1 -1
  640. package/dist/shared/{toast-factory-Cwd0PihS.js → toast-factory-BPPnG3mM.js} +23 -24
  641. package/dist/shared/toast-factory-BPPnG3mM.js.map +1 -0
  642. package/dist/utilities/injectLightStyles.d.ts.map +1 -1
  643. package/dist/utilities/sanitizeCss.d.ts +43 -0
  644. package/dist/utilities/sanitizeCss.d.ts.map +1 -0
  645. package/package.json +29 -13
  646. package/dist/shared/FormMixin-Bjvw20G5.js.map +0 -1
  647. package/dist/shared/document-token-adoption-DuYNKd4k.js +0 -21
  648. package/dist/shared/document-token-adoption-DuYNKd4k.js.map +0 -1
  649. package/dist/shared/helix-element-BJh1Ffvi.js.map +0 -1
  650. package/dist/shared/hx-accordion-SlwR2C6S.js.map +0 -1
  651. package/dist/shared/hx-action-bar-CNLYufVd.js.map +0 -1
  652. package/dist/shared/hx-alert-DdlSyJGk.js.map +0 -1
  653. package/dist/shared/hx-avatar-an-WsuLl.js.map +0 -1
  654. package/dist/shared/hx-badge-B_PzGlUo.js.map +0 -1
  655. package/dist/shared/hx-banner-D8AxkCfc.js.map +0 -1
  656. package/dist/shared/hx-breadcrumb-item-BCUIvpYX.js.map +0 -1
  657. package/dist/shared/hx-button-BzqsDHmZ.js.map +0 -1
  658. package/dist/shared/hx-button-group-a5Pb_9fU.js.map +0 -1
  659. package/dist/shared/hx-card-DYlaxQy0.js.map +0 -1
  660. package/dist/shared/hx-carousel-item-KQfCekKF.js.map +0 -1
  661. package/dist/shared/hx-checkbox-DyDbR1B9.js.map +0 -1
  662. package/dist/shared/hx-checkbox-group-C8TaFqy0.js.map +0 -1
  663. package/dist/shared/hx-clinical-status-dDyk5oj1.js.map +0 -1
  664. package/dist/shared/hx-code-snippet-DasrRF9k.js.map +0 -1
  665. package/dist/shared/hx-color-picker-zv6wtok4.js.map +0 -1
  666. package/dist/shared/hx-combobox-C-DVLFpu.js +0 -535
  667. package/dist/shared/hx-combobox-C-DVLFpu.js.map +0 -1
  668. package/dist/shared/hx-container-BwWbMPTH.js.map +0 -1
  669. package/dist/shared/hx-copy-button-DikpbhWY.js.map +0 -1
  670. package/dist/shared/hx-counter-_m4cq45V.js.map +0 -1
  671. package/dist/shared/hx-data-table-609C-e9w.js.map +0 -1
  672. package/dist/shared/hx-date-picker-Bh8410Sf.js +0 -618
  673. package/dist/shared/hx-date-picker-Bh8410Sf.js.map +0 -1
  674. package/dist/shared/hx-dialog-D_DeqcNS.js.map +0 -1
  675. package/dist/shared/hx-divider-lfOMElo2.js.map +0 -1
  676. package/dist/shared/hx-drawer-NleCbKuN.js.map +0 -1
  677. package/dist/shared/hx-dropdown-CA9WYdhm.js.map +0 -1
  678. package/dist/shared/hx-field-Duiib9Bj.js.map +0 -1
  679. package/dist/shared/hx-field-label-Dud-psvE.js.map +0 -1
  680. package/dist/shared/hx-file-upload-CmCCAvej.js.map +0 -1
  681. package/dist/shared/hx-form-BM6PHsw3.js.map +0 -1
  682. package/dist/shared/hx-format-date-B7L9odbA.js.map +0 -1
  683. package/dist/shared/hx-grid-BIAR5h9m.js.map +0 -1
  684. package/dist/shared/hx-help-text-DARi-Pfp.js.map +0 -1
  685. package/dist/shared/hx-icon-jWcGmn66.js.map +0 -1
  686. package/dist/shared/hx-image-DOjPp-K5.js.map +0 -1
  687. package/dist/shared/hx-link-DCBct0f4.js.map +0 -1
  688. package/dist/shared/hx-list-Dnei26t4.js.map +0 -1
  689. package/dist/shared/hx-menu-divider-DVWER7iT.js.map +0 -1
  690. package/dist/shared/hx-meter-ChZdWNF2.js.map +0 -1
  691. package/dist/shared/hx-nav-CHX1JOWB.js.map +0 -1
  692. package/dist/shared/hx-nav-item-CRAESq9s.js.map +0 -1
  693. package/dist/shared/hx-number-input-Cm682AVP.js.map +0 -1
  694. package/dist/shared/hx-overflow-menu-BDl6QfUD.js.map +0 -1
  695. package/dist/shared/hx-pagination-BNtx-LG6.js.map +0 -1
  696. package/dist/shared/hx-patient-banner-B4IjHeTx.js.map +0 -1
  697. package/dist/shared/hx-phi-field-DD1qcBSO.js.map +0 -1
  698. package/dist/shared/hx-popover-ZGRFgBbx.js.map +0 -1
  699. package/dist/shared/hx-popup-Cc4qz89i.js.map +0 -1
  700. package/dist/shared/hx-progress-bar-BY1uE6bN.js.map +0 -1
  701. package/dist/shared/hx-progress-ring-Cs0WgWDJ.js.map +0 -1
  702. package/dist/shared/hx-radio-YEEsbUPN.js.map +0 -1
  703. package/dist/shared/hx-rating-DjUJTT0M.js.map +0 -1
  704. package/dist/shared/hx-select-DZ7wfcJx.js.map +0 -1
  705. package/dist/shared/hx-skeleton-aqa-gr1S.js.map +0 -1
  706. package/dist/shared/hx-slider-DAilFrR_.js.map +0 -1
  707. package/dist/shared/hx-spinner-Dw3cRY-9.js.map +0 -1
  708. package/dist/shared/hx-split-button-Dk-zMDDo.js.map +0 -1
  709. package/dist/shared/hx-split-panel-Kdp4BiLz.js.map +0 -1
  710. package/dist/shared/hx-stack-B76_1O6g.js.map +0 -1
  711. package/dist/shared/hx-stat-DKlyBL_K.js.map +0 -1
  712. package/dist/shared/hx-status-indicator-DWSM0Ctm.js.map +0 -1
  713. package/dist/shared/hx-step-CuoOvcI8.js.map +0 -1
  714. package/dist/shared/hx-structured-list-CQCD7bCT.js.map +0 -1
  715. package/dist/shared/hx-style-scope-CsQ2Phf_.js +0 -126
  716. package/dist/shared/hx-style-scope-CsQ2Phf_.js.map +0 -1
  717. package/dist/shared/hx-switch-BdxKN9WM.js.map +0 -1
  718. package/dist/shared/hx-tab-panel-CwClQoWP.js.map +0 -1
  719. package/dist/shared/hx-tag-BL5qJJCN.js.map +0 -1
  720. package/dist/shared/hx-td-CzSvVKdp.js.map +0 -1
  721. package/dist/shared/hx-text-DcWBqZwx.js.map +0 -1
  722. package/dist/shared/hx-text-input-BfMrvN9N.js.map +0 -1
  723. package/dist/shared/hx-textarea-C-i_Vam6.js.map +0 -1
  724. package/dist/shared/hx-theme-pc1V7dyL.js.map +0 -1
  725. package/dist/shared/hx-time-picker-MZyLQPW9.js.map +0 -1
  726. package/dist/shared/hx-toggle-button-ClyNYNVI.js.map +0 -1
  727. package/dist/shared/hx-tooltip-ByWT987R.js.map +0 -1
  728. package/dist/shared/hx-top-nav-k7hY78kt.js.map +0 -1
  729. package/dist/shared/hx-tree-item-D0ZphA45.js.map +0 -1
  730. package/dist/shared/hx-visually-hidden-vKX8QjeX.js +0 -54
  731. package/dist/shared/hx-visually-hidden-vKX8QjeX.js.map +0 -1
  732. package/dist/shared/id-counter-PTgF-zcG.js +0 -15
  733. package/dist/shared/toast-factory-Cwd0PihS.js.map +0 -1
  734. package/dist/tools/cem-a11y-analyzer/analyzers/aria-analyzer.d.ts +0 -12
  735. package/dist/tools/cem-a11y-analyzer/analyzers/aria-analyzer.d.ts.map +0 -1
  736. package/dist/tools/cem-a11y-analyzer/analyzers/focus-analyzer.d.ts +0 -13
  737. package/dist/tools/cem-a11y-analyzer/analyzers/focus-analyzer.d.ts.map +0 -1
  738. package/dist/tools/cem-a11y-analyzer/analyzers/form-analyzer.d.ts +0 -13
  739. package/dist/tools/cem-a11y-analyzer/analyzers/form-analyzer.d.ts.map +0 -1
  740. package/dist/tools/cem-a11y-analyzer/analyzers/keyboard-analyzer.d.ts +0 -12
  741. package/dist/tools/cem-a11y-analyzer/analyzers/keyboard-analyzer.d.ts.map +0 -1
  742. package/dist/tools/cem-a11y-analyzer/analyzers/label-analyzer.d.ts +0 -13
  743. package/dist/tools/cem-a11y-analyzer/analyzers/label-analyzer.d.ts.map +0 -1
  744. package/dist/tools/cem-a11y-analyzer/analyzers/motion-analyzer.d.ts +0 -12
  745. package/dist/tools/cem-a11y-analyzer/analyzers/motion-analyzer.d.ts.map +0 -1
  746. package/dist/tools/cem-a11y-analyzer/index.d.ts +0 -14
  747. package/dist/tools/cem-a11y-analyzer/index.d.ts.map +0 -1
  748. package/dist/tools/cem-a11y-analyzer/reporter.d.ts +0 -6
  749. package/dist/tools/cem-a11y-analyzer/reporter.d.ts.map +0 -1
  750. package/dist/tools/cem-a11y-analyzer/scorer.d.ts +0 -22
  751. package/dist/tools/cem-a11y-analyzer/scorer.d.ts.map +0 -1
  752. package/dist/tools/cem-a11y-analyzer/types.d.ts +0 -171
  753. package/dist/tools/cem-a11y-analyzer/types.d.ts.map +0 -1
@@ -1,12 +1,12 @@
1
- import { css as f, LitElement as m, html as h, nothing as p } from "lit";
2
- import "./document-token-adoption-DuYNKd4k.js";
3
- import { property as d, state as b, customElement as x } from "lit/decorators.js";
4
- import { repeat as y } from "lit/directives/repeat.js";
5
- const w = f`
1
+ import { css as f, html as c, nothing as p } from "lit";
2
+ import { property as d, state as b, customElement as m } from "lit/decorators.js";
3
+ import { repeat as x } from "lit/directives/repeat.js";
4
+ import { H as y } from "./helix-element-BNEYeiys.js";
5
+ const v = f`
6
6
  :host {
7
7
  display: block;
8
8
  overflow-x: auto;
9
- font-family: var(--hx-font-family-sans, sans-serif);
9
+ font-family: var(--hx-data-table-font-family, var(--hx-font-family-sans, sans-serif));
10
10
  font-size: var(--hx-font-size-sm, 0.875rem);
11
11
  }
12
12
 
@@ -233,14 +233,14 @@ const w = f`
233
233
  }
234
234
  }
235
235
  `;
236
- var g = Object.defineProperty, v = Object.getOwnPropertyDescriptor, c = (e, r, t, o) => {
237
- for (var s = o > 1 ? void 0 : o ? v(r, t) : r, a = e.length - 1, n; a >= 0; a--)
238
- (n = e[a]) && (s = (o ? n(r, t, s) : n(s)) || s);
239
- return o && s && g(r, t, s), s;
236
+ var w = Object.defineProperty, g = Object.getOwnPropertyDescriptor, n = (e, r, t, o) => {
237
+ for (var s = o > 1 ? void 0 : o ? g(r, t) : r, a = e.length - 1, h; a >= 0; a--)
238
+ (h = e[a]) && (s = (o ? h(r, t, s) : h(s)) || s);
239
+ return o && s && w(r, t, s), s;
240
240
  };
241
- let l = class extends m {
241
+ let i = class extends y {
242
242
  constructor() {
243
- 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, this._focusedHeaderIndex = -1;
243
+ 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, this._focusedHeaderIndex = -1, this._resolvedColumns = [], this._resolvedRows = [];
244
244
  }
245
245
  // ─── Lifecycle ───
246
246
  willUpdate(e) {
@@ -248,23 +248,23 @@ let l = class extends m {
248
248
  const r = this.columns;
249
249
  if (typeof r == "string")
250
250
  try {
251
- this.columns = JSON.parse(r);
251
+ this._resolvedColumns = JSON.parse(r);
252
252
  } catch {
253
- this.columns = [];
253
+ this._resolvedColumns = [];
254
254
  }
255
- else Array.isArray(this.columns) || (this.columns = []);
255
+ else Array.isArray(this.columns) ? this._resolvedColumns = this.columns : this._resolvedColumns = [];
256
256
  }
257
257
  if (e.has("rows")) {
258
258
  const r = this.rows;
259
259
  if (typeof r == "string")
260
260
  try {
261
- this.rows = JSON.parse(r);
261
+ this._resolvedRows = JSON.parse(r);
262
262
  } catch {
263
- this.rows = [];
263
+ this._resolvedRows = [];
264
264
  }
265
- else Array.isArray(this.rows) || (this.rows = []);
265
+ else Array.isArray(this.rows) ? this._resolvedRows = this.rows : this._resolvedRows = [];
266
266
  }
267
- e.has("rows") && this.rows.length > 500, (e.has("label") || e.has("columns")) && this.columns.length > 0 && this.label;
267
+ e.has("rows") && this._resolvedRows.length > 500, (e.has("label") || e.has("columns")) && this._resolvedColumns.length > 0 && this.label;
268
268
  }
269
269
  updated(e) {
270
270
  (e.has("rows") || e.has("columns")) && (this._cachedCells = null);
@@ -298,7 +298,7 @@ let l = class extends m {
298
298
  }
299
299
  /** @internal */
300
300
  _handleSelectAll(e) {
301
- this._selectedRows = e ? new Set(this.rows.map((r, t) => t)) : /* @__PURE__ */ new Set(), this._dispatchSelect();
301
+ this._selectedRows = e ? new Set(this._resolvedRows.map((r, t) => t)) : /* @__PURE__ */ new Set(), this._dispatchSelect();
302
302
  }
303
303
  /** @internal */
304
304
  _dispatchSelect() {
@@ -308,7 +308,7 @@ let l = class extends m {
308
308
  composed: !0,
309
309
  detail: {
310
310
  selectedRows: [...this._selectedRows].flatMap((e) => {
311
- const r = this.rows[e];
311
+ const r = this._resolvedRows[e];
312
312
  return r !== void 0 ? [r] : [];
313
313
  })
314
314
  }
@@ -330,38 +330,38 @@ let l = class extends m {
330
330
  let o = r.activeElement;
331
331
  if (!o) return;
332
332
  if (t.indexOf(o) === -1) {
333
- let i = o.parentElement;
334
- for (; i; ) {
335
- if (t.includes(i)) {
336
- o = i;
333
+ let l = o.parentElement;
334
+ for (; l; ) {
335
+ if (t.includes(l)) {
336
+ o = l;
337
337
  break;
338
338
  }
339
- i = i.parentElement;
339
+ l = l.parentElement;
340
340
  }
341
341
  }
342
- const s = this.columns.length + (this.selectable ? 1 : 0), a = t.indexOf(o);
342
+ const s = this._resolvedColumns.length + (this.selectable ? 1 : 0), a = t.indexOf(o);
343
343
  if (a === -1) return;
344
- let n = null;
344
+ let h = null;
345
345
  if (e.key === "ArrowRight" && a + 1 < t.length)
346
- n = t[a + 1] ?? null;
346
+ h = t[a + 1] ?? null;
347
347
  else if (e.key === "ArrowLeft" && a - 1 >= 0)
348
- n = t[a - 1] ?? null;
348
+ h = t[a - 1] ?? null;
349
349
  else if (e.key === "ArrowDown" && a + s < t.length)
350
- n = t[a + s] ?? null;
350
+ h = t[a + s] ?? null;
351
351
  else if (e.key === "ArrowUp" && a - s >= 0)
352
- n = t[a - s] ?? null;
352
+ h = t[a - s] ?? null;
353
353
  else if (e.key === "Home") {
354
- const i = a - a % s;
355
- n = t[i] ?? null;
354
+ const l = a - a % s;
355
+ h = t[l] ?? null;
356
356
  } else if (e.key === "End") {
357
- const i = Math.min(a - a % s + s - 1, t.length - 1);
358
- n = t[i] ?? null;
357
+ const l = Math.min(a - a % s + s - 1, t.length - 1);
358
+ h = t[l] ?? null;
359
359
  } else if (e.key === " " && ((u = o.getAttribute("part")) != null && u.includes("td"))) {
360
- const i = Number(o.dataset.rowIndex);
361
- this.selectable && !isNaN(i) && (e.preventDefault(), this._handleSelect(i, !this._selectedRows.has(i)));
360
+ const l = Number(o.dataset.rowIndex);
361
+ this.selectable && !isNaN(l) && (e.preventDefault(), this._handleSelect(l, !this._selectedRows.has(l)));
362
362
  return;
363
363
  }
364
- n && (e.preventDefault(), n.setAttribute("tabindex", "0"), n.focus(), o.setAttribute("tabindex", "-1"));
364
+ h && (e.preventDefault(), h.setAttribute("tabindex", "0"), h.focus(), o.setAttribute("tabindex", "-1"));
365
365
  }
366
366
  // ─── Render Helpers ───
367
367
  /** @internal */
@@ -371,7 +371,7 @@ let l = class extends m {
371
371
  r ? "sort-icon--active" : "",
372
372
  r && this.sortDirection === "desc" ? "sort-icon--desc" : ""
373
373
  ].filter(Boolean).join(" ");
374
- return h`
374
+ return c`
375
375
  <span part="sort-icon" class=${t} aria-hidden="true">
376
376
  <svg
377
377
  xmlns="http://www.w3.org/2000/svg"
@@ -390,7 +390,7 @@ let l = class extends m {
390
390
  * @internal
391
391
  */
392
392
  get _sortableIndices() {
393
- return this.columns.reduce((e, r, t) => (r.sortable && e.push(t), e), []);
393
+ return this._resolvedColumns.reduce((e, r, t) => (r.sortable && e.push(t), e), []);
394
394
  }
395
395
  /**
396
396
  * Handles keyboard navigation between sortable column headers using the
@@ -404,8 +404,8 @@ let l = class extends m {
404
404
  const r = this._sortableIndices;
405
405
  if (r.length === 0) return;
406
406
  if (e.key === "Enter" || e.key === " ") {
407
- const i = this.columns[this._focusedHeaderIndex];
408
- i != null && i.sortable && (e.preventDefault(), this._handleSort(i.key));
407
+ const l = this._resolvedColumns[this._focusedHeaderIndex];
408
+ l != null && l.sortable && (e.preventDefault(), this._handleSort(l.key));
409
409
  return;
410
410
  }
411
411
  if (!["ArrowLeft", "ArrowRight", "Home", "End"].includes(e.key)) return;
@@ -416,28 +416,28 @@ let l = class extends m {
416
416
  const s = r[o];
417
417
  if (s === void 0) return;
418
418
  e.preventDefault(), this._focusedHeaderIndex = s;
419
- const a = (u = this.shadowRoot) == null ? void 0 : u.querySelectorAll("thead th[data-col-index]"), n = (a == null ? void 0 : a[s]) ?? null;
420
- n && n.focus();
419
+ const a = (u = this.shadowRoot) == null ? void 0 : u.querySelectorAll("thead th[data-col-index]"), h = (a == null ? void 0 : a[s]) ?? null;
420
+ h && h.focus();
421
421
  }
422
422
  /** @internal */
423
423
  _renderHeaderRow() {
424
424
  const e = this._sortableIndices, r = this._focusedHeaderIndex >= 0 ? this._focusedHeaderIndex : e[0] ?? -1;
425
- return h`
425
+ return c`
426
426
  <tr part="tr" @keydown=${this._handleHeaderKeydown}>
427
- ${this.selectable ? h`
427
+ ${this.selectable ? c`
428
428
  <th part="th" class="col-checkbox" tabindex="0">
429
429
  <input
430
430
  type="checkbox"
431
431
  part="checkbox"
432
432
  aria-label=${this.selectAllLabel}
433
- .indeterminate=${this._selectedRows.size > 0 && this._selectedRows.size < this.rows.length}
434
- .checked=${this._selectedRows.size === this.rows.length && this.rows.length > 0}
433
+ .indeterminate=${this._selectedRows.size > 0 && this._selectedRows.size < this._resolvedRows.length}
434
+ .checked=${this._selectedRows.size === this._resolvedRows.length && this._resolvedRows.length > 0}
435
435
  @change=${(t) => this._handleSelectAll(t.target.checked)}
436
436
  />
437
437
  </th>
438
438
  ` : p}
439
- ${this.columns.map(
440
- (t, o) => h`
439
+ ${this._resolvedColumns.map(
440
+ (t, o) => c`
441
441
  <th
442
442
  part="th"
443
443
  data-col-index=${o}
@@ -448,7 +448,7 @@ let l = class extends m {
448
448
  this._focusedHeaderIndex = o;
449
449
  } : p}
450
450
  >
451
- ${t.sortable ? h`
451
+ ${t.sortable ? c`
452
452
  <button
453
453
  class="sort-btn"
454
454
  @click=${() => this._handleSort(t.key)}
@@ -467,13 +467,13 @@ let l = class extends m {
467
467
  _renderSkeletonRows() {
468
468
  return Array.from(
469
469
  { length: 3 },
470
- (e) => h`
470
+ (e) => c`
471
471
  <tr part="tr" aria-hidden="true">
472
- ${this.selectable ? h`<td part="td" class="col-checkbox">
472
+ ${this.selectable ? c`<td part="td" class="col-checkbox">
473
473
  <span class="skeleton-cell" style="width:1rem;margin:auto"></span>
474
474
  </td>` : p}
475
- ${this.columns.map(
476
- () => h`
475
+ ${this._resolvedColumns.map(
476
+ () => c`
477
477
  <td part="td">
478
478
  <span class="skeleton-cell"></span>
479
479
  </td>
@@ -485,8 +485,8 @@ let l = class extends m {
485
485
  }
486
486
  /** @internal */
487
487
  _renderEmptyRow() {
488
- const e = this.columns.length + (this.selectable ? 1 : 0);
489
- return h`
488
+ const e = this._resolvedColumns.length + (this.selectable ? 1 : 0);
489
+ return c`
490
490
  <tr part="tr">
491
491
  <td part="td" colspan=${e} class="empty-cell">
492
492
  <slot name="empty">${this.emptyLabel}</slot>
@@ -496,17 +496,17 @@ let l = class extends m {
496
496
  }
497
497
  /** @internal */
498
498
  _renderDataRows() {
499
- let e = this.rows;
499
+ let e = this._resolvedRows;
500
500
  if (this.pageSize > 0) {
501
501
  const r = (this.page - 1) * this.pageSize;
502
- e = this.rows.slice(r, r + this.pageSize);
502
+ e = this._resolvedRows.slice(r, r + this.pageSize);
503
503
  }
504
- return y(
504
+ return x(
505
505
  e,
506
506
  (r, t) => this.pageSize > 0 ? (this.page - 1) * this.pageSize + t : t,
507
507
  (r, t) => {
508
508
  const o = this.pageSize > 0 ? (this.page - 1) * this.pageSize + t : t;
509
- return h`
509
+ return c`
510
510
  <tr
511
511
  part="tr"
512
512
  aria-selected=${this.selectable ? String(this._selectedRows.has(o)) : p}
@@ -515,7 +515,7 @@ let l = class extends m {
515
515
  (s.key === "Enter" || s.key === " ") && (s.preventDefault(), this._handleRowClick(r, o));
516
516
  }}
517
517
  >
518
- ${this.selectable ? h`
518
+ ${this.selectable ? c`
519
519
  <td part="td" class="col-checkbox" tabindex="-1" data-row-index=${o}>
520
520
  <input
521
521
  type="checkbox"
@@ -527,8 +527,8 @@ let l = class extends m {
527
527
  />
528
528
  </td>
529
529
  ` : p}
530
- ${this.columns.map(
531
- (s) => h`
530
+ ${this._resolvedColumns.map(
531
+ (s) => c`
532
532
  <td part="td" tabindex="-1" data-row-index=${o}>
533
533
  ${r[s.key] != null ? String(r[s.key]) : ""}
534
534
  </td>
@@ -541,7 +541,7 @@ let l = class extends m {
541
541
  }
542
542
  // ─── Render ───
543
543
  render() {
544
- return h`
544
+ return c`
545
545
  <slot name="toolbar"></slot>
546
546
  <div class="table-wrapper">
547
547
  <table
@@ -555,15 +555,15 @@ let l = class extends m {
555
555
  ${this._renderHeaderRow()}
556
556
  </thead>
557
557
  <tbody part="tbody">
558
- ${this.loading ? h`<slot name="loading">${this._renderSkeletonRows()}</slot>` : this.rows.length === 0 ? this._renderEmptyRow() : this._renderDataRows()}
558
+ ${this.loading ? c`<slot name="loading">${this._renderSkeletonRows()}</slot>` : this._resolvedRows.length === 0 ? this._renderEmptyRow() : this._renderDataRows()}
559
559
  </tbody>
560
560
  </table>
561
561
  </div>
562
562
  `;
563
563
  }
564
564
  };
565
- l.styles = [w];
566
- c([
565
+ i.styles = [v];
566
+ n([
567
567
  d({
568
568
  type: Array,
569
569
  converter: {
@@ -577,8 +577,8 @@ c([
577
577
  }
578
578
  }
579
579
  })
580
- ], l.prototype, "columns", 2);
581
- c([
580
+ ], i.prototype, "columns", 2);
581
+ n([
582
582
  d({
583
583
  type: Array,
584
584
  converter: {
@@ -592,47 +592,53 @@ c([
592
592
  }
593
593
  }
594
594
  })
595
- ], l.prototype, "rows", 2);
596
- c([
595
+ ], i.prototype, "rows", 2);
596
+ n([
597
597
  d({ type: Boolean, reflect: !0 })
598
- ], l.prototype, "selectable", 2);
599
- c([
598
+ ], i.prototype, "selectable", 2);
599
+ n([
600
600
  d({ type: String, attribute: "sort-key" })
601
- ], l.prototype, "sortKey", 2);
602
- c([
601
+ ], i.prototype, "sortKey", 2);
602
+ n([
603
603
  d({ type: String, attribute: "sort-direction" })
604
- ], l.prototype, "sortDirection", 2);
605
- c([
604
+ ], i.prototype, "sortDirection", 2);
605
+ n([
606
606
  d({ type: Boolean, reflect: !0 })
607
- ], l.prototype, "loading", 2);
608
- c([
607
+ ], i.prototype, "loading", 2);
608
+ n([
609
609
  d({ type: String, attribute: "empty-label" })
610
- ], l.prototype, "emptyLabel", 2);
611
- c([
610
+ ], i.prototype, "emptyLabel", 2);
611
+ n([
612
612
  d({ type: String })
613
- ], l.prototype, "label", 2);
614
- c([
613
+ ], i.prototype, "label", 2);
614
+ n([
615
615
  d({ attribute: "select-all-label" })
616
- ], l.prototype, "selectAllLabel", 2);
617
- c([
616
+ ], i.prototype, "selectAllLabel", 2);
617
+ n([
618
618
  d({ type: Boolean, reflect: !0, attribute: "sticky-header" })
619
- ], l.prototype, "stickyHeader", 2);
620
- c([
619
+ ], i.prototype, "stickyHeader", 2);
620
+ n([
621
621
  d({ type: Number })
622
- ], l.prototype, "page", 2);
623
- c([
622
+ ], i.prototype, "page", 2);
623
+ n([
624
624
  d({ type: Number, attribute: "page-size" })
625
- ], l.prototype, "pageSize", 2);
626
- c([
625
+ ], i.prototype, "pageSize", 2);
626
+ n([
627
627
  b()
628
- ], l.prototype, "_selectedRows", 2);
629
- c([
628
+ ], i.prototype, "_selectedRows", 2);
629
+ n([
630
630
  b()
631
- ], l.prototype, "_focusedHeaderIndex", 2);
632
- l = c([
633
- x("hx-data-table")
634
- ], l);
631
+ ], i.prototype, "_focusedHeaderIndex", 2);
632
+ n([
633
+ b()
634
+ ], i.prototype, "_resolvedColumns", 2);
635
+ n([
636
+ b()
637
+ ], i.prototype, "_resolvedRows", 2);
638
+ i = n([
639
+ m("hx-data-table")
640
+ ], i);
635
641
  export {
636
- l as H
642
+ i as H
637
643
  };
638
- //# sourceMappingURL=hx-data-table-609C-e9w.js.map
644
+ //# sourceMappingURL=hx-data-table-B6h0RPn0.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hx-data-table-B6h0RPn0.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-data-table-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 /* ─── Forced Colors (Windows High Contrast) ─── */\n\n @media (forced-colors: active) {\n table {\n border: 1px solid CanvasText;\n }\n\n th,\n td {\n border-bottom-color: CanvasText;\n }\n\n tbody tr[aria-selected='true'] {\n outline: 2px solid Highlight;\n }\n\n .skeleton-cell {\n animation: none;\n border: 1px solid GrayText;\n background: none;\n }\n }\n`;\n","import { html, nothing, type PropertyValues } from 'lit';\nimport '../../utilities/document-token-adoption.js';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { repeat } from 'lit/directives/repeat.js';\nimport { HelixElement } from '../../base/index.js';\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/** Detail for the hx-select event dispatched by hx-data-table. */\nexport interface HxDataTableSelectDetail {\n selectedRows: Record<string, unknown>[];\n}\n\n/** Detail for the hx-row-click event dispatched by hx-data-table. */\nexport interface HxDataTableRowClickDetail {\n row: Record<string, unknown>;\n index: number;\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 HelixElement {\n static override styles = [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 /**\n * Index (within the columns array) of the sortable header that currently holds\n * roving tabindex focus. -1 means no sortable header has been focused yet;\n * the first sortable column will receive tabindex=\"0\" by default.\n * @internal\n */\n @state() private _focusedHeaderIndex = -1;\n\n /**\n * Resolved columns array. Computed in willUpdate from the public `columns`\n * property which may be a JSON string (Drupal/Twig path) or a JS array.\n * All internal reads use this field to avoid mutating reactive properties\n * inside willUpdate (which would trigger extra update cycles).\n * @internal\n */\n @state() private _resolvedColumns: HxDataTableColumn[] = [];\n\n /**\n * Resolved rows array. Computed in willUpdate from the public `rows`\n * property which may be a JSON string (Drupal/Twig path) or a JS array.\n * @internal\n */\n @state() private _resolvedRows: Record<string, unknown>[] = [];\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 //\n // We write to private @state() resolved fields instead of mutating the public\n // reactive properties. Mutating @property fields inside willUpdate triggers an\n // additional update cycle; writing to separate @state fields does not because\n // Lit batches all changes within the same willUpdate into a single render.\n if (changed.has('columns')) {\n const rawColumns: unknown = this.columns;\n if (typeof rawColumns === 'string') {\n try {\n this._resolvedColumns = JSON.parse(rawColumns) as HxDataTableColumn[];\n } catch {\n this._resolvedColumns = [];\n }\n } else if (Array.isArray(this.columns)) {\n this._resolvedColumns = this.columns;\n } else {\n this._resolvedColumns = [];\n }\n }\n if (changed.has('rows')) {\n const rawRows: unknown = this.rows;\n if (typeof rawRows === 'string') {\n try {\n this._resolvedRows = JSON.parse(rawRows) as Record<string, unknown>[];\n } catch {\n this._resolvedRows = [];\n }\n } else if (Array.isArray(this.rows)) {\n this._resolvedRows = this.rows;\n } else {\n this._resolvedRows = [];\n }\n }\n // Only warn when rows actually changes to avoid noise on every property update.\n if (changed.has('rows') && this._resolvedRows.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._resolvedColumns.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. We check the public\n // properties because _resolvedColumns/_resolvedRows are derived from them\n // in willUpdate and always change in lockstep.\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._resolvedRows.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._resolvedRows[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._resolvedColumns.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 /**\n * Returns the indices (within the columns array) of all sortable columns.\n * @internal\n */\n private get _sortableIndices(): number[] {\n return this._resolvedColumns.reduce<number[]>((acc, col, i) => {\n if (col.sortable) acc.push(i);\n return acc;\n }, []);\n }\n\n /**\n * Handles keyboard navigation between sortable column headers using the\n * roving tabindex pattern (ARIA Grid specification). Supports ArrowLeft/Right\n * to move between sortable headers, Home/End to jump to first/last, and\n * Enter/Space to trigger sort on the focused sortable header.\n * @internal\n */\n private _handleHeaderKeydown(e: KeyboardEvent): void {\n const sortable = this._sortableIndices;\n if (sortable.length === 0) return;\n\n // Enter/Space on a sortable header triggers sort\n if (e.key === 'Enter' || e.key === ' ') {\n const col = this._resolvedColumns[this._focusedHeaderIndex];\n if (col?.sortable) {\n e.preventDefault();\n this._handleSort(col.key);\n }\n return;\n }\n\n if (!['ArrowLeft', 'ArrowRight', 'Home', 'End'].includes(e.key)) return;\n\n // Determine which sortable position is currently focused.\n // If no sortable header is focused (currentPos === -1), let the\n // table-level _handleKeydown handle grid navigation instead.\n const currentPos = sortable.indexOf(this._focusedHeaderIndex);\n if (currentPos === -1) return;\n let nextPos: number;\n\n if (e.key === 'ArrowRight') {\n nextPos = currentPos === -1 ? 0 : Math.min(currentPos + 1, sortable.length - 1);\n } else if (e.key === 'ArrowLeft') {\n nextPos = currentPos <= 0 ? 0 : currentPos - 1;\n } else if (e.key === 'Home') {\n nextPos = 0;\n } else {\n // End\n nextPos = sortable.length - 1;\n }\n\n const nextIndex = sortable[nextPos];\n if (nextIndex === undefined) return;\n\n e.preventDefault();\n this._focusedHeaderIndex = nextIndex;\n\n // Focus the <th> element for the target column\n const headers = this.shadowRoot?.querySelectorAll<HTMLElement>('thead th[data-col-index]');\n const target = headers?.[nextIndex] ?? null;\n if (target) {\n target.focus();\n }\n }\n\n /** @internal */\n private _renderHeaderRow() {\n // Determine which sortable header gets tabindex=\"0\" (roving tabindex).\n // If _focusedHeaderIndex is -1 (initial), the first sortable column wins.\n const sortable = this._sortableIndices;\n const activeIndex =\n this._focusedHeaderIndex >= 0 ? this._focusedHeaderIndex : (sortable[0] ?? -1);\n\n return html`\n <tr part=\"tr\" @keydown=${this._handleHeaderKeydown}>\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._resolvedRows.length}\n .checked=${this._selectedRows.size === this._resolvedRows.length &&\n this._resolvedRows.length > 0}\n @change=${(e: Event) =>\n this._handleSelectAll((e.target as HTMLInputElement).checked)}\n />\n </th>\n `\n : nothing}\n ${this._resolvedColumns.map(\n (col, i) => html`\n <th\n part=\"th\"\n data-col-index=${i}\n tabindex=${col.sortable ? (i === activeIndex ? '0' : '-1') : '-1'}\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 @focus=${col.sortable\n ? () => {\n this._focusedHeaderIndex = i;\n }\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._resolvedColumns.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._resolvedColumns.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._resolvedRows;\n\n // Client-side pagination when pageSize > 0\n if (this.pageSize > 0) {\n const start = (this.page - 1) * this.pageSize;\n displayRows = this._resolvedRows.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._resolvedColumns.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._resolvedRows.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","HelixElement","changed","rawColumns","rawRows","key","direction","row","index","checked","next","_","i","root","cells","focused","ancestor","colCount","idx","target","rowStart","rowEnd","_a","rowIdx","isActive","iconClass","html","acc","col","sortable","currentPos","nextPos","nextIndex","headers","activeIndex","e","nothing","colSpan","displayRows","start","repeat","_row","pageIndex","globalIndex","__decorateClass","property","value","state","customElement"],"mappings":";;;;AAEO,MAAMA,IAAuBC;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;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;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;;;;;;ACqE7B,IAAMC,IAAN,cAA6B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"}