@helixui/library 1.1.1 → 1.1.2-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (620) hide show
  1. package/custom-elements.json +7475 -6560
  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-alert/hx-alert.d.ts +18 -10
  18. package/dist/components/hx-alert/hx-alert.d.ts.map +1 -1
  19. package/dist/components/hx-alert/hx-alert.styles.d.ts.map +1 -1
  20. package/dist/components/hx-alert/index.js +1 -1
  21. package/dist/components/hx-avatar/index.js +1 -1
  22. package/dist/components/hx-badge/hx-badge.d.ts.map +1 -1
  23. package/dist/components/hx-badge/hx-badge.styles.d.ts.map +1 -1
  24. package/dist/components/hx-badge/index.js +1 -1
  25. package/dist/components/hx-banner/hx-banner.d.ts +15 -5
  26. package/dist/components/hx-banner/hx-banner.d.ts.map +1 -1
  27. package/dist/components/hx-banner/hx-banner.styles.d.ts.map +1 -1
  28. package/dist/components/hx-banner/index.js +1 -1
  29. package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts +7 -2
  30. package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts.map +1 -1
  31. package/dist/components/hx-breadcrumb/index.js +1 -1
  32. package/dist/components/hx-button/hx-button.d.ts +11 -8
  33. package/dist/components/hx-button/hx-button.d.ts.map +1 -1
  34. package/dist/components/hx-button/hx-button.styles.d.ts.map +1 -1
  35. package/dist/components/hx-button/index.js +1 -1
  36. package/dist/components/hx-button-group/hx-button-group.d.ts +3 -6
  37. package/dist/components/hx-button-group/hx-button-group.d.ts.map +1 -1
  38. package/dist/components/hx-button-group/index.js +1 -1
  39. package/dist/components/hx-card/hx-card.d.ts +7 -7
  40. package/dist/components/hx-card/hx-card.d.ts.map +1 -1
  41. package/dist/components/hx-card/index.js +1 -1
  42. package/dist/components/hx-carousel/hx-carousel.d.ts +2 -2
  43. package/dist/components/hx-carousel/index.js +1 -1
  44. package/dist/components/hx-checkbox/hx-checkbox.d.ts +18 -18
  45. package/dist/components/hx-checkbox/hx-checkbox.d.ts.map +1 -1
  46. package/dist/components/hx-checkbox/hx-checkbox.styles.d.ts.map +1 -1
  47. package/dist/components/hx-checkbox/index.js +1 -1
  48. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts +8 -3
  49. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts.map +1 -1
  50. package/dist/components/hx-checkbox-group/index.js +1 -1
  51. package/dist/components/hx-clinical-status/hx-clinical-status.d.ts +126 -0
  52. package/dist/components/hx-clinical-status/hx-clinical-status.d.ts.map +1 -0
  53. package/dist/components/hx-clinical-status/hx-clinical-status.styles.d.ts +2 -0
  54. package/dist/components/hx-clinical-status/hx-clinical-status.styles.d.ts.map +1 -0
  55. package/dist/components/hx-clinical-status/index.d.ts +3 -0
  56. package/dist/components/hx-clinical-status/index.d.ts.map +1 -0
  57. package/dist/components/hx-clinical-status/index.js +5 -0
  58. package/dist/components/hx-clinical-status/index.js.map +1 -0
  59. package/dist/components/hx-code-snippet/hx-code-snippet.styles.d.ts.map +1 -1
  60. package/dist/components/hx-code-snippet/index.js +1 -1
  61. package/dist/components/hx-color-picker/color-utils.d.ts +27 -0
  62. package/dist/components/hx-color-picker/color-utils.d.ts.map +1 -0
  63. package/dist/components/hx-color-picker/hx-color-picker.d.ts +16 -4
  64. package/dist/components/hx-color-picker/hx-color-picker.d.ts.map +1 -1
  65. package/dist/components/hx-color-picker/index.js +1 -1
  66. package/dist/components/hx-combobox/hx-combobox.d.ts +4 -4
  67. package/dist/components/hx-combobox/hx-combobox.d.ts.map +1 -1
  68. package/dist/components/hx-combobox/hx-combobox.styles.d.ts.map +1 -1
  69. package/dist/components/hx-combobox/index.js +1 -1
  70. package/dist/components/hx-container/index.js +1 -1
  71. package/dist/components/hx-copy-button/hx-copy-button.d.ts +6 -1
  72. package/dist/components/hx-copy-button/hx-copy-button.d.ts.map +1 -1
  73. package/dist/components/hx-copy-button/index.js +1 -1
  74. package/dist/components/hx-counter/hx-counter.d.ts +20 -3
  75. package/dist/components/hx-counter/hx-counter.d.ts.map +1 -1
  76. package/dist/components/hx-counter/hx-counter.styles.d.ts.map +1 -1
  77. package/dist/components/hx-counter/index.js +1 -1
  78. package/dist/components/hx-data-table/hx-data-table.d.ts +13 -13
  79. package/dist/components/hx-data-table/hx-data-table.d.ts.map +1 -1
  80. package/dist/components/hx-data-table/hx-data-table.styles.d.ts.map +1 -1
  81. package/dist/components/hx-data-table/index.js +1 -1
  82. package/dist/components/hx-date-picker/hx-date-picker.d.ts +70 -13
  83. package/dist/components/hx-date-picker/hx-date-picker.d.ts.map +1 -1
  84. package/dist/components/hx-date-picker/hx-date-picker.styles.d.ts.map +1 -1
  85. package/dist/components/hx-date-picker/index.js +1 -1
  86. package/dist/components/hx-dialog/hx-dialog.d.ts +4 -1
  87. package/dist/components/hx-dialog/hx-dialog.d.ts.map +1 -1
  88. package/dist/components/hx-dialog/index.js +1 -1
  89. package/dist/components/hx-divider/hx-divider.d.ts.map +1 -1
  90. package/dist/components/hx-divider/index.js +1 -1
  91. package/dist/components/hx-drawer/hx-drawer.d.ts +4 -8
  92. package/dist/components/hx-drawer/hx-drawer.d.ts.map +1 -1
  93. package/dist/components/hx-drawer/hx-drawer.styles.d.ts.map +1 -1
  94. package/dist/components/hx-drawer/index.js +1 -1
  95. package/dist/components/hx-dropdown/hx-dropdown.d.ts +14 -1
  96. package/dist/components/hx-dropdown/hx-dropdown.d.ts.map +1 -1
  97. package/dist/components/hx-dropdown/index.js +1 -1
  98. package/dist/components/hx-field/hx-field.d.ts +1 -1
  99. package/dist/components/hx-field/hx-field.d.ts.map +1 -1
  100. package/dist/components/hx-field/index.js +1 -1
  101. package/dist/components/hx-field-label/hx-field-label.styles.d.ts.map +1 -1
  102. package/dist/components/hx-field-label/index.js +1 -1
  103. package/dist/components/hx-file-upload/hx-file-upload.d.ts +8 -9
  104. package/dist/components/hx-file-upload/hx-file-upload.d.ts.map +1 -1
  105. package/dist/components/hx-file-upload/index.js +1 -1
  106. package/dist/components/hx-form/hx-form.d.ts.map +1 -1
  107. package/dist/components/hx-form/index.js +1 -1
  108. package/dist/components/hx-format-date/hx-format-date.d.ts.map +1 -1
  109. package/dist/components/hx-format-date/index.js +1 -1
  110. package/dist/components/hx-grid/hx-grid.d.ts +5 -9
  111. package/dist/components/hx-grid/hx-grid.d.ts.map +1 -1
  112. package/dist/components/hx-grid/index.js +1 -1
  113. package/dist/components/hx-icon/hx-icon.d.ts.map +1 -1
  114. package/dist/components/hx-icon/index.js +1 -1
  115. package/dist/components/hx-icon-button/hx-icon-button.d.ts +4 -3
  116. package/dist/components/hx-icon-button/hx-icon-button.d.ts.map +1 -1
  117. package/dist/components/hx-icon-button/index.js +1 -1
  118. package/dist/components/hx-image/hx-image.d.ts.map +1 -1
  119. package/dist/components/hx-image/index.js +1 -1
  120. package/dist/components/hx-link/hx-link.d.ts +1 -1
  121. package/dist/components/hx-link/hx-link.d.ts.map +1 -1
  122. package/dist/components/hx-link/hx-link.styles.d.ts.map +1 -1
  123. package/dist/components/hx-link/index.js +1 -1
  124. package/dist/components/hx-meter/hx-meter.d.ts +2 -2
  125. package/dist/components/hx-meter/hx-meter.d.ts.map +1 -1
  126. package/dist/components/hx-meter/index.js +1 -1
  127. package/dist/components/hx-nav/hx-nav.d.ts.map +1 -1
  128. package/dist/components/hx-nav/index.js +1 -1
  129. package/dist/components/hx-number-input/hx-number-input.d.ts +19 -7
  130. package/dist/components/hx-number-input/hx-number-input.d.ts.map +1 -1
  131. package/dist/components/hx-number-input/index.js +1 -1
  132. package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts +3 -3
  133. package/dist/components/hx-overflow-menu/hx-overflow-menu.styles.d.ts.map +1 -1
  134. package/dist/components/hx-overflow-menu/index.js +1 -1
  135. package/dist/components/hx-pagination/hx-pagination.d.ts +26 -12
  136. package/dist/components/hx-pagination/hx-pagination.d.ts.map +1 -1
  137. package/dist/components/hx-pagination/hx-pagination.styles.d.ts.map +1 -1
  138. package/dist/components/hx-pagination/index.js +1 -1
  139. package/dist/components/hx-patient-banner/hx-patient-banner.d.ts +105 -0
  140. package/dist/components/hx-patient-banner/hx-patient-banner.d.ts.map +1 -0
  141. package/dist/components/hx-patient-banner/hx-patient-banner.styles.d.ts +2 -0
  142. package/dist/components/hx-patient-banner/hx-patient-banner.styles.d.ts.map +1 -0
  143. package/dist/components/hx-patient-banner/index.d.ts +3 -0
  144. package/dist/components/hx-patient-banner/index.d.ts.map +1 -0
  145. package/dist/components/hx-patient-banner/index.js +5 -0
  146. package/dist/components/hx-patient-banner/index.js.map +1 -0
  147. package/dist/components/hx-phi-field/hx-phi-field.d.ts +72 -0
  148. package/dist/components/hx-phi-field/hx-phi-field.d.ts.map +1 -0
  149. package/dist/components/hx-phi-field/hx-phi-field.styles.d.ts +2 -0
  150. package/dist/components/hx-phi-field/hx-phi-field.styles.d.ts.map +1 -0
  151. package/dist/components/hx-phi-field/index.d.ts +3 -0
  152. package/dist/components/hx-phi-field/index.d.ts.map +1 -0
  153. package/dist/components/hx-phi-field/index.js +5 -0
  154. package/dist/components/hx-phi-field/index.js.map +1 -0
  155. package/dist/components/hx-popover/hx-popover.d.ts +25 -9
  156. package/dist/components/hx-popover/hx-popover.d.ts.map +1 -1
  157. package/dist/components/hx-popover/index.js +1 -1
  158. package/dist/components/hx-popup/hx-popup.d.ts +5 -8
  159. package/dist/components/hx-popup/hx-popup.d.ts.map +1 -1
  160. package/dist/components/hx-popup/index.js +1 -1
  161. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts +2 -0
  162. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts.map +1 -1
  163. package/dist/components/hx-progress-bar/hx-progress-bar.styles.d.ts.map +1 -1
  164. package/dist/components/hx-progress-bar/index.js +1 -1
  165. package/dist/components/hx-progress-ring/hx-progress-ring.d.ts.map +1 -1
  166. package/dist/components/hx-progress-ring/index.js +1 -1
  167. package/dist/components/hx-prose/hx-prose.d.ts +1 -0
  168. package/dist/components/hx-prose/hx-prose.d.ts.map +1 -1
  169. package/dist/components/hx-radio-group/hx-radio-group.d.ts +3 -7
  170. package/dist/components/hx-radio-group/hx-radio-group.d.ts.map +1 -1
  171. package/dist/components/hx-radio-group/hx-radio.d.ts.map +1 -1
  172. package/dist/components/hx-radio-group/hx-radio.styles.d.ts.map +1 -1
  173. package/dist/components/hx-radio-group/index.js +1 -1
  174. package/dist/components/hx-rating/hx-rating.d.ts +3 -3
  175. package/dist/components/hx-rating/hx-rating.d.ts.map +1 -1
  176. package/dist/components/hx-rating/hx-rating.styles.d.ts.map +1 -1
  177. package/dist/components/hx-rating/index.js +1 -1
  178. package/dist/components/hx-select/hx-select.d.ts +16 -11
  179. package/dist/components/hx-select/hx-select.d.ts.map +1 -1
  180. package/dist/components/hx-select/hx-select.styles.d.ts.map +1 -1
  181. package/dist/components/hx-select/index.js +1 -1
  182. package/dist/components/hx-side-nav/hx-nav-item.d.ts +7 -0
  183. package/dist/components/hx-side-nav/hx-nav-item.d.ts.map +1 -1
  184. package/dist/components/hx-side-nav/hx-nav-item.styles.d.ts.map +1 -1
  185. package/dist/components/hx-side-nav/hx-side-nav.d.ts.map +1 -1
  186. package/dist/components/hx-side-nav/hx-side-nav.styles.d.ts.map +1 -1
  187. package/dist/components/hx-side-nav/index.js +1 -1
  188. package/dist/components/hx-skeleton/hx-skeleton.d.ts +2 -2
  189. package/dist/components/hx-skeleton/hx-skeleton.d.ts.map +1 -1
  190. package/dist/components/hx-slider/hx-slider.d.ts +4 -8
  191. package/dist/components/hx-slider/hx-slider.d.ts.map +1 -1
  192. package/dist/components/hx-slider/hx-slider.styles.d.ts.map +1 -1
  193. package/dist/components/hx-slider/index.js +1 -1
  194. package/dist/components/hx-spinner/hx-spinner.d.ts +14 -1
  195. package/dist/components/hx-spinner/hx-spinner.d.ts.map +1 -1
  196. package/dist/components/hx-spinner/hx-spinner.styles.d.ts.map +1 -1
  197. package/dist/components/hx-spinner/index.js +1 -1
  198. package/dist/components/hx-split-button/hx-split-button.d.ts +10 -4
  199. package/dist/components/hx-split-button/hx-split-button.d.ts.map +1 -1
  200. package/dist/components/hx-split-button/hx-split-button.styles.d.ts.map +1 -1
  201. package/dist/components/hx-split-button/index.js +1 -1
  202. package/dist/components/hx-split-panel/hx-split-panel.d.ts +13 -9
  203. package/dist/components/hx-split-panel/hx-split-panel.d.ts.map +1 -1
  204. package/dist/components/hx-split-panel/hx-split-panel.styles.d.ts.map +1 -1
  205. package/dist/components/hx-split-panel/index.js +1 -1
  206. package/dist/components/hx-stat/hx-stat.d.ts +7 -2
  207. package/dist/components/hx-stat/hx-stat.d.ts.map +1 -1
  208. package/dist/components/hx-stat/index.js +1 -1
  209. package/dist/components/hx-status-indicator/hx-status-indicator.d.ts +2 -2
  210. package/dist/components/hx-status-indicator/hx-status-indicator.d.ts.map +1 -1
  211. package/dist/components/hx-status-indicator/index.js +1 -1
  212. package/dist/components/hx-steps/hx-step.styles.d.ts.map +1 -1
  213. package/dist/components/hx-steps/hx-steps.d.ts.map +1 -1
  214. package/dist/components/hx-steps/index.js +1 -1
  215. package/dist/components/hx-structured-list/hx-structured-list.d.ts +10 -3
  216. package/dist/components/hx-structured-list/hx-structured-list.d.ts.map +1 -1
  217. package/dist/components/hx-structured-list/index.js +1 -1
  218. package/dist/components/hx-style-scope/hx-style-scope.d.ts +71 -0
  219. package/dist/components/hx-style-scope/hx-style-scope.d.ts.map +1 -0
  220. package/dist/components/hx-style-scope/hx-style-scope.styles.d.ts +10 -0
  221. package/dist/components/hx-style-scope/hx-style-scope.styles.d.ts.map +1 -0
  222. package/dist/components/hx-style-scope/index.d.ts +2 -0
  223. package/dist/components/hx-style-scope/index.d.ts.map +1 -0
  224. package/dist/components/hx-style-scope/index.js +5 -0
  225. package/dist/components/hx-style-scope/index.js.map +1 -0
  226. package/dist/components/hx-switch/hx-switch.d.ts +4 -4
  227. package/dist/components/hx-switch/hx-switch.d.ts.map +1 -1
  228. package/dist/components/hx-switch/hx-switch.styles.d.ts.map +1 -1
  229. package/dist/components/hx-switch/index.js +1 -1
  230. package/dist/components/hx-table/hx-table.d.ts +1 -0
  231. package/dist/components/hx-table/hx-table.d.ts.map +1 -1
  232. package/dist/components/hx-table/index.js +1 -1
  233. package/dist/components/hx-tabs/hx-tab-panel.styles.d.ts.map +1 -1
  234. package/dist/components/hx-tabs/hx-tab.d.ts +1 -0
  235. package/dist/components/hx-tabs/hx-tab.d.ts.map +1 -1
  236. package/dist/components/hx-tabs/hx-tab.styles.d.ts.map +1 -1
  237. package/dist/components/hx-tabs/hx-tabs.d.ts +2 -2
  238. package/dist/components/hx-tabs/hx-tabs.d.ts.map +1 -1
  239. package/dist/components/hx-tabs/index.js +1 -1
  240. package/dist/components/hx-tag/hx-tag.styles.d.ts.map +1 -1
  241. package/dist/components/hx-tag/index.js +1 -1
  242. package/dist/components/hx-text/index.js +1 -1
  243. package/dist/components/hx-text-input/hx-text-input.d.ts +16 -15
  244. package/dist/components/hx-text-input/hx-text-input.d.ts.map +1 -1
  245. package/dist/components/hx-text-input/hx-text-input.styles.d.ts.map +1 -1
  246. package/dist/components/hx-text-input/index.js +1 -1
  247. package/dist/components/hx-textarea/hx-textarea.d.ts +4 -4
  248. package/dist/components/hx-textarea/hx-textarea.d.ts.map +1 -1
  249. package/dist/components/hx-textarea/hx-textarea.styles.d.ts.map +1 -1
  250. package/dist/components/hx-textarea/index.js +1 -1
  251. package/dist/components/hx-theme/hx-theme.d.ts +82 -3
  252. package/dist/components/hx-theme/hx-theme.d.ts.map +1 -1
  253. package/dist/components/hx-theme/index.js +1 -1
  254. package/dist/components/hx-time-picker/hx-time-picker.d.ts +3 -1
  255. package/dist/components/hx-time-picker/hx-time-picker.d.ts.map +1 -1
  256. package/dist/components/hx-time-picker/index.js +1 -1
  257. package/dist/components/hx-toast/hx-toast-stack.d.ts +1 -1
  258. package/dist/components/hx-toast/hx-toast-stack.d.ts.map +1 -1
  259. package/dist/components/hx-toast/hx-toast.d.ts +9 -5
  260. package/dist/components/hx-toast/hx-toast.d.ts.map +1 -1
  261. package/dist/components/hx-toast/hx-toast.styles.d.ts.map +1 -1
  262. package/dist/components/hx-toast/index.js +1 -1
  263. package/dist/components/hx-toast/toast-factory.d.ts.map +1 -1
  264. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts +4 -3
  265. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts.map +1 -1
  266. package/dist/components/hx-toggle-button/hx-toggle-button.styles.d.ts.map +1 -1
  267. package/dist/components/hx-toggle-button/index.js +1 -1
  268. package/dist/components/hx-tooltip/hx-tooltip.d.ts +1 -2
  269. package/dist/components/hx-tooltip/hx-tooltip.d.ts.map +1 -1
  270. package/dist/components/hx-tooltip/index.js +1 -1
  271. package/dist/components/hx-tree-view/hx-tree-item.d.ts +7 -0
  272. package/dist/components/hx-tree-view/hx-tree-item.d.ts.map +1 -1
  273. package/dist/components/hx-tree-view/hx-tree-view.d.ts +21 -2
  274. package/dist/components/hx-tree-view/hx-tree-view.d.ts.map +1 -1
  275. package/dist/components/hx-tree-view/hx-tree-view.styles.d.ts.map +1 -1
  276. package/dist/components/hx-tree-view/index.js +1 -1
  277. package/dist/controllers/helix-audit-controller.d.ts +71 -0
  278. package/dist/controllers/helix-audit-controller.d.ts.map +1 -0
  279. package/dist/css/helix-all.css +9581 -0
  280. package/dist/css/helix-core.css +1784 -0
  281. package/dist/css/helix-data.css +639 -0
  282. package/dist/css/helix-feedback.css +1239 -0
  283. package/dist/css/helix-forms.css +2498 -0
  284. package/dist/css/helix-layout.css +380 -0
  285. package/dist/css/helix-media.css +213 -0
  286. package/dist/css/helix-navigation.css +1122 -0
  287. package/dist/css/helix-overlay.css +643 -0
  288. package/dist/css/helix-tokens.css +432 -0
  289. package/dist/css/helix-utility.css +633 -0
  290. package/dist/css/hx-accordion.css +10 -0
  291. package/dist/css/hx-action-bar.css +117 -0
  292. package/dist/css/hx-alert.css +213 -0
  293. package/dist/css/hx-avatar.css +117 -0
  294. package/dist/css/hx-badge.css +174 -0
  295. package/dist/css/hx-banner.css +203 -0
  296. package/dist/css/hx-breadcrumb.css +36 -0
  297. package/dist/css/hx-button-group.css +91 -0
  298. package/dist/css/hx-button.css +262 -0
  299. package/dist/css/hx-card.css +161 -0
  300. package/dist/css/hx-carousel.css +211 -0
  301. package/dist/css/hx-checkbox-group.css +77 -0
  302. package/dist/css/hx-checkbox.css +219 -0
  303. package/dist/css/hx-clinical-status.css +246 -0
  304. package/dist/css/hx-code-snippet.css +179 -0
  305. package/dist/css/hx-color-picker.css +2 -0
  306. package/dist/css/hx-combobox.css +2 -0
  307. package/dist/css/hx-container.css +82 -0
  308. package/dist/css/hx-copy-button.css +121 -0
  309. package/dist/css/hx-counter.css +51 -0
  310. package/dist/css/hx-data-table.css +207 -0
  311. package/dist/css/hx-date-picker.css +2 -0
  312. package/dist/css/hx-dialog.css +190 -0
  313. package/dist/css/hx-divider.css +87 -0
  314. package/dist/css/hx-drawer.css +262 -0
  315. package/dist/css/hx-dropdown.css +46 -0
  316. package/dist/css/hx-field-label.css +38 -0
  317. package/dist/css/hx-field.css +119 -0
  318. package/dist/css/hx-file-upload.css +241 -0
  319. package/dist/css/hx-form.css +2 -0
  320. package/dist/css/hx-format-date.css +10 -0
  321. package/dist/css/hx-grid.css +14 -0
  322. package/dist/css/hx-help-text.css +50 -0
  323. package/dist/css/hx-icon-button.css +152 -0
  324. package/dist/css/hx-icon.css +73 -0
  325. package/dist/css/hx-image.css +41 -0
  326. package/dist/css/hx-link.css +105 -0
  327. package/dist/css/hx-list.css +48 -0
  328. package/dist/css/hx-menu.css +21 -0
  329. package/dist/css/hx-meter.css +113 -0
  330. package/dist/css/hx-nav.css +242 -0
  331. package/dist/css/hx-number-input.css +246 -0
  332. package/dist/css/hx-overflow-menu.css +133 -0
  333. package/dist/css/hx-pagination.css +193 -0
  334. package/dist/css/hx-patient-banner.css +111 -0
  335. package/dist/css/hx-phi-field.css +85 -0
  336. package/dist/css/hx-popover.css +61 -0
  337. package/dist/css/hx-popup.css +31 -0
  338. package/dist/css/hx-progress-bar.css +133 -0
  339. package/dist/css/hx-progress-ring.css +142 -0
  340. package/dist/css/hx-prose.css +2 -0
  341. package/dist/css/hx-radio-group.css +77 -0
  342. package/dist/css/hx-rating.css +96 -0
  343. package/dist/css/hx-select.css +268 -0
  344. package/dist/css/hx-side-nav.css +142 -0
  345. package/dist/css/hx-skeleton.css +82 -0
  346. package/dist/css/hx-slider.css +287 -0
  347. package/dist/css/hx-spinner.css +116 -0
  348. package/dist/css/hx-split-button.css +309 -0
  349. package/dist/css/hx-split-panel.css +168 -0
  350. package/dist/css/hx-stack.css +104 -0
  351. package/dist/css/hx-stat.css +106 -0
  352. package/dist/css/hx-status-indicator.css +97 -0
  353. package/dist/css/hx-steps.css +52 -0
  354. package/dist/css/hx-structured-list.css +75 -0
  355. package/dist/css/hx-style-scope.css +4 -0
  356. package/dist/css/hx-switch.css +169 -0
  357. package/dist/css/hx-table.css +128 -0
  358. package/dist/css/hx-tabs.css +76 -0
  359. package/dist/css/hx-tag.css +146 -0
  360. package/dist/css/hx-text-input.css +214 -0
  361. package/dist/css/hx-text.css +149 -0
  362. package/dist/css/hx-textarea.css +180 -0
  363. package/dist/css/hx-theme.css +23 -0
  364. package/dist/css/hx-time-picker.css +2 -0
  365. package/dist/css/hx-toast.css +230 -0
  366. package/dist/css/hx-toggle-button.css +207 -0
  367. package/dist/css/hx-tooltip.css +51 -0
  368. package/dist/css/hx-top-nav.css +203 -0
  369. package/dist/css/hx-tree-view.css +22 -0
  370. package/dist/css/hx-visually-hidden.css +26 -0
  371. package/dist/css/index.css +84 -0
  372. package/dist/css/manifest.json +2696 -0
  373. package/dist/index.d.ts +14 -0
  374. package/dist/index.d.ts.map +1 -1
  375. package/dist/index.js +266 -176
  376. package/dist/index.js.map +1 -1
  377. package/dist/mixins/FocusMixin.d.ts +49 -0
  378. package/dist/mixins/FocusMixin.d.ts.map +1 -0
  379. package/dist/mixins/FormMixin.d.ts +69 -0
  380. package/dist/mixins/FormMixin.d.ts.map +1 -0
  381. package/dist/mixins/aria-delegation.d.ts +97 -0
  382. package/dist/mixins/aria-delegation.d.ts.map +1 -0
  383. package/dist/mixins/index.d.ts +5 -0
  384. package/dist/mixins/index.d.ts.map +1 -0
  385. package/dist/shared/FormMixin-Bjvw20G5.js +88 -0
  386. package/dist/shared/FormMixin-Bjvw20G5.js.map +1 -0
  387. package/dist/shared/aria-delegation-CBP9eQ0M.js +107 -0
  388. package/dist/shared/aria-delegation-CBP9eQ0M.js.map +1 -0
  389. package/dist/shared/{hx-accordion-D1kFhdeQ.js → hx-accordion-_KeulaQR.js} +83 -55
  390. package/dist/shared/hx-accordion-_KeulaQR.js.map +1 -0
  391. package/dist/shared/hx-action-bar-D4bulGQP.js.map +1 -1
  392. package/dist/shared/{hx-alert-K5F8KeqI.js → hx-alert-DRZYP0Oo.js} +32 -23
  393. package/dist/shared/hx-alert-DRZYP0Oo.js.map +1 -0
  394. package/dist/shared/{hx-avatar-Cun-O99h.js → hx-avatar-7p1cj3lG.js} +2 -2
  395. package/dist/shared/hx-avatar-7p1cj3lG.js.map +1 -0
  396. package/dist/shared/{hx-badge-CsFd2xtw.js → hx-badge-DCxvskdw.js} +23 -18
  397. package/dist/shared/hx-badge-DCxvskdw.js.map +1 -0
  398. package/dist/shared/{hx-banner-BTV-X2xF.js → hx-banner-2RS7Nux4.js} +93 -58
  399. package/dist/shared/hx-banner-2RS7Nux4.js.map +1 -0
  400. package/dist/shared/{hx-breadcrumb-item-4IwaLgaO.js → hx-breadcrumb-item-B2rjepqy.js} +79 -78
  401. package/dist/shared/hx-breadcrumb-item-B2rjepqy.js.map +1 -0
  402. package/dist/shared/{hx-button-7k-KeCYU.js → hx-button-6S3DwuIj.js} +81 -56
  403. package/dist/shared/hx-button-6S3DwuIj.js.map +1 -0
  404. package/dist/shared/{hx-button-group-CWjWv-wS.js → hx-button-group-ChTQsnQj.js} +10 -10
  405. package/dist/shared/hx-button-group-ChTQsnQj.js.map +1 -0
  406. package/dist/shared/{hx-card-0hT3G5hi.js → hx-card-dIKdcMhr.js} +32 -32
  407. package/dist/shared/hx-card-dIKdcMhr.js.map +1 -0
  408. package/dist/shared/{hx-carousel-item-DgeYyYZJ.js → hx-carousel-item-Cm8a1nAi.js} +3 -3
  409. package/dist/shared/hx-carousel-item-Cm8a1nAi.js.map +1 -0
  410. package/dist/shared/{hx-checkbox-BvjO-O41.js → hx-checkbox-_WUiuTo9.js} +68 -71
  411. package/dist/shared/hx-checkbox-_WUiuTo9.js.map +1 -0
  412. package/dist/shared/{hx-checkbox-group-Z5VvWzcj.js → hx-checkbox-group-B-ci-dxp.js} +37 -31
  413. package/dist/shared/hx-checkbox-group-B-ci-dxp.js.map +1 -0
  414. package/dist/shared/hx-clinical-status-De8yrA5I.js +467 -0
  415. package/dist/shared/hx-clinical-status-De8yrA5I.js.map +1 -0
  416. package/dist/shared/{hx-code-snippet-DqzPkH4K.js → hx-code-snippet-CQsyvthi.js} +56 -47
  417. package/dist/shared/hx-code-snippet-CQsyvthi.js.map +1 -0
  418. package/dist/shared/{hx-color-picker-Da8z6AlQ.js → hx-color-picker-Dk2Myvaf.js} +153 -137
  419. package/dist/shared/hx-color-picker-Dk2Myvaf.js.map +1 -0
  420. package/dist/shared/{hx-combobox-CivfelTS.js → hx-combobox-CNAJXIxo.js} +10 -10
  421. package/dist/shared/hx-combobox-CNAJXIxo.js.map +1 -0
  422. package/dist/shared/{hx-container-DLUKnTi9.js → hx-container-7j16VuQE.js} +16 -16
  423. package/dist/shared/hx-container-7j16VuQE.js.map +1 -0
  424. package/dist/shared/{hx-copy-button--0dymSvw.js → hx-copy-button-B_ZHYO7_.js} +47 -40
  425. package/dist/shared/hx-copy-button-B_ZHYO7_.js.map +1 -0
  426. package/dist/shared/hx-counter-D_B7L9Pi.js +185 -0
  427. package/dist/shared/hx-counter-D_B7L9Pi.js.map +1 -0
  428. package/dist/shared/{hx-data-table-DujB9hSE.js → hx-data-table-B1j4n4bm.js} +134 -107
  429. package/dist/shared/hx-data-table-B1j4n4bm.js.map +1 -0
  430. package/dist/shared/{hx-date-picker-C8d2HtRV.js → hx-date-picker-R-0kWFwr.js} +146 -130
  431. package/dist/shared/hx-date-picker-R-0kWFwr.js.map +1 -0
  432. package/dist/shared/{hx-dialog-DkUSnVgw.js → hx-dialog-U5d3s0Ps.js} +98 -89
  433. package/dist/shared/hx-dialog-U5d3s0Ps.js.map +1 -0
  434. package/dist/shared/{hx-divider-DNNs4e8q.js → hx-divider-DdAN-_jB.js} +5 -5
  435. package/dist/shared/hx-divider-DdAN-_jB.js.map +1 -0
  436. package/dist/shared/{hx-drawer-CJcRZcns.js → hx-drawer-e0qeGxAD.js} +117 -77
  437. package/dist/shared/hx-drawer-e0qeGxAD.js.map +1 -0
  438. package/dist/shared/{hx-dropdown-Bo0KTM1A.js → hx-dropdown-DP_DNpEb.js} +56 -41
  439. package/dist/shared/hx-dropdown-DP_DNpEb.js.map +1 -0
  440. package/dist/shared/{hx-field-3MmzJ4kZ.js → hx-field-COM4KvMQ.js} +9 -9
  441. package/dist/shared/hx-field-COM4KvMQ.js.map +1 -0
  442. package/dist/shared/{hx-field-label-Bg-EWvqF.js → hx-field-label-BtZ9H9Yy.js} +8 -11
  443. package/dist/shared/hx-field-label-BtZ9H9Yy.js.map +1 -0
  444. package/dist/shared/{hx-file-upload-ByjAgfNy.js → hx-file-upload-DbECypLe.js} +78 -87
  445. package/dist/shared/hx-file-upload-DbECypLe.js.map +1 -0
  446. package/dist/shared/{hx-form-BpS6v3Iu.js → hx-form-fJE-FJQV.js} +36 -32
  447. package/dist/shared/{hx-form-BpS6v3Iu.js.map → hx-form-fJE-FJQV.js.map} +1 -1
  448. package/dist/shared/{hx-format-date-BdnWV2kX.js → hx-format-date-C030ThSm.js} +14 -12
  449. package/dist/shared/hx-format-date-C030ThSm.js.map +1 -0
  450. package/dist/shared/{hx-grid-gEjuF0cR.js → hx-grid-DE8KM5Gf.js} +7 -7
  451. package/dist/shared/hx-grid-DE8KM5Gf.js.map +1 -0
  452. package/dist/shared/{hx-icon-button-DzH_bRtC.js → hx-icon-button-Et9wq79n.js} +4 -4
  453. package/dist/shared/{hx-icon-button-DzH_bRtC.js.map → hx-icon-button-Et9wq79n.js.map} +1 -1
  454. package/dist/shared/{hx-icon-CP6OnLoM.js → hx-icon-dYvrzvsO.js} +7 -7
  455. package/dist/shared/hx-icon-dYvrzvsO.js.map +1 -0
  456. package/dist/shared/{hx-image-C6pGiI6c.js → hx-image-DUsEi-oN.js} +15 -15
  457. package/dist/shared/hx-image-DUsEi-oN.js.map +1 -0
  458. package/dist/shared/{hx-link-Tmk_YPvW.js → hx-link-Peg2LzOD.js} +43 -41
  459. package/dist/shared/hx-link-Peg2LzOD.js.map +1 -0
  460. package/dist/shared/{hx-meter-uXkTZq-W.js → hx-meter-CVs4A649.js} +13 -13
  461. package/dist/shared/hx-meter-CVs4A649.js.map +1 -0
  462. package/dist/shared/{hx-nav-3JsN2Oak.js → hx-nav-D377Ngz4.js} +23 -24
  463. package/dist/shared/hx-nav-D377Ngz4.js.map +1 -0
  464. package/dist/shared/{hx-nav-item-D3EJatzc.js → hx-nav-item-ByU2N921.js} +49 -37
  465. package/dist/shared/hx-nav-item-ByU2N921.js.map +1 -0
  466. package/dist/shared/{hx-number-input-CAAibZ8X.js → hx-number-input-BPgrlMLN.js} +70 -66
  467. package/dist/shared/hx-number-input-BPgrlMLN.js.map +1 -0
  468. package/dist/shared/{hx-overflow-menu-2kgOJ_ht.js → hx-overflow-menu-Bz02LPPk.js} +15 -11
  469. package/dist/shared/hx-overflow-menu-Bz02LPPk.js.map +1 -0
  470. package/dist/shared/{hx-pagination-DBs-vmSv.js → hx-pagination-DYhYPqDn.js} +68 -63
  471. package/dist/shared/hx-pagination-DYhYPqDn.js.map +1 -0
  472. package/dist/shared/hx-patient-banner-BoJHddAL.js +256 -0
  473. package/dist/shared/hx-patient-banner-BoJHddAL.js.map +1 -0
  474. package/dist/shared/hx-phi-field-EDWna59z.js +261 -0
  475. package/dist/shared/hx-phi-field-EDWna59z.js.map +1 -0
  476. package/dist/shared/{hx-popover-DxE67miP.js → hx-popover-D6kYQkt3.js} +96 -69
  477. package/dist/shared/hx-popover-D6kYQkt3.js.map +1 -0
  478. package/dist/shared/{hx-popup-Dg6n_PbY.js → hx-popup-RQb6HUXc.js} +2 -2
  479. package/dist/shared/hx-popup-RQb6HUXc.js.map +1 -0
  480. package/dist/shared/{hx-progress-bar-Dm_EHyng.js → hx-progress-bar-ByEmxq1V.js} +42 -40
  481. package/dist/shared/hx-progress-bar-ByEmxq1V.js.map +1 -0
  482. package/dist/shared/{hx-progress-ring-DpxBDD5d.js → hx-progress-ring-CtVnNRQx.js} +2 -2
  483. package/dist/shared/{hx-progress-ring-DpxBDD5d.js.map → hx-progress-ring-CtVnNRQx.js.map} +1 -1
  484. package/dist/shared/hx-prose-Ml_L2zje.js.map +1 -1
  485. package/dist/shared/{hx-radio-BywgVSEu.js → hx-radio-jgeW92SV.js} +28 -27
  486. package/dist/shared/hx-radio-jgeW92SV.js.map +1 -0
  487. package/dist/shared/{hx-rating-CUWBQ0fZ.js → hx-rating-g_iy-DW_.js} +92 -96
  488. package/dist/shared/hx-rating-g_iy-DW_.js.map +1 -0
  489. package/dist/shared/{hx-select-BwDwxk-M.js → hx-select-4-nHL0vd.js} +73 -61
  490. package/dist/shared/hx-select-4-nHL0vd.js.map +1 -0
  491. package/dist/shared/hx-skeleton-BHvALyd7.js.map +1 -1
  492. package/dist/shared/{hx-slider-D_0EKJyk.js → hx-slider-7Q-e0_pc.js} +27 -22
  493. package/dist/shared/hx-slider-7Q-e0_pc.js.map +1 -0
  494. package/dist/shared/{hx-spinner-DMn4SChS.js → hx-spinner-DEgrKsUo.js} +3 -2
  495. package/dist/shared/hx-spinner-DEgrKsUo.js.map +1 -0
  496. package/dist/shared/{hx-split-button-CypgLXw1.js → hx-split-button-BA7P_ly5.js} +40 -31
  497. package/dist/shared/hx-split-button-BA7P_ly5.js.map +1 -0
  498. package/dist/shared/{hx-split-panel-BPMWKPGu.js → hx-split-panel-Bss54UN8.js} +28 -28
  499. package/dist/shared/hx-split-panel-Bss54UN8.js.map +1 -0
  500. package/dist/shared/{hx-stat-CHntLHJM.js → hx-stat-CmkCUI8v.js} +40 -32
  501. package/dist/shared/{hx-stat-CHntLHJM.js.map → hx-stat-CmkCUI8v.js.map} +1 -1
  502. package/dist/shared/{hx-status-indicator-C1BwEvUw.js → hx-status-indicator-4ClvA5mU.js} +19 -19
  503. package/dist/shared/hx-status-indicator-4ClvA5mU.js.map +1 -0
  504. package/dist/shared/{hx-step-BIVWSPxd.js → hx-step-DlANlr2A.js} +31 -71
  505. package/dist/shared/hx-step-DlANlr2A.js.map +1 -0
  506. package/dist/shared/{hx-structured-list-CMWllxGg.js → hx-structured-list-Db9rwLI_.js} +26 -23
  507. package/dist/shared/hx-structured-list-Db9rwLI_.js.map +1 -0
  508. package/dist/shared/hx-style-scope-BroUu83L.js +125 -0
  509. package/dist/shared/hx-style-scope-BroUu83L.js.map +1 -0
  510. package/dist/shared/{hx-switch-BgX8kuWt.js → hx-switch-C0Lp5RGy.js} +8 -5
  511. package/dist/shared/hx-switch-C0Lp5RGy.js.map +1 -0
  512. package/dist/shared/{hx-tab-panel-DhOq67jj.js → hx-tab-panel-GGjk6Qg4.js} +129 -118
  513. package/dist/shared/hx-tab-panel-GGjk6Qg4.js.map +1 -0
  514. package/dist/shared/{hx-tag-CzOTDcXI.js → hx-tag-K5fCjfqQ.js} +15 -14
  515. package/dist/shared/hx-tag-K5fCjfqQ.js.map +1 -0
  516. package/dist/shared/{hx-td-h6oeW6YC.js → hx-td-DZuILY3s.js} +43 -40
  517. package/dist/shared/hx-td-DZuILY3s.js.map +1 -0
  518. package/dist/shared/{hx-text-DTXjiviE.js → hx-text-DoEVOf47.js} +29 -29
  519. package/dist/shared/hx-text-DoEVOf47.js.map +1 -0
  520. package/dist/shared/hx-text-input-DTKWPVdy.js +576 -0
  521. package/dist/shared/hx-text-input-DTKWPVdy.js.map +1 -0
  522. package/dist/shared/{hx-textarea-BgX7rxyo.js → hx-textarea-BkSiU8oM.js} +15 -15
  523. package/dist/shared/hx-textarea-BkSiU8oM.js.map +1 -0
  524. package/dist/shared/hx-theme-Aag8QJvT.js +299 -0
  525. package/dist/shared/hx-theme-Aag8QJvT.js.map +1 -0
  526. package/dist/shared/{hx-time-picker-DmLu7WUC.js → hx-time-picker-BpCRsh_z.js} +54 -53
  527. package/dist/shared/hx-time-picker-BpCRsh_z.js.map +1 -0
  528. package/dist/shared/{hx-toggle-button-D1jpDvSA.js → hx-toggle-button-CPFqs3eQ.js} +8 -5
  529. package/dist/shared/hx-toggle-button-CPFqs3eQ.js.map +1 -0
  530. package/dist/shared/{hx-tooltip-kh7QFPKu.js → hx-tooltip-CrO4vzeX.js} +15 -10
  531. package/dist/shared/hx-tooltip-CrO4vzeX.js.map +1 -0
  532. package/dist/shared/{hx-tree-item-BP6UF_H1.js → hx-tree-item-DTDIBRrI.js} +122 -89
  533. package/dist/shared/hx-tree-item-DTDIBRrI.js.map +1 -0
  534. package/dist/shared/id-counter-JhvVCnjh.js +143 -0
  535. package/dist/shared/id-counter-JhvVCnjh.js.map +1 -0
  536. package/dist/shared/{toast-factory-DTy-qN8r.js → toast-factory-f184Gi70.js} +57 -45
  537. package/dist/shared/toast-factory-f184Gi70.js.map +1 -0
  538. package/dist/utilities/adoptedStylesheetRegistry.d.ts +47 -0
  539. package/dist/utilities/adoptedStylesheetRegistry.d.ts.map +1 -0
  540. package/dist/utilities/generateScopedSelectors.d.ts +30 -0
  541. package/dist/utilities/generateScopedSelectors.d.ts.map +1 -0
  542. package/dist/utilities/injectLightStyles.d.ts +37 -0
  543. package/dist/utilities/injectLightStyles.d.ts.map +1 -0
  544. package/dist/utilities/lightStyleRegistry.d.ts +41 -0
  545. package/dist/utilities/lightStyleRegistry.d.ts.map +1 -0
  546. package/dist/utilities/sheetManager.d.ts +62 -0
  547. package/dist/utilities/sheetManager.d.ts.map +1 -0
  548. package/dist/utils/contrast-checker.d.ts +86 -0
  549. package/dist/utils/contrast-checker.d.ts.map +1 -0
  550. package/dist/utils/token-merger.d.ts +24 -0
  551. package/dist/utils/token-merger.d.ts.map +1 -0
  552. package/fouc.css +37 -0
  553. package/package.json +25 -5
  554. package/dist/shared/hx-accordion-D1kFhdeQ.js.map +0 -1
  555. package/dist/shared/hx-alert-K5F8KeqI.js.map +0 -1
  556. package/dist/shared/hx-avatar-Cun-O99h.js.map +0 -1
  557. package/dist/shared/hx-badge-CsFd2xtw.js.map +0 -1
  558. package/dist/shared/hx-banner-BTV-X2xF.js.map +0 -1
  559. package/dist/shared/hx-breadcrumb-item-4IwaLgaO.js.map +0 -1
  560. package/dist/shared/hx-button-7k-KeCYU.js.map +0 -1
  561. package/dist/shared/hx-button-group-CWjWv-wS.js.map +0 -1
  562. package/dist/shared/hx-card-0hT3G5hi.js.map +0 -1
  563. package/dist/shared/hx-carousel-item-DgeYyYZJ.js.map +0 -1
  564. package/dist/shared/hx-checkbox-BvjO-O41.js.map +0 -1
  565. package/dist/shared/hx-checkbox-group-Z5VvWzcj.js.map +0 -1
  566. package/dist/shared/hx-code-snippet-DqzPkH4K.js.map +0 -1
  567. package/dist/shared/hx-color-picker-Da8z6AlQ.js.map +0 -1
  568. package/dist/shared/hx-combobox-CivfelTS.js.map +0 -1
  569. package/dist/shared/hx-container-DLUKnTi9.js.map +0 -1
  570. package/dist/shared/hx-copy-button--0dymSvw.js.map +0 -1
  571. package/dist/shared/hx-counter-Duf00H7p.js +0 -147
  572. package/dist/shared/hx-counter-Duf00H7p.js.map +0 -1
  573. package/dist/shared/hx-data-table-DujB9hSE.js.map +0 -1
  574. package/dist/shared/hx-date-picker-C8d2HtRV.js.map +0 -1
  575. package/dist/shared/hx-dialog-DkUSnVgw.js.map +0 -1
  576. package/dist/shared/hx-divider-DNNs4e8q.js.map +0 -1
  577. package/dist/shared/hx-drawer-CJcRZcns.js.map +0 -1
  578. package/dist/shared/hx-dropdown-Bo0KTM1A.js.map +0 -1
  579. package/dist/shared/hx-field-3MmzJ4kZ.js.map +0 -1
  580. package/dist/shared/hx-field-label-Bg-EWvqF.js.map +0 -1
  581. package/dist/shared/hx-file-upload-ByjAgfNy.js.map +0 -1
  582. package/dist/shared/hx-format-date-BdnWV2kX.js.map +0 -1
  583. package/dist/shared/hx-grid-gEjuF0cR.js.map +0 -1
  584. package/dist/shared/hx-icon-CP6OnLoM.js.map +0 -1
  585. package/dist/shared/hx-image-C6pGiI6c.js.map +0 -1
  586. package/dist/shared/hx-link-Tmk_YPvW.js.map +0 -1
  587. package/dist/shared/hx-meter-uXkTZq-W.js.map +0 -1
  588. package/dist/shared/hx-nav-3JsN2Oak.js.map +0 -1
  589. package/dist/shared/hx-nav-item-D3EJatzc.js.map +0 -1
  590. package/dist/shared/hx-number-input-CAAibZ8X.js.map +0 -1
  591. package/dist/shared/hx-overflow-menu-2kgOJ_ht.js.map +0 -1
  592. package/dist/shared/hx-pagination-DBs-vmSv.js.map +0 -1
  593. package/dist/shared/hx-popover-DxE67miP.js.map +0 -1
  594. package/dist/shared/hx-popup-Dg6n_PbY.js.map +0 -1
  595. package/dist/shared/hx-progress-bar-Dm_EHyng.js.map +0 -1
  596. package/dist/shared/hx-radio-BywgVSEu.js.map +0 -1
  597. package/dist/shared/hx-rating-CUWBQ0fZ.js.map +0 -1
  598. package/dist/shared/hx-select-BwDwxk-M.js.map +0 -1
  599. package/dist/shared/hx-slider-D_0EKJyk.js.map +0 -1
  600. package/dist/shared/hx-spinner-DMn4SChS.js.map +0 -1
  601. package/dist/shared/hx-split-button-CypgLXw1.js.map +0 -1
  602. package/dist/shared/hx-split-panel-BPMWKPGu.js.map +0 -1
  603. package/dist/shared/hx-status-indicator-C1BwEvUw.js.map +0 -1
  604. package/dist/shared/hx-step-BIVWSPxd.js.map +0 -1
  605. package/dist/shared/hx-structured-list-CMWllxGg.js.map +0 -1
  606. package/dist/shared/hx-switch-BgX8kuWt.js.map +0 -1
  607. package/dist/shared/hx-tab-panel-DhOq67jj.js.map +0 -1
  608. package/dist/shared/hx-tag-CzOTDcXI.js.map +0 -1
  609. package/dist/shared/hx-td-h6oeW6YC.js.map +0 -1
  610. package/dist/shared/hx-text-DTXjiviE.js.map +0 -1
  611. package/dist/shared/hx-text-input-CqEdDHMU.js +0 -461
  612. package/dist/shared/hx-text-input-CqEdDHMU.js.map +0 -1
  613. package/dist/shared/hx-textarea-BgX7rxyo.js.map +0 -1
  614. package/dist/shared/hx-theme-6GDoUG8j.js +0 -176
  615. package/dist/shared/hx-theme-6GDoUG8j.js.map +0 -1
  616. package/dist/shared/hx-time-picker-DmLu7WUC.js.map +0 -1
  617. package/dist/shared/hx-toggle-button-D1jpDvSA.js.map +0 -1
  618. package/dist/shared/hx-tooltip-kh7QFPKu.js.map +0 -1
  619. package/dist/shared/hx-tree-item-BP6UF_H1.js.map +0 -1
  620. package/dist/shared/toast-factory-DTy-qN8r.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { css as m, LitElement as u, html as d, nothing as x } from "lit";
