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

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 (817) hide show
  1. package/custom-elements.json +1110 -1249
  2. package/dist/base/helix-element.d.ts +20 -8
  3. package/dist/base/helix-element.d.ts.map +1 -1
  4. package/dist/components/hx-accordion/hx-accordion-item.d.ts +7 -4
  5. package/dist/components/hx-accordion/hx-accordion-item.d.ts.map +1 -1
  6. package/dist/components/hx-accordion/hx-accordion-item.styles.d.ts.map +1 -1
  7. package/dist/components/hx-accordion/hx-accordion.d.ts +3 -2
  8. package/dist/components/hx-accordion/hx-accordion.d.ts.map +1 -1
  9. package/dist/components/hx-accordion/hx-accordion.styles.d.ts.map +1 -1
  10. package/dist/components/hx-accordion/index.d.ts +1 -0
  11. package/dist/components/hx-accordion/index.d.ts.map +1 -1
  12. package/dist/components/hx-accordion/index.js +1 -1
  13. package/dist/components/hx-action-bar/hx-action-bar.d.ts +2 -11
  14. package/dist/components/hx-action-bar/hx-action-bar.d.ts.map +1 -1
  15. package/dist/components/hx-action-bar/hx-action-bar.styles.d.ts.map +1 -1
  16. package/dist/components/hx-action-bar/index.js +1 -1
  17. package/dist/components/hx-alert/hx-alert.d.ts +7 -2
  18. package/dist/components/hx-alert/hx-alert.d.ts.map +1 -1
  19. package/dist/components/hx-alert/hx-alert.styles.d.ts.map +1 -1
  20. package/dist/components/hx-alert/index.d.ts +1 -0
  21. package/dist/components/hx-alert/index.d.ts.map +1 -1
  22. package/dist/components/hx-alert/index.js +1 -1
  23. package/dist/components/hx-avatar/hx-avatar.d.ts +3 -2
  24. package/dist/components/hx-avatar/hx-avatar.d.ts.map +1 -1
  25. package/dist/components/hx-avatar/index.js +1 -1
  26. package/dist/components/hx-badge/hx-badge.d.ts +2 -9
  27. package/dist/components/hx-badge/hx-badge.d.ts.map +1 -1
  28. package/dist/components/hx-badge/hx-badge.styles.d.ts.map +1 -1
  29. package/dist/components/hx-badge/index.d.ts +1 -1
  30. package/dist/components/hx-badge/index.d.ts.map +1 -1
  31. package/dist/components/hx-badge/index.js +1 -1
  32. package/dist/components/hx-banner/hx-banner.d.ts +3 -2
  33. package/dist/components/hx-banner/hx-banner.d.ts.map +1 -1
  34. package/dist/components/hx-banner/hx-banner.styles.d.ts.map +1 -1
  35. package/dist/components/hx-banner/index.js +1 -1
  36. package/dist/components/hx-breadcrumb/hx-breadcrumb-item.d.ts +2 -2
  37. package/dist/components/hx-breadcrumb/hx-breadcrumb-item.d.ts.map +1 -1
  38. package/dist/components/hx-breadcrumb/hx-breadcrumb-item.styles.d.ts.map +1 -1
  39. package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts +9 -19
  40. package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts.map +1 -1
  41. package/dist/components/hx-breadcrumb/hx-breadcrumb.styles.d.ts.map +1 -1
  42. package/dist/components/hx-breadcrumb/index.js +1 -1
  43. package/dist/components/hx-button/hx-button.d.ts +31 -9
  44. package/dist/components/hx-button/hx-button.d.ts.map +1 -1
  45. package/dist/components/hx-button/hx-button.styles.d.ts.map +1 -1
  46. package/dist/components/hx-button/index.d.ts +1 -0
  47. package/dist/components/hx-button/index.d.ts.map +1 -1
  48. package/dist/components/hx-button/index.js +1 -1
  49. package/dist/components/hx-button-group/hx-button-group.d.ts +4 -6
  50. package/dist/components/hx-button-group/hx-button-group.d.ts.map +1 -1
  51. package/dist/components/hx-button-group/hx-button-group.styles.d.ts.map +1 -1
  52. package/dist/components/hx-button-group/index.js +1 -1
  53. package/dist/components/hx-card/hx-card.d.ts +19 -2
  54. package/dist/components/hx-card/hx-card.d.ts.map +1 -1
  55. package/dist/components/hx-card/hx-card.styles.d.ts.map +1 -1
  56. package/dist/components/hx-card/index.js +1 -1
  57. package/dist/components/hx-carousel/hx-carousel-item.d.ts +2 -2
  58. package/dist/components/hx-carousel/hx-carousel-item.d.ts.map +1 -1
  59. package/dist/components/hx-carousel/hx-carousel-item.styles.d.ts.map +1 -1
  60. package/dist/components/hx-carousel/hx-carousel.d.ts +2 -2
  61. package/dist/components/hx-carousel/hx-carousel.d.ts.map +1 -1
  62. package/dist/components/hx-carousel/hx-carousel.styles.d.ts.map +1 -1
  63. package/dist/components/hx-carousel/index.js +1 -1
  64. package/dist/components/hx-checkbox/hx-checkbox.d.ts +52 -5
  65. package/dist/components/hx-checkbox/hx-checkbox.d.ts.map +1 -1
  66. package/dist/components/hx-checkbox/hx-checkbox.styles.d.ts.map +1 -1
  67. package/dist/components/hx-checkbox/index.d.ts +1 -0
  68. package/dist/components/hx-checkbox/index.d.ts.map +1 -1
  69. package/dist/components/hx-checkbox/index.js +1 -1
  70. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts +14 -20
  71. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts.map +1 -1
  72. package/dist/components/hx-checkbox-group/hx-checkbox-group.styles.d.ts.map +1 -1
  73. package/dist/components/hx-checkbox-group/index.d.ts +1 -0
  74. package/dist/components/hx-checkbox-group/index.d.ts.map +1 -1
  75. package/dist/components/hx-checkbox-group/index.js +1 -1
  76. package/dist/components/hx-clinical-status/hx-clinical-status.d.ts +0 -7
  77. package/dist/components/hx-clinical-status/hx-clinical-status.d.ts.map +1 -1
  78. package/dist/components/hx-clinical-status/hx-clinical-status.styles.d.ts.map +1 -1
  79. package/dist/components/hx-clinical-status/index.js +1 -1
  80. package/dist/components/hx-code-snippet/hx-code-snippet.styles.d.ts.map +1 -1
  81. package/dist/components/hx-code-snippet/index.js +1 -1
  82. package/dist/components/hx-color-picker/hx-color-picker.d.ts +8 -11
  83. package/dist/components/hx-color-picker/hx-color-picker.d.ts.map +1 -1
  84. package/dist/components/hx-color-picker/hx-color-picker.styles.d.ts.map +1 -1
  85. package/dist/components/hx-color-picker/index.d.ts +1 -0
  86. package/dist/components/hx-color-picker/index.d.ts.map +1 -1
  87. package/dist/components/hx-color-picker/index.js +1 -1
  88. package/dist/components/hx-combobox/hx-combobox.d.ts +45 -22
  89. package/dist/components/hx-combobox/hx-combobox.d.ts.map +1 -1
  90. package/dist/components/hx-combobox/hx-combobox.styles.d.ts.map +1 -1
  91. package/dist/components/hx-combobox/index.d.ts +1 -0
  92. package/dist/components/hx-combobox/index.d.ts.map +1 -1
  93. package/dist/components/hx-combobox/index.js +1 -1
  94. package/dist/components/hx-container/hx-container.d.ts +2 -4
  95. package/dist/components/hx-container/hx-container.d.ts.map +1 -1
  96. package/dist/components/hx-container/hx-container.styles.d.ts.map +1 -1
  97. package/dist/components/hx-container/index.d.ts +0 -1
  98. package/dist/components/hx-container/index.d.ts.map +1 -1
  99. package/dist/components/hx-container/index.js +1 -1
  100. package/dist/components/hx-copy-button/hx-copy-button.d.ts +2 -2
  101. package/dist/components/hx-copy-button/hx-copy-button.d.ts.map +1 -1
  102. package/dist/components/hx-copy-button/hx-copy-button.styles.d.ts.map +1 -1
  103. package/dist/components/hx-copy-button/index.js +1 -1
  104. package/dist/components/hx-counter/hx-counter.d.ts +3 -2
  105. package/dist/components/hx-counter/hx-counter.d.ts.map +1 -1
  106. package/dist/components/hx-counter/hx-counter.styles.d.ts.map +1 -1
  107. package/dist/components/hx-counter/index.js +1 -1
  108. package/dist/components/hx-data-table/hx-data-table.d.ts +46 -2
  109. package/dist/components/hx-data-table/hx-data-table.d.ts.map +1 -1
  110. package/dist/components/hx-data-table/hx-data-table.styles.d.ts.map +1 -1
  111. package/dist/components/hx-data-table/index.d.ts +1 -0
  112. package/dist/components/hx-data-table/index.d.ts.map +1 -1
  113. package/dist/components/hx-data-table/index.js +1 -1
  114. package/dist/components/hx-date-picker/hx-date-picker.d.ts +35 -35
  115. package/dist/components/hx-date-picker/hx-date-picker.d.ts.map +1 -1
  116. package/dist/components/hx-date-picker/hx-date-picker.styles.d.ts.map +1 -1
  117. package/dist/components/hx-date-picker/index.d.ts +1 -0
  118. package/dist/components/hx-date-picker/index.d.ts.map +1 -1
  119. package/dist/components/hx-date-picker/index.js +1 -1
  120. package/dist/components/hx-dialog/hx-dialog.d.ts +44 -5
  121. package/dist/components/hx-dialog/hx-dialog.d.ts.map +1 -1
  122. package/dist/components/hx-dialog/hx-dialog.styles.d.ts.map +1 -1
  123. package/dist/components/hx-dialog/index.js +1 -1
  124. package/dist/components/hx-divider/hx-divider.d.ts +3 -4
  125. package/dist/components/hx-divider/hx-divider.d.ts.map +1 -1
  126. package/dist/components/hx-divider/hx-divider.styles.d.ts.map +1 -1
  127. package/dist/components/hx-divider/index.d.ts +0 -1
  128. package/dist/components/hx-divider/index.d.ts.map +1 -1
  129. package/dist/components/hx-divider/index.js +1 -1
  130. package/dist/components/hx-drawer/hx-drawer.d.ts +39 -2
  131. package/dist/components/hx-drawer/hx-drawer.d.ts.map +1 -1
  132. package/dist/components/hx-drawer/hx-drawer.styles.d.ts.map +1 -1
  133. package/dist/components/hx-drawer/index.js +1 -1
  134. package/dist/components/hx-dropdown/hx-dropdown.d.ts +11 -7
  135. package/dist/components/hx-dropdown/hx-dropdown.d.ts.map +1 -1
  136. package/dist/components/hx-dropdown/hx-dropdown.styles.d.ts.map +1 -1
  137. package/dist/components/hx-dropdown/index.js +1 -1
  138. package/dist/components/hx-field/hx-field.d.ts +4 -3
  139. package/dist/components/hx-field/hx-field.d.ts.map +1 -1
  140. package/dist/components/hx-field/hx-field.styles.d.ts.map +1 -1
  141. package/dist/components/hx-field/index.js +1 -1
  142. package/dist/components/hx-field-label/hx-field-label.d.ts +2 -2
  143. package/dist/components/hx-field-label/hx-field-label.d.ts.map +1 -1
  144. package/dist/components/hx-field-label/hx-field-label.styles.d.ts.map +1 -1
  145. package/dist/components/hx-field-label/index.js +1 -1
  146. package/dist/components/hx-file-upload/hx-file-upload.d.ts +39 -21
  147. package/dist/components/hx-file-upload/hx-file-upload.d.ts.map +1 -1
  148. package/dist/components/hx-file-upload/index.d.ts +1 -0
  149. package/dist/components/hx-file-upload/index.d.ts.map +1 -1
  150. package/dist/components/hx-file-upload/index.js +1 -1
  151. package/dist/components/hx-form/hx-form.d.ts +2 -2
  152. package/dist/components/hx-form/hx-form.d.ts.map +1 -1
  153. package/dist/components/hx-form/hx-form.styles.d.ts +8 -0
  154. package/dist/components/hx-form/hx-form.styles.d.ts.map +1 -1
  155. package/dist/components/hx-form/index.js +1 -1
  156. package/dist/components/hx-format-date/hx-format-date.d.ts +2 -2
  157. package/dist/components/hx-format-date/hx-format-date.d.ts.map +1 -1
  158. package/dist/components/hx-format-date/hx-format-date.styles.d.ts.map +1 -1
  159. package/dist/components/hx-format-date/index.js +1 -1
  160. package/dist/components/hx-grid/hx-grid.d.ts +4 -3
  161. package/dist/components/hx-grid/hx-grid.d.ts.map +1 -1
  162. package/dist/components/hx-grid/hx-grid.styles.d.ts.map +1 -1
  163. package/dist/components/hx-grid/index.js +1 -1
  164. package/dist/components/hx-help-text/hx-help-text.d.ts +2 -4
  165. package/dist/components/hx-help-text/hx-help-text.d.ts.map +1 -1
  166. package/dist/components/hx-help-text/hx-help-text.styles.d.ts.map +1 -1
  167. package/dist/components/hx-help-text/index.js +1 -1
  168. package/dist/components/hx-icon/hx-icon.d.ts +17 -2
  169. package/dist/components/hx-icon/hx-icon.d.ts.map +1 -1
  170. package/dist/components/hx-icon/hx-icon.styles.d.ts.map +1 -1
  171. package/dist/components/hx-icon/index.js +1 -1
  172. package/dist/components/hx-icon-button/hx-icon-button.d.ts +10 -14
  173. package/dist/components/hx-icon-button/hx-icon-button.d.ts.map +1 -1
  174. package/dist/components/hx-icon-button/hx-icon-button.styles.d.ts.map +1 -1
  175. package/dist/components/hx-icon-button/index.js +1 -1
  176. package/dist/components/hx-image/hx-image.d.ts +2 -2
  177. package/dist/components/hx-image/hx-image.d.ts.map +1 -1
  178. package/dist/components/hx-image/hx-image.styles.d.ts.map +1 -1
  179. package/dist/components/hx-image/index.js +1 -1
  180. package/dist/components/hx-link/hx-link.d.ts +2 -2
  181. package/dist/components/hx-link/hx-link.d.ts.map +1 -1
  182. package/dist/components/hx-link/hx-link.styles.d.ts.map +1 -1
  183. package/dist/components/hx-link/index.js +1 -1
  184. package/dist/components/hx-list/hx-list-item.d.ts +3 -2
  185. package/dist/components/hx-list/hx-list-item.d.ts.map +1 -1
  186. package/dist/components/hx-list/hx-list.d.ts +3 -2
  187. package/dist/components/hx-list/hx-list.d.ts.map +1 -1
  188. package/dist/components/hx-list/hx-list.styles.d.ts.map +1 -1
  189. package/dist/components/hx-list/index.js +1 -1
  190. package/dist/components/hx-menu/hx-menu-divider.d.ts +2 -2
  191. package/dist/components/hx-menu/hx-menu-divider.d.ts.map +1 -1
  192. package/dist/components/hx-menu/hx-menu-divider.styles.d.ts.map +1 -1
  193. package/dist/components/hx-menu/hx-menu-item.d.ts +2 -2
  194. package/dist/components/hx-menu/hx-menu-item.d.ts.map +1 -1
  195. package/dist/components/hx-menu/hx-menu-item.styles.d.ts.map +1 -1
  196. package/dist/components/hx-menu/hx-menu.d.ts +2 -2
  197. package/dist/components/hx-menu/hx-menu.d.ts.map +1 -1
  198. package/dist/components/hx-menu/hx-menu.styles.d.ts.map +1 -1
  199. package/dist/components/hx-menu/index.js +1 -1
  200. package/dist/components/hx-meter/hx-meter.d.ts +3 -4
  201. package/dist/components/hx-meter/hx-meter.d.ts.map +1 -1
  202. package/dist/components/hx-meter/hx-meter.styles.d.ts.map +1 -1
  203. package/dist/components/hx-meter/index.js +1 -1
  204. package/dist/components/hx-nav/hx-nav.d.ts +2 -4
  205. package/dist/components/hx-nav/hx-nav.d.ts.map +1 -1
  206. package/dist/components/hx-nav/hx-nav.styles.d.ts.map +1 -1
  207. package/dist/components/hx-nav/index.d.ts +1 -1
  208. package/dist/components/hx-nav/index.d.ts.map +1 -1
  209. package/dist/components/hx-nav/index.js +1 -1
  210. package/dist/components/hx-number-input/hx-number-input.d.ts +14 -20
  211. package/dist/components/hx-number-input/hx-number-input.d.ts.map +1 -1
  212. package/dist/components/hx-number-input/hx-number-input.styles.d.ts.map +1 -1
  213. package/dist/components/hx-number-input/index.d.ts +1 -0
  214. package/dist/components/hx-number-input/index.d.ts.map +1 -1
  215. package/dist/components/hx-number-input/index.js +1 -1
  216. package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts +2 -2
  217. package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts.map +1 -1
  218. package/dist/components/hx-overflow-menu/hx-overflow-menu.styles.d.ts.map +1 -1
  219. package/dist/components/hx-overflow-menu/index.js +1 -1
  220. package/dist/components/hx-pagination/hx-pagination.d.ts +10 -2
  221. package/dist/components/hx-pagination/hx-pagination.d.ts.map +1 -1
  222. package/dist/components/hx-pagination/index.d.ts +1 -0
  223. package/dist/components/hx-pagination/index.d.ts.map +1 -1
  224. package/dist/components/hx-pagination/index.js +1 -1
  225. package/dist/components/hx-patient-banner/hx-patient-banner.d.ts +47 -5
  226. package/dist/components/hx-patient-banner/hx-patient-banner.d.ts.map +1 -1
  227. package/dist/components/hx-patient-banner/hx-patient-banner.styles.d.ts.map +1 -1
  228. package/dist/components/hx-patient-banner/index.js +1 -1
  229. package/dist/components/hx-phi-field/hx-phi-field.d.ts +85 -5
  230. package/dist/components/hx-phi-field/hx-phi-field.d.ts.map +1 -1
  231. package/dist/components/hx-phi-field/hx-phi-field.styles.d.ts.map +1 -1
  232. package/dist/components/hx-phi-field/index.js +1 -1
  233. package/dist/components/hx-popover/hx-popover.d.ts +4 -2
  234. package/dist/components/hx-popover/hx-popover.d.ts.map +1 -1
  235. package/dist/components/hx-popover/hx-popover.styles.d.ts.map +1 -1
  236. package/dist/components/hx-popover/index.js +1 -1
  237. package/dist/components/hx-popup/hx-popup.d.ts +7 -2
  238. package/dist/components/hx-popup/hx-popup.d.ts.map +1 -1
  239. package/dist/components/hx-popup/hx-popup.styles.d.ts.map +1 -1
  240. package/dist/components/hx-popup/index.js +1 -1
  241. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts +3 -4
  242. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts.map +1 -1
  243. package/dist/components/hx-progress-bar/index.js +1 -1
  244. package/dist/components/hx-progress-ring/hx-progress-ring.d.ts +3 -2
  245. package/dist/components/hx-progress-ring/hx-progress-ring.d.ts.map +1 -1
  246. package/dist/components/hx-progress-ring/hx-progress-ring.styles.d.ts.map +1 -1
  247. package/dist/components/hx-progress-ring/index.js +1 -1
  248. package/dist/components/hx-prose/hx-prose.d.ts +3 -2
  249. package/dist/components/hx-prose/hx-prose.d.ts.map +1 -1
  250. package/dist/components/hx-prose/hx-prose.styles.d.ts +8 -0
  251. package/dist/components/hx-prose/hx-prose.styles.d.ts.map +1 -1
  252. package/dist/components/hx-prose/index.js +1 -1
  253. package/dist/components/hx-radio-group/hx-radio-group.d.ts +14 -39
  254. package/dist/components/hx-radio-group/hx-radio-group.d.ts.map +1 -1
  255. package/dist/components/hx-radio-group/hx-radio-group.styles.d.ts.map +1 -1
  256. package/dist/components/hx-radio-group/hx-radio.d.ts +19 -4
  257. package/dist/components/hx-radio-group/hx-radio.d.ts.map +1 -1
  258. package/dist/components/hx-radio-group/hx-radio.styles.d.ts.map +1 -1
  259. package/dist/components/hx-radio-group/index.d.ts +1 -0
  260. package/dist/components/hx-radio-group/index.d.ts.map +1 -1
  261. package/dist/components/hx-radio-group/index.js +1 -1
  262. package/dist/components/hx-rating/hx-rating.d.ts +9 -20
  263. package/dist/components/hx-rating/hx-rating.d.ts.map +1 -1
  264. package/dist/components/hx-rating/hx-rating.styles.d.ts.map +1 -1
  265. package/dist/components/hx-rating/index.d.ts +1 -0
  266. package/dist/components/hx-rating/index.d.ts.map +1 -1
  267. package/dist/components/hx-rating/index.js +1 -1
  268. package/dist/components/hx-select/hx-select.d.ts +26 -17
  269. package/dist/components/hx-select/hx-select.d.ts.map +1 -1
  270. package/dist/components/hx-select/hx-select.styles.d.ts.map +1 -1
  271. package/dist/components/hx-select/index.d.ts +1 -0
  272. package/dist/components/hx-select/index.d.ts.map +1 -1
  273. package/dist/components/hx-select/index.js +1 -1
  274. package/dist/components/hx-side-nav/hx-nav-item.d.ts +2 -5
  275. package/dist/components/hx-side-nav/hx-nav-item.d.ts.map +1 -1
  276. package/dist/components/hx-side-nav/hx-nav-item.styles.d.ts.map +1 -1
  277. package/dist/components/hx-side-nav/hx-side-nav.d.ts +3 -2
  278. package/dist/components/hx-side-nav/hx-side-nav.d.ts.map +1 -1
  279. package/dist/components/hx-side-nav/hx-side-nav.styles.d.ts.map +1 -1
  280. package/dist/components/hx-side-nav/index.js +1 -1
  281. package/dist/components/hx-skeleton/hx-skeleton.d.ts +3 -2
  282. package/dist/components/hx-skeleton/hx-skeleton.d.ts.map +1 -1
  283. package/dist/components/hx-skeleton/hx-skeleton.styles.d.ts.map +1 -1
  284. package/dist/components/hx-skeleton/index.js +1 -1
  285. package/dist/components/hx-slider/hx-slider.d.ts +18 -22
  286. package/dist/components/hx-slider/hx-slider.d.ts.map +1 -1
  287. package/dist/components/hx-slider/hx-slider.styles.d.ts.map +1 -1
  288. package/dist/components/hx-slider/index.d.ts +1 -0
  289. package/dist/components/hx-slider/index.d.ts.map +1 -1
  290. package/dist/components/hx-slider/index.js +1 -1
  291. package/dist/components/hx-spinner/hx-spinner.d.ts +2 -2
  292. package/dist/components/hx-spinner/hx-spinner.d.ts.map +1 -1
  293. package/dist/components/hx-spinner/hx-spinner.styles.d.ts.map +1 -1
  294. package/dist/components/hx-spinner/index.js +1 -1
  295. package/dist/components/hx-split-button/hx-split-button.d.ts +10 -4
  296. package/dist/components/hx-split-button/hx-split-button.d.ts.map +1 -1
  297. package/dist/components/hx-split-button/hx-split-button.styles.d.ts.map +1 -1
  298. package/dist/components/hx-split-button/index.js +1 -1
  299. package/dist/components/hx-split-panel/hx-split-panel.d.ts +12 -2
  300. package/dist/components/hx-split-panel/hx-split-panel.d.ts.map +1 -1
  301. package/dist/components/hx-split-panel/hx-split-panel.styles.d.ts.map +1 -1
  302. package/dist/components/hx-split-panel/index.js +1 -1
  303. package/dist/components/hx-stack/hx-stack.d.ts +2 -2
  304. package/dist/components/hx-stack/hx-stack.d.ts.map +1 -1
  305. package/dist/components/hx-stack/hx-stack.styles.d.ts.map +1 -1
  306. package/dist/components/hx-stack/index.js +1 -1
  307. package/dist/components/hx-stat/hx-stat.d.ts +4 -3
  308. package/dist/components/hx-stat/hx-stat.d.ts.map +1 -1
  309. package/dist/components/hx-stat/index.js +1 -1
  310. package/dist/components/hx-status-indicator/hx-status-indicator.d.ts +3 -2
  311. package/dist/components/hx-status-indicator/hx-status-indicator.d.ts.map +1 -1
  312. package/dist/components/hx-status-indicator/hx-status-indicator.styles.d.ts.map +1 -1
  313. package/dist/components/hx-status-indicator/index.js +1 -1
  314. package/dist/components/hx-steps/hx-step.d.ts +3 -2
  315. package/dist/components/hx-steps/hx-step.d.ts.map +1 -1
  316. package/dist/components/hx-steps/hx-step.styles.d.ts.map +1 -1
  317. package/dist/components/hx-steps/hx-steps.d.ts +11 -4
  318. package/dist/components/hx-steps/hx-steps.d.ts.map +1 -1
  319. package/dist/components/hx-steps/hx-steps.styles.d.ts.map +1 -1
  320. package/dist/components/hx-steps/index.js +1 -1
  321. package/dist/components/hx-structured-list/hx-structured-list.d.ts +3 -3
  322. package/dist/components/hx-structured-list/hx-structured-list.d.ts.map +1 -1
  323. package/dist/components/hx-structured-list/hx-structured-list.styles.d.ts.map +1 -1
  324. package/dist/components/hx-structured-list/index.js +1 -1
  325. package/dist/components/hx-style-scope/hx-style-scope.d.ts +3 -2
  326. package/dist/components/hx-style-scope/hx-style-scope.d.ts.map +1 -1
  327. package/dist/components/hx-style-scope/hx-style-scope.styles.d.ts.map +1 -1
  328. package/dist/components/hx-style-scope/index.js +1 -1
  329. package/dist/components/hx-switch/hx-switch.d.ts +25 -29
  330. package/dist/components/hx-switch/hx-switch.d.ts.map +1 -1
  331. package/dist/components/hx-switch/hx-switch.styles.d.ts.map +1 -1
  332. package/dist/components/hx-switch/index.d.ts +2 -1
  333. package/dist/components/hx-switch/index.d.ts.map +1 -1
  334. package/dist/components/hx-switch/index.js +1 -1
  335. package/dist/components/hx-table/hx-table.d.ts +3 -2
  336. package/dist/components/hx-table/hx-table.d.ts.map +1 -1
  337. package/dist/components/hx-table/hx-table.styles.d.ts.map +1 -1
  338. package/dist/components/hx-table/hx-tbody.d.ts +2 -2
  339. package/dist/components/hx-table/hx-tbody.d.ts.map +1 -1
  340. package/dist/components/hx-table/hx-td.d.ts +2 -2
  341. package/dist/components/hx-table/hx-td.d.ts.map +1 -1
  342. package/dist/components/hx-table/hx-tfoot.d.ts +2 -2
  343. package/dist/components/hx-table/hx-tfoot.d.ts.map +1 -1
  344. package/dist/components/hx-table/hx-th.d.ts +2 -2
  345. package/dist/components/hx-table/hx-th.d.ts.map +1 -1
  346. package/dist/components/hx-table/hx-thead.d.ts +2 -2
  347. package/dist/components/hx-table/hx-thead.d.ts.map +1 -1
  348. package/dist/components/hx-table/hx-tr.d.ts +2 -2
  349. package/dist/components/hx-table/hx-tr.d.ts.map +1 -1
  350. package/dist/components/hx-table/index.js +1 -1
  351. package/dist/components/hx-tabs/hx-tab-panel.d.ts +2 -2
  352. package/dist/components/hx-tabs/hx-tab-panel.d.ts.map +1 -1
  353. package/dist/components/hx-tabs/hx-tab-panel.styles.d.ts.map +1 -1
  354. package/dist/components/hx-tabs/hx-tab.d.ts +2 -2
  355. package/dist/components/hx-tabs/hx-tab.d.ts.map +1 -1
  356. package/dist/components/hx-tabs/hx-tab.styles.d.ts.map +1 -1
  357. package/dist/components/hx-tabs/hx-tabs.d.ts +14 -2
  358. package/dist/components/hx-tabs/hx-tabs.d.ts.map +1 -1
  359. package/dist/components/hx-tabs/hx-tabs.styles.d.ts.map +1 -1
  360. package/dist/components/hx-tabs/index.d.ts +1 -0
  361. package/dist/components/hx-tabs/index.d.ts.map +1 -1
  362. package/dist/components/hx-tabs/index.js +1 -1
  363. package/dist/components/hx-tag/hx-tag.d.ts +2 -4
  364. package/dist/components/hx-tag/hx-tag.d.ts.map +1 -1
  365. package/dist/components/hx-tag/hx-tag.styles.d.ts.map +1 -1
  366. package/dist/components/hx-tag/index.d.ts +0 -2
  367. package/dist/components/hx-tag/index.d.ts.map +1 -1
  368. package/dist/components/hx-tag/index.js +1 -1
  369. package/dist/components/hx-text/hx-text.d.ts +2 -2
  370. package/dist/components/hx-text/hx-text.d.ts.map +1 -1
  371. package/dist/components/hx-text/hx-text.styles.d.ts.map +1 -1
  372. package/dist/components/hx-text/index.js +1 -1
  373. package/dist/components/hx-text-input/hx-text-input.d.ts +34 -7
  374. package/dist/components/hx-text-input/hx-text-input.d.ts.map +1 -1
  375. package/dist/components/hx-text-input/hx-text-input.styles.d.ts.map +1 -1
  376. package/dist/components/hx-text-input/index.d.ts +1 -0
  377. package/dist/components/hx-text-input/index.d.ts.map +1 -1
  378. package/dist/components/hx-text-input/index.js +1 -1
  379. package/dist/components/hx-textarea/hx-textarea.d.ts +41 -25
  380. package/dist/components/hx-textarea/hx-textarea.d.ts.map +1 -1
  381. package/dist/components/hx-textarea/hx-textarea.styles.d.ts.map +1 -1
  382. package/dist/components/hx-textarea/index.d.ts +1 -0
  383. package/dist/components/hx-textarea/index.d.ts.map +1 -1
  384. package/dist/components/hx-textarea/index.js +1 -1
  385. package/dist/components/hx-theme/hx-theme.d.ts +3 -11
  386. package/dist/components/hx-theme/hx-theme.d.ts.map +1 -1
  387. package/dist/components/hx-theme/hx-theme.styles.d.ts.map +1 -1
  388. package/dist/components/hx-theme/index.d.ts +0 -2
  389. package/dist/components/hx-theme/index.d.ts.map +1 -1
  390. package/dist/components/hx-theme/index.js +1 -1
  391. package/dist/components/hx-time-picker/hx-time-picker.d.ts +13 -31
  392. package/dist/components/hx-time-picker/hx-time-picker.d.ts.map +1 -1
  393. package/dist/components/hx-time-picker/hx-time-picker.styles.d.ts.map +1 -1
  394. package/dist/components/hx-time-picker/index.d.ts +1 -0
  395. package/dist/components/hx-time-picker/index.d.ts.map +1 -1
  396. package/dist/components/hx-time-picker/index.js +1 -1
  397. package/dist/components/hx-toast/hx-toast-stack.d.ts +2 -2
  398. package/dist/components/hx-toast/hx-toast-stack.d.ts.map +1 -1
  399. package/dist/components/hx-toast/hx-toast.d.ts +3 -2
  400. package/dist/components/hx-toast/hx-toast.d.ts.map +1 -1
  401. package/dist/components/hx-toast/hx-toast.styles.d.ts.map +1 -1
  402. package/dist/components/hx-toast/index.js +1 -1
  403. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts +10 -13
  404. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts.map +1 -1
  405. package/dist/components/hx-toggle-button/hx-toggle-button.styles.d.ts.map +1 -1
  406. package/dist/components/hx-toggle-button/index.d.ts +1 -0
  407. package/dist/components/hx-toggle-button/index.d.ts.map +1 -1
  408. package/dist/components/hx-toggle-button/index.js +1 -1
  409. package/dist/components/hx-tooltip/hx-tooltip.d.ts +2 -2
  410. package/dist/components/hx-tooltip/hx-tooltip.d.ts.map +1 -1
  411. package/dist/components/hx-tooltip/hx-tooltip.styles.d.ts.map +1 -1
  412. package/dist/components/hx-tooltip/index.js +1 -1
  413. package/dist/components/hx-top-nav/hx-top-nav.d.ts +2 -2
  414. package/dist/components/hx-top-nav/hx-top-nav.d.ts.map +1 -1
  415. package/dist/components/hx-top-nav/hx-top-nav.styles.d.ts.map +1 -1
  416. package/dist/components/hx-top-nav/index.js +1 -1
  417. package/dist/components/hx-tree-view/hx-tree-item.d.ts +2 -4
  418. package/dist/components/hx-tree-view/hx-tree-item.d.ts.map +1 -1
  419. package/dist/components/hx-tree-view/hx-tree-item.styles.d.ts.map +1 -1
  420. package/dist/components/hx-tree-view/hx-tree-view.d.ts +2 -4
  421. package/dist/components/hx-tree-view/hx-tree-view.d.ts.map +1 -1
  422. package/dist/components/hx-tree-view/hx-tree-view.styles.d.ts.map +1 -1
  423. package/dist/components/hx-tree-view/index.d.ts +0 -4
  424. package/dist/components/hx-tree-view/index.d.ts.map +1 -1
  425. package/dist/components/hx-tree-view/index.js +1 -1
  426. package/dist/components/hx-visually-hidden/hx-visually-hidden.d.ts +2 -2
  427. package/dist/components/hx-visually-hidden/hx-visually-hidden.d.ts.map +1 -1
  428. package/dist/components/hx-visually-hidden/hx-visually-hidden.styles.d.ts.map +1 -1
  429. package/dist/components/hx-visually-hidden/index.js +1 -1
  430. package/dist/css/helix-all.css +3600 -790
  431. package/dist/css/helix-core.css +244 -50
  432. package/dist/css/helix-data.css +86 -7
  433. package/dist/css/helix-feedback.css +159 -61
  434. package/dist/css/helix-forms.css +2054 -105
  435. package/dist/css/helix-layout.css +53 -1
  436. package/dist/css/helix-media.css +40 -16
  437. package/dist/css/helix-navigation.css +209 -48
  438. package/dist/css/helix-overlay.css +99 -12
  439. package/dist/css/helix-tokens.css +30 -11
  440. package/dist/css/helix-utility.css +118 -9
  441. package/dist/css/hx-accordion.css +9 -1
  442. package/dist/css/hx-action-bar.css +17 -3
  443. package/dist/css/hx-alert.css +39 -18
  444. package/dist/css/hx-avatar.css +1 -1
  445. package/dist/css/hx-badge.css +31 -15
  446. package/dist/css/hx-banner.css +35 -18
  447. package/dist/css/hx-breadcrumb.css +27 -0
  448. package/dist/css/hx-button-group.css +13 -0
  449. package/dist/css/hx-button.css +6 -3
  450. package/dist/css/hx-card.css +18 -6
  451. package/dist/css/hx-carousel.css +40 -16
  452. package/dist/css/hx-checkbox-group.css +36 -4
  453. package/dist/css/hx-checkbox.css +74 -8
  454. package/dist/css/hx-clinical-status.css +46 -23
  455. package/dist/css/hx-code-snippet.css +25 -3
  456. package/dist/css/hx-color-picker.css +276 -1
  457. package/dist/css/hx-combobox.css +391 -1
  458. package/dist/css/hx-container.css +10 -0
  459. package/dist/css/hx-copy-button.css +31 -3
  460. package/dist/css/hx-counter.css +11 -1
  461. package/dist/css/hx-data-table.css +24 -1
  462. package/dist/css/hx-date-picker.css +437 -1
  463. package/dist/css/hx-dialog.css +23 -2
  464. package/dist/css/hx-divider.css +8 -0
  465. package/dist/css/hx-drawer.css +22 -1
  466. package/dist/css/hx-dropdown.css +10 -1
  467. package/dist/css/hx-field-label.css +18 -2
  468. package/dist/css/hx-field.css +39 -3
  469. package/dist/css/hx-file-upload.css +12 -12
  470. package/dist/css/hx-format-date.css +11 -0
  471. package/dist/css/hx-grid.css +10 -0
  472. package/dist/css/hx-help-text.css +25 -5
  473. package/dist/css/hx-icon-button.css +27 -0
  474. package/dist/css/hx-icon.css +8 -0
  475. package/dist/css/hx-image.css +11 -3
  476. package/dist/css/hx-link.css +23 -5
  477. package/dist/css/hx-list.css +10 -0
  478. package/dist/css/hx-menu.css +10 -2
  479. package/dist/css/hx-meter.css +22 -9
  480. package/dist/css/hx-nav.css +27 -12
  481. package/dist/css/hx-number-input.css +78 -0
  482. package/dist/css/hx-overflow-menu.css +41 -10
  483. package/dist/css/hx-pagination.css +13 -13
  484. package/dist/css/hx-patient-banner.css +30 -10
  485. package/dist/css/hx-phi-field.css +5 -2
  486. package/dist/css/hx-popover.css +16 -4
  487. package/dist/css/hx-popup.css +12 -0
  488. package/dist/css/hx-progress-bar.css +1 -1
  489. package/dist/css/hx-progress-ring.css +23 -1
  490. package/dist/css/hx-radio-group.css +35 -3
  491. package/dist/css/hx-rating.css +45 -4
  492. package/dist/css/hx-select.css +89 -7
  493. package/dist/css/hx-side-nav.css +26 -0
  494. package/dist/css/hx-skeleton.css +12 -0
  495. package/dist/css/hx-slider.css +16 -11
  496. package/dist/css/hx-spinner.css +12 -0
  497. package/dist/css/hx-split-button.css +37 -2
  498. package/dist/css/hx-split-panel.css +14 -0
  499. package/dist/css/hx-stack.css +10 -0
  500. package/dist/css/hx-stat.css +5 -5
  501. package/dist/css/hx-status-indicator.css +15 -2
  502. package/dist/css/hx-steps.css +12 -0
  503. package/dist/css/hx-structured-list.css +18 -2
  504. package/dist/css/hx-style-scope.css +11 -0
  505. package/dist/css/hx-switch.css +66 -4
  506. package/dist/css/hx-table.css +9 -1
  507. package/dist/css/hx-tabs.css +15 -3
  508. package/dist/css/hx-tag.css +24 -12
  509. package/dist/css/hx-text-input.css +71 -9
  510. package/dist/css/hx-text.css +38 -5
  511. package/dist/css/hx-textarea.css +71 -15
  512. package/dist/css/hx-theme.css +11 -0
  513. package/dist/css/hx-time-picker.css +224 -1
  514. package/dist/css/hx-toast.css +19 -7
  515. package/dist/css/hx-toggle-button.css +41 -4
  516. package/dist/css/hx-tooltip.css +16 -4
  517. package/dist/css/hx-top-nav.css +29 -8
  518. package/dist/css/hx-tree-view.css +9 -0
  519. package/dist/css/hx-visually-hidden.css +12 -0
  520. package/dist/css/index.css +1 -1
  521. package/dist/css/manifest.json +42 -9
  522. package/dist/form-test-utils.d.ts +45 -0
  523. package/dist/form-test-utils.d.ts.map +1 -0
  524. package/dist/index.d.ts +28 -14
  525. package/dist/index.d.ts.map +1 -1
  526. package/dist/index.js +189 -177
  527. package/dist/index.js.map +1 -1
  528. package/dist/mixins/FormMixin.d.ts +24 -5
  529. package/dist/mixins/FormMixin.d.ts.map +1 -1
  530. package/dist/mixins/aria-delegation.d.ts +1 -1
  531. package/dist/mixins/aria-delegation.d.ts.map +1 -1
  532. package/dist/mixins/index.d.ts +3 -1
  533. package/dist/mixins/index.d.ts.map +1 -1
  534. package/dist/shared/{FormMixin-Bjvw20G5.js → FormMixin-B8PXk5RQ.js} +31 -14
  535. package/dist/shared/FormMixin-B8PXk5RQ.js.map +1 -0
  536. package/dist/shared/{aria-delegation-CBP9eQ0M.js → aria-delegation-Doq6RRUy.js} +6 -6
  537. package/dist/shared/aria-delegation-Doq6RRUy.js.map +1 -0
  538. package/dist/shared/{helix-element-CZvaIEQP.js → helix-element-BNEYeiys.js} +30 -27
  539. package/dist/shared/helix-element-BNEYeiys.js.map +1 -0
  540. package/dist/shared/{hx-accordion-CpfO0YQo.js → hx-accordion-Wt52OOZD.js} +127 -80
  541. package/dist/shared/hx-accordion-Wt52OOZD.js.map +1 -0
  542. package/dist/shared/{hx-action-bar-CNLYufVd.js → hx-action-bar-BKMADbHj.js} +89 -85
  543. package/dist/shared/hx-action-bar-BKMADbHj.js.map +1 -0
  544. package/dist/shared/{hx-alert-CHOjTBds.js → hx-alert-D7n94HwI.js} +47 -26
  545. package/dist/shared/hx-alert-D7n94HwI.js.map +1 -0
  546. package/dist/shared/{hx-avatar-an-WsuLl.js → hx-avatar-iLYzu8MJ.js} +10 -10
  547. package/dist/shared/hx-avatar-iLYzu8MJ.js.map +1 -0
  548. package/dist/shared/{hx-badge-RPzd-t5l.js → hx-badge-CVCmMPyW.js} +43 -27
  549. package/dist/shared/hx-badge-CVCmMPyW.js.map +1 -0
  550. package/dist/shared/{hx-banner-B-WEDiq7.js → hx-banner-C_He7Tr4.js} +60 -43
  551. package/dist/shared/hx-banner-C_He7Tr4.js.map +1 -0
  552. package/dist/shared/{hx-breadcrumb-item-jLAKK038.js → hx-breadcrumb-item-CldCwD1d.js} +123 -83
  553. package/dist/shared/hx-breadcrumb-item-CldCwD1d.js.map +1 -0
  554. package/dist/shared/{hx-button-DoN8jjQT.js → hx-button-Ddl-T6T-.js} +117 -92
  555. package/dist/shared/hx-button-Ddl-T6T-.js.map +1 -0
  556. package/dist/shared/{hx-button-group-BXlMQTt_.js → hx-button-group-BJOGWoMa.js} +33 -21
  557. package/dist/shared/hx-button-group-BJOGWoMa.js.map +1 -0
  558. package/dist/shared/{hx-card-BgXZXDuc.js → hx-card-ycveujjL.js} +64 -38
  559. package/dist/shared/hx-card-ycveujjL.js.map +1 -0
  560. package/dist/shared/{hx-carousel-item-Dwt9Pphz.js → hx-carousel-item-D_dCv61-.js} +76 -41
  561. package/dist/shared/hx-carousel-item-D_dCv61-.js.map +1 -0
  562. package/dist/shared/{hx-checkbox-C82GjRXe.js → hx-checkbox-DkkoWoye.js} +163 -80
  563. package/dist/shared/hx-checkbox-DkkoWoye.js.map +1 -0
  564. package/dist/shared/{hx-checkbox-group-DThZeN5d.js → hx-checkbox-group-C3poJ-Zw.js} +105 -79
  565. package/dist/shared/hx-checkbox-group-C3poJ-Zw.js.map +1 -0
  566. package/dist/shared/{hx-clinical-status-BjtT5c0M.js → hx-clinical-status-BS5lcddT.js} +60 -38
  567. package/dist/shared/hx-clinical-status-BS5lcddT.js.map +1 -0
  568. package/dist/shared/{hx-code-snippet-DcVENSuC.js → hx-code-snippet-B7wUKzyb.js} +32 -11
  569. package/dist/shared/hx-code-snippet-B7wUKzyb.js.map +1 -0
  570. package/dist/shared/{hx-color-picker-C6EIuS9t.js → hx-color-picker-DBaKTVLr.js} +380 -119
  571. package/dist/shared/hx-color-picker-DBaKTVLr.js.map +1 -0
  572. package/dist/shared/hx-combobox-BmgYT7Ar.js +929 -0
  573. package/dist/shared/hx-combobox-BmgYT7Ar.js.map +1 -0
  574. package/dist/shared/{hx-container-BwWbMPTH.js → hx-container-DVI7sxfX.js} +25 -15
  575. package/dist/shared/hx-container-DVI7sxfX.js.map +1 -0
  576. package/dist/shared/{hx-copy-button-BoM0WsMd.js → hx-copy-button-8deNUdwP.js} +68 -40
  577. package/dist/shared/hx-copy-button-8deNUdwP.js.map +1 -0
  578. package/dist/shared/{hx-counter-B5NgKlw4.js → hx-counter-CKfl_g8K.js} +32 -22
  579. package/dist/shared/hx-counter-CKfl_g8K.js.map +1 -0
  580. package/dist/shared/{hx-data-table-D5Ne-goy.js → hx-data-table-B6h0RPn0.js} +203 -132
  581. package/dist/shared/hx-data-table-B6h0RPn0.js.map +1 -0
  582. package/dist/shared/hx-date-picker-Dq2Nb68_.js +1077 -0
  583. package/dist/shared/hx-date-picker-Dq2Nb68_.js.map +1 -0
  584. package/dist/shared/{hx-dialog-D4ubstxx.js → hx-dialog-CvIlY0Tc.js} +85 -52
  585. package/dist/shared/hx-dialog-CvIlY0Tc.js.map +1 -0
  586. package/dist/shared/{hx-divider-BBtOLHRP.js → hx-divider-DwpOrzMW.js} +23 -15
  587. package/dist/shared/hx-divider-DwpOrzMW.js.map +1 -0
  588. package/dist/shared/{hx-drawer--WDLuWtS.js → hx-drawer-Cx2ZJhBe.js} +101 -66
  589. package/dist/shared/hx-drawer-Cx2ZJhBe.js.map +1 -0
  590. package/dist/shared/{hx-dropdown-n5-XSmiV.js → hx-dropdown-BjDrPUq5.js} +55 -46
  591. package/dist/shared/hx-dropdown-BjDrPUq5.js.map +1 -0
  592. package/dist/shared/{hx-field-CwT9tki1.js → hx-field-Dp3qQMut.js} +61 -25
  593. package/dist/shared/hx-field-Dp3qQMut.js.map +1 -0
  594. package/dist/shared/{hx-field-label-CcOK9VU3.js → hx-field-label-BC8QViXv.js} +41 -25
  595. package/dist/shared/hx-field-label-BC8QViXv.js.map +1 -0
  596. package/dist/shared/{hx-file-upload-Di_vpQaG.js → hx-file-upload-B6Yl1u0i.js} +110 -102
  597. package/dist/shared/hx-file-upload-B6Yl1u0i.js.map +1 -0
  598. package/dist/shared/{hx-form-BM6PHsw3.js → hx-form-ButQFt9A.js} +12 -11
  599. package/dist/shared/hx-form-ButQFt9A.js.map +1 -0
  600. package/dist/shared/{hx-format-date-B7L9odbA.js → hx-format-date-CKnlQOmV.js} +20 -9
  601. package/dist/shared/hx-format-date-CKnlQOmV.js.map +1 -0
  602. package/dist/shared/{hx-grid-BIAR5h9m.js → hx-grid-CXZf3jeK.js} +28 -18
  603. package/dist/shared/hx-grid-CXZf3jeK.js.map +1 -0
  604. package/dist/shared/{hx-help-text-Bmb80bP4.js → hx-help-text-D7eytSim.js} +45 -25
  605. package/dist/shared/hx-help-text-D7eytSim.js.map +1 -0
  606. package/dist/shared/{hx-icon-BKHs3OLu.js → hx-icon-CcyDPDYY.js} +104 -62
  607. package/dist/shared/hx-icon-CcyDPDYY.js.map +1 -0
  608. package/dist/shared/{hx-icon-button-CJuy9xbw.js → hx-icon-button-BHneqPCU.js} +58 -42
  609. package/dist/shared/hx-icon-button-BHneqPCU.js.map +1 -0
  610. package/dist/shared/{hx-image-ztiXumZB.js → hx-image-2gt14zZd.js} +34 -26
  611. package/dist/shared/hx-image-2gt14zZd.js.map +1 -0
  612. package/dist/shared/{hx-link-CN7AvGOW.js → hx-link-BESrWK8M.js} +51 -33
  613. package/dist/shared/hx-link-BESrWK8M.js.map +1 -0
  614. package/dist/shared/{hx-list-Dnei26t4.js → hx-list-_9qVv02L.js} +32 -22
  615. package/dist/shared/hx-list-_9qVv02L.js.map +1 -0
  616. package/dist/shared/{hx-menu-divider-DRT8yHRZ.js → hx-menu-divider-Ck-9Os1t.js} +103 -60
  617. package/dist/shared/hx-menu-divider-Ck-9Os1t.js.map +1 -0
  618. package/dist/shared/{hx-meter-BcVC9yrt.js → hx-meter-TbROk-dw.js} +57 -43
  619. package/dist/shared/hx-meter-TbROk-dw.js.map +1 -0
  620. package/dist/shared/{hx-nav-l0Rp7WPW.js → hx-nav-BcYDmjf7.js} +71 -56
  621. package/dist/shared/hx-nav-BcYDmjf7.js.map +1 -0
  622. package/dist/shared/{hx-nav-item-CJN4VDrf.js → hx-nav-item-pqPasRUm.js} +67 -23
  623. package/dist/shared/hx-nav-item-pqPasRUm.js.map +1 -0
  624. package/dist/shared/{hx-number-input-0Waw7Z7u.js → hx-number-input-mOIZ3-46.js} +169 -96
  625. package/dist/shared/hx-number-input-mOIZ3-46.js.map +1 -0
  626. package/dist/shared/{hx-overflow-menu-DElwFSCd.js → hx-overflow-menu-Dprb9lnT.js} +70 -38
  627. package/dist/shared/hx-overflow-menu-Dprb9lnT.js.map +1 -0
  628. package/dist/shared/{hx-pagination-BNtx-LG6.js → hx-pagination-AguTQjYC.js} +35 -35
  629. package/dist/shared/hx-pagination-AguTQjYC.js.map +1 -0
  630. package/dist/shared/{hx-patient-banner-BKiN7nIE.js → hx-patient-banner-uE6gqLpT.js} +67 -47
  631. package/dist/shared/hx-patient-banner-uE6gqLpT.js.map +1 -0
  632. package/dist/shared/{hx-phi-field-DD1qcBSO.js → hx-phi-field-BC_XowhC.js} +138 -56
  633. package/dist/shared/hx-phi-field-BC_XowhC.js.map +1 -0
  634. package/dist/shared/{hx-popover-CydNuVkT.js → hx-popover-B2_203ct.js} +44 -30
  635. package/dist/shared/hx-popover-B2_203ct.js.map +1 -0
  636. package/dist/shared/{hx-popup-DbzezTOd.js → hx-popup-DZXpsJ1R.js} +89 -64
  637. package/dist/shared/hx-popup-DZXpsJ1R.js.map +1 -0
  638. package/dist/shared/{hx-progress-bar-Cm0VihTN.js → hx-progress-bar-KjEkEJLy.js} +21 -20
  639. package/dist/shared/hx-progress-bar-KjEkEJLy.js.map +1 -0
  640. package/dist/shared/{hx-progress-ring-Cs0WgWDJ.js → hx-progress-ring-3zMwvrwD.js} +53 -31
  641. package/dist/shared/hx-progress-ring-3zMwvrwD.js.map +1 -0
  642. package/dist/shared/{hx-prose-Ml_L2zje.js → hx-prose-BCtK7YL6.js} +48 -15
  643. package/dist/shared/{hx-prose-Ml_L2zje.js.map → hx-prose-BCtK7YL6.js.map} +1 -1
  644. package/dist/shared/{hx-radio-f8c5ggHG.js → hx-radio-BBC5qZgE.js} +202 -123
  645. package/dist/shared/hx-radio-BBC5qZgE.js.map +1 -0
  646. package/dist/shared/{hx-rating-qRJZXskm.js → hx-rating-C3E3ENJb.js} +92 -69
  647. package/dist/shared/hx-rating-C3E3ENJb.js.map +1 -0
  648. package/dist/shared/{hx-select-CgcgsHU5.js → hx-select-CixTo7jp.js} +206 -135
  649. package/dist/shared/hx-select-CixTo7jp.js.map +1 -0
  650. package/dist/shared/{hx-skeleton-tiYvKO-t.js → hx-skeleton-LxkI0pxr.js} +39 -27
  651. package/dist/shared/hx-skeleton-LxkI0pxr.js.map +1 -0
  652. package/dist/shared/{hx-slider-BvXtvxmN.js → hx-slider-DFHuzF3N.js} +79 -91
  653. package/dist/shared/hx-slider-DFHuzF3N.js.map +1 -0
  654. package/dist/shared/{hx-spinner-D6nzuGmj.js → hx-spinner-BKjuCdZB.js} +32 -20
  655. package/dist/shared/hx-spinner-BKjuCdZB.js.map +1 -0
  656. package/dist/shared/{hx-split-button-CPndTJlC.js → hx-split-button-CGcJMmCG.js} +59 -22
  657. package/dist/shared/hx-split-button-CGcJMmCG.js.map +1 -0
  658. package/dist/shared/{hx-split-panel-Dx72NaET.js → hx-split-panel-C-1R10Mc.js} +71 -47
  659. package/dist/shared/hx-split-panel-C-1R10Mc.js.map +1 -0
  660. package/dist/shared/{hx-stack-B76_1O6g.js → hx-stack-DGfcOfWJ.js} +21 -11
  661. package/dist/shared/hx-stack-DGfcOfWJ.js.map +1 -0
  662. package/dist/shared/{hx-stat-DKlyBL_K.js → hx-stat-BTpykQAt.js} +14 -14
  663. package/dist/shared/hx-stat-BTpykQAt.js.map +1 -0
  664. package/dist/shared/{hx-status-indicator-ClWpK6zz.js → hx-status-indicator-X2QEWNFt.js} +36 -23
  665. package/dist/shared/hx-status-indicator-X2QEWNFt.js.map +1 -0
  666. package/dist/shared/{hx-step-C2Jk4mHa.js → hx-step-CRNQlmSo.js} +83 -32
  667. package/dist/shared/hx-step-CRNQlmSo.js.map +1 -0
  668. package/dist/shared/{hx-structured-list-DKlrv7kS.js → hx-structured-list-CqNbaEXg.js} +32 -16
  669. package/dist/shared/hx-structured-list-CqNbaEXg.js.map +1 -0
  670. package/dist/shared/hx-style-scope-TDnR8H4O.js +251 -0
  671. package/dist/shared/hx-style-scope-TDnR8H4O.js.map +1 -0
  672. package/dist/shared/{hx-switch-BzMN37PV.js → hx-switch-DqOD9JR7.js} +122 -81
  673. package/dist/shared/hx-switch-DqOD9JR7.js.map +1 -0
  674. package/dist/shared/{hx-tab-panel-J58zOSjq.js → hx-tab-panel-BIzKfW5i.js} +156 -102
  675. package/dist/shared/hx-tab-panel-BIzKfW5i.js.map +1 -0
  676. package/dist/shared/{hx-tag-F0ZcYj9b.js → hx-tag-CgnrNnte.js} +30 -18
  677. package/dist/shared/hx-tag-CgnrNnte.js.map +1 -0
  678. package/dist/shared/{hx-td-CNCvzBwY.js → hx-td-Bra35cH4.js} +55 -47
  679. package/dist/shared/hx-td-Bra35cH4.js.map +1 -0
  680. package/dist/shared/{hx-text-DcWBqZwx.js → hx-text-DMC2CPlL.js} +74 -41
  681. package/dist/shared/hx-text-DMC2CPlL.js.map +1 -0
  682. package/dist/shared/{hx-text-input-Zuodg9s_.js → hx-text-input--q0GH78x.js} +123 -62
  683. package/dist/shared/hx-text-input--q0GH78x.js.map +1 -0
  684. package/dist/shared/{hx-textarea-BfSJJtA1.js → hx-textarea-CK621vSL.js} +124 -89
  685. package/dist/shared/hx-textarea-CK621vSL.js.map +1 -0
  686. package/dist/shared/{hx-theme-pc1V7dyL.js → hx-theme-DfEy-SJA.js} +72 -64
  687. package/dist/shared/hx-theme-DfEy-SJA.js.map +1 -0
  688. package/dist/shared/{hx-time-picker-CZvmihHD.js → hx-time-picker-tPUfgElQ.js} +300 -82
  689. package/dist/shared/hx-time-picker-tPUfgElQ.js.map +1 -0
  690. package/dist/shared/{hx-toggle-button-BZUQUULm.js → hx-toggle-button-L-uBJr-a.js} +72 -42
  691. package/dist/shared/hx-toggle-button-L-uBJr-a.js.map +1 -0
  692. package/dist/shared/{hx-tooltip-Ny4i1Idj.js → hx-tooltip-B_zfKvwc.js} +44 -31
  693. package/dist/shared/hx-tooltip-B_zfKvwc.js.map +1 -0
  694. package/dist/shared/{hx-top-nav-CC4FW2Hp.js → hx-top-nav-CATbRvIv.js} +53 -30
  695. package/dist/shared/hx-top-nav-CATbRvIv.js.map +1 -0
  696. package/dist/shared/{hx-tree-item-CPQ9dJiK.js → hx-tree-item-A45WCiBu.js} +37 -9
  697. package/dist/shared/hx-tree-item-A45WCiBu.js.map +1 -0
  698. package/dist/shared/hx-visually-hidden-0bZKOWgT.js +66 -0
  699. package/dist/shared/hx-visually-hidden-0bZKOWgT.js.map +1 -0
  700. package/dist/shared/id-counter-DuX8vsui.js +11 -0
  701. package/dist/shared/{id-counter-PTgF-zcG.js.map → id-counter-DuX8vsui.js.map} +1 -1
  702. package/dist/shared/{toast-factory-CEMNOt1T.js → toast-factory-BPPnG3mM.js} +58 -46
  703. package/dist/shared/toast-factory-BPPnG3mM.js.map +1 -0
  704. package/dist/utilities/injectLightStyles.d.ts.map +1 -1
  705. package/dist/utilities/sanitizeCss.d.ts +43 -0
  706. package/dist/utilities/sanitizeCss.d.ts.map +1 -0
  707. package/package.json +29 -13
  708. package/dist/shared/FormMixin-Bjvw20G5.js.map +0 -1
  709. package/dist/shared/aria-delegation-CBP9eQ0M.js.map +0 -1
  710. package/dist/shared/document-token-adoption-DuYNKd4k.js +0 -21
  711. package/dist/shared/document-token-adoption-DuYNKd4k.js.map +0 -1
  712. package/dist/shared/helix-element-CZvaIEQP.js.map +0 -1
  713. package/dist/shared/hx-accordion-CpfO0YQo.js.map +0 -1
  714. package/dist/shared/hx-action-bar-CNLYufVd.js.map +0 -1
  715. package/dist/shared/hx-alert-CHOjTBds.js.map +0 -1
  716. package/dist/shared/hx-avatar-an-WsuLl.js.map +0 -1
  717. package/dist/shared/hx-badge-RPzd-t5l.js.map +0 -1
  718. package/dist/shared/hx-banner-B-WEDiq7.js.map +0 -1
  719. package/dist/shared/hx-breadcrumb-item-jLAKK038.js.map +0 -1
  720. package/dist/shared/hx-button-DoN8jjQT.js.map +0 -1
  721. package/dist/shared/hx-button-group-BXlMQTt_.js.map +0 -1
  722. package/dist/shared/hx-card-BgXZXDuc.js.map +0 -1
  723. package/dist/shared/hx-carousel-item-Dwt9Pphz.js.map +0 -1
  724. package/dist/shared/hx-checkbox-C82GjRXe.js.map +0 -1
  725. package/dist/shared/hx-checkbox-group-DThZeN5d.js.map +0 -1
  726. package/dist/shared/hx-clinical-status-BjtT5c0M.js.map +0 -1
  727. package/dist/shared/hx-code-snippet-DcVENSuC.js.map +0 -1
  728. package/dist/shared/hx-color-picker-C6EIuS9t.js.map +0 -1
  729. package/dist/shared/hx-combobox-BJ4lQocO.js +0 -544
  730. package/dist/shared/hx-combobox-BJ4lQocO.js.map +0 -1
  731. package/dist/shared/hx-container-BwWbMPTH.js.map +0 -1
  732. package/dist/shared/hx-copy-button-BoM0WsMd.js.map +0 -1
  733. package/dist/shared/hx-counter-B5NgKlw4.js.map +0 -1
  734. package/dist/shared/hx-data-table-D5Ne-goy.js.map +0 -1
  735. package/dist/shared/hx-date-picker-Cd3I3WkX.js +0 -627
  736. package/dist/shared/hx-date-picker-Cd3I3WkX.js.map +0 -1
  737. package/dist/shared/hx-dialog-D4ubstxx.js.map +0 -1
  738. package/dist/shared/hx-divider-BBtOLHRP.js.map +0 -1
  739. package/dist/shared/hx-drawer--WDLuWtS.js.map +0 -1
  740. package/dist/shared/hx-dropdown-n5-XSmiV.js.map +0 -1
  741. package/dist/shared/hx-field-CwT9tki1.js.map +0 -1
  742. package/dist/shared/hx-field-label-CcOK9VU3.js.map +0 -1
  743. package/dist/shared/hx-file-upload-Di_vpQaG.js.map +0 -1
  744. package/dist/shared/hx-form-BM6PHsw3.js.map +0 -1
  745. package/dist/shared/hx-format-date-B7L9odbA.js.map +0 -1
  746. package/dist/shared/hx-grid-BIAR5h9m.js.map +0 -1
  747. package/dist/shared/hx-help-text-Bmb80bP4.js.map +0 -1
  748. package/dist/shared/hx-icon-BKHs3OLu.js.map +0 -1
  749. package/dist/shared/hx-icon-button-CJuy9xbw.js.map +0 -1
  750. package/dist/shared/hx-image-ztiXumZB.js.map +0 -1
  751. package/dist/shared/hx-link-CN7AvGOW.js.map +0 -1
  752. package/dist/shared/hx-list-Dnei26t4.js.map +0 -1
  753. package/dist/shared/hx-menu-divider-DRT8yHRZ.js.map +0 -1
  754. package/dist/shared/hx-meter-BcVC9yrt.js.map +0 -1
  755. package/dist/shared/hx-nav-item-CJN4VDrf.js.map +0 -1
  756. package/dist/shared/hx-nav-l0Rp7WPW.js.map +0 -1
  757. package/dist/shared/hx-number-input-0Waw7Z7u.js.map +0 -1
  758. package/dist/shared/hx-overflow-menu-DElwFSCd.js.map +0 -1
  759. package/dist/shared/hx-pagination-BNtx-LG6.js.map +0 -1
  760. package/dist/shared/hx-patient-banner-BKiN7nIE.js.map +0 -1
  761. package/dist/shared/hx-phi-field-DD1qcBSO.js.map +0 -1
  762. package/dist/shared/hx-popover-CydNuVkT.js.map +0 -1
  763. package/dist/shared/hx-popup-DbzezTOd.js.map +0 -1
  764. package/dist/shared/hx-progress-bar-Cm0VihTN.js.map +0 -1
  765. package/dist/shared/hx-progress-ring-Cs0WgWDJ.js.map +0 -1
  766. package/dist/shared/hx-radio-f8c5ggHG.js.map +0 -1
  767. package/dist/shared/hx-rating-qRJZXskm.js.map +0 -1
  768. package/dist/shared/hx-select-CgcgsHU5.js.map +0 -1
  769. package/dist/shared/hx-skeleton-tiYvKO-t.js.map +0 -1
  770. package/dist/shared/hx-slider-BvXtvxmN.js.map +0 -1
  771. package/dist/shared/hx-spinner-D6nzuGmj.js.map +0 -1
  772. package/dist/shared/hx-split-button-CPndTJlC.js.map +0 -1
  773. package/dist/shared/hx-split-panel-Dx72NaET.js.map +0 -1
  774. package/dist/shared/hx-stack-B76_1O6g.js.map +0 -1
  775. package/dist/shared/hx-stat-DKlyBL_K.js.map +0 -1
  776. package/dist/shared/hx-status-indicator-ClWpK6zz.js.map +0 -1
  777. package/dist/shared/hx-step-C2Jk4mHa.js.map +0 -1
  778. package/dist/shared/hx-structured-list-DKlrv7kS.js.map +0 -1
  779. package/dist/shared/hx-style-scope-CsQ2Phf_.js +0 -126
  780. package/dist/shared/hx-style-scope-CsQ2Phf_.js.map +0 -1
  781. package/dist/shared/hx-switch-BzMN37PV.js.map +0 -1
  782. package/dist/shared/hx-tab-panel-J58zOSjq.js.map +0 -1
  783. package/dist/shared/hx-tag-F0ZcYj9b.js.map +0 -1
  784. package/dist/shared/hx-td-CNCvzBwY.js.map +0 -1
  785. package/dist/shared/hx-text-DcWBqZwx.js.map +0 -1
  786. package/dist/shared/hx-text-input-Zuodg9s_.js.map +0 -1
  787. package/dist/shared/hx-textarea-BfSJJtA1.js.map +0 -1
  788. package/dist/shared/hx-theme-pc1V7dyL.js.map +0 -1
  789. package/dist/shared/hx-time-picker-CZvmihHD.js.map +0 -1
  790. package/dist/shared/hx-toggle-button-BZUQUULm.js.map +0 -1
  791. package/dist/shared/hx-tooltip-Ny4i1Idj.js.map +0 -1
  792. package/dist/shared/hx-top-nav-CC4FW2Hp.js.map +0 -1
  793. package/dist/shared/hx-tree-item-CPQ9dJiK.js.map +0 -1
  794. package/dist/shared/hx-visually-hidden-vKX8QjeX.js +0 -54
  795. package/dist/shared/hx-visually-hidden-vKX8QjeX.js.map +0 -1
  796. package/dist/shared/id-counter-PTgF-zcG.js +0 -15
  797. package/dist/shared/toast-factory-CEMNOt1T.js.map +0 -1
  798. package/dist/tools/cem-a11y-analyzer/analyzers/aria-analyzer.d.ts +0 -12
  799. package/dist/tools/cem-a11y-analyzer/analyzers/aria-analyzer.d.ts.map +0 -1
  800. package/dist/tools/cem-a11y-analyzer/analyzers/focus-analyzer.d.ts +0 -13
  801. package/dist/tools/cem-a11y-analyzer/analyzers/focus-analyzer.d.ts.map +0 -1
  802. package/dist/tools/cem-a11y-analyzer/analyzers/form-analyzer.d.ts +0 -13
  803. package/dist/tools/cem-a11y-analyzer/analyzers/form-analyzer.d.ts.map +0 -1
  804. package/dist/tools/cem-a11y-analyzer/analyzers/keyboard-analyzer.d.ts +0 -12
  805. package/dist/tools/cem-a11y-analyzer/analyzers/keyboard-analyzer.d.ts.map +0 -1
  806. package/dist/tools/cem-a11y-analyzer/analyzers/label-analyzer.d.ts +0 -13
  807. package/dist/tools/cem-a11y-analyzer/analyzers/label-analyzer.d.ts.map +0 -1
  808. package/dist/tools/cem-a11y-analyzer/analyzers/motion-analyzer.d.ts +0 -12
  809. package/dist/tools/cem-a11y-analyzer/analyzers/motion-analyzer.d.ts.map +0 -1
  810. package/dist/tools/cem-a11y-analyzer/index.d.ts +0 -14
  811. package/dist/tools/cem-a11y-analyzer/index.d.ts.map +0 -1
  812. package/dist/tools/cem-a11y-analyzer/reporter.d.ts +0 -6
  813. package/dist/tools/cem-a11y-analyzer/reporter.d.ts.map +0 -1
  814. package/dist/tools/cem-a11y-analyzer/scorer.d.ts +0 -22
  815. package/dist/tools/cem-a11y-analyzer/scorer.d.ts.map +0 -1
  816. package/dist/tools/cem-a11y-analyzer/types.d.ts +0 -171
  817. package/dist/tools/cem-a11y-analyzer/types.d.ts.map +0 -1
