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

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 (469) hide show
  1. package/custom-elements.json +520 -468
  2. package/dist/base/helix-element.d.ts.map +1 -1
  3. package/dist/components/hx-accordion/hx-accordion-item.d.ts +0 -2
  4. package/dist/components/hx-accordion/hx-accordion-item.d.ts.map +1 -1
  5. package/dist/components/hx-accordion/hx-accordion-item.styles.d.ts.map +1 -1
  6. package/dist/components/hx-accordion/hx-accordion.styles.d.ts.map +1 -1
  7. package/dist/components/hx-accordion/index.js +1 -1
  8. package/dist/components/hx-alert/hx-alert.styles.d.ts.map +1 -1
  9. package/dist/components/hx-alert/index.js +1 -1
  10. package/dist/components/hx-badge/hx-badge.styles.d.ts.map +1 -1
  11. package/dist/components/hx-badge/index.js +1 -1
  12. package/dist/components/hx-banner/hx-banner.styles.d.ts.map +1 -1
  13. package/dist/components/hx-banner/index.js +1 -1
  14. package/dist/components/hx-breadcrumb/hx-breadcrumb-item.d.ts.map +1 -1
  15. package/dist/components/hx-breadcrumb/hx-breadcrumb-item.styles.d.ts.map +1 -1
  16. package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts +0 -7
  17. package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts.map +1 -1
  18. package/dist/components/hx-breadcrumb/index.js +1 -1
  19. package/dist/components/hx-button/hx-button.d.ts +9 -9
  20. package/dist/components/hx-button/hx-button.d.ts.map +1 -1
  21. package/dist/components/hx-button/hx-button.styles.d.ts.map +1 -1
  22. package/dist/components/hx-button/index.js +1 -1
  23. package/dist/components/hx-button-group/hx-button-group.d.ts +1 -4
  24. package/dist/components/hx-button-group/hx-button-group.d.ts.map +1 -1
  25. package/dist/components/hx-button-group/index.js +1 -1
  26. package/dist/components/hx-card/hx-card.d.ts +16 -0
  27. package/dist/components/hx-card/hx-card.d.ts.map +1 -1
  28. package/dist/components/hx-card/hx-card.styles.d.ts.map +1 -1
  29. package/dist/components/hx-card/index.js +1 -1
  30. package/dist/components/hx-carousel/hx-carousel.d.ts.map +1 -1
  31. package/dist/components/hx-carousel/hx-carousel.styles.d.ts.map +1 -1
  32. package/dist/components/hx-carousel/index.js +1 -1
  33. package/dist/components/hx-checkbox/hx-checkbox.d.ts +8 -0
  34. package/dist/components/hx-checkbox/hx-checkbox.d.ts.map +1 -1
  35. package/dist/components/hx-checkbox/hx-checkbox.styles.d.ts.map +1 -1
  36. package/dist/components/hx-checkbox/index.js +1 -1
  37. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts +6 -8
  38. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts.map +1 -1
  39. package/dist/components/hx-checkbox-group/hx-checkbox-group.styles.d.ts.map +1 -1
  40. package/dist/components/hx-checkbox-group/index.js +1 -1
  41. package/dist/components/hx-clinical-status/hx-clinical-status.styles.d.ts.map +1 -1
  42. package/dist/components/hx-clinical-status/index.js +1 -1
  43. package/dist/components/hx-code-snippet/hx-code-snippet.styles.d.ts.map +1 -1
  44. package/dist/components/hx-code-snippet/index.js +1 -1
  45. package/dist/components/hx-color-picker/hx-color-picker.styles.d.ts.map +1 -1
  46. package/dist/components/hx-color-picker/index.js +1 -1
  47. package/dist/components/hx-combobox/hx-combobox.d.ts +20 -14
  48. package/dist/components/hx-combobox/hx-combobox.d.ts.map +1 -1
  49. package/dist/components/hx-combobox/hx-combobox.styles.d.ts.map +1 -1
  50. package/dist/components/hx-combobox/index.js +1 -1
  51. package/dist/components/hx-copy-button/hx-copy-button.styles.d.ts.map +1 -1
  52. package/dist/components/hx-copy-button/index.js +1 -1
  53. package/dist/components/hx-counter/hx-counter.styles.d.ts.map +1 -1
  54. package/dist/components/hx-counter/index.js +1 -1
  55. package/dist/components/hx-data-table/hx-data-table.d.ts +20 -0
  56. package/dist/components/hx-data-table/hx-data-table.d.ts.map +1 -1
  57. package/dist/components/hx-data-table/hx-data-table.styles.d.ts.map +1 -1
  58. package/dist/components/hx-data-table/index.js +1 -1
  59. package/dist/components/hx-date-picker/hx-date-picker.d.ts +6 -17
  60. package/dist/components/hx-date-picker/hx-date-picker.d.ts.map +1 -1
  61. package/dist/components/hx-date-picker/index.js +1 -1
  62. package/dist/components/hx-dialog/hx-dialog.d.ts +7 -0
  63. package/dist/components/hx-dialog/hx-dialog.d.ts.map +1 -1
  64. package/dist/components/hx-dialog/hx-dialog.styles.d.ts.map +1 -1
  65. package/dist/components/hx-dialog/index.js +1 -1
  66. package/dist/components/hx-divider/hx-divider.styles.d.ts.map +1 -1
  67. package/dist/components/hx-divider/index.js +1 -1
  68. package/dist/components/hx-drawer/hx-drawer.d.ts +7 -0
  69. package/dist/components/hx-drawer/hx-drawer.d.ts.map +1 -1
  70. package/dist/components/hx-drawer/hx-drawer.styles.d.ts.map +1 -1
  71. package/dist/components/hx-drawer/index.js +1 -1
  72. package/dist/components/hx-dropdown/hx-dropdown.d.ts +8 -5
  73. package/dist/components/hx-dropdown/hx-dropdown.d.ts.map +1 -1
  74. package/dist/components/hx-dropdown/hx-dropdown.styles.d.ts.map +1 -1
  75. package/dist/components/hx-dropdown/index.js +1 -1
  76. package/dist/components/hx-field/hx-field.d.ts.map +1 -1
  77. package/dist/components/hx-field/hx-field.styles.d.ts.map +1 -1
  78. package/dist/components/hx-field/index.js +1 -1
  79. package/dist/components/hx-field-label/hx-field-label.styles.d.ts.map +1 -1
  80. package/dist/components/hx-field-label/index.js +1 -1
  81. package/dist/components/hx-file-upload/hx-file-upload.d.ts +6 -14
  82. package/dist/components/hx-file-upload/hx-file-upload.d.ts.map +1 -1
  83. package/dist/components/hx-file-upload/index.js +1 -1
  84. package/dist/components/hx-help-text/hx-help-text.styles.d.ts.map +1 -1
  85. package/dist/components/hx-help-text/index.js +1 -1
  86. package/dist/components/hx-icon/hx-icon.styles.d.ts.map +1 -1
  87. package/dist/components/hx-icon/index.js +1 -1
  88. package/dist/components/hx-icon-button/hx-icon-button.d.ts +10 -14
  89. package/dist/components/hx-icon-button/hx-icon-button.d.ts.map +1 -1
  90. package/dist/components/hx-icon-button/hx-icon-button.styles.d.ts.map +1 -1
  91. package/dist/components/hx-icon-button/index.js +1 -1
  92. package/dist/components/hx-image/hx-image.styles.d.ts.map +1 -1
  93. package/dist/components/hx-image/index.js +1 -1
  94. package/dist/components/hx-link/hx-link.styles.d.ts.map +1 -1
  95. package/dist/components/hx-link/index.js +1 -1
  96. package/dist/components/hx-menu/hx-menu-divider.styles.d.ts.map +1 -1
  97. package/dist/components/hx-menu/hx-menu-item.styles.d.ts.map +1 -1
  98. package/dist/components/hx-menu/hx-menu.styles.d.ts.map +1 -1
  99. package/dist/components/hx-menu/index.js +1 -1
  100. package/dist/components/hx-meter/hx-meter.d.ts +0 -2
  101. package/dist/components/hx-meter/hx-meter.d.ts.map +1 -1
  102. package/dist/components/hx-meter/hx-meter.styles.d.ts.map +1 -1
  103. package/dist/components/hx-meter/index.js +1 -1
  104. package/dist/components/hx-nav/hx-nav.styles.d.ts.map +1 -1
  105. package/dist/components/hx-nav/index.js +1 -1
  106. package/dist/components/hx-number-input/hx-number-input.d.ts +6 -8
  107. package/dist/components/hx-number-input/hx-number-input.d.ts.map +1 -1
  108. package/dist/components/hx-number-input/hx-number-input.styles.d.ts.map +1 -1
  109. package/dist/components/hx-number-input/index.js +1 -1
  110. package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts.map +1 -1
  111. package/dist/components/hx-overflow-menu/hx-overflow-menu.styles.d.ts.map +1 -1
  112. package/dist/components/hx-overflow-menu/index.js +1 -1
  113. package/dist/components/hx-patient-banner/hx-patient-banner.styles.d.ts.map +1 -1
  114. package/dist/components/hx-patient-banner/index.js +1 -1
  115. package/dist/components/hx-popover/hx-popover.d.ts +1 -0
  116. package/dist/components/hx-popover/hx-popover.d.ts.map +1 -1
  117. package/dist/components/hx-popover/hx-popover.styles.d.ts.map +1 -1
  118. package/dist/components/hx-popover/index.js +1 -1
  119. package/dist/components/hx-popup/hx-popup.styles.d.ts.map +1 -1
  120. package/dist/components/hx-popup/index.js +1 -1
  121. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts +0 -2
  122. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts.map +1 -1
  123. package/dist/components/hx-progress-bar/index.js +1 -1
  124. package/dist/components/hx-radio-group/hx-radio-group.d.ts +6 -11
  125. package/dist/components/hx-radio-group/hx-radio-group.d.ts.map +1 -1
  126. package/dist/components/hx-radio-group/hx-radio-group.styles.d.ts.map +1 -1
  127. package/dist/components/hx-radio-group/hx-radio.d.ts.map +1 -1
  128. package/dist/components/hx-radio-group/hx-radio.styles.d.ts.map +1 -1
  129. package/dist/components/hx-radio-group/index.js +1 -1
  130. package/dist/components/hx-rating/hx-rating.d.ts +6 -11
  131. package/dist/components/hx-rating/hx-rating.d.ts.map +1 -1
  132. package/dist/components/hx-rating/hx-rating.styles.d.ts.map +1 -1
  133. package/dist/components/hx-rating/index.js +1 -1
  134. package/dist/components/hx-select/hx-select.d.ts +8 -0
  135. package/dist/components/hx-select/hx-select.d.ts.map +1 -1
  136. package/dist/components/hx-select/hx-select.styles.d.ts.map +1 -1
  137. package/dist/components/hx-select/index.js +1 -1
  138. package/dist/components/hx-side-nav/hx-nav-item.d.ts +0 -3
  139. package/dist/components/hx-side-nav/hx-nav-item.d.ts.map +1 -1
  140. package/dist/components/hx-side-nav/hx-nav-item.styles.d.ts.map +1 -1
  141. package/dist/components/hx-side-nav/hx-side-nav.styles.d.ts.map +1 -1
  142. package/dist/components/hx-side-nav/index.js +1 -1
  143. package/dist/components/hx-skeleton/hx-skeleton.styles.d.ts.map +1 -1
  144. package/dist/components/hx-skeleton/index.js +1 -1
  145. package/dist/components/hx-slider/hx-slider.d.ts +9 -9
  146. package/dist/components/hx-slider/hx-slider.d.ts.map +1 -1
  147. package/dist/components/hx-slider/index.js +1 -1
  148. package/dist/components/hx-spinner/hx-spinner.styles.d.ts.map +1 -1
  149. package/dist/components/hx-spinner/index.js +1 -1
  150. package/dist/components/hx-split-button/hx-split-button.d.ts.map +1 -1
  151. package/dist/components/hx-split-button/hx-split-button.styles.d.ts.map +1 -1
  152. package/dist/components/hx-split-button/index.js +1 -1
  153. package/dist/components/hx-split-panel/hx-split-panel.styles.d.ts.map +1 -1
  154. package/dist/components/hx-split-panel/index.js +1 -1
  155. package/dist/components/hx-stat/hx-stat.d.ts +2 -2
  156. package/dist/components/hx-stat/hx-stat.d.ts.map +1 -1
  157. package/dist/components/hx-status-indicator/hx-status-indicator.styles.d.ts.map +1 -1
  158. package/dist/components/hx-status-indicator/index.js +1 -1
  159. package/dist/components/hx-steps/hx-step.styles.d.ts.map +1 -1
  160. package/dist/components/hx-steps/index.js +1 -1
  161. package/dist/components/hx-structured-list/hx-structured-list.styles.d.ts.map +1 -1
  162. package/dist/components/hx-structured-list/index.js +1 -1
  163. package/dist/components/hx-switch/hx-switch.d.ts +14 -17
  164. package/dist/components/hx-switch/hx-switch.d.ts.map +1 -1
  165. package/dist/components/hx-switch/hx-switch.styles.d.ts.map +1 -1
  166. package/dist/components/hx-switch/index.js +1 -1
  167. package/dist/components/hx-table/hx-table.styles.d.ts.map +1 -1
  168. package/dist/components/hx-table/index.js +1 -1
  169. package/dist/components/hx-tabs/hx-tab-panel.styles.d.ts.map +1 -1
  170. package/dist/components/hx-tabs/hx-tab.styles.d.ts.map +1 -1
  171. package/dist/components/hx-tabs/hx-tabs.d.ts +6 -0
  172. package/dist/components/hx-tabs/hx-tabs.d.ts.map +1 -1
  173. package/dist/components/hx-tabs/hx-tabs.styles.d.ts.map +1 -1
  174. package/dist/components/hx-tabs/index.js +1 -1
  175. package/dist/components/hx-tag/hx-tag.styles.d.ts.map +1 -1
  176. package/dist/components/hx-tag/index.js +1 -1
  177. package/dist/components/hx-text-input/hx-text-input.d.ts +11 -0
  178. package/dist/components/hx-text-input/hx-text-input.d.ts.map +1 -1
  179. package/dist/components/hx-text-input/hx-text-input.styles.d.ts.map +1 -1
  180. package/dist/components/hx-text-input/index.js +1 -1
  181. package/dist/components/hx-textarea/hx-textarea.d.ts +17 -9
  182. package/dist/components/hx-textarea/hx-textarea.d.ts.map +1 -1
  183. package/dist/components/hx-textarea/hx-textarea.styles.d.ts.map +1 -1
  184. package/dist/components/hx-textarea/index.js +1 -1
  185. package/dist/components/hx-time-picker/hx-time-picker.d.ts +6 -17
  186. package/dist/components/hx-time-picker/hx-time-picker.d.ts.map +1 -1
  187. package/dist/components/hx-time-picker/index.js +1 -1
  188. package/dist/components/hx-toast/hx-toast.styles.d.ts.map +1 -1
  189. package/dist/components/hx-toast/index.js +1 -1
  190. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts +6 -13
  191. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts.map +1 -1
  192. package/dist/components/hx-toggle-button/hx-toggle-button.styles.d.ts.map +1 -1
  193. package/dist/components/hx-toggle-button/index.js +1 -1
  194. package/dist/components/hx-tooltip/hx-tooltip.d.ts.map +1 -1
  195. package/dist/components/hx-tooltip/hx-tooltip.styles.d.ts.map +1 -1
  196. package/dist/components/hx-tooltip/index.js +1 -1
  197. package/dist/components/hx-top-nav/hx-top-nav.styles.d.ts.map +1 -1
  198. package/dist/components/hx-top-nav/index.js +1 -1
  199. package/dist/components/hx-tree-view/hx-tree-item.styles.d.ts.map +1 -1
  200. package/dist/components/hx-tree-view/index.js +1 -1
  201. package/dist/css/helix-all.css +1268 -10
  202. package/dist/css/helix-core.css +137 -1
  203. package/dist/css/helix-data.css +69 -0
  204. package/dist/css/helix-feedback.css +77 -0
  205. package/dist/css/helix-forms.css +627 -3
  206. package/dist/css/helix-layout.css +22 -0
  207. package/dist/css/helix-media.css +24 -0
  208. package/dist/css/helix-navigation.css +110 -0
  209. package/dist/css/helix-overlay.css +87 -0
  210. package/dist/css/helix-utility.css +66 -0
  211. package/dist/css/hx-accordion.css +8 -0
  212. package/dist/css/hx-alert.css +21 -0
  213. package/dist/css/hx-badge.css +16 -0
  214. package/dist/css/hx-banner.css +17 -0
  215. package/dist/css/hx-button.css +4 -1
  216. package/dist/css/hx-card.css +12 -0
  217. package/dist/css/hx-carousel.css +24 -0
  218. package/dist/css/hx-checkbox-group.css +32 -0
  219. package/dist/css/hx-checkbox.css +66 -0
  220. package/dist/css/hx-clinical-status.css +23 -0
  221. package/dist/css/hx-code-snippet.css +22 -0
  222. package/dist/css/hx-color-picker.css +1 -1
  223. package/dist/css/hx-combobox.css +1 -1
  224. package/dist/css/hx-copy-button.css +28 -0
  225. package/dist/css/hx-counter.css +3 -0
  226. package/dist/css/hx-data-table.css +23 -0
  227. package/dist/css/hx-dialog.css +21 -0
  228. package/dist/css/hx-divider.css +8 -0
  229. package/dist/css/hx-drawer.css +21 -0
  230. package/dist/css/hx-dropdown.css +9 -0
  231. package/dist/css/hx-field-label.css +16 -0
  232. package/dist/css/hx-field.css +36 -0
  233. package/dist/css/hx-help-text.css +20 -0
  234. package/dist/css/hx-icon-button.css +27 -0
  235. package/dist/css/hx-icon.css +8 -0
  236. package/dist/css/hx-image.css +8 -0
  237. package/dist/css/hx-link.css +18 -0
  238. package/dist/css/hx-menu.css +9 -0
  239. package/dist/css/hx-meter.css +13 -0
  240. package/dist/css/hx-nav.css +16 -0
  241. package/dist/css/hx-number-input.css +78 -0
  242. package/dist/css/hx-overflow-menu.css +31 -0
  243. package/dist/css/hx-patient-banner.css +20 -0
  244. package/dist/css/hx-popover.css +12 -0
  245. package/dist/css/hx-popup.css +12 -0
  246. package/dist/css/hx-radio-group.css +32 -0
  247. package/dist/css/hx-rating.css +39 -0
  248. package/dist/css/hx-select.css +82 -0
  249. package/dist/css/hx-side-nav.css +21 -0
  250. package/dist/css/hx-skeleton.css +12 -0
  251. package/dist/css/hx-spinner.css +12 -0
  252. package/dist/css/hx-split-button.css +35 -0
  253. package/dist/css/hx-split-panel.css +14 -0
  254. package/dist/css/hx-status-indicator.css +13 -0
  255. package/dist/css/hx-structured-list.css +16 -0
  256. package/dist/css/hx-switch.css +62 -0
  257. package/dist/css/hx-table.css +8 -0
  258. package/dist/css/hx-tabs.css +12 -0
  259. package/dist/css/hx-tag.css +12 -0
  260. package/dist/css/hx-text-input.css +62 -0
  261. package/dist/css/hx-textarea.css +62 -0
  262. package/dist/css/hx-toast.css +13 -0
  263. package/dist/css/hx-toggle-button.css +38 -1
  264. package/dist/css/hx-tooltip.css +12 -0
  265. package/dist/css/hx-top-nav.css +21 -0
  266. package/dist/css/index.css +1 -1
  267. package/dist/css/manifest.json +4 -3
  268. package/dist/index.js +65 -65
  269. package/dist/mixins/aria-delegation.d.ts +3 -1
  270. package/dist/mixins/aria-delegation.d.ts.map +1 -1
  271. package/dist/mixins/index.d.ts +1 -1
  272. package/dist/mixins/index.d.ts.map +1 -1
  273. package/dist/shared/{aria-delegation-CBP9eQ0M.js → aria-delegation-Doq6RRUy.js} +6 -6
  274. package/dist/shared/aria-delegation-Doq6RRUy.js.map +1 -0
  275. package/dist/shared/{helix-element-CZvaIEQP.js → helix-element-BJh1Ffvi.js} +18 -21
  276. package/dist/shared/{helix-element-CZvaIEQP.js.map → helix-element-BJh1Ffvi.js.map} +1 -1
  277. package/dist/shared/{hx-accordion-CpfO0YQo.js → hx-accordion-SlwR2C6S.js} +109 -62
  278. package/dist/shared/hx-accordion-SlwR2C6S.js.map +1 -0
  279. package/dist/shared/{hx-alert-CHOjTBds.js → hx-alert-DdlSyJGk.js} +22 -1
  280. package/dist/shared/hx-alert-DdlSyJGk.js.map +1 -0
  281. package/dist/shared/{hx-badge-RPzd-t5l.js → hx-badge-B_PzGlUo.js} +17 -1
  282. package/dist/shared/hx-badge-B_PzGlUo.js.map +1 -0
  283. package/dist/shared/{hx-banner-B-WEDiq7.js → hx-banner-D8AxkCfc.js} +30 -13
  284. package/dist/shared/hx-banner-D8AxkCfc.js.map +1 -0
  285. package/dist/shared/{hx-breadcrumb-item-jLAKK038.js → hx-breadcrumb-item-BCUIvpYX.js} +32 -15
  286. package/dist/shared/hx-breadcrumb-item-BCUIvpYX.js.map +1 -0
  287. package/dist/shared/{hx-button-DoN8jjQT.js → hx-button-BzqsDHmZ.js} +15 -16
  288. package/dist/shared/hx-button-BzqsDHmZ.js.map +1 -0
  289. package/dist/shared/{hx-button-group-BXlMQTt_.js → hx-button-group-a5Pb_9fU.js} +8 -9
  290. package/dist/shared/{hx-button-group-BXlMQTt_.js.map → hx-button-group-a5Pb_9fU.js.map} +1 -1
  291. package/dist/shared/{hx-card-BgXZXDuc.js → hx-card-DYlaxQy0.js} +59 -33
  292. package/dist/shared/hx-card-DYlaxQy0.js.map +1 -0
  293. package/dist/shared/{hx-carousel-item-Dwt9Pphz.js → hx-carousel-item-KQfCekKF.js} +45 -19
  294. package/dist/shared/hx-carousel-item-KQfCekKF.js.map +1 -0
  295. package/dist/shared/{hx-checkbox-C82GjRXe.js → hx-checkbox-DyDbR1B9.js} +97 -31
  296. package/dist/shared/hx-checkbox-DyDbR1B9.js.map +1 -0
  297. package/dist/shared/{hx-checkbox-group-DThZeN5d.js → hx-checkbox-group-C8TaFqy0.js} +75 -40
  298. package/dist/shared/hx-checkbox-group-C8TaFqy0.js.map +1 -0
  299. package/dist/shared/{hx-clinical-status-BjtT5c0M.js → hx-clinical-status-dDyk5oj1.js} +53 -30
  300. package/dist/shared/hx-clinical-status-dDyk5oj1.js.map +1 -0
  301. package/dist/shared/{hx-code-snippet-DcVENSuC.js → hx-code-snippet-DasrRF9k.js} +27 -5
  302. package/dist/shared/hx-code-snippet-DasrRF9k.js.map +1 -0
  303. package/dist/shared/{hx-color-picker-C6EIuS9t.js → hx-color-picker-zv6wtok4.js} +81 -81
  304. package/dist/shared/hx-color-picker-zv6wtok4.js.map +1 -0
  305. package/dist/shared/{hx-combobox-BJ4lQocO.js → hx-combobox-C-DVLFpu.js} +36 -45
  306. package/dist/shared/hx-combobox-C-DVLFpu.js.map +1 -0
  307. package/dist/shared/{hx-copy-button-BoM0WsMd.js → hx-copy-button-DikpbhWY.js} +54 -26
  308. package/dist/shared/hx-copy-button-DikpbhWY.js.map +1 -0
  309. package/dist/shared/{hx-counter-B5NgKlw4.js → hx-counter-_m4cq45V.js} +21 -18
  310. package/dist/shared/hx-counter-_m4cq45V.js.map +1 -0
  311. package/dist/shared/{hx-data-table-D5Ne-goy.js → hx-data-table-609C-e9w.js} +215 -150
  312. package/dist/shared/hx-data-table-609C-e9w.js.map +1 -0
  313. package/dist/shared/{hx-date-picker-Cd3I3WkX.js → hx-date-picker-Bh8410Sf.js} +26 -35
  314. package/dist/shared/hx-date-picker-Bh8410Sf.js.map +1 -0
  315. package/dist/shared/{hx-dialog-D4ubstxx.js → hx-dialog-D_DeqcNS.js} +46 -25
  316. package/dist/shared/hx-dialog-D_DeqcNS.js.map +1 -0
  317. package/dist/shared/{hx-divider-BBtOLHRP.js → hx-divider-lfOMElo2.js} +18 -10
  318. package/dist/shared/hx-divider-lfOMElo2.js.map +1 -0
  319. package/dist/shared/{hx-drawer--WDLuWtS.js → hx-drawer-NleCbKuN.js} +95 -60
  320. package/dist/shared/hx-drawer-NleCbKuN.js.map +1 -0
  321. package/dist/shared/{hx-dropdown-n5-XSmiV.js → hx-dropdown-CA9WYdhm.js} +37 -27
  322. package/dist/shared/hx-dropdown-CA9WYdhm.js.map +1 -0
  323. package/dist/shared/{hx-field-CwT9tki1.js → hx-field-Duiib9Bj.js} +48 -12
  324. package/dist/shared/hx-field-Duiib9Bj.js.map +1 -0
  325. package/dist/shared/{hx-field-label-CcOK9VU3.js → hx-field-label-Dud-psvE.js} +37 -21
  326. package/dist/shared/hx-field-label-Dud-psvE.js.map +1 -0
  327. package/dist/shared/{hx-file-upload-Di_vpQaG.js → hx-file-upload-CmCCAvej.js} +24 -33
  328. package/dist/shared/hx-file-upload-CmCCAvej.js.map +1 -0
  329. package/dist/shared/{hx-help-text-Bmb80bP4.js → hx-help-text-DARi-Pfp.js} +37 -17
  330. package/dist/shared/hx-help-text-DARi-Pfp.js.map +1 -0
  331. package/dist/shared/{hx-icon-button-CJuy9xbw.js → hx-icon-button-BcZtVVtH.js} +58 -41
  332. package/dist/shared/hx-icon-button-BcZtVVtH.js.map +1 -0
  333. package/dist/shared/{hx-icon-BKHs3OLu.js → hx-icon-jWcGmn66.js} +9 -1
  334. package/dist/shared/hx-icon-jWcGmn66.js.map +1 -0
  335. package/dist/shared/{hx-image-ztiXumZB.js → hx-image-DOjPp-K5.js} +28 -20
  336. package/dist/shared/hx-image-DOjPp-K5.js.map +1 -0
  337. package/dist/shared/{hx-link-CN7AvGOW.js → hx-link-DCBct0f4.js} +44 -26
  338. package/dist/shared/hx-link-DCBct0f4.js.map +1 -0
  339. package/dist/shared/{hx-menu-divider-DRT8yHRZ.js → hx-menu-divider-DVWER7iT.js} +93 -50
  340. package/dist/shared/hx-menu-divider-DVWER7iT.js.map +1 -0
  341. package/dist/shared/{hx-meter-BcVC9yrt.js → hx-meter-ChZdWNF2.js} +42 -28
  342. package/dist/shared/hx-meter-ChZdWNF2.js.map +1 -0
  343. package/dist/shared/{hx-nav-l0Rp7WPW.js → hx-nav-CHX1JOWB.js} +28 -12
  344. package/dist/shared/hx-nav-CHX1JOWB.js.map +1 -0
  345. package/dist/shared/{hx-nav-item-CJN4VDrf.js → hx-nav-item-CRAESq9s.js} +56 -22
  346. package/dist/shared/hx-nav-item-CRAESq9s.js.map +1 -0
  347. package/dist/shared/{hx-number-input-0Waw7Z7u.js → hx-number-input-Cm682AVP.js} +154 -72
  348. package/dist/shared/hx-number-input-Cm682AVP.js.map +1 -0
  349. package/dist/shared/{hx-overflow-menu-DElwFSCd.js → hx-overflow-menu-BDl6QfUD.js} +52 -19
  350. package/dist/shared/hx-overflow-menu-BDl6QfUD.js.map +1 -0
  351. package/dist/shared/{hx-patient-banner-BKiN7nIE.js → hx-patient-banner-B4IjHeTx.js} +54 -34
  352. package/dist/shared/hx-patient-banner-B4IjHeTx.js.map +1 -0
  353. package/dist/shared/{hx-popover-CydNuVkT.js → hx-popover-ZGRFgBbx.js} +29 -15
  354. package/dist/shared/hx-popover-ZGRFgBbx.js.map +1 -0
  355. package/dist/shared/{hx-popup-DbzezTOd.js → hx-popup-Cc4qz89i.js} +24 -12
  356. package/dist/shared/hx-popup-Cc4qz89i.js.map +1 -0
  357. package/dist/shared/{hx-progress-bar-Cm0VihTN.js → hx-progress-bar-BY1uE6bN.js} +17 -16
  358. package/dist/shared/hx-progress-bar-BY1uE6bN.js.map +1 -0
  359. package/dist/shared/{hx-radio-f8c5ggHG.js → hx-radio-YEEsbUPN.js} +139 -54
  360. package/dist/shared/hx-radio-YEEsbUPN.js.map +1 -0
  361. package/dist/shared/{hx-rating-qRJZXskm.js → hx-rating-DjUJTT0M.js} +54 -17
  362. package/dist/shared/hx-rating-DjUJTT0M.js.map +1 -0
  363. package/dist/shared/{hx-select-CgcgsHU5.js → hx-select-DZ7wfcJx.js} +119 -37
  364. package/dist/shared/hx-select-DZ7wfcJx.js.map +1 -0
  365. package/dist/shared/{hx-skeleton-tiYvKO-t.js → hx-skeleton-aqa-gr1S.js} +28 -16
  366. package/dist/shared/hx-skeleton-aqa-gr1S.js.map +1 -0
  367. package/dist/shared/{hx-slider-BvXtvxmN.js → hx-slider-DAilFrR_.js} +28 -25
  368. package/dist/shared/hx-slider-DAilFrR_.js.map +1 -0
  369. package/dist/shared/{hx-spinner-D6nzuGmj.js → hx-spinner-Dw3cRY-9.js} +26 -14
  370. package/dist/shared/hx-spinner-Dw3cRY-9.js.map +1 -0
  371. package/dist/shared/{hx-split-button-CPndTJlC.js → hx-split-button-Dk-zMDDo.js} +51 -14
  372. package/dist/shared/hx-split-button-Dk-zMDDo.js.map +1 -0
  373. package/dist/shared/{hx-split-panel-Dx72NaET.js → hx-split-panel-Kdp4BiLz.js} +15 -1
  374. package/dist/shared/hx-split-panel-Kdp4BiLz.js.map +1 -0
  375. package/dist/shared/hx-stat-DKlyBL_K.js.map +1 -1
  376. package/dist/shared/{hx-status-indicator-ClWpK6zz.js → hx-status-indicator-DWSM0Ctm.js} +30 -17
  377. package/dist/shared/hx-status-indicator-DWSM0Ctm.js.map +1 -0
  378. package/dist/shared/{hx-step-C2Jk4mHa.js → hx-step-CuoOvcI8.js} +52 -18
  379. package/dist/shared/{hx-step-C2Jk4mHa.js.map → hx-step-CuoOvcI8.js.map} +1 -1
  380. package/dist/shared/{hx-structured-list-DKlrv7kS.js → hx-structured-list-CQCD7bCT.js} +21 -5
  381. package/dist/shared/hx-structured-list-CQCD7bCT.js.map +1 -0
  382. package/dist/shared/{hx-switch-BzMN37PV.js → hx-switch-BdxKN9WM.js} +89 -32
  383. package/dist/shared/hx-switch-BdxKN9WM.js.map +1 -0
  384. package/dist/shared/{hx-tab-panel-J58zOSjq.js → hx-tab-panel-CwClQoWP.js} +141 -88
  385. package/dist/shared/hx-tab-panel-CwClQoWP.js.map +1 -0
  386. package/dist/shared/{hx-tag-F0ZcYj9b.js → hx-tag-BL5qJJCN.js} +20 -8
  387. package/dist/shared/hx-tag-BL5qJJCN.js.map +1 -0
  388. package/dist/shared/{hx-td-CNCvzBwY.js → hx-td-CzSvVKdp.js} +21 -13
  389. package/dist/shared/hx-td-CzSvVKdp.js.map +1 -0
  390. package/dist/shared/{hx-text-input-Zuodg9s_.js → hx-text-input-BfMrvN9N.js} +110 -48
  391. package/dist/shared/hx-text-input-BfMrvN9N.js.map +1 -0
  392. package/dist/shared/{hx-textarea-BfSJJtA1.js → hx-textarea-C-i_Vam6.js} +108 -47
  393. package/dist/shared/hx-textarea-C-i_Vam6.js.map +1 -0
  394. package/dist/shared/{hx-time-picker-CZvmihHD.js → hx-time-picker-MZyLQPW9.js} +50 -61
  395. package/dist/shared/hx-time-picker-MZyLQPW9.js.map +1 -0
  396. package/dist/shared/{hx-toggle-button-BZUQUULm.js → hx-toggle-button-ClyNYNVI.js} +68 -37
  397. package/dist/shared/hx-toggle-button-ClyNYNVI.js.map +1 -0
  398. package/dist/shared/{hx-tooltip-Ny4i1Idj.js → hx-tooltip-ByWT987R.js} +33 -19
  399. package/dist/shared/hx-tooltip-ByWT987R.js.map +1 -0
  400. package/dist/shared/{hx-top-nav-CC4FW2Hp.js → hx-top-nav-k7hY78kt.js} +35 -14
  401. package/dist/shared/hx-top-nav-k7hY78kt.js.map +1 -0
  402. package/dist/shared/{hx-tree-item-CPQ9dJiK.js → hx-tree-item-D0ZphA45.js} +9 -1
  403. package/dist/shared/hx-tree-item-D0ZphA45.js.map +1 -0
  404. package/dist/shared/{toast-factory-CEMNOt1T.js → toast-factory-Cwd0PihS.js} +49 -36
  405. package/dist/shared/toast-factory-Cwd0PihS.js.map +1 -0
  406. package/package.json +2 -2
  407. package/dist/shared/aria-delegation-CBP9eQ0M.js.map +0 -1
  408. package/dist/shared/hx-accordion-CpfO0YQo.js.map +0 -1
  409. package/dist/shared/hx-alert-CHOjTBds.js.map +0 -1
  410. package/dist/shared/hx-badge-RPzd-t5l.js.map +0 -1
  411. package/dist/shared/hx-banner-B-WEDiq7.js.map +0 -1
  412. package/dist/shared/hx-breadcrumb-item-jLAKK038.js.map +0 -1
  413. package/dist/shared/hx-button-DoN8jjQT.js.map +0 -1
  414. package/dist/shared/hx-card-BgXZXDuc.js.map +0 -1
  415. package/dist/shared/hx-carousel-item-Dwt9Pphz.js.map +0 -1
  416. package/dist/shared/hx-checkbox-C82GjRXe.js.map +0 -1
  417. package/dist/shared/hx-checkbox-group-DThZeN5d.js.map +0 -1
  418. package/dist/shared/hx-clinical-status-BjtT5c0M.js.map +0 -1
  419. package/dist/shared/hx-code-snippet-DcVENSuC.js.map +0 -1
  420. package/dist/shared/hx-color-picker-C6EIuS9t.js.map +0 -1
  421. package/dist/shared/hx-combobox-BJ4lQocO.js.map +0 -1
  422. package/dist/shared/hx-copy-button-BoM0WsMd.js.map +0 -1
  423. package/dist/shared/hx-counter-B5NgKlw4.js.map +0 -1
  424. package/dist/shared/hx-data-table-D5Ne-goy.js.map +0 -1
  425. package/dist/shared/hx-date-picker-Cd3I3WkX.js.map +0 -1
  426. package/dist/shared/hx-dialog-D4ubstxx.js.map +0 -1
  427. package/dist/shared/hx-divider-BBtOLHRP.js.map +0 -1
  428. package/dist/shared/hx-drawer--WDLuWtS.js.map +0 -1
  429. package/dist/shared/hx-dropdown-n5-XSmiV.js.map +0 -1
  430. package/dist/shared/hx-field-CwT9tki1.js.map +0 -1
  431. package/dist/shared/hx-field-label-CcOK9VU3.js.map +0 -1
  432. package/dist/shared/hx-file-upload-Di_vpQaG.js.map +0 -1
  433. package/dist/shared/hx-help-text-Bmb80bP4.js.map +0 -1
  434. package/dist/shared/hx-icon-BKHs3OLu.js.map +0 -1
  435. package/dist/shared/hx-icon-button-CJuy9xbw.js.map +0 -1
  436. package/dist/shared/hx-image-ztiXumZB.js.map +0 -1
  437. package/dist/shared/hx-link-CN7AvGOW.js.map +0 -1
  438. package/dist/shared/hx-menu-divider-DRT8yHRZ.js.map +0 -1
  439. package/dist/shared/hx-meter-BcVC9yrt.js.map +0 -1
  440. package/dist/shared/hx-nav-item-CJN4VDrf.js.map +0 -1
  441. package/dist/shared/hx-nav-l0Rp7WPW.js.map +0 -1
  442. package/dist/shared/hx-number-input-0Waw7Z7u.js.map +0 -1
  443. package/dist/shared/hx-overflow-menu-DElwFSCd.js.map +0 -1
  444. package/dist/shared/hx-patient-banner-BKiN7nIE.js.map +0 -1
  445. package/dist/shared/hx-popover-CydNuVkT.js.map +0 -1
  446. package/dist/shared/hx-popup-DbzezTOd.js.map +0 -1
  447. package/dist/shared/hx-progress-bar-Cm0VihTN.js.map +0 -1
  448. package/dist/shared/hx-radio-f8c5ggHG.js.map +0 -1
  449. package/dist/shared/hx-rating-qRJZXskm.js.map +0 -1
  450. package/dist/shared/hx-select-CgcgsHU5.js.map +0 -1
  451. package/dist/shared/hx-skeleton-tiYvKO-t.js.map +0 -1
  452. package/dist/shared/hx-slider-BvXtvxmN.js.map +0 -1
  453. package/dist/shared/hx-spinner-D6nzuGmj.js.map +0 -1
  454. package/dist/shared/hx-split-button-CPndTJlC.js.map +0 -1
  455. package/dist/shared/hx-split-panel-Dx72NaET.js.map +0 -1
  456. package/dist/shared/hx-status-indicator-ClWpK6zz.js.map +0 -1
  457. package/dist/shared/hx-structured-list-DKlrv7kS.js.map +0 -1
  458. package/dist/shared/hx-switch-BzMN37PV.js.map +0 -1
  459. package/dist/shared/hx-tab-panel-J58zOSjq.js.map +0 -1
  460. package/dist/shared/hx-tag-F0ZcYj9b.js.map +0 -1
  461. package/dist/shared/hx-td-CNCvzBwY.js.map +0 -1
  462. package/dist/shared/hx-text-input-Zuodg9s_.js.map +0 -1
  463. package/dist/shared/hx-textarea-BfSJJtA1.js.map +0 -1
  464. package/dist/shared/hx-time-picker-CZvmihHD.js.map +0 -1
  465. package/dist/shared/hx-toggle-button-BZUQUULm.js.map +0 -1
  466. package/dist/shared/hx-tooltip-Ny4i1Idj.js.map +0 -1
  467. package/dist/shared/hx-top-nav-CC4FW2Hp.js.map +0 -1
  468. package/dist/shared/hx-tree-item-CPQ9dJiK.js.map +0 -1
  469. package/dist/shared/toast-factory-CEMNOt1T.js.map +0 -1