2
- import { property as l, customElement as b } from "lit/decorators.js";
2
+ import { property as n, customElement as b } from "lit/decorators.js";
3
3
  import { tokenStyles as f } from "@helixui/tokens/lit";
4
4
  const y = m`
5
5
  :host {
@@ -38,23 +38,21 @@ const y = m`
38
38
  display: none;
39
39
  }
40
40
  `;
41
- var v = Object.defineProperty, _ = Object.getOwnPropertyDescriptor, p = (e, t, s, i) => {
42
- for (var r = i > 1 ? void 0 : i ? _(t, s) : t, a = e.length - 1, o; a >= 0; a--)
43
- (o = e[a]) && (r = (i ? o(t, s, r) : o(r)) || r);
44
- return i && r && v(t, s, r), r;
41
+ var v = Object.defineProperty, _ = Object.getOwnPropertyDescriptor, p = (t, e, s, i) => {
42
+ for (var r = i > 1 ? void 0 : i ? _(e, s) : e, a = t.length - 1, l; a >= 0; a--)
43
+ (l = t[a]) && (r = (i ? l(e, s, r) : l(r)) || r);
44
+ return i && r && v(e, s, r), r;
45
45
  };
46
- let n = class extends u {
46
+ let o = class extends u {
47
47
  constructor() {
48
- super(...arguments), this.separator = "/", this.label = "Breadcrumb", this.maxItems = 0, this.jsonLd = !1, this._ellipsisItem = null, this._jsonLdScript = null, this._boundEllipsisClick = () => {
49
- }, this._boundEllipsisKeydown = () => {
50
- }, this._managedCurrentItems = /* @__PURE__ */ new WeakSet(), this._jsonLdId = `hx-breadcrumb-ld-${++n._instanceCounter}`;
48
+ super(...arguments), this.separator = "/", this.label = "Breadcrumb", this.maxItems = 0, this.labelEllipsis = "Show all breadcrumb items", this.jsonLd = !1, this._ellipsisItem = null, this._jsonLdScript = null, this._boundEllipsisClick = (t) => this._handleEllipsisClick(t), this._boundEllipsisKeydown = (t) => this._handleEllipsisKeydown(t), this._managedCurrentItems = /* @__PURE__ */ new WeakSet(), this._jsonLdId = `hx-breadcrumb-ld-${++o._instanceCounter}`;
51
49
  }
52
50
  // ─── Item Helpers ───
53
51
  /** Returns only real breadcrumb items, excluding the managed ellipsis element. */
54
52
  /** @internal */
55
- _getBreadcrumbItems(e) {
56
- return e.assignedElements({ flatten: !0 }).filter(
57
- (t) => t.tagName.toLowerCase() === "hx-breadcrumb-item" && !t.classList.contains("hx-bc-ellipsis")
53
+ _getBreadcrumbItems(t) {
54
+ return t.assignedElements({ flatten: !0 }).filter(
55
+ (e) => e.tagName.toLowerCase() === "hx-breadcrumb-item" && !e.classList.contains("hx-bc-ellipsis")
58
56
  );
59
57
  }
60
58
  /**
@@ -68,63 +66,63 @@ let n = class extends u {
68
66
  * relying on item order.
69
67
  */
70
68
  /** @internal */
71
- _applyItemAttributes(e) {
72
- const t = e.some(
69
+ _applyItemAttributes(t) {
70
+ const e = t.some(
73
71
  (s) => s.hasAttribute("current") && !this._managedCurrentItems.has(s)
74
72
  );
75
- e.forEach((s, i) => {
76
- const r = s, a = i === e.length - 1;
77
- a ? r.setAttribute("data-bc-last", "") : r.removeAttribute("data-bc-last"), t || (a ? (r.setAttribute("current", ""), this._managedCurrentItems.add(r)) : (r.removeAttribute("current"), this._managedCurrentItems.delete(r)));
73
+ t.forEach((s, i) => {
74
+ const r = s, a = i === t.length - 1;
75
+ a ? r.setAttribute("data-bc-last", "") : r.removeAttribute("data-bc-last"), e || (a ? (r.setAttribute("current", ""), this._managedCurrentItems.add(r)) : (r.removeAttribute("current"), this._managedCurrentItems.delete(r)));
78
76
  });
79
77
  }
80
78
  // ─── Slot Handling ───
81
79
  /** @internal */
82
- _handleSlotChange(e) {
83
- if (!(e.target instanceof HTMLSlotElement)) return;
84
- const t = this._getBreadcrumbItems(e.target);
85
- this.maxItems > 0 && t.length > this.maxItems ? this._applyCollapse(t) : this._removeCollapse(t), this._applyItemAttributes(t), this.jsonLd && this._updateJsonLd(t);
80
+ _handleSlotChange(t) {
81
+ if (!(t.target instanceof HTMLSlotElement)) return;
82
+ const e = this._getBreadcrumbItems(t.target);
83
+ this.maxItems > 0 && e.length > this.maxItems ? this._applyCollapse(e) : this._removeCollapse(e), this._applyItemAttributes(e), this.jsonLd && this._updateJsonLd(e);
86
84
  }
87
85
  /** @internal */
88
- _handleSeparatorSlotChange(e) {
86
+ _handleSeparatorSlotChange(t) {
89
87
  var s;
90
- if (!(e.target instanceof HTMLSlotElement)) return;
91
- const t = e.target.assignedElements({ flatten: !0 });
92
- if (t.length > 0) {
93
- const i = ((s = t[0].textContent) == null ? void 0 : s.trim()) ?? "";
88
+ if (!(t.target instanceof HTMLSlotElement)) return;
89
+ const e = t.target.assignedElements({ flatten: !0 });
90
+ if (e.length > 0) {
91
+ const i = ((s = e[0].textContent) == null ? void 0 : s.trim()) ?? "";
94
92
  this.style.setProperty("--hx-breadcrumb-separator-content", JSON.stringify(i));
95
93
  }
96
94
  }
97
95
  // ─── Collapse ───
98
96
  /** @internal */
99
- _applyCollapse(e) {
100
- if (e.forEach((s, i) => {
97
+ _applyCollapse(t) {
98
+ if (t.forEach((s, i) => {
101
99
  const r = s;
102
- i === 0 || i === e.length - 1 ? r.removeAttribute("data-bc-hidden") : r.setAttribute("data-bc-hidden", "");
100
+ i === 0 || i === t.length - 1 ? r.removeAttribute("data-bc-hidden") : r.setAttribute("data-bc-hidden", "");
103
101
  }), !this._ellipsisItem && typeof document < "u") {
104
102
  const s = document.createElement("hx-breadcrumb-item");
105
103
  s.classList.add("hx-bc-ellipsis");
106
104
  const i = document.createElement("button");
107
- i.type = "button", i.textContent = "…", i.setAttribute("aria-label", "Show all breadcrumb items"), s.appendChild(i), this._ellipsisItem = s;
105
+ i.type = "button", i.textContent = "…", i.setAttribute("aria-label", this.labelEllipsis), s.appendChild(i), this._ellipsisItem = s;
108
106
  }
109
- const t = e[0];
110
- !t || !this._ellipsisItem || this._ellipsisItem.previousElementSibling !== t && t.after(this._ellipsisItem);
107
+ const e = t[0];
108
+ !e || !this._ellipsisItem || this._ellipsisItem.previousElementSibling !== e && e.after(this._ellipsisItem);
111
109
  }
112
110
  /** @internal */
113
- _removeCollapse(e) {
114
- var t;
115
- e.forEach((s) => {
111
+ _removeCollapse(t) {
112
+ var e;
113
+ t.forEach((s) => {
116
114
  s.removeAttribute("data-bc-hidden");
117
- }), (t = this._ellipsisItem) != null && t.isConnected && this._ellipsisItem.remove();
115
+ }), (e = this._ellipsisItem) != null && e.isConnected && this._ellipsisItem.remove();
118
116
  }
119
117
  /** @internal */
120
- _handleEllipsisClick(e) {
121
- var t, s;
122
- (s = (t = e.target) == null ? void 0 : t.closest) != null && s.call(t, ".hx-bc-ellipsis") && this._expandBreadcrumb();
118
+ _handleEllipsisClick(t) {
119
+ var e, s;
120
+ (s = (e = t.target) == null ? void 0 : e.closest) != null && s.call(e, ".hx-bc-ellipsis") && this._expandBreadcrumb();
123
121
  }
124
122
  /** @internal */
125
- _handleEllipsisKeydown(e) {
126
- var t, s;
127
- e instanceof KeyboardEvent && (e.key === "Enter" || e.key === " ") && (s = (t = e.target) == null ? void 0 : t.closest) != null && s.call(t, ".hx-bc-ellipsis") && (e.preventDefault(), this._expandBreadcrumb());
123
+ _handleEllipsisKeydown(t) {
124
+ var e, s;
125
+ t instanceof KeyboardEvent && (t.key === "Enter" || t.key === " ") && (s = (e = t.target) == null ? void 0 : e.closest) != null && s.call(e, ".hx-bc-ellipsis") && (t.preventDefault(), this._expandBreadcrumb());
128
126
  }
129
127
  /**
130
128
  * Expands a collapsed breadcrumb by resetting maxItems to 0.
@@ -139,47 +137,47 @@ let n = class extends u {
139
137
  * JSON-LD ListItem entry with typed fields to avoid Record<string, unknown>.
140
138
  */
141
139
  /** @internal */
142
- _buildListItem(e, t) {
140
+ _buildListItem(t, e) {
143
141
  var a;
144
- const s = e.getAttribute("href"), i = ((a = e.textContent) == null ? void 0 : a.trim()) ?? "", r = {
142
+ const s = t.getAttribute("href"), i = ((a = t.textContent) == null ? void 0 : a.trim()) ?? "", r = {
145
143
  "@type": "ListItem",
146
- position: t,
144
+ position: e,
147
145
  name: i
148
146
  };
149
147
  return s && (r.item = s), r;
150
148
  }
151
149
  /** @internal */
152
- _updateJsonLd(e) {
150
+ _updateJsonLd(t) {
153
151
  var s;
154
- const t = {
152
+ const e = {
155
153
  "@context": "https://schema.org",
156
154
  "@type": "BreadcrumbList",
157
- itemListElement: e.map((i, r) => this._buildListItem(i, r + 1))
155
+ itemListElement: t.map((i, r) => this._buildListItem(i, r + 1))
158
156
  };
159
- typeof document > "u" || (this._jsonLdScript || ((s = document.getElementById(this._jsonLdId)) == null || s.remove(), this._jsonLdScript = document.createElement("script"), this._jsonLdScript.type = "application/ld+json", this._jsonLdScript.id = this._jsonLdId, this._jsonLdScript.setAttribute("data-hx-breadcrumb", ""), document.head.appendChild(this._jsonLdScript)), this._jsonLdScript.textContent = JSON.stringify(t));
157
+ typeof document > "u" || (this._jsonLdScript || ((s = document.getElementById(this._jsonLdId)) == null || s.remove(), this._jsonLdScript = document.createElement("script"), this._jsonLdScript.type = "application/ld+json", this._jsonLdScript.id = this._jsonLdId, this._jsonLdScript.setAttribute("data-hx-breadcrumb", ""), document.head.appendChild(this._jsonLdScript)), this._jsonLdScript.textContent = JSON.stringify(e));
160
158
  }
161
159
  /** @internal */
162
160
  _removeJsonLd() {
163
- var e;
164
- (e = this._jsonLdScript) == null || e.remove(), this._jsonLdScript = null;
161
+ var t;
162
+ (t = this._jsonLdScript) == null || t.remove(), this._jsonLdScript = null;
165
163
  }
166
164
  // ─── Lifecycle ───
167
165
  connectedCallback() {
168
- super.connectedCallback(), this._boundEllipsisClick = this._handleEllipsisClick.bind(this), this._boundEllipsisKeydown = this._handleEllipsisKeydown.bind(this), this.addEventListener("click", this._boundEllipsisClick), this.addEventListener("keydown", this._boundEllipsisKeydown);
166
+ super.connectedCallback(), this.addEventListener("click", this._boundEllipsisClick), this.addEventListener("keydown", this._boundEllipsisKeydown);
169
167
  }
170
168
  disconnectedCallback() {
171
169
  super.disconnectedCallback(), this.removeEventListener("click", this._boundEllipsisClick), this.removeEventListener("keydown", this._boundEllipsisKeydown), this._removeJsonLd();
172
170
  }
173
- updated(e) {
174
- var t, s;
175
- if (super.updated(e), e.has("separator") && this.style.setProperty("--hx-breadcrumb-separator-content", JSON.stringify(this.separator)), e.has("maxItems")) {
176
- const i = (t = this.shadowRoot) == null ? void 0 : t.querySelector("slot:not([name])");
171
+ updated(t) {
172
+ var e, s;
173
+ if (super.updated(t), t.has("separator") && this.style.setProperty("--hx-breadcrumb-separator-content", JSON.stringify(this.separator)), t.has("maxItems")) {
174
+ const i = (e = this.shadowRoot) == null ? void 0 : e.querySelector("slot:not([name])");
177
175
  if (i) {
178
176
  const r = this._getBreadcrumbItems(i);
179
177
  this.maxItems > 0 && r.length > this.maxItems ? this._applyCollapse(r) : this._removeCollapse(r), this._applyItemAttributes(r);
180
178
  }
181
179
  }
182
- if (e.has("jsonLd"))
180
+ if (t.has("jsonLd"))
183
181
  if (this.jsonLd) {
184
182
  const i = (s = this.shadowRoot) == null ? void 0 : s.querySelector("slot:not([name])");
185
183
  i && this._updateJsonLd(this._getBreadcrumbItems(i));
@@ -202,23 +200,26 @@ let n = class extends u {
202
200
  `;