@@ -1,8 +1,8 @@
1
- import { css as y, LitElement as w, svg as g, html as u, nothing as f } from "lit";
2
- import "./document-token-adoption-DuYNKd4k.js";
3
- import { property as x, state as k, customElement as C } from "lit/decorators.js";
1
+ import { css as y, svg as g, html as u, nothing as _ } from "lit";
2
+ import { property as x, state as k, customElement as w } from "lit/decorators.js";
4
3
  import { classMap as m } from "lit/directives/class-map.js";
5
- import { repeat as $ } from "lit/directives/repeat.js";
4
+ import { repeat as C } from "lit/directives/repeat.js";
5
+ import { H as $ } from "./helix-element-BNEYeiys.js";
6
6
  const I = y`
7
7
  :host {
8
8
  display: block;
@@ -18,8 +18,8 @@ const I = y`
18
18
 
19
19
  [part='nav'] {
20
20
  position: relative;
21
- background-color: var(--hx-nav-bg, var(--hx-color-neutral-900, #111827));
22
- color: var(--hx-nav-color, var(--hx-color-neutral-100, #f3f4f6));
21
+ background-color: var(--hx-nav-bg, var(--hx-color-neutral-900, #0f172a));
22
+ color: var(--hx-nav-color, var(--hx-color-neutral-100, #f1f5f9));
23
23
  padding: var(--hx-nav-padding, var(--hx-space-2, 0.5rem) var(--hx-space-4, 1rem));
24
24
  }
25
25
 
@@ -33,14 +33,14 @@ const I = y`
33
33
  background: transparent;
34
34
  border: none;
35
35
  border-radius: var(--hx-nav-border-radius, var(--hx-border-radius-sm, 0.25rem));
36
- color: var(--hx-nav-color, var(--hx-color-neutral-100, #f3f4f6));
36
+ color: var(--hx-nav-color, var(--hx-color-neutral-100, #f1f5f9));
37
37
  cursor: pointer;
38
38
  transition: background-color var(--hx-transition-fast, 150ms) ease;
39
39
  line-height: 0;
40
40
  }
41
41
 
42
42
  [part='toggle']:hover {
43
- background-color: var(--hx-nav-link-hover-bg, var(--hx-color-neutral-700, #374151));
43
+ background-color: var(--hx-nav-link-hover-bg, var(--hx-color-neutral-700, #334155));
44
44
  }
45
45
 
46
46
  [part='toggle']:focus-visible {
@@ -75,7 +75,7 @@ const I = y`
75
75
  align-items: center;
76
76
  gap: var(--hx-space-1, 0.25rem);
77
77
  padding: var(--hx-nav-item-padding, var(--hx-space-2, 0.5rem) var(--hx-space-3, 0.75rem));
78
- color: var(--hx-nav-link-color, var(--hx-color-neutral-100, #f3f4f6));
78
+ color: var(--hx-nav-link-color, var(--hx-color-neutral-100, #f1f5f9));
79
79
  text-decoration: none;
80
80
  border-radius: var(--hx-nav-border-radius, var(--hx-border-radius-sm, 0.25rem));
81
81
  border: none;
@@ -92,7 +92,7 @@ const I = y`
92
92
  }
93
93
 
94
94
  .nav__link:hover {
95
- background-color: var(--hx-nav-link-hover-bg, var(--hx-color-neutral-700, #374151));
95
+ background-color: var(--hx-nav-link-hover-bg, var(--hx-color-neutral-700, #334155));
96
96
  color: var(--hx-nav-link-hover-color, var(--hx-color-neutral-0, #ffffff));
97
97
  }
98
98
 
@@ -103,7 +103,7 @@ const I = y`
103
103
  }
104
104
 
105
105
  .nav__link--active {
106
- background-color: var(--hx-nav-link-active-bg, var(--hx-color-primary-600, #2563eb));
106
+ background-color: var(--hx-nav-link-active-bg, var(--hx-color-primary-600, #1d4ed8));
107
107
  color: var(--hx-nav-link-active-color, var(--hx-color-neutral-0, #ffffff));
108
108
  }
109
109
 
@@ -128,12 +128,11 @@ const I = y`
128
128
  list-style: none;
129
129
  margin: 0;
130
130
  padding: var(--hx-space-1, 0.25rem) 0;
131
- background-color: var(--hx-nav-submenu-bg, var(--hx-color-neutral-800, #1f2937));
131
+ background-color: var(--hx-nav-submenu-bg, var(--hx-color-neutral-800, #1e293b));
132
132
  border-radius: var(--hx-border-radius-md, 0.375rem);
133
133
  box-shadow: var(
134
- --hx-shadow-md,
135
- 0 4px 6px -1px rgb(0 0 0 / 0.1),
136
- 0 2px 4px -2px rgb(0 0 0 / 0.1)
134
+ --hx-nav-shadow,
135
+ var(--hx-shadow-md, 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1))
137
136
  );
138
137
  z-index: var(--hx-z-index-dropdown, 1000);
139
138
  }
@@ -183,7 +182,7 @@ const I = y`
183
182
  :host([orientation='vertical']) .nav__submenu .nav__link {
184
183
  padding: var(--hx-space-1-5, 0.375rem) var(--hx-space-3, 0.75rem);
185
184
  font-size: var(--hx-font-size-xs, 0.75rem);
186
- color: var(--hx-nav-link-color, var(--hx-color-neutral-300, #d1d5db));
185
+ color: var(--hx-nav-link-color, var(--hx-color-neutral-300, #cbd5e1));
187
186
  }
188
187
 
189
188
  /* ─── Mobile Responsive ─── */
@@ -245,13 +244,29 @@ const I = y`
245
244
  animation: none;
246
245
  }
247
246
  }
247
+
248
+ /* ─── Forced Colors (Windows High Contrast) ─── */
249
+
250
+ @media (forced-colors: active) {
251
+ [part='nav'] {
252
+ border: 1px solid CanvasText;
253
+ }
254
+
255
+ .nav__link--active {
256
+ border: 1px solid Highlight;
257
+ }
258
+
259
+ .nav__submenu {
260
+ border: 1px solid CanvasText;
261
+ }
262
+ }
248
263
  `;
249
- var O = Object.defineProperty, A = Object.getOwnPropertyDescriptor, p = (e, n, r, o) => {
250
- for (var t = o > 1 ? void 0 : o ? A(n, r) : n, i = e.length - 1, l; i >= 0; i--)
251
- (l = e[i]) && (t = (o ? l(n, r, t) : l(t)) || t);
252
- return o && t && O(n, r, t), t;
264
+ var O = Object.defineProperty, A = Object.getOwnPropertyDescriptor, p = (e, n, t, o) => {
265
+ for (var r = o > 1 ? void 0 : o ? A(n, t) : n, i = e.length - 1, l; i >= 0; i--)
266
+ (l = e[i]) && (r = (o ? l(n, t, r) : l(r)) || r);
267
+ return o && r && O(n, t, r), r;
253
268
  };
254
- let c = class extends w {
269
+ let c = class extends $ {
255
270
  constructor() {
256
271
  super(...arguments), this.items = [], this.orientation = "horizontal", this.label = "Main navigation", this.labelOpenMenu = "Open navigation menu", this.labelCloseMenu = "Close navigation menu", this._mobileOpen = !1, this._expandedIndex = null, this._boundOutsideClick = this._handleOutsideClick.bind(this), this._boundFocusout = this._handleFocusout.bind(this);
257
272
  }
@@ -277,9 +292,9 @@ let c = class extends w {
277
292
  this._mobileOpen = !this._mobileOpen, this._mobileOpen || (this._expandedIndex = null);
278
293
  }
279
294
  /** @internal */
280
- _handleItemClick(e, n, r) {
295
+ _handleItemClick(e, n, t) {
281
296
  var o;
282
- r.preventDefault(), (o = e.children) != null && o.length ? this._expandedIndex = this._expandedIndex === n ? null : n : (this._mobileOpen = !1, this._expandedIndex = null, this.dispatchEvent(
297
+ t.preventDefault(), (o = e.children) != null && o.length ? this._expandedIndex = this._expandedIndex === n ? null : n : (this._mobileOpen = !1, this._expandedIndex = null, this.dispatchEvent(
283
298
  new CustomEvent("hx-nav-select", {
284
299
  bubbles: !0,
285
300
  composed: !0,
@@ -298,17 +313,17 @@ let c = class extends w {
298
313
  );
299
314
  }
300
315
  /** @internal */
301
- _handleKeydown(e, n, r) {
302
- var l, d, h, a, _;
316
+ _handleKeydown(e, n, t) {
317
+ var l, d, h, a, f;
303
318
  const o = (l = this.shadowRoot) == null ? void 0 : l.querySelectorAll(
304
319
  '[part="list"] > [part="item"] > [part="link"]'
305
320
  );
306
321
  if (!o) return;
307
- const t = Array.from(o), i = t[n];
322
+ const r = Array.from(o), i = r[n];
308
323
  switch (e.key) {
309
324
  case "ArrowRight":
310
325
  case "ArrowDown": {
311
- if (e.preventDefault(), (d = r.children) != null && d.length && e.key === "ArrowDown" && this.orientation === "horizontal")
326
+ if (e.preventDefault(), (d = t.children) != null && d.length && e.key === "ArrowDown" && this.orientation === "horizontal")
312
327
  this._expandedIndex = n, this.updateComplete.then(() => {
313
328
  var v;
314
329
  const s = (v = this.shadowRoot) == null ? void 0 : v.querySelector(
@@ -317,7 +332,7 @@ let c = class extends w {
317
332
  s == null || s.focus();
318
333
  });
319
334
  else {
320
- const s = t[n + 1] ?? t[0];
335
+ const s = r[n + 1] ?? r[0];
321
336
  s == null || s.focus();
322
337
  }
323
338
  break;
@@ -325,16 +340,16 @@ let c = class extends w {
325
340
  case "ArrowLeft":
326
341
  case "ArrowUp": {
327
342
  e.preventDefault();
328
- const s = t[n - 1] ?? t[t.length - 1];
343
+ const s = r[n - 1] ?? r[r.length - 1];
329
344
  s == null || s.focus();
330
345
  break;
331
346
  }
332
347
  case "Home": {
333
- e.preventDefault(), (h = t[0]) == null || h.focus();
348
+ e.preventDefault(), (h = r[0]) == null || h.focus();
334
349
  break;
335
350
  }
336
351
  case "End": {
337
- e.preventDefault(), (a = t[t.length - 1]) == null || a.focus();
352
+ e.preventDefault(), (a = r[r.length - 1]) == null || a.focus();
338
353
  break;
339
354
  }
340
355
  case "Escape": {
@@ -343,7 +358,7 @@ let c = class extends w {
343
358
  }
344
359
  case "Enter":
345
360
  case " ": {
346
- if ((_ = r.children) != null && _.length) {
361
+ if ((f = t.children) != null && f.length) {
347
362
  e.preventDefault();
348
363
  const s = this._expandedIndex === n;
349
364
  this._expandedIndex = s ? null : n, s || this.updateComplete.then(() => {
@@ -361,11 +376,11 @@ let c = class extends w {
361
376
  /** @internal */
362
377
  _handleSubKeydown(e, n) {
363
378
  var l, d, h;
364
- const r = (l = this.shadowRoot) == null ? void 0 : l.querySelectorAll(
379
+ const t = (l = this.shadowRoot) == null ? void 0 : l.querySelectorAll(
365
380
  '.nav__submenu:not([hidden]) [part="link"]'
366
381
  );
367
- if (!r) return;
368
- const o = Array.from(r), t = e.currentTarget ?? e.target, i = o.indexOf(t);
382
+ if (!t) return;
383
+ const o = Array.from(t), r = e.currentTarget ?? e.target, i = o.indexOf(r);
369
384
  switch (e.key) {
370
385
  case "ArrowDown": {
371
386
  e.preventDefault();
@@ -398,9 +413,9 @@ let c = class extends w {
398
413
  * @internal
399
414
  */
400
415
  _handleFocusout(e) {
401
- var r;
416
+ var t;
402
417
  const n = e.relatedTarget;
403
- n && this.contains(n) || n && ((r = this.shadowRoot) != null && r.contains(n)) || (this._expandedIndex = null);
418
+ n && this.contains(n) || n && ((t = this.shadowRoot) != null && t.contains(n)) || (this._expandedIndex = null);
404
419
  }
405
420
  // ─── Lifecycle ───
406
421
  connectedCallback() {
@@ -449,25 +464,25 @@ let c = class extends w {
449
464
  </svg>`;
450
465
  }
451
466
  /** @internal */
452
- _renderSubMenu(e, n, r) {
467
+ _renderSubMenu(e, n, t) {
453
468
  const o = this._expandedIndex === n;
454
469
  return u`
455
- <ul class="nav__submenu" aria-label="${r} submenu" ?hidden=${!o}>
470
+ <ul class="nav__submenu" aria-label="${t} submenu" ?hidden=${!o}>
456
471
  ${e.map(
457
- (t) => u`
472
+ (r) => u`
458
473
  <li class="nav__submenu-item">
459
474
  <a
460
475
  part="link"
461
- href=${this._sanitizeHref(t.href)}
476
+ href=${this._sanitizeHref(r.href)}
462
477
  class=${m({
463
478
  nav__link: !0,
464
- "nav__link--active": !!t.current
479
+ "nav__link--active": !!r.current
465
480
  })}
466
- aria-current=${t.current ? "page" : f}
467
- @click=${(i) => this._handleSubItemClick(t, i)}
481
+ aria-current=${r.current ? "page" : _}
482
+ @click=${(i) => this._handleSubItemClick(r, i)}
468
483
  @keydown=${(i) => this._handleSubKeydown(i, n)}
469
484
  >
470
- ${t.label}
485
+ ${r.label}
471
486
  </a>
472
487
  </li>
473
488
  `
@@ -478,17 +493,17 @@ let c = class extends w {
478
493
  /** @internal */
479
494
  _renderItem(e, n) {
480
495
  var d, h;
481
- const r = !!((d = e.children) != null && d.length), o = this._expandedIndex === n, t = r && !!((h = e.children) != null && h.some((a) => a.current)), i = {
496
+ const t = !!((d = e.children) != null && d.length), o = this._expandedIndex === n, r = t && !!((h = e.children) != null && h.some((a) => a.current)), i = {
482
497
  nav__link: !0,
483
- "nav__link--active": !!e.current || t,
484
- "nav__link--has-submenu": r,
498
+ "nav__link--active": !!e.current || r,
499
+ "nav__link--has-submenu": t,
485
500
  "nav__link--expanded": o
486
- }, l = r ? u`
501
+ }, l = t ? u`
487
502
  <button
488
503
  part="link"
489
504
  class=${m(i)}
490
505
  aria-expanded=${o ? "true" : "false"}
491
- aria-current=${t ? "true" : f}
506
+ aria-current=${r ? "true" : _}
492
507
  @click=${(a) => this._handleItemClick(e, n, a)}
493
508
  @keydown=${(a) => this._handleKeydown(a, n, e)}
494
509
  >
@@ -500,7 +515,7 @@ let c = class extends w {
500
515
  part="link"
501
516
  href=${this._sanitizeHref(e.href)}
502
517
  class=${m(i)}
503
- aria-current=${e.current ? "page" : f}
518
+ aria-current=${e.current ? "page" : _}
504
519
  @click=${(a) => this._handleItemClick(e, n, a)}
505
520
  @keydown=${(a) => this._handleKeydown(a, n, e)}
506
521
  >
@@ -529,10 +544,10 @@ let c = class extends w {
529
544
  </button>
530
545
 
531
546
  <ul part="list" id="nav-list" class=${m(e)} role="list">
532
- ${$(
547
+ ${C(
533
548
  this.items,
534
- (n, r) => r,
535
- (n, r) => this._renderItem(n, r)
549
+ (n, t) => t,
550
+ (n, t) => this._renderItem(n, t)
536
551
  )}
537
552
  </ul>
538
553
  </nav>
@@ -575,9 +590,9 @@ p([
575
590
  k()
576
591
  ], c.prototype, "_expandedIndex", 2);
577
592
  c = p([
578
- C("hx-nav")
593
+ w("hx-nav")
579
594
  ], c);
580
595
  export {
581
596
  c as H
582
597
  };
583
- //# sourceMappingURL=hx-nav-l0Rp7WPW.js.map
598
+ //# sourceMappingURL=hx-nav-BcYDmjf7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hx-nav-BcYDmjf7.js","sources":["../../src/components/hx-nav/hx-nav.styles.ts","../../src/components/hx-nav/hx-nav.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixNavStyles = css`\n :host {\n display: block;\n font-family: var(--hx-nav-font-family, var(--hx-font-family-sans, sans-serif));\n font-size: var(--hx-nav-font-size, var(--hx-font-size-sm, 0.875rem));\n }\n\n * {\n box-sizing: border-box;\n }\n\n /* ─── Nav Container ─── */\n\n [part='nav'] {\n position: relative;\n background-color: var(--hx-nav-bg, var(--hx-color-neutral-900, #0f172a));\n color: var(--hx-nav-color, var(--hx-color-neutral-100, #f1f5f9));\n padding: var(--hx-nav-padding, var(--hx-space-2, 0.5rem) var(--hx-space-4, 1rem));\n }\n\n /* ─── Hamburger Toggle ─── */\n\n [part='toggle'] {\n display: none;\n align-items: center;\n justify-content: center;\n padding: var(--hx-space-2, 0.5rem);\n background: transparent;\n border: none;\n border-radius: var(--hx-nav-border-radius, var(--hx-border-radius-sm, 0.25rem));\n color: var(--hx-nav-color, var(--hx-color-neutral-100, #f1f5f9));\n cursor: pointer;\n transition: background-color var(--hx-transition-fast, 150ms) ease;\n line-height: 0;\n }\n\n [part='toggle']:hover {\n background-color: var(--hx-nav-link-hover-bg, var(--hx-color-neutral-700, #334155));\n }\n\n [part='toggle']:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid\n var(--hx-nav-focus-ring-color, var(--hx-focus-ring-color, var(--hx-color-primary-500)));\n outline-offset: var(--hx-focus-ring-offset, 2px);\n }\n\n /* ─── Navigation List ─── */\n\n [part='list'] {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n list-style: none;\n margin: 0;\n padding: 0;\n gap: var(--hx-space-1, 0.25rem);\n align-items: center;\n }\n\n /* ─── Nav Item ─── */\n\n [part='item'] {\n position: relative;\n }\n\n /* ─── Nav Link / Button ─── */\n\n .nav__link {\n display: inline-flex;\n align-items: center;\n gap: var(--hx-space-1, 0.25rem);\n padding: var(--hx-nav-item-padding, var(--hx-space-2, 0.5rem) var(--hx-space-3, 0.75rem));\n color: var(--hx-nav-link-color, var(--hx-color-neutral-100, #f1f5f9));\n text-decoration: none;\n border-radius: var(--hx-nav-border-radius, var(--hx-border-radius-sm, 0.25rem));\n border: none;\n background: transparent;\n cursor: pointer;\n font-family: inherit;\n font-size: inherit;\n font-weight: var(--hx-font-weight-medium, 500);\n line-height: var(--hx-line-height-normal, 1.5);\n white-space: nowrap;\n transition:\n background-color var(--hx-transition-fast, 150ms) ease,\n color var(--hx-transition-fast, 150ms) ease;\n }\n\n .nav__link:hover {\n background-color: var(--hx-nav-link-hover-bg, var(--hx-color-neutral-700, #334155));\n color: var(--hx-nav-link-hover-color, var(--hx-color-neutral-0, #ffffff));\n }\n\n .nav__link:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid\n var(--hx-nav-focus-ring-color, var(--hx-focus-ring-color, var(--hx-color-primary-500)));\n outline-offset: var(--hx-focus-ring-offset, 2px);\n }\n\n .nav__link--active {\n background-color: var(--hx-nav-link-active-bg, var(--hx-color-primary-600, #1d4ed8));\n color: var(--hx-nav-link-active-color, var(--hx-color-neutral-0, #ffffff));\n }\n\n /* ─── Chevron Icon ─── */\n\n .nav__chevron {\n transition: transform var(--hx-transition-normal, 200ms) ease;\n flex-shrink: 0;\n }\n\n .nav__link--expanded .nav__chevron {\n transform: rotate(180deg);\n }\n\n /* ─── Submenu ─── */\n\n .nav__submenu {\n position: absolute;\n top: calc(100% + var(--hx-space-1, 0.25rem));\n left: 0;\n min-width: var(--hx-nav-submenu-min-width, 12rem);\n list-style: none;\n margin: 0;\n padding: var(--hx-space-1, 0.25rem) 0;\n background-color: var(--hx-nav-submenu-bg, var(--hx-color-neutral-800, #1e293b));\n border-radius: var(--hx-border-radius-md, 0.375rem);\n box-shadow: var(\n --hx-nav-shadow,\n var(--hx-shadow-md, 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1))\n );\n z-index: var(--hx-z-index-dropdown, 1000);\n }\n\n .nav__submenu[hidden] {\n display: none;\n }\n\n .nav__submenu .nav__link {\n display: block;\n width: 100%;\n text-align: start;\n border-radius: 0;\n padding: var(--hx-space-2, 0.5rem) var(--hx-space-4, 1rem);\n }\n\n /* ─── Vertical / Sidebar Orientation ─── */\n\n :host([orientation='vertical']) [part='nav'] {\n padding: var(--hx-space-4, 1rem) var(--hx-space-2, 0.5rem);\n }\n\n :host([orientation='vertical']) [part='list'] {\n flex-direction: column;\n align-items: stretch;\n gap: var(--hx-space-1, 0.25rem);\n }\n\n :host([orientation='vertical']) .nav__link {\n width: 100%;\n justify-content: flex-start;\n }\n\n :host([orientation='vertical']) .nav__submenu {\n position: static;\n box-shadow: none;\n border-radius: 0;\n background-color: transparent;\n padding: 0;\n padding-inline-start: var(--hx-space-4, 1rem);\n }\n\n :host([orientation='vertical']) .nav__submenu[hidden] {\n display: none;\n }\n\n :host([orientation='vertical']) .nav__submenu .nav__link {\n padding: var(--hx-space-1-5, 0.375rem) var(--hx-space-3, 0.75rem);\n font-size: var(--hx-font-size-xs, 0.75rem);\n color: var(--hx-nav-link-color, var(--hx-color-neutral-300, #cbd5e1));\n }\n\n /* ─── Mobile Responsive ─── */\n\n @media (max-width: 768px) {\n [part='nav'] {\n display: flex;\n flex-direction: column;\n padding: var(--hx-space-2, 0.5rem);\n }\n\n [part='toggle'] {\n display: inline-flex;\n align-self: flex-end;\n }\n\n [part='list'] {\n display: none;\n flex-direction: column;\n align-items: stretch;\n width: 100%;\n margin-top: var(--hx-space-2, 0.5rem);\n gap: var(--hx-space-1, 0.25rem);\n }\n\n [part='list'].nav__list--open {\n display: flex;\n }\n\n [part='item'] {\n width: 100%;\n }\n\n .nav__link {\n width: 100%;\n justify-content: flex-start;\n }\n\n .nav__submenu {\n position: static;\n box-shadow: none;\n border-radius: 0;\n padding-inline-start: var(--hx-space-4, 1rem);\n background-color: transparent;\n }\n\n .nav__submenu .nav__link {\n padding: var(--hx-space-1-5, 0.375rem) var(--hx-space-3, 0.75rem);\n }\n }\n\n /* ─── Reduced Motion ─── */\n\n @media (prefers-reduced-motion: reduce) {\n .nav__link,\n .nav__chevron,\n [part='toggle'] {\n transition: none;\n animation: none;\n }\n }\n\n /* ─── Forced Colors (Windows High Contrast) ─── */\n\n @media (forced-colors: active) {\n [part='nav'] {\n border: 1px solid CanvasText;\n }\n\n .nav__link--active {\n border: 1px solid Highlight;\n }\n\n .nav__submenu {\n border: 1px solid CanvasText;\n }\n }\n`;\n","import { html, nothing, svg } from 'lit';\nimport '../../utilities/document-token-adoption.js';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { repeat } from 'lit/directives/repeat.js';\nimport { HelixElement } from '../../base/index.js';\nimport { helixNavStyles } from './hx-nav.styles.js';\n\n/** A single navigation item, optionally with nested children. */\nexport interface NavItem {\n /** Display label for the item. */\n label: string;\n /** Href for the item link. Required unless children are provided. */\n href?: string;\n /** Whether this item represents the current page. */\n current?: boolean;\n /** Nested sub-menu items. */\n children?: NavItem[];\n}\n\n/** Layout orientation for the navigation. */\ntype NavOrientation = 'horizontal' | 'vertical';\n\n/**\n * Primary and secondary navigation component.\n * Supports horizontal menu bar and vertical sidebar patterns.\n * Mobile responsive with hamburger toggle.\n *\n * @summary Navigation bar supporting horizontal and vertical layouts with nested submenus.\n *\n * @tag hx-nav\n *\n * @fires {CustomEvent<{item: NavItem}>} hx-nav-select - Dispatched when a nav item is activated.\n *\n * @csspart nav - The nav landmark element.\n * @csspart list - The top-level list element.\n * @csspart item - Each list item wrapper.\n * @csspart link - The anchor or button element inside each item.\n * @csspart toggle - The mobile hamburger toggle button.\n *\n * @cssprop [--hx-nav-bg=var(--hx-color-neutral-900)] - Navigation background color.\n * @cssprop [--hx-nav-color=var(--hx-color-neutral-100)] - Navigation text color.\n * @cssprop [--hx-nav-font-family=var(--hx-font-family-sans)] - Navigation font family.\n * @cssprop [--hx-nav-link-color=var(--hx-color-neutral-100)] - Link text color.\n * @cssprop [--hx-nav-link-hover-bg=var(--hx-color-neutral-700)] - Link hover background.\n * @cssprop [--hx-nav-link-hover-color=var(--hx-color-white)] - Link hover text color.\n * @cssprop [--hx-nav-link-active-bg=var(--hx-color-primary-600)] - Active link background.\n * @cssprop [--hx-nav-link-active-color=var(--hx-color-white)] - Active link text color.\n * @cssprop [--hx-nav-submenu-bg=var(--hx-color-neutral-800)] - Submenu background color.\n * @cssprop [--hx-nav-submenu-min-width=12rem] - Submenu minimum width.\n * @cssprop [--hx-nav-font-size=var(--hx-font-size-sm)] - Navigation font size.\n * @cssprop [--hx-nav-padding=var(--hx-space-2) var(--hx-space-4)] - Navigation padding.\n * @cssprop [--hx-nav-item-padding=var(--hx-space-2) var(--hx-space-3)] - Item padding.\n * @cssprop [--hx-nav-border-radius=var(--hx-border-radius-sm)] - Item border radius.\n */\n@customElement('hx-nav')\nexport class HelixNav extends HelixElement {\n static override styles = [helixNavStyles];\n\n // ─── Properties ───\n\n /**\n * Navigation items array.\n * @attr items\n */\n @property({\n type: Array,\n converter: {\n fromAttribute(value: string | null): NavItem[] {\n if (!value) return [];\n try {\n const parsed: unknown = JSON.parse(value);\n return Array.isArray(parsed) ? (parsed as NavItem[]) : [];\n } catch {\n return [];\n }\n },\n },\n })\n items: NavItem[] = [];\n\n /**\n * Layout orientation: 'horizontal' (menu bar) or 'vertical' (sidebar).\n * @attr orientation\n */\n @property({ type: String, reflect: true })\n orientation: NavOrientation = 'horizontal';\n\n /**\n * Accessible label for the nav landmark.\n * @attr label\n */\n @property({ type: String })\n label = 'Main navigation';\n\n /** Accessible label for the navigation toggle button when menu is closed. */\n @property({ type: String, attribute: 'label-open-menu' })\n labelOpenMenu = 'Open navigation menu';\n\n /** Accessible label for the navigation toggle button when menu is open. */\n @property({ type: String, attribute: 'label-close-menu' })\n labelCloseMenu = 'Close navigation menu';\n\n // ─── State ───\n\n /**\n * Tracks whether the mobile navigation menu is currently expanded.\n * @internal\n */\n @state() private _mobileOpen = false;\n /**\n * Index of the currently expanded top-level nav item with a submenu, or null if none is expanded.\n * @internal\n */\n @state() private _expandedIndex: number | null = null;\n\n // ─── Private: bound event handler reference ───\n\n /**\n * Stable bound reference to the outside-click handler, stored for addEventListener/removeEventListener symmetry.\n * @internal\n */\n private _boundOutsideClick: (e: MouseEvent) => void = this._handleOutsideClick.bind(this);\n\n /**\n * Stable bound reference to the focusout handler, stored for addEventListener/removeEventListener symmetry.\n * @internal\n */\n private _boundFocusout: (e: FocusEvent) => void = this._handleFocusout.bind(this);\n\n /**\n * Sanitizes a URL to prevent XSS via javascript: or data: URIs.\n * Only allows http:, https:, relative paths, and fragment-only links.\n */\n /** @internal */\n private _sanitizeHref(href: string | undefined): string {\n if (!href || href === '#') return '#';\n // Allow relative paths, fragments, and http(s)\n if (\n href.startsWith('/') ||\n href.startsWith('./') ||\n href.startsWith('../') ||\n href.startsWith('#')\n ) {\n return href;\n }\n if (typeof window === 'undefined') return href;\n try {\n const url = new URL(href, window.location.href);\n if (url.protocol === 'http:' || url.protocol === 'https:') {\n return href;\n }\n } catch {\n // Invalid URL — fall through to safe default\n }\n return '#';\n }\n\n // ─── Event Handling ───\n\n /** @internal */\n private _handleToggle(): void {\n this._mobileOpen = !this._mobileOpen;\n if (!this._mobileOpen) {\n this._expandedIndex = null;\n }\n }\n\n /** @internal */\n private _handleItemClick(item: NavItem, index: number, e: Event): void {\n e.preventDefault();\n if (item.children?.length) {\n this._expandedIndex = this._expandedIndex === index ? null : index;\n } else {\n this._mobileOpen = false;\n this._expandedIndex = null;\n this.dispatchEvent(\n new CustomEvent<{ item: NavItem }>('hx-nav-select', {\n bubbles: true,\n composed: true,\n detail: { item },\n }),\n );\n }\n }\n\n /** @internal */\n private _handleSubItemClick(item: NavItem, e: Event): void {\n e.preventDefault();\n this._mobileOpen = false;\n this._expandedIndex = null;\n this.dispatchEvent(\n new CustomEvent<{ item: NavItem }>('hx-nav-select', {\n bubbles: true,\n composed: true,\n detail: { item },\n }),\n );\n }\n\n /** @internal */\n private _handleKeydown(e: KeyboardEvent, index: number, item: NavItem): void {\n const items = this.shadowRoot?.querySelectorAll<HTMLElement>(\n '[part=\"list\"] > [part=\"item\"] > [part=\"link\"]',\n );\n if (!items) return;\n const itemsArr = Array.from(items);\n const current = itemsArr[index];\n\n switch (e.key) {\n case 'ArrowRight':\n case 'ArrowDown': {\n e.preventDefault();\n if (item.children?.length && e.key === 'ArrowDown' && this.orientation === 'horizontal') {\n // open submenu and focus first item\n this._expandedIndex = index;\n void this.updateComplete.then(() => {\n const firstSub = this.shadowRoot?.querySelector<HTMLElement>(\n `.nav__submenu [part=\"link\"]`,\n );\n firstSub?.focus();\n });\n } else {\n const next = itemsArr[index + 1] ?? itemsArr[0];\n next?.focus();\n }\n break;\n }\n case 'ArrowLeft':\n case 'ArrowUp': {\n e.preventDefault();\n const prev = itemsArr[index - 1] ?? itemsArr[itemsArr.length - 1];\n prev?.focus();\n break;\n }\n case 'Home': {\n e.preventDefault();\n itemsArr[0]?.focus();\n break;\n }\n case 'End': {\n e.preventDefault();\n itemsArr[itemsArr.length - 1]?.focus();\n break;\n }\n case 'Escape': {\n this._expandedIndex = null;\n current?.focus();\n break;\n }\n case 'Enter':\n case ' ': {\n if (item.children?.length) {\n e.preventDefault();\n const wasExpanded = this._expandedIndex === index;\n this._expandedIndex = wasExpanded ? null : index;\n if (!wasExpanded) {\n void this.updateComplete.then(() => {\n const firstSub = this.shadowRoot?.querySelector<HTMLElement>(\n `.nav__submenu:not([hidden]) [part=\"link\"]`,\n );\n firstSub?.focus();\n });\n }\n }\n break;\n }\n }\n }\n\n /** @internal */\n private _handleSubKeydown(e: KeyboardEvent, parentIndex: number): void {\n const subItems = this.shadowRoot?.querySelectorAll<HTMLElement>(\n `.nav__submenu:not([hidden]) [part=\"link\"]`,\n );\n if (!subItems) return;\n const arr = Array.from(subItems);\n const focused = (e.currentTarget ?? e.target) as HTMLElement;\n const currentIdx = arr.indexOf(focused);\n\n switch (e.key) {\n case 'ArrowDown': {\n e.preventDefault();\n const next = arr[currentIdx + 1] ?? arr[0];\n next?.focus();\n break;\n }\n case 'ArrowUp': {\n e.preventDefault();\n const prev = arr[currentIdx - 1] ?? arr[arr.length - 1];\n prev?.focus();\n break;\n }\n case 'Escape': {\n e.preventDefault();\n this._expandedIndex = null;\n const parentLinks = this.shadowRoot?.querySelectorAll<HTMLElement>(\n '[part=\"list\"] > [part=\"item\"] > [part=\"link\"]',\n );\n parentLinks?.[parentIndex]?.focus();\n break;\n }\n }\n }\n\n /** @internal */\n private _handleOutsideClick(e: MouseEvent): void {\n const path = e.composedPath();\n if (!path.includes(this)) {\n this._expandedIndex = null;\n }\n }\n\n /**\n * hx-nav-008: Close expanded submenu when focus moves outside the component.\n * @internal\n */\n private _handleFocusout(e: FocusEvent): void {\n const relatedTarget = e.relatedTarget as Node | null;\n if (relatedTarget && this.contains(relatedTarget)) return;\n if (relatedTarget && this.shadowRoot?.contains(relatedTarget)) return;\n this._expandedIndex = null;\n }\n\n // ─── Lifecycle ───\n\n override connectedCallback(): void {\n super.connectedCallback();\n if (typeof document !== 'undefined') {\n document.addEventListener('click', this._boundOutsideClick);\n }\n this.addEventListener('focusout', this._boundFocusout);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n document.removeEventListener('click', this._boundOutsideClick);\n this.removeEventListener('focusout', this._boundFocusout);\n }\n\n // ─── Render Helpers ───\n\n /** @internal */\n private _renderHamburgerIcon() {\n return html`<svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n aria-hidden=\"true\"\n >\n ${this._mobileOpen\n ? svg`<line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line>\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line>`\n : svg`<line x1=\"3\" y1=\"12\" x2=\"21\" y2=\"12\"></line>\n <line x1=\"3\" y1=\"6\" x2=\"21\" y2=\"6\"></line>\n <line x1=\"3\" y1=\"18\" x2=\"21\" y2=\"18\"></line>`}\n </svg>`;\n }\n\n /** @internal */\n private _renderChevronIcon() {\n return html`<svg\n class=\"nav__chevron\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M4.5 6L8 9.5 11.5 6\"\n stroke=\"currentColor\"\n stroke-width=\"1.5\"\n fill=\"none\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>`;\n }\n\n /** @internal */\n private _renderSubMenu(children: NavItem[], parentIndex: number, parentLabel: string) {\n const isExpanded = this._expandedIndex === parentIndex;\n return html`\n <ul class=\"nav__submenu\" aria-label=\"${parentLabel} submenu\" ?hidden=${!isExpanded}>\n ${children.map(\n (child) => html`\n <li class=\"nav__submenu-item\">\n <a\n part=\"link\"\n href=${this._sanitizeHref(child.href)}\n class=${classMap({\n nav__link: true,\n 'nav__link--active': !!child.current,\n })}\n aria-current=${child.current ? 'page' : nothing}\n @click=${(e: Event) => this._handleSubItemClick(child, e)}\n @keydown=${(e: KeyboardEvent) => this._handleSubKeydown(e, parentIndex)}\n >\n ${child.label}\n </a>\n </li>\n `,\n )}\n </ul>\n `;\n }\n\n /** @internal */\n private _renderItem(item: NavItem, index: number) {\n const hasChildren = !!item.children?.length;\n const isExpanded = this._expandedIndex === index;\n const hasCurrentChild = hasChildren && !!item.children?.some((child) => child.current);\n\n const linkClasses = {\n nav__link: true,\n 'nav__link--active': !!item.current || hasCurrentChild,\n 'nav__link--has-submenu': hasChildren,\n 'nav__link--expanded': isExpanded,\n };\n\n const content = hasChildren\n ? html`\n <button\n part=\"link\"\n class=${classMap(linkClasses)}\n aria-expanded=${isExpanded ? 'true' : 'false'}\n aria-current=${hasCurrentChild ? 'true' : nothing}\n @click=${(e: Event) => this._handleItemClick(item, index, e)}\n @keydown=${(e: KeyboardEvent) => this._handleKeydown(e, index, item)}\n >\n ${item.label} ${this._renderChevronIcon()}\n </button>\n ${this._renderSubMenu(item.children ?? [], index, item.label)}\n `\n : html`\n <a\n part=\"link\"\n href=${this._sanitizeHref(item.href)}\n class=${classMap(linkClasses)}\n aria-current=${item.current ? 'page' : nothing}\n @click=${(e: Event) => this._handleItemClick(item, index, e)}\n @keydown=${(e: KeyboardEvent) => this._handleKeydown(e, index, item)}\n >\n ${item.label}\n </a>\n `;\n\n return html` <li part=\"item\" class=\"nav__item\">${content}</li> `;\n }\n\n // ─── Render ───\n\n override render() {\n const listClasses = {\n nav__list: true,\n 'nav__list--open': this._mobileOpen,\n };\n\n return html`\n <nav part=\"nav\" aria-label=${this.label}>\n <button\n part=\"toggle\"\n class=\"nav__toggle\"\n aria-expanded=${this._mobileOpen ? 'true' : 'false'}\n aria-controls=\"nav-list\"\n aria-label=${this._mobileOpen ? this.labelCloseMenu : this.labelOpenMenu}\n @click=${this._handleToggle}\n >\n ${this._renderHamburgerIcon()}\n </button>\n\n <ul part=\"list\" id=\"nav-list\" class=${classMap(listClasses)} role=\"list\">\n ${repeat(\n this.items,\n (_item, i) => i,\n (item, i) => this._renderItem(item, i),\n )}\n </ul>\n </nav>\n `;\n }\n}\n\n/** Canonical type alias for the hx-nav component. */\nexport type HxNav = HelixNav;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-nav': HelixNav;\n }\n}\n"],"names":["helixNavStyles","css","HelixNav","HelixElement","href","url","item","index","e","_a","items","itemsArr","current","_b","firstSub","next","prev","_c","_d","_e","wasExpanded","parentIndex","subItems","arr","focused","currentIdx","parentLinks","relatedTarget","html","svg","children","parentLabel","isExpanded","child","classMap","nothing","hasChildren","hasCurrentChild","linkClasses","content","listClasses","repeat","_item","i","__decorateClass","property","value","parsed","state","customElement"],"mappings":";;;;;AAEO,MAAMA,IAAiBC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;ACsDvB,IAAMC,IAAN,cAAuBC,EAAa;AAAA,EAApC,cAAA;AAAA,UAAA,GAAA,SAAA,GAuBL,KAAA,QAAmB,CAAA,GAOnB,KAAA,cAA8B,cAO9B,KAAA,QAAQ,mBAIR,KAAA,gBAAgB,wBAIhB,KAAA,iBAAiB,yBAQR,KAAQ,cAAc,IAKtB,KAAQ,iBAAgC,MAQjD,KAAQ,qBAA8C,KAAK,oBAAoB,KAAK,IAAI,GAMxF,KAAQ,iBAA0C,KAAK,gBAAgB,KAAK,IAAI;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOxE,cAAcC,GAAkC;AACtD,QAAI,CAACA,KAAQA,MAAS,IAAK,QAAO;AAUlC,QAPEA,EAAK,WAAW,GAAG,KACnBA,EAAK,WAAW,IAAI,KACpBA,EAAK,WAAW,KAAK,KACrBA,EAAK,WAAW,GAAG,KAIjB,OAAO,SAAW,IAAa,QAAOA;AAC1C,QAAI;AACF,YAAMC,IAAM,IAAI,IAAID,GAAM,OAAO,SAAS,IAAI;AAC9C,UAAIC,EAAI,aAAa,WAAWA,EAAI,aAAa;AAC/C,eAAOD;AAAA,IAEX,QAAQ;AAAA,IAER;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA,EAKQ,gBAAsB;AAC5B,SAAK,cAAc,CAAC,KAAK,aACpB,KAAK,gBACR,KAAK,iBAAiB;AAAA,EAE1B;AAAA;AAAA,EAGQ,iBAAiBE,GAAeC,GAAeC,GAAgB;;AACrE,IAAAA,EAAE,eAAA,IACEC,IAAAH,EAAK,aAAL,QAAAG,EAAe,SACjB,KAAK,iBAAiB,KAAK,mBAAmBF,IAAQ,OAAOA,KAE7D,KAAK,cAAc,IACnB,KAAK,iBAAiB,MACtB,KAAK;AAAA,MACH,IAAI,YAA+B,iBAAiB;AAAA,QAClD,SAAS;AAAA,QACT,UAAU;AAAA,QACV,QAAQ,EAAE,MAAAD,EAAA;AAAA,MAAK,CAChB;AAAA,IAAA;AAAA,EAGP;AAAA;AAAA,EAGQ,oBAAoBA,GAAeE,GAAgB;AACzD,IAAAA,EAAE,eAAA,GACF,KAAK,cAAc,IACnB,KAAK,iBAAiB,MACtB,KAAK;AAAA,MACH,IAAI,YAA+B,iBAAiB;AAAA,QAClD,SAAS;AAAA,QACT,UAAU;AAAA,QACV,QAAQ,EAAE,MAAAF,EAAA;AAAA,MAAK,CAChB;AAAA,IAAA;AAAA,EAEL;AAAA;AAAA,EAGQ,eAAe,GAAkBC,GAAeD,GAAqB;;AAC3E,UAAMI,KAAQD,IAAA,KAAK,eAAL,gBAAAA,EAAiB;AAAA,MAC7B;AAAA;AAEF,QAAI,CAACC,EAAO;AACZ,UAAMC,IAAW,MAAM,KAAKD,CAAK,GAC3BE,IAAUD,EAASJ,CAAK;AAE9B,YAAQ,EAAE,KAAA;AAAA,MACR,KAAK;AAAA,MACL,KAAK,aAAa;AAEhB,YADA,EAAE,eAAA,IACEM,IAAAP,EAAK,aAAL,QAAAO,EAAe,UAAU,EAAE,QAAQ,eAAe,KAAK,gBAAgB;AAEzE,eAAK,iBAAiBN,GACjB,KAAK,eAAe,KAAK,MAAM;;AAClC,kBAAMO,KAAWL,IAAA,KAAK,eAAL,gBAAAA,EAAiB;AAAA,cAChC;AAAA;AAEF,YAAAK,KAAA,QAAAA,EAAU;AAAA,UACZ,CAAC;AAAA,aACI;AACL,gBAAMC,IAAOJ,EAASJ,IAAQ,CAAC,KAAKI,EAAS,CAAC;AAC9C,UAAAI,KAAA,QAAAA,EAAM;AAAA,QACR;AACA;AAAA,MACF;AAAA,MACA,KAAK;AAAA,MACL,KAAK,WAAW;AACd,UAAE,eAAA;AACF,cAAMC,IAAOL,EAASJ,IAAQ,CAAC,KAAKI,EAASA,EAAS,SAAS,CAAC;AAChE,QAAAK,KAAA,QAAAA,EAAM;AACN;AAAA,MACF;AAAA,MACA,KAAK,QAAQ;AACX,UAAE,eAAA,IACFC,IAAAN,EAAS,CAAC,MAAV,QAAAM,EAAa;AACb;AAAA,MACF;AAAA,MACA,KAAK,OAAO;AACV,UAAE,eAAA,IACFC,IAAAP,EAASA,EAAS,SAAS,CAAC,MAA5B,QAAAO,EAA+B;AAC/B;AAAA,MACF;AAAA,MACA,KAAK,UAAU;AACb,aAAK,iBAAiB,MACtBN,KAAA,QAAAA,EAAS;AACT;AAAA,MACF;AAAA,MACA,KAAK;AAAA,MACL,KAAK,KAAK;AACR,aAAIO,IAAAb,EAAK,aAAL,QAAAa,EAAe,QAAQ;AACzB,YAAE,eAAA;AACF,gBAAMC,IAAc,KAAK,mBAAmBb;AAC5C,eAAK,iBAAiBa,IAAc,OAAOb,GACtCa,KACE,KAAK,eAAe,KAAK,MAAM;;AAClC,kBAAMN,KAAWL,IAAA,KAAK,eAAL,gBAAAA,EAAiB;AAAA,cAChC;AAAA;AAEF,YAAAK,KAAA,QAAAA,EAAU;AAAA,UACZ,CAAC;AAAA,QAEL;AACA;AAAA,MACF;AAAA,IAAA;AAAA,EAEJ;AAAA;AAAA,EAGQ,kBAAkB,GAAkBO,GAA2B;;AACrE,UAAMC,KAAWb,IAAA,KAAK,eAAL,gBAAAA,EAAiB;AAAA,MAChC;AAAA;AAEF,QAAI,CAACa,EAAU;AACf,UAAMC,IAAM,MAAM,KAAKD,CAAQ,GACzBE,IAAW,EAAE,iBAAiB,EAAE,QAChCC,IAAaF,EAAI,QAAQC,CAAO;AAEtC,YAAQ,EAAE,KAAA;AAAA,MACR,KAAK,aAAa;AAChB,UAAE,eAAA;AACF,cAAMT,IAAOQ,EAAIE,IAAa,CAAC,KAAKF,EAAI,CAAC;AACzC,QAAAR,KAAA,QAAAA,EAAM;AACN;AAAA,MACF;AAAA,MACA,KAAK,WAAW;AACd,UAAE,eAAA;AACF,cAAMC,IAAOO,EAAIE,IAAa,CAAC,KAAKF,EAAIA,EAAI,SAAS,CAAC;AACtD,QAAAP,KAAA,QAAAA,EAAM;AACN;AAAA,MACF;AAAA,MACA,KAAK,UAAU;AACb,UAAE,eAAA,GACF,KAAK,iBAAiB;AACtB,cAAMU,KAAcb,IAAA,KAAK,eAAL,gBAAAA,EAAiB;AAAA,UACnC;AAAA;AAEF,SAAAI,IAAAS,KAAA,gBAAAA,EAAcL,OAAd,QAAAJ,EAA4B;AAC5B;AAAA,MACF;AAAA,IAAA;AAAA,EAEJ;AAAA;AAAA,EAGQ,oBAAoB,GAAqB;AAE/C,IADa,EAAE,aAAA,EACL,SAAS,IAAI,MACrB,KAAK,iBAAiB;AAAA,EAE1B;AAAA;AAAA;AAAA;AAAA;AAAA,EAMQ,gBAAgB,GAAqB;;AAC3C,UAAMU,IAAgB,EAAE;AACxB,IAAIA,KAAiB,KAAK,SAASA,CAAa,KAC5CA,OAAiBlB,IAAA,KAAK,eAAL,QAAAA,EAAiB,SAASkB,QAC/C,KAAK,iBAAiB;AAAA,EACxB;AAAA;AAAA,EAIS,oBAA0B;AACjC,UAAM,kBAAA,GACF,OAAO,WAAa,OACtB,SAAS,iBAAiB,SAAS,KAAK,kBAAkB,GAE5D,KAAK,iBAAiB,YAAY,KAAK,cAAc;AAAA,EACvD;AAAA,EAES,uBAA6B;AACpC,UAAM,qBAAA,GACN,SAAS,oBAAoB,SAAS,KAAK,kBAAkB,GAC7D,KAAK,oBAAoB,YAAY,KAAK,cAAc;AAAA,EAC1D;AAAA;AAAA;AAAA,EAKQ,uBAAuB;AAC7B,WAAOC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAUH,KAAK,cACHC;AAAA,2DAEAA;AAAA;AAAA,yDAE+C;AAAA;AAAA,EAEvD;AAAA;AAAA,EAGQ,qBAAqB;AAC3B,WAAOD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBT;AAAA;AAAA,EAGQ,eAAeE,GAAqBT,GAAqBU,GAAqB;AACpF,UAAMC,IAAa,KAAK,mBAAmBX;AAC3C,WAAOO;AAAA,6CACkCG,CAAW,qBAAqB,CAACC,CAAU;AAAA,UAC9EF,EAAS;AAAA,MACT,CAACG,MAAUL;AAAA;AAAA;AAAA;AAAA,uBAIE,KAAK,cAAcK,EAAM,IAAI,CAAC;AAAA,wBAC7BC,EAAS;AAAA,QACf,WAAW;AAAA,QACX,qBAAqB,CAAC,CAACD,EAAM;AAAA,MAAA,CAC9B,CAAC;AAAA,+BACaA,EAAM,UAAU,SAASE,CAAO;AAAA,yBACtC,CAAC3B,MAAa,KAAK,oBAAoByB,GAAOzB,CAAC,CAAC;AAAA,2BAC9C,CAACA,MAAqB,KAAK,kBAAkBA,GAAGa,CAAW,CAAC;AAAA;AAAA,kBAErEY,EAAM,KAAK;AAAA;AAAA;AAAA;AAAA,IAAA,CAIpB;AAAA;AAAA;AAAA,EAGP;AAAA;AAAA,EAGQ,YAAY3B,GAAeC,GAAe;;AAChD,UAAM6B,IAAc,CAAC,GAAC3B,IAAAH,EAAK,aAAL,QAAAG,EAAe,SAC/BuB,IAAa,KAAK,mBAAmBzB,GACrC8B,IAAkBD,KAAe,CAAC,GAACvB,IAAAP,EAAK,aAAL,QAAAO,EAAe,KAAK,CAACoB,MAAUA,EAAM,WAExEK,IAAc;AAAA,MAClB,WAAW;AAAA,MACX,qBAAqB,CAAC,CAAChC,EAAK,WAAW+B;AAAA,MACvC,0BAA0BD;AAAA,MAC1B,uBAAuBJ;AAAA,IAAA,GAGnBO,IAAUH,IACZR;AAAA;AAAA;AAAA,oBAGYM,EAASI,CAAW,CAAC;AAAA,4BACbN,IAAa,SAAS,OAAO;AAAA,2BAC9BK,IAAkB,SAASF,CAAO;AAAA,qBACxC,CAAC3B,MAAa,KAAK,iBAAiBF,GAAMC,GAAOC,CAAC,CAAC;AAAA,uBACjD,CAACA,MAAqB,KAAK,eAAeA,GAAGD,GAAOD,CAAI,CAAC;AAAA;AAAA,cAElEA,EAAK,KAAK,IAAI,KAAK,oBAAoB;AAAA;AAAA,YAEzC,KAAK,eAAeA,EAAK,YAAY,CAAA,GAAIC,GAAOD,EAAK,KAAK,CAAC;AAAA,YAE/DsB;AAAA;AAAA;AAAA,mBAGW,KAAK,cAActB,EAAK,IAAI,CAAC;AAAA,oBAC5B4B,EAASI,CAAW,CAAC;AAAA,2BACdhC,EAAK,UAAU,SAAS6B,CAAO;AAAA,qBACrC,CAAC3B,MAAa,KAAK,iBAAiBF,GAAMC,GAAOC,CAAC,CAAC;AAAA,uBACjD,CAACA,MAAqB,KAAK,eAAeA,GAAGD,GAAOD,CAAI,CAAC;AAAA;AAAA,cAElEA,EAAK,KAAK;AAAA;AAAA;AAIpB,WAAOsB,uCAA0CW,CAAO;AAAA,EAC1D;AAAA;AAAA,EAIS,SAAS;AAChB,UAAMC,IAAc;AAAA,MAClB,WAAW;AAAA,MACX,mBAAmB,KAAK;AAAA,IAAA;AAG1B,WAAOZ;AAAA,mCACwB,KAAK,KAAK;AAAA;AAAA;AAAA;AAAA,0BAInB,KAAK,cAAc,SAAS,OAAO;AAAA;AAAA,uBAEtC,KAAK,cAAc,KAAK,iBAAiB,KAAK,aAAa;AAAA,mBAC/D,KAAK,aAAa;AAAA;AAAA,YAEzB,KAAK,sBAAsB;AAAA;AAAA;AAAA,8CAGOM,EAASM,CAAW,CAAC;AAAA,YACvDC;AAAA,MACA,KAAK;AAAA,MACL,CAACC,GAAOC,MAAMA;AAAA,MACd,CAACrC,GAAMqC,MAAM,KAAK,YAAYrC,GAAMqC,CAAC;AAAA,IAAA,CACtC;AAAA;AAAA;AAAA;AAAA,EAIT;AACF;AA9aazC,EACK,SAAS,CAACF,CAAc;AAsBxC4C,EAAA;AAAA,EAdCC,EAAS;AAAA,IACR,MAAM;AAAA,IACN,WAAW;AAAA,MACT,cAAcC,GAAiC;AAC7C,YAAI,CAACA,EAAO,QAAO,CAAA;AACnB,YAAI;AACF,gBAAMC,IAAkB,KAAK,MAAMD,CAAK;AACxC,iBAAO,MAAM,QAAQC,CAAM,IAAKA,IAAuB,CAAA;AAAA,QACzD,QAAQ;AACN,iBAAO,CAAA;AAAA,QACT;AAAA,MACF;AAAA,IAAA;AAAA,EACF,CACD;AAAA,GAtBU7C,EAuBX,WAAA,SAAA,CAAA;AAOA0C,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GA7B9B3C,EA8BX,WAAA,eAAA,CAAA;AAOA0C,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GApCf3C,EAqCX,WAAA,SAAA,CAAA;AAIA0C,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,QAAQ,WAAW,mBAAmB;AAAA,GAxC7C3C,EAyCX,WAAA,iBAAA,CAAA;AAIA0C,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,QAAQ,WAAW,oBAAoB;AAAA,GA5C9C3C,EA6CX,WAAA,kBAAA,CAAA;AAQiB0C,EAAA;AAAA,EAAhBI,EAAA;AAAM,GArDI9C,EAqDM,WAAA,eAAA,CAAA;AAKA0C,EAAA;AAAA,EAAhBI,EAAA;AAAM,GA1DI9C,EA0DM,WAAA,kBAAA,CAAA;AA1DNA,IAAN0C,EAAA;AAAA,EADNK,EAAc,QAAQ;AAAA,GACV/C,CAAA;"}
@@ -1,7 +1,8 @@
1
- import { css as A, LitElement as $, html as c, nothing as h } from "lit";
2
- import "./document-token-adoption-DuYNKd4k.js";
3
- import { property as p, customElement as E, state as S } from "lit/decorators.js";
4
- const I = A`
1
+ import { css as A, html as c, nothing as h } from "lit";
2
+ import { property as p, customElement as $, state as T } from "lit/decorators.js";
3
+ import { H as E } from "./helix-element-BNEYeiys.js";
4
+ import { c as I } from "./id-counter-DuX8vsui.js";
5
+ const S = A`
5
6
  :host {
6
7
  display: block;
7
8
  height: 100%;
@@ -150,13 +151,39 @@ const I = A`
150
151
  transition: none;
151
152
  }
152
153
  }
154
+
155
+ /* ─── Forced Colors (Windows High Contrast) ─── */
156
+
157
+ @media (forced-colors: active) {
158
+ .side-nav {
159
+ border-inline-end-color: CanvasText;
160
+ }
161
+
162
+ .side-nav__header {
163
+ border-bottom-color: CanvasText;
164
+ }
165
+
166
+ .side-nav__footer {
167
+ border-top-color: CanvasText;
168
+ }
169
+
170
+ .side-nav__toggle {
171
+ color: ButtonText;
172
+ border: 1px solid ButtonText;
173
+ }
174
+
175
+ .side-nav__toggle:focus-visible {
176
+ outline: 3px solid Highlight;
177
+ outline-offset: 2px;
178
+ }
179
+ }
153
180
  `;
154
- var T = Object.defineProperty, D = Object.getOwnPropertyDescriptor, g = (e, a, o, i) => {
155
- for (var t = i > 1 ? void 0 : i ? D(a, o) : a, l = e.length - 1, n; l >= 0; l--)
181
+ var D = Object.defineProperty, N = Object.getOwnPropertyDescriptor, g = (e, a, o, i) => {
182
+ for (var t = i > 1 ? void 0 : i ? N(a, o) : a, l = e.length - 1, n; l >= 0; l--)
156
183
  (n = e[l]) && (t = (i ? n(a, o, t) : n(t)) || t);
157
- return i && t && T(a, o, t), t;
184
+ return i && t && D(a, o, t), t;
158
185
  };
159
- let x = class extends $ {
186
+ let x = class extends E {
160
187
  constructor() {
161
188
  super(...arguments), this.collapsed = !1, this.label = "Main Navigation";
162
189
  }
@@ -311,7 +338,7 @@ let x = class extends $ {
311
338
  `;
312
339
  }
313
340
  };
314
- x.styles = [I];
341
+ x.styles = [S];
315
342
  g([
316
343
  p({ type: Boolean, reflect: !0 })
317
344
  ], x.prototype, "collapsed", 2);
@@ -319,9 +346,9 @@ g([
319
346
  p({ type: String })
320
347
  ], x.prototype, "label", 2);
321
348
  x = g([
322
- E("hx-side-nav")
349
+ $("hx-side-nav")
323
350
  ], x);
324
- const N = A`
351
+ const H = A`
325
352
  :host {
326
353
  display: block;
327
354
  /* The host background must be a concrete color so that axe-core can
@@ -360,7 +387,7 @@ const N = A`
360
387
  white-space: nowrap;
361
388
  overflow: hidden;
362
389
  cursor: pointer;
363
- font-family: var(--hx-font-family-sans, sans-serif);
390
+ font-family: var(--hx-nav-item-font-family, var(--hx-font-family-sans, sans-serif));
364
391
  font-size: var(--hx-font-size-sm, 0.875rem);
365
392
  font-weight: var(--hx-font-weight-medium, 500);
366
393
  line-height: var(--hx-line-height-normal, 1.5);
@@ -560,15 +587,33 @@ const N = A`
560
587
  grid-template-rows: 1fr;
561
588
  }
562
589
  }
590
+
591
+ /* ─── Forced Colors (Windows High Contrast) ─── */
592
+
593
+ @media (forced-colors: active) {
594
+ :host([active]) .nav-item__link {
595
+ border: 1px solid Highlight;
596
+ }
597
+
598
+ .nav-item__link:focus-visible {
599
+ outline: 3px solid Highlight;
600
+ outline-offset: 2px;
601
+ }
602
+
603
+ .nav-item__tooltip {
604
+ border: 1px solid CanvasText;
605
+ }
606
+ }
563
607
  `;
564
- var L = Object.defineProperty, j = Object.getOwnPropertyDescriptor, v = (e, a, o, i) => {
565
- for (var t = i > 1 ? void 0 : i ? j(a, o) : a, l = e.length - 1, n; l >= 0; l--)
608
+ var B = Object.defineProperty, L = Object.getOwnPropertyDescriptor, v = (e, a, o, i) => {
609
+ for (var t = i > 1 ? void 0 : i ? L(a, o) : a, l = e.length - 1, n; l >= 0; l--)
566
610
  (n = e[l]) && (t = (i ? n(a, o, t) : n(t)) || t);
567
- return i && t && L(a, o, t), t;
611
+ return i && t && B(a, o, t), t;
568
612
  };
569
- let d = class extends $ {
613
+ const j = I("hx-nav-item");
614
+ let d = class extends E {
570
615
  constructor() {
571
- super(), this.href = "", this.active = !1, this.expanded = !1, this.disabled = !1, this._hasChildren = !1, this._isCollapsed = !1, this._tooltipId = `nav-item-tooltip-${++d._instanceCounter}`;
616
+ super(...arguments), this._tooltipId = `${j()}-tooltip`, this.href = "", this.active = !1, this.expanded = !1, this.disabled = !1, this._hasChildren = !1, this._isCollapsed = !1;
572
617
  }
573
618
  // ─── Attribute Observer ───
574
619
  static get observedAttributes() {
@@ -664,8 +709,7 @@ let d = class extends $ {
664
709
  `;
665
710
  }
666
711
  };
667
- d.styles = [N];
668
- d._instanceCounter = 0;
712
+ d.styles = [H];
669
713
  v([
670
714
  p({ type: String })
671
715
  ], d.prototype, "href", 2);
@@ -679,16 +723,16 @@ v([
679
723
  p({ type: Boolean, reflect: !0 })
680
724
  ], d.prototype, "disabled", 2);
681
725
  v([
682
- S()
726
+ T()
683
727
  ], d.prototype, "_hasChildren", 2);
684
728
  v([
685
- S()
729
+ T()
686
730
  ], d.prototype, "_isCollapsed", 2);
687
731
  d = v([
688
- E("hx-nav-item")
732
+ $("hx-nav-item")
689
733
  ], d);
690
734
  export {
691
735
  d as H,
692
736
  x as a
693
737
  };
694
- //# sourceMappingURL=hx-nav-item-CJN4VDrf.js.map
738
+ //# sourceMappingURL=hx-nav-item-pqPasRUm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hx-nav-item-pqPasRUm.js","sources":["../../src/components/hx-side-nav/hx-side-nav.styles.ts","../../src/components/hx-side-nav/hx-side-nav.ts","../../src/components/hx-side-nav/hx-nav-item.styles.ts","../../src/components/hx-side-nav/hx-nav-item.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixSideNavStyles = css`\n :host {\n display: block;\n height: 100%;\n /* Mirror the nav background and text on the host so slotted light-DOM\n content (header, footer slots) inherits the correct dark surface color.\n Without this, axe-core cannot resolve the background for slotted nodes\n and evaluates their text against the page white background, producing\n false-positive color-contrast violations (WCAG 2.1 AA). */\n background-color: var(--hx-side-nav-bg, var(--hx-color-neutral-900, #0f172a));\n color: var(--hx-side-nav-color, var(--hx-color-neutral-100, #f1f5f9));\n }\n\n * {\n box-sizing: border-box;\n }\n\n /* ─── Nav Container ─── */\n\n .side-nav {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: var(--hx-side-nav-width, 16rem);\n background-color: var(--hx-side-nav-bg, var(--hx-color-neutral-900, #0f172a));\n color: var(--hx-side-nav-color, var(--hx-color-neutral-100, #f1f5f9));\n transition: width var(--hx-transition-normal, 300ms) ease;\n overflow: hidden;\n border-inline-end: var(--hx-border-width-thin, 1px) solid\n var(--hx-side-nav-border-color, var(--hx-color-neutral-700, #334155));\n }\n\n /* ─── Collapsed State ─── */\n\n :host([collapsed]) .side-nav {\n width: var(--hx-side-nav-collapsed-width, 3.5rem);\n }\n\n /* ─── Header ─── */\n\n .side-nav__header {\n display: flex;\n align-items: center;\n padding: var(--hx-side-nav-header-padding, var(--hx-space-4, 1rem));\n flex-shrink: 0;\n min-height: var(--hx-space-14, 3.5rem);\n border-bottom: var(--hx-border-width-thin, 1px) solid\n var(--hx-side-nav-border-color, var(--hx-color-neutral-700, #334155));\n overflow: hidden;\n }\n\n :host([collapsed]) .side-nav__header {\n justify-content: center;\n padding: var(--hx-space-3, 0.75rem);\n }\n\n /* ─── Body ─── */\n\n .side-nav__body {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n padding: var(--hx-space-2, 0.5rem) 0;\n }\n\n /* ─── Footer ─── */\n\n .side-nav__footer {\n display: flex;\n align-items: center;\n padding: var(--hx-side-nav-footer-padding, var(--hx-space-4, 1rem));\n flex-shrink: 0;\n min-height: var(--hx-space-14, 3.5rem);\n border-top: var(--hx-border-width-thin, 1px) solid\n var(--hx-side-nav-border-color, var(--hx-color-neutral-700, #334155));\n overflow: hidden;\n }\n\n :host([collapsed]) .side-nav__footer {\n justify-content: center;\n padding: var(--hx-space-3, 0.75rem);\n }\n\n /* ─── Toggle Button ─── */\n\n .side-nav__toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--hx-space-8, 2rem);\n height: var(--hx-space-8, 2rem);\n margin-inline-start: auto;\n flex-shrink: 0;\n padding: 0;\n border: none;\n border-radius: var(--hx-border-radius-sm, 0.25rem);\n background: transparent;\n color: var(--hx-side-nav-toggle-color, var(--hx-color-neutral-400, #94a3b8));\n cursor: pointer;\n transition:\n background-color var(--hx-transition-fast, 150ms) ease,\n color var(--hx-transition-fast, 150ms) ease;\n }\n\n .side-nav__toggle:hover {\n background-color: var(\n --hx-overlay-white-10,\n rgba(255, 255, 255, 0.1)\n ); /* fallback for browsers without color-mix() */\n color: var(--hx-color-neutral-100, #f1f5f9);\n }\n\n @supports (color: color-mix(in srgb, red 50%, blue)) {\n .side-nav__toggle:hover {\n background-color: color-mix(in srgb, currentColor 15%, transparent);\n }\n }\n\n .side-nav__toggle:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid\n var(--hx-focus-ring-color, var(--hx-color-primary-400, #60a5fa));\n outline-offset: var(--hx-focus-ring-offset, 2px);\n }\n\n .side-nav__toggle svg {\n width: var(--hx-space-5, 1.25rem);\n height: var(--hx-space-5, 1.25rem);\n fill: currentColor;\n flex-shrink: 0;\n transition: transform var(--hx-transition-normal, 300ms) ease;\n }\n\n :host([collapsed]) .side-nav__toggle svg {\n transform: rotate(180deg);\n }\n\n @media (prefers-reduced-motion: reduce) {\n .side-nav {\n transition: none;\n }\n\n .side-nav__toggle {\n transition: none;\n }\n\n .side-nav__toggle svg {\n transition: none;\n }\n }\n\n /* ─── Forced Colors (Windows High Contrast) ─── */\n\n @media (forced-colors: active) {\n .side-nav {\n border-inline-end-color: CanvasText;\n }\n\n .side-nav__header {\n border-bottom-color: CanvasText;\n }\n\n .side-nav__footer {\n border-top-color: CanvasText;\n }\n\n .side-nav__toggle {\n color: ButtonText;\n border: 1px solid ButtonText;\n }\n\n .side-nav__toggle:focus-visible {\n outline: 3px solid Highlight;\n outline-offset: 2px;\n }\n }\n`;\n","import { html, type PropertyValues } from 'lit';\nimport '../../utilities/document-token-adoption.js';\nimport { customElement, property } from 'lit/decorators.js';\nimport { HelixElement } from '../../base/index.js';\nimport { helixSideNavStyles } from './hx-side-nav.styles.js';\n\n/**\n * A collapsible left-side navigation panel with nested menu item support.\n * Designed for clinical portals, admin dashboards, and department navigation.\n *\n * @summary Collapsible side navigation panel for enterprise healthcare applications.\n *\n * @tag hx-side-nav\n *\n * @slot - Default slot for hx-nav-item children.\n * @slot header - Logo or branding content.\n * @slot footer - User profile or settings content.\n *\n * @fires {CustomEvent<{ collapsed: boolean }>} hx-collapse - Dispatched when the nav collapses to icon-only mode.\n * @fires {CustomEvent<{ collapsed: boolean }>} hx-expand - Dispatched when the nav expands to full width.\n *\n * @csspart nav - The outer nav element.\n * @csspart header - The header section.\n * @csspart body - The scrollable body section.\n * @csspart footer - The footer section.\n * @csspart toggle - The collapse/expand toggle button.\n *\n * @cssprop [--hx-side-nav-width=16rem] - Full expanded width.\n * @cssprop [--hx-side-nav-collapsed-width=3.5rem] - Collapsed icon-only width.\n * @cssprop [--hx-side-nav-bg=var(--hx-color-neutral-900)] - Background color.\n * @cssprop [--hx-side-nav-color=var(--hx-color-neutral-100)] - Text color.\n * @cssprop [--hx-side-nav-border-color=var(--hx-color-neutral-700)] - Border color.\n * @cssprop [--hx-side-nav-header-padding=var(--hx-space-4)] - Header padding.\n * @cssprop [--hx-side-nav-footer-padding=var(--hx-space-4)] - Footer padding.\n * @cssprop [--hx-side-nav-toggle-color=var(--hx-color-neutral-400)] - Toggle button icon color.\n */\n@customElement('hx-side-nav')\nexport class HelixSideNav extends HelixElement {\n static override styles = [helixSideNavStyles];\n\n // ─── Properties ───\n\n /**\n * When true, the nav collapses to show icons only.\n * @attr collapsed\n */\n @property({ type: Boolean, reflect: true })\n collapsed = false;\n\n /**\n * The accessible label for the nav landmark.\n * @attr label\n */\n @property({ type: String })\n label = 'Main Navigation';\n\n // ─── Lifecycle ───\n\n override updated(changedProperties: PropertyValues<this>): void {\n super.updated(changedProperties);\n if (changedProperties.has('collapsed')) {\n this._propagateCollapsedToChildren();\n }\n }\n\n // ─── Collapsed State Propagation ───\n\n /**\n * Propagates the collapsed state to all slotted hx-nav-item children by\n * setting or removing the `data-collapsed` attribute. This allows child\n * items to respond to collapsed mode via their CSS selectors.\n */\n /** @internal */\n private _propagateCollapsedToChildren(): void {\n const slot = this.shadowRoot?.querySelector<HTMLSlotElement>('slot:not([name])');\n if (!slot) return;\n\n const navItems = slot\n .assignedElements({ flatten: true })\n .filter((el) => el.tagName.toLowerCase() === 'hx-nav-item');\n\n for (const item of navItems) {\n if (!(item instanceof HTMLElement)) continue;\n if (this.collapsed) {\n item.setAttribute('data-collapsed', '');\n } else {\n item.removeAttribute('data-collapsed');\n }\n }\n }\n\n /**\n * Handles the default slot's slotchange event so that if items are added\n * after initial render, they immediately receive the correct collapsed state.\n */\n /** @internal */\n private _onDefaultSlotChange(): void {\n this._propagateCollapsedToChildren();\n }\n\n // ─── Keyboard Navigation ───\n\n /**\n * Implements roving tabindex-style ArrowUp/ArrowDown keyboard navigation\n * among direct hx-nav-item children in the body slot. Disabled items are\n * skipped. Focus is applied to the interactive element inside the shadow DOM\n * of each item (anchor or button with part=\"link\").\n */\n /** @internal */\n private _handleKeydown(e: KeyboardEvent): void {\n const validKeys = ['ArrowDown', 'ArrowUp', 'ArrowRight', 'ArrowLeft', 'Home', 'End'];\n if (!validKeys.includes(e.key)) return;\n\n const slot = this.shadowRoot?.querySelector<HTMLSlotElement>('slot:not([name])');\n if (!slot) return;\n\n const topLevelItems = slot\n .assignedElements({ flatten: true })\n .filter(\n (el): el is HTMLElement =>\n el.tagName.toLowerCase() === 'hx-nav-item' && !el.hasAttribute('disabled'),\n );\n\n if (topLevelItems.length === 0) return;\n\n // Build a flattened list of navigable items: direct children plus visible\n // child items from expanded parent items (per ARIA APG tree pattern).\n const navItems: HTMLElement[] = [];\n for (const item of topLevelItems) {\n navItems.push(item);\n // If this item is expanded, include its non-disabled children\n if (item.hasAttribute('expanded')) {\n const childrenSlot =\n item.shadowRoot?.querySelector<HTMLSlotElement>('slot[name=\"children\"]');\n if (childrenSlot) {\n const childItems = childrenSlot\n .assignedElements({ flatten: true })\n .filter(\n (el): el is HTMLElement =>\n el.tagName.toLowerCase() === 'hx-nav-item' && !el.hasAttribute('disabled'),\n );\n navItems.push(...childItems);\n }\n }\n }\n\n if (navItems.length === 0) return;\n\n // Find which item currently contains focus\n const activeEl = document.activeElement;\n let currentIndex = -1;\n for (let i = 0; i < navItems.length; i++) {\n const item = navItems[i];\n if (!item) continue;\n if (\n item === activeEl ||\n item.contains(activeEl) ||\n item.shadowRoot?.contains(activeEl) === true\n ) {\n currentIndex = i;\n break;\n }\n }\n\n // Handle ArrowRight/ArrowLeft for expand/collapse (ARIA APG tree pattern)\n if (e.key === 'ArrowRight' || e.key === 'ArrowLeft') {\n e.preventDefault();\n const currentItem = currentIndex >= 0 ? navItems[currentIndex] : null;\n if (!currentItem) return;\n\n if (e.key === 'ArrowRight') {\n // If the item has children and is collapsed, expand it\n if (\n currentItem.hasAttribute('expanded') === false &&\n currentItem.querySelector('[slot=\"children\"]')\n ) {\n currentItem.setAttribute('expanded', '');\n (currentItem as HTMLElement & { expanded?: boolean }).expanded = true;\n } else if (currentItem.hasAttribute('expanded')) {\n // Already expanded: move focus to first child item\n const childrenSlot =\n currentItem.shadowRoot?.querySelector<HTMLSlotElement>('slot[name=\"children\"]');\n if (childrenSlot) {\n const firstChild = childrenSlot\n .assignedElements({ flatten: true })\n .find(\n (el): el is HTMLElement =>\n el.tagName.toLowerCase() === 'hx-nav-item' && !el.hasAttribute('disabled'),\n );\n if (firstChild) {\n firstChild.focus();\n return;\n }\n }\n }\n } else {\n // ArrowLeft: if expanded, collapse; if collapsed or non-expandable, find parent\n if (currentItem.hasAttribute('expanded')) {\n currentItem.removeAttribute('expanded');\n (currentItem as HTMLElement & { expanded?: boolean }).expanded = false;\n } else {\n // Move focus to parent item if this item is a child in another item's slot\n const parentNavItem =\n currentItem.closest<HTMLElement>('hx-nav-item:not(:scope)') ??\n currentItem.parentElement?.closest<HTMLElement>('hx-nav-item') ??\n null;\n if (parentNavItem && !parentNavItem.hasAttribute('disabled')) {\n parentNavItem.focus();\n }\n }\n }\n return;\n }\n\n e.preventDefault();\n\n let nextIndex: number;\n if (e.key === 'ArrowDown') {\n nextIndex = currentIndex < navItems.length - 1 ? currentIndex + 1 : 0;\n } else if (e.key === 'ArrowUp') {\n nextIndex = currentIndex > 0 ? currentIndex - 1 : navItems.length - 1;\n } else if (e.key === 'Home') {\n nextIndex = 0;\n } else {\n nextIndex = navItems.length - 1;\n }\n\n const targetItem = navItems[nextIndex];\n if (!targetItem) return;\n // WCAG 2.1.1: call the public focus() method on the nav item rather than\n // piercing its Shadow DOM directly. hx-nav-item.focus() delegates to the\n // internal [part=\"link\"] element, preserving shadow encapsulation.\n targetItem.focus();\n }\n\n // ─── Event Handling ───\n\n /** @internal */\n private _handleToggle(): void {\n this.collapsed = !this.collapsed;\n\n if (this.collapsed) {\n /**\n * Dispatched when the nav collapses to icon-only mode.\n * @event hx-collapse\n */\n this.dispatchEvent(\n new CustomEvent<{ collapsed: boolean }>('hx-collapse', {\n bubbles: true,\n composed: true,\n detail: { collapsed: true },\n }),\n );\n } else {\n /**\n * Dispatched when the nav expands to full width.\n * @event hx-expand\n */\n this.dispatchEvent(\n new CustomEvent<{ collapsed: boolean }>('hx-expand', {\n bubbles: true,\n composed: true,\n detail: { collapsed: false },\n }),\n );\n }\n }\n\n // ─── Render ───\n\n /** @internal */\n private _renderToggleIcon() {\n return html`<svg viewBox=\"0 0 20 20\" aria-hidden=\"true\">\n <path\n d=\"M12.79 5.23a.75.75 0 01-.02 1.06L8.832 10l3.938 3.71a.75.75 0 11-1.04 1.08l-4.5-4.25a.75.75 0 010-1.08l4.5-4.25a.75.75 0 011.06.02z\"\n />\n </svg>`;\n }\n\n override render() {\n return html`\n <nav part=\"nav\" class=\"side-nav\" aria-label=${this.label}>\n <div part=\"header\" class=\"side-nav__header\">\n <slot name=\"header\"></slot>\n <button\n part=\"toggle\"\n class=\"side-nav__toggle\"\n aria-label=${this.collapsed ? 'Expand navigation' : 'Collapse navigation'}\n aria-expanded=${!this.collapsed}\n @click=${this._handleToggle}\n >\n ${this._renderToggleIcon()}\n </button>\n </div>\n\n <div part=\"body\" class=\"side-nav__body\" id=\"side-nav-body\" @keydown=${this._handleKeydown}>\n <slot @slotchange=${this._onDefaultSlotChange}></slot>\n </div>\n\n <div part=\"footer\" class=\"side-nav__footer\">\n <slot name=\"footer\"></slot>\n </div>\n </nav>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-side-nav': HelixSideNav;\n }\n}\n\nexport type { HelixSideNav as HxSideNav };\n","import { css } from 'lit';\n\nexport const helixNavItemStyles = css`\n :host {\n display: block;\n /* The host background must be a concrete color so that axe-core can\n resolve text contrast ratios for shadow-DOM content correctly.\n WCAG 2.1 AA: neutral-300 (#cbd5e1) on neutral-900 (#0f172a) = 12.02:1. */\n background-color: var(--hx-nav-item-host-bg, var(--hx-color-neutral-900, #0f172a));\n color: var(--hx-nav-item-color, var(--hx-color-neutral-300, #cbd5e1));\n }\n\n * {\n box-sizing: border-box;\n }\n\n /* ─── Nav Item ─── */\n\n .nav-item {\n display: flex;\n flex-direction: column;\n }\n\n /* ─── Link / Button ─── */\n\n .nav-item__link {\n display: flex;\n align-items: center;\n gap: var(--hx-space-3, 0.75rem);\n padding: var(--hx-nav-item-padding, var(--hx-space-2, 0.5rem) var(--hx-space-4, 1rem));\n min-height: var(--hx-space-10, 2.5rem);\n text-decoration: none;\n color: var(--hx-nav-item-color, var(--hx-color-neutral-300, #cbd5e1));\n border-radius: var(--hx-border-radius-sm, 0.25rem);\n margin: 0 var(--hx-space-2, 0.5rem);\n transition:\n background-color var(--hx-transition-fast, 150ms) ease,\n color var(--hx-transition-fast, 150ms) ease;\n white-space: nowrap;\n overflow: hidden;\n cursor: pointer;\n font-family: var(--hx-nav-item-font-family, var(--hx-font-family-sans, sans-serif));\n font-size: var(--hx-font-size-sm, 0.875rem);\n font-weight: var(--hx-font-weight-medium, 500);\n line-height: var(--hx-line-height-normal, 1.5);\n position: relative;\n border: none;\n background: transparent;\n width: calc(100% - var(--hx-space-4, 1rem));\n text-align: start;\n }\n\n /* Link variant */\n a.nav-item__link {\n display: flex;\n }\n\n .nav-item__link:hover {\n background-color: var(\n --hx-nav-item-hover-bg,\n var(--hx-overlay-white-8, rgba(255, 255, 255, 0.08))\n ); /* fallback for browsers without color-mix() */\n color: var(--hx-nav-item-hover-color, var(--hx-color-neutral-100, #f1f5f9));\n }\n\n @supports (color: color-mix(in srgb, red 50%, blue)) {\n .nav-item__link:hover {\n background-color: var(\n --hx-nav-item-hover-bg,\n color-mix(in srgb, currentColor 10%, transparent)\n );\n }\n }\n\n .nav-item__link:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid\n var(--hx-focus-ring-color, var(--hx-color-primary-400, #60a5fa));\n outline-offset: var(--hx-focus-ring-offset, 2px);\n }\n\n /* ─── Active State ─── */\n\n :host([active]) .nav-item__link {\n /* neutral-50 (#f8fafc) on primary-600 (#1d4ed8) = 6.41:1 — WCAG AA ✓ */\n background-color: var(--hx-nav-item-active-bg, var(--hx-color-primary-600, #1d4ed8));\n color: var(--hx-nav-item-active-color, var(--hx-color-neutral-50, #f8fafc));\n }\n\n :host([active]) .nav-item__link:hover {\n /* neutral-50 (#f8fafc) on primary-700 (#1e40af) = 8.34:1 — WCAG AA ✓ */\n background-color: var(--hx-nav-item-active-hover-bg, var(--hx-color-primary-700, #1e40af));\n }\n\n /* ─── Disabled State ─── */\n\n :host([disabled]) .nav-item__link {\n opacity: var(--hx-opacity-disabled, 0.5);\n pointer-events: none;\n cursor: not-allowed;\n }\n\n /* ─── Icon ─── */\n\n .nav-item__icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: var(--hx-space-5, 1.25rem);\n height: var(--hx-space-5, 1.25rem);\n }\n\n /* ─── Label ─── */\n\n .nav-item__label {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n transition: opacity var(--hx-transition-fast, 150ms) ease;\n }\n\n /* ─── Badge ─── */\n\n .nav-item__badge {\n margin-inline-start: auto;\n flex-shrink: 0;\n }\n\n /* ─── Expand Arrow ─── */\n\n .nav-item__arrow {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n margin-inline-start: auto;\n width: var(--hx-space-5, 1.25rem);\n height: var(--hx-space-5, 1.25rem);\n transition: transform var(--hx-transition-normal, 300ms) ease;\n }\n\n .nav-item__arrow svg {\n width: var(--hx-space-4, 1rem);\n height: var(--hx-space-4, 1rem);\n fill: currentColor;\n }\n\n :host([expanded]) .nav-item__arrow {\n transform: rotate(90deg);\n }\n\n /* ─── Children (sub-nav) ─── */\n\n .nav-item__children {\n display: grid;\n grid-template-rows: 0fr;\n transition: grid-template-rows var(--hx-transition-normal, 300ms ease);\n overflow: hidden;\n }\n\n :host([expanded]) .nav-item__children {\n grid-template-rows: 1fr;\n }\n\n .nav-item__children-inner {\n overflow: hidden;\n min-height: 0;\n display: flex;\n flex-direction: column;\n padding-inline-start: var(--hx-space-6, 1.5rem);\n }\n\n /* ─── Tooltip (collapsed mode) ─── */\n\n .nav-item__tooltip {\n position: absolute;\n left: calc(100% + var(--hx-space-2, 0.5rem));\n top: 50%;\n transform: translateY(-50%);\n /* neutral-100 (#f1f5f9) on neutral-800 (#1e293b) = 13.35:1 — WCAG AA ✓ */\n background-color: var(--hx-color-neutral-800, #1e293b);\n color: var(--hx-color-neutral-100, #f1f5f9);\n padding: var(--hx-space-1, 0.25rem) var(--hx-space-2, 0.5rem);\n border-radius: var(--hx-border-radius-sm, 0.25rem);\n font-size: var(--hx-font-size-xs, 0.75rem);\n white-space: nowrap;\n pointer-events: none;\n opacity: 0;\n transition: opacity var(--hx-transition-fast, 150ms) ease;\n z-index: var(--hx-z-index-tooltip, 1600);\n box-shadow: var(--hx-shadow-md, 0 2px 8px rgb(0 0 0 / 0.2));\n }\n\n :host([data-collapsed]) .nav-item__link:hover .nav-item__tooltip,\n :host([data-collapsed]) .nav-item__link:focus-visible .nav-item__tooltip {\n opacity: 1;\n }\n\n /* ─── Collapsed host state (propagated from parent) ─── */\n\n :host([data-collapsed]) .nav-item__label {\n width: 0;\n overflow: hidden;\n opacity: 0;\n }\n\n :host([data-collapsed]) .nav-item__badge {\n display: none;\n }\n\n :host([data-collapsed]) .nav-item__arrow {\n display: none;\n }\n\n :host([data-collapsed]) .nav-item__children {\n display: none !important;\n }\n\n :host([data-collapsed]) .nav-item__link {\n justify-content: center;\n margin: 0 var(--hx-space-1, 0.25rem);\n width: calc(100% - var(--hx-space-2, 0.5rem));\n padding: var(--hx-space-2, 0.5rem);\n position: relative;\n overflow: visible;\n }\n\n @media (prefers-reduced-motion: reduce) {\n .nav-item__link,\n .nav-item__label,\n .nav-item__arrow,\n .nav-item__children,\n .nav-item__tooltip {\n transition: none;\n }\n\n :host([expanded]) .nav-item__children {\n grid-template-rows: 1fr;\n }\n }\n\n /* ─── Forced Colors (Windows High Contrast) ─── */\n\n @media (forced-colors: active) {\n :host([active]) .nav-item__link {\n border: 1px solid Highlight;\n }\n\n .nav-item__link:focus-visible {\n outline: 3px solid Highlight;\n outline-offset: 2px;\n }\n\n .nav-item__tooltip {\n border: 1px solid CanvasText;\n }\n }\n`;\n","import { html, nothing } from 'lit';\nimport '../../utilities/document-token-adoption.js';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { HelixElement, createIdCounter } from '../../base/index.js';\nimport { helixNavItemStyles } from './hx-nav-item.styles.js';\n\nconst _nextNavItemId = createIdCounter('hx-nav-item');\n\n/**\n * A navigation item for use inside hx-side-nav.\n * Supports icons, badges, sub-navigation, and active/disabled states.\n *\n * @summary Navigation item for hx-side-nav with support for icons, badges, and nested children.\n *\n * @tag hx-nav-item\n *\n * @slot - Default slot for item label text.\n * @slot icon - Icon to display before the label.\n * @slot badge - Badge content (e.g., notification count).\n * @slot children - Nested hx-nav-item children for sub-navigation.\n *\n * @csspart link - The anchor or button element.\n * @csspart icon - The icon container.\n * @csspart label - The label container.\n * @csspart badge - The badge container.\n * @csspart children - The children container.\n *\n * @cssprop [--hx-nav-item-color=var(--hx-color-neutral-300)] - Item text color.\n * @cssprop [--hx-nav-item-hover-bg] - Item hover background.\n * @cssprop [--hx-nav-item-hover-color=var(--hx-color-neutral-100)] - Item hover text color.\n * @cssprop [--hx-nav-item-active-bg=var(--hx-color-primary-600)] - Active item background.\n * @cssprop [--hx-nav-item-active-color=var(--hx-color-neutral-50)] - Active item text color.\n * @cssprop [--hx-nav-item-padding] - Item padding.\n * @cssprop [--hx-nav-item-host-bg=var(--hx-color-neutral-900)] - Component host background color.\n */\n@customElement('hx-nav-item')\nexport class HelixNavItem extends HelixElement {\n static override styles = [helixNavItemStyles];\n\n /** @internal — per-instance tooltip ID */\n private _tooltipId = `${_nextNavItemId()}-tooltip`;\n\n // ─── Properties ───\n\n /**\n * The URL this nav item links to.\n * @attr href\n */\n @property({ type: String })\n href = '';\n\n /**\n * Whether this item is the current/active page.\n * @attr active\n */\n @property({ type: Boolean, reflect: true })\n active = false;\n\n /**\n * Whether the sub-navigation is expanded.\n * @attr expanded\n */\n @property({ type: Boolean, reflect: true })\n expanded = false;\n\n /**\n * Whether this nav item is disabled.\n * @attr disabled\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n // ─── State ───\n\n /** Whether the children slot has assigned nodes. Updated via slotchange. */\n /** @internal */\n @state() private _hasChildren = false;\n\n /** Whether this item is in collapsed mode. Set externally by hx-side-nav via data-collapsed attribute. */\n /** @internal */\n @state() private _isCollapsed = false;\n\n // ─── Attribute Observer ───\n\n static override get observedAttributes(): string[] {\n return [...super.observedAttributes, 'data-collapsed'];\n }\n\n override attributeChangedCallback(name: string, old: string | null, value: string | null): void {\n super.attributeChangedCallback(name, old, value);\n if (name === 'data-collapsed') {\n this._isCollapsed = value !== null;\n }\n }\n\n // ─── Public API ───\n\n /**\n * Delegates focus to the internal link or button element (part=\"link\").\n * Allows parent components to focus nav items without piercing the Shadow DOM.\n * WCAG 2.1.1: keyboard navigation must not cross shadow boundaries via\n * direct shadowRoot queries.\n */\n override focus(options?: FocusOptions): void {\n const inner = this.shadowRoot?.querySelector<HTMLElement>('[part=\"link\"]');\n if (inner) {\n inner.focus(options);\n } else {\n super.focus(options);\n }\n }\n\n // ─── Slot Change Handler ───\n\n /** @internal */\n private _onChildrenSlotChange(e: Event): void {\n const slot = e.target as HTMLSlotElement;\n this._hasChildren = slot.assignedNodes({ flatten: true }).length > 0;\n }\n\n // ─── Private Helpers ───\n\n /** @internal */\n private _getDirectText(): string {\n return Array.from(this.childNodes)\n .filter((n) => n.nodeType === Node.TEXT_NODE)\n .map((n) => n.textContent?.trim() ?? '')\n .filter(Boolean)\n .join(' ');\n }\n\n /** @internal */\n private _handleToggle(e: Event): void {\n if (this.disabled) return;\n e.preventDefault();\n this.expanded = !this.expanded;\n }\n\n /** @internal */\n private _renderExpandArrow() {\n return html`<span class=\"nav-item__arrow\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 20 20\">\n <path\n d=\"M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z\"\n />\n </svg>\n </span>`;\n }\n\n // ─── Render ───\n\n override render() {\n const label = this._getDirectText();\n\n const innerContent = html`\n <span part=\"icon\" class=\"nav-item__icon\">\n <slot name=\"icon\"></slot>\n </span>\n <span part=\"label\" class=\"nav-item__label\">\n <slot></slot>\n </span>\n <span part=\"badge\" class=\"nav-item__badge\">\n <slot name=\"badge\"></slot>\n </span>\n ${this._hasChildren ? this._renderExpandArrow() : nothing}\n ${this._isCollapsed\n ? html`<span id=${this._tooltipId} class=\"nav-item__tooltip\" role=\"tooltip\">${label}</span>`\n : nothing}\n `;\n\n // Render as anchor when href provided and no expandable children\n const linkEl =\n this.href && !this._hasChildren\n ? html`<a\n part=\"link\"\n class=\"nav-item__link\"\n href=${this.href}\n aria-current=${this.active ? 'page' : nothing}\n aria-disabled=${this.disabled ? 'true' : nothing}\n aria-describedby=${this._isCollapsed ? this._tooltipId : nothing}\n tabindex=${this.disabled ? '-1' : '0'}\n >\n ${innerContent}\n </a>`\n : html`<button\n part=\"link\"\n class=\"nav-item__link\"\n aria-disabled=${this.disabled ? 'true' : nothing}\n aria-expanded=${this._hasChildren ? String(this.expanded) : nothing}\n aria-describedby=${this._isCollapsed ? this._tooltipId : nothing}\n tabindex=${this.disabled ? '-1' : '0'}\n @click=${this._handleToggle}\n >\n ${innerContent}\n </button>`;\n\n return html`\n <div class=\"nav-item\">\n ${linkEl}\n <div part=\"children\" class=\"nav-item__children\" role=\"group\">\n <div class=\"nav-item__children-inner\">\n <slot name=\"children\" @slotchange=${this._onChildrenSlotChange}></slot>\n </div>\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-nav-item': HelixNavItem;\n }\n}\n\nexport type { HelixNavItem as HxNavItem };\n"],"names":["helixSideNavStyles","css","HelixSideNav","HelixElement","changedProperties","slot","_a","navItems","el","item","topLevelItems","childrenSlot","_b","childItems","activeEl","currentIndex","i","_c","currentItem","_d","firstChild","parentNavItem","_e","nextIndex","targetItem","html","__decorateClass","property","customElement","helixNavItemStyles","_nextNavItemId","createIdCounter","HelixNavItem","name","old","value","options","inner","n","label","innerContent","nothing","linkEl","state"],"mappings":"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"}