@helixui/library 1.1.1 → 1.1.2-next.10

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 (639) hide show
  1. package/custom-elements.json +3336 -2337
  2. package/dist/base/helix-element.d.ts +134 -0
  3. package/dist/base/helix-element.d.ts.map +1 -0
  4. package/dist/base/id-counter.d.ts +32 -0
  5. package/dist/base/id-counter.d.ts.map +1 -0
  6. package/dist/base/index.d.ts +4 -0
  7. package/dist/base/index.d.ts.map +1 -0
  8. package/dist/base/styles.d.ts +19 -0
  9. package/dist/base/styles.d.ts.map +1 -0
  10. package/dist/components/hx-accordion/hx-accordion-item.d.ts +3 -0
  11. package/dist/components/hx-accordion/hx-accordion-item.d.ts.map +1 -1
  12. package/dist/components/hx-accordion/hx-accordion.d.ts +4 -1
  13. package/dist/components/hx-accordion/hx-accordion.d.ts.map +1 -1
  14. package/dist/components/hx-accordion/index.js +1 -1
  15. package/dist/components/hx-action-bar/hx-action-bar.d.ts +1 -1
  16. package/dist/components/hx-action-bar/hx-action-bar.d.ts.map +1 -1
  17. package/dist/components/hx-action-bar/index.js +1 -1
  18. package/dist/components/hx-alert/hx-alert.d.ts +18 -10
  19. package/dist/components/hx-alert/hx-alert.d.ts.map +1 -1
  20. package/dist/components/hx-alert/hx-alert.styles.d.ts.map +1 -1
  21. package/dist/components/hx-alert/index.js +1 -1
  22. package/dist/components/hx-avatar/hx-avatar.styles.d.ts.map +1 -1
  23. package/dist/components/hx-avatar/index.js +1 -1
  24. package/dist/components/hx-badge/hx-badge.d.ts.map +1 -1
  25. package/dist/components/hx-badge/hx-badge.styles.d.ts.map +1 -1
  26. package/dist/components/hx-badge/index.js +1 -1
  27. package/dist/components/hx-banner/hx-banner.d.ts +15 -5
  28. package/dist/components/hx-banner/hx-banner.d.ts.map +1 -1
  29. package/dist/components/hx-banner/hx-banner.styles.d.ts.map +1 -1
  30. package/dist/components/hx-banner/index.js +1 -1
  31. package/dist/components/hx-breadcrumb/hx-breadcrumb-item.d.ts +1 -0
  32. package/dist/components/hx-breadcrumb/hx-breadcrumb-item.d.ts.map +1 -1
  33. package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts +42 -11
  34. package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts.map +1 -1
  35. package/dist/components/hx-breadcrumb/index.js +1 -1
  36. package/dist/components/hx-button/hx-button.d.ts +22 -13
  37. package/dist/components/hx-button/hx-button.d.ts.map +1 -1
  38. package/dist/components/hx-button/hx-button.styles.d.ts.map +1 -1
  39. package/dist/components/hx-button/index.js +1 -1
  40. package/dist/components/hx-button-group/hx-button-group.d.ts +3 -6
  41. package/dist/components/hx-button-group/hx-button-group.d.ts.map +1 -1
  42. package/dist/components/hx-button-group/index.js +1 -1
  43. package/dist/components/hx-card/hx-card.d.ts +7 -7
  44. package/dist/components/hx-card/hx-card.d.ts.map +1 -1
  45. package/dist/components/hx-card/index.js +1 -1
  46. package/dist/components/hx-carousel/hx-carousel.d.ts +2 -2
  47. package/dist/components/hx-carousel/index.js +1 -1
  48. package/dist/components/hx-checkbox/hx-checkbox.d.ts +18 -18
  49. package/dist/components/hx-checkbox/hx-checkbox.d.ts.map +1 -1
  50. package/dist/components/hx-checkbox/hx-checkbox.styles.d.ts.map +1 -1
  51. package/dist/components/hx-checkbox/index.js +1 -1
  52. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts +8 -3
  53. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts.map +1 -1
  54. package/dist/components/hx-checkbox-group/index.js +1 -1
  55. package/dist/components/hx-clinical-status/hx-clinical-status.d.ts +134 -0
  56. package/dist/components/hx-clinical-status/hx-clinical-status.d.ts.map +1 -0
  57. package/dist/components/hx-clinical-status/hx-clinical-status.styles.d.ts +2 -0
  58. package/dist/components/hx-clinical-status/hx-clinical-status.styles.d.ts.map +1 -0
  59. package/dist/components/hx-clinical-status/index.d.ts +3 -0
  60. package/dist/components/hx-clinical-status/index.d.ts.map +1 -0
  61. package/dist/components/hx-clinical-status/index.js +5 -0
  62. package/dist/components/hx-clinical-status/index.js.map +1 -0
  63. package/dist/components/hx-code-snippet/hx-code-snippet.styles.d.ts.map +1 -1
  64. package/dist/components/hx-code-snippet/index.js +1 -1
  65. package/dist/components/hx-color-picker/color-utils.d.ts +27 -0
  66. package/dist/components/hx-color-picker/color-utils.d.ts.map +1 -0
  67. package/dist/components/hx-color-picker/hx-color-picker.d.ts +16 -4
  68. package/dist/components/hx-color-picker/hx-color-picker.d.ts.map +1 -1
  69. package/dist/components/hx-color-picker/index.js +1 -1
  70. package/dist/components/hx-combobox/hx-combobox.d.ts +9 -4
  71. package/dist/components/hx-combobox/hx-combobox.d.ts.map +1 -1
  72. package/dist/components/hx-combobox/hx-combobox.styles.d.ts.map +1 -1
  73. package/dist/components/hx-combobox/index.js +1 -1
  74. package/dist/components/hx-container/index.js +1 -1
  75. package/dist/components/hx-copy-button/hx-copy-button.d.ts +6 -1
  76. package/dist/components/hx-copy-button/hx-copy-button.d.ts.map +1 -1
  77. package/dist/components/hx-copy-button/index.js +1 -1
  78. package/dist/components/hx-counter/hx-counter.d.ts +20 -3
  79. package/dist/components/hx-counter/hx-counter.d.ts.map +1 -1
  80. package/dist/components/hx-counter/hx-counter.styles.d.ts.map +1 -1
  81. package/dist/components/hx-counter/index.js +1 -1
  82. package/dist/components/hx-data-table/hx-data-table.d.ts +13 -13
  83. package/dist/components/hx-data-table/hx-data-table.d.ts.map +1 -1
  84. package/dist/components/hx-data-table/hx-data-table.styles.d.ts.map +1 -1
  85. package/dist/components/hx-data-table/index.js +1 -1
  86. package/dist/components/hx-date-picker/hx-date-picker.d.ts +70 -13
  87. package/dist/components/hx-date-picker/hx-date-picker.d.ts.map +1 -1
  88. package/dist/components/hx-date-picker/hx-date-picker.styles.d.ts.map +1 -1
  89. package/dist/components/hx-date-picker/index.js +1 -1
  90. package/dist/components/hx-dialog/hx-dialog.d.ts +4 -1
  91. package/dist/components/hx-dialog/hx-dialog.d.ts.map +1 -1
  92. package/dist/components/hx-dialog/index.js +1 -1
  93. package/dist/components/hx-divider/hx-divider.d.ts.map +1 -1
  94. package/dist/components/hx-divider/index.js +1 -1
  95. package/dist/components/hx-drawer/hx-drawer.d.ts +5 -8
  96. package/dist/components/hx-drawer/hx-drawer.d.ts.map +1 -1
  97. package/dist/components/hx-drawer/hx-drawer.styles.d.ts.map +1 -1
  98. package/dist/components/hx-drawer/index.js +1 -1
  99. package/dist/components/hx-dropdown/hx-dropdown.d.ts +14 -1
  100. package/dist/components/hx-dropdown/hx-dropdown.d.ts.map +1 -1
  101. package/dist/components/hx-dropdown/index.js +1 -1
  102. package/dist/components/hx-field/hx-field.d.ts +1 -1
  103. package/dist/components/hx-field/hx-field.d.ts.map +1 -1
  104. package/dist/components/hx-field/index.js +1 -1
  105. package/dist/components/hx-field-label/hx-field-label.styles.d.ts.map +1 -1
  106. package/dist/components/hx-field-label/index.js +1 -1
  107. package/dist/components/hx-file-upload/hx-file-upload.d.ts +8 -9
  108. package/dist/components/hx-file-upload/hx-file-upload.d.ts.map +1 -1
  109. package/dist/components/hx-file-upload/index.js +1 -1
  110. package/dist/components/hx-form/hx-form.d.ts.map +1 -1
  111. package/dist/components/hx-form/index.js +1 -1
  112. package/dist/components/hx-format-date/hx-format-date.d.ts.map +1 -1
  113. package/dist/components/hx-format-date/index.js +1 -1
  114. package/dist/components/hx-grid/hx-grid.d.ts +5 -9
  115. package/dist/components/hx-grid/hx-grid.d.ts.map +1 -1
  116. package/dist/components/hx-grid/index.js +1 -1
  117. package/dist/components/hx-icon/hx-icon.d.ts.map +1 -1
  118. package/dist/components/hx-icon/index.js +1 -1
  119. package/dist/components/hx-icon-button/hx-icon-button.d.ts +4 -3
  120. package/dist/components/hx-icon-button/hx-icon-button.d.ts.map +1 -1
  121. package/dist/components/hx-icon-button/index.js +1 -1
  122. package/dist/components/hx-image/hx-image.d.ts.map +1 -1
  123. package/dist/components/hx-image/index.js +1 -1
  124. package/dist/components/hx-link/hx-link.d.ts +1 -1
  125. package/dist/components/hx-link/hx-link.d.ts.map +1 -1
  126. package/dist/components/hx-link/hx-link.styles.d.ts.map +1 -1
  127. package/dist/components/hx-link/index.js +1 -1
  128. package/dist/components/hx-menu/hx-menu-item.d.ts +5 -0
  129. package/dist/components/hx-menu/hx-menu-item.d.ts.map +1 -1
  130. package/dist/components/hx-menu/hx-menu.d.ts +1 -0
  131. package/dist/components/hx-menu/hx-menu.d.ts.map +1 -1
  132. package/dist/components/hx-menu/hx-menu.styles.d.ts.map +1 -1
  133. package/dist/components/hx-menu/index.js +1 -1
  134. package/dist/components/hx-meter/hx-meter.d.ts +2 -2
  135. package/dist/components/hx-meter/hx-meter.d.ts.map +1 -1
  136. package/dist/components/hx-meter/index.js +1 -1
  137. package/dist/components/hx-nav/hx-nav.d.ts +10 -0
  138. package/dist/components/hx-nav/hx-nav.d.ts.map +1 -1
  139. package/dist/components/hx-nav/index.js +1 -1
  140. package/dist/components/hx-number-input/hx-number-input.d.ts +19 -7
  141. package/dist/components/hx-number-input/hx-number-input.d.ts.map +1 -1
  142. package/dist/components/hx-number-input/index.js +1 -1
  143. package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts +3 -3
  144. package/dist/components/hx-overflow-menu/hx-overflow-menu.styles.d.ts.map +1 -1
  145. package/dist/components/hx-overflow-menu/index.js +1 -1
  146. package/dist/components/hx-pagination/hx-pagination.d.ts +26 -12
  147. package/dist/components/hx-pagination/hx-pagination.d.ts.map +1 -1
  148. package/dist/components/hx-pagination/hx-pagination.styles.d.ts.map +1 -1
  149. package/dist/components/hx-pagination/index.js +1 -1
  150. package/dist/components/hx-patient-banner/hx-patient-banner.d.ts +113 -0
  151. package/dist/components/hx-patient-banner/hx-patient-banner.d.ts.map +1 -0
  152. package/dist/components/hx-patient-banner/hx-patient-banner.styles.d.ts +2 -0
  153. package/dist/components/hx-patient-banner/hx-patient-banner.styles.d.ts.map +1 -0
  154. package/dist/components/hx-patient-banner/index.d.ts +3 -0
  155. package/dist/components/hx-patient-banner/index.d.ts.map +1 -0
  156. package/dist/components/hx-patient-banner/index.js +5 -0
  157. package/dist/components/hx-patient-banner/index.js.map +1 -0
  158. package/dist/components/hx-phi-field/hx-phi-field.d.ts +97 -0
  159. package/dist/components/hx-phi-field/hx-phi-field.d.ts.map +1 -0
  160. package/dist/components/hx-phi-field/hx-phi-field.styles.d.ts +2 -0
  161. package/dist/components/hx-phi-field/hx-phi-field.styles.d.ts.map +1 -0
  162. package/dist/components/hx-phi-field/index.d.ts +3 -0
  163. package/dist/components/hx-phi-field/index.d.ts.map +1 -0
  164. package/dist/components/hx-phi-field/index.js +5 -0
  165. package/dist/components/hx-phi-field/index.js.map +1 -0
  166. package/dist/components/hx-popover/hx-popover.d.ts +25 -9
  167. package/dist/components/hx-popover/hx-popover.d.ts.map +1 -1
  168. package/dist/components/hx-popover/index.js +1 -1
  169. package/dist/components/hx-popup/hx-popup.d.ts +5 -8
  170. package/dist/components/hx-popup/hx-popup.d.ts.map +1 -1
  171. package/dist/components/hx-popup/index.js +1 -1
  172. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts +2 -0
  173. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts.map +1 -1
  174. package/dist/components/hx-progress-bar/hx-progress-bar.styles.d.ts.map +1 -1
  175. package/dist/components/hx-progress-bar/index.js +1 -1
  176. package/dist/components/hx-progress-ring/hx-progress-ring.d.ts.map +1 -1
  177. package/dist/components/hx-progress-ring/index.js +1 -1
  178. package/dist/components/hx-prose/hx-prose.d.ts +1 -0
  179. package/dist/components/hx-prose/hx-prose.d.ts.map +1 -1
  180. package/dist/components/hx-radio-group/hx-radio-group.d.ts +3 -7
  181. package/dist/components/hx-radio-group/hx-radio-group.d.ts.map +1 -1
  182. package/dist/components/hx-radio-group/hx-radio.d.ts.map +1 -1
  183. package/dist/components/hx-radio-group/hx-radio.styles.d.ts.map +1 -1
  184. package/dist/components/hx-radio-group/index.js +1 -1
  185. package/dist/components/hx-rating/hx-rating.d.ts +3 -3
  186. package/dist/components/hx-rating/hx-rating.d.ts.map +1 -1
  187. package/dist/components/hx-rating/hx-rating.styles.d.ts.map +1 -1
  188. package/dist/components/hx-rating/index.js +1 -1
  189. package/dist/components/hx-select/hx-select.d.ts +17 -11
  190. package/dist/components/hx-select/hx-select.d.ts.map +1 -1
  191. package/dist/components/hx-select/hx-select.styles.d.ts.map +1 -1
  192. package/dist/components/hx-select/index.js +1 -1
  193. package/dist/components/hx-side-nav/hx-nav-item.d.ts +12 -0
  194. package/dist/components/hx-side-nav/hx-nav-item.d.ts.map +1 -1
  195. package/dist/components/hx-side-nav/hx-nav-item.styles.d.ts.map +1 -1
  196. package/dist/components/hx-side-nav/hx-side-nav.d.ts.map +1 -1
  197. package/dist/components/hx-side-nav/hx-side-nav.styles.d.ts.map +1 -1
  198. package/dist/components/hx-side-nav/index.js +1 -1
  199. package/dist/components/hx-skeleton/hx-skeleton.d.ts +2 -2
  200. package/dist/components/hx-skeleton/hx-skeleton.d.ts.map +1 -1
  201. package/dist/components/hx-slider/hx-slider.d.ts +5 -8
  202. package/dist/components/hx-slider/hx-slider.d.ts.map +1 -1
  203. package/dist/components/hx-slider/hx-slider.styles.d.ts.map +1 -1
  204. package/dist/components/hx-slider/index.js +1 -1
  205. package/dist/components/hx-spinner/hx-spinner.d.ts +14 -1
  206. package/dist/components/hx-spinner/hx-spinner.d.ts.map +1 -1
  207. package/dist/components/hx-spinner/hx-spinner.styles.d.ts.map +1 -1
  208. package/dist/components/hx-spinner/index.js +1 -1
  209. package/dist/components/hx-split-button/hx-split-button.d.ts +10 -4
  210. package/dist/components/hx-split-button/hx-split-button.d.ts.map +1 -1
  211. package/dist/components/hx-split-button/hx-split-button.styles.d.ts.map +1 -1
  212. package/dist/components/hx-split-button/index.js +1 -1
  213. package/dist/components/hx-split-panel/hx-split-panel.d.ts +13 -9
  214. package/dist/components/hx-split-panel/hx-split-panel.d.ts.map +1 -1
  215. package/dist/components/hx-split-panel/hx-split-panel.styles.d.ts.map +1 -1
  216. package/dist/components/hx-split-panel/index.js +1 -1
  217. package/dist/components/hx-stat/hx-stat.d.ts +7 -2
  218. package/dist/components/hx-stat/hx-stat.d.ts.map +1 -1
  219. package/dist/components/hx-stat/index.js +1 -1
  220. package/dist/components/hx-status-indicator/hx-status-indicator.d.ts +19 -3
  221. package/dist/components/hx-status-indicator/hx-status-indicator.d.ts.map +1 -1
  222. package/dist/components/hx-status-indicator/hx-status-indicator.styles.d.ts.map +1 -1
  223. package/dist/components/hx-status-indicator/index.js +1 -1
  224. package/dist/components/hx-steps/hx-step.d.ts +7 -0
  225. package/dist/components/hx-steps/hx-step.d.ts.map +1 -1
  226. package/dist/components/hx-steps/hx-step.styles.d.ts.map +1 -1
  227. package/dist/components/hx-steps/hx-steps.d.ts.map +1 -1
  228. package/dist/components/hx-steps/index.js +1 -1
  229. package/dist/components/hx-structured-list/hx-structured-list.d.ts +10 -3
  230. package/dist/components/hx-structured-list/hx-structured-list.d.ts.map +1 -1
  231. package/dist/components/hx-structured-list/index.js +1 -1
  232. package/dist/components/hx-style-scope/hx-style-scope.d.ts +71 -0
  233. package/dist/components/hx-style-scope/hx-style-scope.d.ts.map +1 -0
  234. package/dist/components/hx-style-scope/hx-style-scope.styles.d.ts +10 -0
  235. package/dist/components/hx-style-scope/hx-style-scope.styles.d.ts.map +1 -0
  236. package/dist/components/hx-style-scope/index.d.ts +2 -0
  237. package/dist/components/hx-style-scope/index.d.ts.map +1 -0
  238. package/dist/components/hx-style-scope/index.js +5 -0
  239. package/dist/components/hx-style-scope/index.js.map +1 -0
  240. package/dist/components/hx-switch/hx-switch.d.ts +4 -4
  241. package/dist/components/hx-switch/hx-switch.d.ts.map +1 -1
  242. package/dist/components/hx-switch/hx-switch.styles.d.ts.map +1 -1
  243. package/dist/components/hx-switch/index.js +1 -1
  244. package/dist/components/hx-table/hx-table.d.ts +1 -0
  245. package/dist/components/hx-table/hx-table.d.ts.map +1 -1
  246. package/dist/components/hx-table/index.js +1 -1
  247. package/dist/components/hx-tabs/hx-tab-panel.styles.d.ts.map +1 -1
  248. package/dist/components/hx-tabs/hx-tab.d.ts +1 -0
  249. package/dist/components/hx-tabs/hx-tab.d.ts.map +1 -1
  250. package/dist/components/hx-tabs/hx-tab.styles.d.ts.map +1 -1
  251. package/dist/components/hx-tabs/hx-tabs.d.ts +12 -2
  252. package/dist/components/hx-tabs/hx-tabs.d.ts.map +1 -1
  253. package/dist/components/hx-tabs/index.js +1 -1
  254. package/dist/components/hx-tag/hx-tag.styles.d.ts.map +1 -1
  255. package/dist/components/hx-tag/index.js +1 -1
  256. package/dist/components/hx-text/index.js +1 -1
  257. package/dist/components/hx-text-input/hx-text-input.d.ts +16 -15
  258. package/dist/components/hx-text-input/hx-text-input.d.ts.map +1 -1
  259. package/dist/components/hx-text-input/hx-text-input.styles.d.ts.map +1 -1
  260. package/dist/components/hx-text-input/index.js +1 -1
  261. package/dist/components/hx-textarea/hx-textarea.d.ts +4 -4
  262. package/dist/components/hx-textarea/hx-textarea.d.ts.map +1 -1
  263. package/dist/components/hx-textarea/hx-textarea.styles.d.ts.map +1 -1
  264. package/dist/components/hx-textarea/index.js +1 -1
  265. package/dist/components/hx-theme/hx-theme.d.ts +82 -3
  266. package/dist/components/hx-theme/hx-theme.d.ts.map +1 -1
  267. package/dist/components/hx-theme/index.js +1 -1
  268. package/dist/components/hx-time-picker/hx-time-picker.d.ts +6 -1
  269. package/dist/components/hx-time-picker/hx-time-picker.d.ts.map +1 -1
  270. package/dist/components/hx-time-picker/index.js +1 -1
  271. package/dist/components/hx-toast/hx-toast-stack.d.ts +1 -1
  272. package/dist/components/hx-toast/hx-toast-stack.d.ts.map +1 -1
  273. package/dist/components/hx-toast/hx-toast.d.ts +9 -5
  274. package/dist/components/hx-toast/hx-toast.d.ts.map +1 -1
  275. package/dist/components/hx-toast/hx-toast.styles.d.ts.map +1 -1
  276. package/dist/components/hx-toast/index.js +1 -1
  277. package/dist/components/hx-toast/toast-factory.d.ts.map +1 -1
  278. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts +4 -3
  279. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts.map +1 -1
  280. package/dist/components/hx-toggle-button/hx-toggle-button.styles.d.ts.map +1 -1
  281. package/dist/components/hx-toggle-button/index.js +1 -1
  282. package/dist/components/hx-tooltip/hx-tooltip.d.ts +1 -2
  283. package/dist/components/hx-tooltip/hx-tooltip.d.ts.map +1 -1
  284. package/dist/components/hx-tooltip/index.js +1 -1
  285. package/dist/components/hx-tree-view/hx-tree-item.d.ts +12 -0
  286. package/dist/components/hx-tree-view/hx-tree-item.d.ts.map +1 -1
  287. package/dist/components/hx-tree-view/hx-tree-view.d.ts +27 -2
  288. package/dist/components/hx-tree-view/hx-tree-view.d.ts.map +1 -1
  289. package/dist/components/hx-tree-view/hx-tree-view.styles.d.ts.map +1 -1
  290. package/dist/components/hx-tree-view/index.js +1 -1
  291. package/dist/controllers/helix-audit-controller.d.ts +71 -0
  292. package/dist/controllers/helix-audit-controller.d.ts.map +1 -0
  293. package/dist/css/helix-all.css +9743 -0
  294. package/dist/css/helix-core.css +1839 -0
  295. package/dist/css/helix-data.css +639 -0
  296. package/dist/css/helix-feedback.css +1268 -0
  297. package/dist/css/helix-forms.css +2525 -0
  298. package/dist/css/helix-layout.css +380 -0
  299. package/dist/css/helix-media.css +213 -0
  300. package/dist/css/helix-navigation.css +1131 -0
  301. package/dist/css/helix-overlay.css +643 -0
  302. package/dist/css/helix-tokens.css +432 -0
  303. package/dist/css/helix-utility.css +633 -0
  304. package/dist/css/hx-accordion.css +10 -0
  305. package/dist/css/hx-action-bar.css +117 -0
  306. package/dist/css/hx-alert.css +213 -0
  307. package/dist/css/hx-avatar.css +134 -0
  308. package/dist/css/hx-badge.css +178 -0
  309. package/dist/css/hx-banner.css +203 -0
  310. package/dist/css/hx-breadcrumb.css +36 -0
  311. package/dist/css/hx-button-group.css +91 -0
  312. package/dist/css/hx-button.css +296 -0
  313. package/dist/css/hx-card.css +161 -0
  314. package/dist/css/hx-carousel.css +211 -0
  315. package/dist/css/hx-checkbox-group.css +77 -0
  316. package/dist/css/hx-checkbox.css +219 -0
  317. package/dist/css/hx-clinical-status.css +248 -0
  318. package/dist/css/hx-code-snippet.css +179 -0
  319. package/dist/css/hx-color-picker.css +2 -0
  320. package/dist/css/hx-combobox.css +2 -0
  321. package/dist/css/hx-container.css +82 -0
  322. package/dist/css/hx-copy-button.css +121 -0
  323. package/dist/css/hx-counter.css +51 -0
  324. package/dist/css/hx-data-table.css +207 -0
  325. package/dist/css/hx-date-picker.css +2 -0
  326. package/dist/css/hx-dialog.css +190 -0
  327. package/dist/css/hx-divider.css +87 -0
  328. package/dist/css/hx-drawer.css +262 -0
  329. package/dist/css/hx-dropdown.css +46 -0
  330. package/dist/css/hx-field-label.css +38 -0
  331. package/dist/css/hx-field.css +119 -0
  332. package/dist/css/hx-file-upload.css +241 -0
  333. package/dist/css/hx-form.css +2 -0
  334. package/dist/css/hx-format-date.css +10 -0
  335. package/dist/css/hx-grid.css +14 -0
  336. package/dist/css/hx-help-text.css +50 -0
  337. package/dist/css/hx-icon-button.css +152 -0
  338. package/dist/css/hx-icon.css +73 -0
  339. package/dist/css/hx-image.css +41 -0
  340. package/dist/css/hx-link.css +105 -0
  341. package/dist/css/hx-list.css +48 -0
  342. package/dist/css/hx-menu.css +23 -0
  343. package/dist/css/hx-meter.css +113 -0
  344. package/dist/css/hx-nav.css +242 -0
  345. package/dist/css/hx-number-input.css +246 -0
  346. package/dist/css/hx-overflow-menu.css +133 -0
  347. package/dist/css/hx-pagination.css +193 -0
  348. package/dist/css/hx-patient-banner.css +139 -0
  349. package/dist/css/hx-phi-field.css +97 -0
  350. package/dist/css/hx-popover.css +61 -0
  351. package/dist/css/hx-popup.css +31 -0
  352. package/dist/css/hx-progress-bar.css +133 -0
  353. package/dist/css/hx-progress-ring.css +142 -0
  354. package/dist/css/hx-prose.css +2 -0
  355. package/dist/css/hx-radio-group.css +77 -0
  356. package/dist/css/hx-rating.css +96 -0
  357. package/dist/css/hx-select.css +295 -0
  358. package/dist/css/hx-side-nav.css +149 -0
  359. package/dist/css/hx-skeleton.css +82 -0
  360. package/dist/css/hx-slider.css +287 -0
  361. package/dist/css/hx-spinner.css +116 -0
  362. package/dist/css/hx-split-button.css +309 -0
  363. package/dist/css/hx-split-panel.css +168 -0
  364. package/dist/css/hx-stack.css +104 -0
  365. package/dist/css/hx-stat.css +106 -0
  366. package/dist/css/hx-status-indicator.css +126 -0
  367. package/dist/css/hx-steps.css +52 -0
  368. package/dist/css/hx-structured-list.css +75 -0
  369. package/dist/css/hx-style-scope.css +4 -0
  370. package/dist/css/hx-switch.css +169 -0
  371. package/dist/css/hx-table.css +128 -0
  372. package/dist/css/hx-tabs.css +76 -0
  373. package/dist/css/hx-tag.css +146 -0
  374. package/dist/css/hx-text-input.css +214 -0
  375. package/dist/css/hx-text.css +149 -0
  376. package/dist/css/hx-textarea.css +180 -0
  377. package/dist/css/hx-theme.css +23 -0
  378. package/dist/css/hx-time-picker.css +2 -0
  379. package/dist/css/hx-toast.css +230 -0
  380. package/dist/css/hx-toggle-button.css +207 -0
  381. package/dist/css/hx-tooltip.css +51 -0
  382. package/dist/css/hx-top-nav.css +203 -0
  383. package/dist/css/hx-tree-view.css +22 -0
  384. package/dist/css/hx-visually-hidden.css +26 -0
  385. package/dist/css/index.css +84 -0
  386. package/dist/css/manifest.json +2704 -0
  387. package/dist/index.d.ts +14 -0
  388. package/dist/index.d.ts.map +1 -1
  389. package/dist/index.js +266 -176
  390. package/dist/index.js.map +1 -1
  391. package/dist/mixins/FocusMixin.d.ts +49 -0
  392. package/dist/mixins/FocusMixin.d.ts.map +1 -0
  393. package/dist/mixins/FormMixin.d.ts +69 -0
  394. package/dist/mixins/FormMixin.d.ts.map +1 -0
  395. package/dist/mixins/aria-delegation.d.ts +97 -0
  396. package/dist/mixins/aria-delegation.d.ts.map +1 -0
  397. package/dist/mixins/index.d.ts +5 -0
  398. package/dist/mixins/index.d.ts.map +1 -0
  399. package/dist/shared/FormMixin-Bjvw20G5.js +88 -0
  400. package/dist/shared/FormMixin-Bjvw20G5.js.map +1 -0
  401. package/dist/shared/aria-delegation-CBP9eQ0M.js +107 -0
  402. package/dist/shared/aria-delegation-CBP9eQ0M.js.map +1 -0
  403. package/dist/shared/{hx-accordion-D1kFhdeQ.js → hx-accordion-_KeulaQR.js} +83 -55
  404. package/dist/shared/hx-accordion-_KeulaQR.js.map +1 -0
  405. package/dist/shared/{hx-action-bar-D4bulGQP.js → hx-action-bar-vGFnNwNY.js} +33 -34
  406. package/dist/shared/hx-action-bar-vGFnNwNY.js.map +1 -0
  407. package/dist/shared/{hx-alert-K5F8KeqI.js → hx-alert-DRZYP0Oo.js} +32 -23
  408. package/dist/shared/hx-alert-DRZYP0Oo.js.map +1 -0
  409. package/dist/shared/{hx-avatar-Cun-O99h.js → hx-avatar-CZfA9KEl.js} +28 -11
  410. package/dist/shared/hx-avatar-CZfA9KEl.js.map +1 -0
  411. package/dist/shared/{hx-badge-CsFd2xtw.js → hx-badge-Xg7zoh4Q.js} +46 -37
  412. package/dist/shared/hx-badge-Xg7zoh4Q.js.map +1 -0
  413. package/dist/shared/{hx-banner-BTV-X2xF.js → hx-banner-2RS7Nux4.js} +93 -58
  414. package/dist/shared/hx-banner-2RS7Nux4.js.map +1 -0
  415. package/dist/shared/{hx-breadcrumb-item-4IwaLgaO.js → hx-breadcrumb-item-CObc-WJl.js} +86 -83
  416. package/dist/shared/hx-breadcrumb-item-CObc-WJl.js.map +1 -0
  417. package/dist/shared/{hx-button-7k-KeCYU.js → hx-button-CC1YH9RZ.js} +127 -62
  418. package/dist/shared/hx-button-CC1YH9RZ.js.map +1 -0
  419. package/dist/shared/{hx-button-group-CWjWv-wS.js → hx-button-group-ChTQsnQj.js} +10 -10
  420. package/dist/shared/hx-button-group-ChTQsnQj.js.map +1 -0
  421. package/dist/shared/{hx-card-0hT3G5hi.js → hx-card-dIKdcMhr.js} +32 -32
  422. package/dist/shared/hx-card-dIKdcMhr.js.map +1 -0
  423. package/dist/shared/{hx-carousel-item-DgeYyYZJ.js → hx-carousel-item-Cm8a1nAi.js} +3 -3
  424. package/dist/shared/hx-carousel-item-Cm8a1nAi.js.map +1 -0
  425. package/dist/shared/{hx-checkbox-BvjO-O41.js → hx-checkbox-_WUiuTo9.js} +68 -71
  426. package/dist/shared/hx-checkbox-_WUiuTo9.js.map +1 -0
  427. package/dist/shared/{hx-checkbox-group-Z5VvWzcj.js → hx-checkbox-group-B-ci-dxp.js} +37 -31
  428. package/dist/shared/hx-checkbox-group-B-ci-dxp.js.map +1 -0
  429. package/dist/shared/hx-clinical-status-D6eaplvs.js +469 -0
  430. package/dist/shared/hx-clinical-status-D6eaplvs.js.map +1 -0
  431. package/dist/shared/{hx-code-snippet-DqzPkH4K.js → hx-code-snippet-CQsyvthi.js} +56 -47
  432. package/dist/shared/hx-code-snippet-CQsyvthi.js.map +1 -0
  433. package/dist/shared/{hx-color-picker-Da8z6AlQ.js → hx-color-picker-Dk2Myvaf.js} +153 -137
  434. package/dist/shared/hx-color-picker-Dk2Myvaf.js.map +1 -0
  435. package/dist/shared/{hx-combobox-CivfelTS.js → hx-combobox-CNAJXIxo.js} +10 -10
  436. package/dist/shared/hx-combobox-CNAJXIxo.js.map +1 -0
  437. package/dist/shared/{hx-container-DLUKnTi9.js → hx-container-7j16VuQE.js} +16 -16
  438. package/dist/shared/hx-container-7j16VuQE.js.map +1 -0
  439. package/dist/shared/{hx-copy-button--0dymSvw.js → hx-copy-button-B_ZHYO7_.js} +47 -40
  440. package/dist/shared/hx-copy-button-B_ZHYO7_.js.map +1 -0
  441. package/dist/shared/hx-counter-D_B7L9Pi.js +185 -0
  442. package/dist/shared/hx-counter-D_B7L9Pi.js.map +1 -0
  443. package/dist/shared/{hx-data-table-DujB9hSE.js → hx-data-table-B1j4n4bm.js} +134 -107
  444. package/dist/shared/hx-data-table-B1j4n4bm.js.map +1 -0
  445. package/dist/shared/{hx-date-picker-C8d2HtRV.js → hx-date-picker-R-0kWFwr.js} +146 -130
  446. package/dist/shared/hx-date-picker-R-0kWFwr.js.map +1 -0
  447. package/dist/shared/{hx-dialog-DkUSnVgw.js → hx-dialog-U5d3s0Ps.js} +98 -89
  448. package/dist/shared/hx-dialog-U5d3s0Ps.js.map +1 -0
  449. package/dist/shared/{hx-divider-DNNs4e8q.js → hx-divider-DdAN-_jB.js} +5 -5
  450. package/dist/shared/hx-divider-DdAN-_jB.js.map +1 -0
  451. package/dist/shared/{hx-drawer-CJcRZcns.js → hx-drawer-e0qeGxAD.js} +117 -77
  452. package/dist/shared/hx-drawer-e0qeGxAD.js.map +1 -0
  453. package/dist/shared/{hx-dropdown-Bo0KTM1A.js → hx-dropdown-DP_DNpEb.js} +56 -41
  454. package/dist/shared/hx-dropdown-DP_DNpEb.js.map +1 -0
  455. package/dist/shared/{hx-field-3MmzJ4kZ.js → hx-field-COM4KvMQ.js} +9 -9
  456. package/dist/shared/hx-field-COM4KvMQ.js.map +1 -0
  457. package/dist/shared/{hx-field-label-Bg-EWvqF.js → hx-field-label-BtZ9H9Yy.js} +8 -11
  458. package/dist/shared/hx-field-label-BtZ9H9Yy.js.map +1 -0
  459. package/dist/shared/{hx-file-upload-ByjAgfNy.js → hx-file-upload-DbECypLe.js} +78 -87
  460. package/dist/shared/hx-file-upload-DbECypLe.js.map +1 -0
  461. package/dist/shared/{hx-form-BpS6v3Iu.js → hx-form-fJE-FJQV.js} +36 -32
  462. package/dist/shared/{hx-form-BpS6v3Iu.js.map → hx-form-fJE-FJQV.js.map} +1 -1
  463. package/dist/shared/{hx-format-date-BdnWV2kX.js → hx-format-date-C030ThSm.js} +14 -12
  464. package/dist/shared/hx-format-date-C030ThSm.js.map +1 -0
  465. package/dist/shared/{hx-grid-gEjuF0cR.js → hx-grid-DE8KM5Gf.js} +7 -7
  466. package/dist/shared/hx-grid-DE8KM5Gf.js.map +1 -0
  467. package/dist/shared/{hx-icon-button-DzH_bRtC.js → hx-icon-button-Et9wq79n.js} +4 -4
  468. package/dist/shared/{hx-icon-button-DzH_bRtC.js.map → hx-icon-button-Et9wq79n.js.map} +1 -1
  469. package/dist/shared/{hx-icon-CP6OnLoM.js → hx-icon-dYvrzvsO.js} +7 -7
  470. package/dist/shared/hx-icon-dYvrzvsO.js.map +1 -0
  471. package/dist/shared/{hx-image-C6pGiI6c.js → hx-image-DUsEi-oN.js} +15 -15
  472. package/dist/shared/hx-image-DUsEi-oN.js.map +1 -0
  473. package/dist/shared/{hx-link-Tmk_YPvW.js → hx-link-Peg2LzOD.js} +43 -41
  474. package/dist/shared/hx-link-Peg2LzOD.js.map +1 -0
  475. package/dist/shared/{hx-menu-divider-DR4G_rqw.js → hx-menu-divider-puPmRAdN.js} +40 -20
  476. package/dist/shared/hx-menu-divider-puPmRAdN.js.map +1 -0
  477. package/dist/shared/{hx-meter-uXkTZq-W.js → hx-meter-CVs4A649.js} +13 -13
  478. package/dist/shared/hx-meter-CVs4A649.js.map +1 -0
  479. package/dist/shared/{hx-nav-3JsN2Oak.js → hx-nav-CiyqaW2I.js} +119 -107
  480. package/dist/shared/hx-nav-CiyqaW2I.js.map +1 -0
  481. package/dist/shared/{hx-nav-item-D3EJatzc.js → hx-nav-item-tM_6bolB.js} +181 -115
  482. package/dist/shared/hx-nav-item-tM_6bolB.js.map +1 -0
  483. package/dist/shared/{hx-number-input-CAAibZ8X.js → hx-number-input-BPgrlMLN.js} +70 -66
  484. package/dist/shared/hx-number-input-BPgrlMLN.js.map +1 -0
  485. package/dist/shared/{hx-overflow-menu-2kgOJ_ht.js → hx-overflow-menu-Bz02LPPk.js} +15 -11
  486. package/dist/shared/hx-overflow-menu-Bz02LPPk.js.map +1 -0
  487. package/dist/shared/{hx-pagination-DBs-vmSv.js → hx-pagination-Cb9UEWXz.js} +84 -71
  488. package/dist/shared/hx-pagination-Cb9UEWXz.js.map +1 -0
  489. package/dist/shared/hx-patient-banner-wk4qWmsH.js +297 -0
  490. package/dist/shared/hx-patient-banner-wk4qWmsH.js.map +1 -0
  491. package/dist/shared/hx-phi-field-DX9z3nu0.js +295 -0
  492. package/dist/shared/hx-phi-field-DX9z3nu0.js.map +1 -0
  493. package/dist/shared/{hx-popover-DxE67miP.js → hx-popover-D6kYQkt3.js} +96 -69
  494. package/dist/shared/hx-popover-D6kYQkt3.js.map +1 -0
  495. package/dist/shared/{hx-popup-Dg6n_PbY.js → hx-popup-RQb6HUXc.js} +2 -2
  496. package/dist/shared/hx-popup-RQb6HUXc.js.map +1 -0
  497. package/dist/shared/{hx-progress-bar-Dm_EHyng.js → hx-progress-bar-ByEmxq1V.js} +42 -40
  498. package/dist/shared/hx-progress-bar-ByEmxq1V.js.map +1 -0
  499. package/dist/shared/{hx-progress-ring-DpxBDD5d.js → hx-progress-ring-CtVnNRQx.js} +2 -2
  500. package/dist/shared/{hx-progress-ring-DpxBDD5d.js.map → hx-progress-ring-CtVnNRQx.js.map} +1 -1
  501. package/dist/shared/hx-prose-Ml_L2zje.js.map +1 -1
  502. package/dist/shared/{hx-radio-BywgVSEu.js → hx-radio-jgeW92SV.js} +28 -27
  503. package/dist/shared/hx-radio-jgeW92SV.js.map +1 -0
  504. package/dist/shared/{hx-rating-CUWBQ0fZ.js → hx-rating-g_iy-DW_.js} +92 -96
  505. package/dist/shared/hx-rating-g_iy-DW_.js.map +1 -0
  506. package/dist/shared/{hx-select-BwDwxk-M.js → hx-select-BWzxWZs_.js} +139 -100
  507. package/dist/shared/hx-select-BWzxWZs_.js.map +1 -0
  508. package/dist/shared/hx-skeleton-BHvALyd7.js.map +1 -1
  509. package/dist/shared/{hx-slider-D_0EKJyk.js → hx-slider-7Q-e0_pc.js} +27 -22
  510. package/dist/shared/hx-slider-7Q-e0_pc.js.map +1 -0
  511. package/dist/shared/{hx-spinner-DMn4SChS.js → hx-spinner-DEgrKsUo.js} +3 -2
  512. package/dist/shared/hx-spinner-DEgrKsUo.js.map +1 -0
  513. package/dist/shared/{hx-split-button-CypgLXw1.js → hx-split-button-BA7P_ly5.js} +40 -31
  514. package/dist/shared/hx-split-button-BA7P_ly5.js.map +1 -0
  515. package/dist/shared/{hx-split-panel-BPMWKPGu.js → hx-split-panel-Bss54UN8.js} +28 -28
  516. package/dist/shared/hx-split-panel-Bss54UN8.js.map +1 -0
  517. package/dist/shared/{hx-stat-CHntLHJM.js → hx-stat-CmkCUI8v.js} +40 -32
  518. package/dist/shared/{hx-stat-CHntLHJM.js.map → hx-stat-CmkCUI8v.js.map} +1 -1
  519. package/dist/shared/{hx-status-indicator-C1BwEvUw.js → hx-status-indicator-Dl3Y34mc.js} +81 -40
  520. package/dist/shared/hx-status-indicator-Dl3Y34mc.js.map +1 -0
  521. package/dist/shared/{hx-step-BIVWSPxd.js → hx-step-CmNwfcJx.js} +49 -85
  522. package/dist/shared/hx-step-CmNwfcJx.js.map +1 -0
  523. package/dist/shared/{hx-structured-list-CMWllxGg.js → hx-structured-list-Db9rwLI_.js} +26 -23
  524. package/dist/shared/hx-structured-list-Db9rwLI_.js.map +1 -0
  525. package/dist/shared/hx-style-scope-BroUu83L.js +125 -0
  526. package/dist/shared/hx-style-scope-BroUu83L.js.map +1 -0
  527. package/dist/shared/{hx-switch-BgX8kuWt.js → hx-switch-C0Lp5RGy.js} +8 -5
  528. package/dist/shared/hx-switch-C0Lp5RGy.js.map +1 -0
  529. package/dist/shared/{hx-tab-panel-DhOq67jj.js → hx-tab-panel-Dnt8aA74.js} +161 -122
  530. package/dist/shared/hx-tab-panel-Dnt8aA74.js.map +1 -0
  531. package/dist/shared/{hx-tag-CzOTDcXI.js → hx-tag-K5fCjfqQ.js} +15 -14
  532. package/dist/shared/hx-tag-K5fCjfqQ.js.map +1 -0
  533. package/dist/shared/{hx-td-h6oeW6YC.js → hx-td-DZuILY3s.js} +43 -40
  534. package/dist/shared/hx-td-DZuILY3s.js.map +1 -0
  535. package/dist/shared/{hx-text-DTXjiviE.js → hx-text-DoEVOf47.js} +29 -29
  536. package/dist/shared/hx-text-DoEVOf47.js.map +1 -0
  537. package/dist/shared/hx-text-input-DTKWPVdy.js +576 -0
  538. package/dist/shared/hx-text-input-DTKWPVdy.js.map +1 -0
  539. package/dist/shared/{hx-textarea-BgX7rxyo.js → hx-textarea-BkSiU8oM.js} +15 -15
  540. package/dist/shared/hx-textarea-BkSiU8oM.js.map +1 -0
  541. package/dist/shared/hx-theme-Aag8QJvT.js +299 -0
  542. package/dist/shared/hx-theme-Aag8QJvT.js.map +1 -0
  543. package/dist/shared/{hx-time-picker-DmLu7WUC.js → hx-time-picker-BpCRsh_z.js} +54 -53
  544. package/dist/shared/hx-time-picker-BpCRsh_z.js.map +1 -0
  545. package/dist/shared/{hx-toggle-button-D1jpDvSA.js → hx-toggle-button-CPFqs3eQ.js} +8 -5
  546. package/dist/shared/hx-toggle-button-CPFqs3eQ.js.map +1 -0
  547. package/dist/shared/{hx-tooltip-kh7QFPKu.js → hx-tooltip-CrO4vzeX.js} +15 -10
  548. package/dist/shared/hx-tooltip-CrO4vzeX.js.map +1 -0
  549. package/dist/shared/{hx-tree-item-BP6UF_H1.js → hx-tree-item-C1PhX-HE.js} +163 -99
  550. package/dist/shared/hx-tree-item-C1PhX-HE.js.map +1 -0
  551. package/dist/shared/id-counter-JhvVCnjh.js +143 -0
  552. package/dist/shared/id-counter-JhvVCnjh.js.map +1 -0
  553. package/dist/shared/{toast-factory-DTy-qN8r.js → toast-factory-f184Gi70.js} +57 -45
  554. package/dist/shared/toast-factory-f184Gi70.js.map +1 -0
  555. package/dist/utilities/adoptedStylesheetRegistry.d.ts +47 -0
  556. package/dist/utilities/adoptedStylesheetRegistry.d.ts.map +1 -0
  557. package/dist/utilities/generateScopedSelectors.d.ts +30 -0
  558. package/dist/utilities/generateScopedSelectors.d.ts.map +1 -0
  559. package/dist/utilities/injectLightStyles.d.ts +37 -0
  560. package/dist/utilities/injectLightStyles.d.ts.map +1 -0
  561. package/dist/utilities/lightStyleRegistry.d.ts +41 -0
  562. package/dist/utilities/lightStyleRegistry.d.ts.map +1 -0
  563. package/dist/utilities/sheetManager.d.ts +62 -0
  564. package/dist/utilities/sheetManager.d.ts.map +1 -0
  565. package/dist/utils/contrast-checker.d.ts +86 -0
  566. package/dist/utils/contrast-checker.d.ts.map +1 -0
  567. package/dist/utils/token-merger.d.ts +24 -0
  568. package/dist/utils/token-merger.d.ts.map +1 -0
  569. package/fouc.css +37 -0
  570. package/package.json +26 -6
  571. package/dist/shared/hx-accordion-D1kFhdeQ.js.map +0 -1
  572. package/dist/shared/hx-action-bar-D4bulGQP.js.map +0 -1
  573. package/dist/shared/hx-alert-K5F8KeqI.js.map +0 -1
  574. package/dist/shared/hx-avatar-Cun-O99h.js.map +0 -1
  575. package/dist/shared/hx-badge-CsFd2xtw.js.map +0 -1
  576. package/dist/shared/hx-banner-BTV-X2xF.js.map +0 -1
  577. package/dist/shared/hx-breadcrumb-item-4IwaLgaO.js.map +0 -1
  578. package/dist/shared/hx-button-7k-KeCYU.js.map +0 -1
  579. package/dist/shared/hx-button-group-CWjWv-wS.js.map +0 -1
  580. package/dist/shared/hx-card-0hT3G5hi.js.map +0 -1
  581. package/dist/shared/hx-carousel-item-DgeYyYZJ.js.map +0 -1
  582. package/dist/shared/hx-checkbox-BvjO-O41.js.map +0 -1
  583. package/dist/shared/hx-checkbox-group-Z5VvWzcj.js.map +0 -1
  584. package/dist/shared/hx-code-snippet-DqzPkH4K.js.map +0 -1
  585. package/dist/shared/hx-color-picker-Da8z6AlQ.js.map +0 -1
  586. package/dist/shared/hx-combobox-CivfelTS.js.map +0 -1
  587. package/dist/shared/hx-container-DLUKnTi9.js.map +0 -1
  588. package/dist/shared/hx-copy-button--0dymSvw.js.map +0 -1
  589. package/dist/shared/hx-counter-Duf00H7p.js +0 -147
  590. package/dist/shared/hx-counter-Duf00H7p.js.map +0 -1
  591. package/dist/shared/hx-data-table-DujB9hSE.js.map +0 -1
  592. package/dist/shared/hx-date-picker-C8d2HtRV.js.map +0 -1
  593. package/dist/shared/hx-dialog-DkUSnVgw.js.map +0 -1
  594. package/dist/shared/hx-divider-DNNs4e8q.js.map +0 -1
  595. package/dist/shared/hx-drawer-CJcRZcns.js.map +0 -1
  596. package/dist/shared/hx-dropdown-Bo0KTM1A.js.map +0 -1
  597. package/dist/shared/hx-field-3MmzJ4kZ.js.map +0 -1
  598. package/dist/shared/hx-field-label-Bg-EWvqF.js.map +0 -1
  599. package/dist/shared/hx-file-upload-ByjAgfNy.js.map +0 -1
  600. package/dist/shared/hx-format-date-BdnWV2kX.js.map +0 -1
  601. package/dist/shared/hx-grid-gEjuF0cR.js.map +0 -1
  602. package/dist/shared/hx-icon-CP6OnLoM.js.map +0 -1
  603. package/dist/shared/hx-image-C6pGiI6c.js.map +0 -1
  604. package/dist/shared/hx-link-Tmk_YPvW.js.map +0 -1
  605. package/dist/shared/hx-menu-divider-DR4G_rqw.js.map +0 -1
  606. package/dist/shared/hx-meter-uXkTZq-W.js.map +0 -1
  607. package/dist/shared/hx-nav-3JsN2Oak.js.map +0 -1
  608. package/dist/shared/hx-nav-item-D3EJatzc.js.map +0 -1
  609. package/dist/shared/hx-number-input-CAAibZ8X.js.map +0 -1
  610. package/dist/shared/hx-overflow-menu-2kgOJ_ht.js.map +0 -1
  611. package/dist/shared/hx-pagination-DBs-vmSv.js.map +0 -1
  612. package/dist/shared/hx-popover-DxE67miP.js.map +0 -1
  613. package/dist/shared/hx-popup-Dg6n_PbY.js.map +0 -1
  614. package/dist/shared/hx-progress-bar-Dm_EHyng.js.map +0 -1
  615. package/dist/shared/hx-radio-BywgVSEu.js.map +0 -1
  616. package/dist/shared/hx-rating-CUWBQ0fZ.js.map +0 -1
  617. package/dist/shared/hx-select-BwDwxk-M.js.map +0 -1
  618. package/dist/shared/hx-slider-D_0EKJyk.js.map +0 -1
  619. package/dist/shared/hx-spinner-DMn4SChS.js.map +0 -1
  620. package/dist/shared/hx-split-button-CypgLXw1.js.map +0 -1
  621. package/dist/shared/hx-split-panel-BPMWKPGu.js.map +0 -1
  622. package/dist/shared/hx-status-indicator-C1BwEvUw.js.map +0 -1
  623. package/dist/shared/hx-step-BIVWSPxd.js.map +0 -1
  624. package/dist/shared/hx-structured-list-CMWllxGg.js.map +0 -1
  625. package/dist/shared/hx-switch-BgX8kuWt.js.map +0 -1
  626. package/dist/shared/hx-tab-panel-DhOq67jj.js.map +0 -1
  627. package/dist/shared/hx-tag-CzOTDcXI.js.map +0 -1
  628. package/dist/shared/hx-td-h6oeW6YC.js.map +0 -1
  629. package/dist/shared/hx-text-DTXjiviE.js.map +0 -1
  630. package/dist/shared/hx-text-input-CqEdDHMU.js +0 -461
  631. package/dist/shared/hx-text-input-CqEdDHMU.js.map +0 -1
  632. package/dist/shared/hx-textarea-BgX7rxyo.js.map +0 -1
  633. package/dist/shared/hx-theme-6GDoUG8j.js +0 -176
  634. package/dist/shared/hx-theme-6GDoUG8j.js.map +0 -1
  635. package/dist/shared/hx-time-picker-DmLu7WUC.js.map +0 -1
  636. package/dist/shared/hx-toggle-button-D1jpDvSA.js.map +0 -1
  637. package/dist/shared/hx-tooltip-kh7QFPKu.js.map +0 -1
  638. package/dist/shared/hx-tree-item-BP6UF_H1.js.map +0 -1
  639. package/dist/shared/toast-factory-DTy-qN8r.js.map +0 -1
