@helixui/library 1.1.2 → 2.0.0-next.30

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 (691) hide show
  1. package/custom-elements.json +2962 -1965
  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 +10 -5
  19. package/dist/components/hx-alert/hx-alert.d.ts.map +1 -1
  20. package/dist/components/hx-alert/hx-alert.styles.d.ts.map +1 -1
  21. package/dist/components/hx-alert/index.js +1 -1
  22. package/dist/components/hx-avatar/hx-avatar.d.ts.map +1 -1
  23. package/dist/components/hx-avatar/hx-avatar.styles.d.ts.map +1 -1
  24. package/dist/components/hx-avatar/index.js +1 -1
  25. package/dist/components/hx-badge/hx-badge.d.ts.map +1 -1
  26. package/dist/components/hx-badge/hx-badge.styles.d.ts.map +1 -1
  27. package/dist/components/hx-badge/index.js +1 -1
  28. package/dist/components/hx-banner/hx-banner.d.ts +15 -5
  29. package/dist/components/hx-banner/hx-banner.d.ts.map +1 -1
  30. package/dist/components/hx-banner/hx-banner.styles.d.ts.map +1 -1
  31. package/dist/components/hx-banner/index.js +1 -1
  32. package/dist/components/hx-breadcrumb/hx-breadcrumb-item.d.ts +1 -0
  33. package/dist/components/hx-breadcrumb/hx-breadcrumb-item.d.ts.map +1 -1
  34. package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts +42 -11
  35. package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts.map +1 -1
  36. package/dist/components/hx-breadcrumb/index.js +1 -1
  37. package/dist/components/hx-button/hx-button.d.ts +22 -13
  38. package/dist/components/hx-button/hx-button.d.ts.map +1 -1
  39. package/dist/components/hx-button/hx-button.styles.d.ts.map +1 -1
  40. package/dist/components/hx-button/index.js +1 -1
  41. package/dist/components/hx-button-group/hx-button-group.d.ts +3 -6
  42. package/dist/components/hx-button-group/hx-button-group.d.ts.map +1 -1
  43. package/dist/components/hx-button-group/index.js +1 -1
  44. package/dist/components/hx-card/hx-card.d.ts +7 -7
  45. package/dist/components/hx-card/hx-card.d.ts.map +1 -1
  46. package/dist/components/hx-card/index.js +1 -1
  47. package/dist/components/hx-carousel/hx-carousel-item.d.ts.map +1 -1
  48. package/dist/components/hx-carousel/hx-carousel.d.ts +2 -2
  49. package/dist/components/hx-carousel/hx-carousel.d.ts.map +1 -1
  50. package/dist/components/hx-carousel/index.js +1 -1
  51. package/dist/components/hx-checkbox/hx-checkbox.d.ts +18 -18
  52. package/dist/components/hx-checkbox/hx-checkbox.d.ts.map +1 -1
  53. package/dist/components/hx-checkbox/hx-checkbox.styles.d.ts.map +1 -1
  54. package/dist/components/hx-checkbox/index.js +1 -1
  55. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts +8 -3
  56. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts.map +1 -1
  57. package/dist/components/hx-checkbox-group/index.js +1 -1
  58. package/dist/components/hx-clinical-status/hx-clinical-status.d.ts +134 -0
  59. package/dist/components/hx-clinical-status/hx-clinical-status.d.ts.map +1 -0
  60. package/dist/components/hx-clinical-status/hx-clinical-status.styles.d.ts +2 -0
  61. package/dist/components/hx-clinical-status/hx-clinical-status.styles.d.ts.map +1 -0
  62. package/dist/components/hx-clinical-status/index.d.ts +3 -0
  63. package/dist/components/hx-clinical-status/index.d.ts.map +1 -0
  64. package/dist/components/hx-clinical-status/index.js +5 -0
  65. package/dist/components/hx-clinical-status/index.js.map +1 -0
  66. package/dist/components/hx-code-snippet/hx-code-snippet.d.ts.map +1 -1
  67. package/dist/components/hx-code-snippet/hx-code-snippet.styles.d.ts.map +1 -1
  68. package/dist/components/hx-code-snippet/index.js +1 -1
  69. package/dist/components/hx-color-picker/color-utils.d.ts +27 -0
  70. package/dist/components/hx-color-picker/color-utils.d.ts.map +1 -0
  71. package/dist/components/hx-color-picker/hx-color-picker.d.ts +16 -4
  72. package/dist/components/hx-color-picker/hx-color-picker.d.ts.map +1 -1
  73. package/dist/components/hx-color-picker/index.js +1 -1
  74. package/dist/components/hx-combobox/hx-combobox.d.ts +9 -4
  75. package/dist/components/hx-combobox/hx-combobox.d.ts.map +1 -1
  76. package/dist/components/hx-combobox/hx-combobox.styles.d.ts.map +1 -1
  77. package/dist/components/hx-combobox/index.js +1 -1
  78. package/dist/components/hx-container/hx-container.d.ts.map +1 -1
  79. package/dist/components/hx-container/index.js +1 -1
  80. package/dist/components/hx-copy-button/hx-copy-button.d.ts +6 -1
  81. package/dist/components/hx-copy-button/hx-copy-button.d.ts.map +1 -1
  82. package/dist/components/hx-copy-button/index.js +1 -1
  83. package/dist/components/hx-counter/hx-counter.d.ts +20 -3
  84. package/dist/components/hx-counter/hx-counter.d.ts.map +1 -1
  85. package/dist/components/hx-counter/hx-counter.styles.d.ts.map +1 -1
  86. package/dist/components/hx-counter/index.js +1 -1
  87. package/dist/components/hx-data-table/hx-data-table.d.ts +8 -0
  88. package/dist/components/hx-data-table/hx-data-table.d.ts.map +1 -1
  89. package/dist/components/hx-data-table/hx-data-table.styles.d.ts.map +1 -1
  90. package/dist/components/hx-data-table/index.js +1 -1
  91. package/dist/components/hx-date-picker/hx-date-picker.d.ts +40 -3
  92. package/dist/components/hx-date-picker/hx-date-picker.d.ts.map +1 -1
  93. package/dist/components/hx-date-picker/hx-date-picker.styles.d.ts.map +1 -1
  94. package/dist/components/hx-date-picker/index.js +1 -1
  95. package/dist/components/hx-dialog/hx-dialog.d.ts +4 -1
  96. package/dist/components/hx-dialog/hx-dialog.d.ts.map +1 -1
  97. package/dist/components/hx-dialog/index.js +1 -1
  98. package/dist/components/hx-divider/hx-divider.d.ts.map +1 -1
  99. package/dist/components/hx-divider/index.js +1 -1
  100. package/dist/components/hx-drawer/hx-drawer.d.ts +5 -8
  101. package/dist/components/hx-drawer/hx-drawer.d.ts.map +1 -1
  102. package/dist/components/hx-drawer/hx-drawer.styles.d.ts.map +1 -1
  103. package/dist/components/hx-drawer/index.js +1 -1
  104. package/dist/components/hx-dropdown/hx-dropdown.d.ts +14 -1
  105. package/dist/components/hx-dropdown/hx-dropdown.d.ts.map +1 -1
  106. package/dist/components/hx-dropdown/index.js +1 -1
  107. package/dist/components/hx-field/hx-field.d.ts +1 -1
  108. package/dist/components/hx-field/hx-field.d.ts.map +1 -1
  109. package/dist/components/hx-field/index.js +1 -1
  110. package/dist/components/hx-field-label/hx-field-label.d.ts.map +1 -1
  111. package/dist/components/hx-field-label/hx-field-label.styles.d.ts.map +1 -1
  112. package/dist/components/hx-field-label/index.js +1 -1
  113. package/dist/components/hx-file-upload/hx-file-upload.d.ts +8 -9
  114. package/dist/components/hx-file-upload/hx-file-upload.d.ts.map +1 -1
  115. package/dist/components/hx-file-upload/index.js +1 -1
  116. package/dist/components/hx-form/hx-form.d.ts.map +1 -1
  117. package/dist/components/hx-form/index.js +1 -1
  118. package/dist/components/hx-format-date/hx-format-date.d.ts.map +1 -1
  119. package/dist/components/hx-format-date/index.js +1 -1
  120. package/dist/components/hx-grid/hx-grid.d.ts +5 -9
  121. package/dist/components/hx-grid/hx-grid.d.ts.map +1 -1
  122. package/dist/components/hx-grid/index.js +1 -1
  123. package/dist/components/hx-help-text/hx-help-text.d.ts.map +1 -1
  124. package/dist/components/hx-help-text/index.js +1 -1
  125. package/dist/components/hx-icon/hx-icon.d.ts.map +1 -1
  126. package/dist/components/hx-icon/index.js +1 -1
  127. package/dist/components/hx-icon-button/hx-icon-button.d.ts +4 -3
  128. package/dist/components/hx-icon-button/hx-icon-button.d.ts.map +1 -1
  129. package/dist/components/hx-icon-button/index.js +1 -1
  130. package/dist/components/hx-image/hx-image.d.ts.map +1 -1
  131. package/dist/components/hx-image/index.js +1 -1
  132. package/dist/components/hx-link/hx-link.d.ts +1 -1
  133. package/dist/components/hx-link/hx-link.d.ts.map +1 -1
  134. package/dist/components/hx-link/hx-link.styles.d.ts.map +1 -1
  135. package/dist/components/hx-link/index.js +1 -1
  136. package/dist/components/hx-list/hx-list-item.d.ts.map +1 -1
  137. package/dist/components/hx-list/hx-list.d.ts.map +1 -1
  138. package/dist/components/hx-list/index.js +1 -1
  139. package/dist/components/hx-menu/hx-menu-divider.d.ts.map +1 -1
  140. package/dist/components/hx-menu/hx-menu-item.d.ts +5 -0
  141. package/dist/components/hx-menu/hx-menu-item.d.ts.map +1 -1
  142. package/dist/components/hx-menu/hx-menu.d.ts +1 -0
  143. package/dist/components/hx-menu/hx-menu.d.ts.map +1 -1
  144. package/dist/components/hx-menu/hx-menu.styles.d.ts.map +1 -1
  145. package/dist/components/hx-menu/index.js +1 -1
  146. package/dist/components/hx-meter/hx-meter.d.ts +2 -2
  147. package/dist/components/hx-meter/hx-meter.d.ts.map +1 -1
  148. package/dist/components/hx-meter/index.js +1 -1
  149. package/dist/components/hx-nav/hx-nav.d.ts +10 -0
  150. package/dist/components/hx-nav/hx-nav.d.ts.map +1 -1
  151. package/dist/components/hx-nav/index.js +1 -1
  152. package/dist/components/hx-number-input/hx-number-input.d.ts +4 -3
  153. package/dist/components/hx-number-input/hx-number-input.d.ts.map +1 -1
  154. package/dist/components/hx-number-input/index.js +1 -1
  155. package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts +3 -3
  156. package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts.map +1 -1
  157. package/dist/components/hx-overflow-menu/hx-overflow-menu.styles.d.ts.map +1 -1
  158. package/dist/components/hx-overflow-menu/index.js +1 -1
  159. package/dist/components/hx-pagination/hx-pagination.d.ts +8 -0
  160. package/dist/components/hx-pagination/hx-pagination.d.ts.map +1 -1
  161. package/dist/components/hx-pagination/hx-pagination.styles.d.ts.map +1 -1
  162. package/dist/components/hx-pagination/index.js +1 -1
  163. package/dist/components/hx-patient-banner/hx-patient-banner.d.ts +113 -0
  164. package/dist/components/hx-patient-banner/hx-patient-banner.d.ts.map +1 -0
  165. package/dist/components/hx-patient-banner/hx-patient-banner.styles.d.ts +2 -0
  166. package/dist/components/hx-patient-banner/hx-patient-banner.styles.d.ts.map +1 -0
  167. package/dist/components/hx-patient-banner/index.d.ts +3 -0
  168. package/dist/components/hx-patient-banner/index.d.ts.map +1 -0
  169. package/dist/components/hx-patient-banner/index.js +5 -0
  170. package/dist/components/hx-patient-banner/index.js.map +1 -0
  171. package/dist/components/hx-phi-field/hx-phi-field.d.ts +97 -0
  172. package/dist/components/hx-phi-field/hx-phi-field.d.ts.map +1 -0
  173. package/dist/components/hx-phi-field/hx-phi-field.styles.d.ts +2 -0
  174. package/dist/components/hx-phi-field/hx-phi-field.styles.d.ts.map +1 -0
  175. package/dist/components/hx-phi-field/index.d.ts +3 -0
  176. package/dist/components/hx-phi-field/index.d.ts.map +1 -0
  177. package/dist/components/hx-phi-field/index.js +5 -0
  178. package/dist/components/hx-phi-field/index.js.map +1 -0
  179. package/dist/components/hx-popover/hx-popover.d.ts +25 -9
  180. package/dist/components/hx-popover/hx-popover.d.ts.map +1 -1
  181. package/dist/components/hx-popover/index.js +1 -1
  182. package/dist/components/hx-popup/hx-popup.d.ts +5 -8
  183. package/dist/components/hx-popup/hx-popup.d.ts.map +1 -1
  184. package/dist/components/hx-popup/index.js +1 -1
  185. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts +2 -0
  186. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts.map +1 -1
  187. package/dist/components/hx-progress-bar/hx-progress-bar.styles.d.ts.map +1 -1
  188. package/dist/components/hx-progress-bar/index.js +1 -1
  189. package/dist/components/hx-progress-ring/hx-progress-ring.d.ts.map +1 -1
  190. package/dist/components/hx-progress-ring/index.js +1 -1
  191. package/dist/components/hx-prose/hx-prose.d.ts +1 -0
  192. package/dist/components/hx-prose/hx-prose.d.ts.map +1 -1
  193. package/dist/components/hx-radio-group/hx-radio-group.d.ts +3 -7
  194. package/dist/components/hx-radio-group/hx-radio-group.d.ts.map +1 -1
  195. package/dist/components/hx-radio-group/hx-radio.d.ts.map +1 -1
  196. package/dist/components/hx-radio-group/hx-radio.styles.d.ts.map +1 -1
  197. package/dist/components/hx-radio-group/index.js +1 -1
  198. package/dist/components/hx-rating/hx-rating.d.ts +3 -3
  199. package/dist/components/hx-rating/hx-rating.d.ts.map +1 -1
  200. package/dist/components/hx-rating/hx-rating.styles.d.ts.map +1 -1
  201. package/dist/components/hx-rating/index.js +1 -1
  202. package/dist/components/hx-select/hx-select.d.ts +17 -11
  203. package/dist/components/hx-select/hx-select.d.ts.map +1 -1
  204. package/dist/components/hx-select/hx-select.styles.d.ts.map +1 -1
  205. package/dist/components/hx-select/index.js +1 -1
  206. package/dist/components/hx-side-nav/hx-nav-item.d.ts +12 -0
  207. package/dist/components/hx-side-nav/hx-nav-item.d.ts.map +1 -1
  208. package/dist/components/hx-side-nav/hx-nav-item.styles.d.ts.map +1 -1
  209. package/dist/components/hx-side-nav/hx-side-nav.d.ts.map +1 -1
  210. package/dist/components/hx-side-nav/hx-side-nav.styles.d.ts.map +1 -1
  211. package/dist/components/hx-side-nav/index.js +1 -1
  212. package/dist/components/hx-skeleton/hx-skeleton.d.ts +2 -2
  213. package/dist/components/hx-skeleton/hx-skeleton.d.ts.map +1 -1
  214. package/dist/components/hx-skeleton/index.js +1 -1
  215. package/dist/components/hx-slider/hx-slider.d.ts +5 -8
  216. package/dist/components/hx-slider/hx-slider.d.ts.map +1 -1
  217. package/dist/components/hx-slider/hx-slider.styles.d.ts.map +1 -1
  218. package/dist/components/hx-slider/index.js +1 -1
  219. package/dist/components/hx-spinner/hx-spinner.d.ts +14 -1
  220. package/dist/components/hx-spinner/hx-spinner.d.ts.map +1 -1
  221. package/dist/components/hx-spinner/hx-spinner.styles.d.ts.map +1 -1
  222. package/dist/components/hx-spinner/index.js +1 -1
  223. package/dist/components/hx-split-button/hx-split-button.d.ts +10 -4
  224. package/dist/components/hx-split-button/hx-split-button.d.ts.map +1 -1
  225. package/dist/components/hx-split-button/hx-split-button.styles.d.ts.map +1 -1
  226. package/dist/components/hx-split-button/index.js +1 -1
  227. package/dist/components/hx-split-panel/hx-split-panel.d.ts.map +1 -1
  228. package/dist/components/hx-split-panel/hx-split-panel.styles.d.ts.map +1 -1
  229. package/dist/components/hx-split-panel/index.js +1 -1
  230. package/dist/components/hx-stack/hx-stack.d.ts.map +1 -1
  231. package/dist/components/hx-stack/index.js +1 -1
  232. package/dist/components/hx-stat/hx-stat.d.ts +7 -2
  233. package/dist/components/hx-stat/hx-stat.d.ts.map +1 -1
  234. package/dist/components/hx-stat/index.js +1 -1
  235. package/dist/components/hx-status-indicator/hx-status-indicator.d.ts +19 -3
  236. package/dist/components/hx-status-indicator/hx-status-indicator.d.ts.map +1 -1
  237. package/dist/components/hx-status-indicator/hx-status-indicator.styles.d.ts.map +1 -1
  238. package/dist/components/hx-status-indicator/index.js +1 -1
  239. package/dist/components/hx-steps/hx-step.d.ts +7 -0
  240. package/dist/components/hx-steps/hx-step.d.ts.map +1 -1
  241. package/dist/components/hx-steps/hx-step.styles.d.ts.map +1 -1
  242. package/dist/components/hx-steps/hx-steps.d.ts.map +1 -1
  243. package/dist/components/hx-steps/index.js +1 -1
  244. package/dist/components/hx-structured-list/hx-structured-list.d.ts +10 -3
  245. package/dist/components/hx-structured-list/hx-structured-list.d.ts.map +1 -1
  246. package/dist/components/hx-structured-list/index.js +1 -1
  247. package/dist/components/hx-style-scope/hx-style-scope.d.ts +71 -0
  248. package/dist/components/hx-style-scope/hx-style-scope.d.ts.map +1 -0
  249. package/dist/components/hx-style-scope/hx-style-scope.styles.d.ts +10 -0
  250. package/dist/components/hx-style-scope/hx-style-scope.styles.d.ts.map +1 -0
  251. package/dist/components/hx-style-scope/index.d.ts +2 -0
  252. package/dist/components/hx-style-scope/index.d.ts.map +1 -0
  253. package/dist/components/hx-style-scope/index.js +5 -0
  254. package/dist/components/hx-style-scope/index.js.map +1 -0
  255. package/dist/components/hx-switch/hx-switch.d.ts +4 -4
  256. package/dist/components/hx-switch/hx-switch.d.ts.map +1 -1
  257. package/dist/components/hx-switch/hx-switch.styles.d.ts.map +1 -1
  258. package/dist/components/hx-switch/index.js +1 -1
  259. package/dist/components/hx-table/hx-table.d.ts +1 -0
  260. package/dist/components/hx-table/hx-table.d.ts.map +1 -1
  261. package/dist/components/hx-table/hx-tbody.d.ts.map +1 -1
  262. package/dist/components/hx-table/hx-td.d.ts.map +1 -1
  263. package/dist/components/hx-table/hx-tfoot.d.ts.map +1 -1
  264. package/dist/components/hx-table/hx-th.d.ts.map +1 -1
  265. package/dist/components/hx-table/hx-thead.d.ts.map +1 -1
  266. package/dist/components/hx-table/hx-tr.d.ts.map +1 -1
  267. package/dist/components/hx-table/index.js +1 -1
  268. package/dist/components/hx-tabs/hx-tab-panel.d.ts.map +1 -1
  269. package/dist/components/hx-tabs/hx-tab-panel.styles.d.ts.map +1 -1
  270. package/dist/components/hx-tabs/hx-tab.d.ts +1 -0
  271. package/dist/components/hx-tabs/hx-tab.d.ts.map +1 -1
  272. package/dist/components/hx-tabs/hx-tab.styles.d.ts.map +1 -1
  273. package/dist/components/hx-tabs/hx-tabs.d.ts +12 -2
  274. package/dist/components/hx-tabs/hx-tabs.d.ts.map +1 -1
  275. package/dist/components/hx-tabs/index.js +1 -1
  276. package/dist/components/hx-tag/hx-tag.d.ts.map +1 -1
  277. package/dist/components/hx-tag/hx-tag.styles.d.ts.map +1 -1
  278. package/dist/components/hx-tag/index.js +1 -1
  279. package/dist/components/hx-text/hx-text.d.ts.map +1 -1
  280. package/dist/components/hx-text/index.js +1 -1
  281. package/dist/components/hx-text-input/hx-text-input.d.ts +16 -15
  282. package/dist/components/hx-text-input/hx-text-input.d.ts.map +1 -1
  283. package/dist/components/hx-text-input/hx-text-input.styles.d.ts.map +1 -1
  284. package/dist/components/hx-text-input/index.js +1 -1
  285. package/dist/components/hx-textarea/hx-textarea.d.ts +4 -4
  286. package/dist/components/hx-textarea/hx-textarea.d.ts.map +1 -1
  287. package/dist/components/hx-textarea/hx-textarea.styles.d.ts.map +1 -1
  288. package/dist/components/hx-textarea/index.js +1 -1
  289. package/dist/components/hx-theme/hx-theme.d.ts +82 -3
  290. package/dist/components/hx-theme/hx-theme.d.ts.map +1 -1
  291. package/dist/components/hx-theme/index.js +1 -1
  292. package/dist/components/hx-time-picker/hx-time-picker.d.ts +6 -1
  293. package/dist/components/hx-time-picker/hx-time-picker.d.ts.map +1 -1
  294. package/dist/components/hx-time-picker/index.js +1 -1
  295. package/dist/components/hx-toast/hx-toast-stack.d.ts +1 -1
  296. package/dist/components/hx-toast/hx-toast-stack.d.ts.map +1 -1
  297. package/dist/components/hx-toast/hx-toast.d.ts +9 -5
  298. package/dist/components/hx-toast/hx-toast.d.ts.map +1 -1
  299. package/dist/components/hx-toast/hx-toast.styles.d.ts.map +1 -1
  300. package/dist/components/hx-toast/index.js +1 -1
  301. package/dist/components/hx-toast/toast-factory.d.ts.map +1 -1
  302. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts +4 -3
  303. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts.map +1 -1
  304. package/dist/components/hx-toggle-button/hx-toggle-button.styles.d.ts.map +1 -1
  305. package/dist/components/hx-toggle-button/index.js +1 -1
  306. package/dist/components/hx-tooltip/hx-tooltip.d.ts +1 -2
  307. package/dist/components/hx-tooltip/hx-tooltip.d.ts.map +1 -1
  308. package/dist/components/hx-tooltip/index.js +1 -1
  309. package/dist/components/hx-top-nav/hx-top-nav.d.ts.map +1 -1
  310. package/dist/components/hx-top-nav/index.js +1 -1
  311. package/dist/components/hx-tree-view/hx-tree-item.d.ts +12 -0
  312. package/dist/components/hx-tree-view/hx-tree-item.d.ts.map +1 -1
  313. package/dist/components/hx-tree-view/hx-tree-view.d.ts +27 -2
  314. package/dist/components/hx-tree-view/hx-tree-view.d.ts.map +1 -1
  315. package/dist/components/hx-tree-view/hx-tree-view.styles.d.ts.map +1 -1
  316. package/dist/components/hx-tree-view/index.js +1 -1
  317. package/dist/components/hx-visually-hidden/hx-visually-hidden.d.ts.map +1 -1
  318. package/dist/components/hx-visually-hidden/index.js +1 -1
  319. package/dist/controllers/helix-audit-controller.d.ts +71 -0
  320. package/dist/controllers/helix-audit-controller.d.ts.map +1 -0
  321. package/dist/css/helix-all.css +9743 -0
  322. package/dist/css/helix-core.css +1839 -0
  323. package/dist/css/helix-data.css +639 -0
  324. package/dist/css/helix-feedback.css +1268 -0
  325. package/dist/css/helix-forms.css +2525 -0
  326. package/dist/css/helix-layout.css +380 -0
  327. package/dist/css/helix-media.css +213 -0
  328. package/dist/css/helix-navigation.css +1131 -0
  329. package/dist/css/helix-overlay.css +643 -0
  330. package/dist/css/helix-tokens.css +432 -0
  331. package/dist/css/helix-utility.css +633 -0
  332. package/dist/css/hx-accordion.css +10 -0
  333. package/dist/css/hx-action-bar.css +117 -0
  334. package/dist/css/hx-alert.css +213 -0
  335. package/dist/css/hx-avatar.css +134 -0
  336. package/dist/css/hx-badge.css +178 -0
  337. package/dist/css/hx-banner.css +203 -0
  338. package/dist/css/hx-breadcrumb.css +36 -0
  339. package/dist/css/hx-button-group.css +91 -0
  340. package/dist/css/hx-button.css +296 -0
  341. package/dist/css/hx-card.css +161 -0
  342. package/dist/css/hx-carousel.css +211 -0
  343. package/dist/css/hx-checkbox-group.css +77 -0
  344. package/dist/css/hx-checkbox.css +219 -0
  345. package/dist/css/hx-clinical-status.css +248 -0
  346. package/dist/css/hx-code-snippet.css +179 -0
  347. package/dist/css/hx-color-picker.css +2 -0
  348. package/dist/css/hx-combobox.css +2 -0
  349. package/dist/css/hx-container.css +82 -0
  350. package/dist/css/hx-copy-button.css +121 -0
  351. package/dist/css/hx-counter.css +51 -0
  352. package/dist/css/hx-data-table.css +207 -0
  353. package/dist/css/hx-date-picker.css +2 -0
  354. package/dist/css/hx-dialog.css +190 -0
  355. package/dist/css/hx-divider.css +87 -0
  356. package/dist/css/hx-drawer.css +262 -0
  357. package/dist/css/hx-dropdown.css +46 -0
  358. package/dist/css/hx-field-label.css +38 -0
  359. package/dist/css/hx-field.css +119 -0
  360. package/dist/css/hx-file-upload.css +241 -0
  361. package/dist/css/hx-form.css +2 -0
  362. package/dist/css/hx-format-date.css +10 -0
  363. package/dist/css/hx-grid.css +14 -0
  364. package/dist/css/hx-help-text.css +50 -0
  365. package/dist/css/hx-icon-button.css +152 -0
  366. package/dist/css/hx-icon.css +73 -0
  367. package/dist/css/hx-image.css +41 -0
  368. package/dist/css/hx-link.css +105 -0
  369. package/dist/css/hx-list.css +48 -0
  370. package/dist/css/hx-menu.css +23 -0
  371. package/dist/css/hx-meter.css +113 -0
  372. package/dist/css/hx-nav.css +242 -0
  373. package/dist/css/hx-number-input.css +246 -0
  374. package/dist/css/hx-overflow-menu.css +133 -0
  375. package/dist/css/hx-pagination.css +193 -0
  376. package/dist/css/hx-patient-banner.css +139 -0
  377. package/dist/css/hx-phi-field.css +97 -0
  378. package/dist/css/hx-popover.css +61 -0
  379. package/dist/css/hx-popup.css +31 -0
  380. package/dist/css/hx-progress-bar.css +133 -0
  381. package/dist/css/hx-progress-ring.css +142 -0
  382. package/dist/css/hx-prose.css +2 -0
  383. package/dist/css/hx-radio-group.css +77 -0
  384. package/dist/css/hx-rating.css +96 -0
  385. package/dist/css/hx-select.css +295 -0
  386. package/dist/css/hx-side-nav.css +149 -0
  387. package/dist/css/hx-skeleton.css +82 -0
  388. package/dist/css/hx-slider.css +287 -0
  389. package/dist/css/hx-spinner.css +116 -0
  390. package/dist/css/hx-split-button.css +309 -0
  391. package/dist/css/hx-split-panel.css +168 -0
  392. package/dist/css/hx-stack.css +104 -0
  393. package/dist/css/hx-stat.css +106 -0
  394. package/dist/css/hx-status-indicator.css +126 -0
  395. package/dist/css/hx-steps.css +52 -0
  396. package/dist/css/hx-structured-list.css +75 -0
  397. package/dist/css/hx-style-scope.css +4 -0
  398. package/dist/css/hx-switch.css +169 -0
  399. package/dist/css/hx-table.css +128 -0
  400. package/dist/css/hx-tabs.css +76 -0
  401. package/dist/css/hx-tag.css +146 -0
  402. package/dist/css/hx-text-input.css +214 -0
  403. package/dist/css/hx-text.css +149 -0
  404. package/dist/css/hx-textarea.css +180 -0
  405. package/dist/css/hx-theme.css +23 -0
  406. package/dist/css/hx-time-picker.css +2 -0
  407. package/dist/css/hx-toast.css +230 -0
  408. package/dist/css/hx-toggle-button.css +207 -0
  409. package/dist/css/hx-tooltip.css +51 -0
  410. package/dist/css/hx-top-nav.css +203 -0
  411. package/dist/css/hx-tree-view.css +22 -0
  412. package/dist/css/hx-visually-hidden.css +26 -0
  413. package/dist/css/index.css +84 -0
  414. package/dist/css/manifest.json +2704 -0
  415. package/dist/index.d.ts +15 -9
  416. package/dist/index.d.ts.map +1 -1
  417. package/dist/index.js +268 -176
  418. package/dist/index.js.map +1 -1
  419. package/dist/mixins/FocusMixin.d.ts +49 -0
  420. package/dist/mixins/FocusMixin.d.ts.map +1 -0
  421. package/dist/mixins/FormMixin.d.ts +69 -0
  422. package/dist/mixins/FormMixin.d.ts.map +1 -0
  423. package/dist/mixins/aria-delegation.d.ts +97 -0
  424. package/dist/mixins/aria-delegation.d.ts.map +1 -0
  425. package/dist/mixins/index.d.ts +5 -0
  426. package/dist/mixins/index.d.ts.map +1 -0
  427. package/dist/shared/FormMixin-Bjvw20G5.js +88 -0
  428. package/dist/shared/FormMixin-Bjvw20G5.js.map +1 -0
  429. package/dist/shared/aria-delegation-CBP9eQ0M.js +107 -0
  430. package/dist/shared/aria-delegation-CBP9eQ0M.js.map +1 -0
  431. package/dist/shared/document-token-adoption-Dym9ALA4.js +15 -0
  432. package/dist/shared/document-token-adoption-Dym9ALA4.js.map +1 -0
  433. package/dist/shared/{hx-accordion-D1kFhdeQ.js → hx-accordion-Cvs-uzZq.js} +86 -58
  434. package/dist/shared/hx-accordion-Cvs-uzZq.js.map +1 -0
  435. package/dist/shared/{hx-action-bar-D4bulGQP.js → hx-action-bar-B2BNlKQv.js} +34 -35
  436. package/dist/shared/hx-action-bar-B2BNlKQv.js.map +1 -0
  437. package/dist/shared/{hx-alert-CSxCF2rr.js → hx-alert-CnDlZO6m.js} +38 -34
  438. package/dist/shared/hx-alert-CnDlZO6m.js.map +1 -0
  439. package/dist/shared/{hx-avatar-Cun-O99h.js → hx-avatar-C68g1G2e.js} +32 -15
  440. package/dist/shared/hx-avatar-C68g1G2e.js.map +1 -0
  441. package/dist/shared/{hx-badge-CsFd2xtw.js → hx-badge-D5vy_5BO.js} +49 -40
  442. package/dist/shared/hx-badge-D5vy_5BO.js.map +1 -0
  443. package/dist/shared/{hx-banner-BTV-X2xF.js → hx-banner-Ccif-GaB.js} +95 -60
  444. package/dist/shared/hx-banner-Ccif-GaB.js.map +1 -0
  445. package/dist/shared/{hx-breadcrumb-item-4IwaLgaO.js → hx-breadcrumb-item-DhxDZI3r.js} +92 -89
  446. package/dist/shared/hx-breadcrumb-item-DhxDZI3r.js.map +1 -0
  447. package/dist/shared/{hx-button-7k-KeCYU.js → hx-button-BF3VwcOJ.js} +128 -63
  448. package/dist/shared/hx-button-BF3VwcOJ.js.map +1 -0
  449. package/dist/shared/{hx-button-group-CWjWv-wS.js → hx-button-group-B8u25JjV.js} +9 -9
  450. package/dist/shared/hx-button-group-B8u25JjV.js.map +1 -0
  451. package/dist/shared/{hx-card-0hT3G5hi.js → hx-card-Dps4jvG9.js} +34 -34
  452. package/dist/shared/hx-card-Dps4jvG9.js.map +1 -0
  453. package/dist/shared/{hx-carousel-item-DgeYyYZJ.js → hx-carousel-item-Dmo9pGFm.js} +25 -25
  454. package/dist/shared/hx-carousel-item-Dmo9pGFm.js.map +1 -0
  455. package/dist/shared/{hx-checkbox-BvjO-O41.js → hx-checkbox-99zyEKj7.js} +67 -70
  456. package/dist/shared/hx-checkbox-99zyEKj7.js.map +1 -0
  457. package/dist/shared/{hx-checkbox-group-Z5VvWzcj.js → hx-checkbox-group-J2CGHDwY.js} +48 -42
  458. package/dist/shared/hx-checkbox-group-J2CGHDwY.js.map +1 -0
  459. package/dist/shared/hx-clinical-status-CGx5q5PL.js +469 -0
  460. package/dist/shared/hx-clinical-status-CGx5q5PL.js.map +1 -0
  461. package/dist/shared/{hx-code-snippet-DqzPkH4K.js → hx-code-snippet-vAzJjm2O.js} +57 -48
  462. package/dist/shared/hx-code-snippet-vAzJjm2O.js.map +1 -0
  463. package/dist/shared/{hx-color-picker-Da8z6AlQ.js → hx-color-picker-CzMu9Fzw.js} +153 -137
  464. package/dist/shared/hx-color-picker-CzMu9Fzw.js.map +1 -0
  465. package/dist/shared/{hx-combobox-CivfelTS.js → hx-combobox-Dhw33U40.js} +17 -17
  466. package/dist/shared/hx-combobox-Dhw33U40.js.map +1 -0
  467. package/dist/shared/{hx-container-DLUKnTi9.js → hx-container-Dz4v6FSd.js} +15 -15
  468. package/dist/shared/hx-container-Dz4v6FSd.js.map +1 -0
  469. package/dist/shared/{hx-copy-button--0dymSvw.js → hx-copy-button-Dcul7VwZ.js} +52 -45
  470. package/dist/shared/hx-copy-button-Dcul7VwZ.js.map +1 -0
  471. package/dist/shared/hx-counter-czWWvciz.js +185 -0
  472. package/dist/shared/hx-counter-czWWvciz.js.map +1 -0
  473. package/dist/shared/{hx-data-table-BWvd5NNx.js → hx-data-table-CAVgT4JG.js} +89 -53
  474. package/dist/shared/hx-data-table-CAVgT4JG.js.map +1 -0
  475. package/dist/shared/{hx-date-picker-6voxxxNE.js → hx-date-picker-Be8lTTO7.js} +105 -92
  476. package/dist/shared/hx-date-picker-Be8lTTO7.js.map +1 -0
  477. package/dist/shared/{hx-dialog-DkUSnVgw.js → hx-dialog-DTGX2FbP.js} +98 -89
  478. package/dist/shared/hx-dialog-DTGX2FbP.js.map +1 -0
  479. package/dist/shared/{hx-divider-DNNs4e8q.js → hx-divider-BJjarZ9z.js} +15 -15
  480. package/dist/shared/hx-divider-BJjarZ9z.js.map +1 -0
  481. package/dist/shared/{hx-drawer-CJcRZcns.js → hx-drawer-C5qI7jf1.js} +87 -47
  482. package/dist/shared/hx-drawer-C5qI7jf1.js.map +1 -0
  483. package/dist/shared/{hx-dropdown-Bo0KTM1A.js → hx-dropdown-BxNnUDyD.js} +56 -41
  484. package/dist/shared/hx-dropdown-BxNnUDyD.js.map +1 -0
  485. package/dist/shared/{hx-field-3MmzJ4kZ.js → hx-field-J1IUbQ8n.js} +21 -21
  486. package/dist/shared/hx-field-J1IUbQ8n.js.map +1 -0
  487. package/dist/shared/{hx-field-label-Bg-EWvqF.js → hx-field-label-DhVdkhCN.js} +11 -14
  488. package/dist/shared/hx-field-label-DhVdkhCN.js.map +1 -0
  489. package/dist/shared/{hx-file-upload-ByjAgfNy.js → hx-file-upload-79nMhnM_.js} +79 -88
  490. package/dist/shared/hx-file-upload-79nMhnM_.js.map +1 -0
  491. package/dist/shared/{hx-form-BpS6v3Iu.js → hx-form-fJE-FJQV.js} +36 -32
  492. package/dist/shared/{hx-form-BpS6v3Iu.js.map → hx-form-fJE-FJQV.js.map} +1 -1
  493. package/dist/shared/{hx-format-date-BdnWV2kX.js → hx-format-date-BMukpO2t.js} +19 -17
  494. package/dist/shared/hx-format-date-BMukpO2t.js.map +1 -0
  495. package/dist/shared/{hx-grid-gEjuF0cR.js → hx-grid-CO6JZ6Kn.js} +12 -12
  496. package/dist/shared/hx-grid-CO6JZ6Kn.js.map +1 -0
  497. package/dist/shared/{hx-help-text-BAcEGRUE.js → hx-help-text-CYGvBLET.js} +13 -13
  498. package/dist/shared/hx-help-text-CYGvBLET.js.map +1 -0
  499. package/dist/shared/{hx-icon-CP6OnLoM.js → hx-icon-C1hDsw-b.js} +15 -15
  500. package/dist/shared/hx-icon-C1hDsw-b.js.map +1 -0
  501. package/dist/shared/{hx-icon-button-DzH_bRtC.js → hx-icon-button-DOWKUs0-.js} +10 -10
  502. package/dist/shared/hx-icon-button-DOWKUs0-.js.map +1 -0
  503. package/dist/shared/{hx-image-C6pGiI6c.js → hx-image-BqABFHGZ.js} +21 -21
  504. package/dist/shared/hx-image-BqABFHGZ.js.map +1 -0
  505. package/dist/shared/{hx-link-Tmk_YPvW.js → hx-link-CAFRuAKJ.js} +27 -25
  506. package/dist/shared/hx-link-CAFRuAKJ.js.map +1 -0
  507. package/dist/shared/{hx-list-DwInEX2H.js → hx-list-zbgO-9Xe.js} +12 -12
  508. package/dist/shared/hx-list-zbgO-9Xe.js.map +1 -0
  509. package/dist/shared/{hx-menu-divider-DR4G_rqw.js → hx-menu-divider-B1TIKAaq.js} +50 -30
  510. package/dist/shared/hx-menu-divider-B1TIKAaq.js.map +1 -0
  511. package/dist/shared/{hx-meter-uXkTZq-W.js → hx-meter-BWNeWrg2.js} +18 -18
  512. package/dist/shared/hx-meter-BWNeWrg2.js.map +1 -0
  513. package/dist/shared/{hx-nav-3JsN2Oak.js → hx-nav-DqNzqH2s.js} +119 -107
  514. package/dist/shared/hx-nav-DqNzqH2s.js.map +1 -0
  515. package/dist/shared/{hx-nav-item-D3EJatzc.js → hx-nav-item-D-9uG-Tt.js} +181 -115
  516. package/dist/shared/hx-nav-item-D-9uG-Tt.js.map +1 -0
  517. package/dist/shared/{hx-number-input-CIpL2BEh.js → hx-number-input-D7Jczm0J.js} +42 -41
  518. package/dist/shared/hx-number-input-D7Jczm0J.js.map +1 -0
  519. package/dist/shared/{hx-overflow-menu-2kgOJ_ht.js → hx-overflow-menu-UvSgk7yV.js} +20 -16
  520. package/dist/shared/hx-overflow-menu-UvSgk7yV.js.map +1 -0
  521. package/dist/shared/{hx-pagination-Blt-fFqV.js → hx-pagination-DBovb97q.js} +91 -75
  522. package/dist/shared/hx-pagination-DBovb97q.js.map +1 -0
  523. package/dist/shared/hx-patient-banner-DLeU2pC2.js +297 -0
  524. package/dist/shared/hx-patient-banner-DLeU2pC2.js.map +1 -0
  525. package/dist/shared/hx-phi-field-BwlVKfHI.js +295 -0
  526. package/dist/shared/hx-phi-field-BwlVKfHI.js.map +1 -0
  527. package/dist/shared/{hx-popover-DxE67miP.js → hx-popover-DdjLdSr8.js} +96 -69
  528. package/dist/shared/hx-popover-DdjLdSr8.js.map +1 -0
  529. package/dist/shared/{hx-popup-Dg6n_PbY.js → hx-popup-DEYZKeH1.js} +15 -15
  530. package/dist/shared/hx-popup-DEYZKeH1.js.map +1 -0
  531. package/dist/shared/{hx-progress-bar-Dm_EHyng.js → hx-progress-bar-CdbFsimb.js} +44 -42
  532. package/dist/shared/hx-progress-bar-CdbFsimb.js.map +1 -0
  533. package/dist/shared/{hx-progress-ring-DpxBDD5d.js → hx-progress-ring-3YcGRxes.js} +8 -8
  534. package/dist/shared/hx-progress-ring-3YcGRxes.js.map +1 -0
  535. package/dist/shared/hx-prose-Ml_L2zje.js.map +1 -1
  536. package/dist/shared/{hx-radio-BywgVSEu.js → hx-radio-BCEpX1tj.js} +40 -39
  537. package/dist/shared/hx-radio-BCEpX1tj.js.map +1 -0
  538. package/dist/shared/{hx-rating-CUWBQ0fZ.js → hx-rating-BXnSN-Ln.js} +92 -96
  539. package/dist/shared/hx-rating-BXnSN-Ln.js.map +1 -0
  540. package/dist/shared/{hx-select-BwDwxk-M.js → hx-select-vzsOOYNx.js} +137 -98
  541. package/dist/shared/hx-select-vzsOOYNx.js.map +1 -0
  542. package/dist/shared/{hx-skeleton-BHvALyd7.js → hx-skeleton-Dikv9b7p.js} +6 -6
  543. package/dist/shared/hx-skeleton-Dikv9b7p.js.map +1 -0
  544. package/dist/shared/{hx-slider-D_0EKJyk.js → hx-slider-DnncjdOT.js} +31 -26
  545. package/dist/shared/hx-slider-DnncjdOT.js.map +1 -0
  546. package/dist/shared/{hx-spinner-DMn4SChS.js → hx-spinner-B52nJ4Vt.js} +15 -14
  547. package/dist/shared/hx-spinner-B52nJ4Vt.js.map +1 -0
  548. package/dist/shared/{hx-split-button-CypgLXw1.js → hx-split-button-BJHIszDb.js} +44 -35
  549. package/dist/shared/hx-split-button-BJHIszDb.js.map +1 -0
  550. package/dist/shared/{hx-split-panel-CV_Kr4EK.js → hx-split-panel-uNW9xrA3.js} +18 -15
  551. package/dist/shared/hx-split-panel-uNW9xrA3.js.map +1 -0
  552. package/dist/shared/{hx-stack-BStY1RmV.js → hx-stack-BHc4gVv_.js} +9 -9
  553. package/dist/shared/hx-stack-BHc4gVv_.js.map +1 -0
  554. package/dist/shared/{hx-stat-CHntLHJM.js → hx-stat-BfgKgBeq.js} +43 -35
  555. package/dist/shared/hx-stat-BfgKgBeq.js.map +1 -0
  556. package/dist/shared/{hx-status-indicator-C1BwEvUw.js → hx-status-indicator-C146uMF0.js} +81 -40
  557. package/dist/shared/hx-status-indicator-C146uMF0.js.map +1 -0
  558. package/dist/shared/{hx-step-BIVWSPxd.js → hx-step-C0Unvyen.js} +48 -84
  559. package/dist/shared/hx-step-C0Unvyen.js.map +1 -0
  560. package/dist/shared/{hx-structured-list-CMWllxGg.js → hx-structured-list-3R69RETR.js} +25 -22
  561. package/dist/shared/hx-structured-list-3R69RETR.js.map +1 -0
  562. package/dist/shared/hx-style-scope-D3dsKS58.js +126 -0
  563. package/dist/shared/hx-style-scope-D3dsKS58.js.map +1 -0
  564. package/dist/shared/{hx-switch-BgX8kuWt.js → hx-switch-BCNpbuk-.js} +14 -11
  565. package/dist/shared/hx-switch-BCNpbuk-.js.map +1 -0
  566. package/dist/shared/{hx-tab-panel-DhOq67jj.js → hx-tab-panel-D7BTBgDQ.js} +165 -126
  567. package/dist/shared/hx-tab-panel-D7BTBgDQ.js.map +1 -0
  568. package/dist/shared/{hx-tag-CzOTDcXI.js → hx-tag-C2E-6fJ3.js} +20 -19
  569. package/dist/shared/hx-tag-C2E-6fJ3.js.map +1 -0
  570. package/dist/shared/{hx-td-h6oeW6YC.js → hx-td-DWcp2XDO.js} +49 -46
  571. package/dist/shared/hx-td-DWcp2XDO.js.map +1 -0
  572. package/dist/shared/{hx-text-DTXjiviE.js → hx-text-DxyBxz25.js} +27 -27
  573. package/dist/shared/hx-text-DxyBxz25.js.map +1 -0
  574. package/dist/shared/hx-text-input-2LTGt0vQ.js +576 -0
  575. package/dist/shared/hx-text-input-2LTGt0vQ.js.map +1 -0
  576. package/dist/shared/{hx-textarea-BgX7rxyo.js → hx-textarea-BZspivFK.js} +23 -23
  577. package/dist/shared/hx-textarea-BZspivFK.js.map +1 -0
  578. package/dist/shared/hx-theme-J2YEpSIL.js +300 -0
  579. package/dist/shared/hx-theme-J2YEpSIL.js.map +1 -0
  580. package/dist/shared/{hx-time-picker-DmLu7WUC.js → hx-time-picker-CVrw4tju.js} +89 -88
  581. package/dist/shared/hx-time-picker-CVrw4tju.js.map +1 -0
  582. package/dist/shared/{hx-toggle-button-D1jpDvSA.js → hx-toggle-button-Ss7Gppx3.js} +14 -11
  583. package/dist/shared/hx-toggle-button-Ss7Gppx3.js.map +1 -0
  584. package/dist/shared/{hx-tooltip-kh7QFPKu.js → hx-tooltip-xRNjEX7_.js} +26 -21
  585. package/dist/shared/hx-tooltip-xRNjEX7_.js.map +1 -0
  586. package/dist/shared/{hx-top-nav-DYlnzDaU.js → hx-top-nav-28mxYGuj.js} +7 -7
  587. package/dist/shared/hx-top-nav-28mxYGuj.js.map +1 -0
  588. package/dist/shared/{hx-tree-item-BP6UF_H1.js → hx-tree-item-C-cRw_ZA.js} +170 -106
  589. package/dist/shared/hx-tree-item-C-cRw_ZA.js.map +1 -0
  590. package/dist/shared/{hx-visually-hidden-CCTQTjbR.js → hx-visually-hidden-D6Dv2l8l.js} +13 -13
  591. package/dist/shared/hx-visually-hidden-D6Dv2l8l.js.map +1 -0
  592. package/dist/shared/id-counter-JhvVCnjh.js +143 -0
  593. package/dist/shared/id-counter-JhvVCnjh.js.map +1 -0
  594. package/dist/shared/{toast-factory-DTy-qN8r.js → toast-factory-oPHbhMZI.js} +58 -46
  595. package/dist/shared/toast-factory-oPHbhMZI.js.map +1 -0
  596. package/dist/utilities/adoptedStylesheetRegistry.d.ts +47 -0
  597. package/dist/utilities/adoptedStylesheetRegistry.d.ts.map +1 -0
  598. package/dist/utilities/document-token-adoption.d.ts +10 -0
  599. package/dist/utilities/document-token-adoption.d.ts.map +1 -0
  600. package/dist/utilities/generateScopedSelectors.d.ts +30 -0
  601. package/dist/utilities/generateScopedSelectors.d.ts.map +1 -0
  602. package/dist/utilities/injectLightStyles.d.ts +37 -0
  603. package/dist/utilities/injectLightStyles.d.ts.map +1 -0
  604. package/dist/utilities/lightStyleRegistry.d.ts +41 -0
  605. package/dist/utilities/lightStyleRegistry.d.ts.map +1 -0
  606. package/dist/utilities/sheetManager.d.ts +62 -0
  607. package/dist/utilities/sheetManager.d.ts.map +1 -0
  608. package/dist/utils/contrast-checker.d.ts +86 -0
  609. package/dist/utils/contrast-checker.d.ts.map +1 -0
  610. package/dist/utils/token-merger.d.ts +24 -0
  611. package/dist/utils/token-merger.d.ts.map +1 -0
  612. package/fouc.css +37 -0
  613. package/package.json +28 -6
  614. package/dist/shared/hx-accordion-D1kFhdeQ.js.map +0 -1
  615. package/dist/shared/hx-action-bar-D4bulGQP.js.map +0 -1
  616. package/dist/shared/hx-alert-CSxCF2rr.js.map +0 -1
  617. package/dist/shared/hx-avatar-Cun-O99h.js.map +0 -1
  618. package/dist/shared/hx-badge-CsFd2xtw.js.map +0 -1
  619. package/dist/shared/hx-banner-BTV-X2xF.js.map +0 -1
  620. package/dist/shared/hx-breadcrumb-item-4IwaLgaO.js.map +0 -1
  621. package/dist/shared/hx-button-7k-KeCYU.js.map +0 -1
  622. package/dist/shared/hx-button-group-CWjWv-wS.js.map +0 -1
  623. package/dist/shared/hx-card-0hT3G5hi.js.map +0 -1
  624. package/dist/shared/hx-carousel-item-DgeYyYZJ.js.map +0 -1
  625. package/dist/shared/hx-checkbox-BvjO-O41.js.map +0 -1
  626. package/dist/shared/hx-checkbox-group-Z5VvWzcj.js.map +0 -1
  627. package/dist/shared/hx-code-snippet-DqzPkH4K.js.map +0 -1
  628. package/dist/shared/hx-color-picker-Da8z6AlQ.js.map +0 -1
  629. package/dist/shared/hx-combobox-CivfelTS.js.map +0 -1
  630. package/dist/shared/hx-container-DLUKnTi9.js.map +0 -1
  631. package/dist/shared/hx-copy-button--0dymSvw.js.map +0 -1
  632. package/dist/shared/hx-counter-Duf00H7p.js +0 -147
  633. package/dist/shared/hx-counter-Duf00H7p.js.map +0 -1
  634. package/dist/shared/hx-data-table-BWvd5NNx.js.map +0 -1
  635. package/dist/shared/hx-date-picker-6voxxxNE.js.map +0 -1
  636. package/dist/shared/hx-dialog-DkUSnVgw.js.map +0 -1
  637. package/dist/shared/hx-divider-DNNs4e8q.js.map +0 -1
  638. package/dist/shared/hx-drawer-CJcRZcns.js.map +0 -1
  639. package/dist/shared/hx-dropdown-Bo0KTM1A.js.map +0 -1
  640. package/dist/shared/hx-field-3MmzJ4kZ.js.map +0 -1
  641. package/dist/shared/hx-field-label-Bg-EWvqF.js.map +0 -1
  642. package/dist/shared/hx-file-upload-ByjAgfNy.js.map +0 -1
  643. package/dist/shared/hx-format-date-BdnWV2kX.js.map +0 -1
  644. package/dist/shared/hx-grid-gEjuF0cR.js.map +0 -1
  645. package/dist/shared/hx-help-text-BAcEGRUE.js.map +0 -1
  646. package/dist/shared/hx-icon-CP6OnLoM.js.map +0 -1
  647. package/dist/shared/hx-icon-button-DzH_bRtC.js.map +0 -1
  648. package/dist/shared/hx-image-C6pGiI6c.js.map +0 -1
  649. package/dist/shared/hx-link-Tmk_YPvW.js.map +0 -1
  650. package/dist/shared/hx-list-DwInEX2H.js.map +0 -1
  651. package/dist/shared/hx-menu-divider-DR4G_rqw.js.map +0 -1
  652. package/dist/shared/hx-meter-uXkTZq-W.js.map +0 -1
  653. package/dist/shared/hx-nav-3JsN2Oak.js.map +0 -1
  654. package/dist/shared/hx-nav-item-D3EJatzc.js.map +0 -1
  655. package/dist/shared/hx-number-input-CIpL2BEh.js.map +0 -1
  656. package/dist/shared/hx-overflow-menu-2kgOJ_ht.js.map +0 -1
  657. package/dist/shared/hx-pagination-Blt-fFqV.js.map +0 -1
  658. package/dist/shared/hx-popover-DxE67miP.js.map +0 -1
  659. package/dist/shared/hx-popup-Dg6n_PbY.js.map +0 -1
  660. package/dist/shared/hx-progress-bar-Dm_EHyng.js.map +0 -1
  661. package/dist/shared/hx-progress-ring-DpxBDD5d.js.map +0 -1
  662. package/dist/shared/hx-radio-BywgVSEu.js.map +0 -1
  663. package/dist/shared/hx-rating-CUWBQ0fZ.js.map +0 -1
  664. package/dist/shared/hx-select-BwDwxk-M.js.map +0 -1
  665. package/dist/shared/hx-skeleton-BHvALyd7.js.map +0 -1
  666. package/dist/shared/hx-slider-D_0EKJyk.js.map +0 -1
  667. package/dist/shared/hx-spinner-DMn4SChS.js.map +0 -1
  668. package/dist/shared/hx-split-button-CypgLXw1.js.map +0 -1
  669. package/dist/shared/hx-split-panel-CV_Kr4EK.js.map +0 -1
  670. package/dist/shared/hx-stack-BStY1RmV.js.map +0 -1
  671. package/dist/shared/hx-stat-CHntLHJM.js.map +0 -1
  672. package/dist/shared/hx-status-indicator-C1BwEvUw.js.map +0 -1
  673. package/dist/shared/hx-step-BIVWSPxd.js.map +0 -1
  674. package/dist/shared/hx-structured-list-CMWllxGg.js.map +0 -1
  675. package/dist/shared/hx-switch-BgX8kuWt.js.map +0 -1
  676. package/dist/shared/hx-tab-panel-DhOq67jj.js.map +0 -1
  677. package/dist/shared/hx-tag-CzOTDcXI.js.map +0 -1
  678. package/dist/shared/hx-td-h6oeW6YC.js.map +0 -1
  679. package/dist/shared/hx-text-DTXjiviE.js.map +0 -1
  680. package/dist/shared/hx-text-input-CqEdDHMU.js +0 -461
  681. package/dist/shared/hx-text-input-CqEdDHMU.js.map +0 -1
  682. package/dist/shared/hx-textarea-BgX7rxyo.js.map +0 -1
  683. package/dist/shared/hx-theme-6GDoUG8j.js +0 -176
  684. package/dist/shared/hx-theme-6GDoUG8j.js.map +0 -1
  685. package/dist/shared/hx-time-picker-DmLu7WUC.js.map +0 -1
  686. package/dist/shared/hx-toggle-button-D1jpDvSA.js.map +0 -1
  687. package/dist/shared/hx-tooltip-kh7QFPKu.js.map +0 -1
  688. package/dist/shared/hx-top-nav-DYlnzDaU.js.map +0 -1
  689. package/dist/shared/hx-tree-item-BP6UF_H1.js.map +0 -1
  690. package/dist/shared/hx-visually-hidden-CCTQTjbR.js.map +0 -1
  691. package/dist/shared/toast-factory-DTy-qN8r.js.map +0 -1
