@helixui/library 1.1.2 → 2.0.0

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 (638) hide show
  1. package/custom-elements.json +3221 -2224
  2. package/dist/base/helix-element.d.ts +134 -0
  3. package/dist/base/helix-element.d.ts.map +1 -0
  4. package/dist/base/id-counter.d.ts +32 -0
  5. package/dist/base/id-counter.d.ts.map +1 -0
  6. package/dist/base/index.d.ts +4 -0
  7. package/dist/base/index.d.ts.map +1 -0
  8. package/dist/base/styles.d.ts +19 -0
  9. package/dist/base/styles.d.ts.map +1 -0
  10. package/dist/components/hx-accordion/hx-accordion-item.d.ts +3 -0
  11. package/dist/components/hx-accordion/hx-accordion-item.d.ts.map +1 -1
  12. package/dist/components/hx-accordion/hx-accordion.d.ts +4 -1
  13. package/dist/components/hx-accordion/hx-accordion.d.ts.map +1 -1
  14. package/dist/components/hx-accordion/index.js +1 -1
  15. package/dist/components/hx-action-bar/hx-action-bar.d.ts +1 -1
  16. package/dist/components/hx-action-bar/hx-action-bar.d.ts.map +1 -1
  17. package/dist/components/hx-action-bar/index.js +1 -1
  18. package/dist/components/hx-alert/hx-alert.d.ts +10 -5
  19. package/dist/components/hx-alert/hx-alert.d.ts.map +1 -1
  20. package/dist/components/hx-alert/hx-alert.styles.d.ts.map +1 -1
  21. package/dist/components/hx-alert/index.js +1 -1
  22. package/dist/components/hx-avatar/hx-avatar.styles.d.ts.map +1 -1
  23. package/dist/components/hx-avatar/index.js +1 -1
  24. package/dist/components/hx-badge/hx-badge.d.ts.map +1 -1
  25. package/dist/components/hx-badge/hx-badge.styles.d.ts.map +1 -1
  26. package/dist/components/hx-badge/index.js +1 -1
  27. package/dist/components/hx-banner/hx-banner.d.ts +15 -5
  28. package/dist/components/hx-banner/hx-banner.d.ts.map +1 -1
  29. package/dist/components/hx-banner/hx-banner.styles.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 +1 -0
  32. package/dist/components/hx-breadcrumb/hx-breadcrumb-item.d.ts.map +1 -1
  33. package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts +42 -11
  34. package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts.map +1 -1
  35. package/dist/components/hx-breadcrumb/index.js +1 -1
  36. package/dist/components/hx-button/hx-button.d.ts +22 -13
  37. package/dist/components/hx-button/hx-button.d.ts.map +1 -1
  38. package/dist/components/hx-button/hx-button.styles.d.ts.map +1 -1
  39. package/dist/components/hx-button/index.js +1 -1
  40. package/dist/components/hx-button-group/hx-button-group.d.ts +3 -6
  41. package/dist/components/hx-button-group/hx-button-group.d.ts.map +1 -1
  42. package/dist/components/hx-button-group/index.js +1 -1
  43. package/dist/components/hx-card/hx-card.d.ts +7 -7
  44. package/dist/components/hx-card/hx-card.d.ts.map +1 -1
  45. package/dist/components/hx-card/index.js +1 -1
  46. package/dist/components/hx-carousel/hx-carousel.d.ts +2 -2
  47. package/dist/components/hx-carousel/index.js +1 -1
  48. package/dist/components/hx-checkbox/hx-checkbox.d.ts +18 -18
  49. package/dist/components/hx-checkbox/hx-checkbox.d.ts.map +1 -1
  50. package/dist/components/hx-checkbox/hx-checkbox.styles.d.ts.map +1 -1
  51. package/dist/components/hx-checkbox/index.js +1 -1
  52. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts +8 -3
  53. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts.map +1 -1
  54. package/dist/components/hx-checkbox-group/index.js +1 -1
  55. package/dist/components/hx-clinical-status/hx-clinical-status.d.ts +134 -0
  56. package/dist/components/hx-clinical-status/hx-clinical-status.d.ts.map +1 -0
  57. package/dist/components/hx-clinical-status/hx-clinical-status.styles.d.ts +2 -0
  58. package/dist/components/hx-clinical-status/hx-clinical-status.styles.d.ts.map +1 -0
  59. package/dist/components/hx-clinical-status/index.d.ts +3 -0
  60. package/dist/components/hx-clinical-status/index.d.ts.map +1 -0
  61. package/dist/components/hx-clinical-status/index.js +5 -0
  62. package/dist/components/hx-clinical-status/index.js.map +1 -0
  63. package/dist/components/hx-code-snippet/hx-code-snippet.styles.d.ts.map +1 -1
  64. package/dist/components/hx-code-snippet/index.js +1 -1
  65. package/dist/components/hx-color-picker/color-utils.d.ts +27 -0
  66. package/dist/components/hx-color-picker/color-utils.d.ts.map +1 -0
  67. package/dist/components/hx-color-picker/hx-color-picker.d.ts +16 -4
  68. package/dist/components/hx-color-picker/hx-color-picker.d.ts.map +1 -1
  69. package/dist/components/hx-color-picker/index.js +1 -1
  70. package/dist/components/hx-combobox/hx-combobox.d.ts +9 -4
  71. package/dist/components/hx-combobox/hx-combobox.d.ts.map +1 -1
  72. package/dist/components/hx-combobox/hx-combobox.styles.d.ts.map +1 -1
  73. package/dist/components/hx-combobox/index.js +1 -1
  74. package/dist/components/hx-container/index.js +1 -1
  75. package/dist/components/hx-copy-button/hx-copy-button.d.ts +6 -1
  76. package/dist/components/hx-copy-button/hx-copy-button.d.ts.map +1 -1
  77. package/dist/components/hx-copy-button/index.js +1 -1
  78. package/dist/components/hx-counter/hx-counter.d.ts +20 -3
  79. package/dist/components/hx-counter/hx-counter.d.ts.map +1 -1
  80. package/dist/components/hx-counter/hx-counter.styles.d.ts.map +1 -1
  81. package/dist/components/hx-counter/index.js +1 -1
  82. package/dist/components/hx-data-table/hx-data-table.d.ts +8 -0
  83. package/dist/components/hx-data-table/hx-data-table.d.ts.map +1 -1
  84. package/dist/components/hx-data-table/hx-data-table.styles.d.ts.map +1 -1
  85. package/dist/components/hx-data-table/index.js +1 -1
  86. package/dist/components/hx-date-picker/hx-date-picker.d.ts +40 -3
  87. package/dist/components/hx-date-picker/hx-date-picker.d.ts.map +1 -1
  88. package/dist/components/hx-date-picker/hx-date-picker.styles.d.ts.map +1 -1
  89. package/dist/components/hx-date-picker/index.js +1 -1
  90. package/dist/components/hx-dialog/hx-dialog.d.ts +4 -1
  91. package/dist/components/hx-dialog/hx-dialog.d.ts.map +1 -1
  92. package/dist/components/hx-dialog/index.js +1 -1
  93. package/dist/components/hx-divider/hx-divider.d.ts.map +1 -1
  94. package/dist/components/hx-divider/index.js +1 -1
  95. package/dist/components/hx-drawer/hx-drawer.d.ts +5 -8
  96. package/dist/components/hx-drawer/hx-drawer.d.ts.map +1 -1
  97. package/dist/components/hx-drawer/hx-drawer.styles.d.ts.map +1 -1
  98. package/dist/components/hx-drawer/index.js +1 -1
  99. package/dist/components/hx-dropdown/hx-dropdown.d.ts +14 -1
  100. package/dist/components/hx-dropdown/hx-dropdown.d.ts.map +1 -1
  101. package/dist/components/hx-dropdown/index.js +1 -1
  102. package/dist/components/hx-field/hx-field.d.ts +1 -1
  103. package/dist/components/hx-field/hx-field.d.ts.map +1 -1
  104. package/dist/components/hx-field/index.js +1 -1
  105. package/dist/components/hx-field-label/hx-field-label.styles.d.ts.map +1 -1
  106. package/dist/components/hx-field-label/index.js +1 -1
  107. package/dist/components/hx-file-upload/hx-file-upload.d.ts +8 -9
  108. package/dist/components/hx-file-upload/hx-file-upload.d.ts.map +1 -1
  109. package/dist/components/hx-file-upload/index.js +1 -1
  110. package/dist/components/hx-form/hx-form.d.ts.map +1 -1
  111. package/dist/components/hx-form/index.js +1 -1
  112. package/dist/components/hx-format-date/hx-format-date.d.ts.map +1 -1
  113. package/dist/components/hx-format-date/index.js +1 -1
  114. package/dist/components/hx-grid/hx-grid.d.ts +5 -9
  115. package/dist/components/hx-grid/hx-grid.d.ts.map +1 -1
  116. package/dist/components/hx-grid/index.js +1 -1
  117. package/dist/components/hx-icon/hx-icon.d.ts.map +1 -1
  118. package/dist/components/hx-icon/index.js +1 -1
  119. package/dist/components/hx-icon-button/hx-icon-button.d.ts +4 -3
  120. package/dist/components/hx-icon-button/hx-icon-button.d.ts.map +1 -1
  121. package/dist/components/hx-icon-button/index.js +1 -1
  122. package/dist/components/hx-image/hx-image.d.ts.map +1 -1
  123. package/dist/components/hx-image/index.js +1 -1
  124. package/dist/components/hx-link/hx-link.d.ts +1 -1
  125. package/dist/components/hx-link/hx-link.d.ts.map +1 -1
  126. package/dist/components/hx-link/hx-link.styles.d.ts.map +1 -1
  127. package/dist/components/hx-link/index.js +1 -1
  128. package/dist/components/hx-menu/hx-menu-item.d.ts +5 -0
  129. package/dist/components/hx-menu/hx-menu-item.d.ts.map +1 -1
  130. package/dist/components/hx-menu/hx-menu.d.ts +1 -0
  131. package/dist/components/hx-menu/hx-menu.d.ts.map +1 -1
  132. package/dist/components/hx-menu/hx-menu.styles.d.ts.map +1 -1
  133. package/dist/components/hx-menu/index.js +1 -1
  134. package/dist/components/hx-meter/hx-meter.d.ts +2 -2
  135. package/dist/components/hx-meter/hx-meter.d.ts.map +1 -1
  136. package/dist/components/hx-meter/index.js +1 -1
  137. package/dist/components/hx-nav/hx-nav.d.ts +10 -0
  138. package/dist/components/hx-nav/hx-nav.d.ts.map +1 -1
  139. package/dist/components/hx-nav/index.js +1 -1
  140. package/dist/components/hx-number-input/hx-number-input.d.ts +4 -3
  141. package/dist/components/hx-number-input/hx-number-input.d.ts.map +1 -1
  142. package/dist/components/hx-number-input/index.js +1 -1
  143. package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts +3 -3
  144. package/dist/components/hx-overflow-menu/hx-overflow-menu.styles.d.ts.map +1 -1
  145. package/dist/components/hx-overflow-menu/index.js +1 -1
  146. package/dist/components/hx-pagination/hx-pagination.d.ts +8 -0
  147. package/dist/components/hx-pagination/hx-pagination.d.ts.map +1 -1
  148. package/dist/components/hx-pagination/hx-pagination.styles.d.ts.map +1 -1
  149. package/dist/components/hx-pagination/index.js +1 -1
  150. package/dist/components/hx-patient-banner/hx-patient-banner.d.ts +113 -0
  151. package/dist/components/hx-patient-banner/hx-patient-banner.d.ts.map +1 -0
  152. package/dist/components/hx-patient-banner/hx-patient-banner.styles.d.ts +2 -0
  153. package/dist/components/hx-patient-banner/hx-patient-banner.styles.d.ts.map +1 -0
  154. package/dist/components/hx-patient-banner/index.d.ts +3 -0
  155. package/dist/components/hx-patient-banner/index.d.ts.map +1 -0
  156. package/dist/components/hx-patient-banner/index.js +5 -0
  157. package/dist/components/hx-patient-banner/index.js.map +1 -0
  158. package/dist/components/hx-phi-field/hx-phi-field.d.ts +97 -0
  159. package/dist/components/hx-phi-field/hx-phi-field.d.ts.map +1 -0
  160. package/dist/components/hx-phi-field/hx-phi-field.styles.d.ts +2 -0
  161. package/dist/components/hx-phi-field/hx-phi-field.styles.d.ts.map +1 -0
  162. package/dist/components/hx-phi-field/index.d.ts +3 -0
  163. package/dist/components/hx-phi-field/index.d.ts.map +1 -0
  164. package/dist/components/hx-phi-field/index.js +5 -0
  165. package/dist/components/hx-phi-field/index.js.map +1 -0
  166. package/dist/components/hx-popover/hx-popover.d.ts +25 -9
  167. package/dist/components/hx-popover/hx-popover.d.ts.map +1 -1
  168. package/dist/components/hx-popover/index.js +1 -1
  169. package/dist/components/hx-popup/hx-popup.d.ts +5 -8
  170. package/dist/components/hx-popup/hx-popup.d.ts.map +1 -1
  171. package/dist/components/hx-popup/index.js +1 -1
  172. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts +2 -0
  173. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts.map +1 -1
  174. package/dist/components/hx-progress-bar/hx-progress-bar.styles.d.ts.map +1 -1
  175. package/dist/components/hx-progress-bar/index.js +1 -1
  176. package/dist/components/hx-progress-ring/hx-progress-ring.d.ts.map +1 -1
  177. package/dist/components/hx-progress-ring/index.js +1 -1
  178. package/dist/components/hx-prose/hx-prose.d.ts +1 -0
  179. package/dist/components/hx-prose/hx-prose.d.ts.map +1 -1
  180. package/dist/components/hx-radio-group/hx-radio-group.d.ts +3 -7
  181. package/dist/components/hx-radio-group/hx-radio-group.d.ts.map +1 -1
  182. package/dist/components/hx-radio-group/hx-radio.d.ts.map +1 -1
  183. package/dist/components/hx-radio-group/hx-radio.styles.d.ts.map +1 -1
  184. package/dist/components/hx-radio-group/index.js +1 -1
  185. package/dist/components/hx-rating/hx-rating.d.ts +3 -3
  186. package/dist/components/hx-rating/hx-rating.d.ts.map +1 -1
  187. package/dist/components/hx-rating/hx-rating.styles.d.ts.map +1 -1
  188. package/dist/components/hx-rating/index.js +1 -1
  189. package/dist/components/hx-select/hx-select.d.ts +17 -11
  190. package/dist/components/hx-select/hx-select.d.ts.map +1 -1
  191. package/dist/components/hx-select/hx-select.styles.d.ts.map +1 -1
  192. package/dist/components/hx-select/index.js +1 -1
  193. package/dist/components/hx-side-nav/hx-nav-item.d.ts +12 -0
  194. package/dist/components/hx-side-nav/hx-nav-item.d.ts.map +1 -1
  195. package/dist/components/hx-side-nav/hx-nav-item.styles.d.ts.map +1 -1
  196. package/dist/components/hx-side-nav/hx-side-nav.d.ts.map +1 -1
  197. package/dist/components/hx-side-nav/hx-side-nav.styles.d.ts.map +1 -1
  198. package/dist/components/hx-side-nav/index.js +1 -1
  199. package/dist/components/hx-skeleton/hx-skeleton.d.ts +2 -2
  200. package/dist/components/hx-skeleton/hx-skeleton.d.ts.map +1 -1
  201. package/dist/components/hx-slider/hx-slider.d.ts +5 -8
  202. package/dist/components/hx-slider/hx-slider.d.ts.map +1 -1
  203. package/dist/components/hx-slider/hx-slider.styles.d.ts.map +1 -1
  204. package/dist/components/hx-slider/index.js +1 -1
  205. package/dist/components/hx-spinner/hx-spinner.d.ts +14 -1
  206. package/dist/components/hx-spinner/hx-spinner.d.ts.map +1 -1
  207. package/dist/components/hx-spinner/hx-spinner.styles.d.ts.map +1 -1
  208. package/dist/components/hx-spinner/index.js +1 -1
  209. package/dist/components/hx-split-button/hx-split-button.d.ts +10 -4
  210. package/dist/components/hx-split-button/hx-split-button.d.ts.map +1 -1
  211. package/dist/components/hx-split-button/hx-split-button.styles.d.ts.map +1 -1
  212. package/dist/components/hx-split-button/index.js +1 -1
  213. package/dist/components/hx-split-panel/hx-split-panel.d.ts.map +1 -1
  214. package/dist/components/hx-split-panel/hx-split-panel.styles.d.ts.map +1 -1
  215. package/dist/components/hx-split-panel/index.js +1 -1
  216. package/dist/components/hx-stat/hx-stat.d.ts +7 -2
  217. package/dist/components/hx-stat/hx-stat.d.ts.map +1 -1
  218. package/dist/components/hx-stat/index.js +1 -1
  219. package/dist/components/hx-status-indicator/hx-status-indicator.d.ts +19 -3
  220. package/dist/components/hx-status-indicator/hx-status-indicator.d.ts.map +1 -1
  221. package/dist/components/hx-status-indicator/hx-status-indicator.styles.d.ts.map +1 -1
  222. package/dist/components/hx-status-indicator/index.js +1 -1
  223. package/dist/components/hx-steps/hx-step.d.ts +7 -0
  224. package/dist/components/hx-steps/hx-step.d.ts.map +1 -1
  225. package/dist/components/hx-steps/hx-step.styles.d.ts.map +1 -1
  226. package/dist/components/hx-steps/hx-steps.d.ts.map +1 -1
  227. package/dist/components/hx-steps/index.js +1 -1
  228. package/dist/components/hx-structured-list/hx-structured-list.d.ts +10 -3
  229. package/dist/components/hx-structured-list/hx-structured-list.d.ts.map +1 -1
  230. package/dist/components/hx-structured-list/index.js +1 -1
  231. package/dist/components/hx-style-scope/hx-style-scope.d.ts +71 -0
  232. package/dist/components/hx-style-scope/hx-style-scope.d.ts.map +1 -0
  233. package/dist/components/hx-style-scope/hx-style-scope.styles.d.ts +10 -0
  234. package/dist/components/hx-style-scope/hx-style-scope.styles.d.ts.map +1 -0
  235. package/dist/components/hx-style-scope/index.d.ts +2 -0
  236. package/dist/components/hx-style-scope/index.d.ts.map +1 -0
  237. package/dist/components/hx-style-scope/index.js +5 -0
  238. package/dist/components/hx-style-scope/index.js.map +1 -0
  239. package/dist/components/hx-switch/hx-switch.d.ts +4 -4
  240. package/dist/components/hx-switch/hx-switch.d.ts.map +1 -1
  241. package/dist/components/hx-switch/hx-switch.styles.d.ts.map +1 -1
  242. package/dist/components/hx-switch/index.js +1 -1
  243. package/dist/components/hx-table/hx-table.d.ts +1 -0
  244. package/dist/components/hx-table/hx-table.d.ts.map +1 -1
  245. package/dist/components/hx-table/index.js +1 -1
  246. package/dist/components/hx-tabs/hx-tab-panel.styles.d.ts.map +1 -1
  247. package/dist/components/hx-tabs/hx-tab.d.ts +1 -0
  248. package/dist/components/hx-tabs/hx-tab.d.ts.map +1 -1
  249. package/dist/components/hx-tabs/hx-tab.styles.d.ts.map +1 -1
  250. package/dist/components/hx-tabs/hx-tabs.d.ts +12 -2
  251. package/dist/components/hx-tabs/hx-tabs.d.ts.map +1 -1
  252. package/dist/components/hx-tabs/index.js +1 -1
  253. package/dist/components/hx-tag/hx-tag.styles.d.ts.map +1 -1
  254. package/dist/components/hx-tag/index.js +1 -1
  255. package/dist/components/hx-text/index.js +1 -1
  256. package/dist/components/hx-text-input/hx-text-input.d.ts +16 -15
  257. package/dist/components/hx-text-input/hx-text-input.d.ts.map +1 -1
  258. package/dist/components/hx-text-input/hx-text-input.styles.d.ts.map +1 -1
  259. package/dist/components/hx-text-input/index.js +1 -1
  260. package/dist/components/hx-textarea/hx-textarea.d.ts +4 -4
  261. package/dist/components/hx-textarea/hx-textarea.d.ts.map +1 -1
  262. package/dist/components/hx-textarea/hx-textarea.styles.d.ts.map +1 -1
  263. package/dist/components/hx-textarea/index.js +1 -1
  264. package/dist/components/hx-theme/hx-theme.d.ts +82 -3
  265. package/dist/components/hx-theme/hx-theme.d.ts.map +1 -1
  266. package/dist/components/hx-theme/index.js +1 -1
  267. package/dist/components/hx-time-picker/hx-time-picker.d.ts +6 -1
  268. package/dist/components/hx-time-picker/hx-time-picker.d.ts.map +1 -1
  269. package/dist/components/hx-time-picker/index.js +1 -1
  270. package/dist/components/hx-toast/hx-toast-stack.d.ts +1 -1
  271. package/dist/components/hx-toast/hx-toast-stack.d.ts.map +1 -1
  272. package/dist/components/hx-toast/hx-toast.d.ts +9 -5
  273. package/dist/components/hx-toast/hx-toast.d.ts.map +1 -1
  274. package/dist/components/hx-toast/hx-toast.styles.d.ts.map +1 -1
  275. package/dist/components/hx-toast/index.js +1 -1
  276. package/dist/components/hx-toast/toast-factory.d.ts.map +1 -1
  277. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts +4 -3
  278. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts.map +1 -1
  279. package/dist/components/hx-toggle-button/hx-toggle-button.styles.d.ts.map +1 -1
  280. package/dist/components/hx-toggle-button/index.js +1 -1
  281. package/dist/components/hx-tooltip/hx-tooltip.d.ts +1 -2
  282. package/dist/components/hx-tooltip/hx-tooltip.d.ts.map +1 -1
  283. package/dist/components/hx-tooltip/index.js +1 -1
  284. package/dist/components/hx-tree-view/hx-tree-item.d.ts +12 -0
  285. package/dist/components/hx-tree-view/hx-tree-item.d.ts.map +1 -1
  286. package/dist/components/hx-tree-view/hx-tree-view.d.ts +27 -2
  287. package/dist/components/hx-tree-view/hx-tree-view.d.ts.map +1 -1
  288. package/dist/components/hx-tree-view/hx-tree-view.styles.d.ts.map +1 -1
  289. package/dist/components/hx-tree-view/index.js +1 -1
  290. package/dist/controllers/helix-audit-controller.d.ts +71 -0
  291. package/dist/controllers/helix-audit-controller.d.ts.map +1 -0
  292. package/dist/css/helix-all.css +9743 -0
  293. package/dist/css/helix-core.css +1839 -0
  294. package/dist/css/helix-data.css +639 -0
  295. package/dist/css/helix-feedback.css +1268 -0
  296. package/dist/css/helix-forms.css +2525 -0
  297. package/dist/css/helix-layout.css +380 -0
  298. package/dist/css/helix-media.css +213 -0
  299. package/dist/css/helix-navigation.css +1131 -0
  300. package/dist/css/helix-overlay.css +643 -0
  301. package/dist/css/helix-tokens.css +432 -0
  302. package/dist/css/helix-utility.css +633 -0
  303. package/dist/css/hx-accordion.css +10 -0
  304. package/dist/css/hx-action-bar.css +117 -0
  305. package/dist/css/hx-alert.css +213 -0
  306. package/dist/css/hx-avatar.css +134 -0
  307. package/dist/css/hx-badge.css +178 -0
  308. package/dist/css/hx-banner.css +203 -0
  309. package/dist/css/hx-breadcrumb.css +36 -0
  310. package/dist/css/hx-button-group.css +91 -0
  311. package/dist/css/hx-button.css +296 -0
  312. package/dist/css/hx-card.css +161 -0
  313. package/dist/css/hx-carousel.css +211 -0
  314. package/dist/css/hx-checkbox-group.css +77 -0
  315. package/dist/css/hx-checkbox.css +219 -0
  316. package/dist/css/hx-clinical-status.css +248 -0
  317. package/dist/css/hx-code-snippet.css +179 -0
  318. package/dist/css/hx-color-picker.css +2 -0
  319. package/dist/css/hx-combobox.css +2 -0
  320. package/dist/css/hx-container.css +82 -0
  321. package/dist/css/hx-copy-button.css +121 -0
  322. package/dist/css/hx-counter.css +51 -0
  323. package/dist/css/hx-data-table.css +207 -0
  324. package/dist/css/hx-date-picker.css +2 -0
  325. package/dist/css/hx-dialog.css +190 -0
  326. package/dist/css/hx-divider.css +87 -0
  327. package/dist/css/hx-drawer.css +262 -0
  328. package/dist/css/hx-dropdown.css +46 -0
  329. package/dist/css/hx-field-label.css +38 -0
  330. package/dist/css/hx-field.css +119 -0
  331. package/dist/css/hx-file-upload.css +241 -0
  332. package/dist/css/hx-form.css +2 -0
  333. package/dist/css/hx-format-date.css +10 -0
  334. package/dist/css/hx-grid.css +14 -0
  335. package/dist/css/hx-help-text.css +50 -0
  336. package/dist/css/hx-icon-button.css +152 -0
  337. package/dist/css/hx-icon.css +73 -0
  338. package/dist/css/hx-image.css +41 -0
  339. package/dist/css/hx-link.css +105 -0
  340. package/dist/css/hx-list.css +48 -0
  341. package/dist/css/hx-menu.css +23 -0
  342. package/dist/css/hx-meter.css +113 -0
  343. package/dist/css/hx-nav.css +242 -0
  344. package/dist/css/hx-number-input.css +246 -0
  345. package/dist/css/hx-overflow-menu.css +133 -0
  346. package/dist/css/hx-pagination.css +193 -0
  347. package/dist/css/hx-patient-banner.css +139 -0
  348. package/dist/css/hx-phi-field.css +97 -0
  349. package/dist/css/hx-popover.css +61 -0
  350. package/dist/css/hx-popup.css +31 -0
  351. package/dist/css/hx-progress-bar.css +133 -0
  352. package/dist/css/hx-progress-ring.css +142 -0
  353. package/dist/css/hx-prose.css +2 -0
  354. package/dist/css/hx-radio-group.css +77 -0
  355. package/dist/css/hx-rating.css +96 -0
  356. package/dist/css/hx-select.css +295 -0
  357. package/dist/css/hx-side-nav.css +149 -0
  358. package/dist/css/hx-skeleton.css +82 -0
  359. package/dist/css/hx-slider.css +287 -0
  360. package/dist/css/hx-spinner.css +116 -0
  361. package/dist/css/hx-split-button.css +309 -0
  362. package/dist/css/hx-split-panel.css +168 -0
  363. package/dist/css/hx-stack.css +104 -0
  364. package/dist/css/hx-stat.css +106 -0
  365. package/dist/css/hx-status-indicator.css +126 -0
  366. package/dist/css/hx-steps.css +52 -0
  367. package/dist/css/hx-structured-list.css +75 -0
  368. package/dist/css/hx-style-scope.css +4 -0
  369. package/dist/css/hx-switch.css +169 -0
  370. package/dist/css/hx-table.css +128 -0
  371. package/dist/css/hx-tabs.css +76 -0
  372. package/dist/css/hx-tag.css +146 -0
  373. package/dist/css/hx-text-input.css +214 -0
  374. package/dist/css/hx-text.css +149 -0
  375. package/dist/css/hx-textarea.css +180 -0
  376. package/dist/css/hx-theme.css +23 -0
  377. package/dist/css/hx-time-picker.css +2 -0
  378. package/dist/css/hx-toast.css +230 -0
  379. package/dist/css/hx-toggle-button.css +207 -0
  380. package/dist/css/hx-tooltip.css +51 -0
  381. package/dist/css/hx-top-nav.css +203 -0
  382. package/dist/css/hx-tree-view.css +22 -0
  383. package/dist/css/hx-visually-hidden.css +26 -0
  384. package/dist/css/index.css +84 -0
  385. package/dist/css/manifest.json +2704 -0
  386. package/dist/index.d.ts +14 -0
  387. package/dist/index.d.ts.map +1 -1
  388. package/dist/index.js +266 -176
  389. package/dist/index.js.map +1 -1
  390. package/dist/mixins/FocusMixin.d.ts +49 -0
  391. package/dist/mixins/FocusMixin.d.ts.map +1 -0
  392. package/dist/mixins/FormMixin.d.ts +69 -0
  393. package/dist/mixins/FormMixin.d.ts.map +1 -0
  394. package/dist/mixins/aria-delegation.d.ts +97 -0
  395. package/dist/mixins/aria-delegation.d.ts.map +1 -0
  396. package/dist/mixins/index.d.ts +5 -0
  397. package/dist/mixins/index.d.ts.map +1 -0
  398. package/dist/shared/FormMixin-Bjvw20G5.js +88 -0
  399. package/dist/shared/FormMixin-Bjvw20G5.js.map +1 -0
  400. package/dist/shared/aria-delegation-CBP9eQ0M.js +107 -0
  401. package/dist/shared/aria-delegation-CBP9eQ0M.js.map +1 -0
  402. package/dist/shared/{hx-accordion-D1kFhdeQ.js → hx-accordion-_KeulaQR.js} +83 -55
  403. package/dist/shared/hx-accordion-_KeulaQR.js.map +1 -0
  404. package/dist/shared/{hx-action-bar-D4bulGQP.js → hx-action-bar-vGFnNwNY.js} +33 -34
  405. package/dist/shared/hx-action-bar-vGFnNwNY.js.map +1 -0
  406. package/dist/shared/{hx-alert-CSxCF2rr.js → hx-alert-DRZYP0Oo.js} +32 -28
  407. package/dist/shared/hx-alert-DRZYP0Oo.js.map +1 -0
  408. package/dist/shared/{hx-avatar-Cun-O99h.js → hx-avatar-CZfA9KEl.js} +28 -11
  409. package/dist/shared/hx-avatar-CZfA9KEl.js.map +1 -0
  410. package/dist/shared/{hx-badge-CsFd2xtw.js → hx-badge-Xg7zoh4Q.js} +46 -37
  411. package/dist/shared/hx-badge-Xg7zoh4Q.js.map +1 -0
  412. package/dist/shared/{hx-banner-BTV-X2xF.js → hx-banner-2RS7Nux4.js} +93 -58
  413. package/dist/shared/hx-banner-2RS7Nux4.js.map +1 -0
  414. package/dist/shared/{hx-breadcrumb-item-4IwaLgaO.js → hx-breadcrumb-item-CObc-WJl.js} +86 -83
  415. package/dist/shared/hx-breadcrumb-item-CObc-WJl.js.map +1 -0
  416. package/dist/shared/{hx-button-7k-KeCYU.js → hx-button-CC1YH9RZ.js} +127 -62
  417. package/dist/shared/hx-button-CC1YH9RZ.js.map +1 -0
  418. package/dist/shared/{hx-button-group-CWjWv-wS.js → hx-button-group-ChTQsnQj.js} +10 -10
  419. package/dist/shared/hx-button-group-ChTQsnQj.js.map +1 -0
  420. package/dist/shared/{hx-card-0hT3G5hi.js → hx-card-dIKdcMhr.js} +32 -32
  421. package/dist/shared/hx-card-dIKdcMhr.js.map +1 -0
  422. package/dist/shared/{hx-carousel-item-DgeYyYZJ.js → hx-carousel-item-Cm8a1nAi.js} +3 -3
  423. package/dist/shared/hx-carousel-item-Cm8a1nAi.js.map +1 -0
  424. package/dist/shared/{hx-checkbox-BvjO-O41.js → hx-checkbox-_WUiuTo9.js} +68 -71
  425. package/dist/shared/hx-checkbox-_WUiuTo9.js.map +1 -0
  426. package/dist/shared/{hx-checkbox-group-Z5VvWzcj.js → hx-checkbox-group-B-ci-dxp.js} +37 -31
  427. package/dist/shared/hx-checkbox-group-B-ci-dxp.js.map +1 -0
  428. package/dist/shared/hx-clinical-status-D6eaplvs.js +469 -0
  429. package/dist/shared/hx-clinical-status-D6eaplvs.js.map +1 -0
  430. package/dist/shared/{hx-code-snippet-DqzPkH4K.js → hx-code-snippet-CQsyvthi.js} +56 -47
  431. package/dist/shared/hx-code-snippet-CQsyvthi.js.map +1 -0
  432. package/dist/shared/{hx-color-picker-Da8z6AlQ.js → hx-color-picker-Dk2Myvaf.js} +153 -137
  433. package/dist/shared/hx-color-picker-Dk2Myvaf.js.map +1 -0
  434. package/dist/shared/{hx-combobox-CivfelTS.js → hx-combobox-CNAJXIxo.js} +10 -10
  435. package/dist/shared/hx-combobox-CNAJXIxo.js.map +1 -0
  436. package/dist/shared/{hx-container-DLUKnTi9.js → hx-container-7j16VuQE.js} +16 -16
  437. package/dist/shared/hx-container-7j16VuQE.js.map +1 -0
  438. package/dist/shared/{hx-copy-button--0dymSvw.js → hx-copy-button-B_ZHYO7_.js} +47 -40
  439. package/dist/shared/hx-copy-button-B_ZHYO7_.js.map +1 -0
  440. package/dist/shared/hx-counter-D_B7L9Pi.js +185 -0
  441. package/dist/shared/hx-counter-D_B7L9Pi.js.map +1 -0
  442. package/dist/shared/{hx-data-table-BWvd5NNx.js → hx-data-table-B1j4n4bm.js} +82 -46
  443. package/dist/shared/hx-data-table-B1j4n4bm.js.map +1 -0
  444. package/dist/shared/{hx-date-picker-6voxxxNE.js → hx-date-picker-R-0kWFwr.js} +102 -89
  445. package/dist/shared/hx-date-picker-R-0kWFwr.js.map +1 -0
  446. package/dist/shared/{hx-dialog-DkUSnVgw.js → hx-dialog-U5d3s0Ps.js} +98 -89
  447. package/dist/shared/hx-dialog-U5d3s0Ps.js.map +1 -0
  448. package/dist/shared/{hx-divider-DNNs4e8q.js → hx-divider-DdAN-_jB.js} +5 -5
  449. package/dist/shared/hx-divider-DdAN-_jB.js.map +1 -0
  450. package/dist/shared/{hx-drawer-CJcRZcns.js → hx-drawer-e0qeGxAD.js} +117 -77
  451. package/dist/shared/hx-drawer-e0qeGxAD.js.map +1 -0
  452. package/dist/shared/{hx-dropdown-Bo0KTM1A.js → hx-dropdown-DP_DNpEb.js} +56 -41
  453. package/dist/shared/hx-dropdown-DP_DNpEb.js.map +1 -0
  454. package/dist/shared/{hx-field-3MmzJ4kZ.js → hx-field-COM4KvMQ.js} +9 -9
  455. package/dist/shared/hx-field-COM4KvMQ.js.map +1 -0
  456. package/dist/shared/{hx-field-label-Bg-EWvqF.js → hx-field-label-BtZ9H9Yy.js} +8 -11
  457. package/dist/shared/hx-field-label-BtZ9H9Yy.js.map +1 -0
  458. package/dist/shared/{hx-file-upload-ByjAgfNy.js → hx-file-upload-DbECypLe.js} +78 -87
  459. package/dist/shared/hx-file-upload-DbECypLe.js.map +1 -0
  460. package/dist/shared/{hx-form-BpS6v3Iu.js → hx-form-fJE-FJQV.js} +36 -32
  461. package/dist/shared/{hx-form-BpS6v3Iu.js.map → hx-form-fJE-FJQV.js.map} +1 -1
  462. package/dist/shared/{hx-format-date-BdnWV2kX.js → hx-format-date-C030ThSm.js} +14 -12
  463. package/dist/shared/hx-format-date-C030ThSm.js.map +1 -0
  464. package/dist/shared/{hx-grid-gEjuF0cR.js → hx-grid-DE8KM5Gf.js} +7 -7
  465. package/dist/shared/hx-grid-DE8KM5Gf.js.map +1 -0
  466. package/dist/shared/{hx-icon-button-DzH_bRtC.js → hx-icon-button-Et9wq79n.js} +4 -4
  467. package/dist/shared/{hx-icon-button-DzH_bRtC.js.map → hx-icon-button-Et9wq79n.js.map} +1 -1
  468. package/dist/shared/{hx-icon-CP6OnLoM.js → hx-icon-dYvrzvsO.js} +7 -7
  469. package/dist/shared/hx-icon-dYvrzvsO.js.map +1 -0
  470. package/dist/shared/{hx-image-C6pGiI6c.js → hx-image-DUsEi-oN.js} +15 -15
  471. package/dist/shared/hx-image-DUsEi-oN.js.map +1 -0
  472. package/dist/shared/{hx-link-Tmk_YPvW.js → hx-link-Peg2LzOD.js} +43 -41
  473. package/dist/shared/hx-link-Peg2LzOD.js.map +1 -0
  474. package/dist/shared/{hx-menu-divider-DR4G_rqw.js → hx-menu-divider-puPmRAdN.js} +40 -20
  475. package/dist/shared/hx-menu-divider-puPmRAdN.js.map +1 -0
  476. package/dist/shared/{hx-meter-uXkTZq-W.js → hx-meter-CVs4A649.js} +13 -13
  477. package/dist/shared/hx-meter-CVs4A649.js.map +1 -0
  478. package/dist/shared/{hx-nav-3JsN2Oak.js → hx-nav-CiyqaW2I.js} +119 -107
  479. package/dist/shared/hx-nav-CiyqaW2I.js.map +1 -0
  480. package/dist/shared/{hx-nav-item-D3EJatzc.js → hx-nav-item-tM_6bolB.js} +181 -115
  481. package/dist/shared/hx-nav-item-tM_6bolB.js.map +1 -0
  482. package/dist/shared/{hx-number-input-CIpL2BEh.js → hx-number-input-BPgrlMLN.js} +34 -33
  483. package/dist/shared/hx-number-input-BPgrlMLN.js.map +1 -0
  484. package/dist/shared/{hx-overflow-menu-2kgOJ_ht.js → hx-overflow-menu-Bz02LPPk.js} +15 -11
  485. package/dist/shared/hx-overflow-menu-Bz02LPPk.js.map +1 -0
  486. package/dist/shared/{hx-pagination-Blt-fFqV.js → hx-pagination-Cb9UEWXz.js} +88 -72
  487. package/dist/shared/hx-pagination-Cb9UEWXz.js.map +1 -0
  488. package/dist/shared/hx-patient-banner-wk4qWmsH.js +297 -0
  489. package/dist/shared/hx-patient-banner-wk4qWmsH.js.map +1 -0
  490. package/dist/shared/hx-phi-field-DX9z3nu0.js +295 -0
  491. package/dist/shared/hx-phi-field-DX9z3nu0.js.map +1 -0
  492. package/dist/shared/{hx-popover-DxE67miP.js → hx-popover-D6kYQkt3.js} +96 -69
  493. package/dist/shared/hx-popover-D6kYQkt3.js.map +1 -0
  494. package/dist/shared/{hx-popup-Dg6n_PbY.js → hx-popup-RQb6HUXc.js} +2 -2
  495. package/dist/shared/hx-popup-RQb6HUXc.js.map +1 -0
  496. package/dist/shared/{hx-progress-bar-Dm_EHyng.js → hx-progress-bar-ByEmxq1V.js} +42 -40
  497. package/dist/shared/hx-progress-bar-ByEmxq1V.js.map +1 -0
  498. package/dist/shared/{hx-progress-ring-DpxBDD5d.js → hx-progress-ring-CtVnNRQx.js} +2 -2
  499. package/dist/shared/{hx-progress-ring-DpxBDD5d.js.map → hx-progress-ring-CtVnNRQx.js.map} +1 -1
  500. package/dist/shared/hx-prose-Ml_L2zje.js.map +1 -1
  501. package/dist/shared/{hx-radio-BywgVSEu.js → hx-radio-jgeW92SV.js} +28 -27
  502. package/dist/shared/hx-radio-jgeW92SV.js.map +1 -0
  503. package/dist/shared/{hx-rating-CUWBQ0fZ.js → hx-rating-g_iy-DW_.js} +92 -96
  504. package/dist/shared/hx-rating-g_iy-DW_.js.map +1 -0
  505. package/dist/shared/{hx-select-BwDwxk-M.js → hx-select-BWzxWZs_.js} +139 -100
  506. package/dist/shared/hx-select-BWzxWZs_.js.map +1 -0
  507. package/dist/shared/hx-skeleton-BHvALyd7.js.map +1 -1
  508. package/dist/shared/{hx-slider-D_0EKJyk.js → hx-slider-7Q-e0_pc.js} +27 -22
  509. package/dist/shared/hx-slider-7Q-e0_pc.js.map +1 -0
  510. package/dist/shared/{hx-spinner-DMn4SChS.js → hx-spinner-DEgrKsUo.js} +3 -2
  511. package/dist/shared/hx-spinner-DEgrKsUo.js.map +1 -0
  512. package/dist/shared/{hx-split-button-CypgLXw1.js → hx-split-button-BA7P_ly5.js} +40 -31
  513. package/dist/shared/hx-split-button-BA7P_ly5.js.map +1 -0
  514. package/dist/shared/{hx-split-panel-CV_Kr4EK.js → hx-split-panel-Bss54UN8.js} +16 -13
  515. package/dist/shared/hx-split-panel-Bss54UN8.js.map +1 -0
  516. package/dist/shared/{hx-stat-CHntLHJM.js → hx-stat-CmkCUI8v.js} +40 -32
  517. package/dist/shared/{hx-stat-CHntLHJM.js.map → hx-stat-CmkCUI8v.js.map} +1 -1
  518. package/dist/shared/{hx-status-indicator-C1BwEvUw.js → hx-status-indicator-Dl3Y34mc.js} +81 -40
  519. package/dist/shared/hx-status-indicator-Dl3Y34mc.js.map +1 -0
  520. package/dist/shared/{hx-step-BIVWSPxd.js → hx-step-CmNwfcJx.js} +49 -85
  521. package/dist/shared/hx-step-CmNwfcJx.js.map +1 -0
  522. package/dist/shared/{hx-structured-list-CMWllxGg.js → hx-structured-list-Db9rwLI_.js} +26 -23
  523. package/dist/shared/hx-structured-list-Db9rwLI_.js.map +1 -0
  524. package/dist/shared/hx-style-scope-BroUu83L.js +125 -0
  525. package/dist/shared/hx-style-scope-BroUu83L.js.map +1 -0
  526. package/dist/shared/{hx-switch-BgX8kuWt.js → hx-switch-C0Lp5RGy.js} +8 -5
  527. package/dist/shared/hx-switch-C0Lp5RGy.js.map +1 -0
  528. package/dist/shared/{hx-tab-panel-DhOq67jj.js → hx-tab-panel-Dnt8aA74.js} +161 -122
  529. package/dist/shared/hx-tab-panel-Dnt8aA74.js.map +1 -0
  530. package/dist/shared/{hx-tag-CzOTDcXI.js → hx-tag-K5fCjfqQ.js} +15 -14
  531. package/dist/shared/hx-tag-K5fCjfqQ.js.map +1 -0
  532. package/dist/shared/{hx-td-h6oeW6YC.js → hx-td-DZuILY3s.js} +43 -40
  533. package/dist/shared/hx-td-DZuILY3s.js.map +1 -0
  534. package/dist/shared/{hx-text-DTXjiviE.js → hx-text-DoEVOf47.js} +29 -29
  535. package/dist/shared/hx-text-DoEVOf47.js.map +1 -0
  536. package/dist/shared/hx-text-input-DTKWPVdy.js +576 -0
  537. package/dist/shared/hx-text-input-DTKWPVdy.js.map +1 -0
  538. package/dist/shared/{hx-textarea-BgX7rxyo.js → hx-textarea-BkSiU8oM.js} +15 -15
  539. package/dist/shared/hx-textarea-BkSiU8oM.js.map +1 -0
  540. package/dist/shared/hx-theme-Aag8QJvT.js +299 -0
  541. package/dist/shared/hx-theme-Aag8QJvT.js.map +1 -0
  542. package/dist/shared/{hx-time-picker-DmLu7WUC.js → hx-time-picker-BpCRsh_z.js} +54 -53
  543. package/dist/shared/hx-time-picker-BpCRsh_z.js.map +1 -0
  544. package/dist/shared/{hx-toggle-button-D1jpDvSA.js → hx-toggle-button-CPFqs3eQ.js} +8 -5
  545. package/dist/shared/hx-toggle-button-CPFqs3eQ.js.map +1 -0
  546. package/dist/shared/{hx-tooltip-kh7QFPKu.js → hx-tooltip-CrO4vzeX.js} +15 -10
  547. package/dist/shared/hx-tooltip-CrO4vzeX.js.map +1 -0
  548. package/dist/shared/{hx-tree-item-BP6UF_H1.js → hx-tree-item-C1PhX-HE.js} +163 -99
  549. package/dist/shared/hx-tree-item-C1PhX-HE.js.map +1 -0
  550. package/dist/shared/id-counter-JhvVCnjh.js +143 -0
  551. package/dist/shared/id-counter-JhvVCnjh.js.map +1 -0
  552. package/dist/shared/{toast-factory-DTy-qN8r.js → toast-factory-f184Gi70.js} +57 -45
  553. package/dist/shared/toast-factory-f184Gi70.js.map +1 -0
  554. package/dist/utilities/adoptedStylesheetRegistry.d.ts +47 -0
  555. package/dist/utilities/adoptedStylesheetRegistry.d.ts.map +1 -0
  556. package/dist/utilities/generateScopedSelectors.d.ts +30 -0
  557. package/dist/utilities/generateScopedSelectors.d.ts.map +1 -0
  558. package/dist/utilities/injectLightStyles.d.ts +37 -0
  559. package/dist/utilities/injectLightStyles.d.ts.map +1 -0
  560. package/dist/utilities/lightStyleRegistry.d.ts +41 -0
  561. package/dist/utilities/lightStyleRegistry.d.ts.map +1 -0
  562. package/dist/utilities/sheetManager.d.ts +62 -0
  563. package/dist/utilities/sheetManager.d.ts.map +1 -0
  564. package/dist/utils/contrast-checker.d.ts +86 -0
  565. package/dist/utils/contrast-checker.d.ts.map +1 -0
  566. package/dist/utils/token-merger.d.ts +24 -0
  567. package/dist/utils/token-merger.d.ts.map +1 -0
  568. package/fouc.css +37 -0
  569. package/package.json +26 -6
  570. package/dist/shared/hx-accordion-D1kFhdeQ.js.map +0 -1
  571. package/dist/shared/hx-action-bar-D4bulGQP.js.map +0 -1
  572. package/dist/shared/hx-alert-CSxCF2rr.js.map +0 -1
  573. package/dist/shared/hx-avatar-Cun-O99h.js.map +0 -1
  574. package/dist/shared/hx-badge-CsFd2xtw.js.map +0 -1
  575. package/dist/shared/hx-banner-BTV-X2xF.js.map +0 -1
  576. package/dist/shared/hx-breadcrumb-item-4IwaLgaO.js.map +0 -1
  577. package/dist/shared/hx-button-7k-KeCYU.js.map +0 -1
  578. package/dist/shared/hx-button-group-CWjWv-wS.js.map +0 -1
  579. package/dist/shared/hx-card-0hT3G5hi.js.map +0 -1
  580. package/dist/shared/hx-carousel-item-DgeYyYZJ.js.map +0 -1
  581. package/dist/shared/hx-checkbox-BvjO-O41.js.map +0 -1
  582. package/dist/shared/hx-checkbox-group-Z5VvWzcj.js.map +0 -1
  583. package/dist/shared/hx-code-snippet-DqzPkH4K.js.map +0 -1
  584. package/dist/shared/hx-color-picker-Da8z6AlQ.js.map +0 -1
  585. package/dist/shared/hx-combobox-CivfelTS.js.map +0 -1
  586. package/dist/shared/hx-container-DLUKnTi9.js.map +0 -1
  587. package/dist/shared/hx-copy-button--0dymSvw.js.map +0 -1
  588. package/dist/shared/hx-counter-Duf00H7p.js +0 -147
  589. package/dist/shared/hx-counter-Duf00H7p.js.map +0 -1
  590. package/dist/shared/hx-data-table-BWvd5NNx.js.map +0 -1
  591. package/dist/shared/hx-date-picker-6voxxxNE.js.map +0 -1
  592. package/dist/shared/hx-dialog-DkUSnVgw.js.map +0 -1
  593. package/dist/shared/hx-divider-DNNs4e8q.js.map +0 -1
  594. package/dist/shared/hx-drawer-CJcRZcns.js.map +0 -1
  595. package/dist/shared/hx-dropdown-Bo0KTM1A.js.map +0 -1
  596. package/dist/shared/hx-field-3MmzJ4kZ.js.map +0 -1
  597. package/dist/shared/hx-field-label-Bg-EWvqF.js.map +0 -1
  598. package/dist/shared/hx-file-upload-ByjAgfNy.js.map +0 -1
  599. package/dist/shared/hx-format-date-BdnWV2kX.js.map +0 -1
  600. package/dist/shared/hx-grid-gEjuF0cR.js.map +0 -1
  601. package/dist/shared/hx-icon-CP6OnLoM.js.map +0 -1
  602. package/dist/shared/hx-image-C6pGiI6c.js.map +0 -1
  603. package/dist/shared/hx-link-Tmk_YPvW.js.map +0 -1
  604. package/dist/shared/hx-menu-divider-DR4G_rqw.js.map +0 -1
  605. package/dist/shared/hx-meter-uXkTZq-W.js.map +0 -1
  606. package/dist/shared/hx-nav-3JsN2Oak.js.map +0 -1
  607. package/dist/shared/hx-nav-item-D3EJatzc.js.map +0 -1
  608. package/dist/shared/hx-number-input-CIpL2BEh.js.map +0 -1
  609. package/dist/shared/hx-overflow-menu-2kgOJ_ht.js.map +0 -1
  610. package/dist/shared/hx-pagination-Blt-fFqV.js.map +0 -1
  611. package/dist/shared/hx-popover-DxE67miP.js.map +0 -1
  612. package/dist/shared/hx-popup-Dg6n_PbY.js.map +0 -1
  613. package/dist/shared/hx-progress-bar-Dm_EHyng.js.map +0 -1
  614. package/dist/shared/hx-radio-BywgVSEu.js.map +0 -1
  615. package/dist/shared/hx-rating-CUWBQ0fZ.js.map +0 -1
  616. package/dist/shared/hx-select-BwDwxk-M.js.map +0 -1
  617. package/dist/shared/hx-slider-D_0EKJyk.js.map +0 -1
  618. package/dist/shared/hx-spinner-DMn4SChS.js.map +0 -1
  619. package/dist/shared/hx-split-button-CypgLXw1.js.map +0 -1
  620. package/dist/shared/hx-split-panel-CV_Kr4EK.js.map +0 -1
  621. package/dist/shared/hx-status-indicator-C1BwEvUw.js.map +0 -1
  622. package/dist/shared/hx-step-BIVWSPxd.js.map +0 -1
  623. package/dist/shared/hx-structured-list-CMWllxGg.js.map +0 -1
  624. package/dist/shared/hx-switch-BgX8kuWt.js.map +0 -1
  625. package/dist/shared/hx-tab-panel-DhOq67jj.js.map +0 -1
  626. package/dist/shared/hx-tag-CzOTDcXI.js.map +0 -1
  627. package/dist/shared/hx-td-h6oeW6YC.js.map +0 -1
  628. package/dist/shared/hx-text-DTXjiviE.js.map +0 -1
  629. package/dist/shared/hx-text-input-CqEdDHMU.js +0 -461
  630. package/dist/shared/hx-text-input-CqEdDHMU.js.map +0 -1
  631. package/dist/shared/hx-textarea-BgX7rxyo.js.map +0 -1
  632. package/dist/shared/hx-theme-6GDoUG8j.js +0 -176
  633. package/dist/shared/hx-theme-6GDoUG8j.js.map +0 -1
  634. package/dist/shared/hx-time-picker-DmLu7WUC.js.map +0 -1
  635. package/dist/shared/hx-toggle-button-D1jpDvSA.js.map +0 -1
  636. package/dist/shared/hx-tooltip-kh7QFPKu.js.map +0 -1
  637. package/dist/shared/hx-tree-item-BP6UF_H1.js.map +0 -1
  638. package/dist/shared/toast-factory-DTy-qN8r.js.map +0 -1