@@ -1,9 +1,9 @@
1
- import { css as v, LitElement as x, nothing as u, svg as f, html as c } from "lit";
1
+ import { css as x, LitElement as v, nothing as f, svg as u, html as h } from "lit";
2
2
  import "./document-token-adoption-DuYNKd4k.js";
3
- import { property as o, customElement as k } from "lit/decorators.js";
3
+ import { property as i, customElement as k } from "lit/decorators.js";
4
4
  import { classMap as p } from "lit/directives/class-map.js";
5
5
  import { ifDefined as a } from "lit/directives/if-defined.js";
6
- const y = v`
6
+ const y = x`
7
7
  :host {
8
8
  display: inline;
9
9
  }
@@ -95,6 +95,24 @@ const y = v`
95
95
  }
96
96
  }
97
97
 
98
+ /* ─── High Contrast Mode (forced-colors) ─── */
99
+
100
+ @media (forced-colors: active) {
101
+ .link {
102
+ forced-color-adjust: none;
103
+ color: LinkText;
104
+ }
105
+
106
+ .link:focus-visible {
107
+ outline: 3px solid Highlight;
108
+ outline-offset: 2px;
109
+ }
110
+
111
+ .link--disabled {
112
+ color: GrayText;
113
+ }
114
+ }
115
+
98
116
  /* --- Visually hidden (sr-only) --- */
99
117
 
100
118
  .sr-only {
@@ -109,12 +127,12 @@ const y = v`
109
127
  border: 0;