@@ -1,7 +1,7 @@
1
- import { css as p, LitElement as v, nothing as c, html as s } from "lit";
1
+ import { css as v, LitElement as p, nothing as c, html as s } from "lit";
2
2
  import { property as n, state as _, customElement as g } from "lit/decorators.js";
3
3
  import { tokenStyles as b } from "@helixui/tokens/lit";
4
- const f = p`
4
+ const f = v`
5
5
  :host {
6
6
  display: block;
7
7
  --_divider-color: var(--hx-divider-color, var(--hx-color-neutral-200, #e2e8f0));
@@ -94,7 +94,7 @@ var m = Object.defineProperty, x = Object.getOwnPropertyDescriptor, l = (e, i, t
94
94
  (h = e[d]) && (a = (o ? h(i, t, a) : h(a)) || a);
95
95
  return o && a && m(i, t, a), a;
96
96
  };
97
- let r = class extends v {
97
+ let r = class extends p {
98
98
  constructor() {
99
99
  super(...arguments), this.orientation = "horizontal", this.spacing = "md", this.decorative = !1, this._hasLabel = !1, this._slotChangeHandler = (e) => {
100
100
  this._checkSlot(e.target);
@@ -111,7 +111,7 @@ let r = class extends v {
111
111
  var t;
112
112
  super.firstUpdated(e);
113
113
  const i = (t = this.shadowRoot) == null ? void 0 : t.querySelector("slot:not([name])");
114
- i && this._checkSlot(i);
114
+ i && this._checkSlot(i), !this.decorative && !this.label && this._hasLabel;
115
115
  }
116
116
  render() {
117
117
  const e = this.decorative, i = this._hasLabel || !!this.label;
@@ -155,4 +155,4 @@ r = l([
155
155
  export {
156
156
  r as H
157
157
  };
158
- //# sourceMappingURL=hx-divider-DNNs4e8q.js.map
158
+ //# sourceMappingURL=hx-divider-DdAN-_jB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hx-divider-DdAN-_jB.js","sources":["../../src/components/hx-divider/hx-divider.styles.ts","../../src/components/hx-divider/hx-divider.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixDividerStyles = css`\n :host {\n display: block;\n --_divider-color: var(--hx-divider-color, var(--hx-color-neutral-200, #e2e8f0));\n --_divider-width: var(--hx-divider-width, var(--hx-border-width-thin, 1px));\n --_divider-label-color: var(--hx-divider-label-color, var(--hx-color-neutral-500, #64748b));\n --_divider-label-size: var(--hx-divider-label-font-size, var(--hx-font-size-sm, 0.875rem));\n --_divider-label-gap: var(--hx-divider-label-gap, var(--hx-space-3, 0.75rem));\n }\n\n /* ─── Spacing Variants ─── */\n\n :host([spacing='none']) {\n --_spacing: 0;\n }\n\n :host([spacing='sm']) {\n --_spacing: var(--hx-space-2, 0.5rem);\n }\n\n :host,\n :host([spacing='md']) {\n --_spacing: var(--hx-space-4, 1rem);\n }\n\n :host([spacing='lg']) {\n --_spacing: var(--hx-space-6, 1.5rem);\n }\n\n /* ─── Horizontal (default) ─── */\n\n :host([orientation='horizontal']) {\n margin-block: var(--_spacing);\n }\n\n /* ─── Vertical ─── */\n\n :host([orientation='vertical']) {\n display: inline-flex;\n align-self: stretch;\n margin-inline: var(--_spacing);\n }\n\n /* ─── Base (hr) — horizontal ─── */\n\n .divider {\n display: flex;\n align-items: center;\n gap: var(--_divider-label-gap);\n border: none;\n margin: 0;\n padding: 0;\n }\n\n /* ─── Base — vertical ─── */\n\n :host([orientation='vertical']) .divider {\n flex-direction: column;\n height: 100%;\n }\n\n /* ─── Lines flanking label ─── */\n\n .divider__line {\n flex: 1;\n background-color: var(--_divider-color);\n }\n\n :host(:not([orientation='vertical'])) .divider__line {\n height: var(--_divider-width);\n }\n\n :host([orientation='vertical']) .divider__line {\n width: var(--_divider-width);\n height: auto;\n min-height: 0;\n }\n\n /* ─── Label ─── */\n\n .divider__label {\n flex-shrink: 0;\n color: var(--_divider-label-color);\n font-size: var(--_divider-label-size);\n line-height: var(--hx-line-height-tight, 1.25);\n white-space: nowrap;\n }\n`;\n","import { LitElement, html, nothing, type PropertyValues } from 'lit';\nimport { devWarn } from '../../utils/dev-warn.js';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { tokenStyles } from '@helixui/tokens/lit';\nimport { helixDividerStyles } from './hx-divider.styles.js';\n\n/**\n * A visual separator element for dividing content sections. Supports\n * horizontal and vertical orientations, configurable spacing, and an optional\n * centered label rendered between two lines.\n *\n * @summary Horizontal or vertical separator line with optional label.\n *\n * @tag hx-divider\n *\n * @slot - Optional label text rendered centered between two lines.\n *\n * @csspart base - The root divider element.\n * @csspart label - The optional centered label wrapper.\n *\n * @cssprop [--hx-divider-color=var(--hx-color-neutral-200)] - Line color.\n * @cssprop [--hx-divider-width=var(--hx-border-width-thin)] - Line thickness.\n * @cssprop [--hx-divider-label-color=var(--hx-color-neutral-500)] - Label text color.\n * @cssprop [--hx-divider-label-font-size=var(--hx-font-size-sm)] - Label font size.\n * @cssprop [--hx-divider-label-gap=var(--hx-space-3)] - Gap between lines and label.\n */\n@customElement('hx-divider')\nexport class HelixDivider extends LitElement {\n static override styles = [tokenStyles, helixDividerStyles];\n\n /**\n * Orientation of the divider.\n * @attr orientation\n */\n @property({ type: String, reflect: true })\n orientation: 'horizontal' | 'vertical' = 'horizontal';\n\n /**\n * Spacing applied to the block axis (horizontal) or inline axis (vertical).\n * @attr spacing\n */\n @property({ type: String, reflect: true })\n spacing: 'none' | 'sm' | 'md' | 'lg' = 'md';\n\n /**\n * When true, renders the divider as decorative only (role=\"presentation\").\n * Screen readers will not announce decorative dividers.\n * @attr decorative\n */\n @property({ type: Boolean, reflect: true })\n decorative = false;\n\n /**\n * Optional text label rendered centered between the divider lines.\n * Also sets aria-label on the separator for assistive technologies.\n * @attr label\n */\n @property({ type: String, reflect: true })\n label?: string;\n\n /** @internal */\n @state()\n private _hasLabel = false;\n\n /** @internal */\n private _checkSlot(slot: HTMLSlotElement): void {\n const nodes = slot.assignedNodes({ flatten: true });\n this._hasLabel = nodes.some((node) =>\n node.nodeType === Node.TEXT_NODE\n ? (node.textContent ?? '').trim().length > 0\n : node.nodeType === Node.ELEMENT_NODE,\n );\n }\n\n /** @internal */\n private _slotChangeHandler = (e: Event): void => {\n this._checkSlot(e.target as HTMLSlotElement);\n };\n\n override firstUpdated(_changedProperties: PropertyValues<this>): void {\n super.firstUpdated(_changedProperties);\n const slot = this.shadowRoot?.querySelector<HTMLSlotElement>('slot:not([name])');\n if (slot) this._checkSlot(slot);\n if (!this.decorative && !this.label && !this._hasLabel) {\n devWarn(\n 'hx-divider',\n 'Non-decorative separator has no accessible name. Provide a `label` attribute or slot content, or set `decorative` to suppress this warning (WCAG 4.1.2).',\n );\n }\n }\n\n override render() {\n const isDecorative = this.decorative;\n const showLabel = this._hasLabel || !!this.label;\n\n return html`\n <div\n part=\"base\"\n class=\"divider${showLabel ? ' divider--labeled' : ''}\"\n role=\"${isDecorative ? 'presentation' : 'separator'}\"\n aria-orientation=\"${isDecorative ? nothing : this.orientation}\"\n aria-label=\"${!isDecorative && this.label ? this.label : nothing}\"\n >\n <span class=\"divider__line\"></span>\n ${showLabel\n ? html`<span part=\"label\" class=\"divider__label\">\n ${this.label ? html`${this.label}` : nothing}\n <slot @slotchange=${this._slotChangeHandler}></slot>\n </span>`\n : html`<slot @slotchange=${this._slotChangeHandler}></slot>`}\n <span class=\"divider__line\"></span>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-divider': HelixDivider;\n }\n}\n\n/** Canonical type alias for the hx-divider component. */\nexport type HxDivider = HelixDivider;\n\n/** @deprecated Use {@link HxDivider} instead. The `Wc` prefix was a legacy naming convention. */\nexport type WcDivider = HelixDivider;\n"],"names":["helixDividerStyles","css","HelixDivider","LitElement","slot","nodes","node","_changedProperties","_a","isDecorative","showLabel","html","nothing","tokenStyles","__decorateClass","property","state","customElement"],"mappings":";;;AAEO,MAAMA,IAAqBC;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;;;;;;ACyB3B,IAAMC,IAAN,cAA2BC,EAAW;AAAA,EAAtC,cAAA;AAAA,UAAA,GAAA,SAAA,GAQL,KAAA,cAAyC,cAOzC,KAAA,UAAuC,MAQvC,KAAA,aAAa,IAYb,KAAQ,YAAY,IAapB,KAAQ,qBAAqB,CAAC,MAAmB;AAC/C,WAAK,WAAW,EAAE,MAAyB;AAAA,IAC7C;AAAA,EAAA;AAAA;AAAA,EAZQ,WAAWC,GAA6B;AAC9C,UAAMC,IAAQD,EAAK,cAAc,EAAE,SAAS,IAAM;AAClD,SAAK,YAAYC,EAAM;AAAA,MAAK,CAACC,MAC3BA,EAAK,aAAa,KAAK,aAClBA,EAAK,eAAe,IAAI,OAAO,SAAS,IACzCA,EAAK,aAAa,KAAK;AAAA,IAAA;AAAA,EAE/B;AAAA,EAOS,aAAaC,GAAgD;;AACpE,UAAM,aAAaA,CAAkB;AACrC,UAAMH,KAAOI,IAAA,KAAK,eAAL,gBAAAA,EAAiB,cAA+B;AAC7D,IAAIJ,KAAM,KAAK,WAAWA,CAAI,GAC1B,CAAC,KAAK,cAAc,CAAC,KAAK,SAAU,KAAK;AAAA,EAM/C;AAAA,EAES,SAAS;AAChB,UAAMK,IAAe,KAAK,YACpBC,IAAY,KAAK,aAAa,CAAC,CAAC,KAAK;AAE3C,WAAOC;AAAA;AAAA;AAAA,wBAGaD,IAAY,sBAAsB,EAAE;AAAA,gBAC5CD,IAAe,iBAAiB,WAAW;AAAA,4BAC/BA,IAAeG,IAAU,KAAK,WAAW;AAAA,sBAC/C,CAACH,KAAgB,KAAK,QAAQ,KAAK,QAAQG,CAAO;AAAA;AAAA;AAAA,UAG9DF,IACEC;AAAA,gBACI,KAAK,QAAQA,IAAO,KAAK,KAAK,KAAKC,CAAO;AAAA,kCACxB,KAAK,kBAAkB;AAAA,uBAE7CD,sBAAyB,KAAK,kBAAkB,UAAU;AAAA;AAAA;AAAA;AAAA,EAIpE;AACF;AAvFaT,EACK,SAAS,CAACW,GAAab,CAAkB;AAOzDc,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAP9Bb,EAQX,WAAA,eAAA,CAAA;AAOAY,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAd9Bb,EAeX,WAAA,WAAA,CAAA;AAQAY,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAtB/Bb,EAuBX,WAAA,cAAA,CAAA;AAQAY,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GA9B9Bb,EA+BX,WAAA,SAAA,CAAA;AAIQY,EAAA;AAAA,EADPE,EAAA;AAAM,GAlCId,EAmCH,WAAA,aAAA,CAAA;AAnCGA,IAANY,EAAA;AAAA,EADNG,EAAc,YAAY;AAAA,GACdf,CAAA;"}
@@ -1,10 +1,10 @@
1
- import { css as b, LitElement as w, nothing as p, html as h } from "lit";
2
- import { query as f, state as c, property as d, customElement as _ } from "lit/decorators.js";
3
- import { classMap as y } from "lit/directives/class-map.js";
4
- import { ifDefined as m } from "lit/directives/if-defined.js";
5
- import { tokenStyles as x } from "@helixui/tokens/lit";
6
- import { l as g, u as S } from "./body-scroll-lock-VBa5TFP-.js";
7
- const E = b`
1
+ import { css as b, LitElement as v, html as h, nothing as w } from "lit";
2
+ import { query as m, state as c, property as d, customElement as y } from "lit/decorators.js";
3
+ import { classMap as g } from "lit/directives/class-map.js";
4
+ import { ifDefined as p } from "lit/directives/if-defined.js";
5
+ import { tokenStyles as _ } from "@helixui/tokens/lit";
6
+ import { l as x, u as E } from "./body-scroll-lock-VBa5TFP-.js";
7
+ const S = b`
8
8
  /* P2-03: Explicit [hidden] rule to survive CSS resets that may override the UA stylesheet. */
9
9
  [hidden] {
10
10
  display: none !important;
@@ -25,7 +25,7 @@ const E = b`
25
25
  .drawer-overlay {
26
26
  position: fixed;
27
27
  inset: 0;
28
- z-index: var(--hx-z-index-modal, 400);
28
+ z-index: var(--hx-z-index-modal, 1400);
29
29
  display: flex;
30
30
  pointer-events: none;
31
31
  visibility: hidden;
@@ -47,7 +47,7 @@ const E = b`
47
47
  inset: 0;
48
48
  background-color: var(--hx-drawer-backdrop-color, var(--hx-color-neutral-900));
49
49
  opacity: 0;
50
- transition: opacity var(--hx-duration-300, 300ms) var(--hx-ease-out, ease-out);
50
+ transition: opacity var(--hx-duration-slow, 300ms) var(--hx-easing-out, ease-out);
51
51
  }
52
52
 
53
53
  .drawer-overlay.is-open .drawer-backdrop {
@@ -71,10 +71,10 @@ const E = b`
71
71
  box-shadow: var(--hx-drawer-shadow, var(--hx-shadow-xl));
72
72
  overflow: hidden;
73
73
  outline: none;
74
- z-index: 1;
74
+ z-index: 1; /* local stacking context: panel above backdrop within overlay container */
75
75
  transition:
76
- transform var(--hx-duration-300, 300ms) var(--hx-ease-out, ease-out),
77
- opacity var(--hx-duration-300, 300ms) var(--hx-ease-out, ease-out);
76
+ transform var(--hx-duration-slow, 300ms) var(--hx-easing-out, ease-out),
77
+ opacity var(--hx-duration-slow, 300ms) var(--hx-easing-out, ease-out);
78
78
  opacity: 0;
79
79
  }
80
80
 
@@ -164,7 +164,7 @@ const E = b`
164
164
  justify-content: space-between;
165
165
  gap: var(--hx-space-4, 1rem);
166
166
  padding: var(--hx-drawer-header-padding, var(--hx-space-5, 1.25rem) var(--hx-space-6, 1.5rem));
167
- border-bottom: var(--hx-border-width-1, 1px) solid
167
+ border-bottom: var(--hx-border-width-thin, 1px) solid
168
168
  var(--hx-drawer-header-border-color, var(--hx-color-neutral-200));
169
169
  flex-shrink: 0;
170
170
  }
@@ -175,7 +175,7 @@ const E = b`
175
175
  font-family: var(--hx-font-family-sans);
176
176
  font-size: var(--hx-font-size-lg);
177
177
  font-weight: var(--hx-font-weight-semibold);
178
- line-height: var(--hx-line-height-snug);
178
+ line-height: var(--hx-line-height-tight);
179
179
  color: var(--hx-drawer-title-color, var(--hx-color-neutral-900));
180
180
  }
181
181
 
@@ -202,7 +202,7 @@ const E = b`
202
202
  color: var(--hx-color-neutral-500);
203
203
  cursor: pointer;
204
204
  flex-shrink: 0;
205
- transition: background-color var(--hx-duration-100, 100ms) ease;
205
+ transition: background-color var(--hx-duration-fast, 100ms) var(--hx-easing-default, ease);
206
206
  }
207
207
 
208
208
  .drawer-close-button:hover {
@@ -219,6 +219,32 @@ const E = b`
219
219
  outline-offset: var(--hx-focus-ring-offset, 2px);
220
220
  }
221
221
 
222
+ /* ─── Visually-hidden close button (no-header mode, WCAG 4.1.2) ─── */
223
+ /* Keeps the button reachable by keyboard/AT but invisible to sighted users. */
224
+
225
+ .drawer-close-button--sr-only {
226
+ position: absolute;
227
+ width: 1px;
228
+ height: 1px;
229
+ padding: 0;
230
+ margin: -1px;
231
+ overflow: hidden;
232
+ clip: rect(0, 0, 0, 0);
233
+ white-space: nowrap;
234
+ border: 0;
235
+ }
236
+
237
+ /* When focused via keyboard, restore visibility so users know where focus is. */
238
+ .drawer-close-button--sr-only:focus-visible {
239
+ position: static;
240
+ width: auto;
241
+ height: auto;
242
+ clip: auto;
243
+ white-space: normal;
244
+ overflow: visible;
245
+ margin: 0;
246
+ }
247
+
222
248
  /* ─── Body ─── */
223
249
 
224
250
  .drawer-body {
@@ -236,18 +262,18 @@ const E = b`
236
262
  justify-content: flex-end;
237
263
  gap: var(--hx-space-3, 0.75rem);
238
264
  padding: var(--hx-drawer-footer-padding, var(--hx-space-4, 1rem) var(--hx-space-6, 1.5rem));
239
- border-top: var(--hx-border-width-1, 1px) solid
265
+ border-top: var(--hx-border-width-thin, 1px) solid
240
266
  var(--hx-drawer-footer-border-color, var(--hx-color-neutral-200));
241
267
  flex-shrink: 0;
242
268
  }
243
269
  `;
244
- var k = Object.defineProperty, A = Object.getOwnPropertyDescriptor, o = (e, t, r, s) => {
245
- for (var i = s > 1 ? void 0 : s ? A(t, r) : t, n = e.length - 1, l; n >= 0; n--)
270
+ var k = Object.defineProperty, C = Object.getOwnPropertyDescriptor, a = (e, t, r, s) => {
271
+ for (var i = s > 1 ? void 0 : s ? C(t, r) : t, n = e.length - 1, l; n >= 0; n--)
246
272
  (l = e[n]) && (i = (s ? l(t, r, i) : l(i)) || i);
247
273
  return s && i && k(t, r, i), i;
248
274
  };
249
- let F = 0;
250
- const L = {
275
+ let A = 0;
276
+ const F = {
251
277
  sm: "20rem",
252
278
  md: "30rem",
253
279
  lg: "40rem",
@@ -262,9 +288,9 @@ const L = {
262
288
  '[tabindex]:not([tabindex="-1"])',
263
289
  "details > summary"
264
290
  ].join(",");
265
- let a = class extends w {
291
+ let o = class extends v {
266
292
  constructor() {
267
- super(...arguments), this._isOpen = !1, this._hasHeaderActionsSlot = !1, this._hasFooterSlot = !1, this._hasLabelSlot = !1, this._cachedFocusableElements = [], this._triggerElement = null, this._animationTimeout = null, this._hasScrollLock = !1, this._siblingAriaHiddenElements = [], this._titleId = `hx-drawer-title-${++F}`, this.open = !1, this.placement = "end", this.size = "md", this.contained = !1, this.noHeader = !1, this.noFooter = !1, this.label = "", this.closeLabel = "Close drawer", this._handleKeyDown = (e) => {
293
+ super(...arguments), this._isOpen = !1, this._hasHeaderActionsSlot = !1, this._hasFooterSlot = !1, this._hasLabelSlot = !1, this._cachedFocusableElements = [], this._triggerElement = null, this._animationTimeout = null, this._hasScrollLock = !1, this._siblingAriaHiddenElements = [], this._titleId = `hx-drawer-title-${++A}`, this.open = !1, this.placement = "end", this.size = "md", this.contained = !1, this.noHeader = !1, this.noFooter = !1, this.label = "", this.labelClose = "Close drawer", this._handleKeyDown = (e) => {
268
294
  if (this._isOpen) {
269
295
  if (e.key === "Escape") {
270
296
  e.preventDefault(), this.open = !1;
@@ -301,17 +327,17 @@ let a = class extends w {
301
327
  // ─── Private: Size CSS variable ───
302
328
  /** @internal */
303
329
  _applySizeVar() {
304
- const e = L[this.size] ?? this.size;
330
+ const e = F[this.size] ?? this.size;
305
331
  this.style.setProperty("--_drawer-size", e);
306
332
  }
307
333
  // ─── Private: Open / Close ───
308
334
  /** @internal */
309
335
  _lockBodyScroll() {
310
- this.contained || this._hasScrollLock || (g(), this._hasScrollLock = !0);
336
+ this.contained || this._hasScrollLock || (x(), this._hasScrollLock = !0);
311
337
  }
312
338
  /** @internal */
313
339
  _restoreBodyScroll() {
314
- this._hasScrollLock && (S(), this._hasScrollLock = !1);
340
+ this._hasScrollLock && (E(), this._hasScrollLock = !1);
315
341
  }
316
342
  /** @internal */
317
343
  _openDrawer() {
@@ -336,14 +362,19 @@ let a = class extends w {
336
362
  }
337
363
  /** @internal */
338
364
  _getAnimationDuration() {
339
- return window.matchMedia("(prefers-reduced-motion: reduce)").matches ? 0 : 300;
365
+ return typeof window > "u" || window.matchMedia("(prefers-reduced-motion: reduce)").matches ? 0 : 300;
340
366
  }
341
367
  // ─── Background aria-hidden management (P1-03) ───
342
368
  /** @internal */
343
369
  _hideBackgroundFromScreenReaders() {
344
- this.contained || (this._siblingAriaHiddenElements = [], Array.from(document.body.children).forEach((e) => {
345
- e === this || e.contains(this) || e.hasAttribute("aria-hidden") || (e.setAttribute("aria-hidden", "true"), this._siblingAriaHiddenElements.push(e));
346
- }));
370
+ if (this.contained) return;
371
+ this._siblingAriaHiddenElements = [];
372
+ let e = null, t = this.parentElement;
373
+ for (; t && t.parentElement !== document.body; )
374
+ t = t.parentElement;
375
+ t && t.parentElement === document.body && (e = t), Array.from(document.body.children).forEach((r) => {
376
+ r === this || r === e || r.hasAttribute("aria-hidden") || (r.setAttribute("aria-hidden", "true"), this._siblingAriaHiddenElements.push(r));
377
+ });
347
378
  }
348
379
  /** @internal */
349
380
  _restoreBackgroundForScreenReaders() {
@@ -382,8 +413,8 @@ let a = class extends w {
382
413
  ), t = ((i = this.shadowRoot) == null ? void 0 : i.querySelectorAll("slot")) ?? [], r = [];
383
414
  return t.forEach((n) => {
384
415
  n.assignedElements({ flatten: !0 }).forEach((l) => {
385
- l instanceof HTMLElement && (l.matches(u) && r.push(l), l.querySelectorAll(u).forEach((v) => {
386
- r.push(v);
416
+ l instanceof HTMLElement && (l.matches(u) && r.push(l), l.querySelectorAll(u).forEach((f) => {
417
+ r.push(f);
387
418
  }));
388
419
  });
389
420
  }), [...e, ...r].filter(
@@ -421,11 +452,20 @@ let a = class extends w {
421
452
  // ─── Render Helpers ───
422
453
  /** @internal */
423
454
  _renderHeader() {
424
- return this.noHeader ? p : h`
455
+ return this.noHeader ? h`
456
+ <button
457
+ part="close-btn"
458
+ class="drawer-close-button drawer-close-button--sr-only"
459
+ aria-label=${this.labelClose}
460
+ @click=${() => {
461
+ this.open = !1;
462
+ }}
463
+ ></button>
464
+ ` : h`
425
465
  <div part="header" class="drawer-header">
426
- <p part="title" id=${this._titleId} class="drawer-title">
466
+ <h2 part="title" id=${this._titleId} class="drawer-title">
427
467
  <slot name="label" @slotchange=${this._handleLabelSlotChange}></slot>
428
- </p>
468
+ </h2>
429
469
  <div class="drawer-header-actions">
430
470
  ${this._hasHeaderActionsSlot ? h`<slot
431
471
  name="header-actions"
@@ -436,9 +476,9 @@ let a = class extends w {
436
476
  style="display:none"
437
477
  ></slot>`}
438
478
  <button
439
- part="close-btn"
479
+ part="close-button"
440
480
  class="drawer-close-button"
441
- aria-label=${this.closeLabel}
481
+ aria-label=${this.labelClose}
442
482
  @click=${() => {
443
483
  this.open = !1;
444
484
  }}
@@ -465,7 +505,7 @@ let a = class extends w {
465
505
  }
466
506
  /** @internal */
467
507
  _renderFooter() {
468
- return this.noFooter ? p : h`
508
+ return this.noFooter ? w : h`
469
509
  <div part="footer" class="drawer-footer" ?hidden=${!this._hasFooterSlot}>
470
510
  <slot name="footer" @slotchange=${this._handleFooterSlotChange}></slot>
471
511
  </div>
@@ -480,11 +520,11 @@ let a = class extends w {
480
520
  return h`
481
521
  <div
482
522
  part="overlay"
483
- class=${y(e)}
523
+ class=${g(e)}
484
524
  role="dialog"
485
525
  aria-modal="true"
486
- aria-labelledby=${m(t)}
487
- aria-label=${m(r)}
526
+ aria-labelledby=${p(t)}
527
+ aria-label=${p(r)}
488
528
  tabindex="-1"
489
529
  @click=${this._handleOverlayClick}
490
530
  >
@@ -500,53 +540,53 @@ let a = class extends w {
500
540
  `;
501
541
  }
502
542
  };
503
- a.styles = [x, E];
504
- o([
505
- f(".drawer-overlay")
506
- ], a.prototype, "_overlayEl", 2);
507
- o([
508
- f(".drawer-panel")
509
- ], a.prototype, "_panelEl", 2);
510
- o([
543
+ o.styles = [_, S];
544
+ a([
545
+ m(".drawer-overlay")
546
+ ], o.prototype, "_overlayEl", 2);
547
+ a([
548
+ m(".drawer-panel")
549
+ ], o.prototype, "_panelEl", 2);
550
+ a([
511
551
  c()
512
- ], a.prototype, "_isOpen", 2);
513
- o([
552
+ ], o.prototype, "_isOpen", 2);
553
+ a([
514
554
  c()
515
- ], a.prototype, "_hasHeaderActionsSlot", 2);
516
- o([
555
+ ], o.prototype, "_hasHeaderActionsSlot", 2);
556
+ a([
517
557
  c()
518
- ], a.prototype, "_hasFooterSlot", 2);
519
- o([
558
+ ], o.prototype, "_hasFooterSlot", 2);
559
+ a([
520
560
  c()
521
- ], a.prototype, "_hasLabelSlot", 2);
522
- o([
561
+ ], o.prototype, "_hasLabelSlot", 2);
562
+ a([
523
563
  d({ type: Boolean, reflect: !0 })
524
- ], a.prototype, "open", 2);
525
- o([
564
+ ], o.prototype, "open", 2);
565
+ a([
526
566
  d({ type: String, reflect: !0 })
527
- ], a.prototype, "placement", 2);
528
- o([
567
+ ], o.prototype, "placement", 2);
568
+ a([
529
569
  d({ type: String, reflect: !0, attribute: "hx-size" })
530
- ], a.prototype, "size", 2);
531
- o([
570
+ ], o.prototype, "size", 2);
571
+ a([
532
572
  d({ type: Boolean, reflect: !0 })
533
- ], a.prototype, "contained", 2);
534
- o([
573
+ ], o.prototype, "contained", 2);
574
+ a([
535
575
  d({ type: Boolean, reflect: !0, attribute: "no-header" })
536
- ], a.prototype, "noHeader", 2);
537
- o([
576
+ ], o.prototype, "noHeader", 2);
577
+ a([
538
578
  d({ type: Boolean, reflect: !0, attribute: "no-footer" })
539
- ], a.prototype, "noFooter", 2);
540
- o([
579
+ ], o.prototype, "noFooter", 2);
580
+ a([
541
581
  d({ type: String })
542
- ], a.prototype, "label", 2);
543
- o([
544
- d({ type: String, attribute: "close-label" })
545
- ], a.prototype, "closeLabel", 2);
546
- a = o([
547
- _("hx-drawer")
548
- ], a);
582
+ ], o.prototype, "label", 2);
583
+ a([
584
+ d({ type: String, attribute: "label-close" })
585
+ ], o.prototype, "labelClose", 2);
586
+ o = a([
587
+ y("hx-drawer")
588
+ ], o);
549
589
  export {
550
- a as H
590
+ o as H
551
591
  };
552
- //# sourceMappingURL=hx-drawer-CJcRZcns.js.map
592
+ //# sourceMappingURL=hx-drawer-e0qeGxAD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hx-drawer-e0qeGxAD.js","sources":["../../src/components/hx-drawer/hx-drawer.styles.ts","../../src/components/hx-drawer/hx-drawer.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixDrawerStyles = css`\n /* P2-03: Explicit [hidden] rule to survive CSS resets that may override the UA stylesheet. */\n [hidden] {\n display: none !important;\n }\n\n :host {\n display: contents;\n }\n\n :host([contained]) {\n display: block;\n position: relative;\n overflow: hidden;\n }\n\n /* ─── Overlay ─── */\n\n .drawer-overlay {\n position: fixed;\n inset: 0;\n z-index: var(--hx-z-index-modal, 1400);\n display: flex;\n pointer-events: none;\n visibility: hidden;\n }\n\n :host([contained]) .drawer-overlay {\n position: absolute;\n }\n\n .drawer-overlay.is-open {\n pointer-events: auto;\n visibility: visible;\n }\n\n /* ─── Backdrop ─── */\n\n .drawer-backdrop {\n position: absolute;\n inset: 0;\n background-color: var(--hx-drawer-backdrop-color, var(--hx-color-neutral-900));\n opacity: 0;\n transition: opacity var(--hx-duration-slow, 300ms) var(--hx-easing-out, ease-out);\n }\n\n .drawer-overlay.is-open .drawer-backdrop {\n opacity: var(--hx-drawer-backdrop-opacity, 0.5);\n }\n\n @media (prefers-reduced-motion: reduce) {\n .drawer-backdrop {\n transition: none;\n }\n }\n\n /* ─── Panel ─── */\n\n .drawer-panel {\n position: absolute;\n display: flex;\n flex-direction: column;\n background-color: var(--hx-drawer-bg, var(--hx-color-neutral-0));\n color: var(--hx-drawer-color, var(--hx-color-neutral-900));\n box-shadow: var(--hx-drawer-shadow, var(--hx-shadow-xl));\n overflow: hidden;\n outline: none;\n z-index: 1; /* local stacking context: panel above backdrop within overlay container */\n transition:\n transform var(--hx-duration-slow, 300ms) var(--hx-easing-out, ease-out),\n opacity var(--hx-duration-slow, 300ms) var(--hx-easing-out, ease-out);\n opacity: 0;\n }\n\n @media (prefers-reduced-motion: reduce) {\n .drawer-panel {\n transition: none;\n }\n\n .drawer-close-button {\n transition: none;\n }\n }\n\n /* ─── Placement: end (default — right) ─── */\n\n :host([placement='end']) .drawer-panel,\n :host(:not([placement])) .drawer-panel {\n top: 0;\n inset-inline-end: 0;\n bottom: 0;\n width: var(--_drawer-size, var(--hx-drawer-size-md, 30rem));\n max-width: 100%;\n transform: translateX(100%);\n }\n\n :host([placement='end']) .drawer-overlay.is-open .drawer-panel,\n :host(:not([placement])) .drawer-overlay.is-open .drawer-panel {\n transform: translateX(0);\n opacity: 1;\n }\n\n /* ─── Placement: start (left) ─── */\n\n :host([placement='start']) .drawer-panel {\n top: 0;\n inset-inline-start: 0;\n bottom: 0;\n width: var(--_drawer-size, var(--hx-drawer-size-md, 30rem));\n max-width: 100%;\n transform: translateX(-100%);\n }\n\n :host([placement='start']) .drawer-overlay.is-open .drawer-panel {\n transform: translateX(0);\n opacity: 1;\n }\n\n /* ─── Placement: top ─── */\n\n :host([placement='top']) .drawer-panel {\n top: 0;\n inset-inline-start: 0;\n inset-inline-end: 0;\n height: var(--_drawer-size, var(--hx-drawer-size-md, 30rem));\n max-height: 100%;\n width: 100%;\n transform: translateY(-100%);\n }\n\n :host([placement='top']) .drawer-overlay.is-open .drawer-panel {\n transform: translateY(0);\n opacity: 1;\n }\n\n /* ─── Placement: bottom ─── */\n\n :host([placement='bottom']) .drawer-panel {\n bottom: 0;\n inset-inline-start: 0;\n inset-inline-end: 0;\n height: var(--_drawer-size, var(--hx-drawer-size-md, 30rem));\n max-height: 100%;\n width: 100%;\n transform: translateY(100%);\n }\n\n :host([placement='bottom']) .drawer-overlay.is-open .drawer-panel {\n transform: translateY(0);\n opacity: 1;\n }\n\n /* ─── Header ─── */\n\n .drawer-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--hx-space-4, 1rem);\n padding: var(--hx-drawer-header-padding, var(--hx-space-5, 1.25rem) var(--hx-space-6, 1.5rem));\n border-bottom: var(--hx-border-width-thin, 1px) solid\n var(--hx-drawer-header-border-color, var(--hx-color-neutral-200));\n flex-shrink: 0;\n }\n\n .drawer-title {\n margin: 0;\n flex: 1 1 auto;\n font-family: var(--hx-font-family-sans);\n font-size: var(--hx-font-size-lg);\n font-weight: var(--hx-font-weight-semibold);\n line-height: var(--hx-line-height-tight);\n color: var(--hx-drawer-title-color, var(--hx-color-neutral-900));\n }\n\n .drawer-header-actions {\n display: flex;\n align-items: center;\n gap: var(--hx-space-2, 0.5rem);\n flex-shrink: 0;\n }\n\n .drawer-close-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n /* WCAG 2.5.5 (healthcare mandate): minimum 44x44px touch target */\n min-width: var(--hx-touch-target-min, 2.75rem);\n min-height: var(--hx-touch-target-min, 2.75rem);\n width: var(--hx-touch-target-min, 2.75rem);\n height: var(--hx-touch-target-min, 2.75rem);\n padding: 0;\n border: none;\n border-radius: var(--hx-border-radius-md, 0.375rem);\n background: transparent;\n color: var(--hx-color-neutral-500);\n cursor: pointer;\n flex-shrink: 0;\n transition: background-color var(--hx-duration-fast, 100ms) var(--hx-easing-default, ease);\n }\n\n .drawer-close-button:hover {\n background-color: var(--hx-color-neutral-100);\n color: var(--hx-color-neutral-900);\n }\n\n .drawer-close-button:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid\n var(\n --hx-drawer-close-btn-focus-ring-color,\n var(--hx-focus-ring-color, var(--hx-color-primary-500))\n );\n outline-offset: var(--hx-focus-ring-offset, 2px);\n }\n\n /* ─── Visually-hidden close button (no-header mode, WCAG 4.1.2) ─── */\n /* Keeps the button reachable by keyboard/AT but invisible to sighted users. */\n\n .drawer-close-button--sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n\n /* When focused via keyboard, restore visibility so users know where focus is. */\n .drawer-close-button--sr-only:focus-visible {\n position: static;\n width: auto;\n height: auto;\n clip: auto;\n white-space: normal;\n overflow: visible;\n margin: 0;\n }\n\n /* ─── Body ─── */\n\n .drawer-body {\n flex: 1 1 auto;\n padding: var(--hx-drawer-body-padding, var(--hx-space-6, 1.5rem));\n overflow-y: auto;\n overscroll-behavior: contain;\n }\n\n /* ─── Footer ─── */\n\n .drawer-footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: var(--hx-space-3, 0.75rem);\n padding: var(--hx-drawer-footer-padding, var(--hx-space-4, 1rem) var(--hx-space-6, 1.5rem));\n border-top: var(--hx-border-width-thin, 1px) solid\n var(--hx-drawer-footer-border-color, var(--hx-color-neutral-200));\n flex-shrink: 0;\n }\n`;\n","import { LitElement, html, nothing, type PropertyValues } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { tokenStyles } from '@helixui/tokens/lit';\nimport { lockBodyScroll, unlockBodyScroll } from '../../utils/body-scroll-lock.js';\nimport { devWarn } from '../../utils/dev-warn.js';\nimport { helixDrawerStyles } from './hx-drawer.styles.js';\n\n// Module-level counter for stable, SSR-safe IDs (avoids Math.random() hydration mismatch)\nlet _hxDrawerIdCounter = 0;\n\ntype DrawerSizePreset = 'sm' | 'md' | 'lg' | 'full';\ntype DrawerSize = DrawerSizePreset | (string & Record<never, never>);\n\nconst DRAWER_SIZE_MAP: Record<DrawerSizePreset, string> = {\n sm: '20rem',\n md: '30rem',\n lg: '40rem',\n full: '100%',\n};\n\nconst FOCUSABLE_SELECTORS = [\n 'a[href]',\n 'area[href]',\n 'button:not([disabled])',\n 'input:not([disabled])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n '[tabindex]:not([tabindex=\"-1\"])',\n 'details > summary',\n].join(',');\n\n/**\n * A slide-in drawer panel that can appear from any edge of the viewport.\n * Supports focus trapping, overlay backdrop, keyboard navigation, and full\n * ARIA labelling for enterprise healthcare accessibility requirements.\n *\n * @summary Slide-in panel overlay from any viewport edge.\n *\n * @tag hx-drawer\n *\n * @slot label - The drawer title text.\n * @slot header-actions - Action buttons displayed in the header near the close button.\n * @slot - Default slot for the drawer body content.\n * @slot footer - Action buttons or footer content.\n *\n * @fires {CustomEvent<void>} hx-show - Fired when the drawer begins to open.\n * @fires {CustomEvent<void>} hx-after-show - Fired after the drawer open animation completes.\n * @fires {CustomEvent<void>} hx-hide - Fired when the drawer begins to close.\n * @fires {CustomEvent<void>} hx-after-hide - Fired after the drawer close animation completes.\n * @fires {CustomEvent<void>} hx-initial-focus - Fired when initial focus is set inside the drawer. Cancelable to override focus behavior.\n *\n * @csspart overlay - The full-screen overlay container (includes backdrop and panel).\n * @csspart panel - The drawer panel itself.\n * @csspart header - The header region containing the title and actions.\n * @csspart title - The drawer title element.\n * @csspart close-button - The built-in close button.\n * @csspart close-btn - The visually-hidden close button rendered when noHeader is true.\n * @csspart body - The scrollable body region.\n * @csspart footer - The footer region.\n *\n * @attr [label] - Accessible label for the dialog when no visible label slot is provided.\n *\n * @cssprop [--hx-drawer-bg=var(--hx-color-neutral-0)] - Drawer panel background color.\n * @cssprop [--hx-drawer-color=var(--hx-color-neutral-900)] - Drawer panel text color.\n * @cssprop [--hx-drawer-shadow=var(--hx-shadow-xl)] - Drawer panel box shadow.\n * @cssprop [--hx-drawer-backdrop-color=var(--hx-color-neutral-900)] - Backdrop color.\n * @cssprop [--hx-drawer-backdrop-opacity=0.5] - Backdrop opacity.\n * @cssprop [--hx-drawer-header-padding] - Padding inside the header.\n * @cssprop [--hx-drawer-header-border-color=var(--hx-color-neutral-200)] - Header border color.\n * @cssprop [--hx-drawer-title-color=var(--hx-color-neutral-900)] - Title text color.\n * @cssprop [--hx-drawer-body-padding] - Padding inside the body.\n * @cssprop [--hx-drawer-footer-padding] - Padding inside the footer.\n * @cssprop [--hx-drawer-footer-border-color=var(--hx-color-neutral-200)] - Footer border color.\n */\n@customElement('hx-drawer')\nexport class HelixDrawer extends LitElement {\n static override styles = [tokenStyles, helixDrawerStyles];\n\n // ─── Queries ───\n\n /**\n * Reference to the overlay element that wraps the backdrop and panel.\n * @internal\n */\n @query('.drawer-overlay')\n private _overlayEl: HTMLElement | null | undefined;\n\n /**\n * Reference to the drawer panel element used for focus management.\n * @internal\n */\n @query('.drawer-panel')\n private _panelEl: HTMLElement | null | undefined;\n\n // ─── Internal state ───\n\n /**\n * Whether the drawer is in the open state and visible to the user.\n * @internal\n */\n @state()\n private _isOpen = false;\n\n /**\n * Whether the header-actions slot has any assigned content.\n * @internal\n */\n @state()\n private _hasHeaderActionsSlot = false;\n\n /**\n * Whether the footer slot has any assigned content.\n * @internal\n */\n @state()\n private _hasFooterSlot = false;\n\n /**\n * Whether the label slot has any assigned content.\n * @internal\n */\n @state()\n private _hasLabelSlot = false;\n\n /**\n * Cached list of focusable elements within the drawer, used for focus trapping.\n * @internal\n */\n private _cachedFocusableElements: HTMLElement[] = [];\n /**\n * The element that triggered the drawer to open, restored focus when the drawer closes.\n * @internal\n */\n private _triggerElement: HTMLElement | null = null;\n /**\n * Handle for the pending animation end timeout, cleared when the drawer opens or closes again.\n * @internal\n */\n private _animationTimeout: ReturnType<typeof setTimeout> | null = null;\n /** Whether this drawer instance currently holds a body-scroll lock. */\n /** @internal */\n private _hasScrollLock = false;\n /**\n * Elements outside the drawer that were given aria-hidden during open, restored on close.\n * @internal\n */\n private _siblingAriaHiddenElements: Element[] = [];\n\n /**\n * Unique ID for the title element, used by aria-labelledby to link the dialog to its label.\n * @internal\n */\n private readonly _titleId = `hx-drawer-title-${++_hxDrawerIdCounter}`;\n\n // ─── Public Properties ───\n\n /**\n * Controls whether the drawer is open.\n * @attr open\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n /**\n * Which edge of the viewport the drawer slides in from.\n * @attr placement\n */\n @property({ type: String, reflect: true })\n placement: 'start' | 'end' | 'top' | 'bottom' = 'end';\n\n /**\n * The size of the drawer panel. Use 'sm', 'md', 'lg', 'full', or any valid CSS length.\n * @attr hx-size\n */\n @property({ type: String, reflect: true, attribute: 'hx-size' })\n size: 'sm' | 'md' | 'lg' | 'full' | (string & Record<never, never>) = 'md';\n\n /**\n * When true, the drawer is constrained to its positioned parent instead of the viewport.\n * The host element must have `position: relative` (or the library handles it via :host).\n * @attr contained\n */\n @property({ type: Boolean, reflect: true })\n contained = false;\n\n /**\n * When true, the header (title, header-actions, close button) is hidden.\n * @attr no-header\n */\n @property({ type: Boolean, reflect: true, attribute: 'no-header' })\n noHeader = false;\n\n /**\n * When true, the footer slot is hidden.\n * @attr no-footer\n */\n @property({ type: Boolean, reflect: true, attribute: 'no-footer' })\n noFooter = false;\n\n /**\n * Accessible label for the dialog when the `label` slot is not populated.\n * When the `label` slot is used, `aria-labelledby` takes precedence.\n * @attr label\n */\n @property({ type: String })\n label = '';\n\n /** Accessible label for the built-in close button. Override for localized text. */\n @property({ type: String, attribute: 'label-close' })\n labelClose = 'Close drawer';\n\n // ─── Lifecycle ───\n\n override connectedCallback(): void {\n super.connectedCallback();\n // Backward compat: accept legacy `size` attribute. When present and `hx-size`\n // is not set, map the value and emit a deprecation warning.\n const legacySize = this.getAttribute('size');\n if (legacySize !== null && !this.hasAttribute('hx-size')) {\n devWarn('hx-drawer', 'The \"size\" attribute is deprecated. Use \"hx-size\" instead.');\n this.size = legacySize as DrawerSize;\n }\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this._removeListeners();\n if (this._animationTimeout !== null) {\n clearTimeout(this._animationTimeout);\n }\n this._restoreBodyScroll();\n }\n\n override updated(changedProperties: PropertyValues<this>): void {\n super.updated(changedProperties);\n\n if (changedProperties.has('open')) {\n if (this.open) {\n this._openDrawer();\n } else {\n this._closeDrawer();\n }\n }\n\n if (changedProperties.has('size')) {\n this._applySizeVar();\n }\n }\n\n // ─── Public Methods ───\n\n /** Opens the drawer. */\n show(): void {\n this.open = true;\n }\n\n /** Closes the drawer. */\n hide(): void {\n this.open = false;\n }\n\n // ─── Private: Size CSS variable ───\n\n /** @internal */\n private _applySizeVar(): void {\n const resolvedSize = DRAWER_SIZE_MAP[this.size as DrawerSizePreset] ?? this.size;\n this.style.setProperty('--_drawer-size', resolvedSize);\n }\n\n // ─── Private: Open / Close ───\n\n /** @internal */\n private _lockBodyScroll(): void {\n if (this.contained || this._hasScrollLock) return;\n // Uses a shared reference-counted lock so that simultaneous hx-dialog / hx-drawer\n // instances don't clobber each other when one closes before the other\n // (see utils/body-scroll-lock.ts).\n lockBodyScroll();\n this._hasScrollLock = true;\n }\n\n /** @internal */\n private _restoreBodyScroll(): void {\n if (!this._hasScrollLock) return;\n unlockBodyScroll();\n this._hasScrollLock = false;\n }\n\n /** @internal */\n private _openDrawer(): void {\n // Capture trigger for focus restoration (P2-04: use instanceof guard)\n const active = document.activeElement;\n this._triggerElement = active instanceof HTMLElement ? active : null;\n\n // P1-05: clear any pending animation timeout before scheduling a new one\n if (this._animationTimeout !== null) {\n clearTimeout(this._animationTimeout);\n this._animationTimeout = null;\n }\n\n this._applySizeVar();\n this._lockBodyScroll();\n this._hideBackgroundFromScreenReaders();\n\n // Dispatch hx-show before visual update\n this.dispatchEvent(new CustomEvent<void>('hx-show', { bubbles: true, composed: true }));\n\n // Transition to open state\n void this.updateComplete\n .then(() => {\n this._isOpen = true;\n this._addListeners();\n\n // Set initial focus after next render\n return this.updateComplete;\n })\n .then(() => {\n this._cachedFocusableElements = this._getFocusableElements();\n this._setInitialFocus();\n\n // Dispatch hx-after-show after animation duration\n const duration = this._getAnimationDuration();\n this._animationTimeout = setTimeout(() => {\n this.dispatchEvent(\n new CustomEvent<void>('hx-after-show', { bubbles: true, composed: true }),\n );\n }, duration);\n })\n .catch(console.error);\n }\n\n /** @internal */\n private _closeDrawer(): void {\n // P1-05: clear any pending animation timeout before scheduling a new one\n if (this._animationTimeout !== null) {\n clearTimeout(this._animationTimeout);\n this._animationTimeout = null;\n }\n\n this._isOpen = false;\n this._removeListeners();\n this._cachedFocusableElements = [];\n this._restoreBodyScroll();\n this._restoreBackgroundForScreenReaders();\n\n this.dispatchEvent(new CustomEvent<void>('hx-hide', { bubbles: true, composed: true }));\n\n // Restore focus to the trigger immediately — before any animation timeout.\n // WCAG 2.4.3: focus must never remain on invisible or inert content.\n if (this._triggerElement && typeof this._triggerElement.focus === 'function') {\n this._triggerElement.focus();\n }\n this._triggerElement = null;\n\n // Animation cleanup only — no focus management inside this timeout.\n const duration = this._getAnimationDuration();\n this._animationTimeout = setTimeout(() => {\n this.dispatchEvent(new CustomEvent<void>('hx-after-hide', { bubbles: true, composed: true }));\n }, duration);\n }\n\n /** @internal */\n private _getAnimationDuration(): number {\n if (typeof window === 'undefined') return 0;\n if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) return 0;\n return 300;\n }\n\n // ─── Background aria-hidden management (P1-03) ───\n\n /** @internal */\n private _hideBackgroundFromScreenReaders(): void {\n if (this.contained) return;\n this._siblingAriaHiddenElements = [];\n // Walk the parent chain once to find which body child is an ancestor of this component.\n // This avoids calling child.contains(this) in a loop (which is O(n * depth)).\n // Starting from parentElement avoids aliasing `this` to a local variable.\n let ancestorBodyChild: Element | null = null;\n let el: Element | null = this.parentElement;\n while (el && el.parentElement !== document.body) {\n el = el.parentElement;\n }\n if (el && el.parentElement === document.body) {\n ancestorBodyChild = el;\n }\n Array.from(document.body.children).forEach((child) => {\n if (child === this || child === ancestorBodyChild) return;\n if (!child.hasAttribute('aria-hidden')) {\n child.setAttribute('aria-hidden', 'true');\n this._siblingAriaHiddenElements.push(child);\n }\n });\n }\n\n /** @internal */\n private _restoreBackgroundForScreenReaders(): void {\n this._siblingAriaHiddenElements.forEach((el) => {\n el.removeAttribute('aria-hidden');\n });\n this._siblingAriaHiddenElements = [];\n }\n\n // ─── Event Listeners (P1-01: use only document listener, not overlay) ───\n\n /** @internal */\n private _addListeners(): void {\n document.addEventListener('keydown', this._handleKeyDown);\n }\n\n /** @internal */\n private _removeListeners(): void {\n document.removeEventListener('keydown', this._handleKeyDown);\n }\n\n // ─── Keyboard Handler ───\n\n /**\n * Handles keyboard events on the document to trap focus and close the drawer on Escape.\n * @internal\n */\n private _handleKeyDown = (e: KeyboardEvent): void => {\n if (!this._isOpen) return;\n\n if (e.key === 'Escape') {\n e.preventDefault();\n this.open = false;\n return;\n }\n\n if (e.key === 'Tab') {\n this._trapFocus(e);\n }\n };\n\n // ─── Focus ───\n\n /** @internal */\n private _setInitialFocus(): void {\n const event = new CustomEvent<void>('hx-initial-focus', {\n bubbles: true,\n composed: true,\n cancelable: true,\n });\n this.dispatchEvent(event);\n\n if (!event.defaultPrevented) {\n const focusable = this._cachedFocusableElements;\n if (focusable.length > 0 && focusable[0]) {\n focusable[0].focus();\n } else {\n this._panelEl?.focus();\n }\n }\n }\n\n /** @internal */\n private _getFocusableElements(): HTMLElement[] {\n const shadowFocusable = Array.from(\n this.shadowRoot?.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTORS) ?? [],\n );\n\n const slots = this.shadowRoot?.querySelectorAll<HTMLSlotElement>('slot') ?? [];\n const lightFocusable: HTMLElement[] = [];\n\n slots.forEach((slot) => {\n slot.assignedElements({ flatten: true }).forEach((el) => {\n if (el instanceof HTMLElement) {\n if (el.matches(FOCUSABLE_SELECTORS)) {\n lightFocusable.push(el);\n }\n el.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTORS).forEach((child) => {\n lightFocusable.push(child);\n });\n }\n });\n });\n\n return [...shadowFocusable, ...lightFocusable].filter(\n (el) => !el.hasAttribute('disabled') && el.getAttribute('tabindex') !== '-1',\n );\n }\n\n /** @internal */\n private _trapFocus(e: KeyboardEvent): void {\n const focusable =\n this._cachedFocusableElements.length > 0\n ? this._cachedFocusableElements\n : this._getFocusableElements();\n\n if (focusable.length === 0) {\n e.preventDefault();\n return;\n }\n\n const [first, ...rest] = focusable;\n const last = rest.length > 0 ? rest[rest.length - 1] : first;\n\n if (!first || !last) return;\n\n // P1-02: Use document.activeElement for reliable detection of slotted (light DOM) elements.\n // shadowRoot.activeElement returns the <slot> host for slotted content, not the actual element.\n const active = document.activeElement as HTMLElement | null;\n\n if (e.shiftKey) {\n if (active === first) {\n e.preventDefault();\n last.focus();\n }\n } else {\n if (active === last) {\n e.preventDefault();\n first.focus();\n }\n }\n }\n\n // ─── Overlay Click ───\n\n /**\n * Handles clicks on the overlay backdrop to close the drawer when the user clicks outside the panel.\n * @internal\n */\n private _handleOverlayClick = (e: MouseEvent): void => {\n // Only close when clicking the overlay itself (backdrop), not the panel\n const target = e.target as HTMLElement;\n if (target === this._overlayEl || target.classList.contains('drawer-backdrop')) {\n this.open = false;\n }\n };\n\n // ─── Slot change handlers ───\n\n /** @internal */\n private _handleHeaderActionsSlotChange(e: Event): void {\n const slot = e.target as HTMLSlotElement;\n this._hasHeaderActionsSlot = slot.assignedNodes({ flatten: true }).length > 0;\n }\n\n /** @internal */\n private _handleFooterSlotChange(e: Event): void {\n const slot = e.target as HTMLSlotElement;\n this._hasFooterSlot = slot.assignedNodes({ flatten: true }).length > 0;\n }\n\n /** @internal */\n private _handleLabelSlotChange(e: Event): void {\n const slot = e.target as HTMLSlotElement;\n this._hasLabelSlot = slot.assignedNodes({ flatten: true }).length > 0;\n }\n\n // ─── Render Helpers ───\n\n /** @internal */\n private _renderHeader() {\n if (this.noHeader) {\n // WCAG 4.1.2: When the header is hidden there must still be a reachable close\n // mechanism for keyboard and mouse/touch users. Render a visually-hidden close\n // button that is focusable and announced by screen readers.\n return html`\n <button\n part=\"close-btn\"\n class=\"drawer-close-button drawer-close-button--sr-only\"\n aria-label=${this.labelClose}\n @click=${() => {\n this.open = false;\n }}\n ></button>\n `;\n }\n\n return html`\n <div part=\"header\" class=\"drawer-header\">\n <h2 part=\"title\" id=${this._titleId} class=\"drawer-title\">\n <slot name=\"label\" @slotchange=${this._handleLabelSlotChange}></slot>\n </h2>\n <div class=\"drawer-header-actions\">\n ${this._hasHeaderActionsSlot\n ? html`<slot\n name=\"header-actions\"\n @slotchange=${this._handleHeaderActionsSlotChange}\n ></slot>`\n : html`<slot\n name=\"header-actions\"\n @slotchange=${this._handleHeaderActionsSlotChange}\n style=\"display:none\"\n ></slot>`}\n <button\n part=\"close-button\"\n class=\"drawer-close-button\"\n aria-label=${this.labelClose}\n @click=${() => {\n this.open = false;\n }}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line>\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line>\n </svg>\n </button>\n </div>\n </div>\n `;\n }\n\n /** @internal */\n private _renderFooter() {\n if (this.noFooter) return nothing;\n\n return html`\n <div part=\"footer\" class=\"drawer-footer\" ?hidden=${!this._hasFooterSlot}>\n <slot name=\"footer\" @slotchange=${this._handleFooterSlotChange}></slot>\n </div>\n `;\n }\n\n // ─── Render ───\n\n override render() {\n const overlayClasses = {\n 'drawer-overlay': true,\n 'is-open': this._isOpen,\n };\n\n // P1-06: ensure the dialog always has an accessible name.\n // Priority: aria-labelledby (slot) > aria-label (prop) > aria-label (fallback \"Drawer\")\n const ariaLabelledby = this._hasLabelSlot ? this._titleId : undefined;\n const ariaLabel = !this._hasLabelSlot ? this.label || 'Drawer' : undefined;\n\n return html`\n <div\n part=\"overlay\"\n class=${classMap(overlayClasses)}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=${ifDefined(ariaLabelledby)}\n aria-label=${ifDefined(ariaLabel)}\n tabindex=\"-1\"\n @click=${this._handleOverlayClick}\n >\n <div class=\"drawer-backdrop\" aria-hidden=\"true\"></div>\n <div part=\"panel\" class=\"drawer-panel\" tabindex=\"-1\">\n ${this._renderHeader()}\n <div part=\"body\" class=\"drawer-body\">\n <slot></slot>\n </div>\n ${this._renderFooter()}\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-drawer': HelixDrawer;\n }\n}\n"],"names":["helixDrawerStyles","css","_hxDrawerIdCounter","DRAWER_SIZE_MAP","FOCUSABLE_SELECTORS","HelixDrawer","LitElement","target","legacySize","changedProperties","resolvedSize","lockBodyScroll","unlockBodyScroll","active","duration","ancestorBodyChild","el","child","event","focusable","_a","shadowFocusable","slots","_b","lightFocusable","slot","first","rest","last","html","nothing","overlayClasses","ariaLabelledby","ariaLabel","classMap","ifDefined","tokenStyles","__decorateClass","query","state","property","customElement"],"mappings":";;;;;;AAEO,MAAMA,IAAoBC;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;A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"}