203
201
  }
204
202
  };
205
- n.styles = [f, y];
206
- n._instanceCounter = 0;
203
+ o.styles = [f, y];
204
+ o._instanceCounter = 0;
205
+ p([
206
+ n({ type: String })
207
+ ], o.prototype, "separator", 2);
207
208
  p([
208
- l({ type: String })
209
- ], n.prototype, "separator", 2);
209
+ n({ type: String })
210
+ ], o.prototype, "label", 2);
210
211
  p([
211
- l({ type: String })
212
- ], n.prototype, "label", 2);
212
+ n({ type: Number, attribute: "max-items" })
213
+ ], o.prototype, "maxItems", 2);
213
214
  p([
214
- l({ type: Number, attribute: "max-items" })
215
- ], n.prototype, "maxItems", 2);
215
+ n({ attribute: "label-ellipsis" })
216
+ ], o.prototype, "labelEllipsis", 2);
216
217
  p([
217
- l({ type: Boolean, attribute: "json-ld" })
218
- ], n.prototype, "jsonLd", 2);
219
- n = p([
218
+ n({ type: Boolean, attribute: "json-ld" })
219
+ ], o.prototype, "jsonLd", 2);
220
+ o = p([
220
221
  b("hx-breadcrumb")
221
- ], n);
222
+ ], o);
222
223
  const g = m`
223
224
  :host {
224
225
  display: inline-flex;
@@ -293,10 +294,10 @@ const g = m`
293
294
  padding: 0;
