@helixui/library 1.1.1 → 1.1.2-next.1

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 (620) hide show
  1. package/custom-elements.json +7475 -6560
  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-alert/hx-alert.d.ts +18 -10
  18. package/dist/components/hx-alert/hx-alert.d.ts.map +1 -1
  19. package/dist/components/hx-alert/hx-alert.styles.d.ts.map +1 -1
  20. package/dist/components/hx-alert/index.js +1 -1
  21. package/dist/components/hx-avatar/index.js +1 -1
  22. package/dist/components/hx-badge/hx-badge.d.ts.map +1 -1
  23. package/dist/components/hx-badge/hx-badge.styles.d.ts.map +1 -1
  24. package/dist/components/hx-badge/index.js +1 -1
  25. package/dist/components/hx-banner/hx-banner.d.ts +15 -5
  26. package/dist/components/hx-banner/hx-banner.d.ts.map +1 -1
  27. package/dist/components/hx-banner/hx-banner.styles.d.ts.map +1 -1
  28. package/dist/components/hx-banner/index.js +1 -1
  29. package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts +7 -2
  30. package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts.map +1 -1
  31. package/dist/components/hx-breadcrumb/index.js +1 -1
  32. package/dist/components/hx-button/hx-button.d.ts +11 -8
  33. package/dist/components/hx-button/hx-button.d.ts.map +1 -1
  34. package/dist/components/hx-button/hx-button.styles.d.ts.map +1 -1
  35. package/dist/components/hx-button/index.js +1 -1
  36. package/dist/components/hx-button-group/hx-button-group.d.ts +3 -6
  37. package/dist/components/hx-button-group/hx-button-group.d.ts.map +1 -1
  38. package/dist/components/hx-button-group/index.js +1 -1
  39. package/dist/components/hx-card/hx-card.d.ts +7 -7
  40. package/dist/components/hx-card/hx-card.d.ts.map +1 -1
  41. package/dist/components/hx-card/index.js +1 -1
  42. package/dist/components/hx-carousel/hx-carousel.d.ts +2 -2
  43. package/dist/components/hx-carousel/index.js +1 -1
  44. package/dist/components/hx-checkbox/hx-checkbox.d.ts +18 -18
  45. package/dist/components/hx-checkbox/hx-checkbox.d.ts.map +1 -1
  46. package/dist/components/hx-checkbox/hx-checkbox.styles.d.ts.map +1 -1
  47. package/dist/components/hx-checkbox/index.js +1 -1
  48. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts +8 -3
  49. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts.map +1 -1
  50. package/dist/components/hx-checkbox-group/index.js +1 -1
  51. package/dist/components/hx-clinical-status/hx-clinical-status.d.ts +126 -0
  52. package/dist/components/hx-clinical-status/hx-clinical-status.d.ts.map +1 -0
  53. package/dist/components/hx-clinical-status/hx-clinical-status.styles.d.ts +2 -0
  54. package/dist/components/hx-clinical-status/hx-clinical-status.styles.d.ts.map +1 -0
  55. package/dist/components/hx-clinical-status/index.d.ts +3 -0
  56. package/dist/components/hx-clinical-status/index.d.ts.map +1 -0
  57. package/dist/components/hx-clinical-status/index.js +5 -0
  58. package/dist/components/hx-clinical-status/index.js.map +1 -0
  59. package/dist/components/hx-code-snippet/hx-code-snippet.styles.d.ts.map +1 -1
  60. package/dist/components/hx-code-snippet/index.js +1 -1
  61. package/dist/components/hx-color-picker/color-utils.d.ts +27 -0
  62. package/dist/components/hx-color-picker/color-utils.d.ts.map +1 -0
  63. package/dist/components/hx-color-picker/hx-color-picker.d.ts +16 -4
  64. package/dist/components/hx-color-picker/hx-color-picker.d.ts.map +1 -1
  65. package/dist/components/hx-color-picker/index.js +1 -1
  66. package/dist/components/hx-combobox/hx-combobox.d.ts +4 -4
  67. package/dist/components/hx-combobox/hx-combobox.d.ts.map +1 -1
  68. package/dist/components/hx-combobox/hx-combobox.styles.d.ts.map +1 -1
  69. package/dist/components/hx-combobox/index.js +1 -1
  70. package/dist/components/hx-container/index.js +1 -1
  71. package/dist/components/hx-copy-button/hx-copy-button.d.ts +6 -1
  72. package/dist/components/hx-copy-button/hx-copy-button.d.ts.map +1 -1
  73. package/dist/components/hx-copy-button/index.js +1 -1
  74. package/dist/components/hx-counter/hx-counter.d.ts +20 -3
  75. package/dist/components/hx-counter/hx-counter.d.ts.map +1 -1
  76. package/dist/components/hx-counter/hx-counter.styles.d.ts.map +1 -1
  77. package/dist/components/hx-counter/index.js +1 -1
  78. package/dist/components/hx-data-table/hx-data-table.d.ts +13 -13
  79. package/dist/components/hx-data-table/hx-data-table.d.ts.map +1 -1
  80. package/dist/components/hx-data-table/hx-data-table.styles.d.ts.map +1 -1
  81. package/dist/components/hx-data-table/index.js +1 -1
  82. package/dist/components/hx-date-picker/hx-date-picker.d.ts +70 -13
  83. package/dist/components/hx-date-picker/hx-date-picker.d.ts.map +1 -1
  84. package/dist/components/hx-date-picker/hx-date-picker.styles.d.ts.map +1 -1
  85. package/dist/components/hx-date-picker/index.js +1 -1
  86. package/dist/components/hx-dialog/hx-dialog.d.ts +4 -1
  87. package/dist/components/hx-dialog/hx-dialog.d.ts.map +1 -1
  88. package/dist/components/hx-dialog/index.js +1 -1
  89. package/dist/components/hx-divider/hx-divider.d.ts.map +1 -1
  90. package/dist/components/hx-divider/index.js +1 -1
  91. package/dist/components/hx-drawer/hx-drawer.d.ts +4 -8
  92. package/dist/components/hx-drawer/hx-drawer.d.ts.map +1 -1
  93. package/dist/components/hx-drawer/hx-drawer.styles.d.ts.map +1 -1
  94. package/dist/components/hx-drawer/index.js +1 -1
  95. package/dist/components/hx-dropdown/hx-dropdown.d.ts +14 -1
  96. package/dist/components/hx-dropdown/hx-dropdown.d.ts.map +1 -1
  97. package/dist/components/hx-dropdown/index.js +1 -1
  98. package/dist/components/hx-field/hx-field.d.ts +1 -1
  99. package/dist/components/hx-field/hx-field.d.ts.map +1 -1
  100. package/dist/components/hx-field/index.js +1 -1
  101. package/dist/components/hx-field-label/hx-field-label.styles.d.ts.map +1 -1
  102. package/dist/components/hx-field-label/index.js +1 -1
  103. package/dist/components/hx-file-upload/hx-file-upload.d.ts +8 -9
  104. package/dist/components/hx-file-upload/hx-file-upload.d.ts.map +1 -1
  105. package/dist/components/hx-file-upload/index.js +1 -1
  106. package/dist/components/hx-form/hx-form.d.ts.map +1 -1
  107. package/dist/components/hx-form/index.js +1 -1
  108. package/dist/components/hx-format-date/hx-format-date.d.ts.map +1 -1
  109. package/dist/components/hx-format-date/index.js +1 -1
  110. package/dist/components/hx-grid/hx-grid.d.ts +5 -9
  111. package/dist/components/hx-grid/hx-grid.d.ts.map +1 -1
  112. package/dist/components/hx-grid/index.js +1 -1
  113. package/dist/components/hx-icon/hx-icon.d.ts.map +1 -1
  114. package/dist/components/hx-icon/index.js +1 -1
  115. package/dist/components/hx-icon-button/hx-icon-button.d.ts +4 -3
  116. package/dist/components/hx-icon-button/hx-icon-button.d.ts.map +1 -1
  117. package/dist/components/hx-icon-button/index.js +1 -1
  118. package/dist/components/hx-image/hx-image.d.ts.map +1 -1
  119. package/dist/components/hx-image/index.js +1 -1
  120. package/dist/components/hx-link/hx-link.d.ts +1 -1
  121. package/dist/components/hx-link/hx-link.d.ts.map +1 -1
  122. package/dist/components/hx-link/hx-link.styles.d.ts.map +1 -1
  123. package/dist/components/hx-link/index.js +1 -1
  124. package/dist/components/hx-meter/hx-meter.d.ts +2 -2
  125. package/dist/components/hx-meter/hx-meter.d.ts.map +1 -1
  126. package/dist/components/hx-meter/index.js +1 -1
  127. package/dist/components/hx-nav/hx-nav.d.ts.map +1 -1
  128. package/dist/components/hx-nav/index.js +1 -1
  129. package/dist/components/hx-number-input/hx-number-input.d.ts +19 -7
  130. package/dist/components/hx-number-input/hx-number-input.d.ts.map +1 -1
  131. package/dist/components/hx-number-input/index.js +1 -1
  132. package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts +3 -3
  133. package/dist/components/hx-overflow-menu/hx-overflow-menu.styles.d.ts.map +1 -1
  134. package/dist/components/hx-overflow-menu/index.js +1 -1
  135. package/dist/components/hx-pagination/hx-pagination.d.ts +26 -12
  136. package/dist/components/hx-pagination/hx-pagination.d.ts.map +1 -1
  137. package/dist/components/hx-pagination/hx-pagination.styles.d.ts.map +1 -1
  138. package/dist/components/hx-pagination/index.js +1 -1
  139. package/dist/components/hx-patient-banner/hx-patient-banner.d.ts +105 -0
  140. package/dist/components/hx-patient-banner/hx-patient-banner.d.ts.map +1 -0
  141. package/dist/components/hx-patient-banner/hx-patient-banner.styles.d.ts +2 -0
  142. package/dist/components/hx-patient-banner/hx-patient-banner.styles.d.ts.map +1 -0
  143. package/dist/components/hx-patient-banner/index.d.ts +3 -0
  144. package/dist/components/hx-patient-banner/index.d.ts.map +1 -0
  145. package/dist/components/hx-patient-banner/index.js +5 -0
  146. package/dist/components/hx-patient-banner/index.js.map +1 -0
  147. package/dist/components/hx-phi-field/hx-phi-field.d.ts +72 -0
  148. package/dist/components/hx-phi-field/hx-phi-field.d.ts.map +1 -0
  149. package/dist/components/hx-phi-field/hx-phi-field.styles.d.ts +2 -0
  150. package/dist/components/hx-phi-field/hx-phi-field.styles.d.ts.map +1 -0
  151. package/dist/components/hx-phi-field/index.d.ts +3 -0
  152. package/dist/components/hx-phi-field/index.d.ts.map +1 -0
  153. package/dist/components/hx-phi-field/index.js +5 -0
  154. package/dist/components/hx-phi-field/index.js.map +1 -0
  155. package/dist/components/hx-popover/hx-popover.d.ts +25 -9
  156. package/dist/components/hx-popover/hx-popover.d.ts.map +1 -1
  157. package/dist/components/hx-popover/index.js +1 -1
  158. package/dist/components/hx-popup/hx-popup.d.ts +5 -8
  159. package/dist/components/hx-popup/hx-popup.d.ts.map +1 -1
  160. package/dist/components/hx-popup/index.js +1 -1
  161. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts +2 -0
  162. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts.map +1 -1
  163. package/dist/components/hx-progress-bar/hx-progress-bar.styles.d.ts.map +1 -1
  164. package/dist/components/hx-progress-bar/index.js +1 -1
  165. package/dist/components/hx-progress-ring/hx-progress-ring.d.ts.map +1 -1
  166. package/dist/components/hx-progress-ring/index.js +1 -1
  167. package/dist/components/hx-prose/hx-prose.d.ts +1 -0
  168. package/dist/components/hx-prose/hx-prose.d.ts.map +1 -1
  169. package/dist/components/hx-radio-group/hx-radio-group.d.ts +3 -7
  170. package/dist/components/hx-radio-group/hx-radio-group.d.ts.map +1 -1
  171. package/dist/components/hx-radio-group/hx-radio.d.ts.map +1 -1
  172. package/dist/components/hx-radio-group/hx-radio.styles.d.ts.map +1 -1
  173. package/dist/components/hx-radio-group/index.js +1 -1
  174. package/dist/components/hx-rating/hx-rating.d.ts +3 -3
  175. package/dist/components/hx-rating/hx-rating.d.ts.map +1 -1
  176. package/dist/components/hx-rating/hx-rating.styles.d.ts.map +1 -1
  177. package/dist/components/hx-rating/index.js +1 -1
  178. package/dist/components/hx-select/hx-select.d.ts +16 -11
  179. package/dist/components/hx-select/hx-select.d.ts.map +1 -1
  180. package/dist/components/hx-select/hx-select.styles.d.ts.map +1 -1
  181. package/dist/components/hx-select/index.js +1 -1
  182. package/dist/components/hx-side-nav/hx-nav-item.d.ts +7 -0
  183. package/dist/components/hx-side-nav/hx-nav-item.d.ts.map +1 -1
  184. package/dist/components/hx-side-nav/hx-nav-item.styles.d.ts.map +1 -1
  185. package/dist/components/hx-side-nav/hx-side-nav.d.ts.map +1 -1
  186. package/dist/components/hx-side-nav/hx-side-nav.styles.d.ts.map +1 -1
  187. package/dist/components/hx-side-nav/index.js +1 -1
  188. package/dist/components/hx-skeleton/hx-skeleton.d.ts +2 -2
  189. package/dist/components/hx-skeleton/hx-skeleton.d.ts.map +1 -1
  190. package/dist/components/hx-slider/hx-slider.d.ts +4 -8
  191. package/dist/components/hx-slider/hx-slider.d.ts.map +1 -1
  192. package/dist/components/hx-slider/hx-slider.styles.d.ts.map +1 -1
  193. package/dist/components/hx-slider/index.js +1 -1
  194. package/dist/components/hx-spinner/hx-spinner.d.ts +14 -1
  195. package/dist/components/hx-spinner/hx-spinner.d.ts.map +1 -1
  196. package/dist/components/hx-spinner/hx-spinner.styles.d.ts.map +1 -1
  197. package/dist/components/hx-spinner/index.js +1 -1
  198. package/dist/components/hx-split-button/hx-split-button.d.ts +10 -4
  199. package/dist/components/hx-split-button/hx-split-button.d.ts.map +1 -1
  200. package/dist/components/hx-split-button/hx-split-button.styles.d.ts.map +1 -1
  201. package/dist/components/hx-split-button/index.js +1 -1
  202. package/dist/components/hx-split-panel/hx-split-panel.d.ts +13 -9
  203. package/dist/components/hx-split-panel/hx-split-panel.d.ts.map +1 -1
  204. package/dist/components/hx-split-panel/hx-split-panel.styles.d.ts.map +1 -1
  205. package/dist/components/hx-split-panel/index.js +1 -1
  206. package/dist/components/hx-stat/hx-stat.d.ts +7 -2
  207. package/dist/components/hx-stat/hx-stat.d.ts.map +1 -1
  208. package/dist/components/hx-stat/index.js +1 -1
  209. package/dist/components/hx-status-indicator/hx-status-indicator.d.ts +2 -2
  210. package/dist/components/hx-status-indicator/hx-status-indicator.d.ts.map +1 -1
  211. package/dist/components/hx-status-indicator/index.js +1 -1
  212. package/dist/components/hx-steps/hx-step.styles.d.ts.map +1 -1
  213. package/dist/components/hx-steps/hx-steps.d.ts.map +1 -1
  214. package/dist/components/hx-steps/index.js +1 -1
  215. package/dist/components/hx-structured-list/hx-structured-list.d.ts +10 -3
  216. package/dist/components/hx-structured-list/hx-structured-list.d.ts.map +1 -1
  217. package/dist/components/hx-structured-list/index.js +1 -1
  218. package/dist/components/hx-style-scope/hx-style-scope.d.ts +71 -0
  219. package/dist/components/hx-style-scope/hx-style-scope.d.ts.map +1 -0
  220. package/dist/components/hx-style-scope/hx-style-scope.styles.d.ts +10 -0
  221. package/dist/components/hx-style-scope/hx-style-scope.styles.d.ts.map +1 -0
  222. package/dist/components/hx-style-scope/index.d.ts +2 -0
  223. package/dist/components/hx-style-scope/index.d.ts.map +1 -0
  224. package/dist/components/hx-style-scope/index.js +5 -0
  225. package/dist/components/hx-style-scope/index.js.map +1 -0
  226. package/dist/components/hx-switch/hx-switch.d.ts +4 -4
  227. package/dist/components/hx-switch/hx-switch.d.ts.map +1 -1
  228. package/dist/components/hx-switch/hx-switch.styles.d.ts.map +1 -1
  229. package/dist/components/hx-switch/index.js +1 -1
  230. package/dist/components/hx-table/hx-table.d.ts +1 -0
  231. package/dist/components/hx-table/hx-table.d.ts.map +1 -1
  232. package/dist/components/hx-table/index.js +1 -1
  233. package/dist/components/hx-tabs/hx-tab-panel.styles.d.ts.map +1 -1
  234. package/dist/components/hx-tabs/hx-tab.d.ts +1 -0
  235. package/dist/components/hx-tabs/hx-tab.d.ts.map +1 -1
  236. package/dist/components/hx-tabs/hx-tab.styles.d.ts.map +1 -1
  237. package/dist/components/hx-tabs/hx-tabs.d.ts +2 -2
  238. package/dist/components/hx-tabs/hx-tabs.d.ts.map +1 -1
  239. package/dist/components/hx-tabs/index.js +1 -1
  240. package/dist/components/hx-tag/hx-tag.styles.d.ts.map +1 -1
  241. package/dist/components/hx-tag/index.js +1 -1
  242. package/dist/components/hx-text/index.js +1 -1
  243. package/dist/components/hx-text-input/hx-text-input.d.ts +16 -15
  244. package/dist/components/hx-text-input/hx-text-input.d.ts.map +1 -1
  245. package/dist/components/hx-text-input/hx-text-input.styles.d.ts.map +1 -1
  246. package/dist/components/hx-text-input/index.js +1 -1
  247. package/dist/components/hx-textarea/hx-textarea.d.ts +4 -4
  248. package/dist/components/hx-textarea/hx-textarea.d.ts.map +1 -1
  249. package/dist/components/hx-textarea/hx-textarea.styles.d.ts.map +1 -1
  250. package/dist/components/hx-textarea/index.js +1 -1
  251. package/dist/components/hx-theme/hx-theme.d.ts +82 -3
  252. package/dist/components/hx-theme/hx-theme.d.ts.map +1 -1
  253. package/dist/components/hx-theme/index.js +1 -1
  254. package/dist/components/hx-time-picker/hx-time-picker.d.ts +3 -1
  255. package/dist/components/hx-time-picker/hx-time-picker.d.ts.map +1 -1
  256. package/dist/components/hx-time-picker/index.js +1 -1
  257. package/dist/components/hx-toast/hx-toast-stack.d.ts +1 -1
  258. package/dist/components/hx-toast/hx-toast-stack.d.ts.map +1 -1
  259. package/dist/components/hx-toast/hx-toast.d.ts +9 -5
  260. package/dist/components/hx-toast/hx-toast.d.ts.map +1 -1
  261. package/dist/components/hx-toast/hx-toast.styles.d.ts.map +1 -1
  262. package/dist/components/hx-toast/index.js +1 -1
  263. package/dist/components/hx-toast/toast-factory.d.ts.map +1 -1
  264. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts +4 -3
  265. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts.map +1 -1
  266. package/dist/components/hx-toggle-button/hx-toggle-button.styles.d.ts.map +1 -1
  267. package/dist/components/hx-toggle-button/index.js +1 -1
  268. package/dist/components/hx-tooltip/hx-tooltip.d.ts +1 -2
  269. package/dist/components/hx-tooltip/hx-tooltip.d.ts.map +1 -1
  270. package/dist/components/hx-tooltip/index.js +1 -1
  271. package/dist/components/hx-tree-view/hx-tree-item.d.ts +7 -0
  272. package/dist/components/hx-tree-view/hx-tree-item.d.ts.map +1 -1
  273. package/dist/components/hx-tree-view/hx-tree-view.d.ts +21 -2
  274. package/dist/components/hx-tree-view/hx-tree-view.d.ts.map +1 -1
  275. package/dist/components/hx-tree-view/hx-tree-view.styles.d.ts.map +1 -1
  276. package/dist/components/hx-tree-view/index.js +1 -1
  277. package/dist/controllers/helix-audit-controller.d.ts +71 -0
  278. package/dist/controllers/helix-audit-controller.d.ts.map +1 -0
  279. package/dist/css/helix-all.css +9581 -0
  280. package/dist/css/helix-core.css +1784 -0
  281. package/dist/css/helix-data.css +639 -0
  282. package/dist/css/helix-feedback.css +1239 -0
  283. package/dist/css/helix-forms.css +2498 -0
  284. package/dist/css/helix-layout.css +380 -0
  285. package/dist/css/helix-media.css +213 -0
  286. package/dist/css/helix-navigation.css +1122 -0
  287. package/dist/css/helix-overlay.css +643 -0
  288. package/dist/css/helix-tokens.css +432 -0
  289. package/dist/css/helix-utility.css +633 -0
  290. package/dist/css/hx-accordion.css +10 -0
  291. package/dist/css/hx-action-bar.css +117 -0
  292. package/dist/css/hx-alert.css +213 -0
  293. package/dist/css/hx-avatar.css +117 -0
  294. package/dist/css/hx-badge.css +174 -0
  295. package/dist/css/hx-banner.css +203 -0
  296. package/dist/css/hx-breadcrumb.css +36 -0
  297. package/dist/css/hx-button-group.css +91 -0
  298. package/dist/css/hx-button.css +262 -0
  299. package/dist/css/hx-card.css +161 -0
  300. package/dist/css/hx-carousel.css +211 -0
  301. package/dist/css/hx-checkbox-group.css +77 -0
  302. package/dist/css/hx-checkbox.css +219 -0
  303. package/dist/css/hx-clinical-status.css +246 -0
  304. package/dist/css/hx-code-snippet.css +179 -0
  305. package/dist/css/hx-color-picker.css +2 -0
  306. package/dist/css/hx-combobox.css +2 -0
  307. package/dist/css/hx-container.css +82 -0
  308. package/dist/css/hx-copy-button.css +121 -0
  309. package/dist/css/hx-counter.css +51 -0
  310. package/dist/css/hx-data-table.css +207 -0
  311. package/dist/css/hx-date-picker.css +2 -0
  312. package/dist/css/hx-dialog.css +190 -0
  313. package/dist/css/hx-divider.css +87 -0
  314. package/dist/css/hx-drawer.css +262 -0
  315. package/dist/css/hx-dropdown.css +46 -0
  316. package/dist/css/hx-field-label.css +38 -0
  317. package/dist/css/hx-field.css +119 -0
  318. package/dist/css/hx-file-upload.css +241 -0
  319. package/dist/css/hx-form.css +2 -0
  320. package/dist/css/hx-format-date.css +10 -0
  321. package/dist/css/hx-grid.css +14 -0
  322. package/dist/css/hx-help-text.css +50 -0
  323. package/dist/css/hx-icon-button.css +152 -0
  324. package/dist/css/hx-icon.css +73 -0
  325. package/dist/css/hx-image.css +41 -0
  326. package/dist/css/hx-link.css +105 -0
  327. package/dist/css/hx-list.css +48 -0
  328. package/dist/css/hx-menu.css +21 -0
  329. package/dist/css/hx-meter.css +113 -0
  330. package/dist/css/hx-nav.css +242 -0
  331. package/dist/css/hx-number-input.css +246 -0
  332. package/dist/css/hx-overflow-menu.css +133 -0
  333. package/dist/css/hx-pagination.css +193 -0
  334. package/dist/css/hx-patient-banner.css +111 -0
  335. package/dist/css/hx-phi-field.css +85 -0
  336. package/dist/css/hx-popover.css +61 -0
  337. package/dist/css/hx-popup.css +31 -0
  338. package/dist/css/hx-progress-bar.css +133 -0
  339. package/dist/css/hx-progress-ring.css +142 -0
  340. package/dist/css/hx-prose.css +2 -0
  341. package/dist/css/hx-radio-group.css +77 -0
  342. package/dist/css/hx-rating.css +96 -0
  343. package/dist/css/hx-select.css +268 -0
  344. package/dist/css/hx-side-nav.css +142 -0
  345. package/dist/css/hx-skeleton.css +82 -0
  346. package/dist/css/hx-slider.css +287 -0
  347. package/dist/css/hx-spinner.css +116 -0
  348. package/dist/css/hx-split-button.css +309 -0
  349. package/dist/css/hx-split-panel.css +168 -0
  350. package/dist/css/hx-stack.css +104 -0
  351. package/dist/css/hx-stat.css +106 -0
  352. package/dist/css/hx-status-indicator.css +97 -0
  353. package/dist/css/hx-steps.css +52 -0
  354. package/dist/css/hx-structured-list.css +75 -0
  355. package/dist/css/hx-style-scope.css +4 -0
  356. package/dist/css/hx-switch.css +169 -0
  357. package/dist/css/hx-table.css +128 -0
  358. package/dist/css/hx-tabs.css +76 -0
  359. package/dist/css/hx-tag.css +146 -0
  360. package/dist/css/hx-text-input.css +214 -0
  361. package/dist/css/hx-text.css +149 -0
  362. package/dist/css/hx-textarea.css +180 -0
  363. package/dist/css/hx-theme.css +23 -0
  364. package/dist/css/hx-time-picker.css +2 -0
  365. package/dist/css/hx-toast.css +230 -0
  366. package/dist/css/hx-toggle-button.css +207 -0
  367. package/dist/css/hx-tooltip.css +51 -0
  368. package/dist/css/hx-top-nav.css +203 -0
  369. package/dist/css/hx-tree-view.css +22 -0
  370. package/dist/css/hx-visually-hidden.css +26 -0
  371. package/dist/css/index.css +84 -0
  372. package/dist/css/manifest.json +2696 -0
  373. package/dist/index.d.ts +14 -0
  374. package/dist/index.d.ts.map +1 -1
  375. package/dist/index.js +266 -176
  376. package/dist/index.js.map +1 -1
  377. package/dist/mixins/FocusMixin.d.ts +49 -0
  378. package/dist/mixins/FocusMixin.d.ts.map +1 -0
  379. package/dist/mixins/FormMixin.d.ts +69 -0
  380. package/dist/mixins/FormMixin.d.ts.map +1 -0
  381. package/dist/mixins/aria-delegation.d.ts +97 -0
  382. package/dist/mixins/aria-delegation.d.ts.map +1 -0
  383. package/dist/mixins/index.d.ts +5 -0
  384. package/dist/mixins/index.d.ts.map +1 -0
  385. package/dist/shared/FormMixin-Bjvw20G5.js +88 -0
  386. package/dist/shared/FormMixin-Bjvw20G5.js.map +1 -0
  387. package/dist/shared/aria-delegation-CBP9eQ0M.js +107 -0
  388. package/dist/shared/aria-delegation-CBP9eQ0M.js.map +1 -0
  389. package/dist/shared/{hx-accordion-D1kFhdeQ.js → hx-accordion-_KeulaQR.js} +83 -55
  390. package/dist/shared/hx-accordion-_KeulaQR.js.map +1 -0
  391. package/dist/shared/hx-action-bar-D4bulGQP.js.map +1 -1
  392. package/dist/shared/{hx-alert-K5F8KeqI.js → hx-alert-DRZYP0Oo.js} +32 -23
  393. package/dist/shared/hx-alert-DRZYP0Oo.js.map +1 -0
  394. package/dist/shared/{hx-avatar-Cun-O99h.js → hx-avatar-7p1cj3lG.js} +2 -2
  395. package/dist/shared/hx-avatar-7p1cj3lG.js.map +1 -0
  396. package/dist/shared/{hx-badge-CsFd2xtw.js → hx-badge-DCxvskdw.js} +23 -18
  397. package/dist/shared/hx-badge-DCxvskdw.js.map +1 -0
  398. package/dist/shared/{hx-banner-BTV-X2xF.js → hx-banner-2RS7Nux4.js} +93 -58
  399. package/dist/shared/hx-banner-2RS7Nux4.js.map +1 -0
  400. package/dist/shared/{hx-breadcrumb-item-4IwaLgaO.js → hx-breadcrumb-item-B2rjepqy.js} +79 -78
  401. package/dist/shared/hx-breadcrumb-item-B2rjepqy.js.map +1 -0
  402. package/dist/shared/{hx-button-7k-KeCYU.js → hx-button-6S3DwuIj.js} +81 -56
  403. package/dist/shared/hx-button-6S3DwuIj.js.map +1 -0
  404. package/dist/shared/{hx-button-group-CWjWv-wS.js → hx-button-group-ChTQsnQj.js} +10 -10
  405. package/dist/shared/hx-button-group-ChTQsnQj.js.map +1 -0
  406. package/dist/shared/{hx-card-0hT3G5hi.js → hx-card-dIKdcMhr.js} +32 -32
  407. package/dist/shared/hx-card-dIKdcMhr.js.map +1 -0
  408. package/dist/shared/{hx-carousel-item-DgeYyYZJ.js → hx-carousel-item-Cm8a1nAi.js} +3 -3
  409. package/dist/shared/hx-carousel-item-Cm8a1nAi.js.map +1 -0
  410. package/dist/shared/{hx-checkbox-BvjO-O41.js → hx-checkbox-_WUiuTo9.js} +68 -71
  411. package/dist/shared/hx-checkbox-_WUiuTo9.js.map +1 -0
  412. package/dist/shared/{hx-checkbox-group-Z5VvWzcj.js → hx-checkbox-group-B-ci-dxp.js} +37 -31
  413. package/dist/shared/hx-checkbox-group-B-ci-dxp.js.map +1 -0
  414. package/dist/shared/hx-clinical-status-De8yrA5I.js +467 -0
  415. package/dist/shared/hx-clinical-status-De8yrA5I.js.map +1 -0
  416. package/dist/shared/{hx-code-snippet-DqzPkH4K.js → hx-code-snippet-CQsyvthi.js} +56 -47
  417. package/dist/shared/hx-code-snippet-CQsyvthi.js.map +1 -0
  418. package/dist/shared/{hx-color-picker-Da8z6AlQ.js → hx-color-picker-Dk2Myvaf.js} +153 -137
  419. package/dist/shared/hx-color-picker-Dk2Myvaf.js.map +1 -0
  420. package/dist/shared/{hx-combobox-CivfelTS.js → hx-combobox-CNAJXIxo.js} +10 -10
  421. package/dist/shared/hx-combobox-CNAJXIxo.js.map +1 -0
  422. package/dist/shared/{hx-container-DLUKnTi9.js → hx-container-7j16VuQE.js} +16 -16
  423. package/dist/shared/hx-container-7j16VuQE.js.map +1 -0
  424. package/dist/shared/{hx-copy-button--0dymSvw.js → hx-copy-button-B_ZHYO7_.js} +47 -40
  425. package/dist/shared/hx-copy-button-B_ZHYO7_.js.map +1 -0
  426. package/dist/shared/hx-counter-D_B7L9Pi.js +185 -0
  427. package/dist/shared/hx-counter-D_B7L9Pi.js.map +1 -0
  428. package/dist/shared/{hx-data-table-DujB9hSE.js → hx-data-table-B1j4n4bm.js} +134 -107
  429. package/dist/shared/hx-data-table-B1j4n4bm.js.map +1 -0
  430. package/dist/shared/{hx-date-picker-C8d2HtRV.js → hx-date-picker-R-0kWFwr.js} +146 -130
  431. package/dist/shared/hx-date-picker-R-0kWFwr.js.map +1 -0
  432. package/dist/shared/{hx-dialog-DkUSnVgw.js → hx-dialog-U5d3s0Ps.js} +98 -89
  433. package/dist/shared/hx-dialog-U5d3s0Ps.js.map +1 -0
  434. package/dist/shared/{hx-divider-DNNs4e8q.js → hx-divider-DdAN-_jB.js} +5 -5
  435. package/dist/shared/hx-divider-DdAN-_jB.js.map +1 -0
  436. package/dist/shared/{hx-drawer-CJcRZcns.js → hx-drawer-e0qeGxAD.js} +117 -77
  437. package/dist/shared/hx-drawer-e0qeGxAD.js.map +1 -0
  438. package/dist/shared/{hx-dropdown-Bo0KTM1A.js → hx-dropdown-DP_DNpEb.js} +56 -41
  439. package/dist/shared/hx-dropdown-DP_DNpEb.js.map +1 -0
  440. package/dist/shared/{hx-field-3MmzJ4kZ.js → hx-field-COM4KvMQ.js} +9 -9
  441. package/dist/shared/hx-field-COM4KvMQ.js.map +1 -0
  442. package/dist/shared/{hx-field-label-Bg-EWvqF.js → hx-field-label-BtZ9H9Yy.js} +8 -11
  443. package/dist/shared/hx-field-label-BtZ9H9Yy.js.map +1 -0
  444. package/dist/shared/{hx-file-upload-ByjAgfNy.js → hx-file-upload-DbECypLe.js} +78 -87
  445. package/dist/shared/hx-file-upload-DbECypLe.js.map +1 -0
  446. package/dist/shared/{hx-form-BpS6v3Iu.js → hx-form-fJE-FJQV.js} +36 -32
  447. package/dist/shared/{hx-form-BpS6v3Iu.js.map → hx-form-fJE-FJQV.js.map} +1 -1
  448. package/dist/shared/{hx-format-date-BdnWV2kX.js → hx-format-date-C030ThSm.js} +14 -12
  449. package/dist/shared/hx-format-date-C030ThSm.js.map +1 -0
  450. package/dist/shared/{hx-grid-gEjuF0cR.js → hx-grid-DE8KM5Gf.js} +7 -7
  451. package/dist/shared/hx-grid-DE8KM5Gf.js.map +1 -0
  452. package/dist/shared/{hx-icon-button-DzH_bRtC.js → hx-icon-button-Et9wq79n.js} +4 -4
  453. package/dist/shared/{hx-icon-button-DzH_bRtC.js.map → hx-icon-button-Et9wq79n.js.map} +1 -1
  454. package/dist/shared/{hx-icon-CP6OnLoM.js → hx-icon-dYvrzvsO.js} +7 -7
  455. package/dist/shared/hx-icon-dYvrzvsO.js.map +1 -0
  456. package/dist/shared/{hx-image-C6pGiI6c.js → hx-image-DUsEi-oN.js} +15 -15
  457. package/dist/shared/hx-image-DUsEi-oN.js.map +1 -0
  458. package/dist/shared/{hx-link-Tmk_YPvW.js → hx-link-Peg2LzOD.js} +43 -41
  459. package/dist/shared/hx-link-Peg2LzOD.js.map +1 -0
  460. package/dist/shared/{hx-meter-uXkTZq-W.js → hx-meter-CVs4A649.js} +13 -13
  461. package/dist/shared/hx-meter-CVs4A649.js.map +1 -0
  462. package/dist/shared/{hx-nav-3JsN2Oak.js → hx-nav-D377Ngz4.js} +23 -24
  463. package/dist/shared/hx-nav-D377Ngz4.js.map +1 -0
  464. package/dist/shared/{hx-nav-item-D3EJatzc.js → hx-nav-item-ByU2N921.js} +49 -37
  465. package/dist/shared/hx-nav-item-ByU2N921.js.map +1 -0
  466. package/dist/shared/{hx-number-input-CAAibZ8X.js → hx-number-input-BPgrlMLN.js} +70 -66
  467. package/dist/shared/hx-number-input-BPgrlMLN.js.map +1 -0
  468. package/dist/shared/{hx-overflow-menu-2kgOJ_ht.js → hx-overflow-menu-Bz02LPPk.js} +15 -11
  469. package/dist/shared/hx-overflow-menu-Bz02LPPk.js.map +1 -0
  470. package/dist/shared/{hx-pagination-DBs-vmSv.js → hx-pagination-DYhYPqDn.js} +68 -63
  471. package/dist/shared/hx-pagination-DYhYPqDn.js.map +1 -0
  472. package/dist/shared/hx-patient-banner-BoJHddAL.js +256 -0
  473. package/dist/shared/hx-patient-banner-BoJHddAL.js.map +1 -0
  474. package/dist/shared/hx-phi-field-EDWna59z.js +261 -0
  475. package/dist/shared/hx-phi-field-EDWna59z.js.map +1 -0
  476. package/dist/shared/{hx-popover-DxE67miP.js → hx-popover-D6kYQkt3.js} +96 -69
  477. package/dist/shared/hx-popover-D6kYQkt3.js.map +1 -0
  478. package/dist/shared/{hx-popup-Dg6n_PbY.js → hx-popup-RQb6HUXc.js} +2 -2
  479. package/dist/shared/hx-popup-RQb6HUXc.js.map +1 -0
  480. package/dist/shared/{hx-progress-bar-Dm_EHyng.js → hx-progress-bar-ByEmxq1V.js} +42 -40
  481. package/dist/shared/hx-progress-bar-ByEmxq1V.js.map +1 -0
  482. package/dist/shared/{hx-progress-ring-DpxBDD5d.js → hx-progress-ring-CtVnNRQx.js} +2 -2
  483. package/dist/shared/{hx-progress-ring-DpxBDD5d.js.map → hx-progress-ring-CtVnNRQx.js.map} +1 -1
  484. package/dist/shared/hx-prose-Ml_L2zje.js.map +1 -1
  485. package/dist/shared/{hx-radio-BywgVSEu.js → hx-radio-jgeW92SV.js} +28 -27
  486. package/dist/shared/hx-radio-jgeW92SV.js.map +1 -0
  487. package/dist/shared/{hx-rating-CUWBQ0fZ.js → hx-rating-g_iy-DW_.js} +92 -96
  488. package/dist/shared/hx-rating-g_iy-DW_.js.map +1 -0
  489. package/dist/shared/{hx-select-BwDwxk-M.js → hx-select-4-nHL0vd.js} +73 -61
  490. package/dist/shared/hx-select-4-nHL0vd.js.map +1 -0
  491. package/dist/shared/hx-skeleton-BHvALyd7.js.map +1 -1
  492. package/dist/shared/{hx-slider-D_0EKJyk.js → hx-slider-7Q-e0_pc.js} +27 -22
  493. package/dist/shared/hx-slider-7Q-e0_pc.js.map +1 -0
  494. package/dist/shared/{hx-spinner-DMn4SChS.js → hx-spinner-DEgrKsUo.js} +3 -2
  495. package/dist/shared/hx-spinner-DEgrKsUo.js.map +1 -0
  496. package/dist/shared/{hx-split-button-CypgLXw1.js → hx-split-button-BA7P_ly5.js} +40 -31
  497. package/dist/shared/hx-split-button-BA7P_ly5.js.map +1 -0
  498. package/dist/shared/{hx-split-panel-BPMWKPGu.js → hx-split-panel-Bss54UN8.js} +28 -28
  499. package/dist/shared/hx-split-panel-Bss54UN8.js.map +1 -0
  500. package/dist/shared/{hx-stat-CHntLHJM.js → hx-stat-CmkCUI8v.js} +40 -32
  501. package/dist/shared/{hx-stat-CHntLHJM.js.map → hx-stat-CmkCUI8v.js.map} +1 -1
  502. package/dist/shared/{hx-status-indicator-C1BwEvUw.js → hx-status-indicator-4ClvA5mU.js} +19 -19
  503. package/dist/shared/hx-status-indicator-4ClvA5mU.js.map +1 -0
  504. package/dist/shared/{hx-step-BIVWSPxd.js → hx-step-DlANlr2A.js} +31 -71
  505. package/dist/shared/hx-step-DlANlr2A.js.map +1 -0
  506. package/dist/shared/{hx-structured-list-CMWllxGg.js → hx-structured-list-Db9rwLI_.js} +26 -23
  507. package/dist/shared/hx-structured-list-Db9rwLI_.js.map +1 -0
  508. package/dist/shared/hx-style-scope-BroUu83L.js +125 -0
  509. package/dist/shared/hx-style-scope-BroUu83L.js.map +1 -0
  510. package/dist/shared/{hx-switch-BgX8kuWt.js → hx-switch-C0Lp5RGy.js} +8 -5
  511. package/dist/shared/hx-switch-C0Lp5RGy.js.map +1 -0
  512. package/dist/shared/{hx-tab-panel-DhOq67jj.js → hx-tab-panel-GGjk6Qg4.js} +129 -118
  513. package/dist/shared/hx-tab-panel-GGjk6Qg4.js.map +1 -0
  514. package/dist/shared/{hx-tag-CzOTDcXI.js → hx-tag-K5fCjfqQ.js} +15 -14
  515. package/dist/shared/hx-tag-K5fCjfqQ.js.map +1 -0
  516. package/dist/shared/{hx-td-h6oeW6YC.js → hx-td-DZuILY3s.js} +43 -40
  517. package/dist/shared/hx-td-DZuILY3s.js.map +1 -0
  518. package/dist/shared/{hx-text-DTXjiviE.js → hx-text-DoEVOf47.js} +29 -29
  519. package/dist/shared/hx-text-DoEVOf47.js.map +1 -0
  520. package/dist/shared/hx-text-input-DTKWPVdy.js +576 -0
  521. package/dist/shared/hx-text-input-DTKWPVdy.js.map +1 -0
  522. package/dist/shared/{hx-textarea-BgX7rxyo.js → hx-textarea-BkSiU8oM.js} +15 -15
  523. package/dist/shared/hx-textarea-BkSiU8oM.js.map +1 -0
  524. package/dist/shared/hx-theme-Aag8QJvT.js +299 -0
  525. package/dist/shared/hx-theme-Aag8QJvT.js.map +1 -0
  526. package/dist/shared/{hx-time-picker-DmLu7WUC.js → hx-time-picker-BpCRsh_z.js} +54 -53
  527. package/dist/shared/hx-time-picker-BpCRsh_z.js.map +1 -0
  528. package/dist/shared/{hx-toggle-button-D1jpDvSA.js → hx-toggle-button-CPFqs3eQ.js} +8 -5
  529. package/dist/shared/hx-toggle-button-CPFqs3eQ.js.map +1 -0
  530. package/dist/shared/{hx-tooltip-kh7QFPKu.js → hx-tooltip-CrO4vzeX.js} +15 -10
  531. package/dist/shared/hx-tooltip-CrO4vzeX.js.map +1 -0
  532. package/dist/shared/{hx-tree-item-BP6UF_H1.js → hx-tree-item-DTDIBRrI.js} +122 -89
  533. package/dist/shared/hx-tree-item-DTDIBRrI.js.map +1 -0
  534. package/dist/shared/id-counter-JhvVCnjh.js +143 -0
  535. package/dist/shared/id-counter-JhvVCnjh.js.map +1 -0
  536. package/dist/shared/{toast-factory-DTy-qN8r.js → toast-factory-f184Gi70.js} +57 -45
  537. package/dist/shared/toast-factory-f184Gi70.js.map +1 -0
  538. package/dist/utilities/adoptedStylesheetRegistry.d.ts +47 -0
  539. package/dist/utilities/adoptedStylesheetRegistry.d.ts.map +1 -0
  540. package/dist/utilities/generateScopedSelectors.d.ts +30 -0
  541. package/dist/utilities/generateScopedSelectors.d.ts.map +1 -0
  542. package/dist/utilities/injectLightStyles.d.ts +37 -0
  543. package/dist/utilities/injectLightStyles.d.ts.map +1 -0
  544. package/dist/utilities/lightStyleRegistry.d.ts +41 -0
  545. package/dist/utilities/lightStyleRegistry.d.ts.map +1 -0
  546. package/dist/utilities/sheetManager.d.ts +62 -0
  547. package/dist/utilities/sheetManager.d.ts.map +1 -0
  548. package/dist/utils/contrast-checker.d.ts +86 -0
  549. package/dist/utils/contrast-checker.d.ts.map +1 -0
  550. package/dist/utils/token-merger.d.ts +24 -0
  551. package/dist/utils/token-merger.d.ts.map +1 -0
  552. package/fouc.css +37 -0
  553. package/package.json +25 -5
  554. package/dist/shared/hx-accordion-D1kFhdeQ.js.map +0 -1
  555. package/dist/shared/hx-alert-K5F8KeqI.js.map +0 -1
  556. package/dist/shared/hx-avatar-Cun-O99h.js.map +0 -1
  557. package/dist/shared/hx-badge-CsFd2xtw.js.map +0 -1
  558. package/dist/shared/hx-banner-BTV-X2xF.js.map +0 -1
  559. package/dist/shared/hx-breadcrumb-item-4IwaLgaO.js.map +0 -1
  560. package/dist/shared/hx-button-7k-KeCYU.js.map +0 -1
  561. package/dist/shared/hx-button-group-CWjWv-wS.js.map +0 -1
  562. package/dist/shared/hx-card-0hT3G5hi.js.map +0 -1
  563. package/dist/shared/hx-carousel-item-DgeYyYZJ.js.map +0 -1
  564. package/dist/shared/hx-checkbox-BvjO-O41.js.map +0 -1
  565. package/dist/shared/hx-checkbox-group-Z5VvWzcj.js.map +0 -1
  566. package/dist/shared/hx-code-snippet-DqzPkH4K.js.map +0 -1
  567. package/dist/shared/hx-color-picker-Da8z6AlQ.js.map +0 -1
  568. package/dist/shared/hx-combobox-CivfelTS.js.map +0 -1
  569. package/dist/shared/hx-container-DLUKnTi9.js.map +0 -1
  570. package/dist/shared/hx-copy-button--0dymSvw.js.map +0 -1
  571. package/dist/shared/hx-counter-Duf00H7p.js +0 -147
  572. package/dist/shared/hx-counter-Duf00H7p.js.map +0 -1
  573. package/dist/shared/hx-data-table-DujB9hSE.js.map +0 -1
  574. package/dist/shared/hx-date-picker-C8d2HtRV.js.map +0 -1
  575. package/dist/shared/hx-dialog-DkUSnVgw.js.map +0 -1
  576. package/dist/shared/hx-divider-DNNs4e8q.js.map +0 -1
  577. package/dist/shared/hx-drawer-CJcRZcns.js.map +0 -1
  578. package/dist/shared/hx-dropdown-Bo0KTM1A.js.map +0 -1
  579. package/dist/shared/hx-field-3MmzJ4kZ.js.map +0 -1
  580. package/dist/shared/hx-field-label-Bg-EWvqF.js.map +0 -1
  581. package/dist/shared/hx-file-upload-ByjAgfNy.js.map +0 -1
  582. package/dist/shared/hx-format-date-BdnWV2kX.js.map +0 -1
  583. package/dist/shared/hx-grid-gEjuF0cR.js.map +0 -1
  584. package/dist/shared/hx-icon-CP6OnLoM.js.map +0 -1
  585. package/dist/shared/hx-image-C6pGiI6c.js.map +0 -1
  586. package/dist/shared/hx-link-Tmk_YPvW.js.map +0 -1
  587. package/dist/shared/hx-meter-uXkTZq-W.js.map +0 -1
  588. package/dist/shared/hx-nav-3JsN2Oak.js.map +0 -1
  589. package/dist/shared/hx-nav-item-D3EJatzc.js.map +0 -1
  590. package/dist/shared/hx-number-input-CAAibZ8X.js.map +0 -1
  591. package/dist/shared/hx-overflow-menu-2kgOJ_ht.js.map +0 -1
  592. package/dist/shared/hx-pagination-DBs-vmSv.js.map +0 -1
  593. package/dist/shared/hx-popover-DxE67miP.js.map +0 -1
  594. package/dist/shared/hx-popup-Dg6n_PbY.js.map +0 -1
  595. package/dist/shared/hx-progress-bar-Dm_EHyng.js.map +0 -1
  596. package/dist/shared/hx-radio-BywgVSEu.js.map +0 -1
  597. package/dist/shared/hx-rating-CUWBQ0fZ.js.map +0 -1
  598. package/dist/shared/hx-select-BwDwxk-M.js.map +0 -1
  599. package/dist/shared/hx-slider-D_0EKJyk.js.map +0 -1
  600. package/dist/shared/hx-spinner-DMn4SChS.js.map +0 -1
  601. package/dist/shared/hx-split-button-CypgLXw1.js.map +0 -1
  602. package/dist/shared/hx-split-panel-BPMWKPGu.js.map +0 -1
  603. package/dist/shared/hx-status-indicator-C1BwEvUw.js.map +0 -1
  604. package/dist/shared/hx-step-BIVWSPxd.js.map +0 -1
  605. package/dist/shared/hx-structured-list-CMWllxGg.js.map +0 -1
  606. package/dist/shared/hx-switch-BgX8kuWt.js.map +0 -1
  607. package/dist/shared/hx-tab-panel-DhOq67jj.js.map +0 -1
  608. package/dist/shared/hx-tag-CzOTDcXI.js.map +0 -1
  609. package/dist/shared/hx-td-h6oeW6YC.js.map +0 -1
  610. package/dist/shared/hx-text-DTXjiviE.js.map +0 -1
  611. package/dist/shared/hx-text-input-CqEdDHMU.js +0 -461
  612. package/dist/shared/hx-text-input-CqEdDHMU.js.map +0 -1
  613. package/dist/shared/hx-textarea-BgX7rxyo.js.map +0 -1
  614. package/dist/shared/hx-theme-6GDoUG8j.js +0 -176
  615. package/dist/shared/hx-theme-6GDoUG8j.js.map +0 -1
  616. package/dist/shared/hx-time-picker-DmLu7WUC.js.map +0 -1
  617. package/dist/shared/hx-toggle-button-D1jpDvSA.js.map +0 -1
  618. package/dist/shared/hx-tooltip-kh7QFPKu.js.map +0 -1
  619. package/dist/shared/hx-tree-item-BP6UF_H1.js.map +0 -1
  620. package/dist/shared/toast-factory-DTy-qN8r.js.map +0 -1