110
128
  }
111
129
  `;
112
- var m = Object.defineProperty, b = Object.getOwnPropertyDescriptor, i = (e, n, s, l) => {
113
- for (var t = l > 1 ? void 0 : l ? b(n, s) : n, d = e.length - 1, h; d >= 0; d--)
114
- (h = e[d]) && (t = (l ? h(n, s, t) : h(t)) || t);
115
- return l && t && m(n, s, t), t;
130
+ var m = Object.defineProperty, b = Object.getOwnPropertyDescriptor, t = (e, n, s, l) => {
131
+ for (var o = l > 1 ? void 0 : l ? b(n, s) : n, d = e.length - 1, c; d >= 0; d--)
132
+ (c = e[d]) && (o = (l ? c(n, s, o) : c(o)) || o);
133
+ return l && o && m(n, s, o), o;
116
134
  };
117
- let r = class extends x {
135
+ let r = class extends v {
118
136
  constructor() {
119
137
  super(...arguments), this.href = void 0, this.target = void 0, this.variant = "default", this.disabled = !1, this.download = void 0, this.rel = void 0;
120
138
  }
@@ -145,7 +163,7 @@ let r = class extends x {
145
163
  }
146
164
  /** @internal */
147
165
  _renderExternalIcon() {
148
- return this.target !== "_blank" ? u : c`
166
+ return this.target !== "_blank" ? f : h`
149
167
  <svg
150
168
  class="link__external-icon"
151
169
  part="external-icon"
@@ -157,7 +175,7 @@ let r = class extends x {
157
175
  stroke-linecap="round"
158
176
  stroke-linejoin="round"
159
177
  >
160
- ${f`<path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6" /><polyline points="15 3 21 3 21 9" /><line x1="10" y1="14" x2="21" y2="3" />`}
178
+ ${u`<path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6" /><polyline points="15 3 21 3 21 9" /><line x1="10" y1="14" x2="21" y2="3" />`}
161
179
  </svg>