294
295
  }
295
296
  `;
296
- var L = Object.defineProperty, C = Object.getOwnPropertyDescriptor, h = (e, t, s, i) => {
297
- for (var r = i > 1 ? void 0 : i ? C(t, s) : t, a = e.length - 1, o; a >= 0; a--)
298
- (o = e[a]) && (r = (i ? o(t, s, r) : o(r)) || r);
299
- return i && r && L(t, s, r), r;
297
+ var L = Object.defineProperty, C = Object.getOwnPropertyDescriptor, h = (t, e, s, i) => {
298
+ for (var r = i > 1 ? void 0 : i ? C(e, s) : e, a = t.length - 1, l; a >= 0; a--)
299
+ (l = t[a]) && (r = (i ? l(e, s, r) : l(r)) || r);
300
+ return i && r && L(e, s, r), r;
300
301
  };
301
302
  let c = class extends u {
302
303
  constructor() {
@@ -316,19 +317,19 @@ let c = class extends u {
316
317
  };
317
318
  c.styles = [f, g];
318
319
  h([
319
- l({ type: String, reflect: !0 })
320
+ n({ type: String, reflect: !0 })
320
321
  ], c.prototype, "href", 2);
321
322
  h([
322
- l({ type: Boolean, attribute: "data-bc-last", reflect: !0 })
323
+ n({ type: Boolean, attribute: "data-bc-last", reflect: !0 })
323
324
  ], c.prototype, "dataBcLast", 2);
324
325
  h([
325
- l({ type: Boolean, reflect: !0 })
326
+ n({ type: Boolean, reflect: !0 })
326
327
  ], c.prototype, "current", 2);
327
328
  c = h([
328
329
  b("hx-breadcrumb-item")
329
330
  ], c);
330
331
  export {
331
- n as H,
332
+ o as H,
332
333
  c as a
333
334
  };
334
- //# sourceMappingURL=hx-breadcrumb-item-4IwaLgaO.js.map
335
+ //# sourceMappingURL=hx-breadcrumb-item-B2rjepqy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hx-breadcrumb-item-B2rjepqy.js","sources":["../../src/components/hx-breadcrumb/hx-breadcrumb.styles.ts","../../src/components/hx-breadcrumb/hx-breadcrumb.ts","../../src/components/hx-breadcrumb/hx-breadcrumb-item.styles.ts","../../src/components/hx-breadcrumb/hx-breadcrumb-item.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixBreadcrumbStyles = css`\n :host {\n display: block;\n font-family: var(\n --hx-breadcrumb-font-family,\n var(--hx-font-family-sans, system-ui, sans-serif)\n );\n font-size: var(--hx-breadcrumb-font-size, var(--hx-font-size-sm, 0.875rem));\n }\n\n [part='nav'] {\n /* nav landmark — no additional styling needed */\n }\n\n [part='list'] {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n list-style: none;\n margin: 0;\n padding: 0;\n gap: 0;\n }\n\n /* Hide middle items when collapsed via maxItems */\n ::slotted([data-bc-hidden]) {\n display: none;\n }\n\n /* Visually hide the separator slot — used only to read text content.\n * display:none is intentional: the slot contains no interactive or focusable\n * content. If a future change adds focusable elements to this slot, switch to\n * visibility:hidden + position:absolute to preserve focus reachability. */\n .separator-slot {\n display: none;\n }\n`;\n","import { LitElement, html, type PropertyValues } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { tokenStyles } from '@helixui/tokens/lit';\nimport { helixBreadcrumbStyles } from './hx-breadcrumb.styles.js';\n\n/**\n * Hierarchical page path navigation showing current location in site structure.\n *\n * @summary Navigation breadcrumb showing the page hierarchy. Works with Drupal's breadcrumb system.\n *\n * @tag hx-breadcrumb\n *\n * @slot - Default slot for hx-breadcrumb-item children.\n * @slot separator - Optional separator element. Its text content overrides the `separator` property.\n *\n * @csspart nav - The nav landmark element.\n * @csspart list - The ordered list containing items.\n *\n * @cssprop [--hx-breadcrumb-separator-content='/'] - Separator character between items.\n * NOTE: If overriding this custom property directly in CSS (rather than via the `separator`\n * attribute), the value MUST be quoted: `--hx-breadcrumb-separator-content: \">\"`. An unquoted\n * value is invalid for the CSS `content` property and will silently render nothing.\n * @cssprop [--hx-breadcrumb-separator-color=var(--hx-color-neutral-400)] - Separator color.\n * @cssprop [--hx-breadcrumb-separator-gap=var(--hx-space-1)] - Horizontal gap around separators.\n * @cssprop [--hx-breadcrumb-font-size=var(--hx-font-size-sm)] - Font size.\n * @cssprop [--hx-breadcrumb-link-color=var(--hx-color-primary-600)] - Link color.\n * @cssprop [--hx-breadcrumb-link-hover-color=var(--hx-color-primary-700)] - Link hover color.\n * @cssprop [--hx-breadcrumb-text-color=var(--hx-color-neutral-700)] - Current page text color.\n * @cssprop [--hx-breadcrumb-item-max-width] - Max-width for item text truncation (e.g. `12rem`).\n */\n/** Typed schema.org ListItem entry for JSON-LD BreadcrumbList structured data. */\ninterface JsonLdListItem {\n '@type': string;\n position: number;\n name: string;\n item?: string;\n}\n\n/** Breadcrumb navigation component with automatic truncation and JSON-LD structured data. @tag hx-breadcrumb */\n@customElement('hx-breadcrumb')\nexport class HelixBreadcrumb extends LitElement {\n static override styles = [tokenStyles, helixBreadcrumbStyles];\n\n /**\n * Per-instance counter used to generate stable, deterministic IDs for the\n * injected JSON-LD script tags. Deterministic IDs (vs Math.random()) allow\n * SSR frameworks to match server-rendered script tags during hydration.\n */\n /** @internal */\n private static _instanceCounter = 0;\n\n /**\n * The separator character displayed between breadcrumb items.\n * @attr separator\n */\n @property({ type: String })\n separator = '/';\n\n /**\n * The accessible label for the nav landmark.\n * @attr label\n */\n @property({ type: String })\n label = 'Breadcrumb';\n\n /**\n * Maximum number of items to show before collapsing middle items with an ellipsis.\n * Set to 0 (default) to show all items. The ellipsis is a keyboard-accessible\n * button; activating it expands the full breadcrumb by setting maxItems to 0.\n * @attr max-items\n */\n @property({ type: Number, attribute: 'max-items' })\n maxItems = 0;\n\n /**\n * Accessible label for the expand ellipsis button. Override for i18n.\n * @attr label-ellipsis\n */\n @property({ attribute: 'label-ellipsis' }) labelEllipsis = 'Show all breadcrumb items';\n\n /**\n * When true, injects a JSON-LD BreadcrumbList structured data script into the document head.\n *\n * NOTE: Drupal manages `<head>` content via its own render pipeline. Injecting a\n * `<script>` directly via `document.head.appendChild()` in a Drupal context:\n * 1. Bypasses Drupal's deduplication and `hook_html_head_alter()` hook.\n * 2. Is not cacheable by Drupal's page cache.\n * 3. Will be wiped on BigPipe partial page replacements.\n *\n * For Drupal integrations, leave `json-ld` false and use the structured data\n * Twig template instead (see `hx-breadcrumb.twig` in the component directory).\n *\n * @attr json-ld\n */\n @property({ type: Boolean, attribute: 'json-ld' })\n jsonLd = false;\n\n /** @internal */\n private _ellipsisItem: Element | null = null;\n /** @internal */\n private _jsonLdScript: HTMLScriptElement | null = null;\n /** @internal */\n private readonly _boundEllipsisClick = (e: Event) => this._handleEllipsisClick(e);\n /** @internal */\n private readonly _boundEllipsisKeydown = (e: Event) => this._handleEllipsisKeydown(e);\n\n /**\n * Tracks which items had their `current` attribute set by this component\n * (as opposed to set by a consumer/Drupal template). This lets us re-evaluate\n * positional current-page detection on each slotchange without incorrectly\n * treating a previously component-set `current` attribute as a consumer-set\n * explicit override.\n */\n /** @internal */\n private readonly _managedCurrentItems = new WeakSet<Element>();\n\n /**\n * Stable per-instance ID used to tag the injected script element so that\n * multiple hx-breadcrumb instances on the same page don't produce conflicting\n * or duplicate structured-data blocks. Each instance owns exactly one script\n * tag identified by this ID; any stale tag from a previous render cycle is\n * removed before a new one is inserted.\n *\n * Uses a static counter (not Math.random()) so IDs are deterministic across\n * server and client renders, enabling SSR hydration matching.\n */\n /** @internal */\n private readonly _jsonLdId = `hx-breadcrumb-ld-${++HelixBreadcrumb._instanceCounter}`;\n\n // ─── Item Helpers ───\n\n /** Returns only real breadcrumb items, excluding the managed ellipsis element. */\n /** @internal */\n private _getBreadcrumbItems(slot: HTMLSlotElement): Element[] {\n return slot\n .assignedElements({ flatten: true })\n .filter(\n (el) =>\n el.tagName.toLowerCase() === 'hx-breadcrumb-item' &&\n !el.classList.contains('hx-bc-ellipsis'),\n );\n }\n\n /**\n * Applies aria/state attributes to the item list.\n *\n * Current-page detection: if any item has an explicit `current` attribute\n * (e.g. set by a Drupal Twig template), that item is treated as the current\n * page. Otherwise the last item is the current page (default behaviour).\n *\n * This separation allows Drupal to control current-page marking without\n * relying on item order.\n */\n /** @internal */\n private _applyItemAttributes(items: Element[]): void {\n // Detect consumer-set 'current' attributes. An item has an explicit consumer\n // current if it has the 'current' attribute AND the component did not set it\n // (tracked via _managedCurrentItems). This prevents component-managed state\n // from being misread as a consumer override on subsequent slotchange events.\n const hasExplicitCurrent = items.some(\n (el) => el.hasAttribute('current') && !this._managedCurrentItems.has(el),\n );\n\n items.forEach((item, i) => {\n const el = item as HTMLElement;\n const isLast = i === items.length - 1;\n\n // Separator hiding: always positional — last item has no trailing separator.\n if (isLast) {\n el.setAttribute('data-bc-last', '');\n } else {\n el.removeAttribute('data-bc-last');\n }\n\n // Current-page marker: explicit consumer attribute wins over positional last.\n // The item component renders aria-current=\"page\" on its inner element\n // based on this attribute (see hx-breadcrumb-item.ts).\n if (!hasExplicitCurrent) {\n if (isLast) {\n el.setAttribute('current', '');\n this._managedCurrentItems.add(el);\n } else {\n el.removeAttribute('current');\n this._managedCurrentItems.delete(el);\n }\n }\n // When hasExplicitCurrent is true, leave 'current' attributes as-is so\n // consumer or Drupal template markup is not overridden.\n });\n }\n\n // ─── Slot Handling ───\n\n /** @internal */\n private _handleSlotChange(e: Event): void {\n if (!(e.target instanceof HTMLSlotElement)) return;\n const items = this._getBreadcrumbItems(e.target);\n\n // Handle collapse behaviour\n if (this.maxItems > 0 && items.length > this.maxItems) {\n this._applyCollapse(items);\n } else {\n this._removeCollapse(items);\n }\n\n this._applyItemAttributes(items);\n\n if (this.jsonLd) {\n this._updateJsonLd(items);\n }\n }\n\n /** @internal */\n private _handleSeparatorSlotChange(e: Event): void {\n if (!(e.target instanceof HTMLSlotElement)) return;\n const assigned = e.target.assignedElements({ flatten: true });\n if (assigned.length > 0) {\n const text = (assigned[0] as HTMLElement).textContent?.trim() ?? '';\n this.style.setProperty('--hx-breadcrumb-separator-content', JSON.stringify(text));\n }\n }\n\n // ─── Collapse ───\n\n /** @internal */\n private _applyCollapse(items: Element[]): void {\n // Show only first and last; hide all middle items\n items.forEach((item, i) => {\n const el = item as HTMLElement;\n if (i === 0 || i === items.length - 1) {\n el.removeAttribute('data-bc-hidden');\n } else {\n el.setAttribute('data-bc-hidden', '');\n }\n });\n\n // Create the ellipsis element once (guard for SSR — document is unavailable server-side)\n if (!this._ellipsisItem && typeof document !== 'undefined') {\n const ellipsis = document.createElement('hx-breadcrumb-item');\n ellipsis.classList.add('hx-bc-ellipsis');\n\n // Keyboard-accessible expand button. Events handled via host-level delegation\n // in _handleEllipsisClick / _handleEllipsisKeydown.\n const btn = document.createElement('button');\n btn.type = 'button';\n btn.textContent = '…';\n btn.setAttribute('aria-label', this.labelEllipsis);\n ellipsis.appendChild(btn);\n\n this._ellipsisItem = ellipsis;\n }\n\n // Insert ellipsis after first item only if not already correctly placed\n const firstItem = items[0];\n if (!firstItem || !this._ellipsisItem) return;\n if (this._ellipsisItem.previousElementSibling !== firstItem) {\n firstItem.after(this._ellipsisItem);\n }\n }\n\n /** @internal */\n private _removeCollapse(items: Element[]): void {\n items.forEach((item) => {\n (item as HTMLElement).removeAttribute('data-bc-hidden');\n });\n\n if (this._ellipsisItem?.isConnected) {\n this._ellipsisItem.remove();\n }\n }\n\n /** @internal */\n private _handleEllipsisClick(e: Event): void {\n if ((e.target as Element)?.closest?.('.hx-bc-ellipsis')) {\n this._expandBreadcrumb();\n }\n }\n\n /** @internal */\n private _handleEllipsisKeydown(e: Event): void {\n if (!(e instanceof KeyboardEvent)) return;\n if (e.key === 'Enter' || e.key === ' ') {\n if ((e.target as Element)?.closest?.('.hx-bc-ellipsis')) {\n e.preventDefault();\n this._expandBreadcrumb();\n }\n }\n }\n\n /**\n * Expands a collapsed breadcrumb by resetting maxItems to 0.\n * Called by the ellipsis expand button (click or Enter/Space).\n */\n /** @internal */\n private _expandBreadcrumb(): void {\n this.maxItems = 0;\n // updated() will detect the maxItems change and call _removeCollapse.\n }\n\n // ─── JSON-LD ───\n\n /**\n * JSON-LD ListItem entry with typed fields to avoid Record<string, unknown>.\n */\n /** @internal */\n private _buildListItem(item: Element, position: number): JsonLdListItem {\n const href = (item as HTMLElement).getAttribute('href');\n const name = (item as HTMLElement).textContent?.trim() ?? '';\n const entry: JsonLdListItem = {\n '@type': 'ListItem',\n position,\n name,\n };\n if (href) entry.item = href;\n return entry;\n }\n\n /** @internal */\n private _updateJsonLd(items: Element[]): void {\n const schema = {\n '@context': 'https://schema.org',\n '@type': 'BreadcrumbList',\n itemListElement: items.map((item, i) => this._buildListItem(item, i + 1)),\n };\n\n // Guard for SSR — document is unavailable server-side\n if (typeof document === 'undefined') return;\n\n if (!this._jsonLdScript) {\n // Dedup guard: remove any stale script with this instance's ID before\n // creating a fresh one. This handles the edge case where the element was\n // reconnected to the DOM after being disconnected without the script\n // reference being re-established.\n document.getElementById(this._jsonLdId)?.remove();\n\n this._jsonLdScript = document.createElement('script');\n this._jsonLdScript.type = 'application/ld+json';\n this._jsonLdScript.id = this._jsonLdId;\n this._jsonLdScript.setAttribute('data-hx-breadcrumb', '');\n document.head.appendChild(this._jsonLdScript);\n }\n\n this._jsonLdScript.textContent = JSON.stringify(schema);\n }\n\n /** @internal */\n private _removeJsonLd(): void {\n this._jsonLdScript?.remove();\n this._jsonLdScript = null;\n }\n\n // ─── Lifecycle ───\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener('click', this._boundEllipsisClick);\n this.addEventListener('keydown', this._boundEllipsisKeydown);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('click', this._boundEllipsisClick);\n this.removeEventListener('keydown', this._boundEllipsisKeydown);\n this._removeJsonLd();\n }\n\n override updated(changedProperties: PropertyValues<this>): void {\n super.updated(changedProperties);\n\n if (changedProperties.has('separator')) {\n // JSON.stringify wraps the string in quotes so the value is valid\n // for use in the CSS `content` property (e.g. '/' becomes '\"/\"').\n this.style.setProperty('--hx-breadcrumb-separator-content', JSON.stringify(this.separator));\n }\n\n if (changedProperties.has('maxItems')) {\n // Re-evaluate collapse state when maxItems changes programmatically\n // (e.g. when the expand button resets maxItems to 0).\n const slot = this.shadowRoot?.querySelector<HTMLSlotElement>('slot:not([name])');\n if (slot) {\n const items = this._getBreadcrumbItems(slot);\n if (this.maxItems > 0 && items.length > this.maxItems) {\n this._applyCollapse(items);\n } else {\n this._removeCollapse(items);\n }\n this._applyItemAttributes(items);\n }\n }\n\n if (changedProperties.has('jsonLd')) {\n if (this.jsonLd) {\n // json-ld toggled on after initial render — inject script immediately.\n const slot = this.shadowRoot?.querySelector<HTMLSlotElement>('slot:not([name])');\n if (slot) {\n this._updateJsonLd(this._getBreadcrumbItems(slot));\n }\n } else {\n // json-ld toggled off — remove existing script.\n this._removeJsonLd();\n }\n }\n }\n\n // ─── Render ───\n\n override render() {\n return html`\n <nav part=\"nav\" aria-label=${this.label}>\n <ol part=\"list\">\n <slot @slotchange=${this._handleSlotChange}></slot>\n </ol>\n </nav>\n <slot\n name=\"separator\"\n class=\"separator-slot\"\n @slotchange=${this._handleSeparatorSlotChange}\n ></slot>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-breadcrumb': HelixBreadcrumb;\n }\n}\n","import { css } from 'lit';\n\nexport const helixBreadcrumbItemStyles = css`\n :host {\n display: inline-flex;\n align-items: center;\n }\n\n /*\n * display: contents removes [part='item'] from the box model entirely.\n * This is intentional — the wrapper exists only for slot selection purposes.\n * Consumers using ::part(item) CANNOT apply box-model properties (padding,\n * margin, background, border) to this part. Use ::part(link) or ::part(text)\n * for visual styling of breadcrumb item content.\n */\n [part='item'] {\n display: contents;\n }\n\n [part='link'] {\n color: var(--hx-breadcrumb-link-color, var(--hx-color-primary-600));\n text-decoration: none;\n cursor: pointer;\n font-family: inherit;\n font-size: inherit;\n max-width: var(--hx-breadcrumb-item-max-width);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n [part='link']:hover {\n color: var(--hx-breadcrumb-link-hover-color, var(--hx-color-primary-700));\n text-decoration: underline;\n }\n\n [part='link']:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid\n var(\n --hx-breadcrumb-link-focus-ring-color,\n var(--hx-focus-ring-color, var(--hx-color-primary-500))\n );\n outline-offset: var(--hx-focus-ring-offset, 2px);\n border-radius: var(--hx-border-radius-sm, 0.125rem);\n }\n\n [part='text'] {\n color: var(--hx-breadcrumb-text-color, var(--hx-color-neutral-700));\n font-family: inherit;\n font-size: inherit;\n max-width: var(--hx-breadcrumb-item-max-width);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .separator {\n margin-inline: var(--hx-breadcrumb-separator-gap, var(--hx-space-1, 0.25rem));\n color: var(--hx-breadcrumb-separator-color, var(--hx-color-neutral-400));\n user-select: none;\n }\n\n .separator::before {\n content: var(--hx-breadcrumb-separator-content, '/');\n }\n\n /* Normalize buttons slotted into breadcrumb items (e.g. the expand-ellipsis button). */\n ::slotted(button) {\n background: none;\n border: none;\n cursor: pointer;\n font: inherit;\n color: inherit;\n padding: 0;\n }\n`;\n","import { LitElement, html, nothing } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { tokenStyles } from '@helixui/tokens/lit';\nimport { helixBreadcrumbItemStyles } from './hx-breadcrumb-item.styles.js';\n\n/**\n * A single breadcrumb navigation item.\n *\n * @summary A navigation item within an hx-breadcrumb component. Renders as a link when `href` is\n * provided, or as static text for the current page item. The current page item is determined by\n * the `current` attribute (set explicitly or automatically by the parent `hx-breadcrumb`).\n *\n * @tag hx-breadcrumb-item\n *\n * @slot - The link or page text content. Accepts text, HTML, or icon elements.\n *\n * @csspart item - Wrapper around the link or text content.\n * @csspart link - The anchor element when href is provided (non-current items only).\n * @csspart text - The span element for the current page or items without href.\n * @csspart separator - The separator element rendered after non-last items.\n *\n * @cssprop [--hx-breadcrumb-link-color=var(--hx-color-primary-600)] - Link text color.\n * @cssprop [--hx-breadcrumb-link-hover-color=var(--hx-color-primary-700)] - Link hover text color.\n * @cssprop [--hx-breadcrumb-text-color=var(--hx-color-neutral-700)] - Current page text color.\n * @cssprop [--hx-breadcrumb-separator-content='/'] - Separator character displayed after non-last items.\n * @cssprop [--hx-breadcrumb-separator-color=var(--hx-color-neutral-400)] - Separator color.\n * @cssprop [--hx-breadcrumb-separator-gap=var(--hx-space-1)] - Horizontal margin around separator.\n * @cssprop [--hx-breadcrumb-item-max-width] - Optional max-width for text truncation.\n */\n@customElement('hx-breadcrumb-item')\nexport class HelixBreadcrumbItem extends LitElement {\n static override styles = [tokenStyles, helixBreadcrumbItemStyles];\n\n override connectedCallback(): void {\n super.connectedCallback();\n // Only apply role=\"listitem\" when this item is a direct child of an\n // hx-breadcrumb element. Setting the role unconditionally when used\n // standalone (outside a list context) creates an invalid ARIA hierarchy\n // because listitem requires a list ancestor.\n //\n // IMPORTANT: If programmatically creating an ellipsis element, set aria-hidden\n // BEFORE inserting into the DOM. connectedCallback fires on insertion and sets\n // role=\"listitem\"; setting aria-hidden after would momentarily expose an\n // un-hidden listitem to the accessibility tree.\n if (this.closest('hx-breadcrumb') !== null) {\n this.setAttribute('role', 'listitem');\n } else {\n this.removeAttribute('role');\n }\n }\n\n /**\n * The URL for this breadcrumb link. Omit for the current page item.\n * When `current` is true, this attribute is ignored and the item always\n * renders as static text per WAI-ARIA APG breadcrumb guidance.\n * @attr href\n */\n @property({ type: String, reflect: true })\n href: string | undefined = undefined;\n\n /**\n * Whether this is the last item in the breadcrumb trail. Set by the parent\n * hx-breadcrumb component via the `data-bc-last` boolean attribute. When\n * present the trailing separator is hidden.\n *\n * @attr data-bc-last\n * @internal\n */\n @property({ type: Boolean, attribute: 'data-bc-last', reflect: true })\n dataBcLast = false;\n\n /**\n * Marks this item as the current page. When set, the item always renders as\n * static text (never a navigable link) and `aria-current=\"page\"` is placed on\n * the inner text element per WAI-ARIA APG breadcrumb guidance, yielding the\n * canonical AT announcement (\"current page, Patient Records\").\n *\n * Can be set explicitly by consumers (e.g. Drupal Twig templates) to override\n * the default positional last-item detection in `hx-breadcrumb`. When any item\n * in the breadcrumb has an explicit `current` attribute, the parent will not\n * override it.\n *\n * @attr current\n */\n @property({ type: Boolean, reflect: true })\n current = false;\n\n override render() {\n // Per WAI-ARIA APG, the current page item MUST NOT be a navigable link.\n // aria-current=\"page\" is placed on the inner element (not the listitem host)\n // for canonical AT announcement (\"current page, Patient Records\" vs\n // \"current page, list item\").\n return html`\n <span part=\"item\">\n ${this.current\n ? html`<span part=\"text\" aria-current=\"page\"><slot></slot></span>`\n : this.href\n ? html`<a part=\"link\" href=${this.href}><slot></slot></a>`\n : html`<span part=\"text\"><slot></slot></span>`}\n </span>\n ${!this.dataBcLast\n ? html`<span class=\"separator\" part=\"separator\" aria-hidden=\"true\"></span>`\n : nothing}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-breadcrumb-item': HelixBreadcrumbItem;\n }\n}\n"],"names":["helixBreadcrumbStyles","css","HelixBreadcrumb","LitElement","e","slot","el","items","hasExplicitCurrent","item","isLast","assigned","text","_a","ellipsis","btn","firstItem","_b","position","href","name","entry","schema","i","changedProperties","html","tokenStyles","__decorateClass","property","customElement","helixBreadcrumbItemStyles","HelixBreadcrumbItem","nothing"],"mappings":"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"}
@@ -1,9 +1,11 @@
1
- import { css as p, LitElement as c, html as h, nothing as n } from "lit";
2
- import { property as e, customElement as x } from "lit/decorators.js";
3
- import { classMap as v } from "lit/directives/class-map.js";
4
- import { ifDefined as d } from "lit/directives/if-defined.js";
1
+ import { css as p, html as l, nothing as n, LitElement as c } from "lit";
2
+ import { property as o, customElement as x } from "lit/decorators.js";
3
+ import { classMap as d } from "lit/directives/class-map.js";
4
+ import { ifDefined as v } from "lit/directives/if-defined.js";
5
5
  import { tokenStyles as f } from "@helixui/tokens/lit";
