@helixui/library 3.1.0 → 3.2.0-next.100

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 (608) hide show
  1. package/custom-elements.json +6407 -339
  2. package/dist/components/hx-accordion/hx-accordion-item.d.ts.map +1 -1
  3. package/dist/components/hx-accordion/hx-accordion-item.styles.d.ts.map +1 -1
  4. package/dist/components/hx-accordion/hx-accordion.d.ts +3 -0
  5. package/dist/components/hx-accordion/hx-accordion.d.ts.map +1 -1
  6. package/dist/components/hx-accordion/index.js +1 -1
  7. package/dist/components/hx-action-bar/hx-action-bar.d.ts +14 -0
  8. package/dist/components/hx-action-bar/hx-action-bar.d.ts.map +1 -1
  9. package/dist/components/hx-action-bar/index.js +1 -1
  10. package/dist/components/hx-alert/hx-alert.d.ts +36 -0
  11. package/dist/components/hx-alert/hx-alert.d.ts.map +1 -1
  12. package/dist/components/hx-alert/hx-alert.styles.d.ts +12 -0
  13. package/dist/components/hx-alert/hx-alert.styles.d.ts.map +1 -1
  14. package/dist/components/hx-alert/index.js +1 -1
  15. package/dist/components/hx-avatar/hx-avatar.d.ts +17 -0
  16. package/dist/components/hx-avatar/hx-avatar.d.ts.map +1 -1
  17. package/dist/components/hx-avatar/index.js +1 -1
  18. package/dist/components/hx-badge/hx-badge.d.ts +35 -0
  19. package/dist/components/hx-badge/hx-badge.d.ts.map +1 -1
  20. package/dist/components/hx-badge/index.js +1 -1
  21. package/dist/components/hx-banner/hx-banner.d.ts +34 -0
  22. package/dist/components/hx-banner/hx-banner.d.ts.map +1 -1
  23. package/dist/components/hx-banner/hx-banner.styles.d.ts +12 -0
  24. package/dist/components/hx-banner/hx-banner.styles.d.ts.map +1 -1
  25. package/dist/components/hx-banner/index.js +1 -1
  26. package/dist/components/hx-breadcrumb/hx-breadcrumb-item.d.ts.map +1 -1
  27. package/dist/components/hx-breadcrumb/hx-breadcrumb-item.styles.d.ts.map +1 -1
  28. package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts +3 -0
  29. package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts.map +1 -1
  30. package/dist/components/hx-breadcrumb/index.js +1 -1
  31. package/dist/components/hx-button/hx-button.d.ts +44 -7
  32. package/dist/components/hx-button/hx-button.d.ts.map +1 -1
  33. package/dist/components/hx-button/hx-button.styles.d.ts.map +1 -1
  34. package/dist/components/hx-button/index.js +1 -1
  35. package/dist/components/hx-button-group/hx-button-group.d.ts +2 -0
  36. package/dist/components/hx-button-group/hx-button-group.d.ts.map +1 -1
  37. package/dist/components/hx-button-group/hx-button-group.styles.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 +28 -0
  40. package/dist/components/hx-card/hx-card.d.ts.map +1 -1
  41. package/dist/components/hx-card/hx-card.styles.d.ts +9 -0
  42. package/dist/components/hx-card/hx-card.styles.d.ts.map +1 -1
  43. package/dist/components/hx-card/index.js +1 -1
  44. package/dist/components/hx-carousel/hx-carousel.d.ts +25 -0
  45. package/dist/components/hx-carousel/hx-carousel.d.ts.map +1 -1
  46. package/dist/components/hx-carousel/hx-carousel.styles.d.ts.map +1 -1
  47. package/dist/components/hx-carousel/index.js +1 -1
  48. package/dist/components/hx-checkbox/hx-checkbox.d.ts +38 -7
  49. package/dist/components/hx-checkbox/hx-checkbox.d.ts.map +1 -1
  50. package/dist/components/hx-checkbox/index.js +1 -1
  51. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts +16 -2
  52. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts.map +1 -1
  53. package/dist/components/hx-checkbox-group/index.js +1 -1
  54. package/dist/components/hx-clinical-status/hx-clinical-status.d.ts +37 -0
  55. package/dist/components/hx-clinical-status/hx-clinical-status.d.ts.map +1 -1
  56. package/dist/components/hx-clinical-status/hx-clinical-status.styles.d.ts.map +1 -1
  57. package/dist/components/hx-clinical-status/index.js +1 -1
  58. package/dist/components/hx-code-snippet/hx-code-snippet.d.ts +35 -0
  59. package/dist/components/hx-code-snippet/hx-code-snippet.d.ts.map +1 -1
  60. package/dist/components/hx-code-snippet/hx-code-snippet.styles.d.ts.map +1 -1
  61. package/dist/components/hx-code-snippet/index.js +1 -1
  62. package/dist/components/hx-color-picker/hx-color-picker.d.ts +29 -0
  63. package/dist/components/hx-color-picker/hx-color-picker.d.ts.map +1 -1
  64. package/dist/components/hx-color-picker/hx-color-picker.styles.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 +49 -0
  67. package/dist/components/hx-combobox/hx-combobox.d.ts.map +1 -1
  68. package/dist/components/hx-combobox/index.js +1 -1
  69. package/dist/components/hx-container/hx-container.d.ts +5 -0
  70. package/dist/components/hx-container/hx-container.d.ts.map +1 -1
  71. package/dist/components/hx-copy-button/hx-copy-button.d.ts +24 -0
  72. package/dist/components/hx-copy-button/hx-copy-button.d.ts.map +1 -1
  73. package/dist/components/hx-copy-button/hx-copy-button.styles.d.ts.map +1 -1
  74. package/dist/components/hx-copy-button/index.js +1 -1
  75. package/dist/components/hx-counter/hx-counter.d.ts +7 -0
  76. package/dist/components/hx-counter/hx-counter.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 +29 -0
  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 +44 -0
  83. package/dist/components/hx-date-picker/hx-date-picker.d.ts.map +1 -1
  84. package/dist/components/hx-date-picker/index.js +1 -1
  85. package/dist/components/hx-dialog/hx-dialog.d.ts +31 -0
  86. package/dist/components/hx-dialog/hx-dialog.d.ts.map +1 -1
  87. package/dist/components/hx-dialog/hx-dialog.styles.d.ts +10 -0
  88. package/dist/components/hx-dialog/hx-dialog.styles.d.ts.map +1 -1
  89. package/dist/components/hx-dialog/index.js +1 -1
  90. package/dist/components/hx-divider/hx-divider.d.ts +9 -0
  91. package/dist/components/hx-divider/hx-divider.d.ts.map +1 -1
  92. package/dist/components/hx-divider/index.js +1 -1
  93. package/dist/components/hx-drawer/hx-drawer.d.ts +30 -0
  94. package/dist/components/hx-drawer/hx-drawer.d.ts.map +1 -1
  95. package/dist/components/hx-drawer/hx-drawer.styles.d.ts +10 -0
  96. package/dist/components/hx-drawer/hx-drawer.styles.d.ts.map +1 -1
  97. package/dist/components/hx-drawer/index.js +1 -1
  98. package/dist/components/hx-dropdown/hx-dropdown.d.ts +6 -0
  99. package/dist/components/hx-dropdown/hx-dropdown.d.ts.map +1 -1
  100. package/dist/components/hx-dropdown/index.js +1 -1
  101. package/dist/components/hx-field/hx-field.d.ts +15 -0
  102. package/dist/components/hx-field/hx-field.d.ts.map +1 -1
  103. package/dist/components/hx-field/index.js +1 -1
  104. package/dist/components/hx-field-label/hx-field-label.d.ts +11 -0
  105. package/dist/components/hx-field-label/hx-field-label.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 +35 -0
  108. package/dist/components/hx-file-upload/hx-file-upload.d.ts.map +1 -1
  109. package/dist/components/hx-file-upload/hx-file-upload.styles.d.ts.map +1 -1
  110. package/dist/components/hx-file-upload/index.js +1 -1
  111. package/dist/components/hx-form/index.js +1 -1
  112. package/dist/components/hx-grid/hx-grid.d.ts +5 -0
  113. package/dist/components/hx-grid/hx-grid.d.ts.map +1 -1
  114. package/dist/components/hx-help-text/hx-help-text.d.ts +8 -0
  115. package/dist/components/hx-help-text/hx-help-text.d.ts.map +1 -1
  116. package/dist/components/hx-help-text/index.js +1 -1
  117. package/dist/components/hx-icon/hx-icon.d.ts +5 -0
  118. package/dist/components/hx-icon/hx-icon.d.ts.map +1 -1
  119. package/dist/components/hx-icon/index.js +1 -1
  120. package/dist/components/hx-icon-button/hx-icon-button.d.ts +27 -0
  121. package/dist/components/hx-icon-button/hx-icon-button.d.ts.map +1 -1
  122. package/dist/components/hx-icon-button/hx-icon-button.styles.d.ts.map +1 -1
  123. package/dist/components/hx-icon-button/index.js +1 -1
  124. package/dist/components/hx-image/hx-image.d.ts +4 -0
  125. package/dist/components/hx-image/hx-image.d.ts.map +1 -1
  126. package/dist/components/hx-image/index.js +1 -1
  127. package/dist/components/hx-link/hx-link.d.ts +15 -0
  128. package/dist/components/hx-link/hx-link.d.ts.map +1 -1
  129. package/dist/components/hx-link/index.js +1 -1
  130. package/dist/components/hx-list/hx-list-item.d.ts.map +1 -1
  131. package/dist/components/hx-list/hx-list.d.ts +3 -0
  132. package/dist/components/hx-list/hx-list.d.ts.map +1 -1
  133. package/dist/components/hx-list/index.js +1 -1
  134. package/dist/components/hx-menu/hx-menu-divider.d.ts.map +1 -1
  135. package/dist/components/hx-menu/hx-menu-item.d.ts.map +1 -1
  136. package/dist/components/hx-menu/hx-menu.d.ts +6 -0
  137. package/dist/components/hx-menu/hx-menu.d.ts.map +1 -1
  138. package/dist/components/hx-menu/index.js +1 -1
  139. package/dist/components/hx-meter/hx-meter.d.ts +23 -0
  140. package/dist/components/hx-meter/hx-meter.d.ts.map +1 -1
  141. package/dist/components/hx-meter/index.js +1 -1
  142. package/dist/components/hx-nav/hx-nav.d.ts +29 -0
  143. package/dist/components/hx-nav/hx-nav.d.ts.map +1 -1
  144. package/dist/components/hx-nav/index.js +1 -1
  145. package/dist/components/hx-number-input/hx-number-input.d.ts +34 -0
  146. package/dist/components/hx-number-input/hx-number-input.d.ts.map +1 -1
  147. package/dist/components/hx-number-input/index.js +1 -1
  148. package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts +26 -0
  149. package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts.map +1 -1
  150. package/dist/components/hx-overflow-menu/hx-overflow-menu.styles.d.ts.map +1 -1
  151. package/dist/components/hx-overflow-menu/index.js +1 -1
  152. package/dist/components/hx-pagination/hx-pagination.d.ts +21 -0
  153. package/dist/components/hx-pagination/hx-pagination.d.ts.map +1 -1
  154. package/dist/components/hx-pagination/index.js +1 -1
  155. package/dist/components/hx-patient-banner/hx-patient-banner.d.ts +23 -0
  156. package/dist/components/hx-patient-banner/hx-patient-banner.d.ts.map +1 -1
  157. package/dist/components/hx-patient-banner/hx-patient-banner.styles.d.ts.map +1 -1
  158. package/dist/components/hx-patient-banner/index.js +1 -1
  159. package/dist/components/hx-phi-field/hx-phi-field.d.ts +19 -5
  160. package/dist/components/hx-phi-field/hx-phi-field.d.ts.map +1 -1
  161. package/dist/components/hx-phi-field/hx-phi-field.styles.d.ts.map +1 -1
  162. package/dist/components/hx-phi-field/index.js +1 -1
  163. package/dist/components/hx-popover/hx-popover.d.ts +15 -0
  164. package/dist/components/hx-popover/hx-popover.d.ts.map +1 -1
  165. package/dist/components/hx-popover/hx-popover.styles.d.ts +9 -0
  166. package/dist/components/hx-popover/hx-popover.styles.d.ts.map +1 -1
  167. package/dist/components/hx-popover/index.js +1 -1
  168. package/dist/components/hx-popup/hx-popup.d.ts +1 -0
  169. package/dist/components/hx-popup/hx-popup.d.ts.map +1 -1
  170. package/dist/components/hx-popup/hx-popup.styles.d.ts +9 -0
  171. package/dist/components/hx-popup/hx-popup.styles.d.ts.map +1 -1
  172. package/dist/components/hx-popup/index.js +1 -1
  173. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts +17 -0
  174. package/dist/components/hx-progress-bar/hx-progress-bar.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 +15 -0
  177. package/dist/components/hx-progress-ring/hx-progress-ring.d.ts.map +1 -1
  178. package/dist/components/hx-progress-ring/index.js +1 -1
  179. package/dist/components/hx-prose/hx-prose.d.ts +2 -0
  180. package/dist/components/hx-prose/hx-prose.d.ts.map +1 -1
  181. package/dist/components/hx-prose/index.js +1 -1
  182. package/dist/components/hx-radio-group/hx-radio-group.d.ts +17 -3
  183. package/dist/components/hx-radio-group/hx-radio-group.d.ts.map +1 -1
  184. package/dist/components/hx-radio-group/hx-radio.d.ts +5 -5
  185. package/dist/components/hx-radio-group/hx-radio.d.ts.map +1 -1
  186. package/dist/components/hx-radio-group/index.js +1 -1
  187. package/dist/components/hx-rating/hx-rating.d.ts +13 -0
  188. package/dist/components/hx-rating/hx-rating.d.ts.map +1 -1
  189. package/dist/components/hx-rating/index.js +1 -1
  190. package/dist/components/hx-select/hx-select.d.ts +43 -0
  191. package/dist/components/hx-select/hx-select.d.ts.map +1 -1
  192. package/dist/components/hx-select/hx-select.styles.d.ts.map +1 -1
  193. package/dist/components/hx-select/index.js +1 -1
  194. package/dist/components/hx-side-nav/hx-nav-item.d.ts +7 -5
  195. package/dist/components/hx-side-nav/hx-nav-item.d.ts.map +1 -1
  196. package/dist/components/hx-side-nav/hx-nav-item.styles.d.ts.map +1 -1
  197. package/dist/components/hx-side-nav/hx-side-nav.d.ts +9 -4
  198. package/dist/components/hx-side-nav/hx-side-nav.d.ts.map +1 -1
  199. package/dist/components/hx-side-nav/hx-side-nav.styles.d.ts.map +1 -1
  200. package/dist/components/hx-side-nav/index.js +1 -1
  201. package/dist/components/hx-skeleton/hx-skeleton.d.ts +5 -0
  202. package/dist/components/hx-skeleton/hx-skeleton.d.ts.map +1 -1
  203. package/dist/components/hx-skeleton/index.js +1 -1
  204. package/dist/components/hx-slider/hx-slider.d.ts +38 -0
  205. package/dist/components/hx-slider/hx-slider.d.ts.map +1 -1
  206. package/dist/components/hx-slider/hx-slider.styles.d.ts.map +1 -1
  207. package/dist/components/hx-slider/index.js +1 -1
  208. package/dist/components/hx-spinner/hx-spinner.d.ts +10 -0
  209. package/dist/components/hx-spinner/hx-spinner.d.ts.map +1 -1
  210. package/dist/components/hx-spinner/index.js +1 -1
  211. package/dist/components/hx-split-button/hx-split-button.d.ts +40 -1
  212. package/dist/components/hx-split-button/hx-split-button.d.ts.map +1 -1
  213. package/dist/components/hx-split-button/hx-split-button.styles.d.ts.map +1 -1
  214. package/dist/components/hx-split-button/index.js +1 -1
  215. package/dist/components/hx-split-panel/hx-split-panel.d.ts +12 -0
  216. package/dist/components/hx-split-panel/hx-split-panel.d.ts.map +1 -1
  217. package/dist/components/hx-split-panel/hx-split-panel.styles.d.ts.map +1 -1
  218. package/dist/components/hx-split-panel/index.js +1 -1
  219. package/dist/components/hx-stack/hx-stack.d.ts +5 -0
  220. package/dist/components/hx-stack/hx-stack.d.ts.map +1 -1
  221. package/dist/components/hx-stat/hx-stat.d.ts +24 -0
  222. package/dist/components/hx-stat/hx-stat.d.ts.map +1 -1
  223. package/dist/components/hx-stat/index.js +1 -1
  224. package/dist/components/hx-status-indicator/hx-status-indicator.d.ts +13 -0
  225. package/dist/components/hx-status-indicator/hx-status-indicator.d.ts.map +1 -1
  226. package/dist/components/hx-status-indicator/index.js +1 -1
  227. package/dist/components/hx-steps/hx-step.d.ts.map +1 -1
  228. package/dist/components/hx-steps/hx-step.styles.d.ts.map +1 -1
  229. package/dist/components/hx-steps/hx-steps.d.ts +15 -0
  230. package/dist/components/hx-steps/hx-steps.d.ts.map +1 -1
  231. package/dist/components/hx-steps/index.js +1 -1
  232. package/dist/components/hx-structured-list/hx-structured-list.d.ts +7 -0
  233. package/dist/components/hx-structured-list/hx-structured-list.d.ts.map +1 -1
  234. package/dist/components/hx-structured-list/index.js +1 -1
  235. package/dist/components/hx-switch/hx-switch.d.ts +42 -0
  236. package/dist/components/hx-switch/hx-switch.d.ts.map +1 -1
  237. package/dist/components/hx-switch/hx-switch.styles.d.ts.map +1 -1
  238. package/dist/components/hx-switch/index.js +1 -1
  239. package/dist/components/hx-table/hx-table.d.ts +20 -6
  240. package/dist/components/hx-table/hx-table.d.ts.map +1 -1
  241. package/dist/components/hx-table/hx-table.styles.d.ts.map +1 -1
  242. package/dist/components/hx-table/hx-td.d.ts +1 -1
  243. package/dist/components/hx-table/index.js +1 -1
  244. package/dist/components/hx-tabs/hx-tab-panel.d.ts +2 -2
  245. package/dist/components/hx-tabs/hx-tab-panel.d.ts.map +1 -1
  246. package/dist/components/hx-tabs/hx-tab.d.ts +6 -6
  247. package/dist/components/hx-tabs/hx-tab.d.ts.map +1 -1
  248. package/dist/components/hx-tabs/hx-tabs.d.ts +12 -8
  249. package/dist/components/hx-tabs/hx-tabs.d.ts.map +1 -1
  250. package/dist/components/hx-tabs/index.js +1 -1
  251. package/dist/components/hx-tag/hx-tag.d.ts +36 -0
  252. package/dist/components/hx-tag/hx-tag.d.ts.map +1 -1
  253. package/dist/components/hx-tag/index.js +1 -1
  254. package/dist/components/hx-text/hx-text.d.ts +22 -0
  255. package/dist/components/hx-text/hx-text.d.ts.map +1 -1
  256. package/dist/components/hx-text/hx-text.styles.d.ts.map +1 -1
  257. package/dist/components/hx-text/index.js +1 -1
  258. package/dist/components/hx-text-input/hx-text-input.d.ts +18 -5
  259. package/dist/components/hx-text-input/hx-text-input.d.ts.map +1 -1
  260. package/dist/components/hx-text-input/hx-text-input.styles.d.ts +12 -0
  261. package/dist/components/hx-text-input/hx-text-input.styles.d.ts.map +1 -1
  262. package/dist/components/hx-text-input/index.js +1 -1
  263. package/dist/components/hx-textarea/hx-textarea.d.ts +27 -0
  264. package/dist/components/hx-textarea/hx-textarea.d.ts.map +1 -1
  265. package/dist/components/hx-textarea/hx-textarea.styles.d.ts.map +1 -1
  266. package/dist/components/hx-textarea/index.js +1 -1
  267. package/dist/components/hx-theme/hx-theme.d.ts +3 -0
  268. package/dist/components/hx-theme/hx-theme.d.ts.map +1 -1
  269. package/dist/components/hx-theme/index.js +1 -1
  270. package/dist/components/hx-time-picker/hx-time-picker.d.ts +32 -0
  271. package/dist/components/hx-time-picker/hx-time-picker.d.ts.map +1 -1
  272. package/dist/components/hx-time-picker/hx-time-picker.styles.d.ts.map +1 -1
  273. package/dist/components/hx-time-picker/index.js +1 -1
  274. package/dist/components/hx-toast/hx-toast.d.ts +30 -2
  275. package/dist/components/hx-toast/hx-toast.d.ts.map +1 -1
  276. package/dist/components/hx-toast/hx-toast.styles.d.ts +10 -0
  277. package/dist/components/hx-toast/hx-toast.styles.d.ts.map +1 -1
  278. package/dist/components/hx-toast/index.js +1 -1
  279. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts +35 -0
  280. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts.map +1 -1
  281. package/dist/components/hx-toggle-button/hx-toggle-button.styles.d.ts.map +1 -1
  282. package/dist/components/hx-toggle-button/index.js +1 -1
  283. package/dist/components/hx-tooltip/hx-tooltip.d.ts +13 -0
  284. package/dist/components/hx-tooltip/hx-tooltip.d.ts.map +1 -1
  285. package/dist/components/hx-tooltip/hx-tooltip.styles.d.ts +8 -0
  286. package/dist/components/hx-tooltip/hx-tooltip.styles.d.ts.map +1 -1
  287. package/dist/components/hx-tooltip/index.js +1 -1
  288. package/dist/components/hx-top-nav/hx-top-nav.d.ts +21 -0
  289. package/dist/components/hx-top-nav/hx-top-nav.d.ts.map +1 -1
  290. package/dist/components/hx-top-nav/index.js +1 -1
  291. package/dist/components/hx-tree-view/hx-tree-item.d.ts.map +1 -1
  292. package/dist/components/hx-tree-view/hx-tree-view.d.ts +6 -0
  293. package/dist/components/hx-tree-view/hx-tree-view.d.ts.map +1 -1
  294. package/dist/components/hx-tree-view/index.js +1 -1
  295. package/dist/css/helix-all.css +1286 -889
  296. package/dist/css/helix-core.css +322 -167
  297. package/dist/css/helix-data.css +54 -46
  298. package/dist/css/helix-feedback.css +132 -95
  299. package/dist/css/helix-forms.css +499 -349
  300. package/dist/css/helix-layout.css +9 -12
  301. package/dist/css/helix-media.css +16 -12
  302. package/dist/css/helix-navigation.css +86 -66
  303. package/dist/css/helix-overlay.css +62 -56
  304. package/dist/css/helix-tokens.css +173 -106
  305. package/dist/css/helix-utility.css +57 -40
  306. package/dist/css/hx-action-bar.css +5 -5
  307. package/dist/css/hx-alert.css +27 -23
  308. package/dist/css/hx-avatar.css +3 -3
  309. package/dist/css/hx-badge.css +22 -22
  310. package/dist/css/hx-banner.css +31 -24
  311. package/dist/css/hx-button-group.css +31 -14
  312. package/dist/css/hx-button.css +151 -34
  313. package/dist/css/hx-card.css +23 -12
  314. package/dist/css/hx-carousel.css +16 -12
  315. package/dist/css/hx-checkbox-group.css +5 -5
  316. package/dist/css/hx-checkbox.css +19 -19
  317. package/dist/css/hx-clinical-status.css +28 -30
  318. package/dist/css/hx-code-snippet.css +26 -18
  319. package/dist/css/hx-color-picker.css +20 -13
  320. package/dist/css/hx-combobox.css +31 -31
  321. package/dist/css/hx-copy-button.css +6 -3
  322. package/dist/css/hx-counter.css +1 -1
  323. package/dist/css/hx-data-table.css +16 -15
  324. package/dist/css/hx-date-picker.css +34 -34
  325. package/dist/css/hx-dialog.css +31 -27
  326. package/dist/css/hx-divider.css +2 -2
  327. package/dist/css/hx-drawer.css +18 -18
  328. package/dist/css/hx-dropdown.css +2 -2
  329. package/dist/css/hx-field-label.css +3 -3
  330. package/dist/css/hx-field.css +6 -6
  331. package/dist/css/hx-file-upload.css +21 -30
  332. package/dist/css/hx-help-text.css +5 -5
  333. package/dist/css/hx-icon-button.css +46 -38
  334. package/dist/css/hx-image.css +3 -3
  335. package/dist/css/hx-link.css +9 -9
  336. package/dist/css/hx-list.css +1 -1
  337. package/dist/css/hx-menu.css +2 -2
  338. package/dist/css/hx-meter.css +10 -10
  339. package/dist/css/hx-nav.css +11 -11
  340. package/dist/css/hx-number-input.css +18 -18
  341. package/dist/css/hx-overflow-menu.css +18 -15
  342. package/dist/css/hx-pagination.css +15 -15
  343. package/dist/css/hx-patient-banner.css +17 -9
  344. package/dist/css/hx-phi-field.css +4 -7
  345. package/dist/css/hx-popover.css +7 -6
  346. package/dist/css/hx-progress-bar.css +7 -7
  347. package/dist/css/hx-progress-ring.css +6 -6
  348. package/dist/css/hx-radio-group.css +5 -5
  349. package/dist/css/hx-rating.css +5 -5
  350. package/dist/css/hx-select.css +18 -16
  351. package/dist/css/hx-side-nav.css +28 -11
  352. package/dist/css/hx-skeleton.css +1 -1
  353. package/dist/css/hx-slider.css +15 -12
  354. package/dist/css/hx-spinner.css +4 -4
  355. package/dist/css/hx-split-button.css +45 -31
  356. package/dist/css/hx-split-panel.css +9 -12
  357. package/dist/css/hx-stat.css +8 -8
  358. package/dist/css/hx-status-indicator.css +7 -7
  359. package/dist/css/hx-structured-list.css +5 -5
  360. package/dist/css/hx-switch.css +16 -8
  361. package/dist/css/hx-table.css +6 -7
  362. package/dist/css/hx-tabs.css +3 -3
  363. package/dist/css/hx-tag.css +18 -18
  364. package/dist/css/hx-text-input.css +139 -61
  365. package/dist/css/hx-text.css +9 -7
  366. package/dist/css/hx-textarea.css +66 -27
  367. package/dist/css/hx-time-picker.css +27 -21
  368. package/dist/css/hx-toast.css +36 -10
  369. package/dist/css/hx-toggle-button.css +46 -30
  370. package/dist/css/hx-tooltip.css +4 -3
  371. package/dist/css/hx-top-nav.css +8 -8
  372. package/dist/css/hx-tree-view.css +1 -1
  373. package/dist/css/index.css +1 -1
  374. package/dist/css/manifest.json +330 -230
  375. package/dist/index.js +75 -75
  376. package/dist/shared/forced-colors-CTEDFRGa.js +117 -0
  377. package/dist/shared/forced-colors-CTEDFRGa.js.map +1 -0
  378. package/dist/shared/{hx-accordion-Wt52OOZD.js → hx-accordion-ZVzgDzTG.js} +29 -29
  379. package/dist/shared/hx-accordion-ZVzgDzTG.js.map +1 -0
  380. package/dist/shared/{hx-action-bar-BKMADbHj.js → hx-action-bar-CitgcpGv.js} +38 -37
  381. package/dist/shared/hx-action-bar-CitgcpGv.js.map +1 -0
  382. package/dist/shared/{hx-alert-D7n94HwI.js → hx-alert-C597yHpD.js} +36 -31
  383. package/dist/shared/hx-alert-C597yHpD.js.map +1 -0
  384. package/dist/shared/{hx-avatar-iLYzu8MJ.js → hx-avatar-C9hOmlAb.js} +19 -18
  385. package/dist/shared/hx-avatar-C9hOmlAb.js.map +1 -0
  386. package/dist/shared/{hx-badge-CVCmMPyW.js → hx-badge-CQXgOXJM.js} +65 -64
  387. package/dist/shared/hx-badge-CQXgOXJM.js.map +1 -0
  388. package/dist/shared/{hx-banner-C_He7Tr4.js → hx-banner-Cxd7eFUP.js} +43 -35
  389. package/dist/shared/hx-banner-Cxd7eFUP.js.map +1 -0
  390. package/dist/shared/{hx-breadcrumb-item-CldCwD1d.js → hx-breadcrumb-item-3tKppF9h.js} +24 -26
  391. package/dist/shared/hx-breadcrumb-item-3tKppF9h.js.map +1 -0
  392. package/dist/shared/{hx-button-Ddl-T6T-.js → hx-button-9OUjJnk7.js} +172 -55
  393. package/dist/shared/hx-button-9OUjJnk7.js.map +1 -0
  394. package/dist/shared/{hx-button-group-BJOGWoMa.js → hx-button-group-BI-QBqmO.js} +45 -27
  395. package/dist/shared/hx-button-group-BI-QBqmO.js.map +1 -0
  396. package/dist/shared/{hx-card-ycveujjL.js → hx-card-qNAM2QNV.js} +49 -37
  397. package/dist/shared/hx-card-qNAM2QNV.js.map +1 -0
  398. package/dist/shared/{hx-carousel-item-D_dCv61-.js → hx-carousel-item-z1Lc24op.js} +41 -36
  399. package/dist/shared/hx-carousel-item-z1Lc24op.js.map +1 -0
  400. package/dist/shared/{hx-checkbox-DkkoWoye.js → hx-checkbox-DBD-gMoz.js} +42 -41
  401. package/dist/shared/hx-checkbox-DBD-gMoz.js.map +1 -0
  402. package/dist/shared/{hx-checkbox-group-C3poJ-Zw.js → hx-checkbox-group-C9n315Ju.js} +20 -19
  403. package/dist/shared/hx-checkbox-group-C9n315Ju.js.map +1 -0
  404. package/dist/shared/{hx-clinical-status-BS5lcddT.js → hx-clinical-status-D3XQIOqX.js} +55 -56
  405. package/dist/shared/hx-clinical-status-D3XQIOqX.js.map +1 -0
  406. package/dist/shared/{hx-code-snippet-B7wUKzyb.js → hx-code-snippet-B26RM1_C.js} +41 -32
  407. package/dist/shared/hx-code-snippet-B26RM1_C.js.map +1 -0
  408. package/dist/shared/{hx-color-picker-DBaKTVLr.js → hx-color-picker-uRc865FJ.js} +54 -46
  409. package/dist/shared/hx-color-picker-uRc865FJ.js.map +1 -0
  410. package/dist/shared/{hx-combobox-BmgYT7Ar.js → hx-combobox-ClhNRAS5.js} +46 -45
  411. package/dist/shared/hx-combobox-ClhNRAS5.js.map +1 -0
  412. package/dist/shared/hx-container-DVI7sxfX.js.map +1 -1
  413. package/dist/shared/{hx-copy-button-8deNUdwP.js → hx-copy-button-sUVuikyH.js} +23 -19
  414. package/dist/shared/hx-copy-button-sUVuikyH.js.map +1 -0
  415. package/dist/shared/{hx-counter-CKfl_g8K.js → hx-counter-0zYapFhf.js} +10 -9
  416. package/dist/shared/hx-counter-0zYapFhf.js.map +1 -0
  417. package/dist/shared/{hx-data-table-B6h0RPn0.js → hx-data-table-CLqVqdxr.js} +49 -47
  418. package/dist/shared/hx-data-table-CLqVqdxr.js.map +1 -0
  419. package/dist/shared/{hx-date-picker-Dq2Nb68_.js → hx-date-picker-BJm7Yrda.js} +45 -44
  420. package/dist/shared/hx-date-picker-BJm7Yrda.js.map +1 -0
  421. package/dist/shared/{hx-dialog-CvIlY0Tc.js → hx-dialog-DRN_1-Y-.js} +68 -63
  422. package/dist/shared/hx-dialog-DRN_1-Y-.js.map +1 -0
  423. package/dist/shared/{hx-divider-DwpOrzMW.js → hx-divider-CYfcUjcr.js} +18 -17
  424. package/dist/shared/hx-divider-CYfcUjcr.js.map +1 -0
  425. package/dist/shared/{hx-drawer-Cx2ZJhBe.js → hx-drawer-Y1Ui2IWJ.js} +31 -30
  426. package/dist/shared/hx-drawer-Y1Ui2IWJ.js.map +1 -0
  427. package/dist/shared/{hx-dropdown-BjDrPUq5.js → hx-dropdown-LyaRc8Rf.js} +16 -15
  428. package/dist/shared/hx-dropdown-LyaRc8Rf.js.map +1 -0
  429. package/dist/shared/{hx-field-Dp3qQMut.js → hx-field-B3Qo8OLS.js} +15 -15
  430. package/dist/shared/hx-field-B3Qo8OLS.js.map +1 -0
  431. package/dist/shared/{hx-field-label-BC8QViXv.js → hx-field-label-BVRyyKeh.js} +8 -7
  432. package/dist/shared/hx-field-label-BVRyyKeh.js.map +1 -0
  433. package/dist/shared/{hx-file-upload-B6Yl1u0i.js → hx-file-upload-D3rKROK5.js} +51 -59
  434. package/dist/shared/hx-file-upload-D3rKROK5.js.map +1 -0
  435. package/dist/shared/hx-form-CkChEATa.js +257 -0
  436. package/dist/shared/hx-form-CkChEATa.js.map +1 -0
  437. package/dist/shared/hx-grid-CXZf3jeK.js.map +1 -1
  438. package/dist/shared/{hx-help-text-D7eytSim.js → hx-help-text-Xb2Yr8x2.js} +30 -29
  439. package/dist/shared/hx-help-text-Xb2Yr8x2.js.map +1 -0
  440. package/dist/shared/{hx-icon-button-BHneqPCU.js → hx-icon-button-CGNdQSFM.js} +78 -69
  441. package/dist/shared/hx-icon-button-CGNdQSFM.js.map +1 -0
  442. package/dist/shared/{hx-icon-CcyDPDYY.js → hx-icon-fuVm4-bk.js} +15 -14
  443. package/dist/shared/hx-icon-fuVm4-bk.js.map +1 -0
  444. package/dist/shared/{hx-image-2gt14zZd.js → hx-image-Ben_4yM5.js} +18 -17
  445. package/dist/shared/hx-image-Ben_4yM5.js.map +1 -0
  446. package/dist/shared/{hx-link-BESrWK8M.js → hx-link-9Ig2DW6L.js} +20 -19
  447. package/dist/shared/hx-link-9Ig2DW6L.js.map +1 -0
  448. package/dist/shared/{hx-list-_9qVv02L.js → hx-list-CkphGi9T.js} +22 -21
  449. package/dist/shared/hx-list-CkphGi9T.js.map +1 -0
  450. package/dist/shared/{hx-menu-divider-Ck-9Os1t.js → hx-menu-divider-C2omnPtj.js} +50 -49
  451. package/dist/shared/hx-menu-divider-C2omnPtj.js.map +1 -0
  452. package/dist/shared/{hx-meter-TbROk-dw.js → hx-meter-BPscsw5t.js} +41 -40
  453. package/dist/shared/{hx-meter-TbROk-dw.js.map → hx-meter-BPscsw5t.js.map} +1 -1
  454. package/dist/shared/{hx-nav-item-pqPasRUm.js → hx-nav-item-CqbO5-T5.js} +143 -81
  455. package/dist/shared/hx-nav-item-CqbO5-T5.js.map +1 -0
  456. package/dist/shared/{hx-nav-BcYDmjf7.js → hx-nav-ldFM3Fle.js} +54 -53
  457. package/dist/shared/hx-nav-ldFM3Fle.js.map +1 -0
  458. package/dist/shared/{hx-number-input-mOIZ3-46.js → hx-number-input-yUzFOSC1.js} +68 -67
  459. package/dist/shared/hx-number-input-yUzFOSC1.js.map +1 -0
  460. package/dist/shared/{hx-overflow-menu-Dprb9lnT.js → hx-overflow-menu-DCLsdIBy.js} +33 -29
  461. package/dist/shared/hx-overflow-menu-DCLsdIBy.js.map +1 -0
  462. package/dist/shared/{hx-pagination-AguTQjYC.js → hx-pagination-C7y8GVyU.js} +43 -42
  463. package/dist/shared/hx-pagination-C7y8GVyU.js.map +1 -0
  464. package/dist/shared/{hx-patient-banner-uE6gqLpT.js → hx-patient-banner-CkS-Lmj4.js} +29 -20
  465. package/dist/shared/hx-patient-banner-CkS-Lmj4.js.map +1 -0
  466. package/dist/shared/{hx-phi-field-BC_XowhC.js → hx-phi-field-C19oxlrr.js} +13 -15
  467. package/dist/shared/hx-phi-field-C19oxlrr.js.map +1 -0
  468. package/dist/shared/{hx-popover-B2_203ct.js → hx-popover-B-FP3-wW.js} +31 -29
  469. package/dist/shared/hx-popover-B-FP3-wW.js.map +1 -0
  470. package/dist/shared/{hx-popup-DZXpsJ1R.js → hx-popup-COUXXZ9X.js} +8 -7
  471. package/dist/shared/hx-popup-COUXXZ9X.js.map +1 -0
  472. package/dist/shared/{hx-progress-bar-KjEkEJLy.js → hx-progress-bar-Bn3JEPUf.js} +28 -27
  473. package/dist/shared/hx-progress-bar-Bn3JEPUf.js.map +1 -0
  474. package/dist/shared/{hx-progress-ring-3zMwvrwD.js → hx-progress-ring-TwHyXeEp.js} +15 -14
  475. package/dist/shared/hx-progress-ring-TwHyXeEp.js.map +1 -0
  476. package/dist/shared/{hx-prose-BCtK7YL6.js → hx-prose-BThYcASV.js} +12 -12
  477. package/dist/shared/{hx-prose-BCtK7YL6.js.map → hx-prose-BThYcASV.js.map} +1 -1
  478. package/dist/shared/{hx-radio-BBC5qZgE.js → hx-radio-dFjUAost.js} +38 -37
  479. package/dist/shared/hx-radio-dFjUAost.js.map +1 -0
  480. package/dist/shared/{hx-rating-C3E3ENJb.js → hx-rating-CGtsejNf.js} +38 -37
  481. package/dist/shared/hx-rating-CGtsejNf.js.map +1 -0
  482. package/dist/shared/{hx-select-CixTo7jp.js → hx-select-Bf4usFts.js} +64 -61
  483. package/dist/shared/hx-select-Bf4usFts.js.map +1 -0
  484. package/dist/shared/{hx-skeleton-LxkI0pxr.js → hx-skeleton-Cnieh5Uc.js} +14 -13
  485. package/dist/shared/hx-skeleton-Cnieh5Uc.js.map +1 -0
  486. package/dist/shared/{hx-slider-DFHuzF3N.js → hx-slider-m0aEClH1.js} +83 -79
  487. package/dist/shared/hx-slider-m0aEClH1.js.map +1 -0
  488. package/dist/shared/{hx-spinner-BKjuCdZB.js → hx-spinner-DL5AYr16.js} +18 -17
  489. package/dist/shared/hx-spinner-DL5AYr16.js.map +1 -0
  490. package/dist/shared/{hx-split-button-CGcJMmCG.js → hx-split-button-BxDFfx4D.js} +74 -59
  491. package/dist/shared/hx-split-button-BxDFfx4D.js.map +1 -0
  492. package/dist/shared/{hx-split-panel-C-1R10Mc.js → hx-split-panel-B-u0Z3mm.js} +16 -18
  493. package/dist/shared/hx-split-panel-B-u0Z3mm.js.map +1 -0
  494. package/dist/shared/hx-stack-DGfcOfWJ.js.map +1 -1
  495. package/dist/shared/{hx-stat-BTpykQAt.js → hx-stat-WOcNV1Ry.js} +16 -15
  496. package/dist/shared/hx-stat-WOcNV1Ry.js.map +1 -0
  497. package/dist/shared/{hx-status-indicator-X2QEWNFt.js → hx-status-indicator-BlQyen43.js} +17 -16
  498. package/dist/shared/hx-status-indicator-BlQyen43.js.map +1 -0
  499. package/dist/shared/{hx-step-CRNQlmSo.js → hx-step-R2rjp1fT.js} +60 -50
  500. package/dist/shared/hx-step-R2rjp1fT.js.map +1 -0
  501. package/dist/shared/{hx-structured-list-CqNbaEXg.js → hx-structured-list-m_-dMJbC.js} +18 -17
  502. package/dist/shared/hx-structured-list-m_-dMJbC.js.map +1 -0
  503. package/dist/shared/{hx-switch-DqOD9JR7.js → hx-switch-DvAW4YY-.js} +29 -20
  504. package/dist/shared/hx-switch-DvAW4YY-.js.map +1 -0
  505. package/dist/shared/{hx-tab-panel-BIzKfW5i.js → hx-tab-panel-SWOEHuJc.js} +45 -44
  506. package/dist/shared/hx-tab-panel-SWOEHuJc.js.map +1 -0
  507. package/dist/shared/{hx-tag-CgnrNnte.js → hx-tag-CNSmdyaK.js} +63 -62
  508. package/dist/shared/hx-tag-CNSmdyaK.js.map +1 -0
  509. package/dist/shared/{hx-td-Bra35cH4.js → hx-td-DnnEMIuA.js} +62 -62
  510. package/dist/shared/hx-td-DnnEMIuA.js.map +1 -0
  511. package/dist/shared/{hx-text-DMC2CPlL.js → hx-text-Bz_9fJ3J.js} +28 -25
  512. package/dist/shared/hx-text-Bz_9fJ3J.js.map +1 -0
  513. package/dist/shared/{hx-text-input--q0GH78x.js → hx-text-input-Bn7Gn8CI.js} +150 -72
  514. package/dist/shared/hx-text-input-Bn7Gn8CI.js.map +1 -0
  515. package/dist/shared/{hx-textarea-CK621vSL.js → hx-textarea-Jx1xnhgv.js} +108 -68
  516. package/dist/shared/hx-textarea-Jx1xnhgv.js.map +1 -0
  517. package/dist/shared/{hx-theme-DfEy-SJA.js → hx-theme-BiyQ7UUK.js} +46 -35
  518. package/dist/shared/hx-theme-BiyQ7UUK.js.map +1 -0
  519. package/dist/shared/{hx-time-picker-tPUfgElQ.js → hx-time-picker-BoEIZwzv.js} +59 -52
  520. package/dist/shared/hx-time-picker-BoEIZwzv.js.map +1 -0
  521. package/dist/shared/{hx-toggle-button-L-uBJr-a.js → hx-toggle-button-DPAIh_Xo.js} +86 -69
  522. package/dist/shared/hx-toggle-button-DPAIh_Xo.js.map +1 -0
  523. package/dist/shared/{hx-tooltip-B_zfKvwc.js → hx-tooltip-nYOv9OLu.js} +18 -16
  524. package/dist/shared/hx-tooltip-nYOv9OLu.js.map +1 -0
  525. package/dist/shared/{hx-top-nav-CATbRvIv.js → hx-top-nav-DP6OFS8C.js} +31 -30
  526. package/dist/shared/hx-top-nav-DP6OFS8C.js.map +1 -0
  527. package/dist/shared/{hx-tree-item-A45WCiBu.js → hx-tree-item-Dt0Ozqyr.js} +29 -28
  528. package/dist/shared/hx-tree-item-Dt0Ozqyr.js.map +1 -0
  529. package/dist/shared/{toast-factory-BPPnG3mM.js → toast-factory-YSznocIV.js} +98 -72
  530. package/dist/shared/toast-factory-YSznocIV.js.map +1 -0
  531. package/dist/styles/forced-colors.d.ts +60 -0
  532. package/dist/styles/forced-colors.d.ts.map +1 -0
  533. package/figma-inventory.json +8690 -827
  534. package/package.json +2 -2
  535. package/dist/shared/hx-accordion-Wt52OOZD.js.map +0 -1
  536. package/dist/shared/hx-action-bar-BKMADbHj.js.map +0 -1
  537. package/dist/shared/hx-alert-D7n94HwI.js.map +0 -1
  538. package/dist/shared/hx-avatar-iLYzu8MJ.js.map +0 -1
  539. package/dist/shared/hx-badge-CVCmMPyW.js.map +0 -1
  540. package/dist/shared/hx-banner-C_He7Tr4.js.map +0 -1
  541. package/dist/shared/hx-breadcrumb-item-CldCwD1d.js.map +0 -1
  542. package/dist/shared/hx-button-Ddl-T6T-.js.map +0 -1
  543. package/dist/shared/hx-button-group-BJOGWoMa.js.map +0 -1
  544. package/dist/shared/hx-card-ycveujjL.js.map +0 -1
  545. package/dist/shared/hx-carousel-item-D_dCv61-.js.map +0 -1
  546. package/dist/shared/hx-checkbox-DkkoWoye.js.map +0 -1
  547. package/dist/shared/hx-checkbox-group-C3poJ-Zw.js.map +0 -1
  548. package/dist/shared/hx-clinical-status-BS5lcddT.js.map +0 -1
  549. package/dist/shared/hx-code-snippet-B7wUKzyb.js.map +0 -1
  550. package/dist/shared/hx-color-picker-DBaKTVLr.js.map +0 -1
  551. package/dist/shared/hx-combobox-BmgYT7Ar.js.map +0 -1
  552. package/dist/shared/hx-copy-button-8deNUdwP.js.map +0 -1
  553. package/dist/shared/hx-counter-CKfl_g8K.js.map +0 -1
  554. package/dist/shared/hx-data-table-B6h0RPn0.js.map +0 -1
  555. package/dist/shared/hx-date-picker-Dq2Nb68_.js.map +0 -1
  556. package/dist/shared/hx-dialog-CvIlY0Tc.js.map +0 -1
  557. package/dist/shared/hx-divider-DwpOrzMW.js.map +0 -1
  558. package/dist/shared/hx-drawer-Cx2ZJhBe.js.map +0 -1
  559. package/dist/shared/hx-dropdown-BjDrPUq5.js.map +0 -1
  560. package/dist/shared/hx-field-Dp3qQMut.js.map +0 -1
  561. package/dist/shared/hx-field-label-BC8QViXv.js.map +0 -1
  562. package/dist/shared/hx-file-upload-B6Yl1u0i.js.map +0 -1
  563. package/dist/shared/hx-form-ButQFt9A.js +0 -257
  564. package/dist/shared/hx-form-ButQFt9A.js.map +0 -1
  565. package/dist/shared/hx-help-text-D7eytSim.js.map +0 -1
  566. package/dist/shared/hx-icon-CcyDPDYY.js.map +0 -1
  567. package/dist/shared/hx-icon-button-BHneqPCU.js.map +0 -1
  568. package/dist/shared/hx-image-2gt14zZd.js.map +0 -1
  569. package/dist/shared/hx-link-BESrWK8M.js.map +0 -1
  570. package/dist/shared/hx-list-_9qVv02L.js.map +0 -1
  571. package/dist/shared/hx-menu-divider-Ck-9Os1t.js.map +0 -1
  572. package/dist/shared/hx-nav-BcYDmjf7.js.map +0 -1
  573. package/dist/shared/hx-nav-item-pqPasRUm.js.map +0 -1
  574. package/dist/shared/hx-number-input-mOIZ3-46.js.map +0 -1
  575. package/dist/shared/hx-overflow-menu-Dprb9lnT.js.map +0 -1
  576. package/dist/shared/hx-pagination-AguTQjYC.js.map +0 -1
  577. package/dist/shared/hx-patient-banner-uE6gqLpT.js.map +0 -1
  578. package/dist/shared/hx-phi-field-BC_XowhC.js.map +0 -1
  579. package/dist/shared/hx-popover-B2_203ct.js.map +0 -1
  580. package/dist/shared/hx-popup-DZXpsJ1R.js.map +0 -1
  581. package/dist/shared/hx-progress-bar-KjEkEJLy.js.map +0 -1
  582. package/dist/shared/hx-progress-ring-3zMwvrwD.js.map +0 -1
  583. package/dist/shared/hx-radio-BBC5qZgE.js.map +0 -1
  584. package/dist/shared/hx-rating-C3E3ENJb.js.map +0 -1
  585. package/dist/shared/hx-select-CixTo7jp.js.map +0 -1
  586. package/dist/shared/hx-skeleton-LxkI0pxr.js.map +0 -1
  587. package/dist/shared/hx-slider-DFHuzF3N.js.map +0 -1
  588. package/dist/shared/hx-spinner-BKjuCdZB.js.map +0 -1
  589. package/dist/shared/hx-split-button-CGcJMmCG.js.map +0 -1
  590. package/dist/shared/hx-split-panel-C-1R10Mc.js.map +0 -1
  591. package/dist/shared/hx-stat-BTpykQAt.js.map +0 -1
  592. package/dist/shared/hx-status-indicator-X2QEWNFt.js.map +0 -1
  593. package/dist/shared/hx-step-CRNQlmSo.js.map +0 -1
  594. package/dist/shared/hx-structured-list-CqNbaEXg.js.map +0 -1
  595. package/dist/shared/hx-switch-DqOD9JR7.js.map +0 -1
  596. package/dist/shared/hx-tab-panel-BIzKfW5i.js.map +0 -1
  597. package/dist/shared/hx-tag-CgnrNnte.js.map +0 -1
  598. package/dist/shared/hx-td-Bra35cH4.js.map +0 -1
  599. package/dist/shared/hx-text-DMC2CPlL.js.map +0 -1
  600. package/dist/shared/hx-text-input--q0GH78x.js.map +0 -1
  601. package/dist/shared/hx-textarea-CK621vSL.js.map +0 -1
  602. package/dist/shared/hx-theme-DfEy-SJA.js.map +0 -1
  603. package/dist/shared/hx-time-picker-tPUfgElQ.js.map +0 -1
  604. package/dist/shared/hx-toggle-button-L-uBJr-a.js.map +0 -1
  605. package/dist/shared/hx-tooltip-B_zfKvwc.js.map +0 -1
  606. package/dist/shared/hx-top-nav-CATbRvIv.js.map +0 -1
  607. package/dist/shared/hx-tree-item-A45WCiBu.js.map +0 -1
  608. package/dist/shared/toast-factory-BPPnG3mM.js.map +0 -1
