@helixui/library 1.1.1 → 1.1.2-next.2

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 (623) hide show
  1. package/custom-elements.json +8089 -7072
  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/index.js +1 -1
  23. package/dist/components/hx-badge/hx-badge.d.ts.map +1 -1
  24. package/dist/components/hx-badge/hx-badge.styles.d.ts.map +1 -1
  25. package/dist/components/hx-badge/index.js +1 -1
  26. package/dist/components/hx-banner/hx-banner.d.ts +15 -5
  27. package/dist/components/hx-banner/hx-banner.d.ts.map +1 -1
  28. package/dist/components/hx-banner/hx-banner.styles.d.ts.map +1 -1
  29. package/dist/components/hx-banner/index.js +1 -1
  30. package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts +32 -3
  31. package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts.map +1 -1
  32. package/dist/components/hx-breadcrumb/index.js +1 -1
  33. package/dist/components/hx-button/hx-button.d.ts +11 -8
  34. package/dist/components/hx-button/hx-button.d.ts.map +1 -1
  35. package/dist/components/hx-button/hx-button.styles.d.ts.map +1 -1
  36. package/dist/components/hx-button/index.js +1 -1
  37. package/dist/components/hx-button-group/hx-button-group.d.ts +3 -6
  38. package/dist/components/hx-button-group/hx-button-group.d.ts.map +1 -1
  39. package/dist/components/hx-button-group/index.js +1 -1
  40. package/dist/components/hx-card/hx-card.d.ts +7 -7
  41. package/dist/components/hx-card/hx-card.d.ts.map +1 -1
  42. package/dist/components/hx-card/index.js +1 -1
  43. package/dist/components/hx-carousel/hx-carousel.d.ts +2 -2
  44. package/dist/components/hx-carousel/index.js +1 -1
  45. package/dist/components/hx-checkbox/hx-checkbox.d.ts +18 -18
  46. package/dist/components/hx-checkbox/hx-checkbox.d.ts.map +1 -1
  47. package/dist/components/hx-checkbox/hx-checkbox.styles.d.ts.map +1 -1
  48. package/dist/components/hx-checkbox/index.js +1 -1
  49. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts +8 -3
  50. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts.map +1 -1
  51. package/dist/components/hx-checkbox-group/index.js +1 -1
  52. package/dist/components/hx-clinical-status/hx-clinical-status.d.ts +126 -0
  53. package/dist/components/hx-clinical-status/hx-clinical-status.d.ts.map +1 -0
  54. package/dist/components/hx-clinical-status/hx-clinical-status.styles.d.ts +2 -0
  55. package/dist/components/hx-clinical-status/hx-clinical-status.styles.d.ts.map +1 -0
  56. package/dist/components/hx-clinical-status/index.d.ts +3 -0
  57. package/dist/components/hx-clinical-status/index.d.ts.map +1 -0
  58. package/dist/components/hx-clinical-status/index.js +5 -0
  59. package/dist/components/hx-clinical-status/index.js.map +1 -0
  60. package/dist/components/hx-code-snippet/hx-code-snippet.styles.d.ts.map +1 -1
  61. package/dist/components/hx-code-snippet/index.js +1 -1
  62. package/dist/components/hx-color-picker/color-utils.d.ts +27 -0
  63. package/dist/components/hx-color-picker/color-utils.d.ts.map +1 -0
  64. package/dist/components/hx-color-picker/hx-color-picker.d.ts +16 -4
  65. package/dist/components/hx-color-picker/hx-color-picker.d.ts.map +1 -1
  66. package/dist/components/hx-color-picker/index.js +1 -1
  67. package/dist/components/hx-combobox/hx-combobox.d.ts +9 -4
  68. package/dist/components/hx-combobox/hx-combobox.d.ts.map +1 -1
  69. package/dist/components/hx-combobox/hx-combobox.styles.d.ts.map +1 -1
  70. package/dist/components/hx-combobox/index.js +1 -1
  71. package/dist/components/hx-container/index.js +1 -1
  72. package/dist/components/hx-copy-button/hx-copy-button.d.ts +6 -1
  73. package/dist/components/hx-copy-button/hx-copy-button.d.ts.map +1 -1
  74. package/dist/components/hx-copy-button/index.js +1 -1
  75. package/dist/components/hx-counter/hx-counter.d.ts +20 -3
  76. package/dist/components/hx-counter/hx-counter.d.ts.map +1 -1
  77. package/dist/components/hx-counter/hx-counter.styles.d.ts.map +1 -1
  78. package/dist/components/hx-counter/index.js +1 -1
  79. package/dist/components/hx-data-table/hx-data-table.d.ts +13 -13
  80. package/dist/components/hx-data-table/hx-data-table.d.ts.map +1 -1
  81. package/dist/components/hx-data-table/hx-data-table.styles.d.ts.map +1 -1
  82. package/dist/components/hx-data-table/index.js +1 -1
  83. package/dist/components/hx-date-picker/hx-date-picker.d.ts +70 -13
  84. package/dist/components/hx-date-picker/hx-date-picker.d.ts.map +1 -1
  85. package/dist/components/hx-date-picker/hx-date-picker.styles.d.ts.map +1 -1
  86. package/dist/components/hx-date-picker/index.js +1 -1
  87. package/dist/components/hx-dialog/hx-dialog.d.ts +4 -1
  88. package/dist/components/hx-dialog/hx-dialog.d.ts.map +1 -1
  89. package/dist/components/hx-dialog/index.js +1 -1
  90. package/dist/components/hx-divider/hx-divider.d.ts.map +1 -1
  91. package/dist/components/hx-divider/index.js +1 -1
  92. package/dist/components/hx-drawer/hx-drawer.d.ts +5 -8
  93. package/dist/components/hx-drawer/hx-drawer.d.ts.map +1 -1
  94. package/dist/components/hx-drawer/hx-drawer.styles.d.ts.map +1 -1
  95. package/dist/components/hx-drawer/index.js +1 -1
  96. package/dist/components/hx-dropdown/hx-dropdown.d.ts +14 -1
  97. package/dist/components/hx-dropdown/hx-dropdown.d.ts.map +1 -1
  98. package/dist/components/hx-dropdown/index.js +1 -1
  99. package/dist/components/hx-field/hx-field.d.ts +1 -1
  100. package/dist/components/hx-field/hx-field.d.ts.map +1 -1
  101. package/dist/components/hx-field/index.js +1 -1
  102. package/dist/components/hx-field-label/hx-field-label.styles.d.ts.map +1 -1
  103. package/dist/components/hx-field-label/index.js +1 -1
  104. package/dist/components/hx-file-upload/hx-file-upload.d.ts +8 -9
  105. package/dist/components/hx-file-upload/hx-file-upload.d.ts.map +1 -1
  106. package/dist/components/hx-file-upload/index.js +1 -1
  107. package/dist/components/hx-form/hx-form.d.ts.map +1 -1
  108. package/dist/components/hx-form/index.js +1 -1
  109. package/dist/components/hx-format-date/hx-format-date.d.ts.map +1 -1
  110. package/dist/components/hx-format-date/index.js +1 -1
  111. package/dist/components/hx-grid/hx-grid.d.ts +5 -9
  112. package/dist/components/hx-grid/hx-grid.d.ts.map +1 -1
  113. package/dist/components/hx-grid/index.js +1 -1
  114. package/dist/components/hx-icon/hx-icon.d.ts.map +1 -1
  115. package/dist/components/hx-icon/index.js +1 -1
  116. package/dist/components/hx-icon-button/hx-icon-button.d.ts +4 -3
  117. package/dist/components/hx-icon-button/hx-icon-button.d.ts.map +1 -1
  118. package/dist/components/hx-icon-button/index.js +1 -1
  119. package/dist/components/hx-image/hx-image.d.ts.map +1 -1
  120. package/dist/components/hx-image/index.js +1 -1
  121. package/dist/components/hx-link/hx-link.d.ts +1 -1
  122. package/dist/components/hx-link/hx-link.d.ts.map +1 -1
  123. package/dist/components/hx-link/hx-link.styles.d.ts.map +1 -1
  124. package/dist/components/hx-link/index.js +1 -1
  125. package/dist/components/hx-meter/hx-meter.d.ts +2 -2
  126. package/dist/components/hx-meter/hx-meter.d.ts.map +1 -1
  127. package/dist/components/hx-meter/index.js +1 -1
  128. package/dist/components/hx-nav/hx-nav.d.ts.map +1 -1
  129. package/dist/components/hx-nav/index.js +1 -1
  130. package/dist/components/hx-number-input/hx-number-input.d.ts +19 -7
  131. package/dist/components/hx-number-input/hx-number-input.d.ts.map +1 -1
  132. package/dist/components/hx-number-input/index.js +1 -1
  133. package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts +3 -3
  134. package/dist/components/hx-overflow-menu/hx-overflow-menu.styles.d.ts.map +1 -1
  135. package/dist/components/hx-overflow-menu/index.js +1 -1
  136. package/dist/components/hx-pagination/hx-pagination.d.ts +26 -12
  137. package/dist/components/hx-pagination/hx-pagination.d.ts.map +1 -1
  138. package/dist/components/hx-pagination/hx-pagination.styles.d.ts.map +1 -1
  139. package/dist/components/hx-pagination/index.js +1 -1
  140. package/dist/components/hx-patient-banner/hx-patient-banner.d.ts +105 -0
  141. package/dist/components/hx-patient-banner/hx-patient-banner.d.ts.map +1 -0
  142. package/dist/components/hx-patient-banner/hx-patient-banner.styles.d.ts +2 -0
  143. package/dist/components/hx-patient-banner/hx-patient-banner.styles.d.ts.map +1 -0
  144. package/dist/components/hx-patient-banner/index.d.ts +3 -0
  145. package/dist/components/hx-patient-banner/index.d.ts.map +1 -0
  146. package/dist/components/hx-patient-banner/index.js +5 -0
  147. package/dist/components/hx-patient-banner/index.js.map +1 -0
  148. package/dist/components/hx-phi-field/hx-phi-field.d.ts +72 -0
  149. package/dist/components/hx-phi-field/hx-phi-field.d.ts.map +1 -0
  150. package/dist/components/hx-phi-field/hx-phi-field.styles.d.ts +2 -0
  151. package/dist/components/hx-phi-field/hx-phi-field.styles.d.ts.map +1 -0
  152. package/dist/components/hx-phi-field/index.d.ts +3 -0
  153. package/dist/components/hx-phi-field/index.d.ts.map +1 -0
  154. package/dist/components/hx-phi-field/index.js +5 -0
  155. package/dist/components/hx-phi-field/index.js.map +1 -0
  156. package/dist/components/hx-popover/hx-popover.d.ts +25 -9
  157. package/dist/components/hx-popover/hx-popover.d.ts.map +1 -1
  158. package/dist/components/hx-popover/index.js +1 -1
  159. package/dist/components/hx-popup/hx-popup.d.ts +5 -8
  160. package/dist/components/hx-popup/hx-popup.d.ts.map +1 -1
  161. package/dist/components/hx-popup/index.js +1 -1
  162. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts +2 -0
  163. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts.map +1 -1
  164. package/dist/components/hx-progress-bar/hx-progress-bar.styles.d.ts.map +1 -1
  165. package/dist/components/hx-progress-bar/index.js +1 -1
  166. package/dist/components/hx-progress-ring/hx-progress-ring.d.ts.map +1 -1
  167. package/dist/components/hx-progress-ring/index.js +1 -1
  168. package/dist/components/hx-prose/hx-prose.d.ts +1 -0
  169. package/dist/components/hx-prose/hx-prose.d.ts.map +1 -1
  170. package/dist/components/hx-radio-group/hx-radio-group.d.ts +3 -7
  171. package/dist/components/hx-radio-group/hx-radio-group.d.ts.map +1 -1
  172. package/dist/components/hx-radio-group/hx-radio.d.ts.map +1 -1
  173. package/dist/components/hx-radio-group/hx-radio.styles.d.ts.map +1 -1
  174. package/dist/components/hx-radio-group/index.js +1 -1
  175. package/dist/components/hx-rating/hx-rating.d.ts +3 -3
  176. package/dist/components/hx-rating/hx-rating.d.ts.map +1 -1
  177. package/dist/components/hx-rating/hx-rating.styles.d.ts.map +1 -1
  178. package/dist/components/hx-rating/index.js +1 -1
  179. package/dist/components/hx-select/hx-select.d.ts +16 -11
  180. package/dist/components/hx-select/hx-select.d.ts.map +1 -1
  181. package/dist/components/hx-select/hx-select.styles.d.ts.map +1 -1
  182. package/dist/components/hx-select/index.js +1 -1
  183. package/dist/components/hx-side-nav/hx-nav-item.d.ts +7 -0
  184. package/dist/components/hx-side-nav/hx-nav-item.d.ts.map +1 -1
  185. package/dist/components/hx-side-nav/hx-nav-item.styles.d.ts.map +1 -1
  186. package/dist/components/hx-side-nav/hx-side-nav.d.ts.map +1 -1
  187. package/dist/components/hx-side-nav/hx-side-nav.styles.d.ts.map +1 -1
  188. package/dist/components/hx-side-nav/index.js +1 -1
  189. package/dist/components/hx-skeleton/hx-skeleton.d.ts +2 -2
  190. package/dist/components/hx-skeleton/hx-skeleton.d.ts.map +1 -1
  191. package/dist/components/hx-slider/hx-slider.d.ts +5 -8
  192. package/dist/components/hx-slider/hx-slider.d.ts.map +1 -1
  193. package/dist/components/hx-slider/hx-slider.styles.d.ts.map +1 -1
  194. package/dist/components/hx-slider/index.js +1 -1
  195. package/dist/components/hx-spinner/hx-spinner.d.ts +14 -1
  196. package/dist/components/hx-spinner/hx-spinner.d.ts.map +1 -1
  197. package/dist/components/hx-spinner/hx-spinner.styles.d.ts.map +1 -1
  198. package/dist/components/hx-spinner/index.js +1 -1
  199. package/dist/components/hx-split-button/hx-split-button.d.ts +10 -4
  200. package/dist/components/hx-split-button/hx-split-button.d.ts.map +1 -1
  201. package/dist/components/hx-split-button/hx-split-button.styles.d.ts.map +1 -1
  202. package/dist/components/hx-split-button/index.js +1 -1
  203. package/dist/components/hx-split-panel/hx-split-panel.d.ts +13 -9
  204. package/dist/components/hx-split-panel/hx-split-panel.d.ts.map +1 -1
  205. package/dist/components/hx-split-panel/hx-split-panel.styles.d.ts.map +1 -1
  206. package/dist/components/hx-split-panel/index.js +1 -1
  207. package/dist/components/hx-stat/hx-stat.d.ts +7 -2
  208. package/dist/components/hx-stat/hx-stat.d.ts.map +1 -1
  209. package/dist/components/hx-stat/index.js +1 -1
  210. package/dist/components/hx-status-indicator/hx-status-indicator.d.ts +2 -2
  211. package/dist/components/hx-status-indicator/hx-status-indicator.d.ts.map +1 -1
  212. package/dist/components/hx-status-indicator/index.js +1 -1
  213. package/dist/components/hx-steps/hx-step.styles.d.ts.map +1 -1
  214. package/dist/components/hx-steps/hx-steps.d.ts.map +1 -1
  215. package/dist/components/hx-steps/index.js +1 -1
  216. package/dist/components/hx-structured-list/hx-structured-list.d.ts +10 -3
  217. package/dist/components/hx-structured-list/hx-structured-list.d.ts.map +1 -1
  218. package/dist/components/hx-structured-list/index.js +1 -1
  219. package/dist/components/hx-style-scope/hx-style-scope.d.ts +71 -0
  220. package/dist/components/hx-style-scope/hx-style-scope.d.ts.map +1 -0
  221. package/dist/components/hx-style-scope/hx-style-scope.styles.d.ts +10 -0
  222. package/dist/components/hx-style-scope/hx-style-scope.styles.d.ts.map +1 -0
  223. package/dist/components/hx-style-scope/index.d.ts +2 -0
  224. package/dist/components/hx-style-scope/index.d.ts.map +1 -0
  225. package/dist/components/hx-style-scope/index.js +5 -0
  226. package/dist/components/hx-style-scope/index.js.map +1 -0
  227. package/dist/components/hx-switch/hx-switch.d.ts +4 -4
  228. package/dist/components/hx-switch/hx-switch.d.ts.map +1 -1
  229. package/dist/components/hx-switch/hx-switch.styles.d.ts.map +1 -1
  230. package/dist/components/hx-switch/index.js +1 -1
  231. package/dist/components/hx-table/hx-table.d.ts +1 -0
  232. package/dist/components/hx-table/hx-table.d.ts.map +1 -1
  233. package/dist/components/hx-table/index.js +1 -1
  234. package/dist/components/hx-tabs/hx-tab-panel.styles.d.ts.map +1 -1
  235. package/dist/components/hx-tabs/hx-tab.d.ts +1 -0
  236. package/dist/components/hx-tabs/hx-tab.d.ts.map +1 -1
  237. package/dist/components/hx-tabs/hx-tab.styles.d.ts.map +1 -1
  238. package/dist/components/hx-tabs/hx-tabs.d.ts +2 -2
  239. package/dist/components/hx-tabs/hx-tabs.d.ts.map +1 -1
  240. package/dist/components/hx-tabs/index.js +1 -1
  241. package/dist/components/hx-tag/hx-tag.styles.d.ts.map +1 -1
  242. package/dist/components/hx-tag/index.js +1 -1
  243. package/dist/components/hx-text/index.js +1 -1
  244. package/dist/components/hx-text-input/hx-text-input.d.ts +16 -15
  245. package/dist/components/hx-text-input/hx-text-input.d.ts.map +1 -1
  246. package/dist/components/hx-text-input/hx-text-input.styles.d.ts.map +1 -1
  247. package/dist/components/hx-text-input/index.js +1 -1
  248. package/dist/components/hx-textarea/hx-textarea.d.ts +4 -4
  249. package/dist/components/hx-textarea/hx-textarea.d.ts.map +1 -1
  250. package/dist/components/hx-textarea/hx-textarea.styles.d.ts.map +1 -1
  251. package/dist/components/hx-textarea/index.js +1 -1
  252. package/dist/components/hx-theme/hx-theme.d.ts +82 -3
  253. package/dist/components/hx-theme/hx-theme.d.ts.map +1 -1
  254. package/dist/components/hx-theme/index.js +1 -1
  255. package/dist/components/hx-time-picker/hx-time-picker.d.ts +6 -1
  256. package/dist/components/hx-time-picker/hx-time-picker.d.ts.map +1 -1
  257. package/dist/components/hx-time-picker/index.js +1 -1
  258. package/dist/components/hx-toast/hx-toast-stack.d.ts +1 -1
  259. package/dist/components/hx-toast/hx-toast-stack.d.ts.map +1 -1
  260. package/dist/components/hx-toast/hx-toast.d.ts +9 -5
  261. package/dist/components/hx-toast/hx-toast.d.ts.map +1 -1
  262. package/dist/components/hx-toast/hx-toast.styles.d.ts.map +1 -1
  263. package/dist/components/hx-toast/index.js +1 -1
  264. package/dist/components/hx-toast/toast-factory.d.ts.map +1 -1
  265. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts +4 -3
  266. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts.map +1 -1
  267. package/dist/components/hx-toggle-button/hx-toggle-button.styles.d.ts.map +1 -1
  268. package/dist/components/hx-toggle-button/index.js +1 -1
  269. package/dist/components/hx-tooltip/hx-tooltip.d.ts +1 -2
  270. package/dist/components/hx-tooltip/hx-tooltip.d.ts.map +1 -1
  271. package/dist/components/hx-tooltip/index.js +1 -1
  272. package/dist/components/hx-tree-view/hx-tree-item.d.ts +7 -0
  273. package/dist/components/hx-tree-view/hx-tree-item.d.ts.map +1 -1
  274. package/dist/components/hx-tree-view/hx-tree-view.d.ts +21 -2
  275. package/dist/components/hx-tree-view/hx-tree-view.d.ts.map +1 -1
  276. package/dist/components/hx-tree-view/hx-tree-view.styles.d.ts.map +1 -1
  277. package/dist/components/hx-tree-view/index.js +1 -1
  278. package/dist/controllers/helix-audit-controller.d.ts +71 -0
  279. package/dist/controllers/helix-audit-controller.d.ts.map +1 -0
  280. package/dist/css/helix-all.css +9592 -0
  281. package/dist/css/helix-core.css +1788 -0
  282. package/dist/css/helix-data.css +639 -0
  283. package/dist/css/helix-feedback.css +1239 -0
  284. package/dist/css/helix-forms.css +2498 -0
  285. package/dist/css/helix-layout.css +380 -0
  286. package/dist/css/helix-media.css +213 -0
  287. package/dist/css/helix-navigation.css +1129 -0
  288. package/dist/css/helix-overlay.css +643 -0
  289. package/dist/css/helix-tokens.css +432 -0
  290. package/dist/css/helix-utility.css +633 -0
  291. package/dist/css/hx-accordion.css +10 -0
  292. package/dist/css/hx-action-bar.css +117 -0
  293. package/dist/css/hx-alert.css +213 -0
  294. package/dist/css/hx-avatar.css +117 -0
  295. package/dist/css/hx-badge.css +178 -0
  296. package/dist/css/hx-banner.css +203 -0
  297. package/dist/css/hx-breadcrumb.css +36 -0
  298. package/dist/css/hx-button-group.css +91 -0
  299. package/dist/css/hx-button.css +262 -0
  300. package/dist/css/hx-card.css +161 -0
  301. package/dist/css/hx-carousel.css +211 -0
  302. package/dist/css/hx-checkbox-group.css +77 -0
  303. package/dist/css/hx-checkbox.css +219 -0
  304. package/dist/css/hx-clinical-status.css +246 -0
  305. package/dist/css/hx-code-snippet.css +179 -0
  306. package/dist/css/hx-color-picker.css +2 -0
  307. package/dist/css/hx-combobox.css +2 -0
  308. package/dist/css/hx-container.css +82 -0
  309. package/dist/css/hx-copy-button.css +121 -0
  310. package/dist/css/hx-counter.css +51 -0
  311. package/dist/css/hx-data-table.css +207 -0
  312. package/dist/css/hx-date-picker.css +2 -0
  313. package/dist/css/hx-dialog.css +190 -0
  314. package/dist/css/hx-divider.css +87 -0
  315. package/dist/css/hx-drawer.css +262 -0
  316. package/dist/css/hx-dropdown.css +46 -0
  317. package/dist/css/hx-field-label.css +38 -0
  318. package/dist/css/hx-field.css +119 -0
  319. package/dist/css/hx-file-upload.css +241 -0
  320. package/dist/css/hx-form.css +2 -0
  321. package/dist/css/hx-format-date.css +10 -0
  322. package/dist/css/hx-grid.css +14 -0
  323. package/dist/css/hx-help-text.css +50 -0
  324. package/dist/css/hx-icon-button.css +152 -0
  325. package/dist/css/hx-icon.css +73 -0
  326. package/dist/css/hx-image.css +41 -0
  327. package/dist/css/hx-link.css +105 -0
  328. package/dist/css/hx-list.css +48 -0
  329. package/dist/css/hx-menu.css +21 -0
  330. package/dist/css/hx-meter.css +113 -0
  331. package/dist/css/hx-nav.css +242 -0
  332. package/dist/css/hx-number-input.css +246 -0
  333. package/dist/css/hx-overflow-menu.css +133 -0
  334. package/dist/css/hx-pagination.css +193 -0
  335. package/dist/css/hx-patient-banner.css +111 -0
  336. package/dist/css/hx-phi-field.css +85 -0
  337. package/dist/css/hx-popover.css +61 -0
  338. package/dist/css/hx-popup.css +31 -0
  339. package/dist/css/hx-progress-bar.css +133 -0
  340. package/dist/css/hx-progress-ring.css +142 -0
  341. package/dist/css/hx-prose.css +2 -0
  342. package/dist/css/hx-radio-group.css +77 -0
  343. package/dist/css/hx-rating.css +96 -0
  344. package/dist/css/hx-select.css +268 -0
  345. package/dist/css/hx-side-nav.css +149 -0
  346. package/dist/css/hx-skeleton.css +82 -0
  347. package/dist/css/hx-slider.css +287 -0
  348. package/dist/css/hx-spinner.css +116 -0
  349. package/dist/css/hx-split-button.css +309 -0
  350. package/dist/css/hx-split-panel.css +168 -0
  351. package/dist/css/hx-stack.css +104 -0
  352. package/dist/css/hx-stat.css +106 -0
  353. package/dist/css/hx-status-indicator.css +97 -0
  354. package/dist/css/hx-steps.css +52 -0
  355. package/dist/css/hx-structured-list.css +75 -0
  356. package/dist/css/hx-style-scope.css +4 -0
  357. package/dist/css/hx-switch.css +169 -0
  358. package/dist/css/hx-table.css +128 -0
  359. package/dist/css/hx-tabs.css +76 -0
  360. package/dist/css/hx-tag.css +146 -0
  361. package/dist/css/hx-text-input.css +214 -0
  362. package/dist/css/hx-text.css +149 -0
  363. package/dist/css/hx-textarea.css +180 -0
  364. package/dist/css/hx-theme.css +23 -0
  365. package/dist/css/hx-time-picker.css +2 -0
  366. package/dist/css/hx-toast.css +230 -0
  367. package/dist/css/hx-toggle-button.css +207 -0
  368. package/dist/css/hx-tooltip.css +51 -0
  369. package/dist/css/hx-top-nav.css +203 -0
  370. package/dist/css/hx-tree-view.css +22 -0
  371. package/dist/css/hx-visually-hidden.css +26 -0
  372. package/dist/css/index.css +84 -0
  373. package/dist/css/manifest.json +2696 -0
  374. package/dist/index.d.ts +14 -0
  375. package/dist/index.d.ts.map +1 -1
  376. package/dist/index.js +266 -176
  377. package/dist/index.js.map +1 -1
  378. package/dist/mixins/FocusMixin.d.ts +49 -0
  379. package/dist/mixins/FocusMixin.d.ts.map +1 -0
  380. package/dist/mixins/FormMixin.d.ts +69 -0
  381. package/dist/mixins/FormMixin.d.ts.map +1 -0
  382. package/dist/mixins/aria-delegation.d.ts +97 -0
  383. package/dist/mixins/aria-delegation.d.ts.map +1 -0
  384. package/dist/mixins/index.d.ts +5 -0
  385. package/dist/mixins/index.d.ts.map +1 -0
  386. package/dist/shared/FormMixin-Bjvw20G5.js +88 -0
  387. package/dist/shared/FormMixin-Bjvw20G5.js.map +1 -0
  388. package/dist/shared/aria-delegation-CBP9eQ0M.js +107 -0
  389. package/dist/shared/aria-delegation-CBP9eQ0M.js.map +1 -0
  390. package/dist/shared/{hx-accordion-D1kFhdeQ.js → hx-accordion-_KeulaQR.js} +83 -55
  391. package/dist/shared/hx-accordion-_KeulaQR.js.map +1 -0
  392. package/dist/shared/{hx-action-bar-D4bulGQP.js → hx-action-bar-vGFnNwNY.js} +33 -34
  393. package/dist/shared/hx-action-bar-vGFnNwNY.js.map +1 -0
  394. package/dist/shared/{hx-alert-K5F8KeqI.js → hx-alert-DRZYP0Oo.js} +32 -23
  395. package/dist/shared/hx-alert-DRZYP0Oo.js.map +1 -0
  396. package/dist/shared/{hx-avatar-Cun-O99h.js → hx-avatar-7p1cj3lG.js} +2 -2
  397. package/dist/shared/hx-avatar-7p1cj3lG.js.map +1 -0
  398. package/dist/shared/{hx-badge-CsFd2xtw.js → hx-badge-Xg7zoh4Q.js} +46 -37
  399. package/dist/shared/hx-badge-Xg7zoh4Q.js.map +1 -0
  400. package/dist/shared/{hx-banner-BTV-X2xF.js → hx-banner-2RS7Nux4.js} +93 -58
  401. package/dist/shared/hx-banner-2RS7Nux4.js.map +1 -0
  402. package/dist/shared/{hx-breadcrumb-item-4IwaLgaO.js → hx-breadcrumb-item-B2rjepqy.js} +79 -78
  403. package/dist/shared/hx-breadcrumb-item-B2rjepqy.js.map +1 -0
  404. package/dist/shared/{hx-button-7k-KeCYU.js → hx-button-6S3DwuIj.js} +81 -56
  405. package/dist/shared/hx-button-6S3DwuIj.js.map +1 -0
  406. package/dist/shared/{hx-button-group-CWjWv-wS.js → hx-button-group-ChTQsnQj.js} +10 -10
  407. package/dist/shared/hx-button-group-ChTQsnQj.js.map +1 -0
  408. package/dist/shared/{hx-card-0hT3G5hi.js → hx-card-dIKdcMhr.js} +32 -32
  409. package/dist/shared/hx-card-dIKdcMhr.js.map +1 -0
  410. package/dist/shared/{hx-carousel-item-DgeYyYZJ.js → hx-carousel-item-Cm8a1nAi.js} +3 -3
  411. package/dist/shared/hx-carousel-item-Cm8a1nAi.js.map +1 -0
  412. package/dist/shared/{hx-checkbox-BvjO-O41.js → hx-checkbox-_WUiuTo9.js} +68 -71
  413. package/dist/shared/hx-checkbox-_WUiuTo9.js.map +1 -0
  414. package/dist/shared/{hx-checkbox-group-Z5VvWzcj.js → hx-checkbox-group-B-ci-dxp.js} +37 -31
  415. package/dist/shared/hx-checkbox-group-B-ci-dxp.js.map +1 -0
  416. package/dist/shared/hx-clinical-status-De8yrA5I.js +467 -0
  417. package/dist/shared/hx-clinical-status-De8yrA5I.js.map +1 -0
  418. package/dist/shared/{hx-code-snippet-DqzPkH4K.js → hx-code-snippet-CQsyvthi.js} +56 -47
  419. package/dist/shared/hx-code-snippet-CQsyvthi.js.map +1 -0
  420. package/dist/shared/{hx-color-picker-Da8z6AlQ.js → hx-color-picker-Dk2Myvaf.js} +153 -137
  421. package/dist/shared/hx-color-picker-Dk2Myvaf.js.map +1 -0
  422. package/dist/shared/{hx-combobox-CivfelTS.js → hx-combobox-CNAJXIxo.js} +10 -10
  423. package/dist/shared/hx-combobox-CNAJXIxo.js.map +1 -0
  424. package/dist/shared/{hx-container-DLUKnTi9.js → hx-container-7j16VuQE.js} +16 -16
  425. package/dist/shared/hx-container-7j16VuQE.js.map +1 -0
  426. package/dist/shared/{hx-copy-button--0dymSvw.js → hx-copy-button-B_ZHYO7_.js} +47 -40
  427. package/dist/shared/hx-copy-button-B_ZHYO7_.js.map +1 -0
  428. package/dist/shared/hx-counter-D_B7L9Pi.js +185 -0
  429. package/dist/shared/hx-counter-D_B7L9Pi.js.map +1 -0
  430. package/dist/shared/{hx-data-table-DujB9hSE.js → hx-data-table-B1j4n4bm.js} +134 -107
  431. package/dist/shared/hx-data-table-B1j4n4bm.js.map +1 -0
  432. package/dist/shared/{hx-date-picker-C8d2HtRV.js → hx-date-picker-R-0kWFwr.js} +146 -130
  433. package/dist/shared/hx-date-picker-R-0kWFwr.js.map +1 -0
  434. package/dist/shared/{hx-dialog-DkUSnVgw.js → hx-dialog-U5d3s0Ps.js} +98 -89
  435. package/dist/shared/hx-dialog-U5d3s0Ps.js.map +1 -0
  436. package/dist/shared/{hx-divider-DNNs4e8q.js → hx-divider-DdAN-_jB.js} +5 -5
  437. package/dist/shared/hx-divider-DdAN-_jB.js.map +1 -0
  438. package/dist/shared/{hx-drawer-CJcRZcns.js → hx-drawer-e0qeGxAD.js} +117 -77
  439. package/dist/shared/hx-drawer-e0qeGxAD.js.map +1 -0
  440. package/dist/shared/{hx-dropdown-Bo0KTM1A.js → hx-dropdown-DP_DNpEb.js} +56 -41
  441. package/dist/shared/hx-dropdown-DP_DNpEb.js.map +1 -0
  442. package/dist/shared/{hx-field-3MmzJ4kZ.js → hx-field-COM4KvMQ.js} +9 -9
  443. package/dist/shared/hx-field-COM4KvMQ.js.map +1 -0
  444. package/dist/shared/{hx-field-label-Bg-EWvqF.js → hx-field-label-BtZ9H9Yy.js} +8 -11
  445. package/dist/shared/hx-field-label-BtZ9H9Yy.js.map +1 -0
  446. package/dist/shared/{hx-file-upload-ByjAgfNy.js → hx-file-upload-DbECypLe.js} +78 -87
  447. package/dist/shared/hx-file-upload-DbECypLe.js.map +1 -0
  448. package/dist/shared/{hx-form-BpS6v3Iu.js → hx-form-fJE-FJQV.js} +36 -32
  449. package/dist/shared/{hx-form-BpS6v3Iu.js.map → hx-form-fJE-FJQV.js.map} +1 -1
  450. package/dist/shared/{hx-format-date-BdnWV2kX.js → hx-format-date-C030ThSm.js} +14 -12
  451. package/dist/shared/hx-format-date-C030ThSm.js.map +1 -0
  452. package/dist/shared/{hx-grid-gEjuF0cR.js → hx-grid-DE8KM5Gf.js} +7 -7
  453. package/dist/shared/hx-grid-DE8KM5Gf.js.map +1 -0
  454. package/dist/shared/{hx-icon-button-DzH_bRtC.js → hx-icon-button-Et9wq79n.js} +4 -4
  455. package/dist/shared/{hx-icon-button-DzH_bRtC.js.map → hx-icon-button-Et9wq79n.js.map} +1 -1
  456. package/dist/shared/{hx-icon-CP6OnLoM.js → hx-icon-dYvrzvsO.js} +7 -7
  457. package/dist/shared/hx-icon-dYvrzvsO.js.map +1 -0
  458. package/dist/shared/{hx-image-C6pGiI6c.js → hx-image-DUsEi-oN.js} +15 -15
  459. package/dist/shared/hx-image-DUsEi-oN.js.map +1 -0
  460. package/dist/shared/{hx-link-Tmk_YPvW.js → hx-link-Peg2LzOD.js} +43 -41
  461. package/dist/shared/hx-link-Peg2LzOD.js.map +1 -0
  462. package/dist/shared/{hx-meter-uXkTZq-W.js → hx-meter-CVs4A649.js} +13 -13
  463. package/dist/shared/hx-meter-CVs4A649.js.map +1 -0
  464. package/dist/shared/{hx-nav-3JsN2Oak.js → hx-nav-D377Ngz4.js} +23 -24
  465. package/dist/shared/hx-nav-D377Ngz4.js.map +1 -0
  466. package/dist/shared/{hx-nav-item-D3EJatzc.js → hx-nav-item-CuGiJPAf.js} +75 -49
  467. package/dist/shared/hx-nav-item-CuGiJPAf.js.map +1 -0
  468. package/dist/shared/{hx-number-input-CAAibZ8X.js → hx-number-input-BPgrlMLN.js} +70 -66
  469. package/dist/shared/hx-number-input-BPgrlMLN.js.map +1 -0
  470. package/dist/shared/{hx-overflow-menu-2kgOJ_ht.js → hx-overflow-menu-Bz02LPPk.js} +15 -11
  471. package/dist/shared/hx-overflow-menu-Bz02LPPk.js.map +1 -0
  472. package/dist/shared/{hx-pagination-DBs-vmSv.js → hx-pagination-DYhYPqDn.js} +68 -63
  473. package/dist/shared/hx-pagination-DYhYPqDn.js.map +1 -0
  474. package/dist/shared/hx-patient-banner-BoJHddAL.js +256 -0
  475. package/dist/shared/hx-patient-banner-BoJHddAL.js.map +1 -0
  476. package/dist/shared/hx-phi-field-EDWna59z.js +261 -0
  477. package/dist/shared/hx-phi-field-EDWna59z.js.map +1 -0
  478. package/dist/shared/{hx-popover-DxE67miP.js → hx-popover-D6kYQkt3.js} +96 -69
  479. package/dist/shared/hx-popover-D6kYQkt3.js.map +1 -0
  480. package/dist/shared/{hx-popup-Dg6n_PbY.js → hx-popup-RQb6HUXc.js} +2 -2
  481. package/dist/shared/hx-popup-RQb6HUXc.js.map +1 -0
  482. package/dist/shared/{hx-progress-bar-Dm_EHyng.js → hx-progress-bar-ByEmxq1V.js} +42 -40
  483. package/dist/shared/hx-progress-bar-ByEmxq1V.js.map +1 -0
  484. package/dist/shared/{hx-progress-ring-DpxBDD5d.js → hx-progress-ring-CtVnNRQx.js} +2 -2
  485. package/dist/shared/{hx-progress-ring-DpxBDD5d.js.map → hx-progress-ring-CtVnNRQx.js.map} +1 -1
  486. package/dist/shared/hx-prose-Ml_L2zje.js.map +1 -1
  487. package/dist/shared/{hx-radio-BywgVSEu.js → hx-radio-jgeW92SV.js} +28 -27
  488. package/dist/shared/hx-radio-jgeW92SV.js.map +1 -0
  489. package/dist/shared/{hx-rating-CUWBQ0fZ.js → hx-rating-g_iy-DW_.js} +92 -96
  490. package/dist/shared/hx-rating-g_iy-DW_.js.map +1 -0
  491. package/dist/shared/{hx-select-BwDwxk-M.js → hx-select-4-nHL0vd.js} +73 -61
  492. package/dist/shared/hx-select-4-nHL0vd.js.map +1 -0
  493. package/dist/shared/hx-skeleton-BHvALyd7.js.map +1 -1
  494. package/dist/shared/{hx-slider-D_0EKJyk.js → hx-slider-7Q-e0_pc.js} +27 -22
  495. package/dist/shared/hx-slider-7Q-e0_pc.js.map +1 -0
  496. package/dist/shared/{hx-spinner-DMn4SChS.js → hx-spinner-DEgrKsUo.js} +3 -2
  497. package/dist/shared/hx-spinner-DEgrKsUo.js.map +1 -0
  498. package/dist/shared/{hx-split-button-CypgLXw1.js → hx-split-button-BA7P_ly5.js} +40 -31
  499. package/dist/shared/hx-split-button-BA7P_ly5.js.map +1 -0
  500. package/dist/shared/{hx-split-panel-BPMWKPGu.js → hx-split-panel-Bss54UN8.js} +28 -28
  501. package/dist/shared/hx-split-panel-Bss54UN8.js.map +1 -0
  502. package/dist/shared/{hx-stat-CHntLHJM.js → hx-stat-CmkCUI8v.js} +40 -32
  503. package/dist/shared/{hx-stat-CHntLHJM.js.map → hx-stat-CmkCUI8v.js.map} +1 -1
  504. package/dist/shared/{hx-status-indicator-C1BwEvUw.js → hx-status-indicator-4ClvA5mU.js} +19 -19
  505. package/dist/shared/hx-status-indicator-4ClvA5mU.js.map +1 -0
  506. package/dist/shared/{hx-step-BIVWSPxd.js → hx-step-DlANlr2A.js} +31 -71
  507. package/dist/shared/hx-step-DlANlr2A.js.map +1 -0
  508. package/dist/shared/{hx-structured-list-CMWllxGg.js → hx-structured-list-Db9rwLI_.js} +26 -23
  509. package/dist/shared/hx-structured-list-Db9rwLI_.js.map +1 -0
  510. package/dist/shared/hx-style-scope-BroUu83L.js +125 -0
  511. package/dist/shared/hx-style-scope-BroUu83L.js.map +1 -0
  512. package/dist/shared/{hx-switch-BgX8kuWt.js → hx-switch-C0Lp5RGy.js} +8 -5
  513. package/dist/shared/hx-switch-C0Lp5RGy.js.map +1 -0
  514. package/dist/shared/{hx-tab-panel-DhOq67jj.js → hx-tab-panel-GGjk6Qg4.js} +129 -118
  515. package/dist/shared/hx-tab-panel-GGjk6Qg4.js.map +1 -0
  516. package/dist/shared/{hx-tag-CzOTDcXI.js → hx-tag-K5fCjfqQ.js} +15 -14
  517. package/dist/shared/hx-tag-K5fCjfqQ.js.map +1 -0
  518. package/dist/shared/{hx-td-h6oeW6YC.js → hx-td-DZuILY3s.js} +43 -40
  519. package/dist/shared/hx-td-DZuILY3s.js.map +1 -0
  520. package/dist/shared/{hx-text-DTXjiviE.js → hx-text-DoEVOf47.js} +29 -29
  521. package/dist/shared/hx-text-DoEVOf47.js.map +1 -0
  522. package/dist/shared/hx-text-input-DTKWPVdy.js +576 -0
  523. package/dist/shared/hx-text-input-DTKWPVdy.js.map +1 -0
  524. package/dist/shared/{hx-textarea-BgX7rxyo.js → hx-textarea-BkSiU8oM.js} +15 -15
  525. package/dist/shared/hx-textarea-BkSiU8oM.js.map +1 -0
  526. package/dist/shared/hx-theme-Aag8QJvT.js +299 -0
  527. package/dist/shared/hx-theme-Aag8QJvT.js.map +1 -0
  528. package/dist/shared/{hx-time-picker-DmLu7WUC.js → hx-time-picker-BpCRsh_z.js} +54 -53
  529. package/dist/shared/hx-time-picker-BpCRsh_z.js.map +1 -0
  530. package/dist/shared/{hx-toggle-button-D1jpDvSA.js → hx-toggle-button-CPFqs3eQ.js} +8 -5
  531. package/dist/shared/hx-toggle-button-CPFqs3eQ.js.map +1 -0
  532. package/dist/shared/{hx-tooltip-kh7QFPKu.js → hx-tooltip-CrO4vzeX.js} +15 -10
  533. package/dist/shared/hx-tooltip-CrO4vzeX.js.map +1 -0
  534. package/dist/shared/{hx-tree-item-BP6UF_H1.js → hx-tree-item-DTDIBRrI.js} +122 -89
  535. package/dist/shared/hx-tree-item-DTDIBRrI.js.map +1 -0
  536. package/dist/shared/id-counter-JhvVCnjh.js +143 -0
  537. package/dist/shared/id-counter-JhvVCnjh.js.map +1 -0
  538. package/dist/shared/{toast-factory-DTy-qN8r.js → toast-factory-f184Gi70.js} +57 -45
  539. package/dist/shared/toast-factory-f184Gi70.js.map +1 -0
  540. package/dist/utilities/adoptedStylesheetRegistry.d.ts +47 -0
  541. package/dist/utilities/adoptedStylesheetRegistry.d.ts.map +1 -0
  542. package/dist/utilities/generateScopedSelectors.d.ts +30 -0
  543. package/dist/utilities/generateScopedSelectors.d.ts.map +1 -0
  544. package/dist/utilities/injectLightStyles.d.ts +37 -0
  545. package/dist/utilities/injectLightStyles.d.ts.map +1 -0
  546. package/dist/utilities/lightStyleRegistry.d.ts +41 -0
  547. package/dist/utilities/lightStyleRegistry.d.ts.map +1 -0
  548. package/dist/utilities/sheetManager.d.ts +62 -0
  549. package/dist/utilities/sheetManager.d.ts.map +1 -0
  550. package/dist/utils/contrast-checker.d.ts +86 -0
  551. package/dist/utils/contrast-checker.d.ts.map +1 -0
  552. package/dist/utils/token-merger.d.ts +24 -0
  553. package/dist/utils/token-merger.d.ts.map +1 -0
  554. package/fouc.css +37 -0
  555. package/package.json +26 -6
  556. package/dist/shared/hx-accordion-D1kFhdeQ.js.map +0 -1
  557. package/dist/shared/hx-action-bar-D4bulGQP.js.map +0 -1
  558. package/dist/shared/hx-alert-K5F8KeqI.js.map +0 -1
  559. package/dist/shared/hx-avatar-Cun-O99h.js.map +0 -1
  560. package/dist/shared/hx-badge-CsFd2xtw.js.map +0 -1
  561. package/dist/shared/hx-banner-BTV-X2xF.js.map +0 -1
  562. package/dist/shared/hx-breadcrumb-item-4IwaLgaO.js.map +0 -1
  563. package/dist/shared/hx-button-7k-KeCYU.js.map +0 -1
  564. package/dist/shared/hx-button-group-CWjWv-wS.js.map +0 -1
  565. package/dist/shared/hx-card-0hT3G5hi.js.map +0 -1
  566. package/dist/shared/hx-carousel-item-DgeYyYZJ.js.map +0 -1
  567. package/dist/shared/hx-checkbox-BvjO-O41.js.map +0 -1
  568. package/dist/shared/hx-checkbox-group-Z5VvWzcj.js.map +0 -1
  569. package/dist/shared/hx-code-snippet-DqzPkH4K.js.map +0 -1
  570. package/dist/shared/hx-color-picker-Da8z6AlQ.js.map +0 -1
  571. package/dist/shared/hx-combobox-CivfelTS.js.map +0 -1
  572. package/dist/shared/hx-container-DLUKnTi9.js.map +0 -1
  573. package/dist/shared/hx-copy-button--0dymSvw.js.map +0 -1
  574. package/dist/shared/hx-counter-Duf00H7p.js +0 -147
  575. package/dist/shared/hx-counter-Duf00H7p.js.map +0 -1
  576. package/dist/shared/hx-data-table-DujB9hSE.js.map +0 -1
  577. package/dist/shared/hx-date-picker-C8d2HtRV.js.map +0 -1
  578. package/dist/shared/hx-dialog-DkUSnVgw.js.map +0 -1
  579. package/dist/shared/hx-divider-DNNs4e8q.js.map +0 -1
  580. package/dist/shared/hx-drawer-CJcRZcns.js.map +0 -1
  581. package/dist/shared/hx-dropdown-Bo0KTM1A.js.map +0 -1
  582. package/dist/shared/hx-field-3MmzJ4kZ.js.map +0 -1
  583. package/dist/shared/hx-field-label-Bg-EWvqF.js.map +0 -1
  584. package/dist/shared/hx-file-upload-ByjAgfNy.js.map +0 -1
  585. package/dist/shared/hx-format-date-BdnWV2kX.js.map +0 -1
  586. package/dist/shared/hx-grid-gEjuF0cR.js.map +0 -1
  587. package/dist/shared/hx-icon-CP6OnLoM.js.map +0 -1
  588. package/dist/shared/hx-image-C6pGiI6c.js.map +0 -1
  589. package/dist/shared/hx-link-Tmk_YPvW.js.map +0 -1
  590. package/dist/shared/hx-meter-uXkTZq-W.js.map +0 -1
  591. package/dist/shared/hx-nav-3JsN2Oak.js.map +0 -1
  592. package/dist/shared/hx-nav-item-D3EJatzc.js.map +0 -1
  593. package/dist/shared/hx-number-input-CAAibZ8X.js.map +0 -1
  594. package/dist/shared/hx-overflow-menu-2kgOJ_ht.js.map +0 -1
  595. package/dist/shared/hx-pagination-DBs-vmSv.js.map +0 -1
  596. package/dist/shared/hx-popover-DxE67miP.js.map +0 -1
  597. package/dist/shared/hx-popup-Dg6n_PbY.js.map +0 -1
  598. package/dist/shared/hx-progress-bar-Dm_EHyng.js.map +0 -1
  599. package/dist/shared/hx-radio-BywgVSEu.js.map +0 -1
  600. package/dist/shared/hx-rating-CUWBQ0fZ.js.map +0 -1
  601. package/dist/shared/hx-select-BwDwxk-M.js.map +0 -1
  602. package/dist/shared/hx-slider-D_0EKJyk.js.map +0 -1
  603. package/dist/shared/hx-spinner-DMn4SChS.js.map +0 -1
  604. package/dist/shared/hx-split-button-CypgLXw1.js.map +0 -1
  605. package/dist/shared/hx-split-panel-BPMWKPGu.js.map +0 -1
  606. package/dist/shared/hx-status-indicator-C1BwEvUw.js.map +0 -1
  607. package/dist/shared/hx-step-BIVWSPxd.js.map +0 -1
  608. package/dist/shared/hx-structured-list-CMWllxGg.js.map +0 -1
  609. package/dist/shared/hx-switch-BgX8kuWt.js.map +0 -1
  610. package/dist/shared/hx-tab-panel-DhOq67jj.js.map +0 -1
  611. package/dist/shared/hx-tag-CzOTDcXI.js.map +0 -1
  612. package/dist/shared/hx-td-h6oeW6YC.js.map +0 -1
  613. package/dist/shared/hx-text-DTXjiviE.js.map +0 -1
  614. package/dist/shared/hx-text-input-CqEdDHMU.js +0 -461
  615. package/dist/shared/hx-text-input-CqEdDHMU.js.map +0 -1
  616. package/dist/shared/hx-textarea-BgX7rxyo.js.map +0 -1
  617. package/dist/shared/hx-theme-6GDoUG8j.js +0 -176
  618. package/dist/shared/hx-theme-6GDoUG8j.js.map +0 -1
  619. package/dist/shared/hx-time-picker-DmLu7WUC.js.map +0 -1
  620. package/dist/shared/hx-toggle-button-D1jpDvSA.js.map +0 -1
  621. package/dist/shared/hx-tooltip-kh7QFPKu.js.map +0 -1
  622. package/dist/shared/hx-tree-item-BP6UF_H1.js.map +0 -1
  623. package/dist/shared/toast-factory-DTy-qN8r.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hx-patient-banner-BoJHddAL.js","sources":["../../src/components/hx-patient-banner/hx-patient-banner.styles.ts","../../src/components/hx-patient-banner/hx-patient-banner.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixPatientBannerStyles = css`\n :host {\n display: block;\n width: 100%;\n\n /* ─── Private token vars (3-tier cascade) ─── */\n --_bg: var(--hx-patient-banner-bg, var(--hx-color-neutral-50, #f9fafb));\n --_border-color: var(--hx-patient-banner-border-color, var(--hx-color-neutral-200, #e5e7eb));\n --_padding: var(\n --hx-patient-banner-padding,\n var(--hx-space-3, 0.75rem) var(--hx-space-4, 1rem)\n );\n --_gap: var(--hx-patient-banner-gap, var(--hx-space-4, 1rem));\n --_font-family: var(--hx-patient-banner-font-family, var(--hx-font-family-sans, sans-serif));\n --_label-color: var(--hx-patient-banner-label-color, var(--hx-color-neutral-500, #6b7280));\n --_label-font-size: var(--hx-patient-banner-label-font-size, var(--hx-font-size-xs, 0.75rem));\n --_value-color: var(--hx-patient-banner-value-color, var(--hx-color-neutral-900, #111827));\n --_value-font-size: var(--hx-patient-banner-value-font-size, var(--hx-font-size-sm, 0.875rem));\n --_photo-size: var(--hx-patient-banner-photo-size, var(--hx-space-10, 2.5rem));\n }\n\n * {\n box-sizing: border-box;\n }\n\n /* ─── Banner Container ─── */\n\n .banner {\n display: flex;\n align-items: center;\n gap: var(--_gap);\n padding: var(--_padding);\n background-color: var(--_bg);\n border-bottom: var(--hx-border-width-thin, 1px) solid var(--_border-color);\n font-family: var(--_font-family);\n width: 100%;\n }\n\n /* ─── Photo Area ─── */\n\n .banner__photo-area {\n flex-shrink: 0;\n width: var(--_photo-size);\n height: var(--_photo-size);\n border-radius: var(--hx-border-radius-full, 9999px);\n overflow: hidden;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--hx-color-neutral-200, #e5e7eb);\n }\n\n /* ─── Fields Grid ─── */\n\n .banner__fields {\n display: flex;\n flex-wrap: wrap;\n gap: var(--_gap);\n flex: 1;\n min-width: 0;\n }\n\n /* ─── Individual Field ─── */\n\n .field {\n display: flex;\n flex-direction: column;\n gap: var(--hx-space-1, 0.25rem);\n min-width: 0;\n }\n\n .field__label {\n font-size: var(--_label-font-size);\n color: var(--_label-color);\n font-weight: var(--hx-font-weight-medium, 500);\n line-height: var(--hx-line-height-tight, 1.25);\n white-space: nowrap;\n }\n\n .field__value {\n font-size: var(--_value-font-size);\n color: var(--_value-color);\n font-weight: var(--hx-font-weight-normal, 400);\n line-height: var(--hx-line-height-normal, 1.5);\n display: flex;\n align-items: center;\n gap: var(--hx-space-1, 0.25rem);\n }\n\n /* ─── Identifier Rule Violation ─── */\n /* Visual indicator when Joint Commission two-identifier rule is not met. */\n\n :host([aria-invalid='true']) .banner {\n border-bottom-color: var(--hx-color-error-400, #f87171);\n background-color: var(--hx-color-error-50, #fef2f2);\n /* Darken label color to maintain 4.5:1 contrast on error-50 background */\n --_label-color: var(--hx-patient-banner-label-color, var(--hx-color-neutral-700, #374151));\n position: relative;\n }\n\n :host([aria-invalid='true']) .banner::before {\n content: '';\n display: block;\n position: absolute;\n inset-inline-start: 0;\n top: 0;\n bottom: 0;\n width: var(--hx-border-width-thick, 4px);\n background-color: var(--hx-color-error-500, #ef4444);\n border-radius: 0;\n }\n`;\n","import { LitElement, html, type PropertyValues } from 'lit';\nimport { customElement, property, state, query } from 'lit/decorators.js';\nimport { tokenStyles } from '@helixui/tokens/lit';\nimport { helixPatientBannerStyles } from './hx-patient-banner.styles.js';\n\n/**\n * Patient identification banner implementing Joint Commission NPSG.01.01.01 two-identifier rule.\n * Renders as a landmark region containing named slots for patient identification fields.\n * Integrates with hx-phi-field for HIPAA-compliant display of masked identifiers.\n * Note: hx-phi-access events fired by slotted hx-phi-field elements bubble through this\n * component via composed: true — no re-dispatch is required.\n *\n * @summary Patient identification banner with two-identifier rule enforcement.\n *\n * @tag hx-patient-banner\n *\n * @slot photo - Optional patient photo slot.\n * @slot name - Patient name field content.\n * @slot mrn - Medical record number field content. Use hx-phi-field for HIPAA compliance.\n * @slot dob - Date of birth field content. Use hx-phi-field for HIPAA compliance.\n * @slot allergies - Allergy status/flag content.\n * @slot code-status - Code status content.\n *\n * @csspart banner - The outer banner container.\n * @csspart photo-area - The photo slot wrapper.\n * @csspart fields - The fields grid container.\n * @csspart field - An individual field container (applied to all field wrappers).\n * @csspart field-label - The field label element.\n * @csspart field-value - The field value slot wrapper.\n *\n * @fires {CustomEvent<PatientIdentifierRuleViolationDetail>} hx-identifier-rule-violation - Fired when fewer than 2 identifier slots are populated and enforce-identifier-rule is true.\n *\n * @cssprop [--hx-patient-banner-bg=var(--hx-color-neutral-50,#f9fafb)] - Banner background color.\n * @cssprop [--hx-patient-banner-border-color=var(--hx-color-neutral-200,#e5e7eb)] - Banner border color.\n * @cssprop [--hx-patient-banner-padding=var(--hx-space-3,0.75rem) var(--hx-space-4,1rem)] - Banner padding.\n * @cssprop [--hx-patient-banner-gap=var(--hx-space-4,1rem)] - Gap between banner fields.\n * @cssprop [--hx-patient-banner-font-family=var(--hx-font-family-sans,sans-serif)] - Banner font family.\n * @cssprop [--hx-patient-banner-label-color=var(--hx-color-neutral-500,#6b7280)] - Field label color.\n * @cssprop [--hx-patient-banner-label-font-size=var(--hx-font-size-xs,0.75rem)] - Field label font size.\n * @cssprop [--hx-patient-banner-value-color=var(--hx-color-neutral-900,#111827)] - Field value color.\n * @cssprop [--hx-patient-banner-value-font-size=var(--hx-font-size-sm,0.875rem)] - Field value font size.\n * @cssprop [--hx-patient-banner-photo-size=var(--hx-space-10,2.5rem)] - Photo area size.\n */\n@customElement('hx-patient-banner')\nexport class HelixPatientBanner extends LitElement {\n static override styles = [tokenStyles, helixPatientBannerStyles];\n\n // ─── Public Properties ───\n\n /**\n * Optional patient ID used as context in identifier rule violation events.\n * @attr patient-id\n */\n @property({ type: String, attribute: 'patient-id' })\n patientId: string = '';\n\n /**\n * Accessible label for the banner landmark region.\n * @attr label-patient\n */\n @property({ type: String, attribute: 'label-patient' })\n labelPatient: string = 'Patient identification';\n\n /**\n * Visible label for the name field.\n * @attr label-name\n */\n @property({ type: String, attribute: 'label-name' })\n labelName: string = 'Patient name';\n\n /**\n * Visible label for the MRN field.\n * @attr label-mrn\n */\n @property({ type: String, attribute: 'label-mrn' })\n labelMrn: string = 'MRN';\n\n /**\n * Visible label for the date of birth field.\n * @attr label-dob\n */\n @property({ type: String, attribute: 'label-dob' })\n labelDob: string = 'Date of birth';\n\n /**\n * Visible label for the allergies field.\n * @attr label-allergies\n */\n @property({ type: String, attribute: 'label-allergies' })\n labelAllergies: string = 'Allergies';\n\n /**\n * Visible label for the code status field.\n * @attr label-code-status\n */\n @property({ type: String, attribute: 'label-code-status' })\n labelCodeStatus: string = 'Code status';\n\n /**\n * Whether to enforce the Joint Commission NPSG.01.01.01 two-identifier rule.\n * When true, fires hx-identifier-rule-violation if fewer than 2 identifier\n * slots (name, mrn, dob) are populated.\n * @attr enforce-identifier-rule\n */\n @property({\n attribute: 'enforce-identifier-rule',\n reflect: true,\n converter: {\n fromAttribute: (value: string | null) => value !== 'false',\n toAttribute: (value: boolean) => String(value),\n },\n })\n enforceIdentifierRule: boolean = true;\n\n // ─── Internal State ───\n\n @state() private _identifierCount: number = 0;\n\n // ─── Slot Queries ───\n\n @query('slot[name=\"name\"]') private _nameSlot!: HTMLSlotElement;\n @query('slot[name=\"mrn\"]') private _mrnSlot!: HTMLSlotElement;\n @query('slot[name=\"dob\"]') private _dobSlot!: HTMLSlotElement;\n\n // ─── Lifecycle ───\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.setAttribute('role', 'banner');\n this.setAttribute('aria-label', this.labelPatient);\n }\n\n protected override updated(changedProperties: PropertyValues<this>): void {\n super.updated(changedProperties);\n\n if (changedProperties.has('labelPatient')) {\n this.setAttribute('aria-label', this.labelPatient);\n }\n\n if (changedProperties.has('enforceIdentifierRule')) {\n this._checkIdentifierRule();\n }\n }\n\n // ─── Private Helpers ───\n\n private _countPopulatedIdentifiers(): number {\n let count = 0;\n\n const slots = [this._nameSlot, this._mrnSlot, this._dobSlot];\n for (const slot of slots) {\n if (slot && slot.assignedNodes({ flatten: true }).length > 0) {\n count++;\n }\n }\n\n return count;\n }\n\n private _checkIdentifierRule(): void {\n const count = this._countPopulatedIdentifiers();\n this._identifierCount = count;\n\n if (this.enforceIdentifierRule && count < 2) {\n this.setAttribute('aria-invalid', 'true');\n this.dispatchEvent(\n new CustomEvent<PatientIdentifierRuleViolationDetail>('hx-identifier-rule-violation', {\n bubbles: true,\n composed: true,\n detail: {\n populatedIdentifiers: count,\n requiredIdentifiers: 2,\n patientId: this.patientId,\n },\n }),\n );\n } else {\n this.removeAttribute('aria-invalid');\n }\n }\n\n // ─── Event Handlers ───\n\n private _handleSlotChange(): void {\n this._checkIdentifierRule();\n }\n\n // ─── Render ───\n\n override render() {\n return html`\n <div part=\"banner\" class=\"banner\">\n <div part=\"photo-area\" class=\"banner__photo-area\">\n <slot name=\"photo\"></slot>\n </div>\n\n <div part=\"fields\" class=\"banner__fields\">\n <div part=\"field\" class=\"field\">\n <span part=\"field-label\" class=\"field__label\">${this.labelName}</span>\n <div part=\"field-value\" class=\"field__value\">\n <slot name=\"name\" @slotchange=${this._handleSlotChange}></slot>\n </div>\n </div>\n\n <div part=\"field\" class=\"field\">\n <span part=\"field-label\" class=\"field__label\">${this.labelMrn}</span>\n <div part=\"field-value\" class=\"field__value\">\n <slot name=\"mrn\" @slotchange=${this._handleSlotChange}></slot>\n </div>\n </div>\n\n <div part=\"field\" class=\"field\">\n <span part=\"field-label\" class=\"field__label\">${this.labelDob}</span>\n <div part=\"field-value\" class=\"field__value\">\n <slot name=\"dob\" @slotchange=${this._handleSlotChange}></slot>\n </div>\n </div>\n\n <div part=\"field\" class=\"field\">\n <span part=\"field-label\" class=\"field__label\">${this.labelAllergies}</span>\n <div part=\"field-value\" class=\"field__value\">\n <slot name=\"allergies\"></slot>\n </div>\n </div>\n\n <div part=\"field\" class=\"field\">\n <span part=\"field-label\" class=\"field__label\">${this.labelCodeStatus}</span>\n <div part=\"field-value\" class=\"field__value\">\n <slot name=\"code-status\"></slot>\n </div>\n </div>\n </div>\n </div>\n `;\n }\n}\n\nexport interface PatientIdentifierRuleViolationDetail {\n populatedIdentifiers: number;\n requiredIdentifiers: number;\n patientId: string;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-patient-banner': HelixPatientBanner;\n }\n}\n"],"names":["helixPatientBannerStyles","css","HelixPatientBanner","LitElement","changedProperties","count","slots","slot","html","tokenStyles","__decorateClass","property","value","state","query","customElement"],"mappings":"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"}
@@ -0,0 +1,261 @@
1
+ import { css as c, LitElement as p, html as n } from "lit";
2
+ import { property as h, state as u, customElement as f } from "lit/decorators.js";
3
+ import { tokenStyles as m } from "@helixui/tokens/lit";
4
+ const _ = c`
5
+ :host {
6
+ display: inline-flex;
7
+ }
8
+
9
+ /* ─── Container ─── */
10
+
11
+ .phi-field {
12
+ display: inline-flex;
13
+ align-items: center;
14
+ gap: var(--hx-space-2, 0.5rem);
15
+ font-family: var(--hx-phi-field-font-family, var(--hx-font-family-mono, monospace));
16
+ }
17
+
18
+ /* ─── Value ─── */
19
+
20
+ .phi-field__value--masked {
21
+ user-select: none;
22
+ -webkit-user-select: none;
23
+ color: var(--hx-phi-field-masked-color, var(--hx-color-neutral-500, #6b7280));
24
+ letter-spacing: 0.1em;
25
+ }
26
+
27
+ .phi-field__value--revealed {
28
+ color: var(--hx-phi-field-value-color, var(--hx-color-neutral-900, #111827));
29
+ }
30
+
31
+ /* ─── Screen Reader Status ─── */
32
+
33
+ .phi-field__status {
34
+ position: absolute;
35
+ width: 1px;
36
+ height: 1px;
37
+ overflow: hidden;
38
+ clip: rect(0, 0, 0, 0);
39
+ white-space: nowrap;
40
+ border: 0;
41
+ padding: 0;
42
+ margin: -1px;
43
+ }
44
+
45
+ /* ─── Toggle Button ─── */
46
+
47
+ .phi-field__toggle {
48
+ display: inline-flex;
49
+ align-items: center;
50
+ background: none;
51
+ border: none;
52
+ padding: var(--hx-space-1, 0.25rem);
53
+ color: var(--hx-phi-field-toggle-color, var(--hx-color-primary-500, #2563eb));
54
+ cursor: pointer;
55
+ line-height: 1;
56
+ border-radius: var(--hx-border-radius-sm, 0.25rem);
57
+ }
58
+
59
+ .phi-field__toggle:focus-visible {
60
+ outline: var(--hx-focus-ring-width, 2px) solid
61
+ var(
62
+ --hx-phi-field-focus-ring-color,
63
+ var(--hx-focus-ring-color, var(--hx-color-primary-500, #2563eb))
64
+ );
65
+ outline-offset: var(--hx-focus-ring-offset, 2px);
66
+ }
67
+
68
+ .phi-field__toggle:hover {
69
+ opacity: var(--hx-opacity-90, 0.9);
70
+ }
71
+
72
+ .phi-field__toggle:active {
73
+ opacity: var(--hx-opacity-50, 0.5);
74
+ }
75
+
76
+ .phi-field__toggle svg {
77
+ width: 1em;
78
+ height: 1em;
79
+ pointer-events: none;
80
+ }
81
+
82
+ /* ─── Reduced Motion ─── */
83
+
84
+ @media (prefers-reduced-motion: reduce) {
85
+ .phi-field__toggle {
86
+ transition: none;
87
+ }
88
+ }
89
+ `;
90
+ var v = Object.defineProperty, g = Object.getOwnPropertyDescriptor, o = (e, t, d, l) => {
91
+ for (var i = l > 1 ? void 0 : l ? g(t, d) : t, r = e.length - 1, s; r >= 0; r--)
92
+ (s = e[r]) && (i = (l ? s(t, d, i) : s(i)) || i);
93
+ return l && i && v(t, d, i), i;
94
+ };
95
+ let a = class extends p {
96
+ constructor() {
97
+ super(...arguments), this.data = "", this.fieldType = "ssn", this.fieldId = "", this.clipboardTimeout = 3e4, this._masked = !0, this._clipboardTimer = null;
98
+ }
99
+ // ─── Lifecycle ───
100
+ connectedCallback() {
101
+ super.connectedCallback(), this.setAttribute("autocomplete", "off");
102
+ }
103
+ disconnectedCallback() {
104
+ super.disconnectedCallback(), this._cancelClipboardTimer();
105
+ }
106
+ // ─── Private Helpers ───
107
+ _cancelClipboardTimer() {
108
+ this._clipboardTimer !== null && (clearTimeout(this._clipboardTimer), this._clipboardTimer = null);
109
+ }
110
+ _scheduleClipboardClear() {
111
+ this._cancelClipboardTimer(), this._clipboardTimer = setTimeout(() => {
112
+ this._clearClipboard();
113
+ }, this.clipboardTimeout);
114
+ }
115
+ _clearClipboard() {
116
+ var e;
117
+ this._clipboardTimer = null, typeof navigator < "u" && navigator.clipboard && ((e = navigator == null ? void 0 : navigator.clipboard) == null || e.writeText("").catch(() => {
118
+ })), this.dispatchEvent(
119
+ new CustomEvent("hx-phi-access", {
120
+ bubbles: !0,
121
+ composed: !0,
122
+ detail: {
123
+ fieldId: this.fieldId || this.id || "",
124
+ action: "hide",
125
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
126
+ fieldType: this.fieldType
127
+ }
128
+ })
129
+ ), this._masked = !0;
130
+ }
131
+ _getMaskedValue() {
132
+ if (!this.data) return "";
133
+ switch (this.fieldType) {
134
+ case "ssn": {
135
+ const e = this.data.match(/^(\d{3})(-?)(\d{2})(-?)(\d{4})$/);
136
+ return e ? `***${e[2]}**${e[4]}${e[5]}` : this.data.slice(0, -4).replace(/\d/g, "*") + this.data.slice(-4);
137
+ }
138
+ case "mrn": {
139
+ const e = this.data.split(""), t = [];
140
+ e.forEach((r, s) => {
141
+ /[a-zA-Z0-9]/.test(r) && t.push(s);
142
+ });
143
+ const d = Math.min(4, t.length), l = t.length - d, i = new Set(t.slice(0, l));
144
+ return e.map((r, s) => i.has(s) ? "*" : r).join("");
145
+ }
146
+ case "dob":
147
+ return this.data.replace(/\d/g, "*");
148
+ case "insurance": {
149
+ const e = this.data.match(/^(\d{4})(-?)(\d{4})(-?)(\d{4})(-?)(\d{4})$/);
150
+ return e ? `****${e[2]}****${e[4]}****${e[6]}${e[7]}` : this.data.slice(0, -4).replace(/[a-zA-Z0-9]/g, "*") + this.data.slice(-4);
151
+ }
152
+ default:
153
+ return this.fieldType;
154
+ }
155
+ }
156
+ // ─── Event Handlers ───
157
+ _handleToggle() {
158
+ this.dispatchEvent(
159
+ new CustomEvent("hx-phi-access", {
160
+ bubbles: !0,
161
+ composed: !0,
162
+ detail: {
163
+ fieldId: this.fieldId || this.id || "",
164
+ action: this._masked ? "reveal" : "hide",
165
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
166
+ fieldType: this.fieldType
167
+ }
168
+ })
169
+ ), this._masked ? (this._masked = !1, this._scheduleClipboardClear()) : (this._cancelClipboardTimer(), this._masked = !0);
170
+ }
171
+ _handleCopy(e) {
172
+ this._masked && e.preventDefault();
173
+ }
174
+ _handlePaste(e) {
175
+ this._masked && e.preventDefault();
176
+ }
177
+ // ─── Render Helpers ───
178
+ _renderEyeIcon() {
179
+ return n`
180
+ <svg
181
+ xmlns="http://www.w3.org/2000/svg"
182
+ viewBox="0 0 24 24"
183
+ fill="none"
184
+ stroke="currentColor"
185
+ stroke-width="2"
186
+ stroke-linecap="round"
187
+ stroke-linejoin="round"
188
+ aria-hidden="true"
189
+ >
190
+ <path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z" />
191
+ <circle cx="12" cy="12" r="3" />
192
+ </svg>
193
+ `;
194
+ }
195
+ _renderEyeOffIcon() {
196
+ return n`
197
+ <svg
198
+ xmlns="http://www.w3.org/2000/svg"
199
+ viewBox="0 0 24 24"
200
+ fill="none"
201
+ stroke="currentColor"
202
+ stroke-width="2"
203
+ stroke-linecap="round"
204
+ stroke-linejoin="round"
205
+ aria-hidden="true"
206
+ >
207
+ <path d="M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94" />
208
+ <path d="M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19" />
209
+ <line x1="1" y1="1" x2="23" y2="23" />
210
+ </svg>
211
+ `;
212
+ }
213
+ // ─── Render ───
214
+ render() {
215
+ return n`
216
+ <div part="container" class="phi-field" @copy=${this._handleCopy} @paste=${this._handlePaste}>
217
+ ${this._masked ? n`<span part="value" class="phi-field__value phi-field__value--masked"
218
+ >${this._getMaskedValue()}</span
219
+ >` : n`<span part="value" class="phi-field__value phi-field__value--revealed"
220
+ >${this.data}</span
221
+ >`}
222
+ <span role="status" aria-live="polite" aria-atomic="true" class="phi-field__status">
223
+ ${this._masked ? "Protected health information is masked" : "Protected health information is revealed"}
224
+ </span>
225
+ <button
226
+ part="toggle"
227
+ class="phi-field__toggle"
228
+ type="button"
229
+ aria-label=${this._masked ? "Reveal protected health information" : "Hide protected health information"}
230
+ aria-pressed=${String(!this._masked)}
231
+ @click=${this._handleToggle}
232
+ >
233
+ ${this._masked ? this._renderEyeIcon() : this._renderEyeOffIcon()}
234
+ </button>
235
+ </div>
236
+ `;
237
+ }
238
+ };
239
+ a.styles = [m, _];
240
+ o([
241
+ h({ type: String })
242
+ ], a.prototype, "data", 2);
243
+ o([
244
+ h({ type: String, reflect: !0, attribute: "field-type" })
245
+ ], a.prototype, "fieldType", 2);
246
+ o([
247
+ h({ type: String, attribute: "field-id" })
248
+ ], a.prototype, "fieldId", 2);
249
+ o([
250
+ h({ type: Number, attribute: "clipboard-timeout" })
251
+ ], a.prototype, "clipboardTimeout", 2);
252
+ o([
253
+ u()
254
+ ], a.prototype, "_masked", 2);
255
+ a = o([
256
+ f("hx-phi-field")
257
+ ], a);
258
+ export {
259
+ a as H
260
+ };
261
+ //# sourceMappingURL=hx-phi-field-EDWna59z.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hx-phi-field-EDWna59z.js","sources":["../../src/components/hx-phi-field/hx-phi-field.styles.ts","../../src/components/hx-phi-field/hx-phi-field.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixPhiFieldStyles = css`\n :host {\n display: inline-flex;\n }\n\n /* ─── Container ─── */\n\n .phi-field {\n display: inline-flex;\n align-items: center;\n gap: var(--hx-space-2, 0.5rem);\n font-family: var(--hx-phi-field-font-family, var(--hx-font-family-mono, monospace));\n }\n\n /* ─── Value ─── */\n\n .phi-field__value--masked {\n user-select: none;\n -webkit-user-select: none;\n color: var(--hx-phi-field-masked-color, var(--hx-color-neutral-500, #6b7280));\n letter-spacing: 0.1em;\n }\n\n .phi-field__value--revealed {\n color: var(--hx-phi-field-value-color, var(--hx-color-neutral-900, #111827));\n }\n\n /* ─── Screen Reader Status ─── */\n\n .phi-field__status {\n position: absolute;\n width: 1px;\n height: 1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n padding: 0;\n margin: -1px;\n }\n\n /* ─── Toggle Button ─── */\n\n .phi-field__toggle {\n display: inline-flex;\n align-items: center;\n background: none;\n border: none;\n padding: var(--hx-space-1, 0.25rem);\n color: var(--hx-phi-field-toggle-color, var(--hx-color-primary-500, #2563eb));\n cursor: pointer;\n line-height: 1;\n border-radius: var(--hx-border-radius-sm, 0.25rem);\n }\n\n .phi-field__toggle:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid\n var(\n --hx-phi-field-focus-ring-color,\n var(--hx-focus-ring-color, var(--hx-color-primary-500, #2563eb))\n );\n outline-offset: var(--hx-focus-ring-offset, 2px);\n }\n\n .phi-field__toggle:hover {\n opacity: var(--hx-opacity-90, 0.9);\n }\n\n .phi-field__toggle:active {\n opacity: var(--hx-opacity-50, 0.5);\n }\n\n .phi-field__toggle svg {\n width: 1em;\n height: 1em;\n pointer-events: none;\n }\n\n /* ─── Reduced Motion ─── */\n\n @media (prefers-reduced-motion: reduce) {\n .phi-field__toggle {\n transition: none;\n }\n }\n`;\n","import { LitElement, html, type TemplateResult } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { tokenStyles } from '@helixui/tokens/lit';\nimport { helixPhiFieldStyles } from './hx-phi-field.styles.js';\n\n/**\n * HIPAA-compliant field component for rendering masked Protected Health Information (PHI).\n * PHI is masked by default and only rendered to the DOM when explicitly revealed. Access\n * events are fired on reveal, hide, and clipboard auto-clear for audit trail purposes.\n *\n * @summary HIPAA-compliant field for rendering masked Protected Health Information.\n *\n * @tag hx-phi-field\n *\n * @csspart container - The outer wrapper element.\n * @csspart value - The value display span (masked or revealed).\n * @csspart toggle - The reveal/hide toggle button.\n *\n * @fires {CustomEvent<PhiAccessEventDetail>} hx-phi-access - Fired on reveal, hide, and clipboard auto-clear.\n *\n * @cssprop [--hx-phi-field-font-family=var(--hx-font-family-mono,monospace)] - Font family for the masked value.\n * @cssprop [--hx-phi-field-value-color=var(--hx-color-neutral-900,#111827)] - Value text color.\n * @cssprop [--hx-phi-field-masked-color=var(--hx-color-neutral-500,#6b7280)] - Masked value text color.\n * @cssprop [--hx-phi-field-toggle-color=var(--hx-color-primary-500,#2563eb)] - Toggle button color.\n * @cssprop [--hx-phi-field-focus-ring-color=var(--hx-focus-ring-color,var(--hx-color-primary-500,#2563eb))] - Focus ring color.\n */\n@customElement('hx-phi-field')\nexport class HelixPhiField extends LitElement {\n static override styles = [tokenStyles, helixPhiFieldStyles];\n\n // ─── Public Properties ───\n\n /**\n * The Protected Health Information value to display or mask.\n * @attr data\n */\n @property({ type: String })\n data: string = '';\n\n /**\n * The type of PHI field. Controls the masking pattern applied.\n * @attr field-type\n */\n @property({ type: String, reflect: true, attribute: 'field-type' })\n fieldType: 'ssn' | 'mrn' | 'dob' | 'insurance' = 'ssn';\n\n /**\n * Identifier used in audit events. Falls back to the element's id attribute.\n * @attr field-id\n */\n @property({ type: String, attribute: 'field-id' })\n fieldId: string = '';\n\n /**\n * Milliseconds after clipboard write before the clipboard is automatically cleared.\n * Defaults to 30000 (30 seconds).\n * @attr clipboard-timeout\n */\n @property({ type: Number, attribute: 'clipboard-timeout' })\n clipboardTimeout: number = 30000;\n\n // ─── Internal State ───\n\n @state() private _masked = true;\n\n private _clipboardTimer: ReturnType<typeof setTimeout> | null = null;\n\n // ─── Lifecycle ───\n\n override connectedCallback(): void {\n super.connectedCallback();\n // Enforce HIPAA compliance: prevent browser autofill on the host element\n this.setAttribute('autocomplete', 'off');\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this._cancelClipboardTimer();\n }\n\n // ─── Private Helpers ───\n\n private _cancelClipboardTimer(): void {\n if (this._clipboardTimer !== null) {\n clearTimeout(this._clipboardTimer);\n this._clipboardTimer = null;\n }\n }\n\n private _scheduleClipboardClear(): void {\n this._cancelClipboardTimer();\n this._clipboardTimer = setTimeout(() => {\n this._clearClipboard();\n }, this.clipboardTimeout);\n }\n\n private _clearClipboard(): void {\n this._clipboardTimer = null;\n if (typeof navigator !== 'undefined' && navigator.clipboard) {\n navigator?.clipboard?.writeText('').catch(() => {\n // Clipboard clear failure is non-fatal — silently ignore\n });\n }\n this.dispatchEvent(\n new CustomEvent<PhiAccessEventDetail>('hx-phi-access', {\n bubbles: true,\n composed: true,\n detail: {\n fieldId: this.fieldId || this.id || '',\n action: 'hide',\n timestamp: new Date().toISOString(),\n fieldType: this.fieldType,\n },\n }),\n );\n this._masked = true;\n }\n\n private _getMaskedValue(): string {\n if (!this.data) return '';\n\n switch (this.fieldType) {\n case 'ssn': {\n // Format: xxx-xx-xxxx → ***-**-xxxx (show last 4 digits)\n // Match the separator-delimited pattern first\n const ssnMatch = this.data.match(/^(\\d{3})(-?)(\\d{2})(-?)(\\d{4})$/);\n if (ssnMatch) {\n return `***${ssnMatch[2]}**${ssnMatch[4]}${ssnMatch[5]}`;\n }\n // Fallback: mask all but last 4 chars\n return this.data.slice(0, -4).replace(/\\d/g, '*') + this.data.slice(-4);\n }\n\n case 'mrn': {\n // Mask all but last 4 alphanumeric characters, preserve separators\n const chars = this.data.split('');\n const alphanumericIndices: number[] = [];\n chars.forEach((ch, i) => {\n if (/[a-zA-Z0-9]/.test(ch)) {\n alphanumericIndices.push(i);\n }\n });\n const revealCount = Math.min(4, alphanumericIndices.length);\n const maskUntilIdx = alphanumericIndices.length - revealCount;\n const indicesToMask = new Set(alphanumericIndices.slice(0, maskUntilIdx));\n return chars.map((ch, i) => (indicesToMask.has(i) ? '*' : ch)).join('');\n }\n\n case 'dob': {\n // Replace ALL digits with *, preserve separators\n return this.data.replace(/\\d/g, '*');\n }\n\n case 'insurance': {\n // Format: xxxx-xxxx-xxxx-xxxx → ****-****-****-xxxx (show last 4 digits)\n const insMatch = this.data.match(/^(\\d{4})(-?)(\\d{4})(-?)(\\d{4})(-?)(\\d{4})$/);\n if (insMatch) {\n return `****${insMatch[2]}****${insMatch[4]}****${insMatch[6]}${insMatch[7]}`;\n }\n // Fallback: mask all but last 4 chars\n return this.data.slice(0, -4).replace(/[a-zA-Z0-9]/g, '*') + this.data.slice(-4);\n }\n\n default: {\n // Exhaustive check — fieldType is typed, but guard defensively\n const _exhaustive: never = this.fieldType;\n return _exhaustive;\n }\n }\n }\n\n // ─── Event Handlers ───\n\n private _handleToggle(): void {\n // Dispatch BEFORE toggling state so action reflects the upcoming state\n this.dispatchEvent(\n new CustomEvent<PhiAccessEventDetail>('hx-phi-access', {\n bubbles: true,\n composed: true,\n detail: {\n fieldId: this.fieldId || this.id || '',\n action: this._masked ? 'reveal' : 'hide',\n timestamp: new Date().toISOString(),\n fieldType: this.fieldType,\n },\n }),\n );\n\n if (this._masked) {\n // Revealing: start clipboard clear timer\n this._masked = false;\n this._scheduleClipboardClear();\n } else {\n // Hiding: cancel any pending clipboard clear\n this._cancelClipboardTimer();\n this._masked = true;\n }\n }\n\n private _handleCopy(e: ClipboardEvent): void {\n if (this._masked) {\n e.preventDefault();\n }\n }\n\n private _handlePaste(e: ClipboardEvent): void {\n if (this._masked) {\n e.preventDefault();\n }\n }\n\n // ─── Render Helpers ───\n\n private _renderEyeIcon(): TemplateResult {\n return html`\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\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 <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </svg>\n `;\n }\n\n private _renderEyeOffIcon(): TemplateResult {\n return html`\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\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 <path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94\" />\n <path d=\"M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19\" />\n <line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\" />\n </svg>\n `;\n }\n\n // ─── Render ───\n\n override render() {\n return html`\n <div part=\"container\" class=\"phi-field\" @copy=${this._handleCopy} @paste=${this._handlePaste}>\n ${this._masked\n ? html`<span part=\"value\" class=\"phi-field__value phi-field__value--masked\"\n >${this._getMaskedValue()}</span\n >`\n : html`<span part=\"value\" class=\"phi-field__value phi-field__value--revealed\"\n >${this.data}</span\n >`}\n <span role=\"status\" aria-live=\"polite\" aria-atomic=\"true\" class=\"phi-field__status\">\n ${this._masked\n ? 'Protected health information is masked'\n : 'Protected health information is revealed'}\n </span>\n <button\n part=\"toggle\"\n class=\"phi-field__toggle\"\n type=\"button\"\n aria-label=${this._masked\n ? 'Reveal protected health information'\n : 'Hide protected health information'}\n aria-pressed=${String(!this._masked)}\n @click=${this._handleToggle}\n >\n ${this._masked ? this._renderEyeIcon() : this._renderEyeOffIcon()}\n </button>\n </div>\n `;\n }\n}\n\nexport interface PhiAccessEventDetail {\n fieldId: string;\n action: 'reveal' | 'hide';\n timestamp: string;\n fieldType: 'ssn' | 'mrn' | 'dob' | 'insurance';\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-phi-field': HelixPhiField;\n }\n}\n"],"names":["helixPhiFieldStyles","css","HelixPhiField","LitElement","_a","ssnMatch","chars","alphanumericIndices","ch","i","revealCount","maskUntilIdx","indicesToMask","insMatch","html","tokenStyles","__decorateClass","property","state","customElement"],"mappings":"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"}
@@ -1,8 +1,7 @@
1
- import { css as x, LitElement as E, html as y } from "lit";
2
- import { property as l, state as A, customElement as k } from "lit/decorators.js";
3
- import { tokenStyles as S } from "@helixui/tokens/lit";
4
- import { offset as $, flip as C, shift as T, arrow as F, computePosition as P } from "@floating-ui/dom";
5
- const D = x`
1
+ import { css as k, LitElement as H, nothing as $, html as g } from "lit";
2
+ import { property as d, state as C, customElement as P } from "lit/decorators.js";
3
+ import { tokenStyles as D } from "@helixui/tokens/lit";
4
+ const F = k`
6
5
  :host {
7
6
  /* P2-05: display:contents lets the trigger-wrapper control layout inline;
8
7
  position:relative was vestigial — body uses position:fixed via Floating UI */
@@ -65,23 +64,28 @@ const D = x`
65
64
  }
66
65
  `;
67
66
  var L = Object.defineProperty, M = Object.getOwnPropertyDescriptor, h = (e, t, r, o) => {
68
- for (var i = o > 1 ? void 0 : o ? M(t, r) : t, s = e.length - 1, n; s >= 0; s--)
69
- (n = e[s]) && (i = (o ? n(t, r, i) : n(i)) || i);
67
+ for (var i = o > 1 ? void 0 : o ? M(t, r) : t, n = e.length - 1, s; n >= 0; n--)
68
+ (s = e[n]) && (i = (o ? s(t, r, i) : s(i)) || i);
70
69
  return o && i && L(t, r, i), i;
71
70
  };
72
- let R = 0, a = class extends E {
71
+ let R = 0, a = class extends H {
73
72
  constructor() {
74
- super(...arguments), this.open = !1, this.placement = "bottom", this.trigger = "click", this.distance = 8, this.skidding = 0, this.arrow = !1, this.label = "Popover", this._visible = !1, this._previousFocus = null, this._popoverId = `hx-popover-${++R}`, this._showTimer = null, this._handleFocusTrap = (e) => {
75
- var n, d, c;
76
- if (e.key !== "Tab" || !this._visible) return;
77
- const t = this._getFocusableElements();
78
- if (t.length === 0) return;
79
- const r = (n = this.shadowRoot) == null ? void 0 : n.querySelector('[part="body"]'), o = r ? [r, ...t] : t;
80
- if (o.length === 0) return;
81
- const i = o[0], s = o[o.length - 1];
82
- e.shiftKey ? (document.activeElement === i || ((d = this.shadowRoot) == null ? void 0 : d.activeElement) === i) && (e.preventDefault(), s.focus()) : (document.activeElement === s || ((c = this.shadowRoot) == null ? void 0 : c.activeElement) === s) && (e.preventDefault(), i.focus());
83
- }, this._handleDocumentKeydown = (e) => {
84
- e.key === "Escape" && this._visible && this._hide(!0);
73
+ super(...arguments), this.open = !1, this.placement = "bottom", this.trigger = "click", this.distance = 8, this.skidding = 0, this.arrow = !1, this.label = "Popover", this._visible = !1, this._previousFocus = null, this._popoverId = `hx-popover-${++R}`, this._showTimer = null, this._hoverHideTimer = null, this._handleDocumentKeydown = (e) => {
74
+ var t, r, o;
75
+ if (this._visible) {
76
+ if (e.key === "Escape") {
77
+ this._hide(!0);
78
+ return;
79
+ }
80
+ if (e.key === "Tab") {
81
+ const i = this._getFocusableElements();
82
+ if (i.length === 0) return;
83
+ const n = (t = this.shadowRoot) == null ? void 0 : t.querySelector('[part="body"]'), s = n ? [n, ...i] : i;
84
+ if (s.length === 0) return;
85
+ const l = s[0], c = s[s.length - 1];
86
+ e.shiftKey ? (document.activeElement === l || ((r = this.shadowRoot) == null ? void 0 : r.activeElement) === l) && (e.preventDefault(), c.focus()) : (document.activeElement === c || ((o = this.shadowRoot) == null ? void 0 : o.activeElement) === c) && (e.preventDefault(), l.focus());
87
+ }
88
+ }
85
89
  }, this._handleDocumentClick = (e) => {
86
90
  e.target !== this && !this.contains(e.target) && this._hide(!1);
87
91
  }, this._handleAnchorClick = () => {
@@ -89,11 +93,11 @@ let R = 0, a = class extends E {
89
93
  }, this._handleAnchorMouseEnter = () => {
90
94
  this.trigger === "hover" && this._show();
91
95
  }, this._handleAnchorMouseLeave = () => {
92
- this.trigger === "hover" && this._hide(!1);
96
+ this.trigger === "hover" && this._scheduleHoverHide();
93
97
  }, this._handleBodyMouseEnter = () => {
94
- this.trigger === "hover" && this._show();
98
+ this.trigger === "hover" && this._cancelHoverHide();
95
99
  }, this._handleBodyMouseLeave = () => {
96
- this.trigger === "hover" && this._hide(!1);
100
+ this.trigger === "hover" && this._scheduleHoverHide();
97
101
  }, this._handleAnchorFocusIn = () => {
98
102
  this.trigger !== "focus" && this.trigger !== "hover" || this._show();
99
103
  }, this._handleAnchorFocusOut = (e) => {
@@ -105,7 +109,7 @@ let R = 0, a = class extends E {
105
109
  }
106
110
  // ─── Lifecycle ───
107
111
  disconnectedCallback() {
108
- super.disconnectedCallback(), this._showTimer !== null && (clearTimeout(this._showTimer), this._showTimer = null), document.removeEventListener("click", this._handleDocumentClick), document.removeEventListener("keydown", this._handleDocumentKeydown), document.removeEventListener("keydown", this._handleFocusTrap);
112
+ super.disconnectedCallback(), this._showTimer !== null && (clearTimeout(this._showTimer), this._showTimer = null), this._hoverHideTimer !== null && (clearTimeout(this._hoverHideTimer), this._hoverHideTimer = null), document.removeEventListener("click", this._handleDocumentClick), document.removeEventListener("keydown", this._handleDocumentKeydown);
109
113
  }
110
114
  firstUpdated() {
111
115
  this._setAnchorAriaAttributes(!1), this.open && this._show();
@@ -129,16 +133,16 @@ let R = 0, a = class extends E {
129
133
  /** Return all keyboard-focusable elements inside the popover body's slotted content. */
130
134
  /** @internal */
131
135
  _getFocusableElements() {
132
- var s;
133
- const e = (s = this.shadowRoot) == null ? void 0 : s.querySelector('[part="body"]');
136
+ var n;
137
+ const e = (n = this.shadowRoot) == null ? void 0 : n.querySelector('[part="body"]');
134
138
  if (!e) return [];
135
139
  const t = e.querySelector("slot:not([name])");
136
140
  if (!t) return [];
137
141
  const r = t.assignedElements({ flatten: !0 }), o = 'a[href], area[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"]), details > summary', i = [];
138
- for (const n of r) {
139
- n.matches(o) && i.push(n);
140
- const d = n.querySelectorAll(o);
141
- i.push(...d);
142
+ for (const s of r) {
143
+ s.matches(o) && i.push(s);
144
+ const l = s.querySelectorAll(o);
145
+ i.push(...l);
142
146
  }
143
147
  return i;
144
148
  }
@@ -147,9 +151,9 @@ let R = 0, a = class extends E {
147
151
  async _show() {
148
152
  var t;
149
153
  if (this._visible) return;
150
- this._previousFocus = document.activeElement, this.dispatchEvent(new CustomEvent("hx-show", { bubbles: !0, composed: !0 })), this._visible = !0, this.open = !0, this._setAnchorAriaAttributes(!0), document.addEventListener("keydown", this._handleDocumentKeydown), document.addEventListener("keydown", this._handleFocusTrap), await this.updateComplete, this.dispatchEvent(new CustomEvent("hx-after-show", { bubbles: !0, composed: !0 }));
154
+ this._previousFocus = document.activeElement, this.dispatchEvent(new CustomEvent("hx-show", { bubbles: !0, composed: !0 })), this._visible = !0, this.open = !0, this._setAnchorAriaAttributes(!0), document.addEventListener("keydown", this._handleDocumentKeydown), await this.updateComplete, this.dispatchEvent(new CustomEvent("hx-after-show", { bubbles: !0, composed: !0 }));
151
155
  const e = (t = this.shadowRoot) == null ? void 0 : t.querySelector('[part="body"]');
152
- e && e.focus(), this._showTimer !== null && clearTimeout(this._showTimer), this._showTimer = setTimeout(() => {
156
+ e && this._getFocusableElements().length > 0 && e.focus(), this._showTimer !== null && clearTimeout(this._showTimer), this._showTimer = setTimeout(() => {
153
157
  this._showTimer = null, document.addEventListener("click", this._handleDocumentClick);
154
158
  }, 0), await this._updatePosition();
155
159
  }
@@ -158,60 +162,83 @@ let R = 0, a = class extends E {
158
162
  /** @internal */
159
163
  async _hide(e = !0) {
160
164
  var t;
161
- this._visible && (document.removeEventListener("click", this._handleDocumentClick), document.removeEventListener("keydown", this._handleDocumentKeydown), document.removeEventListener("keydown", this._handleFocusTrap), this.dispatchEvent(new CustomEvent("hx-hide", { bubbles: !0, composed: !0 })), this._visible = !1, this.open = !1, this._setAnchorAriaAttributes(!1), e && ((t = this._previousFocus) == null || t.focus()), this._previousFocus = null, await this.updateComplete, this.dispatchEvent(new CustomEvent("hx-after-hide", { bubbles: !0, composed: !0 })));
165
+ this._visible && (document.removeEventListener("click", this._handleDocumentClick), document.removeEventListener("keydown", this._handleDocumentKeydown), this.dispatchEvent(new CustomEvent("hx-hide", { bubbles: !0, composed: !0 })), this._visible = !1, this.open = !1, this._setAnchorAriaAttributes(!1), e && ((t = this._previousFocus) == null || t.focus()), this._previousFocus = null, await this.updateComplete, this.dispatchEvent(new CustomEvent("hx-after-hide", { bubbles: !0, composed: !0 })));
162
166
  }
163
167
  // ─── Positioning ───
164
168
  /** @internal */
165
169
  async _updatePosition() {
166
- var u, v, f;
167
- const e = (u = this.shadowRoot) == null ? void 0 : u.querySelector(
170
+ var f, m, b;
171
+ const e = (f = this.shadowRoot) == null ? void 0 : f.querySelector(
168
172
  'slot[name="anchor"]'
169
173
  );
170
174
  if (!e) return;
171
- const t = e.assignedElements()[0], r = (v = this.shadowRoot) == null ? void 0 : v.querySelector('[part="body"]'), o = this.arrow ? (f = this.shadowRoot) == null ? void 0 : f.querySelector('[part="arrow"]') : null;
175
+ const t = e.assignedElements()[0], r = (m = this.shadowRoot) == null ? void 0 : m.querySelector('[part="body"]'), o = this.arrow ? (b = this.shadowRoot) == null ? void 0 : b.querySelector('[part="arrow"]') : null;
172
176
  if (!t || !r) return;
173
- const i = [
174
- $({ mainAxis: this.distance, crossAxis: this.skidding }),
175
- C(),
176
- T({ padding: 8 })
177
+ const { computePosition: i, flip: n, shift: s, offset: l, arrow: c } = await import("@floating-ui/dom"), p = [
178
+ l({ mainAxis: this.distance, crossAxis: this.skidding }),
179
+ n(),
180
+ s({ padding: 8 })
177
181
  ];
178
- o && i.push(F({ element: o }));
179
- const { x: s, y: n, placement: d, middlewareData: c } = await P(t, r, {
182
+ o && p.push(c({ element: o }));
183
+ const { x, y: w, placement: E, middlewareData: v } = await i(t, r, {
180
184
  placement: this.placement,
181
185
  strategy: "fixed",
182
- middleware: i
186
+ middleware: p
183
187
  });
184
188
  if (Object.assign(r.style, {
185
- left: `${s}px`,
186
- top: `${n}px`
187
- }), o && c.arrow) {
188
- const p = c.arrow, b = d.split("-")[0] ?? "bottom", _ = { top: "bottom", right: "left", bottom: "top", left: "right" }[b] ?? "bottom";
189
+ left: `${x}px`,
190
+ top: `${w}px`
191
+ }), o && v.arrow) {
192
+ const u = v.arrow, _ = E.split("-")[0] ?? "bottom", A = {
193
+ top: "bottom",
194
+ right: "left",
195
+ bottom: "top",
196
+ left: "right"
197
+ }[_] ?? "bottom";
189
198
  Object.assign(o.style, {
190
- left: p.x != null ? `${p.x}px` : "",
191
- top: p.y != null ? `${p.y}px` : "",
199
+ left: u.x != null ? `${u.x}px` : "",
200
+ top: u.y != null ? `${u.y}px` : "",
192
201
  right: "",
193
202
  bottom: "",
194
- [_]: "-5px"
203
+ [A]: "-5px"
195
204
  });
196
- const g = ["border-top", "border-right", "border-bottom", "border-left"];
197
- for (const w of g)
198
- o.style.setProperty(w, "");
199
- const m = {
205
+ const S = ["border-top", "border-right", "border-bottom", "border-left"];
206
+ for (const T of S)
207
+ o.style.setProperty(T, "");
208
+ const y = {
200
209
  bottom: ["border-bottom", "border-right"],
201
210
  top: ["border-top", "border-left"],
202
211
  right: ["border-top", "border-right"],
203
212
  left: ["border-bottom", "border-left"]
204
- }[b] ?? ["border-bottom", "border-right"];
205
- o.style.setProperty(m[0], "1px solid transparent"), o.style.setProperty(m[1], "1px solid transparent");
213
+ }[_] ?? ["border-bottom", "border-right"];
214
+ o.style.setProperty(y[0], "1px solid transparent"), o.style.setProperty(y[1], "1px solid transparent");
206
215
  }
207
216
  }
217
+ /**
218
+ * Schedules a hide with a 150 ms delay for hover-triggered dismissal.
219
+ * WCAG 1.4.13: the delay allows the pointer to travel between the anchor
220
+ * and the popover body without the content disappearing.
221
+ * @internal
222
+ */
223
+ _scheduleHoverHide() {
224
+ this._cancelHoverHide(), this._hoverHideTimer = setTimeout(() => {
225
+ this._hoverHideTimer = null, this._hide(!1);
226
+ }, 150);
227
+ }
228
+ /**
229
+ * Cancels any pending hover-triggered hide.
230
+ * @internal
231
+ */
232
+ _cancelHoverHide() {
233
+ this._hoverHideTimer !== null && (clearTimeout(this._hoverHideTimer), this._hoverHideTimer = null);
234
+ }
208
235
  /** @internal */
209
236
  _handleAnchorSlotChange() {
210
237
  this._setAnchorAriaAttributes(this._visible);
211
238
  }
212
239
  // ─── Render ───
213
240
  render() {
214
- return y`
241
+ return g`
215
242
  <div
216
243
  class="trigger-wrapper"
217
244
  @click=${this._handleAnchorClick}
@@ -227,7 +254,7 @@ let R = 0, a = class extends E {
227
254
  id=${this._popoverId}
228
255
  role="dialog"
229
256
  aria-label=${this.label}
230
- aria-hidden="${this._visible ? "false" : "true"}"
257
+ aria-hidden=${this._visible ? $ : "true"}
231
258
  tabindex="-1"
232
259
  ?inert=${!this._visible}
233
260
  class=${this._visible ? "visible" : ""}
@@ -235,40 +262,40 @@ let R = 0, a = class extends E {
235
262
  @mouseleave=${this._handleBodyMouseLeave}
236
263
  >
237
264
  <slot></slot>
238
- ${this.arrow ? y`<div part="arrow"></div>` : ""}
265
+ ${this.arrow ? g`<div part="arrow"></div>` : ""}
239
266
  </div>
240
267
  `;
241
268
  }
242
269
  };
243
- a.styles = [S, D];
270
+ a.styles = [D, F];
244
271
  h([
245
- l({ type: Boolean, reflect: !0 })
272
+ d({ type: Boolean, reflect: !0 })
246
273
  ], a.prototype, "open", 2);
247
274
  h([
248
- l({ type: String, reflect: !0 })
275
+ d({ type: String, reflect: !0 })
249
276
  ], a.prototype, "placement", 2);
250
277
  h([
251
- l({ type: String, reflect: !0 })
278
+ d({ type: String, reflect: !0 })
252
279
  ], a.prototype, "trigger", 2);
253
280
  h([
254
- l({ type: Number, reflect: !0 })
281
+ d({ type: Number, reflect: !0 })
255
282
  ], a.prototype, "distance", 2);
256
283
  h([
257
- l({ type: Number, reflect: !0 })
284
+ d({ type: Number, reflect: !0 })
258
285
  ], a.prototype, "skidding", 2);
259
286
  h([
260
- l({ type: Boolean, reflect: !0 })
287
+ d({ type: Boolean, reflect: !0 })
261
288
  ], a.prototype, "arrow", 2);
262
289
  h([
263
- l({ type: String, reflect: !0 })
290
+ d({ type: String, reflect: !0 })
264
291
  ], a.prototype, "label", 2);
265
292
  h([
266
- A()
293
+ C()
267
294
  ], a.prototype, "_visible", 2);
268
295
  a = h([
269
- k("hx-popover")
296
+ P("hx-popover")
270
297
  ], a);
271
298
  export {
272
299
  a as H
273
300
  };
274
- //# sourceMappingURL=hx-popover-DxE67miP.js.map
301
+ //# sourceMappingURL=hx-popover-D6kYQkt3.js.map