@@ -1,5 +1,5 @@
1
- import { css as x, LitElement as m, nothing as d, html as g } from "lit";
2
- import { property as l, state as v, customElement as y } from "lit/decorators.js";
1
+ import { css as x, LitElement as m, nothing as d, html as u } from "lit";
2
+ import { property as n, state as v, customElement as y } from "lit/decorators.js";
3
3
  import { classMap as P } from "lit/directives/class-map.js";
4
4
  import { repeat as w } from "lit/directives/repeat.js";
5
5
  import { tokenStyles as $ } from "@helixui/tokens/lit";
@@ -42,7 +42,8 @@ const z = x`
42
42
  min-width: var(--hx-pagination-button-size, 2.25rem);
43
43
  height: var(--hx-pagination-button-size, 2.25rem);
44
44
  padding: 0 var(--hx-space-2, 0.5rem);
45
- border: 1px solid var(--hx-pagination-border-color, var(--hx-color-neutral-300, #d1d5db));
45
+ border: var(--hx-border-width-thin, 1px) solid
46
+ var(--hx-pagination-border-color, var(--hx-color-neutral-300, #d1d5db));
46
47
  border-radius: var(--hx-pagination-border-radius, var(--hx-border-radius-md, 0.375rem));
47
48
  background: var(--hx-pagination-bg, var(--hx-color-neutral-0, #ffffff));
48
49
  color: var(--hx-pagination-color, var(--hx-color-neutral-900, #111827));
@@ -81,7 +82,7 @@ const z = x`
81
82
  }