6
- const g = p`
6
+ import { d as g } from "./dev-warn-YlwPHjtX.js";
7
+ import { m } from "./aria-delegation-CBP9eQ0M.js";
8
+ const y = p`
7
9
  :host {
8
10
  display: inline-block;
9
11
  }
@@ -238,7 +240,10 @@ const g = p`
238
240
  }
239
241
 
240
242
  :host([inverted]) .button--ghost:hover {
241
- --hx-button-bg: var(--hx-button-inverted-ghost-hover-bg, rgba(255, 255, 255, 0.15));
243
+ --hx-button-bg: var(
244
+ --hx-button-inverted-ghost-hover-bg,
245
+ var(--hx-overlay-white-20, rgba(255, 255, 255, 0.2))
246
+ );
242
247
  }
243
248
 
244
249
  /* Outline inverted — white border */
@@ -263,37 +268,51 @@ const g = p`
263
268
  flex: 1 1 auto;
264
269
  }
265
270
  `;
266
- var m = Object.defineProperty, y = Object.getOwnPropertyDescriptor, r = (o, i, l, s) => {
267
- for (var a = s > 1 ? void 0 : s ? y(i, l) : i, b = o.length - 1, u; b >= 0; b--)
268
- (u = o[b]) && (a = (s ? u(i, l, a) : u(a)) || a);
269
- return s && a && m(i, l, a), a;
271
+ var _ = Object.defineProperty, w = Object.getOwnPropertyDescriptor, e = (r, a, s, h) => {
272
+ for (var i = h > 1 ? void 0 : h ? w(a, s) : a, b = r.length - 1, u; b >= 0; b--)
273
+ (u = r[b]) && (i = (h ? u(a, s, i) : u(i)) || i);
274
+ return h && i && _(a, s, i), i;
270
275
  };
271
- let t = class extends c {
276
+ let t = class extends m(c) {
272
277
  constructor() {
273
- super(), this.variant = "primary", this.size = "md", this.disabled = !1, this.loading = !1, this.type = "button", this.href = void 0, this.target = void 0, this.name = void 0, this.value = void 0, this.full = !1, this.inverted = !1, this.ariaLabel = null, this._internals = this.attachInternals();
278
+ super(), this.variant = "primary", this.size = "md", this.disabled = !1, this.loading = !1, this.type = "button", this.href = void 0, this.target = void 0, this.name = void 0, this.value = void 0, this.full = !1, this.inverted = !1, this._internals = this.attachInternals();
274
279
  }
275
280
  // ─── Form API ───
276
281
  /** Returns the associated form element, if any. */
277
282
  get form() {
278
283
  return this._internals.form;
279
284
  }
280
- /** Called when a parent fieldset is disabled/enabled. */
281
- formDisabledCallback(o) {
282
- this.disabled = o;
285
+ /** @internal */
286
+ formDisabledCallback(r) {
287
+ this.disabled = r;
288
+ }
289
+ updated(r) {
290
+ if (super.updated(r), r.has("variant")) {
291
+ const a = [...t._VALID_VARIANTS];
292
+ a.includes(this.variant) || (g(
293
+ "hx-button",
294
+ `Invalid variant "${this.variant}". Expected one of: ${a.join(", ")}. Clamping to "primary".`
295
+ ), this.variant = "primary");
296
+ }
297
+ }
298
+ // ─── Slot Handlers ───
299
+ /** @internal */
300
+ _handleDefaultSlotChange(r) {
301
+ !(r.target.assignedNodes({ flatten: !0 }).length > 0) && this.ariaLabel;
283
302
  }
284
303
  // ─── Event Handling ───
285
304
  /** @private */
286
305
  /** @internal */
287
- _handleClick(o) {
306
+ _handleClick(r) {
288
307
  if (this.disabled || this.loading) {
289
- o.preventDefault(), o.stopPropagation();
308
+ r.preventDefault(), r.stopPropagation();
290
309
  return;
291
310
  }
292
311
  this.dispatchEvent(
293
312
  new CustomEvent("hx-click", {
294
313
  bubbles: !0,
295
314
  composed: !0,
296
- detail: { originalEvent: o }
315
+ detail: { originalEvent: r }
297
316
  })
298
317
  ), this.href === void 0 && this.type === "submit" && this._internals.form ? (this.name !== void 0 && this.value !== void 0 && this._internals.setFormValue(this.value), this._internals.form.requestSubmit()) : this.href === void 0 && this.type === "reset" && this._internals.form && this._internals.form.reset();
299
318
  }
@@ -301,7 +320,7 @@ let t = class extends c {
301
320
  /** @private */
302
321
  /** @internal */
303
322
  _renderSpinner() {
304
- return h`
323
+ return l`
305
324
  <svg
306
325
  class="button__spinner"
307
326
  part="spinner"
@@ -331,13 +350,13 @@ let t = class extends c {
331
350
  /** @private */
332
351
  /** @internal */
333
352
  _renderInner() {
334
- return h`
353
+ return l`
335
354
  ${this.loading ? this._renderSpinner() : n}
336
355
  <span part="prefix" class="button__prefix">
337
356
  <slot name="prefix"></slot>
338
357
  </span>
339
358
  <span part="label" class="button__label">
340
- <slot></slot>
359
+ <slot @slotchange=${this._handleDefaultSlotChange}></slot>
341
360
  </span>
342
361
  <span part="suffix" class="button__suffix">
343
362
  <slot name="suffix"></slot>
@@ -346,30 +365,31 @@ let t = class extends c {
346
365
  }
347
366
  // ─── Render ───
348
367
  render() {
349
- const o = {
368
+ const r = {
350
369
  button: !0,
351
370
  [`button--${this.variant}`]: !0,
352
371
  [`button--${this.size}`]: !0,
353
372
  "button--loading": this.loading
354
373
  };
355
- return this.href !== void 0 ? h`
374
+ return this.href !== void 0 ? l`
356
375
  <a
357
376
  part="button"
358
- class=${v(o)}
359
- href=${this.disabled || this.loading ? n : d(this.href)}
360
- target=${d(this.target)}
377
+ class=${d(r)}
378
+ href=${this.disabled || this.loading ? n : v(this.href)}
379
+ target=${v(this.target)}
361
380
  rel=${this.target === "_blank" ? "noopener noreferrer" : n}
362
381
  aria-label=${this.ariaLabel ?? n}
363
382
  aria-disabled=${this.disabled ? "true" : n}
364
383
  aria-busy=${this.loading ? "true" : n}
384
+ tabindex=${this.disabled ? "-1" : n}
365
385
  @click=${this._handleClick}
366
386
  >
367
387
  ${this._renderInner()}
368
388
  </a>
369
- ` : h`
389
+ ` : l`
370
390
  <button
371
391
  part="button"
372
- class=${v(o)}
392
+ class=${d(r)}
373
393
  ?disabled=${this.disabled}
374
394
  type=${this.type}
375
395
  aria-label=${this.ariaLabel ?? n}
@@ -381,48 +401,53 @@ let t = class extends c {
381
401
  `;