@@ -1,5 +1,5 @@
1
- import { css as b, LitElement as g, html as f, nothing as x } from "lit";
2
- import { property as p, state as c, customElement as _, query as w } from "lit/decorators.js";
1
+ import { css as b, LitElement as _, nothing as p, html as x } from "lit";
2
+ import { property as m, state as c, customElement as g, query as w } from "lit/decorators.js";
3
3
  import { tokenStyles as y } from "@helixui/tokens/lit";
4
4
  import { classMap as I } from "lit/directives/class-map.js";
5
5
  const C = b`
@@ -19,38 +19,46 @@ const C = b`
19
19
  }
20
20
 
21
21
  .tree:focus-visible {
22
- outline: var(--hx-focus-ring-width, 2px) solid var(--hx-focus-ring-color, #2563eb);
22
+ outline: var(--hx-focus-ring-width, 2px) solid
23
+ var(--hx-focus-ring-color, var(--hx-color-primary-400, #60a5fa));
23
24
  outline-offset: var(--hx-focus-ring-offset, 2px);
24
25
  border-radius: var(--hx-border-radius-sm, 0.25rem);
25
26
  }
26
27
  `;
27
- var k = Object.defineProperty, S = Object.getOwnPropertyDescriptor, m = (e, t, r, s) => {
28
- for (var i = s > 1 ? void 0 : s ? S(t, r) : t, l = e.length - 1, h; l >= 0; l--)
29
- (h = e[l]) && (i = (s ? h(t, r, i) : h(i)) || i);
30
- return s && i && k(t, r, i), i;
28
+ var k = Object.defineProperty, S = Object.getOwnPropertyDescriptor, f = (e, t, i, s) => {
29
+ for (var r = s > 1 ? void 0 : s ? S(t, i) : t, n = e.length - 1, o; n >= 0; n--)
30
+ (o = e[n]) && (r = (s ? o(t, i, r) : o(r)) || r);
31
+ return s && r && k(t, i, r), r;
31
32
  };
32
- let d = class extends g {
33
+ let d = class extends _ {
33
34
  constructor() {
34
- super(...arguments), this.label = "", this.selection = "none", this._currentIndex = 0, this._hasVisibleItems = !1;
35
+ super(...arguments), this.label = "", this.selection = "none", this._currentIndex = 0, this._hasVisibleItems = !1, this._cachedVisibleItems = null;
36
+ }
37
+ /**
38
+ * Invalidate the visible-items cache. Call after any expand/collapse or structural change.
39
+ * @internal
40
+ */
41
+ _invalidateVisibleItemsCache() {
42
+ this._cachedVisibleItems = null;
35
43
  }
36
44
  // ─── Internal Helpers ───
37
45
  /**
38
46
  * Returns a flat ordered list of all visible (not inside a collapsed item) hx-tree-items
39
- * in depth-first order.
47
+ * in depth-first order. Result is cached; invalidated on expand/collapse/slotchange.
40
48
  */
41
49
  /** @internal */
42
50
  _getVisibleItems() {
43
- return this._collectVisibleItems(this);
51
+ return this._cachedVisibleItems || (this._cachedVisibleItems = this._collectVisibleItems(this)), this._cachedVisibleItems;
44
52
  }
45
53
  /** @internal */
46
54
  _collectVisibleItems(e) {
47
55
  const t = [];
48
- for (const r of Array.from(e.children))
49
- if (r.tagName.toLowerCase() === "hx-tree-item") {
50
- const s = r;
56
+ for (const i of Array.from(e.children))
57
+ if (i.tagName.toLowerCase() === "hx-tree-item") {
58
+ const s = i;
51
59
  t.push(s), s.expanded && t.push(...this._collectVisibleItems(s));
52
60
  } else
53
- t.push(...this._collectVisibleItems(r));
61
+ t.push(...this._collectVisibleItems(i));
54
62
  return t;
55
63
  }
56
64
  /** @internal */
@@ -64,8 +72,8 @@ let d = class extends g {
64
72
  */
65
73
  /** @internal */
66
74
  _updateRovingTabindex(e, t) {
67
- e.forEach((r, s) => {
68
- r.setRovingActive(s === t);
75
+ e.forEach((i, s) => {
76
+ i.setRovingActive(s === t);
69
77
  });
70
78
  }
71
79
  /** @internal */
@@ -73,63 +81,63 @@ let d = class extends g {
73
81
  var s;
74
82
  const t = this._getVisibleItems();
75
83
  if (t.length === 0) return;
76
- const r = Math.max(0, Math.min(e, t.length - 1));
77
- this._currentIndex = r, this._updateRovingTabindex(t, r), (s = t[r]) == null || s.focus();
84
+ const i = Math.max(0, Math.min(e, t.length - 1));
85
+ this._currentIndex = i, this._updateRovingTabindex(t, i), (s = t[i]) == null || s.focus();
78
86
  }
79
87
  // ─── Event Handling ───
80
88
  /** @internal */
81
89
  _handleTreeItemSelect(e) {
82
90
  if (!(e instanceof CustomEvent)) return;
83
- const r = e.detail.item;
91
+ const i = e.detail.item;
84
92
  if (this.selection !== "none") {
85
93
  if (this.selection === "single") {
86
- const s = r.selected;
87
- this._getSelectedItems().forEach((i) => {
88
- i.selected = !1;
89
- }), r.selected = !s;
90
- } else this.selection === "multiple" && (r.selected = !r.selected);
94
+ const s = i.selected;
95
+ this._getSelectedItems().forEach((r) => {
96
+ r.selected = !1;
97
+ }), i.selected = !s;
98
+ } else this.selection === "multiple" && (i.selected = !i.selected);
91
99
  this.dispatchEvent(
92
100
  new CustomEvent("hx-select", {
93
101
  bubbles: !0,
94
102
  composed: !0,
95
- detail: { item: r, selected: r.selected }
103
+ detail: { item: i, selected: i.selected }
96
104
  })
97
105
  );
98
106
  }
99
107
  }
100
108
  /** @internal */
101
109
  _handleKeyDown(e) {
102
- var i, l, h;
110
+ var r, n, o;
103
111
  const t = this._getVisibleItems();
104
112
  if (t.length === 0) return;
105
- let r = this._currentIndex;
113
+ let i = this._currentIndex;
106
114
  const s = document.activeElement;
107
115
  for (let a = 0; a < t.length; a++)
108
- if (t[a] === s || (l = (i = t[a]) == null ? void 0 : i.shadowRoot) != null && l.activeElement) {
109
- r = a;
116
+ if (t[a] === s || (n = (r = t[a]) == null ? void 0 : r.shadowRoot) != null && n.activeElement) {
117
+ i = a;
110
118
  break;
111
119
  }
112
120
  switch (e.key) {
113
121
  case "ArrowDown": {
114
122
  e.preventDefault();
115
- const a = r < t.length - 1 ? r + 1 : 0;
123
+ const a = i < t.length - 1 ? i + 1 : 0;
116
124
  this._focusItem(a);
117
125
  break;
118
126
  }
119
127
  case "ArrowUp": {
120
128
  e.preventDefault();
121
- const a = r > 0 ? r - 1 : t.length - 1;
129
+ const a = i > 0 ? i - 1 : t.length - 1;
122
130
  this._focusItem(a);
123
131
  break;
124
132
  }
125
133
  case "ArrowLeft": {
126
134
  e.preventDefault();
127
- const a = t[r];
135
+ const a = t[i];
128
136
  if (!a) break;
129
137
  if (a.expanded && a.hasChildItems)
130
- a.expanded = !1;
138
+ a.expanded = !1, this._invalidateVisibleItemsCache();
131
139
  else {
132
- const u = (h = a.parentElement) == null ? void 0 : h.closest("hx-tree-item");
140
+ const u = (o = a.parentElement) == null ? void 0 : o.closest("hx-tree-item");
133
141
  if (u) {
134
142
  const v = t.indexOf(u);
135
143
  v >= 0 && this._focusItem(v);
@@ -139,9 +147,9 @@ let d = class extends g {
139
147
  }
140
148
  case "ArrowRight": {
141
149
  e.preventDefault();
142
- const a = t[r];
150
+ const a = t[i];
143
151
  if (!a) break;
144
- a.hasChildItems && (a.expanded ? this._focusItem(r + 1) : a.expanded = !0);
152
+ a.hasChildItems && (a.expanded ? this._focusItem(i + 1) : (a.expanded = !0, this._invalidateVisibleItemsCache()));
145
153
  break;
146
154
  }
147
155
  case "Home": {
@@ -152,20 +160,59 @@ let d = class extends g {
152
160
  e.preventDefault(), this._focusItem(t.length - 1);
153
161
  break;
154
162
  }
163
+ default: {
164
+ if (e.key.length === 1) {
165
+ e.preventDefault();
166
+ const a = this._findTypeaheadMatch(e.key.toLowerCase(), i);
167
+ a !== -1 && this._focusItem(a);
168
+ }
169
+ break;
170
+ }
171
+ }
172
+ }
173
+ /**
174
+ * Finds the next visible item (starting after `currentIndex`, wrapping around) whose
175
+ * label text begins with the given lowercase character. Returns -1 if no match.
176
+ * @internal
177
+ */
178
+ _findTypeaheadMatch(e, t) {
179
+ const i = this._getVisibleItems();
180
+ if (i.length === 0) return -1;
181
+ for (let s = 1; s <= i.length; s++) {
182
+ const r = (t + s) % i.length, n = i[r];
183
+ if (n && n.labelText.toLowerCase().startsWith(e))
184
+ return r;
155
185
  }
186
+ return -1;
156
187
  }
157
188
  /** @internal */
158
189
  _handleFocusIn(e) {
159
190
  e.target === e.currentTarget && this._getVisibleItems().length > 0 && this._focusItem(this._currentIndex);
160
191
  }
192
+ /**
193
+ * Compute and push ARIA position metadata (level, posInSet, setSize, selectable) to all
194
+ * direct hx-tree-item children of a container in a single O(n) pass.
195
+ * Each item also recurses for its own children, building the full tree in O(total-items) total.
196
+ * @internal
197
+ */
198
+ _updateAriaMetadataForContainer(e, t) {
199
+ const i = this.selection === "single" || this.selection === "multiple", s = Array.from(e.children).filter(
200
+ (n) => n.tagName.toLowerCase() === "hx-tree-item"
201
+ ), r = s.length;
202
+ s.forEach((n, o) => {
203
+ n.setAriaMetadata(t, o + 1, r, i), this._updateAriaMetadataForContainer(n, t + 1);
204
+ });
205
+ }
161
206
  /**
162
207
  * Initializes the roving tabindex after items are first slotted in.
163
208
  * Ensures the active item (index 0 by default) has tabindex="0" from the start,
164
209
  * so a Tab into the tree lands directly on the first item without a redirect.
165
210
  * Also updates `_hasVisibleItems` so the container tabindex re-renders correctly.
211
+ * Pushes O(n) ARIA metadata to all items to replace the O(n^2) per-item ancestor walk.
166
212
  */
167
213
  /** @internal */
168
214
  _handleSlotChange() {
215
+ this._invalidateVisibleItemsCache(), this._updateAriaMetadataForContainer(this, 1);
169
216
  const e = this._getVisibleItems();
170
217
  if (this._hasVisibleItems = e.length > 0, e.length === 0) return;
171
218
  const t = Math.min(this._currentIndex, e.length - 1);
@@ -178,14 +225,14 @@ let d = class extends g {
178
225
  // ─── Render ───
179
226
  render() {
180
227
  const e = this._hasVisibleItems ? "-1" : "0";
181
- return f`
228
+ return x`
182
229
  <div
183
230
  part="tree"
184
231
  class="tree"
185
232
  role="tree"
186
233
  tabindex=${e}
187
234
  aria-label=${this.label || "Tree"}
188
- aria-multiselectable=${this.selection === "multiple" ? "true" : "false"}
235
+ aria-multiselectable=${this.selection === "none" ? p : this.selection === "multiple" ? "true" : "false"}
189
236
  @hx-tree-item-select=${this._handleTreeItemSelect}
190
237
  @keydown=${this._handleKeyDown}
191
238
  @focusin=${this._handleFocusIn}
@@ -196,20 +243,20 @@ let d = class extends g {
196
243
  }
197
244
  };
198
245
  d.styles = [y, C];
199
- m([
200
- p({ type: String, reflect: !0 })
246
+ f([
247
+ m({ type: String, reflect: !0 })
201
248
  ], d.prototype, "label", 2);
202
- m([
203
- p({ type: String, reflect: !0 })
249
+ f([
250
+ m({ type: String, reflect: !0 })
204
251
  ], d.prototype, "selection", 2);
205
- m([
252
+ f([
206
253
  c()
207
254
  ], d.prototype, "_currentIndex", 2);
208
- m([
255
+ f([
209
256
  c()
210
257
  ], d.prototype, "_hasVisibleItems", 2);
211
- d = m([
212
- _("hx-tree-view")
258
+ d = f([
259
+ g("hx-tree-view")
213
260
  ], d);
214
261
  const E = b`
215
262
  :host {
@@ -235,7 +282,7 @@ const E = b`
235
282
  gap: var(--hx-tree-item-gap, var(--hx-space-2, 0.5rem));
236
283
  padding: var(--hx-tree-item-padding-y, var(--hx-space-1, 0.25rem))
237
284
  var(--hx-tree-item-padding-x, var(--hx-space-2, 0.5rem));
238
- padding-left: calc(
285
+ padding-inline-start: calc(
239
286
  var(--hx-tree-item-padding-x, var(--hx-space-2, 0.5rem)) + var(--_indent-level, 0) *
240
287
  var(--hx-tree-indent-size, 1.5rem)
241
288
  );
@@ -274,7 +321,7 @@ const E = b`
274
321
  /* ─── Disabled State ─── */
275
322
 
276
323
  :host([disabled]) .item-row {
277
- opacity: 0.4;
324
+ opacity: var(--hx-opacity-disabled, 0.5);
278
325
  cursor: not-allowed;
279
326
  pointer-events: none;
280
327
  }
@@ -389,12 +436,12 @@ const E = b`
389
436
  overflow: hidden;
390
437
  }
391
438
  `;
392
- var $ = Object.defineProperty, A = Object.getOwnPropertyDescriptor, o = (e, t, r, s) => {
393
- for (var i = s > 1 ? void 0 : s ? A(t, r) : t, l = e.length - 1, h; l >= 0; l--)
394
- (h = e[l]) && (i = (s ? h(t, r, i) : h(i)) || i);
395
- return s && i && $(t, r, i), i;
439
+ var $ = Object.defineProperty, A = Object.getOwnPropertyDescriptor, h = (e, t, i, s) => {
440
+ for (var r = s > 1 ? void 0 : s ? A(t, i) : t, n = e.length - 1, o; n >= 0; n--)
441
+ (o = e[n]) && (r = (s ? o(t, i, r) : o(r)) || r);
442
+ return s && r && $(t, i, r), r;
396
443
  };
397
- let n = class extends g {
444
+ let l = class extends _ {
398
445
  constructor() {
399
446
  super(...arguments), this.expanded = !1, this.selected = !1, this.disabled = !1, this._hasChildren = !1, this._rovingActive = !1, this._labelText = "", this._level = 1, this._posInSet = 1, this._setSize = 1, this._selectable = !1;
400
447
  }
@@ -406,6 +453,13 @@ let n = class extends g {
406
453
  get hasChildItems() {
407
454
  return this._hasChildren;
408
455
  }
456
+ /**
457
+ * The text content of the item's label slot, used for typeahead keyboard navigation.
458
+ * Returns an empty string until the label slot has been assigned.
459
+ */
460
+ get labelText() {
461
+ return this._labelText;
462
+ }
409
463
  /**
410
464
  * Recompute all cached ARIA metadata in a single DOM pass.
411
465
  * Called on connect, slotchange, and whenever structural context may change.
@@ -416,21 +470,30 @@ let n = class extends g {
416
470
  for (; t; )
417
471
  t.tagName.toLowerCase() === "hx-tree-item" && e++, t = t.parentElement;
418
472
  this._level = e;
419
- const r = this.parentElement;
420
- if (r) {
421
- const i = Array.from(r.children).filter(
422
- (l) => l.tagName.toLowerCase() === "hx-tree-item"
473
+ const i = this.parentElement;
474
+ if (i) {
475
+ const r = Array.from(i.children).filter(
476
+ (n) => n.tagName.toLowerCase() === "hx-tree-item"
423
477
  );
424
- this._posInSet = i.indexOf(this) + 1, this._setSize = i.length;
478
+ this._posInSet = r.indexOf(this) + 1, this._setSize = r.length;
425
479
  } else
426
480
  this._posInSet = 1, this._setSize = 1;
427
481
  const s = this.closest("hx-tree-view");
428
482
  if (s) {
429
- const i = s.getAttribute("selection");
430
- this._selectable = i === "single" || i === "multiple";
483
+ const r = s.getAttribute("selection");
484
+ this._selectable = r === "single" || r === "multiple";
431
485
  } else
432
486
  this._selectable = !1;
433
487
  }
488
+ /**
489
+ * Set ARIA position metadata from the parent hx-tree-view in a single O(n) pass.
490
+ * Calling this avoids the O(n^2) ancestor-walk + sibling-iteration in _updateAriaMetadata
491
+ * when the parent already knows the layout.
492
+ * @internal
493
+ */
494
+ setAriaMetadata(e, t, i, s) {
495
+ this._level = e, this._posInSet = t, this._setSize = i, this._selectable = s;
496
+ }
434
497
  // ─── Lifecycle ───
435
498
  connectedCallback() {
436
499
  super.connectedCallback(), this._updateAriaMetadata();
@@ -449,8 +512,8 @@ let n = class extends g {
449
512
  * @internal
450
513
  */
451
514
  _handleLabelSlotChange(e) {
452
- const r = e.target.assignedNodes({ flatten: !0 });
453
- this._labelText = r.map((s) => s.textContent ?? "").join("").trim();
515
+ const i = e.target.assignedNodes({ flatten: !0 });
516
+ this._labelText = i.map((s) => s.textContent ?? "").join("").trim();
454
517
  }
455
518
  // ─── Event Handlers ───
456
519
  /**
@@ -513,7 +576,7 @@ let n = class extends g {
513
576
  * @internal
514
577
  */
515
578
  _renderExpandIcon() {
516
- return this._hasChildren ? f`
579
+ return this._hasChildren ? x`
517
580
  <button
518
581
  part="expand-icon"
519
582
  class="expand-btn"
@@ -525,11 +588,11 @@ let n = class extends g {
525
588
  <polyline points="6 4 10 8 6 12" />
526
589
  </svg>
527
590
  </button>
528
- ` : f`<span class="expand-placeholder" aria-hidden="true"></span>`;
591
+ ` : x`<span class="expand-placeholder" aria-hidden="true"></span>`;
529
592
  }
530
593
  render() {
531
- const e = this._hasChildren ? String(this.expanded) : x, t = this._selectable ? String(this.selected) : x;
532
- return f`
594
+ const e = this._hasChildren ? String(this.expanded) : p, t = this._selectable ? String(this.selected) : p;
595
+ return x`
533
596
  <div part="item" class="item">
534
597
  <div
535
598
  part="row"
@@ -538,7 +601,7 @@ let n = class extends g {
538
601
  tabindex=${this._rovingActive ? "0" : "-1"}
539
602
  aria-expanded=${e}
540
603
  aria-selected=${t}
541
- aria-disabled=${this.disabled ? "true" : x}
604
+ aria-disabled=${this.disabled ? "true" : p}
542
605
  aria-level=${this._level}
543
606
  aria-posinset=${this._posInSet}
544
607
  aria-setsize=${this._setSize}
@@ -558,6 +621,7 @@ let n = class extends g {
558
621
  class=${I({ children: !0, "children--expanded": this.expanded })}
559
622
  role="group"
560
623
  aria-label=${this._labelText ? `${this._labelText} children` : "children"}
624
+ aria-hidden=${!this.expanded || p}
561
625
  >
562
626
  <div class="children-inner">
563
627
  <slot name="children" @slotchange=${this._handleChildrenSlotChange}></slot>
@@ -567,45 +631,45 @@ let n = class extends g {
567
631
  `;
568
632
  }
569
633
  };
570
- n.styles = [y, E];
571
- o([
572
- p({ type: Boolean, reflect: !0 })
573
- ], n.prototype, "expanded", 2);
574
- o([
575
- p({ type: Boolean, reflect: !0 })
576
- ], n.prototype, "selected", 2);
577
- o([
578
- p({ type: Boolean, reflect: !0 })
579
- ], n.prototype, "disabled", 2);
580
- o([
634
+ l.styles = [y, E];
635
+ h([
636
+ m({ type: Boolean, reflect: !0 })
637
+ ], l.prototype, "expanded", 2);
638
+ h([
639
+ m({ type: Boolean, reflect: !0 })
640
+ ], l.prototype, "selected", 2);
641
+ h([
642
+ m({ type: Boolean, reflect: !0 })
643
+ ], l.prototype, "disabled", 2);
644
+ h([
581
645
  c()
582
- ], n.prototype, "_hasChildren", 2);
583
- o([
646
+ ], l.prototype, "_hasChildren", 2);
647
+ h([
584
648
  c()
585
- ], n.prototype, "_rovingActive", 2);
586
- o([
649
+ ], l.prototype, "_rovingActive", 2);
650
+ h([
587
651
  c()
588
- ], n.prototype, "_labelText", 2);
589
- o([
652
+ ], l.prototype, "_labelText", 2);
653
+ h([
590
654
  c()
591
- ], n.prototype, "_level", 2);
592
- o([
655
+ ], l.prototype, "_level", 2);
656
+ h([
593
657
  c()
594
- ], n.prototype, "_posInSet", 2);
595
- o([
658
+ ], l.prototype, "_posInSet", 2);
659
+ h([
596
660
  c()
597
- ], n.prototype, "_setSize", 2);
598
- o([
661
+ ], l.prototype, "_setSize", 2);
662
+ h([
599
663
  c()
600
- ], n.prototype, "_selectable", 2);
601
- o([
664
+ ], l.prototype, "_selectable", 2);
665
+ h([
602
666
  w(".item-row")
603
- ], n.prototype, "_itemRowEl", 2);
604
- n = o([
605
- _("hx-tree-item")
606
- ], n);
667
+ ], l.prototype, "_itemRowEl", 2);
668
+ l = h([
669
+ g("hx-tree-item")
670
+ ], l);
607
671
  export {
608
- n as H,
672
+ l as H,
609
673
  d as a
610
674
  };
611
- //# sourceMappingURL=hx-tree-item-BP6UF_H1.js.map
675
+ //# sourceMappingURL=hx-tree-item-C1PhX-HE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hx-tree-item-C1PhX-HE.js","sources":["../../src/components/hx-tree-view/hx-tree-view.styles.ts","../../src/components/hx-tree-view/hx-tree-view.ts","../../src/components/hx-tree-view/hx-tree-item.styles.ts","../../src/components/hx-tree-view/hx-tree-item.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixTreeViewStyles = css`\n :host {\n display: block;\n contain: layout style;\n font-family: var(--hx-tree-font-family, var(--hx-font-family-sans, sans-serif));\n }\n\n * {\n box-sizing: border-box;\n }\n\n .tree {\n display: block;\n outline: none;\n }\n\n .tree:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid\n var(--hx-focus-ring-color, var(--hx-color-primary-400, #60a5fa));\n outline-offset: var(--hx-focus-ring-offset, 2px);\n border-radius: var(--hx-border-radius-sm, 0.25rem);\n }\n`;\n","import { LitElement, html, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { tokenStyles } from '@helixui/tokens/lit';\nimport { helixTreeViewStyles } from './hx-tree-view.styles.js';\nimport type { HelixTreeItem, HxTreeItemSelectDetail } from './hx-tree-item.js';\nimport { devWarn } from '../../utils/dev-warn.js';\n\n/** Selection mode for the tree. */\nexport type TreeSelection = 'none' | 'single' | 'multiple';\n\n/** Detail type for the `hx-select` event. */\nexport interface HxSelectDetail {\n /** The tree item that was selected or deselected. */\n item: HelixTreeItem;\n /** Whether the item is now selected. */\n selected: boolean;\n}\n\n/**\n * A hierarchical tree component for navigating nested data structures.\n * Used in healthcare applications for org charts, ICD-10 code hierarchies, and department navigation.\n *\n * Implements WAI-ARIA tree view pattern with `role=\"tree\"` on the container\n * and `role=\"treeitem\"` on each item. Supports `aria-label` via the `label` property\n * for screen reader identification. Full keyboard navigation: Arrow keys for movement,\n * Enter/Space for selection, Home/End for first/last item.\n *\n * ## Scale Limits\n *\n * This component renders all tree items simultaneously in the DOM. It is suitable for\n * trees with up to ~500 visible items. For large taxonomies (e.g., ICD-10 with 70,000+\n * codes), use async/lazy loading: only render top-level nodes initially and populate\n * child nodes on `hx-select` or expand events. The component exposes the `expanded`\n * property on `hx-tree-item` for programmatic control of subtrees, enabling consumer-level\n * virtualization strategies without requiring changes to this component.\n *\n * @summary Hierarchical tree view with expand/collapse and keyboard navigation.\n *\n * @tag hx-tree-view\n *\n * @slot - Default slot for hx-tree-item elements.\n *\n * @fires {CustomEvent<HxSelectDetail>} hx-select - Dispatched when a tree item is selected or deselected.\n *\n * @csspart tree - The tree container element with role=\"tree\".\n *\n * @cssprop [--hx-tree-font-family=var(--hx-font-family-sans)] - Tree font family.\n */\n@customElement('hx-tree-view')\nexport class HelixTreeView extends LitElement {\n static override styles = [tokenStyles, helixTreeViewStyles];\n\n // ─── Properties ───\n\n /**\n * Accessible label for the tree. Applied as `aria-label` on the tree container.\n * Provides context to screen readers about the tree's purpose.\n * @attr label\n */\n @property({ type: String, reflect: true })\n label = '';\n\n /**\n * Selection mode for the tree.\n * - `none` — items cannot be selected\n * - `single` — only one item can be selected at a time\n * - `multiple` — multiple items can be selected\n * @attr selection\n */\n @property({ type: String, reflect: true })\n selection: 'none' | 'single' | 'multiple' = 'none';\n\n // ─── Internal State ───\n\n /** @internal */\n @state() private _currentIndex = 0;\n\n /** Tracks whether the tree has any visible items, to decide the container tabindex. */\n /** @internal */\n @state() private _hasVisibleItems = false;\n\n // ─── Visible items cache ───\n\n /**\n * Cached flat list of visible items (depth-first, respects collapsed nodes).\n * Set to null to invalidate; rebuilt on next access.\n * @internal\n */\n private _cachedVisibleItems: HelixTreeItem[] | null = null;\n\n /**\n * Invalidate the visible-items cache. Call after any expand/collapse or structural change.\n * @internal\n */\n private _invalidateVisibleItemsCache(): void {\n this._cachedVisibleItems = null;\n }\n\n // ─── Internal Helpers ───\n\n /**\n * Returns a flat ordered list of all visible (not inside a collapsed item) hx-tree-items\n * in depth-first order. Result is cached; invalidated on expand/collapse/slotchange.\n */\n /** @internal */\n private _getVisibleItems(): HelixTreeItem[] {\n if (!this._cachedVisibleItems) {\n this._cachedVisibleItems = this._collectVisibleItems(this);\n }\n return this._cachedVisibleItems;\n }\n\n /** @internal */\n private _collectVisibleItems(container: Element): HelixTreeItem[] {\n const items: HelixTreeItem[] = [];\n for (const child of Array.from(container.children)) {\n if (child.tagName.toLowerCase() === 'hx-tree-item') {\n const item = child as HelixTreeItem;\n items.push(item);\n if (item.expanded) {\n items.push(...this._collectVisibleItems(item));\n }\n } else {\n items.push(...this._collectVisibleItems(child));\n }\n }\n return items;\n }\n\n /** @internal */\n private _getSelectedItems(): HelixTreeItem[] {\n return Array.from(this.querySelectorAll<HelixTreeItem>('hx-tree-item[selected]'));\n }\n\n /**\n * Updates the roving tabindex across all visible items so that only the\n * item at `activeIndex` has `tabindex=\"0\"`. All others receive `tabindex=\"-1\"`.\n * This is called whenever the active item changes (navigation, initial render).\n */\n /** @internal */\n private _updateRovingTabindex(items: HelixTreeItem[], activeIndex: number): void {\n items.forEach((item, i) => {\n item.setRovingActive(i === activeIndex);\n });\n }\n\n /** @internal */\n private _focusItem(index: number): void {\n const items = this._getVisibleItems();\n if (items.length === 0) return;\n const clamped = Math.max(0, Math.min(index, items.length - 1));\n this._currentIndex = clamped;\n this._updateRovingTabindex(items, clamped);\n items[clamped]?.focus();\n }\n\n // ─── Event Handling ───\n\n /** @internal */\n private _handleTreeItemSelect(e: Event): void {\n if (!(e instanceof CustomEvent)) return;\n const event = e as CustomEvent<HxTreeItemSelectDetail>;\n const item = event.detail.item;\n\n if (this.selection === 'none') return;\n\n if (this.selection === 'single') {\n const wasSelected = item.selected;\n this._getSelectedItems().forEach((i) => {\n i.selected = false;\n });\n item.selected = !wasSelected;\n } else if (this.selection === 'multiple') {\n item.selected = !item.selected;\n }\n\n this.dispatchEvent(\n new CustomEvent<HxSelectDetail>('hx-select', {\n bubbles: true,\n composed: true,\n detail: { item, selected: item.selected },\n }),\n );\n }\n\n /** @internal */\n private _handleKeyDown(e: KeyboardEvent): void {\n const items = this._getVisibleItems();\n if (items.length === 0) return;\n\n let currentIndex = this._currentIndex;\n const focused = document.activeElement;\n\n for (let i = 0; i < items.length; i++) {\n if (items[i] === focused || items[i]?.shadowRoot?.activeElement) {\n currentIndex = i;\n break;\n }\n }\n\n switch (e.key) {\n case 'ArrowDown': {\n e.preventDefault();\n // Intentional design: wrap-around from last to first item provides\n // a continuous navigation loop, consistent with the component's\n // circular keyboard navigation model.\n const next = currentIndex < items.length - 1 ? currentIndex + 1 : 0;\n this._focusItem(next);\n break;\n }\n case 'ArrowUp': {\n e.preventDefault();\n // Intentional design: wrap-around from first to last item (see ArrowDown note).\n const prev = currentIndex > 0 ? currentIndex - 1 : items.length - 1;\n this._focusItem(prev);\n break;\n }\n case 'ArrowLeft': {\n e.preventDefault();\n const currentItem = items[currentIndex];\n if (!currentItem) break;\n if (currentItem.expanded && currentItem.hasChildItems) {\n currentItem.expanded = false;\n this._invalidateVisibleItemsCache();\n } else {\n const parentItem = currentItem.parentElement?.closest('hx-tree-item') as\n | HelixTreeItem\n | undefined;\n if (parentItem) {\n const parentIndex = items.indexOf(parentItem);\n if (parentIndex >= 0) {\n this._focusItem(parentIndex);\n }\n }\n }\n break;\n }\n case 'ArrowRight': {\n e.preventDefault();\n const currentItem = items[currentIndex];\n if (!currentItem) break;\n if (currentItem.hasChildItems) {\n if (!currentItem.expanded) {\n currentItem.expanded = true;\n this._invalidateVisibleItemsCache();\n } else {\n this._focusItem(currentIndex + 1);\n }\n }\n break;\n }\n case 'Home': {\n e.preventDefault();\n this._focusItem(0);\n break;\n }\n case 'End': {\n e.preventDefault();\n this._focusItem(items.length - 1);\n break;\n }\n default: {\n // WAI-ARIA APG typeahead: a printable character moves focus to the next visible\n // item whose label starts with that character (case-insensitive).\n if (e.key.length === 1) {\n e.preventDefault();\n const matchIndex = this._findTypeaheadMatch(e.key.toLowerCase(), currentIndex);\n if (matchIndex !== -1) {\n this._focusItem(matchIndex);\n }\n }\n break;\n }\n }\n }\n\n /**\n * Finds the next visible item (starting after `currentIndex`, wrapping around) whose\n * label text begins with the given lowercase character. Returns -1 if no match.\n * @internal\n */\n private _findTypeaheadMatch(char: string, currentIndex: number): number {\n const items = this._getVisibleItems();\n if (items.length === 0) return -1;\n for (let i = 1; i <= items.length; i++) {\n const index = (currentIndex + i) % items.length;\n const item = items[index];\n if (item && item.labelText.toLowerCase().startsWith(char)) {\n return index;\n }\n }\n return -1;\n }\n\n /** @internal */\n private _handleFocusIn(e: FocusEvent): void {\n // With roving tabindex, the tree container (tabindex=\"-1\") should only receive\n // focus when the tree is empty. If focus does land on the container (e.g. the\n // tree is empty or programmatic focus), redirect to the active item if present.\n if (e.target === e.currentTarget) {\n const items = this._getVisibleItems();\n if (items.length > 0) {\n this._focusItem(this._currentIndex);\n }\n }\n }\n\n /**\n * Compute and push ARIA position metadata (level, posInSet, setSize, selectable) to all\n * direct hx-tree-item children of a container in a single O(n) pass.\n * Each item also recurses for its own children, building the full tree in O(total-items) total.\n * @internal\n */\n private _updateAriaMetadataForContainer(container: Element, level: number): void {\n const selectable = this.selection === 'single' || this.selection === 'multiple';\n const children = Array.from(container.children).filter(\n (c) => c.tagName.toLowerCase() === 'hx-tree-item',\n ) as HelixTreeItem[];\n const setSize = children.length;\n children.forEach((item, index) => {\n item.setAriaMetadata(level, index + 1, setSize, selectable);\n // Recurse into child items so the full tree is updated in one traversal\n this._updateAriaMetadataForContainer(item, level + 1);\n });\n }\n\n /**\n * Initializes the roving tabindex after items are first slotted in.\n * Ensures the active item (index 0 by default) has tabindex=\"0\" from the start,\n * so a Tab into the tree lands directly on the first item without a redirect.\n * Also updates `_hasVisibleItems` so the container tabindex re-renders correctly.\n * Pushes O(n) ARIA metadata to all items to replace the O(n^2) per-item ancestor walk.\n */\n /** @internal */\n private _handleSlotChange(): void {\n this._invalidateVisibleItemsCache();\n // Push ARIA metadata from parent in a single O(n) traversal\n this._updateAriaMetadataForContainer(this, 1);\n const items = this._getVisibleItems();\n this._hasVisibleItems = items.length > 0;\n if (items.length === 0) return;\n // Clamp _currentIndex in case items were removed.\n const clamped = Math.min(this._currentIndex, items.length - 1);\n this._currentIndex = clamped;\n this._updateRovingTabindex(items, clamped);\n }\n\n // ─── Lifecycle ───\n\n override firstUpdated(): void {\n if (!this.label) {\n devWarn(\n 'hx-tree-view',\n 'No accessible label provided. Set the `label` attribute on hx-tree-view so screen readers can identify this tree (WCAG 4.1.2).',\n );\n }\n }\n\n // ─── Render ───\n\n override render() {\n // Roving tabindex pattern (WCAG 2.4.3 Fix):\n // The tree container is NOT a Tab stop (tabindex=\"-1\"). Tab focus goes\n // directly to the active item, which carries tabindex=\"0\". The container\n // is only a landing target (tabindex=\"0\") when the tree is empty.\n const containerTabindex = this._hasVisibleItems ? '-1' : '0';\n\n return html`\n <div\n part=\"tree\"\n class=\"tree\"\n role=\"tree\"\n tabindex=${containerTabindex}\n aria-label=${this.label || 'Tree'}\n aria-multiselectable=${this.selection === 'none'\n ? nothing\n : this.selection === 'multiple'\n ? 'true'\n : 'false'}\n @hx-tree-item-select=${this._handleTreeItemSelect}\n @keydown=${this._handleKeyDown}\n @focusin=${this._handleFocusIn}\n >\n <slot @slotchange=${this._handleSlotChange}></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-tree-view': HelixTreeView;\n }\n}\n\n/** Canonical type alias for HelixTreeView. Use this when typing hx-tree-view element references. */\nexport type HxTreeView = HelixTreeView;\n\n/** @deprecated Use {@link HxTreeView} instead. The `Wc` prefix was a legacy naming convention. */\nexport type WcTreeView = HelixTreeView;\n","import { css } from 'lit';\n\nexport const helixTreeItemStyles = css`\n :host {\n display: block;\n contain: layout style;\n }\n\n * {\n box-sizing: border-box;\n }\n\n /* ─── Item Container ─── */\n\n .item {\n display: block;\n }\n\n /* ─── Item Row ─── */\n\n .item-row {\n display: flex;\n align-items: center;\n gap: var(--hx-tree-item-gap, var(--hx-space-2, 0.5rem));\n padding: var(--hx-tree-item-padding-y, var(--hx-space-1, 0.25rem))\n var(--hx-tree-item-padding-x, var(--hx-space-2, 0.5rem));\n padding-inline-start: calc(\n var(--hx-tree-item-padding-x, var(--hx-space-2, 0.5rem)) + var(--_indent-level, 0) *\n var(--hx-tree-indent-size, 1.5rem)\n );\n border-radius: var(--hx-tree-item-border-radius, var(--hx-border-radius-sm, 0.25rem));\n cursor: pointer;\n outline: none;\n color: var(--hx-tree-item-color, var(--hx-color-neutral-900, #111827));\n font-family: var(--hx-tree-item-font-family, var(--hx-font-family-sans, sans-serif));\n font-size: var(--hx-tree-item-font-size, var(--hx-font-size-sm, 0.875rem));\n line-height: var(--hx-line-height-normal, 1.5);\n transition: background-color var(--hx-transition-fast, 150ms ease);\n user-select: none;\n }\n\n .item-row:hover {\n background-color: var(--hx-tree-item-hover-bg, var(--hx-color-neutral-100, #f3f4f6));\n }\n\n .item-row:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid\n var(--hx-tree-item-focus-ring-color, var(--hx-focus-ring-color, var(--hx-color-primary-500)));\n outline-offset: var(--hx-focus-ring-offset, -2px);\n }\n\n /* ─── Selected State ─── */\n\n :host([selected]) .item-row {\n background-color: var(--hx-tree-item-selected-bg, var(--hx-color-primary-100, #dbeafe));\n color: var(--hx-tree-item-selected-color, var(--hx-color-primary-800, #1e40af));\n }\n\n :host([selected]) .item-row:hover {\n background-color: var(--hx-tree-item-selected-hover-bg, var(--hx-color-primary-200, #bfdbfe));\n }\n\n /* ─── Disabled State ─── */\n\n :host([disabled]) .item-row {\n opacity: var(--hx-opacity-disabled, 0.5);\n cursor: not-allowed;\n pointer-events: none;\n }\n\n /* ─── Expand Icon ─── */\n\n .expand-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: var(--hx-space-4, 1rem);\n height: var(--hx-space-4, 1rem);\n }\n\n .expand-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--hx-space-4, 1rem);\n height: var(--hx-space-4, 1rem);\n padding: 0;\n border: none;\n background: transparent;\n color: var(--hx-tree-item-expand-icon-color, var(--hx-color-neutral-500, #6b7280));\n cursor: pointer;\n border-radius: var(--hx-border-radius-sm, 0.25rem);\n transition: transform var(--hx-transition-fast, 150ms ease);\n pointer-events: auto;\n }\n\n .expand-btn:hover {\n background-color: var(\n --hx-tree-item-expand-hover-bg,\n var(--hx-overlay-black-6, rgba(0, 0, 0, 0.06))\n );\n }\n\n .expand-btn:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid\n var(--hx-tree-item-focus-ring-color, var(--hx-focus-ring-color, var(--hx-color-primary-500)));\n outline-offset: var(--hx-focus-ring-offset, 2px);\n }\n\n .expand-btn svg {\n width: var(--hx-space-3, 0.75rem);\n height: var(--hx-space-3, 0.75rem);\n stroke: currentColor;\n fill: none;\n stroke-width: 2;\n stroke-linecap: round;\n stroke-linejoin: round;\n transition: transform var(--hx-transition-fast, 150ms ease);\n }\n\n :host([expanded]) .expand-btn svg {\n transform: rotate(90deg);\n }\n\n .expand-placeholder {\n display: block;\n width: var(--hx-space-4, 1rem);\n flex-shrink: 0;\n }\n\n /* ─── Icon Slot ─── */\n\n .item-icon {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n color: var(--hx-tree-item-icon-color, var(--hx-color-neutral-500, #6b7280));\n }\n\n .item-icon:empty {\n display: none;\n }\n\n /* ─── Label ─── */\n\n .item-label {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n /* ─── Children (animated) ─── */\n\n .children {\n display: grid;\n grid-template-rows: 0fr;\n transition: grid-template-rows var(--hx-transition-base, 200ms ease);\n --_indent-level: calc(var(--_indent-level, 0) + 1);\n }\n\n .children--expanded {\n grid-template-rows: 1fr;\n }\n\n @media (prefers-reduced-motion: reduce) {\n .item-row,\n .expand-btn,\n .expand-btn svg,\n .children {\n transition: none;\n }\n }\n\n .children-inner {\n overflow: hidden;\n }\n`;\n","import { LitElement, html, nothing } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { tokenStyles } from '@helixui/tokens/lit';\nimport { helixTreeItemStyles } from './hx-tree-item.styles.js';\n\n/** Detail type for the `hx-tree-item-select` event. */\nexport interface HxTreeItemSelectDetail {\n /** The tree item that was selected or activated. */\n item: HelixTreeItem;\n}\n\n/**\n * A tree item used within an hx-tree-view component.\n * Supports expand/collapse, selection, keyboard navigation, and icon/children slots.\n *\n * @summary Individual item within an hx-tree-view hierarchical tree.\n *\n * @tag hx-tree-item\n *\n * @slot - Default slot for the item label content. This text is also used to label the children group.\n * @slot icon - Custom icon shown before the label.\n * @slot children - Nested hx-tree-item elements for sub-tree.\n *\n * @csspart item - The outer item container.\n * @csspart row - The interactive item row (contains expand icon, icon slot, and label).\n * @csspart expand-icon - The expand/collapse toggle button.\n * @csspart label - The label text content area.\n * @csspart children - The children container.\n *\n * @cssprop [--hx-tree-item-color=var(--hx-color-neutral-900)] - Item text color.\n * @cssprop [--hx-tree-item-hover-bg=var(--hx-color-neutral-100)] - Hover background color.\n * @cssprop [--hx-tree-item-selected-bg=var(--hx-color-primary-100)] - Selected background color.\n * @cssprop [--hx-tree-item-selected-color=var(--hx-color-primary-800)] - Selected text color.\n * @cssprop [--hx-tree-item-padding-x=var(--hx-space-2)] - Horizontal padding.\n * @cssprop [--hx-tree-item-padding-y=var(--hx-space-1)] - Vertical padding.\n * @cssprop [--hx-tree-indent-size=1.5rem] - Indentation size per level.\n *\n * @fires {CustomEvent<HxTreeItemSelectDetail>} hx-tree-item-select - Dispatched when this item is clicked or activated via keyboard.\n */\n@customElement('hx-tree-item')\nexport class HelixTreeItem extends LitElement {\n static override styles = [tokenStyles, helixTreeItemStyles];\n\n // ─── Properties ───\n\n /**\n * Whether the item is expanded (showing children).\n * @attr expanded\n */\n @property({ type: Boolean, reflect: true })\n expanded = false;\n\n /**\n * Whether the item is selected.\n * @attr selected\n */\n @property({ type: Boolean, reflect: true })\n selected = false;\n\n /**\n * Whether the item is disabled (non-interactive).\n * @attr disabled\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n // ─── Internal State ───\n\n /**\n * Tracks whether any elements are assigned to the children slot, controlling expand icon visibility.\n * @internal\n */\n @state() private _hasChildren = false;\n\n /**\n * Whether this item is the roving-tabindex active item in the tree.\n * @internal\n */\n @state() private _rovingActive = false;\n\n /**\n * Text content from the default slot, used to label the children group for screen readers.\n * @internal\n */\n @state() private _labelText = '';\n\n /**\n * Cached ARIA position metadata. Computed once on connect and on slotchange\n * of the parent container, avoiding repeated DOM traversal on every render.\n * @internal\n */\n @state() private _level = 1;\n /**\n * One-based position of this item within its sibling set, set as aria-posinset.\n * @internal\n */\n @state() private _posInSet = 1;\n /**\n * Total count of sibling hx-tree-item elements at the same level, set as aria-setsize.\n * @internal\n */\n @state() private _setSize = 1;\n /**\n * Whether the owning hx-tree-view supports item selection (single or multiple mode).\n * @internal\n */\n @state() private _selectable = false;\n\n /** @internal */\n @query('.item-row') private _itemRowEl!: HTMLElement | null;\n\n // ─── Computed ARIA ───\n\n /**\n * Whether this item has slotted children.\n * @returns True if one or more elements are assigned to the children slot.\n */\n get hasChildItems(): boolean {\n return this._hasChildren;\n }\n\n /**\n * The text content of the item's label slot, used for typeahead keyboard navigation.\n * Returns an empty string until the label slot has been assigned.\n */\n get labelText(): string {\n return this._labelText;\n }\n\n /**\n * Recompute all cached ARIA metadata in a single DOM pass.\n * Called on connect, slotchange, and whenever structural context may change.\n * @internal\n */\n private _updateAriaMetadata(): void {\n // Compute nesting level by counting ancestor hx-tree-item elements.\n let level = 1;\n let el: Element | null = this.parentElement;\n while (el) {\n if (el.tagName.toLowerCase() === 'hx-tree-item') level++;\n el = el.parentElement;\n }\n this._level = level;\n\n // Compute position-in-set and set-size from sibling hx-tree-item elements.\n const parent = this.parentElement;\n if (parent) {\n const siblings = Array.from(parent.children).filter(\n (c) => c.tagName.toLowerCase() === 'hx-tree-item',\n );\n this._posInSet = siblings.indexOf(this) + 1;\n this._setSize = siblings.length;\n } else {\n this._posInSet = 1;\n this._setSize = 1;\n }\n\n // Determine if the owning tree supports selection.\n const tree = this.closest('hx-tree-view');\n if (tree) {\n const selection = tree.getAttribute('selection');\n this._selectable = selection === 'single' || selection === 'multiple';\n } else {\n this._selectable = false;\n }\n }\n\n /**\n * Set ARIA position metadata from the parent hx-tree-view in a single O(n) pass.\n * Calling this avoids the O(n^2) ancestor-walk + sibling-iteration in _updateAriaMetadata\n * when the parent already knows the layout.\n * @internal\n */\n setAriaMetadata(level: number, posInSet: number, setSize: number, selectable: boolean): void {\n this._level = level;\n this._posInSet = posInSet;\n this._setSize = setSize;\n this._selectable = selectable;\n }\n\n // ─── Lifecycle ───\n\n override connectedCallback(): void {\n super.connectedCallback();\n this._updateAriaMetadata();\n }\n\n // ─── Children Detection ───\n\n /**\n * Updates _hasChildren and recomputes ARIA metadata when the children slot assignment changes.\n * @internal\n */\n private _handleChildrenSlotChange(e: Event): void {\n const slot = e.target as HTMLSlotElement;\n this._hasChildren = slot.assignedElements().length > 0;\n this._updateAriaMetadata();\n }\n\n /**\n * Captures the text content from the default (label) slot for use on the children group label.\n * @internal\n */\n private _handleLabelSlotChange(e: Event): void {\n const slot = e.target as HTMLSlotElement;\n const nodes = slot.assignedNodes({ flatten: true });\n this._labelText = nodes\n .map((n) => n.textContent ?? '')\n .join('')\n .trim();\n }\n\n // ─── Event Handlers ───\n\n /**\n * Toggles the expanded state when the expand/collapse button is clicked, stopping event propagation.\n * @internal\n */\n private _handleExpandClick(e: Event): void {\n e.stopPropagation();\n if (this.disabled) return;\n this.expanded = !this.expanded;\n }\n\n /**\n * Dispatches the hx-tree-item-select event when the item is activated via click or keyboard.\n * @internal\n */\n private _handleRowClick(): void {\n if (this.disabled) return;\n this.dispatchEvent(\n new CustomEvent<HxTreeItemSelectDetail>('hx-tree-item-select', {\n bubbles: true,\n composed: true,\n detail: { item: this },\n }),\n );\n }\n\n /**\n * Handles keyboard interaction for the tree item, including expand/collapse, activation, and delegation of list-navigation keys to the parent tree.\n * @internal\n */\n private _handleKeyDown(e: KeyboardEvent): void {\n if (this.disabled) return;\n\n switch (e.key) {\n case 'ArrowRight':\n e.preventDefault();\n if (this._hasChildren && !this.expanded) {\n this.expanded = true;\n }\n break;\n case 'ArrowLeft':\n e.preventDefault();\n if (this._hasChildren && this.expanded) {\n this.expanded = false;\n }\n break;\n case 'Enter':\n case ' ':\n e.preventDefault();\n this._handleRowClick();\n break;\n case 'ArrowDown':\n case 'ArrowUp':\n case 'Home':\n case 'End':\n // Bubble up to hx-tree-view for navigation\n break;\n }\n }\n\n // ─── Public API ───\n\n /**\n * Sets the roving tabindex state for this item.\n * When `active` is true, the item row gets `tabindex=\"0\"` making it the\n * Tab-reachable item in the tree. All other items should be set to false.\n * Called by the parent hx-tree-view to manage the roving tabindex pattern.\n */\n setRovingActive(active: boolean): void {\n this._rovingActive = active;\n }\n\n /** Focus this item's interactive row element. */\n override focus(): void {\n this._itemRowEl?.focus();\n }\n\n // ─── Render ───\n\n /**\n * Renders the expand/collapse chevron button, or a placeholder span when the item has no children.\n * @internal\n */\n private _renderExpandIcon() {\n if (!this._hasChildren) {\n return html`<span class=\"expand-placeholder\" aria-hidden=\"true\"></span>`;\n }\n return html`\n <button\n part=\"expand-icon\"\n class=\"expand-btn\"\n tabindex=\"-1\"\n aria-label=\"${this.expanded ? 'Collapse' : 'Expand'}\"\n @click=${this._handleExpandClick}\n >\n <svg viewBox=\"0 0 16 16\" aria-hidden=\"true\">\n <polyline points=\"6 4 10 8 6 12\" />\n </svg>\n </button>\n `;\n }\n\n override render() {\n const ariaExpanded = this._hasChildren ? String(this.expanded) : nothing;\n const ariaSelected = this._selectable ? String(this.selected) : nothing;\n\n return html`\n <div part=\"item\" class=\"item\">\n <div\n part=\"row\"\n class=\"item-row\"\n role=\"treeitem\"\n tabindex=${this._rovingActive ? '0' : '-1'}\n aria-expanded=${ariaExpanded}\n aria-selected=${ariaSelected}\n aria-disabled=${this.disabled ? 'true' : nothing}\n aria-level=${this._level}\n aria-posinset=${this._posInSet}\n aria-setsize=${this._setSize}\n @click=${this._handleRowClick}\n @keydown=${this._handleKeyDown}\n >\n ${this._renderExpandIcon()}\n <span class=\"item-icon\">\n <slot name=\"icon\"></slot>\n </span>\n <span part=\"label\" class=\"item-label\">\n <slot @slotchange=${this._handleLabelSlotChange}></slot>\n </span>\n </div>\n <div\n part=\"children\"\n class=${classMap({ children: true, 'children--expanded': this.expanded })}\n role=\"group\"\n aria-label=${this._labelText ? `${this._labelText} children` : 'children'}\n aria-hidden=${!this.expanded || nothing}\n >\n <div class=\"children-inner\">\n <slot name=\"children\" @slotchange=${this._handleChildrenSlotChange}></slot>\n </div>\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-tree-item': HelixTreeItem;\n }\n}\n\n/** Canonical type alias for HelixTreeItem. Use this when typing hx-tree-item element references. */\nexport type HxTreeItem = HelixTreeItem;\n\n/** @deprecated Use {@link HxTreeItem} instead. The `Wc` prefix was a legacy naming convention. */\nexport type WcTreeItem = HelixTreeItem;\n"],"names":["helixTreeViewStyles","css","HelixTreeView","LitElement","container","items","child","item","activeIndex","i","index","clamped","_a","wasSelected","currentIndex","focused","_b","next","prev","currentItem","parentItem","_c","parentIndex","matchIndex","char","level","selectable","children","c","setSize","containerTabindex","html","nothing","tokenStyles","__decorateClass","property","state","customElement","helixTreeItemStyles","HelixTreeItem","el","parent","siblings","tree","selection","posInSet","slot","nodes","n","active","ariaExpanded","ariaSelected","classMap","query"],"mappings":"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"}