82
83
 
83
84
  .button:disabled {
84
- opacity: 0.4;
85
+ opacity: var(--hx-opacity-disabled, 0.5);
85
86
  pointer-events: none;
86
87
  }
87
88
 
@@ -119,7 +120,8 @@ const z = x`
119
120
  .page-size-select {
120
121
  height: var(--hx-pagination-button-size, 2.25rem);
121
122
  padding: 0 var(--hx-space-2, 0.5rem);
122
- border: 1px solid var(--hx-pagination-border-color, var(--hx-color-neutral-300, #d1d5db));
123
+ border: var(--hx-border-width-thin, 1px) solid
124
+ var(--hx-pagination-border-color, var(--hx-color-neutral-300, #d1d5db));
123
125
  border-radius: var(--hx-pagination-border-radius, var(--hx-border-radius-md, 0.375rem));
124
126
  background: var(--hx-pagination-bg, var(--hx-color-neutral-0, #ffffff));
125
127
  color: var(--hx-pagination-color, var(--hx-color-neutral-900, #111827));
@@ -196,13 +198,13 @@ const z = x`
196
198
  }
197
199
  `;
198
200
  var _ = Object.defineProperty, k = Object.getOwnPropertyDescriptor, s = (i, t, r, a) => {
199
- for (var e = a > 1 ? void 0 : a ? k(t, r) : t, c = i.length - 1, p; c >= 0; c--)
200
- (p = i[c]) && (e = (a ? p(t, r, e) : p(e)) || e);
201
+ for (var e = a > 1 ? void 0 : a ? k(t, r) : t, h = i.length - 1, c; h >= 0; h--)
202
+ (c = i[h]) && (e = (a ? c(t, r, e) : c(e)) || e);
201
203
  return a && e && _(t, r, e), e;
202
204
  };
203
205
  let o = class extends m {
204
206
  constructor() {
205
- super(...arguments), this.totalPages = 1, this.currentPage = 1, this.siblingCount = 1, this.boundaryCount = 1, this.showFirstLast = !1, this.label = "Pagination", this.pageSize = 25, this.showPageSize = !1, this.labelRowsPerPage = "Rows per page:", this.labelFirstPage = "First page", this.labelPrevPage = "Previous page", this.labelNextPage = "Next page", this.labelLastPage = "Last page", this.labelPageOf = (i, t) => `Page ${i} of ${t}`, this._rovingKey = null, this._liveMessage = "", this._pageRangeCache = null;
207
+ super(...arguments), this.totalPages = 1, this.currentPage = 1, this.siblingCount = 1, this.boundaryCount = 1, this.showFirstLast = !1, this.label = "Pagination", this.pageSize = 25, this.showPageSize = !1, this.labelRowsPerPage = "Rows per page:", this.firstPageLabel = "First page", this.previousPageLabel = "Previous page", this.nextPageLabel = "Next page", this.lastPageLabel = "Last page", this.labelPageMessage = (i, t) => `Page ${i} of ${t}`, this.labelPageButton = (i) => `Page ${i}`, this._rovingKey = null, this._liveMessage = "", this._pageRangeCache = null;
206
208
  }
207
209
  // ─── Helpers ───
208
210
  /** @internal */
@@ -210,19 +212,19 @@ let o = class extends m {
210
212
  var f;
211
213
  const i = `${this.totalPages}-${this.currentPage}-${this.siblingCount}-${this.boundaryCount}`;
212
214
  if (((f = this._pageRangeCache) == null ? void 0 : f.key) === i) return this._pageRangeCache.result;
213
- const t = Math.max(1, this.totalPages), r = Math.min(Math.max(1, this.currentPage), t), a = Math.max(0, this.boundaryCount), e = Math.max(0, this.siblingCount), c = this._range(1, Math.min(a, t)), p = this._range(Math.max(t - a + 1, a + 1), t), u = Math.max(
215
+ const t = Math.max(1, this.totalPages), r = Math.min(Math.max(1, this.currentPage), t), a = Math.max(0, this.boundaryCount), e = Math.max(0, this.siblingCount), h = this._range(1, Math.min(a, t)), c = this._range(Math.max(t - a + 1, a + 1), t), g = Math.max(
214
216
  Math.min(r - e, t - a - e * 2 - 1),
215
217
  a + 2
216
- ), h = Math.min(
218
+ ), p = Math.min(
217
219
  Math.max(r + e, a + e * 2 + 2),
218
- p.length > 0 ? (p[0] ?? t) - 2 : t - 1
219
- ), n = [];
220
- for (const b of c) n.push(b);
221
- u > a + 2 ? n.push("ellipsis") : a + 1 < u && n.push(a + 1);
222
- for (const b of this._range(u, h)) n.push(b);
223
- h < t - a - 1 ? n.push("ellipsis") : h < t - a && n.push(t - a);
224
- for (const b of p) n.push(b);
225
- return this._pageRangeCache = { key: i, result: n }, n;
220
+ c.length > 0 ? (c[0] ?? t) - 2 : t - 1
221
+ ), l = [];
222
+ for (const b of h) l.push(b);
223
+ g > a + 2 ? l.push("ellipsis") : a + 1 < g && l.push(a + 1);
224
+ for (const b of this._range(g, p)) l.push(b);
225
+ p < t - a - 1 ? l.push("ellipsis") : p < t - a && l.push(t - a);
226
+ for (const b of c) l.push(b);
227
+ return this._pageRangeCache = { key: i, result: l }, l;
226
228
  }
227
229
  /** @internal */
228
230
  _range(i, t) {
@@ -233,7 +235,7 @@ let o = class extends m {
233
235
  /** @internal */
234
236
  _navigate(i) {
235
237
  const t = Math.min(Math.max(1, i), this.totalPages);
236
- t !== this.currentPage && (this.currentPage = t, this._rovingKey = null, this._liveMessage = this.labelPageOf(t, this.totalPages), this.dispatchEvent(
238
+ t !== this.currentPage && (this.currentPage = t, this._rovingKey = null, this._liveMessage = this.labelPageMessage(t, this.totalPages), this.dispatchEvent(
237
239
  new CustomEvent("hx-page-change", {
238
240
  detail: { page: t },
239
241
  bubbles: !0,
@@ -265,25 +267,25 @@ let o = class extends m {
265
267
  }
266
268
  /** @internal */
267
269
  _handleKeydown(i) {
268
- var p, u;
270
+ var c, g;
269
271
  if (i.key !== "ArrowLeft" && i.key !== "ArrowRight") return;
270
272
  i.preventDefault();
271
- const t = (p = this.shadowRoot) == null ? void 0 : p.querySelector(".list");
273
+ const t = (c = this.shadowRoot) == null ? void 0 : c.querySelector(".list");
272
274
  if (!t) return;
273
- const r = Array.from(t.querySelectorAll("button:not([disabled])")), a = (u = this.shadowRoot) == null ? void 0 : u.activeElement, e = a ? r.indexOf(a) : 0, c = i.key === "ArrowLeft" ? Math.max(0, e - 1) : Math.min(r.length - 1, e + 1);
274
- if (c !== e) {
275
- const h = r[c];
276
- if (!h) return;
277
- const n = h.dataset.rovingKey;
278
- n !== void 0 && (this._rovingKey = isNaN(Number(n)) ? n : Number(n)), h.focus();
275
+ const r = Array.from(t.querySelectorAll("button:not([disabled])")), a = (g = this.shadowRoot) == null ? void 0 : g.activeElement, e = a ? r.indexOf(a) : 0, h = i.key === "ArrowLeft" ? Math.max(0, e - 1) : Math.min(r.length - 1, e + 1);
276
+ if (h !== e) {
277
+ const p = r[h];
278
+ if (!p) return;
279
+ const l = p.dataset.rovingKey;
280
+ l !== void 0 && (this._rovingKey = isNaN(Number(l)) ? l : Number(l)), p.focus();
279
281
  }
280
282
  }
281
283
  // ─── Render ───
282
284
  render() {
283
285
  const i = this._buildPageRange(), t = this.currentPage <= 1, r = this.currentPage >= this.totalPages, a = this._effectiveRovingKey;
284
- return g`
286
+ return u`
285
287
  <div class="pagination-root">
286
- ${this.showPageSize ? g`
288
+ ${this.showPageSize ? u`
287
289
  <div part="page-size-wrapper" class="page-size-wrapper">
288
290
  <label part="page-size-label" class="page-size-label">
289
291
  ${this.labelRowsPerPage}
@@ -293,7 +295,7 @@ let o = class extends m {
293
295
  @change=${this._handlePageSizeChange}
294
296
  >
295
297
  ${[10, 25, 50, 100].map(
296
- (e) => g`<option value=${e} ?selected=${e === this.pageSize}>${e}</option>`
298
+ (e) => u`<option value=${e} ?selected=${e === this.pageSize}>${e}</option>`
297
299
  )}
298
300
  </select>
299
301
  </label>
@@ -311,7 +313,7 @@ let o = class extends m {
311
313
  @keydown=${this._handleKeydown}
312
314
  @focusin=${this._handleFocusin}
313
315
  >
314
- ${this.showFirstLast ? g`
316
+ ${this.showFirstLast ? u`
315
317
  <li part="item" class="item">
316
318
  <button
317
319
  part="button"
@@ -319,7 +321,7 @@ let o = class extends m {
319
321
  ?disabled=${t}
320
322
  tabindex=${a === "first" ? 0 : -1}
321
323
  data-roving-key="first"
322
- aria-label=${this.labelFirstPage}
324
+ aria-label=${this.firstPageLabel}
323
325
  @click=${() => this._navigate(1)}
324
326
  >
325
327
  «
@@ -334,7 +336,7 @@ let o = class extends m {
334
336
  ?disabled=${t}
335
337
  tabindex=${a === "prev" ? 0 : -1}
336
338
  data-roving-key="prev"
337
- aria-label=${this.labelPrevPage}
339
+ aria-label=${this.previousPageLabel}
338
340
  @click=${() => this._navigate(this.currentPage - 1)}
339
341
  >
340
342
 
@@ -343,25 +345,25 @@ let o = class extends m {
343
345
 
344
346
  ${w(
345
347
  i,
346
- (e, c) => e === "ellipsis" ? `ellipsis-${c}` : `page-${e}`,
348
+ (e, h) => e === "ellipsis" ? `ellipsis-${h}` : `page-${e}`,
347
349
  (e) => {
348
350
  if (e === "ellipsis")
349
- return g`
351
+ return u`
350
352
  <li part="item" class="item">
351
353
  <span part="ellipsis" class="ellipsis" aria-hidden="true">…</span>
352
354
  </li>
353
355
  `;
354
- const c = e === this.currentPage;
355
- return g`
356
+ const h = e === this.currentPage;
357
+ return u`
356
358
  <li part="item" class="item">
357
359
  <button
358
360
  part="button"
359
361
  class=${P({ button: !0 })}
360
- aria-disabled=${c ? "true" : d}
362
+ aria-disabled=${h ? "true" : d}
361
363
  tabindex=${a === e ? 0 : -1}
362
364
  data-roving-key=${e}
363
- aria-current=${c ? "page" : d}
364
- aria-label=${`Page ${e}`}
365
+ aria-current=${h ? "page" : d}
366
+ aria-label=${this.labelPageButton(e)}
365
367
  @click=${() => this._navigate(e)}
366
368
  >
367
369
  ${e}
@@ -378,14 +380,14 @@ let o = class extends m {
378
380
  ?disabled=${r}
379
381
  tabindex=${a === "next" ? 0 : -1}
380
382
  data-roving-key="next"
381
- aria-label=${this.labelNextPage}
383
+ aria-label=${this.nextPageLabel}
382
384
  @click=${() => this._navigate(this.currentPage + 1)}
383
385
  >
384
386
 
385
387
  </button>
386
388
  </li>
387
389
 
388
- ${this.showFirstLast ? g`
390
+ ${this.showFirstLast ? u`
389
391
  <li part="item" class="item">
390
392
  <button
391
393
  part="button"
@@ -393,7 +395,7 @@ let o = class extends m {
393
395
  ?disabled=${r}
394
396
  tabindex=${a === "last" ? 0 : -1}
395
397
  data-roving-key="last"
396
- aria-label=${this.labelLastPage}
398
+ aria-label=${this.lastPageLabel}
397
399
  @click=${() => this._navigate(this.totalPages)}
398
400
  >
399
401
  »
@@ -408,47 +410,50 @@ let o = class extends m {
408
410
  };
409
411
  o.styles = [$, z];
410
412
  s([
411
- l({ type: Number, attribute: "total-pages", reflect: !0 })
413
+ n({ type: Number, attribute: "total-pages", reflect: !0 })
412
414
  ], o.prototype, "totalPages", 2);
413
415
  s([
414
- l({ type: Number, attribute: "current-page" })
416
+ n({ type: Number, attribute: "current-page" })
415
417
  ], o.prototype, "currentPage", 2);
416
418
  s([
417
- l({ type: Number, attribute: "sibling-count", reflect: !0 })
419
+ n({ type: Number, attribute: "sibling-count", reflect: !0 })
418
420
  ], o.prototype, "siblingCount", 2);
419
421
  s([
420
- l({ type: Number, attribute: "boundary-count", reflect: !0 })
422
+ n({ type: Number, attribute: "boundary-count", reflect: !0 })
421
423
  ], o.prototype, "boundaryCount", 2);
422
424
  s([
423
- l({ type: Boolean, attribute: "show-first-last", reflect: !0 })
425
+ n({ type: Boolean, attribute: "show-first-last", reflect: !0 })
424
426
  ], o.prototype, "showFirstLast", 2);
425
427
  s([
426
- l({ type: String, reflect: !0 })
428
+ n({ type: String, reflect: !0 })
427
429
  ], o.prototype, "label", 2);
428
430
  s([
429
- l({ type: Number, attribute: "page-size", reflect: !0 })
431
+ n({ type: Number, attribute: "page-size", reflect: !0 })
430
432
  ], o.prototype, "pageSize", 2);
431
433
  s([
432
- l({ type: Boolean, attribute: "show-page-size", reflect: !0 })
434
+ n({ type: Boolean, attribute: "show-page-size", reflect: !0 })
433
435
  ], o.prototype, "showPageSize", 2);
434
436
  s([
435
- l({ type: String, attribute: "label-rows-per-page" })
437
+ n({ type: String, attribute: "label-rows-per-page" })
436
438
  ], o.prototype, "labelRowsPerPage", 2);
437
439
  s([
438
- l({ type: String, attribute: "label-first-page" })
439
- ], o.prototype, "labelFirstPage", 2);
440
+ n({ attribute: "first-page-label" })
441
+ ], o.prototype, "firstPageLabel", 2);
440
442
  s([
441
- l({ type: String, attribute: "label-prev-page" })
442
- ], o.prototype, "labelPrevPage", 2);
443
+ n({ attribute: "previous-page-label" })
444
+ ], o.prototype, "previousPageLabel", 2);
443
445
  s([
444
- l({ type: String, attribute: "label-next-page" })
445
- ], o.prototype, "labelNextPage", 2);
446
+ n({ attribute: "next-page-label" })
447
+ ], o.prototype, "nextPageLabel", 2);
446
448
  s([
447
- l({ type: String, attribute: "label-last-page" })
448
- ], o.prototype, "labelLastPage", 2);
449
+ n({ attribute: "last-page-label" })
450
+ ], o.prototype, "lastPageLabel", 2);
449
451
  s([
450
- l({ attribute: !1 })
451
- ], o.prototype, "labelPageOf", 2);
452
+ n({ attribute: !1 })
453
+ ], o.prototype, "labelPageMessage", 2);
454
+ s([
455
+ n({ attribute: !1 })
456
+ ], o.prototype, "labelPageButton", 2);
452
457
  s([
453
458
  v()
454
459
  ], o.prototype, "_rovingKey", 2);