382
402
  }
383
403
  };
384
- t.styles = [f, g];
404
+ t.styles = [f, y];
385
405
  t.formAssociated = !0;
386
- r([
387
- e({ type: String, reflect: !0 })
406
+ t._VALID_VARIANTS = [
407
+ "primary",
408
+ "secondary",
409
+ "tertiary",
410
+ "danger",
411
+ "ghost",
412
+ "outline"
413
+ ];
414
+ e([
415
+ o({ type: String, reflect: !0 })
388
416
  ], t.prototype, "variant", 2);
389
- r([
390
- e({ type: String, reflect: !0, attribute: "hx-size" })
417
+ e([
418
+ o({ type: String, reflect: !0, attribute: "hx-size" })
391
419
  ], t.prototype, "size", 2);
392
- r([
393
- e({ type: Boolean, reflect: !0 })
420
+ e([
421
+ o({ type: Boolean, reflect: !0 })
394
422
  ], t.prototype, "disabled", 2);
395
- r([
396
- e({ type: Boolean, reflect: !0 })
423
+ e([
424
+ o({ type: Boolean, reflect: !0 })
397
425
  ], t.prototype, "loading", 2);
398
- r([
399
- e({ type: String })
426
+ e([
427
+ o({ type: String })
400
428
  ], t.prototype, "type", 2);
401
- r([
402
- e({ type: String })
429
+ e([
430
+ o({ type: String })
403
431
  ], t.prototype, "href", 2);
404
- r([
405
- e({ type: String })
432
+ e([
433
+ o({ type: String })
406
434
  ], t.prototype, "target", 2);
407
- r([
408
- e({ type: String })
435
+ e([
436
+ o({ type: String })
409
437
  ], t.prototype, "name", 2);
410
- r([
411
- e({ type: String })
438
+ e([
439
+ o({ type: String })
412
440
  ], t.prototype, "value", 2);
413
- r([
414
- e({ type: Boolean, reflect: !0 })
441
+ e([
442
+ o({ type: Boolean, reflect: !0 })
415
443
  ], t.prototype, "full", 2);
416
- r([
417
- e({ type: Boolean, reflect: !0 })
444
+ e([
445
+ o({ type: Boolean, reflect: !0 })
418
446
  ], t.prototype, "inverted", 2);
419
- r([
420
- e({ type: String, reflect: !0, attribute: "aria-label" })
421
- ], t.prototype, "ariaLabel", 2);
422
- t = r([
447
+ t = e([
423
448
  x("hx-button")
424
449
  ], t);
425
450
  export {
426
451
  t as H
427
452
  };
428
- //# sourceMappingURL=hx-button-7k-KeCYU.js.map
453
+ //# sourceMappingURL=hx-button-6S3DwuIj.js.map