@@ -0,0 +1,576 @@
1
+ import { css as _, nothing as c, html as h } from "lit";
2
+ import "./document-token-adoption-Dym9ALA4.js";
3
+ import { property as s, query as v, state as u, customElement as m } from "lit/decorators.js";
4
+ import { classMap as f } from "lit/directives/class-map.js";
5
+ import { ifDefined as n } from "lit/directives/if-defined.js";
6
+ import { live as g } from "lit/directives/live.js";
7
+ import { F as b } from "./FormMixin-Bjvw20G5.js";
8
+ import { d as y } from "./dev-warn-YlwPHjtX.js";
9
+ import { c as S, H as w } from "./id-counter-JhvVCnjh.js";
10
+ var $ = Object.defineProperty, x = (e, t, a, l) => {
11
+ for (var o = void 0, d = e.length - 1, p; d >= 0; d--)
12
+ (p = e[d]) && (o = p(t, a, o) || o);
13
+ return o && $(t, a, o), o;
14
+ };
15
+ const I = (e) => {
16
+ class t extends e {
17
+ constructor() {
18
+ super(...arguments), this.focused = !1, this.focusedVisible = !1, this._focusPending = !1, this._lastInteractionWasPointer = !1, this._handleFocusIn = () => {
19
+ this.focused = !0, this.focusedVisible = !this._lastInteractionWasPointer;
20
+ }, this._handleFocusOut = () => {
21
+ this.focused = !1, this.focusedVisible = !1, this._lastInteractionWasPointer = !1;
22
+ }, this._handlePointerDown = () => {
23
+ this._lastInteractionWasPointer = !0;
24
+ }, this._handleKeyDown = () => {
25
+ this._lastInteractionWasPointer = !1;
26
+ };
27
+ }
28
+ /**
29
+ * Returns the inner focusable element that `focus()` and `blur()` will
30
+ * delegate to. Subclasses MUST override this getter.
31
+ *
32
+ * @returns The inner focusable element, or `null` if not yet rendered.
33
+ * @internal
34
+ */
35
+ get _focusableNode() {
36
+ return null;
37
+ }
38
+ /**
39
+ * Delegates focus to the inner focusable element.
40
+ * If the element has not yet rendered, queues the focus call for
41
+ * `firstUpdated`.
42
+ */
43
+ focus(l) {
44
+ const o = this._focusableNode;
45
+ o !== null ? o.focus(l) : this._focusPending = !0;
46
+ }
47
+ /** Delegates blur to the inner focusable element. */
48
+ blur() {
49
+ var l;
50
+ (l = this._focusableNode) == null || l.blur();
51
+ }
52
+ connectedCallback() {
53
+ super.connectedCallback(), this.addEventListener("focusin", this._handleFocusIn), this.addEventListener("focusout", this._handleFocusOut), this.addEventListener("pointerdown", this._handlePointerDown), this.addEventListener("keydown", this._handleKeyDown);
54
+ }
55
+ disconnectedCallback() {
56
+ super.disconnectedCallback(), this.removeEventListener("focusin", this._handleFocusIn), this.removeEventListener("focusout", this._handleFocusOut), this.removeEventListener("pointerdown", this._handlePointerDown), this.removeEventListener("keydown", this._handleKeyDown);
57
+ }
58
+ firstUpdated(l) {
59
+ super.firstUpdated(l), this.hasAttribute("autofocus") && this.focus(), this._focusPending && (this._focusPending = !1, this.focus());
60
+ }
61
+ }
62
+ return x([
63
+ s({ type: Boolean, reflect: !0 })
64
+ ], t.prototype, "focused"), x([
65
+ s({ type: Boolean, reflect: !0, attribute: "focused-visible" })
66
+ ], t.prototype, "focusedVisible"), t;
67
+ }, E = _`
68
+ :host {
69
+ display: block;
70
+ }
71
+
72
+ :host([disabled]) {
73
+ opacity: var(--hx-opacity-disabled, 0.5);
74
+ pointer-events: none;
75
+ }
76
+
77
+ /*
78
+ * Attribute-based focus hooks set by FocusMixin.
79
+ * :host([focused]) — fires whenever the component or any descendant has focus.
80
+ * :host([focused-visible]) — fires only for keyboard-initiated focus.
81
+ * These complement the :focus-within rules on .field__input-wrapper and are
82
+ * exposed as theming hooks for consumers who target the host element.
83
+ */
84
+ :host([focused]) .field__input-wrapper {
85
+ border-color: var(
86
+ --hx-input-focus-ring-color,
87
+ var(--hx-focus-ring-color, var(--hx-color-primary-400, #60a5fa))
88
+ );
89
+ box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
90
+ color-mix(
91
+ in srgb,
92
+ var(
93
+ --hx-input-focus-ring-color,
94
+ var(--hx-focus-ring-color, var(--hx-color-primary-400, #60a5fa))
95
+ )
96
+ calc(var(--hx-focus-ring-opacity, 0.25) * 100%),
97
+ transparent
98
+ );
99
+ }
100
+
101
+ :host([focused-visible]) .field__input-wrapper {
102
+ border-color: var(
103
+ --hx-input-focus-ring-color,
104
+ var(--hx-focus-ring-color, var(--hx-color-primary-400, #60a5fa))
105
+ );
106
+ box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
107
+ color-mix(
108
+ in srgb,
109
+ var(
110
+ --hx-input-focus-ring-color,
111
+ var(--hx-focus-ring-color, var(--hx-color-primary-400, #60a5fa))
112
+ )
113
+ calc(var(--hx-focus-ring-opacity, 0.25) * 100%),
114
+ transparent
115
+ );
116
+ }
117
+
118
+ * {
119
+ box-sizing: border-box;
120
+ }
121
+
122
+ .field {
123
+ display: flex;
124
+ flex-direction: column;
125
+ gap: var(--hx-space-1, 0.25rem);
126
+ font-family: var(--hx-input-font-family, var(--hx-font-family-sans, sans-serif));
127
+ }
128
+
129
+ /* ─── Label ─── */
130
+
131
+ .field__label-wrapper {
132
+ display: contents;
133
+ }
134
+
135
+ .field__label {
136
+ display: flex;
137
+ align-items: baseline;
138
+ gap: var(--hx-space-1, 0.25rem);
139
+ font-size: var(--hx-font-size-sm, 0.875rem);
140
+ font-weight: var(--hx-font-weight-medium, 500);
141
+ color: var(--hx-input-label-color, var(--hx-color-neutral-700, #343a40));
142
+ line-height: var(--hx-line-height-normal, 1.5);
143
+ }
144
+
145
+ .field__required-marker {
146
+ color: var(--hx-input-error-color, var(--hx-color-error-text, #b91c1c));
147
+ font-weight: var(--hx-font-weight-bold, 700);
148
+ }
149
+
150
+ /* ─── Input Wrapper ─── */
151
+
152
+ .field__input-wrapper {
153
+ display: flex;
154
+ align-items: center;
155
+ border: var(--hx-border-width-thin, 1px) solid
156
+ var(--hx-input-border-color, var(--hx-color-neutral-300, #ced4da));
157
+ border-radius: var(--hx-input-border-radius, var(--hx-border-radius-md, 0.375rem));
158
+ background-color: var(--hx-input-bg, var(--hx-color-neutral-0, #ffffff));
159
+ transition:
160
+ border-color var(--hx-transition-fast, 150ms ease),
161
+ box-shadow var(--hx-transition-fast, 150ms ease);
162
+ overflow: hidden;
163
+ }
164
+
165
+ .field__input-wrapper:focus-within {
166
+ border-color: var(
167
+ --hx-input-focus-ring-color,
168
+ var(--hx-focus-ring-color, var(--hx-color-primary-400, #60a5fa))
169
+ );
170
+ box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
171
+ color-mix(
172
+ in srgb,
173
+ var(
174
+ --hx-input-focus-ring-color,
175
+ var(--hx-focus-ring-color, var(--hx-color-primary-400, #60a5fa))
176
+ )
177
+ calc(var(--hx-focus-ring-opacity, 0.25) * 100%),
178
+ transparent
179
+ );
180
+ }
181
+
182
+ /* ─── Error State ─── */
183
+
184
+ .field--error .field__input-wrapper {
185
+ border-color: var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));
186
+ }
187
+
188
+ .field--error .field__input-wrapper:focus-within {
189
+ border-color: var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));
190
+ box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
191
+ color-mix(
192
+ in srgb,
193
+ var(--hx-input-error-color, var(--hx-color-error-500, #dc3545))
194
+ calc(var(--hx-focus-ring-opacity, 0.25) * 100%),
195
+ transparent
196
+ );
197
+ }
198
+
199
+ /* ─── Slots (Prefix / Suffix) ─── */
200
+
201
+ .field__prefix,
202
+ .field__suffix {
203
+ display: flex;
204
+ align-items: center;
205
+ color: var(--hx-color-neutral-500, #6c757d);
206
+ flex-shrink: 0;
207
+ }
208
+
209
+ /* Only add padding when slot has content — avoids phantom space on empty slots */
210
+ .field__prefix--filled {
211
+ padding: 0 var(--hx-space-3, 0.75rem);
212
+ }
213
+
214
+ .field__suffix--filled {
215
+ padding: 0 var(--hx-space-3, 0.75rem);
216
+ }
217
+
218
+ /* ─── Native Input ─── */
219
+
220
+ .field__input {
221
+ flex: 1;
222
+ border: none;
223
+ outline: none;
224
+ background: transparent;
225
+ padding: var(--hx-space-2, 0.5rem) var(--hx-space-3, 0.75rem);
226
+ font-family: inherit;
227
+ font-size: var(--hx-font-size-md, 1rem);
228
+ color: var(--hx-input-color, var(--hx-color-neutral-800, #212529));
229
+ line-height: var(--hx-line-height-normal, 1.5);
230
+ min-height: var(--hx-size-10, 2.5rem);
231
+ width: 100%;
232
+ }
233
+
234
+ .field__input::placeholder {
235
+ color: var(--hx-color-neutral-400, #adb5bd);
236
+ }
237
+
238
+ .field__input:disabled {
239
+ cursor: not-allowed;
240
+ }
241
+
242
+ /* ─── Size Variants ─── */
243
+
244
+ .field--size-sm .field__input {
245
+ padding: var(--hx-space-1, 0.25rem) var(--hx-space-2, 0.5rem);
246
+ min-height: var(--hx-size-8, 2rem);
247
+ font-size: var(--hx-input-sm-font-size, 0.875rem);
248
+ }
249
+
250
+ .field--size-md .field__input {
251
+ /* md is the default — no overrides needed */
252
+ }
253
+
254
+ .field--size-lg .field__input {
255
+ padding: var(--hx-space-3, 0.75rem) var(--hx-space-4, 1rem);
256
+ min-height: var(--hx-size-12, 3rem);
257
+ font-size: var(--hx-input-lg-font-size, 1.125rem);
258
+ }
259
+
260
+ /* ─── Help Text & Error Messages ─── */
261
+
262
+ .field__help-text {
263
+ font-size: var(--hx-font-size-xs, 0.75rem);
264
+ color: var(--hx-color-neutral-500, #6c757d);
265
+ line-height: var(--hx-line-height-normal, 1.5);
266
+ }
267
+
268
+ .field__error {
269
+ font-size: var(--hx-font-size-xs, 0.75rem);
270
+ color: var(--hx-input-error-color, var(--hx-color-error-text, #b91c1c));
271
+ line-height: var(--hx-line-height-normal, 1.5);
272
+ }
273
+
274
+ /* ─── Motion ─── */
275
+
276
+ @media (prefers-reduced-motion: reduce) {
277
+ .field__input-wrapper {
278
+ transition: none;
279
+ }
280
+ }
281
+ `;
282
+ var C = Object.defineProperty, z = Object.getOwnPropertyDescriptor, i = (e, t, a, l) => {
283
+ for (var o = l > 1 ? void 0 : l ? z(t, a) : t, d = e.length - 1, p; d >= 0; d--)
284
+ (p = e[d]) && (o = (l ? p(t, a, o) : p(o)) || o);
285
+ return l && o && C(t, a, o), o;
286
+ };
287
+ const T = S("hx-text-input");
288
+ let r = class extends I(b(w)) {
289
+ constructor() {
290
+ super(...arguments), this.label = "", this.placeholder = "", this.value = "", this.type = "text", this.required = !1, this.disabled = !1, this.error = "", this.helpText = "", this.name = "", this.ariaLabel = null, this.readonly = !1, this.minlength = void 0, this.maxlength = void 0, this.pattern = "", this.autocomplete = "", this.requiredMessage = "This field is required.", this.size = "md", this._hasLabelSlot = !1, this._hasErrorSlot = !1, this._hasPrefixSlot = !1, this._hasSuffixSlot = !1, this._hasHelpTextSlot = !1, this._inputId = T(), this._helpTextId = `${this._inputId}-help`, this._errorId = `${this._inputId}-error`;
291
+ }
292
+ // ─── FocusMixin integration ───
293
+ /**
294
+ * Declares the inner focusable element for FocusMixin delegation.
295
+ * @internal
296
+ */
297
+ get _focusableNode() {
298
+ return this._input ?? null;
299
+ }
300
+ /** @internal */
301
+ _handleLabelSlotChange(e) {
302
+ const t = e.target;
303
+ if (this._hasLabelSlot = t.assignedElements().length > 0, this._hasLabelSlot) {
304
+ const a = t.assignedElements()[0];
305
+ a && !a.id && (a.id = `${this._inputId}-slotted-label`);
306
+ }
307
+ }
308
+ /** @internal */
309
+ _handleErrorSlotChange(e) {
310
+ const t = e.target;
311
+ this._hasErrorSlot = t.assignedElements().length > 0;
312
+ }
313
+ /** @internal */
314
+ _handlePrefixSlotChange(e) {
315
+ const t = e.target;
316
+ this._hasPrefixSlot = t.assignedElements().length > 0;
317
+ }
318
+ /** @internal */
319
+ _handleSuffixSlotChange(e) {
320
+ const t = e.target;
321
+ this._hasSuffixSlot = t.assignedElements().length > 0;
322
+ }
323
+ /** @internal */
324
+ _handleHelpTextSlotChange(e) {
325
+ const t = e.target;
326
+ this._hasHelpTextSlot = t.assignedElements().length > 0;
327
+ }
328
+ // ─── Lifecycle ───
329
+ updated(e) {
330
+ super.updated(e), e.has("value") && this._internals.setFormValue(this.value), (e.has("value") || e.has("type")) && this.type === "number" && this.value !== "" && isNaN(Number(this.value)) && y(
331
+ "hx-text-input",
332
+ `type="number" received non-numeric value "${this.value}". Browser will display empty input.`
333
+ );
334
+ }
335
+ // ─── Form Integration ───
336
+ /** Returns the associated form element, if any. */
337
+ get form() {
338
+ return this._internals.form;
339
+ }
340
+ /** Returns the validation message. */
341
+ get validationMessage() {
342
+ return this._internals.validationMessage;
343
+ }
344
+ /** Returns the ValidityState object. */
345
+ get validity() {
346
+ return this._internals.validity;
347
+ }
348
+ /** @internal */
349
+ _updateValidity() {
350
+ this.required && !this.value ? this._internals.setValidity(
351
+ { valueMissing: !0 },
352
+ this.error || this.requiredMessage,
353
+ this._input
354
+ ) : this.minlength !== void 0 && this.value.length > 0 && this.value.length < this.minlength ? this._internals.setValidity(
355
+ { tooShort: !0 },
356
+ this.error || `Please lengthen this text to ${this.minlength} characters or more.`,
357
+ this._input
358
+ ) : this.maxlength !== void 0 && this.value.length > this.maxlength ? this._internals.setValidity(
359
+ { tooLong: !0 },
360
+ this.error || `Please shorten this text to ${this.maxlength} characters or fewer.`,
361
+ this._input
362
+ ) : this._internals.setValidity({});
363
+ }
364
+ // ─── Form Lifecycle Hooks ───
365
+ _onFormReset() {
366
+ this.value = "", this._internals.setFormValue(""), this._resetInteractionState();
367
+ }
368
+ _onFormStateRestore(e, t) {
369
+ typeof e == "string" && (this.value = e);
370
+ }
371
+ _onFormDisabled(e) {
372
+ this.disabled = e;
373
+ }
374
+ // ─── Event Handling ───
375
+ /** @internal */
376
+ _handleInput(e) {
377
+ const t = e.target;
378
+ this.value = t.value, this._internals.setFormValue(this.value), this._handleInteractionInput(), this.dispatchEvent(
379
+ new CustomEvent("hx-input", {
380
+ bubbles: !0,
381
+ composed: !0,
382
+ detail: { value: this.value }
383
+ })
384
+ );
385
+ }
386
+ /** @internal */
387
+ _handleChange(e) {
388
+ const t = e.target;
389
+ this.value = t.value, this._internals.setFormValue(this.value), this._handleInteractionBlur(), this.dispatchEvent(
390
+ new CustomEvent("hx-change", {
391
+ bubbles: !0,
392
+ composed: !0,
393
+ detail: { value: this.value }
394
+ })
395
+ );
396
+ }
397
+ // ─── Public Methods ───
398
+ /** Selects all text in the input. */
399
+ select() {
400
+ var e;
401
+ (e = this._input) == null || e.select();
402
+ }
403
+ render() {
404
+ const e = !!this.error || this._hasErrorSlot, t = {
405
+ field: !0,
406
+ "field--error": e,
407
+ "field--disabled": this.disabled,
408
+ "field--required": this.required,
409
+ [`field--size-${this.size}`]: !0
410
+ }, a = [
411
+ e ? this._errorId : null,
412
+ this.helpText || this._hasHelpTextSlot ? this._helpTextId : null
413
+ ].filter(Boolean).join(" ") || void 0;
414
+ return h`
415
+ <div part="field" class=${f(t)}>
416
+ <div class="field__label-wrapper">
417
+ <slot name="label" @slotchange=${this._handleLabelSlotChange}>
418
+ ${this.label ? h`
419
+ <label part="label" class="field__label" for=${this._inputId}>
420
+ ${this.label}
421
+ ${this.required ? h`<span class="field__required-marker" aria-hidden="true">*</span>` : c}
422
+ </label>
423
+ ` : c}
424
+ </slot>
425
+ </div>
426
+
427
+ <div part="input-wrapper" class="field__input-wrapper">
428
+ <span
429
+ class=${f({
430
+ field__prefix: !0,
431
+ "field__prefix--filled": this._hasPrefixSlot
432
+ })}
433
+ >
434
+ <slot name="prefix" @slotchange=${this._handlePrefixSlotChange}></slot>
435
+ </span>
436
+
437
+ <input
438
+ part="input"
439
+ class="field__input"
440
+ id=${this._inputId}
441
+ type=${this.type}
442
+ .value=${g(this.value)}
443
+ placeholder=${n(this.placeholder || void 0)}
444
+ ?required=${this.required}
445
+ ?disabled=${this.disabled}
446
+ ?readonly=${this.readonly}
447
+ name=${n(this.name || void 0)}
448
+ minlength=${n(this.minlength)}
449
+ maxlength=${n(this.maxlength)}
450
+ pattern=${n(this.pattern || void 0)}
451
+ autocomplete=${n(this.autocomplete || void 0)}
452
+ aria-label=${n(this.ariaLabel || void 0)}
453
+ aria-labelledby=${n(
454
+ this._hasLabelSlot ? `${this._inputId}-slotted-label` : void 0
455
+ )}
456
+ aria-invalid=${e ? "true" : c}
457
+ aria-describedby=${n(a)}
458
+ @input=${this._handleInput}
459
+ @change=${this._handleChange}
460
+ />
461
+
462
+ <span
463
+ class=${f({
464
+ field__suffix: !0,
465
+ "field__suffix--filled": this._hasSuffixSlot
466
+ })}
467
+ >
468
+ <slot name="suffix" @slotchange=${this._handleSuffixSlotChange}></slot>
469
+ </span>
470
+ </div>
471
+
472
+ ${e ? h`<div
473
+ part="error"
474
+ class="field__error"
475
+ id=${this._errorId}
476
+ role="alert"
477
+ aria-atomic="true"
478
+ >
479
+ <slot name="error" @slotchange=${this._handleErrorSlotChange}>${this.error}</slot>
480
+ </div>` : h`<slot name="error" @slotchange=${this._handleErrorSlotChange}></slot>`}
481
+ ${this._hasHelpTextSlot ? h`
482
+ <div part="help-text" class="field__help-text" id=${this._helpTextId}>
483
+ <slot name="help-text" @slotchange=${this._handleHelpTextSlotChange}>
484
+ ${this.helpText}
485
+ </slot>
486
+ </div>
487
+ ` : this.helpText && !e ? h`
488
+ <div part="help-text" class="field__help-text" id=${this._helpTextId}>
489
+ <slot name="help-text" @slotchange=${this._handleHelpTextSlotChange}>
490
+ ${this.helpText}
491
+ </slot>
492
+ </div>
493
+ ` : h`<slot name="help-text" @slotchange=${this._handleHelpTextSlotChange}></slot>`}
494
+ </div>
495
+ `;
496
+ }
497
+ };
498
+ r.styles = [E];
499
+ r.formAssociated = !0;
500
+ i([
501
+ s({ type: String })
502
+ ], r.prototype, "label", 2);
503
+ i([
504
+ s({ type: String })
505
+ ], r.prototype, "placeholder", 2);
506
+ i([
507
+ s({ type: String })
508
+ ], r.prototype, "value", 2);
509
+ i([
510
+ s({ type: String })
511
+ ], r.prototype, "type", 2);
512
+ i([
513
+ s({ type: Boolean, reflect: !0 })
514
+ ], r.prototype, "required", 2);
515
+ i([
516
+ s({ type: Boolean, reflect: !0 })
517
+ ], r.prototype, "disabled", 2);
518
+ i([
519
+ s({ type: String })
520
+ ], r.prototype, "error", 2);
521
+ i([
522
+ s({ type: String, attribute: "help-text" })
523
+ ], r.prototype, "helpText", 2);
524
+ i([
525
+ s({ type: String })
526
+ ], r.prototype, "name", 2);
527
+ i([
528
+ s({ type: String, attribute: "aria-label" })
529
+ ], r.prototype, "ariaLabel", 2);
530
+ i([
531
+ s({ type: Boolean, reflect: !0 })
532
+ ], r.prototype, "readonly", 2);
533
+ i([
534
+ s({ type: Number })
535
+ ], r.prototype, "minlength", 2);
536
+ i([
537
+ s({ type: Number })
538
+ ], r.prototype, "maxlength", 2);
539
+ i([
540
+ s({ type: String })
541
+ ], r.prototype, "pattern", 2);
542
+ i([
543
+ s({ type: String })
544
+ ], r.prototype, "autocomplete", 2);
545
+ i([
546
+ s({ attribute: "required-message" })
547
+ ], r.prototype, "requiredMessage", 2);
548
+ i([
549
+ s({ type: String, attribute: "hx-size", reflect: !0 })
550
+ ], r.prototype, "size", 2);
551
+ i([
552
+ v(".field__input")
553
+ ], r.prototype, "_input", 2);
554
+ i([
555
+ u()
556
+ ], r.prototype, "_hasLabelSlot", 2);
557
+ i([
558
+ u()
559
+ ], r.prototype, "_hasErrorSlot", 2);
560
+ i([
561
+ u()
562
+ ], r.prototype, "_hasPrefixSlot", 2);
563
+ i([
564
+ u()
565
+ ], r.prototype, "_hasSuffixSlot", 2);
566
+ i([
567
+ u()
568
+ ], r.prototype, "_hasHelpTextSlot", 2);
569
+ r = i([
570
+ m("hx-text-input")
571
+ ], r);
572
+ export {
573
+ I as F,
574
+ r as H
575
+ };
576
+ //# sourceMappingURL=hx-text-input-2LTGt0vQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hx-text-input-2LTGt0vQ.js","sources":["../../src/mixins/FocusMixin.ts","../../src/components/hx-text-input/hx-text-input.styles.ts","../../src/components/hx-text-input/hx-text-input.ts"],"sourcesContent":["import { LitElement, type PropertyValues } from 'lit';\nimport { property } from 'lit/decorators.js';\n\n/**\n * Mixin constructor type — must use `any[]` args per TypeScript mixin requirements (TS2545).\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Constructor<T = object> = new (...args: any[]) => T;\n\n/**\n * The public interface added by FocusMixin.\n * Consumers can use this type for typed references.\n *\n * @public\n */\nexport interface FocusMixinInterface {\n /** True when the component host has focus (including descendant focus). */\n readonly focused: boolean;\n /** True when focus arrived via keyboard (not pointer). */\n readonly focusedVisible: boolean;\n}\n\n/**\n * FocusMixin — standardized focus delegation for HELiX web components.\n *\n * Modeled after Lion's `FocusMixin` and Material Web's `mixinDelegatesAria`.\n * Provides:\n * - `_focusableNode` getter for subclasses to declare the inner focusable element\n * - `focused` reflected attribute as a styling hook for `:host([focused])`\n * - `focusedVisible` reflected attribute for keyboard-only focus rings\n * - Delegated `focus()` / `blur()` routing to the inner element\n * - Autofocus support after first render\n *\n * ### Usage\n *\n * ```ts\n * class MyInput extends FocusMixin(HelixElement) {\n * @query('input') private _input: HTMLInputElement | undefined;\n *\n * protected override get _focusableNode(): HTMLElement | null {\n * return this._input ?? null;\n * }\n * }\n * ```\n *\n * @param superClass - A Lit element constructor to mix into\n * @returns A new class with focus management capabilities\n *\n * @public\n */\nexport const FocusMixin = <T extends Constructor<LitElement>>(superClass: T) => {\n class FocusMixinClass extends superClass implements FocusMixinInterface {\n /**\n * True when the component or any of its descendants has focus.\n * Reflects to attribute `focused` for CSS selector use.\n *\n * @attr focused\n */\n @property({ type: Boolean, reflect: true })\n focused = false;\n\n /**\n * True when focus was reached via keyboard navigation (Tab / Shift+Tab)\n * rather than pointer interaction. Reflects to attribute `focused-visible`\n * for rendering keyboard-only focus rings.\n *\n * @attr focused-visible\n */\n @property({ type: Boolean, reflect: true, attribute: 'focused-visible' })\n focusedVisible = false;\n\n /** @internal — whether a `focus()` call was queued before first render */\n private _focusPending = false;\n\n /**\n * @internal — tracks whether the most recent interaction toward this\n * element was via pointer (true) or keyboard (false).\n *\n * Set to false on `pointerdown` so that the subsequent `focusin` can\n * determine it is not keyboard-initiated.\n */\n private _lastInteractionWasPointer = false;\n\n /**\n * Returns the inner focusable element that `focus()` and `blur()` will\n * delegate to. Subclasses MUST override this getter.\n *\n * @returns The inner focusable element, or `null` if not yet rendered.\n * @internal\n */\n protected get _focusableNode(): HTMLElement | null {\n return null;\n }\n\n /**\n * Delegates focus to the inner focusable element.\n * If the element has not yet rendered, queues the focus call for\n * `firstUpdated`.\n */\n override focus(options?: FocusOptions): void {\n const node = this._focusableNode;\n if (node !== null) {\n node.focus(options);\n } else {\n this._focusPending = true;\n }\n }\n\n /** Delegates blur to the inner focusable element. */\n override blur(): void {\n this._focusableNode?.blur();\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener('focusin', this._handleFocusIn);\n this.addEventListener('focusout', this._handleFocusOut);\n this.addEventListener('pointerdown', this._handlePointerDown);\n this.addEventListener('keydown', this._handleKeyDown);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('focusin', this._handleFocusIn);\n this.removeEventListener('focusout', this._handleFocusOut);\n this.removeEventListener('pointerdown', this._handlePointerDown);\n this.removeEventListener('keydown', this._handleKeyDown);\n }\n\n override firstUpdated(changedProperties: PropertyValues): void {\n super.firstUpdated(changedProperties);\n\n // Honour the native `autofocus` attribute after the first render cycle\n if (this.hasAttribute('autofocus')) {\n this.focus();\n }\n\n // Flush any focus() call that arrived before the shadow DOM was stamped\n if (this._focusPending) {\n this._focusPending = false;\n this.focus();\n }\n }\n\n // ─── Private Event Handlers ────────────────────────────────────────────────\n\n /** @internal */\n private _handleFocusIn = (): void => {\n this.focused = true;\n // focusedVisible is true only when focus arrived via keyboard\n this.focusedVisible = !this._lastInteractionWasPointer;\n };\n\n /** @internal */\n private _handleFocusOut = (): void => {\n this.focused = false;\n this.focusedVisible = false;\n // Reset for the next interaction cycle\n this._lastInteractionWasPointer = false;\n };\n\n /**\n * Marks the next focusin as pointer-initiated.\n * @internal\n */\n private _handlePointerDown = (): void => {\n this._lastInteractionWasPointer = true;\n };\n\n /**\n * Ensures that keyboard navigation (Tab / Shift+Tab arriving from outside)\n * is correctly flagged as keyboard-initiated even when no prior `pointerdown`\n * fired on this element.\n *\n * This fires BEFORE `focusin` so the flag is in the correct state when\n * `_handleFocusIn` runs.\n * @internal\n */\n private _handleKeyDown = (): void => {\n this._lastInteractionWasPointer = false;\n };\n }\n\n return FocusMixinClass as unknown as T & Constructor<FocusMixinInterface>;\n};\n","import { css } from 'lit';\n\nexport const helixTextInputStyles = css`\n :host {\n display: block;\n }\n\n :host([disabled]) {\n opacity: var(--hx-opacity-disabled, 0.5);\n pointer-events: none;\n }\n\n /*\n * Attribute-based focus hooks set by FocusMixin.\n * :host([focused]) — fires whenever the component or any descendant has focus.\n * :host([focused-visible]) — fires only for keyboard-initiated focus.\n * These complement the :focus-within rules on .field__input-wrapper and are\n * exposed as theming hooks for consumers who target the host element.\n */\n :host([focused]) .field__input-wrapper {\n border-color: var(\n --hx-input-focus-ring-color,\n var(--hx-focus-ring-color, var(--hx-color-primary-400, #60a5fa))\n );\n box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)\n color-mix(\n in srgb,\n var(\n --hx-input-focus-ring-color,\n var(--hx-focus-ring-color, var(--hx-color-primary-400, #60a5fa))\n )\n calc(var(--hx-focus-ring-opacity, 0.25) * 100%),\n transparent\n );\n }\n\n :host([focused-visible]) .field__input-wrapper {\n border-color: var(\n --hx-input-focus-ring-color,\n var(--hx-focus-ring-color, var(--hx-color-primary-400, #60a5fa))\n );\n box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)\n color-mix(\n in srgb,\n var(\n --hx-input-focus-ring-color,\n var(--hx-focus-ring-color, var(--hx-color-primary-400, #60a5fa))\n )\n calc(var(--hx-focus-ring-opacity, 0.25) * 100%),\n transparent\n );\n }\n\n * {\n box-sizing: border-box;\n }\n\n .field {\n display: flex;\n flex-direction: column;\n gap: var(--hx-space-1, 0.25rem);\n font-family: var(--hx-input-font-family, var(--hx-font-family-sans, sans-serif));\n }\n\n /* ─── Label ─── */\n\n .field__label-wrapper {\n display: contents;\n }\n\n .field__label {\n display: flex;\n align-items: baseline;\n gap: var(--hx-space-1, 0.25rem);\n font-size: var(--hx-font-size-sm, 0.875rem);\n font-weight: var(--hx-font-weight-medium, 500);\n color: var(--hx-input-label-color, var(--hx-color-neutral-700, #343a40));\n line-height: var(--hx-line-height-normal, 1.5);\n }\n\n .field__required-marker {\n color: var(--hx-input-error-color, var(--hx-color-error-text, #b91c1c));\n font-weight: var(--hx-font-weight-bold, 700);\n }\n\n /* ─── Input Wrapper ─── */\n\n .field__input-wrapper {\n display: flex;\n align-items: center;\n border: var(--hx-border-width-thin, 1px) solid\n var(--hx-input-border-color, var(--hx-color-neutral-300, #ced4da));\n border-radius: var(--hx-input-border-radius, var(--hx-border-radius-md, 0.375rem));\n background-color: var(--hx-input-bg, var(--hx-color-neutral-0, #ffffff));\n transition:\n border-color var(--hx-transition-fast, 150ms ease),\n box-shadow var(--hx-transition-fast, 150ms ease);\n overflow: hidden;\n }\n\n .field__input-wrapper:focus-within {\n border-color: var(\n --hx-input-focus-ring-color,\n var(--hx-focus-ring-color, var(--hx-color-primary-400, #60a5fa))\n );\n box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)\n color-mix(\n in srgb,\n var(\n --hx-input-focus-ring-color,\n var(--hx-focus-ring-color, var(--hx-color-primary-400, #60a5fa))\n )\n calc(var(--hx-focus-ring-opacity, 0.25) * 100%),\n transparent\n );\n }\n\n /* ─── Error State ─── */\n\n .field--error .field__input-wrapper {\n border-color: var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));\n }\n\n .field--error .field__input-wrapper:focus-within {\n border-color: var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));\n box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)\n color-mix(\n in srgb,\n var(--hx-input-error-color, var(--hx-color-error-500, #dc3545))\n calc(var(--hx-focus-ring-opacity, 0.25) * 100%),\n transparent\n );\n }\n\n /* ─── Slots (Prefix / Suffix) ─── */\n\n .field__prefix,\n .field__suffix {\n display: flex;\n align-items: center;\n color: var(--hx-color-neutral-500, #6c757d);\n flex-shrink: 0;\n }\n\n /* Only add padding when slot has content — avoids phantom space on empty slots */\n .field__prefix--filled {\n padding: 0 var(--hx-space-3, 0.75rem);\n }\n\n .field__suffix--filled {\n padding: 0 var(--hx-space-3, 0.75rem);\n }\n\n /* ─── Native Input ─── */\n\n .field__input {\n flex: 1;\n border: none;\n outline: none;\n background: transparent;\n padding: var(--hx-space-2, 0.5rem) var(--hx-space-3, 0.75rem);\n font-family: inherit;\n font-size: var(--hx-font-size-md, 1rem);\n color: var(--hx-input-color, var(--hx-color-neutral-800, #212529));\n line-height: var(--hx-line-height-normal, 1.5);\n min-height: var(--hx-size-10, 2.5rem);\n width: 100%;\n }\n\n .field__input::placeholder {\n color: var(--hx-color-neutral-400, #adb5bd);\n }\n\n .field__input:disabled {\n cursor: not-allowed;\n }\n\n /* ─── Size Variants ─── */\n\n .field--size-sm .field__input {\n padding: var(--hx-space-1, 0.25rem) var(--hx-space-2, 0.5rem);\n min-height: var(--hx-size-8, 2rem);\n font-size: var(--hx-input-sm-font-size, 0.875rem);\n }\n\n .field--size-md .field__input {\n /* md is the default — no overrides needed */\n }\n\n .field--size-lg .field__input {\n padding: var(--hx-space-3, 0.75rem) var(--hx-space-4, 1rem);\n min-height: var(--hx-size-12, 3rem);\n font-size: var(--hx-input-lg-font-size, 1.125rem);\n }\n\n /* ─── Help Text & Error Messages ─── */\n\n .field__help-text {\n font-size: var(--hx-font-size-xs, 0.75rem);\n color: var(--hx-color-neutral-500, #6c757d);\n line-height: var(--hx-line-height-normal, 1.5);\n }\n\n .field__error {\n font-size: var(--hx-font-size-xs, 0.75rem);\n color: var(--hx-input-error-color, var(--hx-color-error-text, #b91c1c));\n line-height: var(--hx-line-height-normal, 1.5);\n }\n\n /* ─── Motion ─── */\n\n @media (prefers-reduced-motion: reduce) {\n .field__input-wrapper {\n transition: none;\n }\n }\n`;\n","import { html, nothing, type PropertyValues } from 'lit';\nimport '../../utilities/document-token-adoption.js';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\nimport { HelixElement, createIdCounter } from '../../base/index.js';\nimport { FocusMixin } from '../../mixins/index.js';\nimport { FormMixin } from '../../mixins/FormMixin.js';\nimport { helixTextInputStyles } from './hx-text-input.styles.js';\nimport { devWarn } from '../../utils/dev-warn.js';\n\n// Module-level counter for stable, SSR-compatible IDs (avoids Math.random() hydration mismatch)\nconst _nextTextInputId = createIdCounter('hx-text-input');\n\n/**\n * A text input component with label, validation, and form association.\n * Supports accessible labeling via `label` property, `aria-label` attribute, or the `label` slot.\n * Uses `aria-invalid` and `aria-describedby` on the native input for screen reader support. Native `required` provides implicit aria-required mapping per HTML-AAM.\n * Error messages are announced via `role=\"alert\"`. Keyboard navigation follows native input behavior.\n *\n * @summary Form-associated text input with built-in label, error, and help text.\n *\n * @tag hx-text-input\n *\n * @slot label - Custom label content (overrides the label property). Use for Drupal Form API rendered labels.\n * @slot prefix - Content rendered before the input (e.g., icon).\n * @slot suffix - Content rendered after the input (e.g., icon or button).\n * @slot help-text - Custom help text content (overrides the helpText property).\n * @slot error - Custom error content (overrides the error property). Use for Drupal Form API rendered errors.\n *\n * @fires {CustomEvent<{value: string}>} hx-input - Dispatched on every keystroke as the user types.\n * @fires {CustomEvent<{value: string}>} hx-change - Dispatched when the input loses focus after its value changed.\n *\n * @csspart field - The outer field container.\n * @csspart label - The label element.\n * @csspart input-wrapper - The wrapper around prefix, input, and suffix.\n * @csspart input - The native input element.\n * @csspart help-text - The help text container.\n * @csspart error - The error message container.\n *\n * @cssprop [--hx-input-bg=var(--hx-color-neutral-0)] - Input background color.\n * @cssprop [--hx-input-color=var(--hx-color-neutral-800)] - Input text color.\n * @cssprop [--hx-input-border-color=var(--hx-color-neutral-300)] - Input border color.\n * @cssprop [--hx-input-border-radius=var(--hx-border-radius-md)] - Input border radius.\n * @cssprop [--hx-input-font-family=var(--hx-font-family-sans)] - Input font family.\n * @cssprop [--hx-input-focus-ring-color=var(--hx-focus-ring-color)] - Focus ring color.\n * @cssprop [--hx-input-error-color=var(--hx-color-error-500)] - Error state color.\n * @cssprop [--hx-input-label-color=var(--hx-color-neutral-700)] - Label text color.\n * @cssprop [--hx-input-sm-font-size=0.875rem] - Font size for the sm size variant.\n * @cssprop [--hx-input-lg-font-size=1.125rem] - Font size for the lg size variant.\n */\n@customElement('hx-text-input')\nexport class HelixTextInput extends FocusMixin(FormMixin(HelixElement)) {\n static override styles = [helixTextInputStyles];\n\n // ─── Form Association ───\n\n /** @internal */\n static override formAssociated = true;\n\n // ─── Properties ───\n\n /**\n * The visible label text for the input.\n * @attr label\n */\n @property({ type: String })\n label = '';\n\n /**\n * Placeholder text shown when the input is empty.\n * @attr placeholder\n */\n @property({ type: String })\n placeholder = '';\n\n /**\n * The current value of the input.\n * @attr value\n * @remarks When `null` is passed programmatically, Lit coerces it to an empty string.\n * This is expected behavior — the input treats null as equivalent to an empty string value.\n */\n @property({ type: String })\n value = '';\n\n /**\n * The type of the native input element.\n * @attr type\n */\n @property({ type: String })\n type: 'text' | 'email' | 'password' | 'tel' | 'url' | 'search' | 'number' | 'date' = 'text';\n\n /**\n * Whether the input is required for form submission.\n * @attr required\n */\n @property({ type: Boolean, reflect: true })\n required = false;\n\n /**\n * Whether the input is disabled.\n * @attr disabled\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Error message to display. When set, the input enters an error state.\n * @attr error\n */\n @property({ type: String })\n error = '';\n\n /**\n * Help text displayed below the input for guidance.\n * @attr help-text\n */\n @property({ type: String, attribute: 'help-text' })\n helpText = '';\n\n /**\n * The name of the input, used for form submission.\n * @attr name\n */\n @property({ type: String })\n name = '';\n\n /**\n * Accessible name for screen readers, if different from the visible label.\n * @attr aria-label\n */\n @property({ type: String, attribute: 'aria-label' })\n override ariaLabel: string | null = null;\n\n /**\n * Whether the input is read-only.\n * @attr readonly\n */\n @property({ type: Boolean, reflect: true })\n readonly = false;\n\n /**\n * Minimum number of characters allowed.\n * @attr minlength\n */\n @property({ type: Number })\n minlength: number | undefined = undefined;\n\n /**\n * Maximum number of characters allowed.\n * @attr maxlength\n */\n @property({ type: Number })\n maxlength: number | undefined = undefined;\n\n /**\n * A regular expression pattern the value must match for form validation.\n * @attr pattern\n */\n @property({ type: String })\n pattern = '';\n\n /**\n * Hint for the browser's autocomplete feature. Accepts standard HTML autocomplete values.\n * @attr autocomplete\n */\n @property({ type: String })\n autocomplete = '';\n\n /**\n * Validation message shown when the field is required but empty.\n * @attr required-message\n */\n @property({ attribute: 'required-message' })\n requiredMessage = 'This field is required.';\n\n /**\n * Visual size of the input field.\n * @attr hx-size\n */\n @property({ type: String, attribute: 'hx-size', reflect: true })\n size: 'sm' | 'md' | 'lg' = 'md';\n\n // ─── Internal References ───\n\n /** @internal */\n @query('.field__input')\n private _input: HTMLInputElement | undefined;\n\n // ─── FocusMixin integration ───\n\n /**\n * Declares the inner focusable element for FocusMixin delegation.\n * @internal\n */\n protected get _focusableNode(): HTMLElement | null {\n return this._input ?? null;\n }\n\n // ─── Slot Tracking ───\n\n /** @internal */\n @state() private _hasLabelSlot = false;\n /** @internal */\n @state() private _hasErrorSlot = false;\n /** @internal */\n @state() private _hasPrefixSlot = false;\n /** @internal */\n @state() private _hasSuffixSlot = false;\n /** @internal */\n @state() private _hasHelpTextSlot = false;\n\n /** @internal */\n private _handleLabelSlotChange(e: Event): void {\n const slot = e.target as HTMLSlotElement;\n this._hasLabelSlot = slot.assignedElements().length > 0;\n if (this._hasLabelSlot) {\n const slottedLabel = slot.assignedElements()[0];\n if (slottedLabel && !slottedLabel.id) {\n slottedLabel.id = `${this._inputId}-slotted-label`;\n }\n }\n }\n\n /** @internal */\n private _handleErrorSlotChange(e: Event): void {\n const slot = e.target as HTMLSlotElement;\n this._hasErrorSlot = slot.assignedElements().length > 0;\n }\n\n /** @internal */\n private _handlePrefixSlotChange(e: Event): void {\n const slot = e.target as HTMLSlotElement;\n this._hasPrefixSlot = slot.assignedElements().length > 0;\n }\n\n /** @internal */\n private _handleSuffixSlotChange(e: Event): void {\n const slot = e.target as HTMLSlotElement;\n this._hasSuffixSlot = slot.assignedElements().length > 0;\n }\n\n /** @internal */\n private _handleHelpTextSlotChange(e: Event): void {\n const slot = e.target as HTMLSlotElement;\n this._hasHelpTextSlot = slot.assignedElements().length > 0;\n }\n\n // ─── Lifecycle ───\n\n override updated(changedProperties: PropertyValues<this>): void {\n super.updated(changedProperties);\n if (changedProperties.has('value')) {\n this._internals.setFormValue(this.value);\n }\n if (\n (changedProperties.has('value') || changedProperties.has('type')) &&\n this.type === 'number' &&\n this.value !== '' &&\n isNaN(Number(this.value))\n ) {\n devWarn(\n 'hx-text-input',\n `type=\"number\" received non-numeric value \"${this.value}\". Browser will display empty input.`,\n );\n }\n }\n\n // ─── Form Integration ───\n\n /** Returns the associated form element, if any. */\n override get form(): HTMLFormElement | null {\n return this._internals.form;\n }\n\n /** Returns the validation message. */\n override get validationMessage(): string {\n return this._internals.validationMessage;\n }\n\n /** Returns the ValidityState object. */\n override get validity(): ValidityState {\n return this._internals.validity;\n }\n\n /** @internal */\n protected _updateValidity(): void {\n if (this.required && !this.value) {\n this._internals.setValidity(\n { valueMissing: true },\n this.error || this.requiredMessage,\n this._input,\n );\n } else if (\n this.minlength !== undefined &&\n this.value.length > 0 &&\n this.value.length < this.minlength\n ) {\n this._internals.setValidity(\n { tooShort: true },\n this.error || `Please lengthen this text to ${this.minlength} characters or more.`,\n this._input,\n );\n } else if (this.maxlength !== undefined && this.value.length > this.maxlength) {\n this._internals.setValidity(\n { tooLong: true },\n this.error || `Please shorten this text to ${this.maxlength} characters or fewer.`,\n this._input,\n );\n } else {\n this._internals.setValidity({});\n }\n }\n\n // ─── Form Lifecycle Hooks ───\n\n protected override _onFormReset(): void {\n this.value = '';\n this._internals.setFormValue('');\n this._resetInteractionState();\n }\n\n protected override _onFormStateRestore(\n state: File | string | FormData | null,\n _mode: 'restore' | 'autocomplete',\n ): void {\n if (typeof state === 'string') {\n this.value = state;\n }\n }\n\n protected override _onFormDisabled(disabled: boolean): void {\n this.disabled = disabled;\n }\n\n // ─── Event Handling ───\n\n /** @internal */\n private _handleInput(e: Event): void {\n const target = e.target as HTMLInputElement;\n this.value = target.value;\n this._internals.setFormValue(this.value);\n this._handleInteractionInput();\n\n /**\n * Dispatched on every keystroke as the user types.\n * @event hx-input\n */\n this.dispatchEvent(\n new CustomEvent<{ value: string }>('hx-input', {\n bubbles: true,\n composed: true,\n detail: { value: this.value },\n }),\n );\n }\n\n /** @internal */\n private _handleChange(e: Event): void {\n const target = e.target as HTMLInputElement;\n this.value = target.value;\n this._internals.setFormValue(this.value);\n this._handleInteractionBlur();\n\n /**\n * Dispatched when the input loses focus after its value changed.\n * @event hx-change\n */\n this.dispatchEvent(\n new CustomEvent<{ value: string }>('hx-change', {\n bubbles: true,\n composed: true,\n detail: { value: this.value },\n }),\n );\n }\n\n // ─── Public Methods ───\n\n /** Selects all text in the input. */\n select(): void {\n this._input?.select();\n }\n\n // ─── Render ───\n\n /** @internal */\n private _inputId = _nextTextInputId();\n /** @internal */\n private _helpTextId = `${this._inputId}-help`;\n /** @internal */\n private _errorId = `${this._inputId}-error`;\n\n override render() {\n const hasError = !!this.error || this._hasErrorSlot;\n\n const fieldClasses = {\n field: true,\n 'field--error': hasError,\n 'field--disabled': this.disabled,\n 'field--required': this.required,\n [`field--size-${this.size}`]: true,\n };\n\n const describedBy =\n [\n hasError ? this._errorId : null,\n this.helpText || this._hasHelpTextSlot ? this._helpTextId : null,\n ]\n .filter(Boolean)\n .join(' ') || undefined;\n\n return html`\n <div part=\"field\" class=${classMap(fieldClasses)}>\n <div class=\"field__label-wrapper\">\n <slot name=\"label\" @slotchange=${this._handleLabelSlotChange}>\n ${this.label\n ? html`\n <label part=\"label\" class=\"field__label\" for=${this._inputId}>\n ${this.label}\n ${this.required\n ? html`<span class=\"field__required-marker\" aria-hidden=\"true\">*</span>`\n : nothing}\n </label>\n `\n : nothing}\n </slot>\n </div>\n\n <div part=\"input-wrapper\" class=\"field__input-wrapper\">\n <span\n class=${classMap({\n field__prefix: true,\n 'field__prefix--filled': this._hasPrefixSlot,\n })}\n >\n <slot name=\"prefix\" @slotchange=${this._handlePrefixSlotChange}></slot>\n </span>\n\n <input\n part=\"input\"\n class=\"field__input\"\n id=${this._inputId}\n type=${this.type}\n .value=${live(this.value)}\n placeholder=${ifDefined(this.placeholder || undefined)}\n ?required=${this.required}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n name=${ifDefined(this.name || undefined)}\n minlength=${ifDefined(this.minlength)}\n maxlength=${ifDefined(this.maxlength)}\n pattern=${ifDefined(this.pattern || undefined)}\n autocomplete=${ifDefined(this.autocomplete || undefined)}\n aria-label=${ifDefined(this.ariaLabel || undefined)}\n aria-labelledby=${ifDefined(\n this._hasLabelSlot ? `${this._inputId}-slotted-label` : undefined,\n )}\n aria-invalid=${hasError ? 'true' : nothing}\n aria-describedby=${ifDefined(describedBy)}\n @input=${this._handleInput}\n @change=${this._handleChange}\n />\n\n <span\n class=${classMap({\n field__suffix: true,\n 'field__suffix--filled': this._hasSuffixSlot,\n })}\n >\n <slot name=\"suffix\" @slotchange=${this._handleSuffixSlotChange}></slot>\n </span>\n </div>\n\n ${hasError\n ? html`<div\n part=\"error\"\n class=\"field__error\"\n id=${this._errorId}\n role=\"alert\"\n aria-atomic=\"true\"\n >\n <slot name=\"error\" @slotchange=${this._handleErrorSlotChange}>${this.error}</slot>\n </div>`\n : html`<slot name=\"error\" @slotchange=${this._handleErrorSlotChange}></slot>`}\n ${this._hasHelpTextSlot\n ? html`\n <div part=\"help-text\" class=\"field__help-text\" id=${this._helpTextId}>\n <slot name=\"help-text\" @slotchange=${this._handleHelpTextSlotChange}>\n ${this.helpText}\n </slot>\n </div>\n `\n : this.helpText && !hasError\n ? html`\n <div part=\"help-text\" class=\"field__help-text\" id=${this._helpTextId}>\n <slot name=\"help-text\" @slotchange=${this._handleHelpTextSlotChange}>\n ${this.helpText}\n </slot>\n </div>\n `\n : html`<slot name=\"help-text\" @slotchange=${this._handleHelpTextSlotChange}></slot>`}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-text-input': HelixTextInput;\n }\n}\n\n/** Primary type alias for hx-text-input */\nexport type HxTextInput = HelixTextInput;\n\n/** @deprecated Use HxTextInput instead */\nexport type WcTextInput = HelixTextInput;\n"],"names":["FocusMixin","superClass","FocusMixinClass","options","node","_a","changedProperties","__decorateClass","property","helixTextInputStyles","css","_nextTextInputId","createIdCounter","HelixTextInput","FormMixin","HelixElement","slot","slottedLabel","devWarn","state","_mode","disabled","target","hasError","fieldClasses","describedBy","html","classMap","nothing","live","ifDefined","query","customElement"],"mappings":"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"}