@@ -461,4 +466,4 @@ o = s([
461
466
  export {
462
467
  o as H
463
468
  };
464
- //# sourceMappingURL=hx-pagination-DBs-vmSv.js.map
469
+ //# sourceMappingURL=hx-pagination-DYhYPqDn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hx-pagination-DYhYPqDn.js","sources":["../../src/components/hx-pagination/hx-pagination.styles.ts","../../src/components/hx-pagination/hx-pagination.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixPaginationStyles = css`\n :host {\n display: block;\n font-family: var(--hx-font-family-sans, sans-serif);\n }\n\n .pagination-root {\n display: flex;\n align-items: center;\n gap: var(--hx-space-4, 1rem);\n flex-wrap: wrap;\n }\n\n nav {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .list {\n display: flex;\n align-items: center;\n gap: var(--hx-pagination-gap, var(--hx-space-1, 0.25rem));\n list-style: none;\n margin: 0;\n padding: 0;\n }\n\n .item {\n display: flex;\n }\n\n .button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: var(--hx-pagination-button-size, 2.25rem);\n height: var(--hx-pagination-button-size, 2.25rem);\n padding: 0 var(--hx-space-2, 0.5rem);\n border: var(--hx-border-width-thin, 1px) solid\n var(--hx-pagination-border-color, var(--hx-color-neutral-300, #d1d5db));\n border-radius: var(--hx-pagination-border-radius, var(--hx-border-radius-md, 0.375rem));\n background: var(--hx-pagination-bg, var(--hx-color-neutral-0, #ffffff));\n color: var(--hx-pagination-color, var(--hx-color-neutral-900, #111827));\n font-size: var(--hx-font-size-sm, 0.875rem);\n font-family: inherit;\n cursor: pointer;\n transition:\n background-color var(--hx-transition-fast, 150ms) ease,\n border-color var(--hx-transition-fast, 150ms) ease,\n color var(--hx-transition-fast, 150ms) ease;\n text-decoration: none;\n white-space: nowrap;\n }\n\n .button:hover:not(:disabled) {\n background: var(--hx-pagination-hover-bg, var(--hx-color-neutral-100, #f3f4f6));\n border-color: var(--hx-pagination-hover-border-color, var(--hx-color-primary-500, #2563eb));\n }\n\n .button:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid\n var(--hx-pagination-focus-ring-color, var(--hx-focus-ring-color, var(--hx-color-primary-500)));\n outline-offset: var(--hx-focus-ring-offset, 2px);\n }\n\n .button[aria-current='page'] {\n background: var(--hx-pagination-active-bg, var(--hx-color-primary-500, #2563eb));\n border-color: var(\n --hx-pagination-active-border-color,\n var(--hx-pagination-active-bg, var(--hx-color-primary-500, #2563eb))\n );\n color: var(--hx-pagination-active-color, var(--hx-color-neutral-0, #ffffff));\n font-weight: var(--hx-font-weight-semibold, 600);\n cursor: default;\n pointer-events: none;\n }\n\n .button:disabled {\n opacity: var(--hx-opacity-disabled, 0.5);\n pointer-events: none;\n }\n\n .ellipsis {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: var(--hx-pagination-button-size, 2.25rem);\n height: var(--hx-pagination-button-size, 2.25rem);\n color: var(--hx-pagination-ellipsis-color, var(--hx-color-neutral-500, #6b7280));\n font-size: var(--hx-font-size-sm, 0.875rem);\n user-select: none;\n }\n\n .button[aria-disabled='true'] {\n cursor: default;\n pointer-events: none;\n }\n\n /* Page size selector */\n .page-size-wrapper {\n display: flex;\n align-items: center;\n }\n\n .page-size-label {\n display: flex;\n align-items: center;\n gap: var(--hx-space-2, 0.5rem);\n font-size: var(--hx-font-size-sm, 0.875rem);\n color: var(--hx-color-neutral-500, #6b7280);\n white-space: nowrap;\n }\n\n .page-size-select {\n height: var(--hx-pagination-button-size, 2.25rem);\n padding: 0 var(--hx-space-2, 0.5rem);\n border: var(--hx-border-width-thin, 1px) solid\n var(--hx-pagination-border-color, var(--hx-color-neutral-300, #d1d5db));\n border-radius: var(--hx-pagination-border-radius, var(--hx-border-radius-md, 0.375rem));\n background: var(--hx-pagination-bg, var(--hx-color-neutral-0, #ffffff));\n color: var(--hx-pagination-color, var(--hx-color-neutral-900, #111827));\n font-size: var(--hx-font-size-sm, 0.875rem);\n font-family: inherit;\n cursor: pointer;\n }\n\n .page-size-select:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid\n var(--hx-pagination-focus-ring-color, var(--hx-focus-ring-color, var(--hx-color-primary-500)));\n outline-offset: var(--hx-focus-ring-offset, 2px);\n }\n\n /* Visually hidden — used for aria-live status messages */\n .visually-hidden {\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 @media (prefers-reduced-motion: reduce) {\n .button {\n transition: none;\n }\n }\n\n /* Windows High Contrast / forced-colors support */\n @media (forced-colors: active) {\n .button {\n border: 1px solid ButtonText;\n color: ButtonText;\n background: ButtonFace;\n forced-color-adjust: none;\n }\n\n .button:hover:not(:disabled) {\n border-color: Highlight;\n color: Highlight;\n }\n\n .button:focus-visible {\n outline-color: Highlight;\n }\n\n .button[aria-current='page'] {\n background: Highlight;\n border-color: Highlight;\n color: HighlightText;\n }\n\n .button:disabled {\n color: GrayText;\n border-color: GrayText;\n opacity: 1;\n }\n\n .button[aria-disabled='true'] {\n color: GrayText;\n }\n\n .page-size-select {\n border-color: ButtonText;\n color: ButtonText;\n background: ButtonFace;\n forced-color-adjust: none;\n }\n }\n`;\n","import { LitElement, html, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { repeat } from 'lit/directives/repeat.js';\nimport { tokenStyles } from '@helixui/tokens/lit';\nimport { helixPaginationStyles } from './hx-pagination.styles.js';\n\n/**\n * A pagination component for navigating content listings.\n *\n * @summary Page navigation with page numbers, prev/next, and ellipsis.\n *\n * @tag hx-pagination\n *\n * @csspart nav - The wrapping `<nav>` element.\n * @csspart list - The `<ul>` containing pagination items.\n * @csspart item - Each `<li>` item.\n * @csspart button - Each page button or prev/next control.\n * @csspart ellipsis - The ellipsis (`…`) span between page groups.\n * @csspart page-size-wrapper - The wrapper `<div>` around the page-size selector.\n * @csspart page-size-label - The `<label>` element for the page-size selector.\n * @csspart page-size-select - The `<select>` element for page-size.\n *\n * @cssprop [--hx-pagination-gap=0.25rem] - Gap between pagination buttons. Inherits from --hx-spacing-1.\n * @cssprop [--hx-pagination-button-size=2.25rem] - Minimum width and height of each button.\n * @cssprop [--hx-pagination-border-color] - Border color of buttons. Inherits from --hx-color-border (final fallback: #d1d5db).\n * @cssprop [--hx-pagination-border-radius] - Border radius of buttons. Inherits from --hx-border-radius-md (final fallback: 0.375rem).\n * @cssprop [--hx-pagination-bg] - Background color of buttons. Inherits from --hx-color-surface (final fallback: #ffffff).\n * @cssprop [--hx-pagination-color] - Text color of buttons. Inherits from --hx-color-text-primary (final fallback: #111827).\n * @cssprop [--hx-pagination-hover-bg] - Background color of buttons on hover. Inherits from --hx-color-surface-hover (final fallback: #f3f4f6).\n * @cssprop [--hx-pagination-hover-border-color] - Border color of buttons on hover. Inherits from --hx-color-primary (final fallback: #2563eb).\n * @cssprop [--hx-pagination-active-bg] - Background color of the active/current page button. Inherits from --hx-color-primary (final fallback: #2563eb).\n * @cssprop [--hx-pagination-active-color] - Text color of the active/current page button. Inherits from --hx-color-surface (final fallback: #ffffff).\n * @cssprop [--hx-pagination-active-border-color] - Border color of the active/current page button. Defaults to --hx-pagination-active-bg.\n * @cssprop [--hx-pagination-ellipsis-color] - Color of ellipsis characters. Inherits from --hx-color-text-secondary (final fallback: #6b7280).\n * @cssprop [--hx-transition-fast=150ms] - Duration used for hover/focus transitions.\n *\n * @fires {CustomEvent<{ page: number }>} hx-page-change - Fired when the user navigates to a new page.\n * @fires {CustomEvent<{ pageSize: number }>} hx-page-size-change - Fired when the user selects a new page size.\n *\n * @example\n * ```html\n * <hx-pagination total-pages=\"10\" current-page=\"1\"></hx-pagination>\n * ```\n *\n * @example Drupal / Twig integration\n * ```twig\n * {#\n * Drupal's pager uses 0-based page index in the URL (?page=N).\n * This component is 1-based, so add 1 to the Drupal page value.\n * Listen to hx-page-change and update the URL query param:\n * element.addEventListener('hx-page-change', (e) => {\n * const params = new URLSearchParams(location.search);\n * params.set('page', e.detail.page - 1); // convert back to 0-based\n * history.pushState({}, '', '?' + params.toString());\n * });\n * #}\n * <hx-pagination\n * total-pages=\"{{ total_pages }}\"\n * current-page=\"{{ pager.current_page + 1 }}\"\n * label=\"{{ 'Pagination'|t }}\"\n * {{ show_first_last ? 'show-first-last' : '' }}\n * ></hx-pagination>\n * ```\n */\n@customElement('hx-pagination')\nexport class HelixPagination extends LitElement {\n static override styles = [tokenStyles, helixPaginationStyles];\n\n /**\n * Total number of pages.\n * @attr total-pages\n */\n @property({ type: Number, attribute: 'total-pages', reflect: true })\n totalPages = 1;\n\n /**\n * The currently active page (1-based).\n * @attr current-page\n */\n @property({ type: Number, attribute: 'current-page' })\n currentPage = 1;\n\n /**\n * Number of page buttons shown on each side of the current page.\n * @attr sibling-count\n */\n @property({ type: Number, attribute: 'sibling-count', reflect: true })\n siblingCount = 1;\n\n /**\n * Number of pages always shown at the start and end of the list.\n * @attr boundary-count\n */\n @property({ type: Number, attribute: 'boundary-count', reflect: true })\n boundaryCount = 1;\n\n /**\n * Whether to show First and Last page buttons.\n * @attr show-first-last\n */\n @property({ type: Boolean, attribute: 'show-first-last', reflect: true })\n showFirstLast = false;\n\n /**\n * Accessible label for the `<nav>` element.\n * @attr label\n */\n @property({ type: String, reflect: true })\n label = 'Pagination';\n\n /**\n * The number of items displayed per page. When set, a page-size selector\n * `<select>` is rendered. Set `show-page-size` to display the selector.\n * @attr page-size\n */\n @property({ type: Number, attribute: 'page-size', reflect: true })\n pageSize = 25;\n\n /**\n * Whether to show the page-size selector UI.\n * @attr show-page-size\n */\n @property({ type: Boolean, attribute: 'show-page-size', reflect: true })\n showPageSize = false;\n\n /**\n * Label text for the rows-per-page selector.\n * @attr label-rows-per-page\n */\n @property({ type: String, attribute: 'label-rows-per-page' })\n labelRowsPerPage = 'Rows per page:';\n\n /**\n * Accessible label for the \"First page\" navigation button.\n * @attr first-page-label\n */\n @property({ attribute: 'first-page-label' })\n firstPageLabel = 'First page';\n\n /**\n * Accessible label for the \"Previous page\" navigation button.\n * @attr previous-page-label\n */\n @property({ attribute: 'previous-page-label' })\n previousPageLabel = 'Previous page';\n\n /**\n * Accessible label for the \"Next page\" navigation button.\n * @attr next-page-label\n */\n @property({ attribute: 'next-page-label' })\n nextPageLabel = 'Next page';\n\n /**\n * Accessible label for the \"Last page\" navigation button.\n * @attr last-page-label\n */\n @property({ attribute: 'last-page-label' })\n lastPageLabel = 'Last page';\n\n /**\n * Function to format the page navigation announcement. Override for i18n.\n */\n @property({ attribute: false })\n labelPageMessage: (current: number, total: number) => string = (current, total) =>\n `Page ${current} of ${total}`;\n\n /**\n * Function to format page button aria-labels. Override for i18n.\n */\n @property({ attribute: false })\n labelPageButton: (page: number) => string = (page) => `Page ${page}`;\n\n /** Tracks the roving tabindex target. Null means default to currentPage. */\n /** @internal */\n @state() private _rovingKey: number | string | null = null;\n\n /** Text for the aria-live region, updated on navigation. */\n /** @internal */\n @state() private _liveMessage = '';\n\n /** Memoization cache for _buildPageRange. */\n /** @internal */\n private _pageRangeCache: { key: string; result: Array<number | 'ellipsis'> } | null = null;\n\n // ─── Helpers ───\n\n /** @internal */\n private _buildPageRange(): Array<number | 'ellipsis'> {\n const key = `${this.totalPages}-${this.currentPage}-${this.siblingCount}-${this.boundaryCount}`;\n if (this._pageRangeCache?.key === key) return this._pageRangeCache.result;\n\n const total = Math.max(1, this.totalPages);\n const current = Math.min(Math.max(1, this.currentPage), total);\n const boundary = Math.max(0, this.boundaryCount);\n const sibling = Math.max(0, this.siblingCount);\n\n const startPages = this._range(1, Math.min(boundary, total));\n const endPages = this._range(Math.max(total - boundary + 1, boundary + 1), total);\n\n const siblingStart = Math.max(\n Math.min(current - sibling, total - boundary - sibling * 2 - 1),\n boundary + 2,\n );\n const siblingEnd = Math.min(\n Math.max(current + sibling, boundary + sibling * 2 + 2),\n endPages.length > 0 ? (endPages[0] ?? total) - 2 : total - 1,\n );\n\n const items: Array<number | 'ellipsis'> = [];\n\n for (const p of startPages) items.push(p);\n\n if (siblingStart > boundary + 2) {\n items.push('ellipsis');\n } else if (boundary + 1 < siblingStart) {\n items.push(boundary + 1);\n }\n\n for (const p of this._range(siblingStart, siblingEnd)) items.push(p);\n\n if (siblingEnd < total - boundary - 1) {\n items.push('ellipsis');\n } else if (siblingEnd < total - boundary) {\n items.push(total - boundary);\n }\n\n for (const p of endPages) items.push(p);\n\n this._pageRangeCache = { key, result: items };\n return items;\n }\n\n /** @internal */\n private _range(start: number, end: number): number[] {\n const result: number[] = [];\n for (let i = start; i <= end; i++) result.push(i);\n return result;\n }\n\n /** @internal */\n private _navigate(page: number): void {\n const clamped = Math.min(Math.max(1, page), this.totalPages);\n if (clamped === this.currentPage) return;\n\n this.currentPage = clamped;\n this._rovingKey = null; // reset so focus follows the new current page\n this._liveMessage = this.labelPageMessage(clamped, this.totalPages);\n this.dispatchEvent(\n new CustomEvent<{ page: number }>('hx-page-change', {\n detail: { page: clamped },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n /** @internal */\n private _handlePageSizeChange(e: Event): void {\n const select = e.target as HTMLSelectElement;\n const newSize = Number(select.value);\n if (newSize === this.pageSize) return;\n\n this.pageSize = newSize;\n this.dispatchEvent(\n new CustomEvent<{ pageSize: number }>('hx-page-size-change', {\n detail: { pageSize: newSize },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n /** @internal */\n private get _effectiveRovingKey(): number | string {\n return this._rovingKey ?? this.currentPage;\n }\n\n /** @internal */\n private _handleFocusin(e: FocusEvent): void {\n const btn = e.target as HTMLElement;\n if (btn.tagName !== 'BUTTON') return;\n const key = btn.dataset['rovingKey'];\n if (key === undefined) return;\n this._rovingKey = isNaN(Number(key)) ? key : Number(key);\n }\n\n /** @internal */\n private _handleKeydown(e: KeyboardEvent): void {\n if (e.key !== 'ArrowLeft' && e.key !== 'ArrowRight') return;\n e.preventDefault();\n\n const list = this.shadowRoot?.querySelector('.list');\n if (!list) return;\n\n // Collect all non-disabled buttons (disabled prev/next excluded; aria-disabled current page included)\n const buttons = Array.from(list.querySelectorAll<HTMLButtonElement>('button:not([disabled])'));\n const focused = this.shadowRoot?.activeElement as HTMLButtonElement | null;\n const currentIdx = focused ? buttons.indexOf(focused) : 0;\n\n const nextIdx =\n e.key === 'ArrowLeft'\n ? Math.max(0, currentIdx - 1)\n : Math.min(buttons.length - 1, currentIdx + 1);\n\n if (nextIdx !== currentIdx) {\n const nextBtn = buttons[nextIdx];\n if (!nextBtn) return;\n const key = nextBtn.dataset['rovingKey'];\n if (key !== undefined) {\n this._rovingKey = isNaN(Number(key)) ? key : Number(key);\n }\n nextBtn.focus();\n }\n }\n\n // ─── Render ───\n\n override render() {\n const pages = this._buildPageRange();\n const isFirst = this.currentPage <= 1;\n const isLast = this.currentPage >= this.totalPages;\n const rovingKey = this._effectiveRovingKey;\n\n return html`\n <div class=\"pagination-root\">\n ${this.showPageSize\n ? html`\n <div part=\"page-size-wrapper\" class=\"page-size-wrapper\">\n <label part=\"page-size-label\" class=\"page-size-label\">\n ${this.labelRowsPerPage}\n <select\n part=\"page-size-select\"\n class=\"page-size-select\"\n @change=${this._handlePageSizeChange}\n >\n ${[10, 25, 50, 100].map(\n (n) =>\n html`<option value=${n} ?selected=${n === this.pageSize}>${n}</option>`,\n )}\n </select>\n </label>\n </div>\n `\n : nothing}\n\n <nav part=\"nav\" aria-label=${this.label}>\n <span class=\"visually-hidden\" aria-live=\"polite\" aria-atomic=\"true\"\n >${this._liveMessage}</span\n >\n <ul\n part=\"list\"\n class=\"list\"\n role=\"list\"\n @keydown=${this._handleKeydown}\n @focusin=${this._handleFocusin}\n >\n ${this.showFirstLast\n ? html`\n <li part=\"item\" class=\"item\">\n <button\n part=\"button\"\n class=\"button\"\n ?disabled=${isFirst}\n tabindex=${rovingKey === 'first' ? 0 : -1}\n data-roving-key=\"first\"\n aria-label=${this.firstPageLabel}\n @click=${() => this._navigate(1)}\n >\n «\n </button>\n </li>\n `\n : nothing}\n\n <li part=\"item\" class=\"item\">\n <button\n part=\"button\"\n class=\"button\"\n ?disabled=${isFirst}\n tabindex=${rovingKey === 'prev' ? 0 : -1}\n data-roving-key=\"prev\"\n aria-label=${this.previousPageLabel}\n @click=${() => this._navigate(this.currentPage - 1)}\n >\n ‹\n </button>\n </li>\n\n ${repeat(\n pages,\n (page, i) => (page === 'ellipsis' ? `ellipsis-${i}` : `page-${page}`),\n (page) => {\n if (page === 'ellipsis') {\n return html`\n <li part=\"item\" class=\"item\">\n <span part=\"ellipsis\" class=\"ellipsis\" aria-hidden=\"true\">…</span>\n </li>\n `;\n }\n const isCurrent = page === this.currentPage;\n return html`\n <li part=\"item\" class=\"item\">\n <button\n part=\"button\"\n class=${classMap({ button: true })}\n aria-disabled=${isCurrent ? 'true' : nothing}\n tabindex=${rovingKey === page ? 0 : -1}\n data-roving-key=${page}\n aria-current=${isCurrent ? 'page' : nothing}\n aria-label=${this.labelPageButton(page)}\n @click=${() => this._navigate(page)}\n >\n ${page}\n </button>\n </li>\n `;\n },\n )}\n\n <li part=\"item\" class=\"item\">\n <button\n part=\"button\"\n class=\"button\"\n ?disabled=${isLast}\n tabindex=${rovingKey === 'next' ? 0 : -1}\n data-roving-key=\"next\"\n aria-label=${this.nextPageLabel}\n @click=${() => this._navigate(this.currentPage + 1)}\n >\n ›\n </button>\n </li>\n\n ${this.showFirstLast\n ? html`\n <li part=\"item\" class=\"item\">\n <button\n part=\"button\"\n class=\"button\"\n ?disabled=${isLast}\n tabindex=${rovingKey === 'last' ? 0 : -1}\n data-roving-key=\"last\"\n aria-label=${this.lastPageLabel}\n @click=${() => this._navigate(this.totalPages)}\n >\n »\n </button>\n </li>\n `\n : nothing}\n </ul>\n </nav>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-pagination': HelixPagination;\n }\n}\n\n/** Canonical type alias for HelixPagination. Use this when typing hx-pagination element references. */\nexport type HxPagination = HelixPagination;\n"],"names":["helixPaginationStyles","css","HelixPagination","LitElement","current","total","page","key","_a","boundary","sibling","startPages","endPages","siblingStart","siblingEnd","items","p","start","end","result","i","clamped","e","select","newSize","btn","list","buttons","focused","_b","currentIdx","nextIdx","nextBtn","pages","isFirst","isLast","rovingKey","html","n","nothing","repeat","isCurrent","classMap","tokenStyles","__decorateClass","property","state","customElement"],"mappings":"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"}
@@ -0,0 +1,256 @@
1
+ import { css as b, LitElement as h, html as f } from "lit";
2
+ import { property as l, state as c, query as p, customElement as v } from "lit/decorators.js";
3
+ import { tokenStyles as u } from "@helixui/tokens/lit";
4
+ const _ = b`
5
+ :host {
6
+ display: block;
7
+ width: 100%;
8
+
9
+ /* ─── Private token vars (3-tier cascade) ─── */
10
+ --_bg: var(--hx-patient-banner-bg, var(--hx-color-neutral-50, #f9fafb));
11
+ --_border-color: var(--hx-patient-banner-border-color, var(--hx-color-neutral-200, #e5e7eb));
12
+ --_padding: var(
13
+ --hx-patient-banner-padding,
14
+ var(--hx-space-3, 0.75rem) var(--hx-space-4, 1rem)
15
+ );
16
+ --_gap: var(--hx-patient-banner-gap, var(--hx-space-4, 1rem));
17
+ --_font-family: var(--hx-patient-banner-font-family, var(--hx-font-family-sans, sans-serif));
18
+ --_label-color: var(--hx-patient-banner-label-color, var(--hx-color-neutral-500, #6b7280));
19
+ --_label-font-size: var(--hx-patient-banner-label-font-size, var(--hx-font-size-xs, 0.75rem));
20
+ --_value-color: var(--hx-patient-banner-value-color, var(--hx-color-neutral-900, #111827));
21
+ --_value-font-size: var(--hx-patient-banner-value-font-size, var(--hx-font-size-sm, 0.875rem));
22
+ --_photo-size: var(--hx-patient-banner-photo-size, var(--hx-space-10, 2.5rem));
23
+ }
24
+
25
+ * {
26
+ box-sizing: border-box;
27
+ }
28
+
29
+ /* ─── Banner Container ─── */
30
+
31
+ .banner {
32
+ display: flex;
33
+ align-items: center;
34
+ gap: var(--_gap);
35
+ padding: var(--_padding);
36
+ background-color: var(--_bg);
37
+ border-bottom: var(--hx-border-width-thin, 1px) solid var(--_border-color);
38
+ font-family: var(--_font-family);
39
+ width: 100%;
40
+ }
41
+
42
+ /* ─── Photo Area ─── */
43
+
44
+ .banner__photo-area {
45
+ flex-shrink: 0;
46
+ width: var(--_photo-size);
47
+ height: var(--_photo-size);
48
+ border-radius: var(--hx-border-radius-full, 9999px);
49
+ overflow: hidden;
50
+ display: flex;
51
+ align-items: center;
52
+ justify-content: center;
53
+ background-color: var(--hx-color-neutral-200, #e5e7eb);
54
+ }
55
+
56
+ /* ─── Fields Grid ─── */
57
+
58
+ .banner__fields {
59
+ display: flex;
60
+ flex-wrap: wrap;
61
+ gap: var(--_gap);
62
+ flex: 1;
63
+ min-width: 0;
64
+ }
65
+
66
+ /* ─── Individual Field ─── */
67
+
68
+ .field {
69
+ display: flex;
70
+ flex-direction: column;
71
+ gap: var(--hx-space-1, 0.25rem);
72
+ min-width: 0;
73
+ }
74
+
75
+ .field__label {
76
+ font-size: var(--_label-font-size);
77
+ color: var(--_label-color);
78
+ font-weight: var(--hx-font-weight-medium, 500);
79
+ line-height: var(--hx-line-height-tight, 1.25);
80
+ white-space: nowrap;
81
+ }
82
+
83
+ .field__value {
84
+ font-size: var(--_value-font-size);
85
+ color: var(--_value-color);
86
+ font-weight: var(--hx-font-weight-normal, 400);
87
+ line-height: var(--hx-line-height-normal, 1.5);
88
+ display: flex;
89
+ align-items: center;
90
+ gap: var(--hx-space-1, 0.25rem);
91
+ }
92
+
93
+ /* ─── Identifier Rule Violation ─── */
94
+ /* Visual indicator when Joint Commission two-identifier rule is not met. */
95
+
96
+ :host([aria-invalid='true']) .banner {
97
+ border-bottom-color: var(--hx-color-error-400, #f87171);
98
+ background-color: var(--hx-color-error-50, #fef2f2);
99
+ /* Darken label color to maintain 4.5:1 contrast on error-50 background */
100
+ --_label-color: var(--hx-patient-banner-label-color, var(--hx-color-neutral-700, #374151));
101
+ position: relative;
102
+ }
103
+
104
+ :host([aria-invalid='true']) .banner::before {
105
+ content: '';
106
+ display: block;
107
+ position: absolute;
108
+ inset-inline-start: 0;
109
+ top: 0;
110
+ bottom: 0;
111
+ width: var(--hx-border-width-thick, 4px);
112
+ background-color: var(--hx-color-error-500, #ef4444);
113
+ border-radius: 0;
114
+ }
115
+ `;
116
+ var m = Object.defineProperty, x = Object.getOwnPropertyDescriptor, a = (e, r, n, o) => {
117
+ for (var i = o > 1 ? void 0 : o ? x(r, n) : r, s = e.length - 1, d; s >= 0; s--)
118
+ (d = e[s]) && (i = (o ? d(r, n, i) : d(i)) || i);
119
+ return o && i && m(r, n, i), i;
120
+ };
121
+ let t = class extends h {
122
+ constructor() {
123
+ super(...arguments), this.patientId = "", this.labelPatient = "Patient identification", this.labelName = "Patient name", this.labelMrn = "MRN", this.labelDob = "Date of birth", this.labelAllergies = "Allergies", this.labelCodeStatus = "Code status", this.enforceIdentifierRule = !0, this._identifierCount = 0;
124
+ }
125
+ // ─── Lifecycle ───
126
+ connectedCallback() {
127
+ super.connectedCallback(), this.setAttribute("role", "banner"), this.setAttribute("aria-label", this.labelPatient);
128
+ }
129
+ updated(e) {
130
+ super.updated(e), e.has("labelPatient") && this.setAttribute("aria-label", this.labelPatient), e.has("enforceIdentifierRule") && this._checkIdentifierRule();
131
+ }
132
+ // ─── Private Helpers ───
133
+ _countPopulatedIdentifiers() {
134
+ let e = 0;
135
+ const r = [this._nameSlot, this._mrnSlot, this._dobSlot];
136
+ for (const n of r)
137
+ n && n.assignedNodes({ flatten: !0 }).length > 0 && e++;
138
+ return e;
139
+ }
140
+ _checkIdentifierRule() {
141
+ const e = this._countPopulatedIdentifiers();
142
+ this._identifierCount = e, this.enforceIdentifierRule && e < 2 ? (this.setAttribute("aria-invalid", "true"), this.dispatchEvent(
143
+ new CustomEvent("hx-identifier-rule-violation", {
144
+ bubbles: !0,
145
+ composed: !0,
146
+ detail: {
147
+ populatedIdentifiers: e,
148
+ requiredIdentifiers: 2,
149
+ patientId: this.patientId
150
+ }
151
+ })
152
+ )) : this.removeAttribute("aria-invalid");
153
+ }
154
+ // ─── Event Handlers ───
155
+ _handleSlotChange() {
156
+ this._checkIdentifierRule();
157
+ }
158
+ // ─── Render ───
159
+ render() {
160
+ return f`
161
+ <div part="banner" class="banner">
162
+ <div part="photo-area" class="banner__photo-area">
163
+ <slot name="photo"></slot>
164
+ </div>
165
+
166
+ <div part="fields" class="banner__fields">
167
+ <div part="field" class="field">
168
+ <span part="field-label" class="field__label">${this.labelName}</span>
169
+ <div part="field-value" class="field__value">
170
+ <slot name="name" @slotchange=${this._handleSlotChange}></slot>
171
+ </div>
172
+ </div>
173
+
174
+ <div part="field" class="field">
175
+ <span part="field-label" class="field__label">${this.labelMrn}</span>
176
+ <div part="field-value" class="field__value">
177
+ <slot name="mrn" @slotchange=${this._handleSlotChange}></slot>
178
+ </div>
179
+ </div>
180
+
181
+ <div part="field" class="field">
182
+ <span part="field-label" class="field__label">${this.labelDob}</span>
183
+ <div part="field-value" class="field__value">
184
+ <slot name="dob" @slotchange=${this._handleSlotChange}></slot>
185
+ </div>
186
+ </div>
187
+
188
+ <div part="field" class="field">
189
+ <span part="field-label" class="field__label">${this.labelAllergies}</span>
190
+ <div part="field-value" class="field__value">
191
+ <slot name="allergies"></slot>
192
+ </div>
193
+ </div>
194
+
195
+ <div part="field" class="field">
196
+ <span part="field-label" class="field__label">${this.labelCodeStatus}</span>
197
+ <div part="field-value" class="field__value">
198
+ <slot name="code-status"></slot>
199
+ </div>
200
+ </div>
201
+ </div>
202
+ </div>
203
+ `;
204
+ }
205
+ };
206
+ t.styles = [u, _];
207
+ a([
208
+ l({ type: String, attribute: "patient-id" })
209
+ ], t.prototype, "patientId", 2);
210
+ a([
211
+ l({ type: String, attribute: "label-patient" })
212
+ ], t.prototype, "labelPatient", 2);
213
+ a([
214
+ l({ type: String, attribute: "label-name" })
215
+ ], t.prototype, "labelName", 2);
216
+ a([
217
+ l({ type: String, attribute: "label-mrn" })
218
+ ], t.prototype, "labelMrn", 2);
219
+ a([
220
+ l({ type: String, attribute: "label-dob" })
221
+ ], t.prototype, "labelDob", 2);
222
+ a([
223
+ l({ type: String, attribute: "label-allergies" })
224
+ ], t.prototype, "labelAllergies", 2);
225
+ a([
226
+ l({ type: String, attribute: "label-code-status" })
227
+ ], t.prototype, "labelCodeStatus", 2);
228
+ a([
229
+ l({
230
+ attribute: "enforce-identifier-rule",
231
+ reflect: !0,
232
+ converter: {
233
+ fromAttribute: (e) => e !== "false",
234
+ toAttribute: (e) => String(e)
235
+ }
236
+ })
237
+ ], t.prototype, "enforceIdentifierRule", 2);
238
+ a([
239
+ c()
240
+ ], t.prototype, "_identifierCount", 2);
241
+ a([
242
+ p('slot[name="name"]')
243
+ ], t.prototype, "_nameSlot", 2);
244
+ a([
245
+ p('slot[name="mrn"]')
246
+ ], t.prototype, "_mrnSlot", 2);
247
+ a([
248
+ p('slot[name="dob"]')
249
+ ], t.prototype, "_dobSlot", 2);
250
+ t = a([
251
+ v("hx-patient-banner")
252
+ ], t);
253
+ export {
254
+ t as H
255
+ };
256
+ //# sourceMappingURL=hx-patient-banner-BoJHddAL.js.map