@@ -1,8 +1,9 @@
1
1
  import { css as m, nothing as u, html as d } from "lit";
2
- import { property as n, state as x, customElement as b } from "lit/decorators.js";
3
- import { H as f } from "./helix-element-BNEYeiys.js";
4
- import { c as v } from "./id-counter-DuX8vsui.js";
5
- const y = m`
2
+ import { property as n, state as v, customElement as b } from "lit/decorators.js";
3
+ import { f } from "./forced-colors-CTEDFRGa.js";
4
+ import { H as x } from "./helix-element-BNEYeiys.js";
5
+ import { c as y } from "./id-counter-DuX8vsui.js";
6
+ const g = m`
6
7
  :host {
7
8
  display: block;
8
9
  font-family: var(
@@ -66,15 +67,15 @@ const y = m`
66
67
  }
67
68
  }
68
69
  `;
69
- var g = Object.defineProperty, _ = Object.getOwnPropertyDescriptor, c = (t, e, s, a) => {
70
- for (var r = a > 1 ? void 0 : a ? _(e, s) : e, o = t.length - 1, l; o >= 0; o--)
70
+ var _ = Object.defineProperty, L = Object.getOwnPropertyDescriptor, c = (t, e, s, a) => {
71
+ for (var r = a > 1 ? void 0 : a ? L(e, s) : e, o = t.length - 1, l; o >= 0; o--)
71
72
  (l = t[o]) && (r = (a ? l(e, s, r) : l(r)) || r);
72
- return a && r && g(e, s, r), r;
73
+ return a && r && _(e, s, r), r;
73
74
  };
74
- const L = v("hx-breadcrumb");
75
- let i = class extends f {
75
+ const w = y("hx-breadcrumb");
76
+ let i = class extends x {
76
77
  constructor() {
77
- super(...arguments), this.separator = "/", this.label = "Breadcrumb", this.maxItems = 0, this.labelEllipsis = "Show all breadcrumb items", this.jsonLd = !1, this._showEllipsis = !1, this._jsonLdScript = null, this._managedCurrentItems = /* @__PURE__ */ new WeakSet(), this._jsonLdId = `${L()}-ld`;
78
+ super(...arguments), this.separator = "/", this.label = "Breadcrumb", this.maxItems = 0, this.labelEllipsis = "Show all breadcrumb items", this.jsonLd = !1, this._showEllipsis = !1, this._jsonLdScript = null, this._managedCurrentItems = /* @__PURE__ */ new WeakSet(), this._jsonLdId = `${w()}-ld`;
78
79
  }
79
80
  // ─── Item Helpers ───
80
81
  /**
@@ -224,7 +225,7 @@ let i = class extends f {
224
225
  `;
225
226
  }
226
227
  };
227
- i.styles = [y];
228
+ i.styles = [g, f];
228
229
  c([
229
230
  n({ type: String })
230
231
  ], i.prototype, "separator", 2);
@@ -241,12 +242,12 @@ c([
241
242
  n({ type: Boolean, attribute: "json-ld" })
242
243
  ], i.prototype, "jsonLd", 2);
243
244
  c([
244
- x()
245
+ v()
245
246
  ], i.prototype, "_showEllipsis", 2);
246
247
  i = c([
247
248
  b("hx-breadcrumb")
248
249
  ], i);
249
- const w = m`
250
+ const C = m`
250
251
  :host {
251
252
  display: inline-flex;
252
253
  align-items: center;
@@ -264,7 +265,7 @@ const w = m`
264
265
  }
265
266
 
266
267
  [part='link'] {
267
- color: var(--hx-breadcrumb-link-color, var(--hx-color-primary-600));
268
+ color: var(--hx-breadcrumb-link-color, var(--hx-color-primary-600, #0f7078));
268
269
  text-decoration: none;
269
270
  cursor: pointer;
270
271
  font-family: inherit;
@@ -276,22 +277,19 @@ const w = m`
276
277
  }
277
278
 
278
279
  [part='link']:hover {
279
- color: var(--hx-breadcrumb-link-hover-color, var(--hx-color-primary-700));
280
+ color: var(--hx-breadcrumb-link-hover-color, var(--hx-color-primary-700, #0f6363));
280
281
  text-decoration: underline;
281
282
  }
282
283
 
283
284
  [part='link']:focus-visible {
284
285
  outline: var(--hx-focus-ring-width, 2px) solid
285
- var(
286
- --hx-breadcrumb-link-focus-ring-color,
287
- var(--hx-focus-ring-color, var(--hx-color-primary-500))
288
- );
286
+ var(--hx-breadcrumb-link-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
289
287
  outline-offset: var(--hx-focus-ring-offset, 2px);
290
288
  border-radius: var(--hx-border-radius-sm, 0.25rem);
291
289
  }
292
290
 
293
291
  [part='text'] {
294
- color: var(--hx-breadcrumb-text-color, var(--hx-color-neutral-700));
292
+ color: var(--hx-breadcrumb-text-color, var(--hx-color-text-strong, #202b39));
295
293
  font-family: inherit;
296
294
  font-size: inherit;
297
295
  max-width: var(--hx-breadcrumb-item-max-width);
@@ -302,7 +300,7 @@ const w = m`
302
300
 
303
301
  .separator {
304
302
  margin-inline: var(--hx-breadcrumb-separator-gap, var(--hx-space-1, 0.25rem));
305
- color: var(--hx-breadcrumb-separator-color, var(--hx-color-neutral-400));
303
+ color: var(--hx-breadcrumb-separator-color, var(--hx-color-text-muted, #4a5362));
306
304
  user-select: none;
307
305
  }
308
306
 
@@ -336,12 +334,12 @@ const w = m`
336
334
  }
337
335
  }
338
336
  `;
339
- var C = Object.defineProperty, S = Object.getOwnPropertyDescriptor, h = (t, e, s, a) => {
337
+ var I = Object.defineProperty, S = Object.getOwnPropertyDescriptor, h = (t, e, s, a) => {
340
338
  for (var r = a > 1 ? void 0 : a ? S(e, s) : e, o = t.length - 1, l; o >= 0; o--)
341
339
  (l = t[o]) && (r = (a ? l(e, s, r) : l(r)) || r);
342
- return a && r && C(e, s, r), r;
340
+ return a && r && I(e, s, r), r;
343
341
  };
344
- let p = class extends f {
342
+ let p = class extends x {
345
343
  constructor() {
346
344
  super(...arguments), this.href = void 0, this.dataBcLast = !1, this.current = !1;
347
345
  }
@@ -357,7 +355,7 @@ let p = class extends f {
357
355
  `;
358
356
  }
359
357
  };
360
- p.styles = [w];
358
+ p.styles = [C, f];
361
359
  h([
362
360
  n({ type: String, reflect: !0 })
363
361
  ], p.prototype, "href", 2);
@@ -374,4 +372,4 @@ export {
374
372
  i as H,
375
373
  p as a
376
374
  };
377
- //# sourceMappingURL=hx-breadcrumb-item-CldCwD1d.js.map
375
+ //# sourceMappingURL=hx-breadcrumb-item-3tKppF9h.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hx-breadcrumb-item-3tKppF9h.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 /*\n * Ellipsis ordering when collapsed (FS-014 fix):\n * The ellipsis <hx-breadcrumb-item> lives in shadow DOM to avoid mutating\n * the consumer's light DOM. CSS order places it between the first item\n * (order: 0, default) and the last item (order: 2) in the flex <ol>.\n */\n .hx-bc-ellipsis {\n order: 1;\n }\n\n ::slotted([data-bc-last]) {\n order: 2;\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 /* ─── High Contrast Mode (forced-colors) ─── */\n\n /*\n * hx-breadcrumb is a nav container. Link colors and separators are handled\n * by hx-breadcrumb-item's own forced-colors block. No additional overrides needed\n * at the container level.\n */\n @media (forced-colors: active) {\n :host {\n forced-color-adjust: auto;\n }\n }\n`;\n","import { html, nothing, type PropertyValues } from 'lit';\nimport '../../utilities/document-token-adoption.js';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { HelixElement, createIdCounter } from '../../base/index.js';\nimport { forcedColorsInteractive } from '../../styles/forced-colors.js';\nimport { helixBreadcrumbStyles } from './hx-breadcrumb.styles.js';\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\nconst _nextBreadcrumbId = createIdCounter('hx-breadcrumb');\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 * @cssprop [--hx-breadcrumb-font-family] - CSS custom property.\n * @cssprop [--hx-font-family-sans] - Font family.\n * @cssprop [--hx-font-size-sm] - Font size.\n */\n@customElement('hx-breadcrumb')\nexport class HelixBreadcrumb extends HelixElement {\n static override styles = [helixBreadcrumbStyles, forcedColorsInteractive];\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 /**\n * Whether the ellipsis expand button is currently shown (shadow DOM rendered).\n * Driven by maxItems collapse logic; replaces the old light-DOM ellipsis injection.\n * @internal\n */\n @state() private _showEllipsis = false;\n /** @internal */\n private _jsonLdScript: HTMLScriptElement | null = null;\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 * @internal\n */\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 * @internal\n */\n private readonly _jsonLdId = `${_nextBreadcrumbId()}-ld`;\n\n // ─── Item Helpers ───\n\n /**\n * Returns only real breadcrumb items, excluding the managed ellipsis element.\n * @internal\n */\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 * @internal\n */\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 via data attribute.\n // The ellipsis is rendered in shadow DOM (see render()) to avoid mutating\n // the consumer's light DOM structure (FS-014).\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 this._showEllipsis = true;\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 this._showEllipsis = false;\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 * @internal\n */\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 * @internal\n */\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 // Do NOT set role=\"list\" on the host. The shadow-DOM <nav><ol> provides\n // both navigation landmark and list semantics. Setting role=\"list\" on\n // the host conflicts with the <nav> child — axe-core flags\n // aria-required-children because a list cannot own a navigation landmark.\n // Slotted items no longer need role=\"listitem\" either; the native <ol>\n // handles list semantics in the composed accessibility tree.\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\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 ${this._showEllipsis\n ? html`\n <hx-breadcrumb-item class=\"hx-bc-ellipsis\">\n <button\n type=\"button\"\n aria-label=${this.labelEllipsis}\n @click=${this._expandBreadcrumb}\n >\n …\n </button>\n </hx-breadcrumb-item>\n `\n : nothing}\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, #0f7078));\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, #0f6363));\n text-decoration: underline;\n }\n\n [part='link']:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid\n var(--hx-breadcrumb-link-focus-ring-color, var(--hx-focus-ring-color, #0f7078));\n outline-offset: var(--hx-focus-ring-offset, 2px);\n border-radius: var(--hx-border-radius-sm, 0.25rem);\n }\n\n [part='text'] {\n color: var(--hx-breadcrumb-text-color, var(--hx-color-text-strong, #202b39));\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-text-muted, #4a5362));\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 /* ─── Forced Colors (Windows High Contrast) ─── */\n\n @media (forced-colors: active) {\n [part='link'] {\n color: LinkText;\n }\n\n [part='link']:hover {\n color: LinkText;\n }\n\n .separator {\n color: CanvasText;\n }\n }\n`;\n","import { html, nothing } from 'lit';\nimport '../../utilities/document-token-adoption.js';\nimport { customElement, property } from 'lit/decorators.js';\nimport { HelixElement } from '../../base/index.js';\nimport { forcedColorsInteractive } from '../../styles/forced-colors.js';\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 * @cssprop [--hx-breadcrumb-link-focus-ring-color=var(--hx-focus-ring-color, var(--hx-color-primary-500))] - Focus ring color for breadcrumb links.\n */\n@customElement('hx-breadcrumb-item')\nexport class HelixBreadcrumbItem extends HelixElement {\n static override styles = [helixBreadcrumbItemStyles, forcedColorsInteractive];\n\n override connectedCallback(): void {\n super.connectedCallback();\n // No explicit role needed. The shadow-DOM <ol> inside hx-breadcrumb\n // provides native list semantics; slotted items are projected into it.\n // Previously role=\"listitem\" was set here, but it conflicted with the\n // host's role=\"list\" + shadow-DOM <nav> structure (aria-required-children).\n // The native <ol> handles the accessibility tree correctly without\n // explicit ARIA roles on host or items.\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","_nextBreadcrumbId","createIdCounter","HelixBreadcrumb","HelixElement","slot","el","items","hasExplicitCurrent","item","i","isLast","e","assigned","text","_a","position","href","name","entry","schema","changedProperties","_b","html","nothing","forcedColorsInteractive","__decorateClass","property","state","customElement","helixBreadcrumbItemStyles","HelixBreadcrumbItem"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- import { css as v, html as u, nothing as s } from "lit";
2
- import { property as a, customElement as p } from "lit/decorators.js";
3
- import { classMap as d } from "lit/directives/class-map.js";
4
- import { ifDefined as c } from "lit/directives/if-defined.js";
5
- import { d as x } from "./dev-warn-YlwPHjtX.js";
6
- import { m as f } from "./aria-delegation-Doq6RRUy.js";
7
- import { H as g } from "./helix-element-BNEYeiys.js";
1
+ import { css as v, html as d, nothing as s } from "lit";
2
+ import { property as a, customElement as f } from "lit/decorators.js";
3
+ import { classMap as c } from "lit/directives/class-map.js";
4
+ import { ifDefined as u } from "lit/directives/if-defined.js";
5
+ import { d as p } from "./dev-warn-YlwPHjtX.js";
6
+ import { m as g } from "./aria-delegation-Doq6RRUy.js";
7
+ import { H as x } from "./helix-element-BNEYeiys.js";
8
8
  const m = v`
9
9
  :host {
10
10
  display: inline-block;
@@ -34,7 +34,7 @@ const m = v`
34
34
  gap: var(--hx-space-2, 0.5rem);
35
35
  border: var(--hx-border-width-thin, 1px) solid var(--hx-button-border-color, transparent);
36
36
  border-radius: var(--hx-button-border-radius, var(--hx-border-radius-md, 0.375rem));
37
- background-color: var(--hx-button-bg, var(--hx-color-primary-500, #2563eb));
37
+ background-color: var(--hx-button-bg, var(--hx-color-primary-500, #429797));
38
38
  color: var(--hx-button-color, var(--hx-color-neutral-0, #ffffff));
39
39
  font-family: var(--hx-button-font-family, var(--hx-font-family-sans, sans-serif));
40
40
  font-weight: var(--hx-button-font-weight, var(--hx-font-weight-semibold, 600));
@@ -53,7 +53,7 @@ const m = v`
53
53
 
54
54
  .button:focus-visible {
55
55
  outline: var(--hx-focus-ring-width, 2px) solid
56
- var(--hx-button-focus-ring-color, var(--hx-focus-ring-color, var(--hx-color-primary-500)));
56
+ var(--hx-button-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
57
57
  outline-offset: var(--hx-focus-ring-offset, 2px);
58
58
  }
59
59
 
@@ -91,63 +91,108 @@ const m = v`
91
91
  /* ─── Style Variants ─── */
92
92
 
93
93
  .button--primary {
94
- --hx-button-bg: var(--hx-color-primary-500);
95
- --hx-button-color: var(--hx-color-neutral-0);
94
+ --hx-button-bg: var(--hx-color-action-primary-bg, #429797);
95
+ /* Inline #0d1825 matches text.on-primary's resolved primitive (neutral-900);
96
+ cold-start without the semantic still paints AA-tuned dark-on-primary
97
+ rather than white-on-primary (3.43:1 fail). */
98
+ --hx-button-color: var(--hx-color-text-on-primary, #0d1825);
96
99
  --hx-button-border-color: transparent;
97
100
  }
98
101
 
99
102
  .button--secondary {
100
103
  --hx-button-bg: transparent;
101
- --hx-button-color: var(--hx-color-primary-500);
102
- --hx-button-border-color: var(--hx-color-primary-500);
104
+ /* primary-500 (#429797) text on white surface = 3.44:1 — fails AA.
105
+ primary-600 (#0F7078) on white = 5.82:1 — AA pass. */
106
+ --hx-button-color: var(--hx-color-action-secondary-fg, #0f7078);
107
+ --hx-button-border-color: var(--hx-color-action-secondary-border, #0f7078);
103
108
  }
104
109
 
105
110
  .button--secondary:hover {
106
- --hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-primary-50));
111
+ --hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-action-secondary-bg-hover, #ebf8f8));
107
112
  }
108
113
 
109
114
  .button--tertiary {
110
- --hx-button-bg: var(--hx-color-neutral-100);
111
- --hx-button-color: var(--hx-color-neutral-900);
115
+ --hx-button-bg: var(--hx-color-surface-sunken, #ebeee9);
116
+ --hx-button-color: var(--hx-color-text-primary, #0d1825);
112
117
  --hx-button-border-color: transparent;
113
118
  }
114
119
 
115
120
  .button--tertiary:hover {
116
- --hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-neutral-200));
121
+ --hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-surface-raised, #f5f8f3));
117
122
  }
118
123
 
119
124
  .button--danger {
120
- --hx-button-bg: var(--hx-color-error-500);
121
- --hx-button-color: var(--hx-color-neutral-0);
125
+ --hx-button-bg: var(--hx-color-action-danger-bg, #e5493e);
126
+ /* Inline #0d1825 matches text.on-error's resolved primitive (neutral-900);
127
+ cold-start without the semantic still paints AA-tuned dark-on-error
128
+ rather than white-on-error (3.92:1 fail). */
129
+ --hx-button-color: var(--hx-color-text-on-error, #0d1825);
122
130
  --hx-button-border-color: transparent;
123
131
  }
124
132
 
133
+ /* on-error tokens are tuned for error-500 (neutral-900 on #E5493E ≈ 4.59:1).
134
+ error-600 (#C92A2A) drops that to 3.28:1 — AA fail. text.on-error-strong
135
+ resolves to neutral-0 across modes (no dark flip) so the darker hover fill
136
+ stays legible. Mirrors hx-toast precedent (commit 300e21ab0); routed
137
+ through the semantic tier in 3.2.1 token-cascade remediation. */
125
138
  .button--danger:hover {
126
- --hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-error-600));
139
+ --hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-action-danger-bg-hover, #c92a2a));
140
+ --hx-button-color: var(--hx-color-text-on-error-strong, #ffffff);
141
+ }
142
+
143
+ /* Pressed state binds explicitly to action.danger.bg-active (error-700,
144
+ #A21312) + text.on-error-strong (neutral-0) = 7.96:1 AA. Base
145
+ .button:active filter:brightness(0.8) would compound on top of bg-hover
146
+ (#C92A2A) and produce ~3.3:1 sub-AA on the bound colors. Override the
147
+ filter to none. HC override on action.danger.bg-active flips to HC
148
+ error-500 so the on-error-strong (HC = #000) pair is AA in HC too. */
149
+ .button--danger:active {
150
+ --hx-button-bg: var(--hx-button-active-bg, var(--hx-color-action-danger-bg-active, #a21312));
151
+ --hx-button-color: var(--hx-color-text-on-error-strong, #ffffff);
152
+ filter: none;
127
153
  }
128
154
 
129
155
  .button--ghost {
130
156
  --hx-button-bg: transparent;
131
- --hx-button-color: var(--hx-color-primary-500);
157
+ /* primary-500 (#429797) text on white surface = 3.44:1 — fails AA.
158
+ primary-600 (#0F7078) on white = 5.82:1 — AA pass. */
159
+ --hx-button-color: var(--hx-color-action-ghost-fg, #0f7078);
132
160
  --hx-button-border-color: transparent;
133
161
  }
134
162
 
135
163
  .button--ghost:hover {
136
- --hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-neutral-100));
164
+ --hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-action-ghost-bg-hover, #ebf8f8));
137
165
  }
138
166
 
139
167
  .button--outline {
140
168
  --hx-button-bg: transparent;
141
- --hx-button-color: var(--hx-color-neutral-900);
142
- --hx-button-border-color: var(--hx-color-neutral-300);
169
+ --hx-button-color: var(--hx-color-text-primary, #0d1825);
170
+ --hx-button-border-color: var(--hx-color-border-strong, #66787b);
143
171
  }
144
172
 
145
173
  .button--outline:hover {
146
- --hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-neutral-50));
174
+ --hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-surface-raised, #f5f8f3));
147
175
  }
148
176
 
177
+ /* on-primary token resolves to neutral-900 (#0D1825) — tuned for primary-500.
178
+ primary-600 (#0F7078) drops the pair to 3.07:1 — AA fail. text.on-primary-strong
179
+ resolves to neutral-0 across modes (no dark flip) for the darker hover fill.
180
+ Mirrors hx-toast precedent (commit 300e21ab0); routed through the semantic
181
+ tier in 3.2.1 token-cascade remediation. */
149
182
  .button--primary:hover {
150
- --hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-primary-600));
183
+ --hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-action-primary-bg-hover, #0f7078));
184
+ --hx-button-color: var(--hx-color-text-on-primary-strong, #ffffff);
185
+ }
186
+
187
+ /* Pressed state binds explicitly to action.primary.bg-active (primary-700,
188
+ #0F6363) + text.on-primary-strong (neutral-0) = 7.03:1 AA. The base
189
+ .button:active filter:brightness(0.8) would compound on top of bg-hover
190
+ (#0F7078) and produce ~3.7:1 sub-AA on the bound colors. Override the
191
+ filter to none so the action.*.bg-active token is what actually paints. */
192
+ .button--primary:active {
193
+ --hx-button-bg: var(--hx-button-active-bg, var(--hx-color-action-primary-bg-active, #0f6363));
194
+ --hx-button-color: var(--hx-color-text-on-primary-strong, #ffffff);
195
+ filter: none;
151
196
  }
152
197
 
153
198
  /* ─── Disabled ─── */
@@ -191,9 +236,19 @@ const m = v`
191
236
 
192
237
  /* ─── Inverted Mode ─── */
193
238
 
239
+ /* Inline-fallback contract for --hx-color-border-on-dark-* in this section:
240
+ the literal rgba(255, 255, 255, 0.X) arms are a LIGHT-MODE-only last
241
+ resort (cold-start, CSS-not-loaded). At runtime, hx-theme injects
242
+ dark.color.border.on-dark-* as overlay-black-* so dark-mode inverted
243
+ buttons stay visible on the now-light surface.inverse (#EBEEE9). The
244
+ inline white overlays would render invisible (≈1.1:1) on a light surface,
245
+ but they never paint when the theme is mounted. If a future change moves
246
+ these into a context where hx-theme is not guaranteed, replace with
247
+ mode-aware tokens. */
248
+
194
249
  /* Override text color and filter-based hover/active for all variants */
195
250
  :host([inverted]) .button {
196
- color: var(--hx-button-inverted-color, var(--hx-color-neutral-0));
251
+ color: var(--hx-button-inverted-color, var(--hx-color-text-inverse, #ffffff));
197
252
  filter: none;
198
253
  }
199
254
 
@@ -206,37 +261,89 @@ const m = v`
206
261
  }
207
262
 
208
263
  :host([inverted]) .button:focus-visible {
264
+ /* WCAG 1.4.11: focus indicator needs ≥3:1 against adjacent colors.
265
+ border-on-dark-default (overlay-white-30) ≈ 2.7:1 on neutral-900 — fails.
266
+ border-on-dark-strong (overlay-white-70) ≈ 5:1 — passes. */
209
267
  outline-color: var(
210
268
  --hx-button-inverted-focus-ring-color,
211
- var(--hx-overlay-white-50, rgba(255, 255, 255, 0.5))
269
+ var(--hx-color-border-on-dark-strong, rgba(255, 255, 255, 0.7))
212
270
  );
213
271
  }
214
272
 
215
- /* Primary inverted — slight transparent white overlay on hover */
216
- :host([inverted]) .button--primary:hover {
217
- --hx-button-bg: var(--hx-color-primary-400, #60a5fa);
273
+ /* Primary inverted — resting bg routes through action.primary.bg-inverted-rest
274
+ so dark mode can flip the fill to primary-600. surface.inverse becomes light
275
+ (#EBEEE9) in dark mode; primary-500 on #EBEEE9 = 2.94:1 (sub-3:1 UI floor
276
+ fail for the inverted-button boundary). primary-600 on #EBEEE9 = 4.97:1
277
+ (AA pass). Light mode tracks action.primary.bg (primary-500, 5.20:1 on
278
+ dark surface.inverse). */
279
+ :host([inverted]) .button--primary {
280
+ --hx-button-bg: var(--hx-color-action-primary-bg-inverted-rest, #429797);
281
+ }
282
+
283
+ /* Primary inverted — hover/pressed lift to action.primary.bg-inverted-hover
284
+ (primary-400, light teal). The base :host([inverted]) .button rule binds
285
+ color to text.inverse, which flips by mode (neutral-0 in light, neutral-900
286
+ in dark). On a permanent light-teal fill, white text drops to 2.4:1 in
287
+ light mode (AA fail). Pin color to text.on-primary (neutral-900, no
288
+ dark-mode flip) for both hover and active so the foreground is dark in
289
+ both modes — neutral-900 on primary-400 = 7.27:1 (AA pass).
290
+ Pressed === hover visually in inverted mode is acceptable UX (the
291
+ transient absence of pointer over the button signals release).
292
+ The fallback chain wraps --hx-button-active-bg (highest precedence) and
293
+ --hx-button-hover-bg so consumer overrides on either prop apply under
294
+ :host([inverted]) — the two share a paint here, so either knob is
295
+ honored, with active-bg winning when both are set. */
296
+ :host([inverted]) .button--primary:hover,
297
+ :host([inverted]) .button--primary:active {
298
+ --hx-button-bg: var(
299
+ --hx-button-active-bg,
300
+ var(--hx-button-hover-bg, var(--hx-color-action-primary-bg-inverted-hover, #6ab1b1))
301
+ );
302
+ color: var(
303
+ --hx-button-inverted-primary-interactive-color,
304
+ var(--hx-color-text-on-primary, #0d1825)
305
+ );
218
306
  }
219
307
 
220
- /* Secondary inverted — white border and text */
308
+ /* Danger inverted — sister to primary. Hover/pressed lift to
309
+ action.danger.bg-inverted-hover (error-400, #FC7264). Same foreground
310
+ contract: text.inverse fails in light mode (white on light red ≈ 2.6:1);
311
+ pin to text.on-error (neutral-900, no dark-mode flip) for 6.58:1 in both
312
+ modes. Same active-bg → hover-bg → semantic fallback chain as primary. */
313
+ :host([inverted]) .button--danger:hover,
314
+ :host([inverted]) .button--danger:active {
315
+ --hx-button-bg: var(
316
+ --hx-button-active-bg,
317
+ var(--hx-button-hover-bg, var(--hx-color-action-danger-bg-inverted-hover, #fc7264))
318
+ );
319
+ color: var(
320
+ --hx-button-inverted-danger-interactive-color,
321
+ var(--hx-color-text-on-error, #0d1825)
322
+ );
323
+ }
324
+
325
+ /* Secondary inverted — white border and translucent hover fill */
221
326
  :host([inverted]) .button--secondary {
222
- --hx-button-border-color: var(--hx-overlay-white-70, rgba(255, 255, 255, 0.7));
327
+ --hx-button-border-color: var(--hx-color-border-on-dark-strong, rgba(255, 255, 255, 0.7));
223
328
  }
224
329
 
225
330
  :host([inverted]) .button--secondary:hover {
226
- --hx-button-bg: var(--hx-overlay-white-15, rgba(255, 255, 255, 0.15));
331
+ --hx-button-bg: var(--hx-color-border-on-dark-default, rgba(255, 255, 255, 0.3));
227
332
  }
228
333
 
229
- /* Tertiary inverted */
334
+ /* Tertiary inverted — resting at subtle (10%) lifts to default (30%) on hover
335
+ so the runtime hover delta is visually distinct, not collapsed onto a
336
+ single token. */
230
337
  :host([inverted]) .button--tertiary {
231
- --hx-button-bg: var(--hx-overlay-white-15, rgba(255, 255, 255, 0.15));
338
+ --hx-button-bg: var(--hx-color-border-on-dark-subtle, rgba(255, 255, 255, 0.1));
232
339
  --hx-button-border-color: transparent;
233
340
  }
234
341
 
235
342
  :host([inverted]) .button--tertiary:hover {
236
- --hx-button-bg: var(--hx-overlay-white-25, rgba(255, 255, 255, 0.25));
343
+ --hx-button-bg: var(--hx-color-border-on-dark-default, rgba(255, 255, 255, 0.3));
237
344
  }
238
345
 
239
- /* Ghost inverted — transparent base, white hover bg */
346
+ /* Ghost inverted — transparent base, translucent hover bg */
240
347
  :host([inverted]) .button--ghost {
241
348
  --hx-button-bg: transparent;
242
349
  --hx-button-border-color: transparent;
@@ -245,17 +352,17 @@ const m = v`
245
352
  :host([inverted]) .button--ghost:hover {
246
353
  --hx-button-bg: var(
247
354
  --hx-button-inverted-ghost-hover-bg,
248
- var(--hx-overlay-white-20, rgba(255, 255, 255, 0.2))
355
+ var(--hx-color-border-on-dark-default, rgba(255, 255, 255, 0.3))
249
356
  );
250
357
  }
251
358
 
252
359
  /* Outline inverted — white border */
253
360
  :host([inverted]) .button--outline {
254
- --hx-button-border-color: var(--hx-overlay-white-70, rgba(255, 255, 255, 0.7));
361
+ --hx-button-border-color: var(--hx-color-border-on-dark-strong, rgba(255, 255, 255, 0.7));
255
362
  }
256
363
 
257
364
  :host([inverted]) .button--outline:hover {
258
- --hx-button-bg: var(--hx-overlay-white-15, rgba(255, 255, 255, 0.15));
365
+ --hx-button-bg: var(--hx-color-border-on-dark-default, rgba(255, 255, 255, 0.3));
259
366
  }
260
367
 
261
368
  /* ─── Prefix / Suffix / Label ─── */
@@ -283,6 +390,16 @@ const m = v`
283
390
  border: 2px solid ButtonText;
284
391
  }
285
392
 
393
+ .button:hover {
394
+ /* Hover affordance must survive in HC. Highlight/HighlightText is the
395
+ OS-level "selected" pair, mirroring the forcedColorsInteractive mixin's
396
+ hover contract — kept inline since this component owns its bespoke HC
397
+ block (XOR rule). */
398
+ background-color: Highlight;
399
+ color: HighlightText;
400
+ border-color: Highlight;
401
+ }
402
+
286
403
  .button:focus-visible {
287
404
  outline: 3px solid Highlight;
288
405
  outline-offset: 2px;
@@ -305,12 +422,12 @@ const m = v`
305
422
  }
306
423
  }
307
424
  `;
308
- var y = Object.defineProperty, _ = Object.getOwnPropertyDescriptor, n = (t, r, h, i) => {
309
- for (var o = i > 1 ? void 0 : i ? _(r, h) : r, l = t.length - 1, b; l >= 0; l--)
425
+ var y = Object.defineProperty, k = Object.getOwnPropertyDescriptor, n = (t, r, h, i) => {
426
+ for (var o = i > 1 ? void 0 : i ? k(r, h) : r, l = t.length - 1, b; l >= 0; l--)
310
427
  (b = t[l]) && (o = (i ? b(r, h, o) : b(o)) || o);
311
428
  return i && o && y(r, h, o), o;
312
429
  };
313
- let e = class extends f(g) {
430
+ let e = class extends g(x) {
314
431
  constructor() {
315
432
  super(...arguments), 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.accessibleLabel = "", this._emptySlotWarnEmitted = !1;
316
433
  }
@@ -341,7 +458,7 @@ let e = class extends f(g) {
341
458
  updated(t) {
342
459
  if (super.updated(t), t.has("variant")) {
343
460
  const r = [...e._VALID_VARIANTS];
344
- r.includes(this.variant) || (x(
461
+ r.includes(this.variant) || (p(
345
462
  "hx-button",
346
463
  `Invalid variant "${this.variant}". Expected one of: ${r.join(", ")}. Clamping to "primary".`
347
464
  ), this.variant = "primary");
@@ -380,7 +497,7 @@ let e = class extends f(g) {
380
497
  * @internal
381
498
  */
382
499
  _renderSpinner() {
383
- return u`
500
+ return d`
384
501
  <svg
385
502
  class="button__spinner"
386
503
  part="spinner"
@@ -412,7 +529,7 @@ let e = class extends f(g) {
412
529
  * @internal
413
530
  */
414
531
  _renderInner() {
415
- return u`
532
+ return d`
416
533
  ${this.loading ? this._renderSpinner() : s}
417
534
  <span part="prefix" class="button__prefix">
418
535
  <slot name="prefix"></slot>
@@ -433,12 +550,12 @@ let e = class extends f(g) {
433
550
  [`button--${this.size}`]: !0,
434
551
  "button--loading": this.loading
435
552
  };
436
- return this.href !== void 0 ? u`
553
+ return this.href !== void 0 ? d`
437
554
  <a
438
555
  part="button"
439
- class=${d(t)}
440
- href=${this.disabled || this.loading ? s : c(this.href)}
441
- target=${c(this.target)}
556
+ class=${c(t)}
557
+ href=${this.disabled || this.loading ? s : u(this.href)}
558
+ target=${u(this.target)}
442
559
  rel=${this.target === "_blank" ? "noopener noreferrer" : s}
443
560
  aria-label=${this._effectiveLabel || s}
444
561
  aria-disabled=${this.disabled ? "true" : s}
@@ -448,10 +565,10 @@ let e = class extends f(g) {
448
565
  >
449
566
  ${this._renderInner()}
450
567
  </a>
451
- ` : u`
568
+ ` : d`
452
569
  <button
453
570
  part="button"
454
- class=${d(t)}
571
+ class=${c(t)}
455
572
  ?disabled=${this.disabled}
456
573
  type=${this.type}
457
574
  aria-label=${this._effectiveLabel || s}
@@ -510,9 +627,9 @@ n([
510
627
  a({ type: String, attribute: "accessible-label" })
511
628
  ], e.prototype, "accessibleLabel", 2);
512
629
  e = n([
513
- p("hx-button")
630
+ f("hx-button")
514
631
  ], e);
515
632
  export {
516
633
  e as H
517
634
  };
518
- //# sourceMappingURL=hx-button-Ddl-T6T-.js.map
635
+ //# sourceMappingURL=hx-button-9OUjJnk7.js.map