162
180
  <span class="sr-only">(opens in new tab)</span>
163
181
  `;
@@ -169,7 +187,7 @@ let r = class extends x {
169
187
  [`link--${this.variant}`]: this.variant !== "default",
170
188
  "link--disabled": this.disabled
171
189
  };
172
- return this.disabled ? c`
190
+ return this.disabled ? h`
173
191
  <span
174
192
  part="link"
175
193
  class=${p(e)}
@@ -181,7 +199,7 @@ let r = class extends x {
181
199
  >
182
200
  <slot></slot>
183
201
  </span>
184
- ` : c`
202
+ ` : h`
185
203
  <a
186
204
  part="link"
187
205
  class=${p(e)}
@@ -198,28 +216,28 @@ let r = class extends x {
198
216
  }
199
217
  };
200
218
  r.styles = [y];
201
- i([
202
- o({ type: String })
219
+ t([
220
+ i({ type: String })
203
221
  ], r.prototype, "href", 2);
204
- i([
205
- o({ type: String })
222
+ t([
223
+ i({ type: String })
206
224
  ], r.prototype, "target", 2);
207
- i([
208
- o({ type: String, reflect: !0 })
225
+ t([
226
+ i({ type: String, reflect: !0 })
209
227
  ], r.prototype, "variant", 2);
210
- i([
211
- o({ type: Boolean, reflect: !0 })
228
+ t([
229
+ i({ type: Boolean, reflect: !0 })
212
230
  ], r.prototype, "disabled", 2);
213
- i([
214
- o({ type: String })
231
+ t([
232
+ i({ type: String })
215
233
  ], r.prototype, "download", 2);
216
- i([
217
- o({ type: String })
234
+ t([
235
+ i({ type: String })
218
236
  ], r.prototype, "rel", 2);
219
- r = i([
237
+ r = t([
220
238
  k("hx-link")
221
239
  ], r);
222
240
  export {
223
241
  r as H
224
242
  };
225
- //# sourceMappingURL=hx-link-CN7AvGOW.js.map
243
+ //# sourceMappingURL=hx-link-DCBct0f4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hx-link-DCBct0f4.js","sources":["../../src/components/hx-link/hx-link.styles.ts","../../src/components/hx-link/hx-link.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixLinkStyles = css`\n :host {\n display: inline;\n }\n\n :host([disabled]) {\n cursor: not-allowed;\n }\n\n /* --- Base Link --- */\n\n .link {\n display: inline-flex;\n align-items: center;\n gap: var(--hx-space-1, 0.25rem);\n color: var(--hx-link-color, var(--hx-color-primary-500, #2563eb));\n font-family: var(--hx-link-font-family, var(--hx-font-family-sans, inherit));\n font-size: inherit;\n line-height: inherit;\n text-decoration: var(--hx-link-text-decoration, underline);\n text-underline-offset: var(--hx-link-underline-offset, 2px);\n cursor: pointer;\n outline: 0;\n transition:\n color var(--hx-transition-fast, 150ms ease),\n text-decoration-color var(--hx-transition-fast, 150ms ease);\n }\n\n .link:hover {\n color: var(--hx-link-color-hover, var(--hx-color-primary-700, #1d4ed8));\n text-decoration: var(--hx-link-text-decoration-hover, underline);\n }\n\n .link:active {\n color: var(--hx-link-color-active, var(--hx-color-primary-800, #1e40af));\n }\n\n .link:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid\n var(\n --hx-link-focus-ring-color,\n var(--hx-focus-ring-color, var(--hx-color-primary-400, #60a5fa))\n );\n outline-offset: var(--hx-focus-ring-offset, 2px);\n border-radius: var(--hx-border-radius-sm, 0.125rem);\n }\n\n /* --- Variant: subtle --- */\n\n .link--subtle {\n color: var(--hx-link-color-subtle, var(--hx-color-neutral-600, #475569));\n text-decoration: none;\n }\n\n .link--subtle:hover {\n color: var(--hx-link-color-hover, var(--hx-color-primary-700, #1d4ed8));\n text-decoration: underline;\n }\n\n /* --- Variant: danger --- */\n\n .link--danger {\n color: var(--hx-link-color-danger, var(--hx-color-error-text, #b91c1c));\n }\n\n .link--danger:hover {\n color: var(--hx-link-color-danger-hover, var(--hx-color-error-700, #b91c1c));\n }\n\n /* --- Disabled --- */\n\n .link--disabled {\n color: var(--hx-link-color-disabled, var(--hx-color-neutral-400, #94a3b8));\n text-decoration: none;\n cursor: not-allowed;\n }\n\n /* --- External link icon --- */\n\n .link__external-icon {\n display: inline-flex;\n width: 0.75em;\n height: 0.75em;\n flex-shrink: 0;\n }\n\n @media (prefers-reduced-motion: reduce) {\n .link {\n transition: none;\n }\n }\n\n /* ─── High Contrast Mode (forced-colors) ─── */\n\n @media (forced-colors: active) {\n .link {\n forced-color-adjust: none;\n color: LinkText;\n }\n\n .link:focus-visible {\n outline: 3px solid Highlight;\n outline-offset: 2px;\n }\n\n .link--disabled {\n color: GrayText;\n }\n }\n\n /* --- Visually hidden (sr-only) --- */\n\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border: 0;\n }\n`;\n","import { LitElement, html, nothing, svg } from 'lit';\nimport '../../utilities/document-token-adoption.js';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { helixLinkStyles } from './hx-link.styles.js';\n\n/**\n * Variant options for the link component.\n */\nexport type LinkVariant = 'default' | 'subtle' | 'danger';\n\n/**\n * A semantic hyperlink component with accessibility-first design.\n * Renders a native `<a>` element for enabled state and a `<span>` for\n * disabled state with full keyboard and screen reader support.\n *\n * @summary Accessible hyperlink with external-link detection, disabled state,\n * and download support.\n *\n * @tag hx-link\n *\n * @slot - Default slot for link label text or content.\n *\n * @fires {CustomEvent<{originalEvent: MouseEvent}>} hx-click - Dispatched when\n * the link is clicked and is not disabled.\n *\n * @csspart link - The inner anchor or span element.\n * @csspart external-icon - The external link icon SVG (when target=\"_blank\").\n *\n * @cssprop [--hx-link-color=var(--hx-color-primary-500)] - Default link color.\n * @cssprop [--hx-link-color-hover=var(--hx-color-primary-700)] - Hover color.\n * @cssprop [--hx-link-color-active=var(--hx-color-primary-800)] - Active color.\n * @cssprop [--hx-link-color-disabled=var(--hx-color-neutral-400)] - Disabled color.\n * @cssprop [--hx-link-color-subtle=var(--hx-color-neutral-600)] - Subtle variant color.\n * @cssprop [--hx-link-color-danger=var(--hx-color-error-text)] - Danger variant color.\n * @cssprop [--hx-link-color-danger-hover=var(--hx-color-error-700)] - Danger variant hover color.\n * @cssprop [--hx-link-font-family=var(--hx-font-family-sans)] - Link font family.\n * @cssprop [--hx-link-text-decoration=underline] - Link text decoration.\n * @cssprop [--hx-link-text-decoration-hover=underline] - Hover text decoration.\n * @cssprop [--hx-link-underline-offset=2px] - Text underline offset.\n * @cssprop [--hx-link-focus-ring-color=var(--hx-focus-ring-color)] - Focus ring color.\n *\n * @note The `:visited` pseudo-class does not work inside Shadow DOM due to\n * browser privacy restrictions. This is a known platform limitation.\n */\n@customElement('hx-link')\nexport class HelixLink extends LitElement {\n static override styles = [helixLinkStyles];\n\n /**\n * The URL the link points to.\n * @attr href\n */\n @property({ type: String })\n href: string | undefined = undefined;\n\n /**\n * Where to display the linked URL (_self, _blank, etc.).\n * When set to \"_blank\", automatically adds rel=\"noopener noreferrer\"\n * and shows an external-link indicator.\n * @attr target\n */\n @property({ type: String })\n target: string | undefined = undefined;\n\n /**\n * Visual style variant of the link.\n * @attr variant\n */\n @property({ type: String, reflect: true })\n variant: 'default' | 'subtle' | 'danger' = 'default';\n\n /**\n * Whether the link is disabled. Renders a span instead of an anchor.\n * The disabled span is keyboard-focusable (tabindex=\"0\") and announces\n * as a disabled link to screen readers.\n * @attr disabled\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Prompts the user to download the linked URL. When set to a string,\n * the value is used as the suggested filename.\n * @attr download\n */\n @property({ type: String })\n download: string | undefined = undefined;\n\n /**\n * Relationship between the current document and the linked URL.\n * Automatically set to \"noopener noreferrer\" when target=\"_blank\".\n * @attr rel\n */\n @property({ type: String })\n rel: string | undefined = undefined;\n\n // --- Event Handling ---\n\n /** @internal Blocks Enter and Space activation on disabled span. */\n private _handleDisabledKeydown(e: KeyboardEvent): void {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n }\n }\n\n /** @internal */\n private _handleClick(e: MouseEvent): void {\n if (this.disabled) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n\n this.dispatchEvent(\n new CustomEvent<{ originalEvent: MouseEvent }>('hx-click', {\n bubbles: true,\n composed: true,\n detail: { originalEvent: e },\n }),\n );\n }\n\n // --- Render Helpers ---\n\n /** @internal */\n private _computeRel(): string | undefined {\n if (this.rel) return this.rel;\n if (this.target === '_blank') return 'noopener noreferrer';\n return undefined;\n }\n\n /** @internal */\n private _renderExternalIcon() {\n if (this.target !== '_blank') return nothing;\n\n return html`\n <svg\n class=\"link__external-icon\"\n part=\"external-icon\"\n aria-hidden=\"true\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n ${svg`<path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\" /><polyline points=\"15 3 21 3 21 9\" /><line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\" />`}\n </svg>\n <span class=\"sr-only\">(opens in new tab)</span>\n `;\n }\n\n // --- Render ---\n\n override render() {\n const classes = {\n link: true,\n [`link--${this.variant}`]: this.variant !== 'default',\n 'link--disabled': this.disabled,\n };\n\n if (this.disabled) {\n return html`\n <span\n part=\"link\"\n class=${classMap(classes)}\n role=\"link\"\n aria-disabled=\"true\"\n tabindex=\"0\"\n @click=${this._handleClick}\n @keydown=${this._handleDisabledKeydown}\n >\n <slot></slot>\n </span>\n `;\n }\n\n return html`\n <a\n part=\"link\"\n class=${classMap(classes)}\n href=${ifDefined(this.href)}\n target=${ifDefined(this.target)}\n rel=${ifDefined(this._computeRel())}\n download=${ifDefined(this.download)}\n @click=${this._handleClick}\n >\n <slot></slot>\n ${this._renderExternalIcon()}\n </a>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-link': HelixLink;\n }\n}\n"],"names":["helixLinkStyles","css","HelixLink","LitElement","nothing","html","svg","classes","classMap","ifDefined","__decorateClass","property","customElement"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { css as p, LitElement as f, html as u, nothing as h } from "lit";
2
2
  import "./document-token-adoption-DuYNKd4k.js";
3
- import { property as c, customElement as x, state as _, query as b } from "lit/decorators.js";
3
+ import { property as c, customElement as x, state as v, query as b } from "lit/decorators.js";
4
4
  import { d as g } from "./dev-warn-YlwPHjtX.js";
5
5
  import { classMap as y } from "lit/directives/class-map.js";
6
6
  const k = p`
@@ -26,11 +26,20 @@ const k = p`
26
26
  overflow-y: auto;
27
27
  outline: none;
28
28
  }
29
+
30
+ /* ─── High Contrast Mode (forced-colors) ─── */
31
+
32
+ @media (forced-colors: active) {
33
+ .menu {
34
+ background-color: Canvas;
35
+ border: 2px solid CanvasText;
36
+ }
37
+ }
29
38
  `;
30
- var I = Object.defineProperty, w = Object.getOwnPropertyDescriptor, v = (e, t, s, i) => {
31
- for (var n = i > 1 ? void 0 : i ? w(t, s) : t, r = e.length - 1, o; r >= 0; r--)
32
- (o = e[r]) && (n = (i ? o(t, s, n) : o(n)) || n);
33
- return i && n && I(t, s, n), n;
39
+ var I = Object.defineProperty, w = Object.getOwnPropertyDescriptor, _ = (e, t, n, s) => {
40
+ for (var i = s > 1 ? void 0 : s ? w(t, n) : t, r = e.length - 1, a; r >= 0; r--)
41
+ (a = e[r]) && (i = (s ? a(t, n, i) : a(i)) || i);
42
+ return s && i && I(t, n, i), i;
34
43
  };
35
44
  let d = class extends f {
36
45
  constructor() {
@@ -49,8 +58,8 @@ let d = class extends f {
49
58
  /** @internal */
50
59
  _syncRovingTabIndex() {
51
60
  const e = this._getItems(), t = this._focusedIndex >= 0 ? this._focusedIndex : 0;
52
- e.forEach((s, i) => {
53
- s.setRovingTabIndex(i === t ? 0 : -1);
61
+ e.forEach((n, s) => {
62
+ n.setRovingTabIndex(s === t ? 0 : -1);
54
63
  });
55
64
  }
56
65
  /** Focus the first menu item. */
@@ -68,14 +77,14 @@ let d = class extends f {
68
77
  const t = this._getItems();
69
78
  if (t.length === 0) return;
70
79
  this._focusedIndex = Math.max(0, Math.min(e, t.length - 1)), this._syncRovingTabIndex();
71
- const s = t[this._focusedIndex];
72
- s !== void 0 && s.focus();
80
+ const n = t[this._focusedIndex];
81
+ n !== void 0 && n.focus();
73
82
  }
74
83
  /** @internal */
75
84
  _updateFocusedIndex() {
76
- var i;
77
- const e = this._getItems(), t = ((i = this.shadowRoot) == null ? void 0 : i.activeElement) ?? document.activeElement, s = e.findIndex((n) => n.matches(":focus-within") || n === t);
78
- s !== -1 && (this._focusedIndex = s);
85
+ var s;
86
+ const e = this._getItems(), t = ((s = this.shadowRoot) == null ? void 0 : s.activeElement) ?? document.activeElement, n = e.findIndex((i) => i.matches(":focus-within") || i === t);
87
+ n !== -1 && (this._focusedIndex = n);
79
88
  }
80
89
  /** @internal */
81
90
  _handleKeyDown(e) {
@@ -108,27 +117,27 @@ let d = class extends f {
108
117
  this._typeaheadTimer !== null && clearTimeout(this._typeaheadTimer), this._typeaheadBuffer += e.toLowerCase(), this._typeaheadTimer = setTimeout(() => {
109
118
  this._typeaheadBuffer = "", this._typeaheadTimer = null;
110
119
  }, 500);
111
- const s = t.findIndex((i) => {
120
+ const n = t.findIndex((s) => {
112
121
  var r;
113
- return i.disabled || i.hasAttribute("disabled") ? !1 : (((r = i.textContent) == null ? void 0 : r.trim().toLowerCase()) ?? "").startsWith(this._typeaheadBuffer);
122
+ return s.disabled || s.hasAttribute("disabled") ? !1 : (((r = s.textContent) == null ? void 0 : r.trim().toLowerCase()) ?? "").startsWith(this._typeaheadBuffer);
114
123
  });
115
- s !== -1 && this._focusItem(s);
124
+ n !== -1 && this._focusItem(n);
116
125
  }
117
126
  /** @internal */
118
127
  _handleSlotChange(e) {
119
128
  const t = e.target;
120
129
  if (!(t instanceof HTMLSlotElement)) return;
121
- const s = /* @__PURE__ */ new Set(["hx-menu-item", "hx-menu-divider"]), i = t.assignedElements().filter((n) => !s.has(n.tagName.toLowerCase()));
122
- i.length > 0 && g(
130
+ const n = /* @__PURE__ */ new Set(["hx-menu-item", "hx-menu-divider"]), s = t.assignedElements().filter((i) => !n.has(i.tagName.toLowerCase()));
131
+ s.length > 0 && g(
123
132
  "hx-menu",
124
- `Default slot expects <hx-menu-item> or <hx-menu-divider> elements. Found unexpected: ${i.map((n) => `<${n.tagName.toLowerCase()}>`).join(", ")}`
133
+ `Default slot expects <hx-menu-item> or <hx-menu-divider> elements. Found unexpected: ${s.map((i) => `<${i.tagName.toLowerCase()}>`).join(", ")}`
125
134
  ), this._syncRovingTabIndex();
126
135
  }
127
136
  /** @internal */
128
137
  _handleItemSelect(e) {
129
138
  if (!(e instanceof CustomEvent)) return;
130
- const t = e.detail, s = this._getItems();
131
- this._focusedIndex = s.indexOf(t.item), this.dispatchEvent(
139
+ const t = e.detail, n = this._getItems();
140
+ this._focusedIndex = n.indexOf(t.item), this.dispatchEvent(
132
141
  new CustomEvent("hx-select", {
133
142
  bubbles: !0,
134
143
  composed: !0,
@@ -158,10 +167,10 @@ let d = class extends f {
158
167
  }
159
168
  };
160
169
  d.styles = [k];
161
- v([
170
+ _([
162
171
  c({ type: String, reflect: !0 })
163
172
  ], d.prototype, "label", 2);
164
- d = v([
173
+ d = _([
165
174
  x("hx-menu")
166
175
  ], d);
167
176
  const C = p`
@@ -263,13 +272,39 @@ const C = p`
263
272
  opacity: var(--hx-opacity-muted, 0.6);
264
273
  }
265
274
  }
275
+
276
+ /* ─── High Contrast Mode (forced-colors) ─── */
277
+
278
+ @media (forced-colors: active) {
279
+ .menu-item {
280
+ forced-color-adjust: none;
281
+ color: CanvasText;
282
+ background-color: Canvas;
283
+ }
284
+
285
+ .menu-item:hover,
286
+ .menu-item:focus-visible {
287
+ background-color: Highlight;
288
+ color: HighlightText;
289
+ }
290
+
291
+ .menu-item:focus-visible {
292
+ outline: 2px solid Highlight;
293
+ outline-offset: -2px;
294
+ }
295
+
296
+ :host([disabled]) .menu-item {
297
+ color: GrayText;
298
+ opacity: 1;
299
+ }
300
+ }
266
301
  `;
267
- var S = Object.defineProperty, T = Object.getOwnPropertyDescriptor, l = (e, t, s, i) => {
268
- for (var n = i > 1 ? void 0 : i ? T(t, s) : t, r = e.length - 1, o; r >= 0; r--)
269
- (o = e[r]) && (n = (i ? o(t, s, n) : o(n)) || n);
270
- return i && n && S(t, s, n), n;
302
+ var S = Object.defineProperty, T = Object.getOwnPropertyDescriptor, l = (e, t, n, s) => {
303
+ for (var i = s > 1 ? void 0 : s ? T(t, n) : t, r = e.length - 1, a; r >= 0; r--)
304
+ (a = e[r]) && (i = (s ? a(t, n, i) : a(i)) || i);
305
+ return s && i && S(t, n, i), i;
271
306
  };
272
- let a = class extends f {
307
+ let o = class extends f {
273
308
  constructor() {
274
309
  super(...arguments), this._rovingTabIndex = -1, this.value = "", this.disabled = !1, this.checked = !1, this.type = "normal", this.loading = !1, this._hasSubmenu = !1, this._submenuOpen = !1;
275
310
  }
@@ -410,14 +445,14 @@ let a = class extends f {
410
445
  }
411
446
  }
412
447
  render() {
413
- const e = this._getRole(), t = this.type === "checkbox" || this.type === "radio", s = {
448
+ const e = this._getRole(), t = this.type === "checkbox" || this.type === "radio", n = {
414
449
  "menu-item": !0,
415
450
  "menu-item--checked": this.checked
416
451
  };
417
452
  return u`
418
453
  <div
419
454
  part="base"
420
- class=${y(s)}
455
+ class=${y(n)}
421
456
  role=${e}
422
457
  tabindex=${this.disabled ? "-1" : String(this._rovingTabIndex)}
423
458
  aria-disabled=${this.disabled ? "true" : h}
@@ -445,37 +480,37 @@ let a = class extends f {
445
480
  `;
446
481
  }
447
482
  };
448
- a.styles = [C];
483
+ o.styles = [C];
449
484
  l([
450
- _()
451
- ], a.prototype, "_rovingTabIndex", 2);
485
+ v()
486
+ ], o.prototype, "_rovingTabIndex", 2);
452
487
  l([
453
488
  c({ type: String })
454
- ], a.prototype, "value", 2);
489
+ ], o.prototype, "value", 2);
455
490
  l([
456
491
  c({ type: Boolean, reflect: !0 })
457
- ], a.prototype, "disabled", 2);
492
+ ], o.prototype, "disabled", 2);
458
493
  l([
459
494
  c({ type: Boolean, reflect: !0 })
460
- ], a.prototype, "checked", 2);
495
+ ], o.prototype, "checked", 2);
461
496
  l([
462
497
  c({ type: String, reflect: !0 })
463
- ], a.prototype, "type", 2);
498
+ ], o.prototype, "type", 2);
464
499
  l([
465
500
  c({ type: Boolean, reflect: !0 })
466
- ], a.prototype, "loading", 2);
501
+ ], o.prototype, "loading", 2);
467
502
  l([
468
- _()
469
- ], a.prototype, "_hasSubmenu", 2);
503
+ v()
504
+ ], o.prototype, "_hasSubmenu", 2);
470
505
  l([
471
- _()
472
- ], a.prototype, "_submenuOpen", 2);
506
+ v()
507
+ ], o.prototype, "_submenuOpen", 2);
473
508
  l([
474
509
  b(".menu-item")
475
- ], a.prototype, "_menuItemEl", 2);
476
- a = l([
510
+ ], o.prototype, "_menuItemEl", 2);
511
+ o = l([
477
512
  x("hx-menu-item")
478
- ], a);
513
+ ], o);
479
514
  const E = p`
480
515
  :host {
481
516
  display: block;
@@ -486,11 +521,19 @@ const E = p`
486
521
  background-color: var(--hx-menu-divider-color, var(--hx-color-neutral-200, #e2e8f0));
487
522
  margin: var(--hx-space-1, 0.25rem) calc(-1 * var(--hx-space-1, 0.25rem));
488
523
  }
524
+
525
+ /* ─── High Contrast Mode (forced-colors) ─── */
526
+
527
+ @media (forced-colors: active) {
528
+ .menu-divider {
529
+ background-color: GrayText;
530
+ }
531
+ }
489
532
  `;
490
- var $ = Object.getOwnPropertyDescriptor, D = (e, t, s, i) => {
491
- for (var n = i > 1 ? void 0 : i ? $(t, s) : t, r = e.length - 1, o; r >= 0; r--)
492
- (o = e[r]) && (n = o(n) || n);
493
- return n;
533
+ var $ = Object.getOwnPropertyDescriptor, D = (e, t, n, s) => {
534
+ for (var i = s > 1 ? void 0 : s ? $(t, n) : t, r = e.length - 1, a; r >= 0; r--)
535
+ (a = e[r]) && (i = a(i) || i);
536
+ return i;
494
537
  };
495
538
  let m = class extends f {
496
539
  render() {
@@ -509,6 +552,6 @@ m = D([
509
552
  export {
510
553
  d as H,
511
554
  m as a,
512
- a as b
555
+ o as b
513
556
  };
514
- //# sourceMappingURL=hx-menu-divider-DRT8yHRZ.js.map
557
+ //# sourceMappingURL=hx-menu-divider-DVWER7iT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hx-menu-divider-DVWER7iT.js","sources":["../../src/components/hx-menu/hx-menu.styles.ts","../../src/components/hx-menu/hx-menu.ts","../../src/components/hx-menu/hx-menu-item.styles.ts","../../src/components/hx-menu/hx-menu-item.ts","../../src/components/hx-menu/hx-menu-divider.styles.ts","../../src/components/hx-menu/hx-menu-divider.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixMenuStyles = css`\n :host {\n display: block;\n }\n\n .menu {\n display: flex;\n flex-direction: column;\n padding: var(--hx-space-1, 0.25rem);\n background: var(--hx-menu-bg, var(--hx-color-neutral-0, #ffffff));\n border: var(--hx-border-width-thin, 1px) solid\n var(--hx-menu-border-color, var(--hx-color-neutral-200, #e2e8f0));\n border-radius: var(--hx-menu-border-radius, var(--hx-border-radius-md, 0.375rem));\n box-shadow: var(\n --hx-menu-shadow,\n 0 4px 6px -1px rgb(0 0 0 / 0.1),\n 0 2px 4px -2px rgb(0 0 0 / 0.1)\n );\n min-width: var(--hx-menu-min-width, 10rem);\n max-height: var(--hx-menu-max-height, 20rem);\n overflow-y: auto;\n outline: none;\n }\n\n /* ─── High Contrast Mode (forced-colors) ─── */\n\n @media (forced-colors: active) {\n .menu {\n background-color: Canvas;\n border: 2px solid CanvasText;\n }\n }\n`;\n","import { LitElement, html } from 'lit';\nimport '../../utilities/document-token-adoption.js';\nimport { customElement, property } from 'lit/decorators.js';\nimport { helixMenuStyles } from './hx-menu.styles.js';\nimport type { HelixMenuItem } from './hx-menu-item.js';\nimport { devWarn } from '../../utils/dev-warn.js';\n\n/**\n * A menu container that manages keyboard navigation over a list of menu items.\n * Use with `hx-menu-item` and `hx-menu-divider`.\n *\n * @summary Context/action menu with keyboard-navigable items.\n *\n * @tag hx-menu\n *\n * @slot - Default slot for hx-menu-item and hx-menu-divider elements.\n *\n * @fires {CustomEvent<{item: HelixMenuItem, value: string}>} hx-select - Dispatched when an item is selected.\n * @fires {CustomEvent<void>} hx-close - Dispatched when Escape is pressed.\n *\n * @csspart base - The root menu element.\n *\n * @cssprop [--hx-menu-bg=var(--hx-color-neutral-0)] - Menu background color.\n * @cssprop [--hx-menu-border-color=var(--hx-color-neutral-200)] - Menu border color.\n * @cssprop [--hx-menu-border-radius=var(--hx-border-radius-md)] - Menu border radius.\n * @cssprop [--hx-menu-shadow] - Menu box shadow.\n * @cssprop [--hx-menu-min-width=10rem] - Minimum menu width.\n * @cssprop [--hx-menu-max-height=20rem] - Maximum menu height before vertical scroll is activated.\n */\n@customElement('hx-menu')\nexport class HelixMenu extends LitElement {\n static override styles = [helixMenuStyles];\n\n /**\n * Accessible label for the menu. Rendered as `aria-label` on the inner\n * `role=\"menu\"` element when set.\n * @attr label\n */\n @property({ type: String, reflect: true })\n label = '';\n\n /**\n * Index of the currently focused menu item within the list of enabled items.\n * @internal\n */\n private _focusedIndex = -1;\n\n /**\n * Accumulated character buffer for typeahead search within menu items.\n * @internal\n */\n private _typeaheadBuffer = '';\n\n /**\n * Timer handle that clears the typeahead buffer after a period of inactivity.\n * @internal\n */\n private _typeaheadTimer: ReturnType<typeof setTimeout> | null = null;\n\n /** @internal */\n private _getItems(): HelixMenuItem[] {\n return Array.from(this.querySelectorAll<HelixMenuItem>('hx-menu-item')).filter(\n (item) => !item.disabled && !item.loading,\n );\n }\n\n /**\n * Synchronize roving tabindex across all enabled items.\n * Only the active item (or first item if none active) gets tabindex=0.\n */\n /** @internal */\n private _syncRovingTabIndex(): void {\n const items = this._getItems();\n const activeIndex = this._focusedIndex >= 0 ? this._focusedIndex : 0;\n items.forEach((item, i) => {\n item.setRovingTabIndex(i === activeIndex ? 0 : -1);\n });\n }\n\n /** Focus the first menu item. */\n focusFirst(): void {\n const items = this._getItems();\n const first = items[0];\n if (first !== undefined) {\n this._focusedIndex = 0;\n this._syncRovingTabIndex();\n first.focus();\n }\n }\n\n /** Focus the last menu item. */\n focusLast(): void {\n const items = this._getItems();\n const last = items[items.length - 1];\n if (last !== undefined) {\n this._focusedIndex = items.length - 1;\n this._syncRovingTabIndex();\n last.focus();\n }\n }\n\n /** @internal */\n private _focusItem(index: number): void {\n const items = this._getItems();\n if (items.length === 0) return;\n this._focusedIndex = Math.max(0, Math.min(index, items.length - 1));\n this._syncRovingTabIndex();\n const target = items[this._focusedIndex];\n if (target !== undefined) target.focus();\n }\n\n /** @internal */\n private _updateFocusedIndex(): void {\n const items = this._getItems();\n const active = this.shadowRoot?.activeElement ?? document.activeElement;\n // Find the active item by checking if any item's shadow root contains the active element\n const idx = items.findIndex((item) => item.matches(':focus-within') || item === active);\n if (idx !== -1) this._focusedIndex = idx;\n }\n\n /** @internal */\n private _handleKeyDown(e: KeyboardEvent): void {\n this._updateFocusedIndex();\n const items = this._getItems();\n if (items.length === 0) return;\n\n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault();\n this._focusItem(this._focusedIndex + 1 < items.length ? this._focusedIndex + 1 : 0);\n break;\n case 'ArrowUp':\n e.preventDefault();\n this._focusItem(this._focusedIndex > 0 ? this._focusedIndex - 1 : items.length - 1);\n break;\n case 'Home':\n e.preventDefault();\n this._focusItem(0);\n break;\n case 'End':\n e.preventDefault();\n this._focusItem(items.length - 1);\n break;\n case 'Escape':\n e.preventDefault();\n this.dispatchEvent(new CustomEvent<void>('hx-close', { bubbles: true, composed: true }));\n break;\n default:\n if (e.key.length === 1 && e.key !== ' ' && !e.ctrlKey && !e.metaKey && !e.altKey) {\n this._handleTypeahead(e.key, items);\n }\n break;\n }\n }\n\n /** @internal */\n private _handleTypeahead(char: string, items: HelixMenuItem[]): void {\n if (this._typeaheadTimer !== null) {\n clearTimeout(this._typeaheadTimer);\n }\n this._typeaheadBuffer += char.toLowerCase();\n this._typeaheadTimer = setTimeout(() => {\n this._typeaheadBuffer = '';\n this._typeaheadTimer = null;\n }, 500);\n\n const match = items.findIndex((item) => {\n if (item.disabled || item.hasAttribute('disabled')) return false;\n const text = item.textContent?.trim().toLowerCase() ?? '';\n return text.startsWith(this._typeaheadBuffer);\n });\n\n if (match !== -1) {\n this._focusItem(match);\n }\n }\n\n /** @internal */\n private _handleSlotChange(e: Event): void {\n const slot = e.target;\n if (!(slot instanceof HTMLSlotElement)) return;\n const validTags = new Set(['hx-menu-item', 'hx-menu-divider']);\n const invalid = slot\n .assignedElements()\n .filter((el) => !validTags.has(el.tagName.toLowerCase()));\n if (invalid.length > 0) {\n devWarn(\n 'hx-menu',\n `Default slot expects <hx-menu-item> or <hx-menu-divider> elements. Found unexpected: ${invalid.map((el) => `<${el.tagName.toLowerCase()}>`).join(', ')}`,\n );\n }\n // Initialize roving tabindex when items are slotted\n this._syncRovingTabIndex();\n }\n\n /** @internal */\n private _handleItemSelect(e: Event): void {\n if (!(e instanceof CustomEvent)) return;\n const detail = (e as CustomEvent<{ item: HelixMenuItem; value: string }>).detail;\n const items = this._getItems();\n this._focusedIndex = items.indexOf(detail.item);\n\n this.dispatchEvent(\n new CustomEvent<{ item: HelixMenuItem; value: string }>('hx-select', {\n bubbles: true,\n composed: true,\n detail: { item: detail.item, value: detail.value },\n }),\n );\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n if (this._typeaheadTimer !== null) {\n clearTimeout(this._typeaheadTimer);\n this._typeaheadTimer = null;\n }\n }\n\n override firstUpdated(): void {\n if (!this.label) {\n devWarn(\n 'hx-menu',\n 'No accessible label provided. Set the `label` attribute on hx-menu so screen readers can identify this menu (WCAG 4.1.2).',\n );\n }\n }\n\n override render() {\n return html`\n <div\n part=\"base\"\n class=\"menu\"\n role=\"menu\"\n aria-label=${this.label || 'Menu'}\n @keydown=${this._handleKeyDown}\n @hx-item-select=${this._handleItemSelect}\n >\n <slot @slotchange=${this._handleSlotChange}></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-menu': HelixMenu;\n }\n}\n","import { css } from 'lit';\n\nexport const helixMenuItemStyles = css`\n :host {\n display: block;\n }\n\n :host([disabled]) {\n pointer-events: none;\n opacity: var(--hx-opacity-disabled, 0.5);\n }\n\n .menu-item {\n display: flex;\n align-items: center;\n gap: var(--hx-space-2, 0.5rem);\n padding: var(--hx-space-2, 0.5rem) var(--hx-space-3, 0.75rem);\n border-radius: var(--hx-border-radius-sm, 0.25rem);\n cursor: pointer;\n color: var(--hx-menu-item-color, var(--hx-color-neutral-900, #0f172a));\n font-size: var(--hx-font-size-sm, 0.875rem);\n font-family: var(--hx-font-family-sans, sans-serif);\n line-height: var(--hx-line-height-tight, 1.25);\n user-select: none;\n -webkit-user-select: none;\n outline: none;\n background: none;\n width: 100%;\n box-sizing: border-box;\n transition: background-color var(--hx-transition-fast, 150ms ease);\n }\n\n .menu-item:hover,\n .menu-item:focus-visible {\n background-color: var(--hx-menu-item-hover-bg, var(--hx-color-neutral-100, #f1f5f9));\n }\n\n .menu-item:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid\n var(--hx-menu-item-focus-ring-color, var(--hx-focus-ring-color, var(--hx-color-primary-500)));\n outline-offset: var(--hx-menu-item-focus-ring-offset, 0px);\n }\n\n .menu-item__prefix,\n .menu-item__suffix {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n }\n\n .menu-item__label {\n flex: 1 1 auto;\n }\n\n .menu-item__checked-icon {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n width: 1em;\n opacity: 0;\n transition: opacity var(--hx-transition-fast, 150ms ease);\n }\n\n .menu-item--checked .menu-item__checked-icon {\n opacity: 1;\n }\n\n .menu-item__submenu-icon {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n margin-inline-start: auto;\n }\n\n .menu-item__spinner {\n width: 1em;\n height: 1em;\n flex-shrink: 0;\n animation: hx-menu-spin var(--hx-duration-spinner, 750ms) linear infinite;\n }\n\n @keyframes hx-menu-spin {\n to {\n transform: rotate(360deg);\n }\n }\n\n @media (prefers-reduced-motion: reduce) {\n .menu-item {\n transition: none;\n }\n\n .menu-item__checked-icon {\n transition: none;\n }\n\n .menu-item__spinner {\n animation: none;\n opacity: var(--hx-opacity-muted, 0.6);\n }\n }\n\n /* ─── High Contrast Mode (forced-colors) ─── */\n\n @media (forced-colors: active) {\n .menu-item {\n forced-color-adjust: none;\n color: CanvasText;\n background-color: Canvas;\n }\n\n .menu-item:hover,\n .menu-item:focus-visible {\n background-color: Highlight;\n color: HighlightText;\n }\n\n .menu-item:focus-visible {\n outline: 2px solid Highlight;\n outline-offset: -2px;\n }\n\n :host([disabled]) .menu-item {\n color: GrayText;\n opacity: 1;\n }\n }\n`;\n","import { LitElement, html, nothing } from 'lit';\nimport '../../utilities/document-token-adoption.js';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { helixMenuItemStyles } from './hx-menu-item.styles.js';\nimport { devWarn } from '../../utils/dev-warn.js';\n\n/**\n * A single interactive item for use inside `hx-menu`. Supports normal, checkbox,\n * and radio types, loading state, prefix/suffix slots, and submenu nesting.\n * Use `aria-label` on the parent `hx-menu` to provide an accessible name.\n *\n * @summary Interactive item within an hx-menu.\n *\n * @tag hx-menu-item\n *\n * @slot - Default slot for the item label.\n * @slot prefix - Icon or content rendered before the label.\n * @slot suffix - Shortcut text or icon rendered after the label.\n * @slot submenu - A nested hx-menu for submenu content.\n *\n * @fires {CustomEvent<{item: HelixMenuItem, value: string}>} hx-item-select - Dispatched when the item is activated via click, Enter, or Space.\n * @fires {CustomEvent<{item: HelixMenuItem}>} hx-item-submenu-open - Dispatched when ArrowRight is pressed on an item with a submenu.\n * @fires {CustomEvent<{item: HelixMenuItem}>} hx-item-submenu-close - Dispatched when ArrowLeft is pressed on an item, signaling the parent to close the submenu and return focus.\n *\n * @csspart base - The root item element.\n * @csspart prefix - Prefix slot wrapper.\n * @csspart label - Label slot wrapper.\n * @csspart suffix - Suffix slot wrapper.\n * @csspart submenu-icon - The chevron icon indicating a submenu.\n * @csspart checked-icon - The checkmark icon for checkbox-type items.\n *\n * @cssprop [--hx-menu-item-color=var(--hx-color-neutral-900)] - Item text color.\n * @cssprop [--hx-menu-item-hover-bg=var(--hx-color-neutral-100)] - Item hover/focus background.\n */\n@customElement('hx-menu-item')\nexport class HelixMenuItem extends LitElement {\n static override styles = [helixMenuItemStyles];\n\n /**\n * @internal Managed by parent hx-menu for roving tabindex.\n * Only the active item in the menu has tabindex=0; all others have -1.\n */\n @state()\n private _rovingTabIndex = -1;\n\n /** @internal Set the roving tabindex value. Called by parent hx-menu. */\n setRovingTabIndex(value: number): void {\n this._rovingTabIndex = value;\n }\n\n /** Set whether the nested submenu is open. Called by the component managing submenu visibility. */\n setSubmenuOpen(open: boolean): void {\n this._submenuOpen = open;\n }\n\n /**\n * The value associated with this item, emitted in the hx-select event.\n * @attr value\n */\n @property({ type: String })\n value = '';\n\n /**\n * Whether the item is disabled. Prevents interaction and event dispatch.\n * @attr disabled\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Whether the item is checked. Only meaningful when type=\"checkbox\".\n * @attr checked\n */\n @property({ type: Boolean, reflect: true })\n checked = false;\n\n /**\n * The type of menu item. \"checkbox\" renders a checkmark and toggles checked state.\n * \"radio\" renders a checkmark and emits selection for radio-group behavior.\n * @attr type\n */\n @property({ type: String, reflect: true })\n type: 'normal' | 'checkbox' | 'radio' = 'normal';\n\n /**\n * Whether the item is in a loading state. Shows a spinner and prevents interaction.\n * @attr loading\n */\n @property({ type: Boolean, reflect: true })\n loading = false;\n\n /** @internal */\n @state()\n private _hasSubmenu = false;\n\n /** @internal Tracks whether the nested submenu is currently open. */\n @state()\n private _submenuOpen = false;\n\n /** @internal */\n @query('.menu-item') private _menuItemEl!: HTMLElement | null;\n\n /** Focus the inner interactive element. */\n override focus(options?: FocusOptions): void {\n this._menuItemEl?.focus(options);\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n // WCAG 4.1.2: menuitem role is only valid inside a role=\"menu\" or role=\"menubar\" container.\n // Check the closest ancestor with a menu role.\n const menuHost = this.closest('hx-menu, hx-split-button, [role=\"menu\"], [role=\"menubar\"]');\n if (!menuHost) {\n devWarn(\n 'hx-menu-item',\n 'hx-menu-item must be used inside an hx-menu or an element with role=\"menu\". ' +\n 'An orphaned menuitem violates WCAG 1.3.1 (Info and Relationships).',\n );\n }\n }\n\n /** @internal */\n private _handleSubmenuSlotChange(e: Event): void {\n const slot = e.target as HTMLSlotElement;\n this._hasSubmenu = slot.assignedElements().length > 0;\n }\n\n /** @internal */\n private _activate(): void {\n if (this.disabled || this.loading) return;\n\n if (this.type === 'checkbox') {\n this.checked = !this.checked;\n } else if (this.type === 'radio') {\n const menu = this.closest('hx-menu');\n if (menu) {\n menu\n .querySelectorAll<HelixMenuItem>(':scope > hx-menu-item[type=\"radio\"]')\n .forEach((sibling) => {\n sibling.checked = sibling === this;\n });\n } else {\n this.checked = true;\n }\n }\n\n this.dispatchEvent(\n new CustomEvent<{ item: HelixMenuItem; value: string }>('hx-item-select', {\n bubbles: true,\n composed: true,\n detail: { item: this, value: this.value },\n }),\n );\n }\n\n /** @internal */\n private _handleClick(e: MouseEvent): void {\n if (this.disabled || this.loading) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n this._activate();\n }\n\n /** @internal */\n private _handleKeyDown(e: KeyboardEvent): void {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n this._activate();\n return;\n }\n\n if (e.key === 'ArrowRight' && this._hasSubmenu) {\n e.preventDefault();\n this.dispatchEvent(\n new CustomEvent<{ item: HelixMenuItem }>('hx-item-submenu-open', {\n bubbles: true,\n composed: true,\n detail: { item: this },\n }),\n );\n return;\n }\n\n if (e.key === 'ArrowLeft') {\n e.preventDefault();\n this.dispatchEvent(\n new CustomEvent<{ item: HelixMenuItem }>('hx-item-submenu-close', {\n bubbles: true,\n composed: true,\n detail: { item: this },\n }),\n );\n }\n }\n\n /** @internal */\n private _renderCheckedIcon() {\n return html`\n <span part=\"checked-icon\" class=\"menu-item__checked-icon\" aria-hidden=\"true\">\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"3\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <polyline points=\"20 6 9 17 4 12\" />\n </svg>\n </span>\n `;\n }\n\n /** @internal */\n private _renderSubmenuIcon() {\n return html`\n <span part=\"submenu-icon\" class=\"menu-item__submenu-icon\" aria-hidden=\"true\">\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <polyline points=\"9 18 15 12 9 6\" />\n </svg>\n </span>\n `;\n }\n\n /** @internal */\n private _renderSpinner() {\n return html`\n <svg class=\"menu-item__spinner\" aria-hidden=\"true\" viewBox=\"0 0 24 24\" fill=\"none\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"3\" opacity=\"0.3\" />\n <path\n d=\"M12 2a10 10 0 0 1 10 10\"\n stroke=\"currentColor\"\n stroke-width=\"3\"\n stroke-linecap=\"round\"\n />\n </svg>\n `;\n }\n\n /** @internal */\n private _getRole(): string {\n switch (this.type) {\n case 'checkbox':\n return 'menuitemcheckbox';\n case 'radio':\n return 'menuitemradio';\n default:\n return 'menuitem';\n }\n }\n\n override render() {\n const role = this._getRole();\n const hasCheckableRole = this.type === 'checkbox' || this.type === 'radio';\n const classes = {\n 'menu-item': true,\n 'menu-item--checked': this.checked,\n };\n\n return html`\n <div\n part=\"base\"\n class=${classMap(classes)}\n role=${role}\n tabindex=${this.disabled ? '-1' : String(this._rovingTabIndex)}\n aria-disabled=${this.disabled ? 'true' : nothing}\n aria-checked=${hasCheckableRole ? (this.checked ? 'true' : 'false') : nothing}\n aria-haspopup=${this._hasSubmenu ? 'menu' : nothing}\n aria-expanded=${this._hasSubmenu ? (this._submenuOpen ? 'true' : 'false') : nothing}\n aria-busy=${this.loading ? 'true' : nothing}\n @click=${this._handleClick}\n @keydown=${this._handleKeyDown}\n >\n ${this.loading ? this._renderSpinner() : nothing}\n ${hasCheckableRole ? this._renderCheckedIcon() : nothing}\n <span part=\"prefix\" class=\"menu-item__prefix\">\n <slot name=\"prefix\"></slot>\n </span>\n <span part=\"label\" class=\"menu-item__label\">\n <slot></slot>\n </span>\n <span part=\"suffix\" class=\"menu-item__suffix\">\n <slot name=\"suffix\"></slot>\n </span>\n ${this._hasSubmenu ? this._renderSubmenuIcon() : nothing}\n <slot name=\"submenu\" @slotchange=${this._handleSubmenuSlotChange}></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-menu-item': HelixMenuItem;\n }\n}\n","import { css } from 'lit';\n\nexport const helixMenuDividerStyles = css`\n :host {\n display: block;\n }\n\n .menu-divider {\n height: var(--hx-border-width-thin, 1px);\n background-color: var(--hx-menu-divider-color, var(--hx-color-neutral-200, #e2e8f0));\n margin: var(--hx-space-1, 0.25rem) calc(-1 * var(--hx-space-1, 0.25rem));\n }\n\n /* ─── High Contrast Mode (forced-colors) ─── */\n\n @media (forced-colors: active) {\n .menu-divider {\n background-color: GrayText;\n }\n }\n`;\n","import { LitElement, html } from 'lit';\nimport '../../utilities/document-token-adoption.js';\nimport { customElement } from 'lit/decorators.js';\nimport { helixMenuDividerStyles } from './hx-menu-divider.styles.js';\n\n/**\n * A visual separator for grouping items within an `hx-menu`.\n *\n * @summary Horizontal divider between menu sections.\n *\n * @tag hx-menu-divider\n *\n * @csspart base - The root separator element.\n *\n * @cssprop [--hx-menu-divider-color=var(--hx-color-neutral-200)] - Divider line color.\n */\n@customElement('hx-menu-divider')\nexport class HelixMenuDivider extends LitElement {\n static override styles = [helixMenuDividerStyles];\n\n override render() {\n return html`<div\n part=\"base\"\n class=\"menu-divider\"\n role=\"separator\"\n aria-orientation=\"horizontal\"\n ></div>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-menu-divider': HelixMenuDivider;\n }\n}\n"],"names":["helixMenuStyles","css","HelixMenu","LitElement","item","items","activeIndex","i","first","last","index","target","active","_a","idx","char","match","slot","validTags","invalid","el","devWarn","detail","html","__decorateClass","property","customElement","helixMenuItemStyles","HelixMenuItem","value","open","options","menu","sibling","role","hasCheckableRole","classes","classMap","nothing","state","query","helixMenuDividerStyles","HelixMenuDivider"],"mappings":"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"}
@@ -2,7 +2,8 @@ import { css as x, LitElement as g, nothing as _, html as v } from "lit";
2
2
  import "./document-token-adoption-DuYNKd4k.js";
3
3
  import { property as h, state as b, customElement as w } from "lit/decorators.js";
4
4
  import { ifDefined as m } from "lit/directives/if-defined.js";
5
- const y = x`
5
+ import { c as y } from "./id-counter-PTgF-zcG.js";
6
+ const $ = x`
6
7
  :host {
7
8
  display: block;
8
9
  width: 100%;
@@ -116,15 +117,29 @@ const y = x`
116
117
  white-space: nowrap;
117
118
  border: 0;
118
119
  }
120
+
121
+ /* ─── Forced Colors (Windows High Contrast) ─── */
122
+
123
+ @media (forced-colors: active) {
124
+ .meter__track {
125
+ border: 1px solid CanvasText;
126
+ }
127
+
128
+ .meter__indicator {
129
+ forced-color-adjust: none;
130
+ background-color: Highlight;
131
+ }
132
+ }
119
133
  `;
120
- var $ = Object.defineProperty, S = Object.getOwnPropertyDescriptor, s = (e, t, i, o) => {
121
- for (var a = o > 1 ? void 0 : o ? S(t, i) : t, n = e.length - 1, l; n >= 0; n--)
122
- (l = e[n]) && (a = (o ? l(t, i, a) : l(a)) || a);
123
- return o && a && $(t, i, a), a;
134
+ var S = Object.defineProperty, L = Object.getOwnPropertyDescriptor, s = (e, t, i, o) => {
135
+ for (var r = o > 1 ? void 0 : o ? L(t, i) : t, n = e.length - 1, l; n >= 0; n--)
136
+ (l = e[n]) && (r = (o ? l(t, i, r) : l(r)) || r);
137
+ return o && r && S(t, i, r), r;
124
138
  };
125
- let r = class extends g {
139
+ const C = y("hx-meter");
140
+ let a = class extends g {
126
141
  constructor() {
127
- super(...arguments), this._uid = `hx-meter-${++r._counter}`, this.value = 0, this.min = 0, this.max = 100, this._hasSlotContent = !1;
142
+ super(...arguments), this._uid = C(), this.value = 0, this.min = 0, this.max = 100, this._hasSlotContent = !1;
128
143
  }
129
144
  /** @internal */
130
145
  _clampedValue() {
@@ -139,10 +154,10 @@ let r = class extends g {
139
154
  _resolveState() {
140
155
  const e = this._clampedValue(), t = this.low !== void 0, i = this.high !== void 0, o = this.optimum !== void 0;
141
156
  if (!t && !i && !o) return "default";
142
- const a = this.low ?? 0, n = this.high ?? this.max, l = t && e < a, c = i && e > n, d = !l && !c;
157
+ const r = this.low ?? 0, n = this.high ?? this.max, l = t && e < r, c = i && e > n, d = !l && !c;
143
158
  if (!o)
144
159
  return l || c ? "warning" : "optimum";
145
- const u = this.optimum ?? this.min, p = t && u < a, f = i && u > n;
160
+ const u = this.optimum ?? this.min, p = t && u < r, f = i && u > n;
146
161
  return !p && !f ? d ? "optimum" : "warning" : p ? l ? "optimum" : d ? "warning" : "danger" : c ? "optimum" : d ? "warning" : "danger";
147
162
  }
148
163
  /** @internal */
@@ -156,7 +171,7 @@ let r = class extends g {
156
171
  this.style.setProperty("--_value-ratio", String(Math.max(0, Math.min(1, t))));
157
172
  }
158
173
  render() {
159
- const e = this._resolveState(), t = this._clampedValue(), i = e !== "default" ? ` — ${e}` : "", o = `${t} of ${this.max}${i}`, a = this.label !== void 0 || this._hasSlotContent, n = r._STATE_LABELS[e];
174
+ const e = this._resolveState(), t = this._clampedValue(), i = e !== "default" ? ` — ${e}` : "", o = `${t} of ${this.max}${i}`, r = this.label !== void 0 || this._hasSlotContent, n = a._STATE_LABELS[e];
160
175
  return v`
161
176
  <div
162
177
  part="base"
@@ -167,14 +182,14 @@ let r = class extends g {
167
182
  aria-valuemin=${this.min}
168
183
  aria-valuemax=${this.max}
169
184
  aria-valuetext=${o}
170
- aria-label=${m(a ? void 0 : `${t} of ${this.max}`)}
171
- aria-labelledby=${m(a ? `${this._uid}-label` : void 0)}
185
+ aria-label=${m(r ? void 0 : `${t} of ${this.max}`)}
186
+ aria-labelledby=${m(r ? `${this._uid}-label` : void 0)}
172
187
  >
173
188
  <span
174
189
  id=${`${this._uid}-label`}
175
190
  part="label"
176
191
  class="meter__label"
177
- ?hidden=${!a}
192
+ ?hidden=${!r}
178
193
  >
179
194
  <slot name="label" @slotchange=${this._onLabelSlotChange}>${this.label ?? ""}</slot>
180
195
  </span>
@@ -199,41 +214,40 @@ let r = class extends g {
199
214
  `;
200
215
  }
201
216
  };
202
- r.styles = [y];
203
- r._counter = 0;
204
- r._STATE_LABELS = {
217
+ a.styles = [$];
218
+ a._STATE_LABELS = {
205
219
  optimum: "Optimum",
206
220
  warning: "Warning",
207
221
  danger: "Danger"
208
222
  };
209
223
  s([
210
224
  h({ type: Number, reflect: !0 })
211
- ], r.prototype, "value", 2);
225
+ ], a.prototype, "value", 2);
212
226
  s([
213
227
  h({ type: Number, reflect: !0 })
214
- ], r.prototype, "min", 2);
228
+ ], a.prototype, "min", 2);
215
229
  s([
216
230
  h({ type: Number, reflect: !0 })
217
- ], r.prototype, "max", 2);
231
+ ], a.prototype, "max", 2);
218
232
  s([
219
233
  h({ type: Number, reflect: !0 })
220
- ], r.prototype, "low", 2);
234
+ ], a.prototype, "low", 2);
221
235
  s([
222
236
  h({ type: Number, reflect: !0 })
223
- ], r.prototype, "high", 2);
237
+ ], a.prototype, "high", 2);
224
238
  s([
225
239
  h({ type: Number, reflect: !0 })
226
- ], r.prototype, "optimum", 2);
240
+ ], a.prototype, "optimum", 2);
227
241
  s([
228
242
  h({ type: String })
229
- ], r.prototype, "label", 2);
243
+ ], a.prototype, "label", 2);
230
244
  s([
231
245
  b()
232
- ], r.prototype, "_hasSlotContent", 2);
233
- r = s([
246
+ ], a.prototype, "_hasSlotContent", 2);
247
+ a = s([
234
248
  w("hx-meter")
235
- ], r);
249
+ ], a);
236
250
  export {
237
- r as H
251
+ a as H
238
252
  };
239
- //# sourceMappingURL=hx-meter-BcVC9yrt.js.map
253
+ //# sourceMappingURL=hx-meter-ChZdWNF2.js.map