@helixui/library 2.1.2 → 3.0.0-next.65

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 (819) hide show
  1. package/custom-elements.json +904 -1044
  2. package/dist/base/helix-element.d.ts +20 -8
  3. package/dist/base/helix-element.d.ts.map +1 -1
  4. package/dist/components/hx-accordion/hx-accordion-item.d.ts +7 -4
  5. package/dist/components/hx-accordion/hx-accordion-item.d.ts.map +1 -1
  6. package/dist/components/hx-accordion/hx-accordion-item.styles.d.ts.map +1 -1
  7. package/dist/components/hx-accordion/hx-accordion.d.ts +3 -2
  8. package/dist/components/hx-accordion/hx-accordion.d.ts.map +1 -1
  9. package/dist/components/hx-accordion/hx-accordion.styles.d.ts.map +1 -1
  10. package/dist/components/hx-accordion/index.d.ts +1 -0
  11. package/dist/components/hx-accordion/index.d.ts.map +1 -1
  12. package/dist/components/hx-accordion/index.js +1 -1
  13. package/dist/components/hx-action-bar/hx-action-bar.d.ts +26 -14
  14. package/dist/components/hx-action-bar/hx-action-bar.d.ts.map +1 -1
  15. package/dist/components/hx-action-bar/hx-action-bar.styles.d.ts.map +1 -1
  16. package/dist/components/hx-action-bar/index.js +1 -1
  17. package/dist/components/hx-alert/hx-alert.d.ts +7 -2
  18. package/dist/components/hx-alert/hx-alert.d.ts.map +1 -1
  19. package/dist/components/hx-alert/hx-alert.styles.d.ts.map +1 -1
  20. package/dist/components/hx-alert/index.d.ts +1 -0
  21. package/dist/components/hx-alert/index.d.ts.map +1 -1
  22. package/dist/components/hx-alert/index.js +1 -1
  23. package/dist/components/hx-avatar/hx-avatar.d.ts +3 -2
  24. package/dist/components/hx-avatar/hx-avatar.d.ts.map +1 -1
  25. package/dist/components/hx-avatar/index.js +1 -1
  26. package/dist/components/hx-badge/hx-badge.d.ts +2 -9
  27. package/dist/components/hx-badge/hx-badge.d.ts.map +1 -1
  28. package/dist/components/hx-badge/hx-badge.styles.d.ts.map +1 -1
  29. package/dist/components/hx-badge/index.d.ts +1 -1
  30. package/dist/components/hx-badge/index.d.ts.map +1 -1
  31. package/dist/components/hx-badge/index.js +1 -1
  32. package/dist/components/hx-banner/hx-banner.d.ts +3 -2
  33. package/dist/components/hx-banner/hx-banner.d.ts.map +1 -1
  34. package/dist/components/hx-banner/hx-banner.styles.d.ts.map +1 -1
  35. package/dist/components/hx-banner/index.js +1 -1
  36. package/dist/components/hx-breadcrumb/hx-breadcrumb-item.d.ts +2 -2
  37. package/dist/components/hx-breadcrumb/hx-breadcrumb-item.d.ts.map +1 -1
  38. package/dist/components/hx-breadcrumb/hx-breadcrumb-item.styles.d.ts.map +1 -1
  39. package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts +9 -19
  40. package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts.map +1 -1
  41. package/dist/components/hx-breadcrumb/hx-breadcrumb.styles.d.ts.map +1 -1
  42. package/dist/components/hx-breadcrumb/index.js +1 -1
  43. package/dist/components/hx-button/hx-button.d.ts +31 -9
  44. package/dist/components/hx-button/hx-button.d.ts.map +1 -1
  45. package/dist/components/hx-button/hx-button.styles.d.ts.map +1 -1
  46. package/dist/components/hx-button/index.d.ts +1 -0
  47. package/dist/components/hx-button/index.d.ts.map +1 -1
  48. package/dist/components/hx-button/index.js +1 -1
  49. package/dist/components/hx-button-group/hx-button-group.d.ts +4 -6
  50. package/dist/components/hx-button-group/hx-button-group.d.ts.map +1 -1
  51. package/dist/components/hx-button-group/hx-button-group.styles.d.ts.map +1 -1
  52. package/dist/components/hx-button-group/index.js +1 -1
  53. package/dist/components/hx-card/hx-card.d.ts +19 -2
  54. package/dist/components/hx-card/hx-card.d.ts.map +1 -1
  55. package/dist/components/hx-card/hx-card.styles.d.ts.map +1 -1
  56. package/dist/components/hx-card/index.js +1 -1
  57. package/dist/components/hx-carousel/hx-carousel-item.d.ts +2 -2
  58. package/dist/components/hx-carousel/hx-carousel-item.d.ts.map +1 -1
  59. package/dist/components/hx-carousel/hx-carousel-item.styles.d.ts.map +1 -1
  60. package/dist/components/hx-carousel/hx-carousel.d.ts +2 -2
  61. package/dist/components/hx-carousel/hx-carousel.d.ts.map +1 -1
  62. package/dist/components/hx-carousel/hx-carousel.styles.d.ts.map +1 -1
  63. package/dist/components/hx-carousel/index.js +1 -1
  64. package/dist/components/hx-checkbox/hx-checkbox.d.ts +52 -5
  65. package/dist/components/hx-checkbox/hx-checkbox.d.ts.map +1 -1
  66. package/dist/components/hx-checkbox/hx-checkbox.styles.d.ts.map +1 -1
  67. package/dist/components/hx-checkbox/index.d.ts +1 -0
  68. package/dist/components/hx-checkbox/index.d.ts.map +1 -1
  69. package/dist/components/hx-checkbox/index.js +1 -1
  70. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts +14 -20
  71. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts.map +1 -1
  72. package/dist/components/hx-checkbox-group/hx-checkbox-group.styles.d.ts.map +1 -1
  73. package/dist/components/hx-checkbox-group/index.d.ts +1 -0
  74. package/dist/components/hx-checkbox-group/index.d.ts.map +1 -1
  75. package/dist/components/hx-checkbox-group/index.js +1 -1
  76. package/dist/components/hx-clinical-status/hx-clinical-status.styles.d.ts.map +1 -1
  77. package/dist/components/hx-clinical-status/index.js +1 -1
  78. package/dist/components/hx-code-snippet/hx-code-snippet.d.ts +3 -2
  79. package/dist/components/hx-code-snippet/hx-code-snippet.d.ts.map +1 -1
  80. package/dist/components/hx-code-snippet/hx-code-snippet.styles.d.ts.map +1 -1
  81. package/dist/components/hx-code-snippet/index.js +1 -1
  82. package/dist/components/hx-color-picker/hx-color-picker.d.ts +12 -19
  83. package/dist/components/hx-color-picker/hx-color-picker.d.ts.map +1 -1
  84. package/dist/components/hx-color-picker/hx-color-picker.styles.d.ts.map +1 -1
  85. package/dist/components/hx-color-picker/index.d.ts +1 -0
  86. package/dist/components/hx-color-picker/index.d.ts.map +1 -1
  87. package/dist/components/hx-color-picker/index.js +1 -1
  88. package/dist/components/hx-combobox/hx-combobox.d.ts +45 -22
  89. package/dist/components/hx-combobox/hx-combobox.d.ts.map +1 -1
  90. package/dist/components/hx-combobox/hx-combobox.styles.d.ts.map +1 -1
  91. package/dist/components/hx-combobox/index.d.ts +1 -0
  92. package/dist/components/hx-combobox/index.d.ts.map +1 -1
  93. package/dist/components/hx-combobox/index.js +1 -1
  94. package/dist/components/hx-container/hx-container.d.ts +2 -4
  95. package/dist/components/hx-container/hx-container.d.ts.map +1 -1
  96. package/dist/components/hx-container/hx-container.styles.d.ts.map +1 -1
  97. package/dist/components/hx-container/index.d.ts +0 -1
  98. package/dist/components/hx-container/index.d.ts.map +1 -1
  99. package/dist/components/hx-container/index.js +1 -1
  100. package/dist/components/hx-copy-button/hx-copy-button.d.ts +2 -2
  101. package/dist/components/hx-copy-button/hx-copy-button.d.ts.map +1 -1
  102. package/dist/components/hx-copy-button/hx-copy-button.styles.d.ts.map +1 -1
  103. package/dist/components/hx-copy-button/index.js +1 -1
  104. package/dist/components/hx-counter/hx-counter.d.ts +23 -2
  105. package/dist/components/hx-counter/hx-counter.d.ts.map +1 -1
  106. package/dist/components/hx-counter/hx-counter.styles.d.ts.map +1 -1
  107. package/dist/components/hx-counter/index.js +1 -1
  108. package/dist/components/hx-data-table/hx-data-table.d.ts +46 -2
  109. package/dist/components/hx-data-table/hx-data-table.d.ts.map +1 -1
  110. package/dist/components/hx-data-table/hx-data-table.styles.d.ts.map +1 -1
  111. package/dist/components/hx-data-table/index.d.ts +1 -0
  112. package/dist/components/hx-data-table/index.d.ts.map +1 -1
  113. package/dist/components/hx-data-table/index.js +1 -1
  114. package/dist/components/hx-date-picker/hx-date-picker.d.ts +35 -35
  115. package/dist/components/hx-date-picker/hx-date-picker.d.ts.map +1 -1
  116. package/dist/components/hx-date-picker/hx-date-picker.styles.d.ts.map +1 -1
  117. package/dist/components/hx-date-picker/index.d.ts +1 -0
  118. package/dist/components/hx-date-picker/index.d.ts.map +1 -1
  119. package/dist/components/hx-date-picker/index.js +1 -1
  120. package/dist/components/hx-dialog/hx-dialog.d.ts +44 -5
  121. package/dist/components/hx-dialog/hx-dialog.d.ts.map +1 -1
  122. package/dist/components/hx-dialog/hx-dialog.styles.d.ts.map +1 -1
  123. package/dist/components/hx-dialog/index.js +1 -1
  124. package/dist/components/hx-divider/hx-divider.d.ts +3 -4
  125. package/dist/components/hx-divider/hx-divider.d.ts.map +1 -1
  126. package/dist/components/hx-divider/hx-divider.styles.d.ts.map +1 -1
  127. package/dist/components/hx-divider/index.d.ts +0 -1
  128. package/dist/components/hx-divider/index.d.ts.map +1 -1
  129. package/dist/components/hx-divider/index.js +1 -1
  130. package/dist/components/hx-drawer/hx-drawer.d.ts +39 -2
  131. package/dist/components/hx-drawer/hx-drawer.d.ts.map +1 -1
  132. package/dist/components/hx-drawer/hx-drawer.styles.d.ts.map +1 -1
  133. package/dist/components/hx-drawer/index.js +1 -1
  134. package/dist/components/hx-dropdown/hx-dropdown.d.ts +11 -7
  135. package/dist/components/hx-dropdown/hx-dropdown.d.ts.map +1 -1
  136. package/dist/components/hx-dropdown/hx-dropdown.styles.d.ts.map +1 -1
  137. package/dist/components/hx-dropdown/index.js +1 -1
  138. package/dist/components/hx-field/hx-field.d.ts +4 -3
  139. package/dist/components/hx-field/hx-field.d.ts.map +1 -1
  140. package/dist/components/hx-field/hx-field.styles.d.ts.map +1 -1
  141. package/dist/components/hx-field/index.js +1 -1
  142. package/dist/components/hx-field-label/hx-field-label.d.ts +2 -2
  143. package/dist/components/hx-field-label/hx-field-label.d.ts.map +1 -1
  144. package/dist/components/hx-field-label/hx-field-label.styles.d.ts.map +1 -1
  145. package/dist/components/hx-field-label/index.js +1 -1
  146. package/dist/components/hx-file-upload/hx-file-upload.d.ts +38 -18
  147. package/dist/components/hx-file-upload/hx-file-upload.d.ts.map +1 -1
  148. package/dist/components/hx-file-upload/hx-file-upload.styles.d.ts.map +1 -1
  149. package/dist/components/hx-file-upload/index.d.ts +1 -0
  150. package/dist/components/hx-file-upload/index.d.ts.map +1 -1
  151. package/dist/components/hx-file-upload/index.js +1 -1
  152. package/dist/components/hx-form/hx-form.d.ts +2 -2
  153. package/dist/components/hx-form/hx-form.d.ts.map +1 -1
  154. package/dist/components/hx-form/hx-form.styles.d.ts +8 -0
  155. package/dist/components/hx-form/hx-form.styles.d.ts.map +1 -1
  156. package/dist/components/hx-form/index.js +1 -1
  157. package/dist/components/hx-format-date/hx-format-date.d.ts +2 -2
  158. package/dist/components/hx-format-date/hx-format-date.d.ts.map +1 -1
  159. package/dist/components/hx-format-date/hx-format-date.styles.d.ts.map +1 -1
  160. package/dist/components/hx-format-date/index.js +1 -1
  161. package/dist/components/hx-grid/hx-grid.d.ts +4 -3
  162. package/dist/components/hx-grid/hx-grid.d.ts.map +1 -1
  163. package/dist/components/hx-grid/hx-grid.styles.d.ts.map +1 -1
  164. package/dist/components/hx-grid/index.js +1 -1
  165. package/dist/components/hx-help-text/hx-help-text.d.ts +2 -4
  166. package/dist/components/hx-help-text/hx-help-text.d.ts.map +1 -1
  167. package/dist/components/hx-help-text/hx-help-text.styles.d.ts.map +1 -1
  168. package/dist/components/hx-help-text/index.js +1 -1
  169. package/dist/components/hx-icon/hx-icon.d.ts +17 -2
  170. package/dist/components/hx-icon/hx-icon.d.ts.map +1 -1
  171. package/dist/components/hx-icon/hx-icon.styles.d.ts.map +1 -1
  172. package/dist/components/hx-icon/index.js +1 -1
  173. package/dist/components/hx-icon-button/hx-icon-button.d.ts +10 -14
  174. package/dist/components/hx-icon-button/hx-icon-button.d.ts.map +1 -1
  175. package/dist/components/hx-icon-button/hx-icon-button.styles.d.ts.map +1 -1
  176. package/dist/components/hx-icon-button/index.js +1 -1
  177. package/dist/components/hx-image/hx-image.d.ts +2 -2
  178. package/dist/components/hx-image/hx-image.d.ts.map +1 -1
  179. package/dist/components/hx-image/hx-image.styles.d.ts.map +1 -1
  180. package/dist/components/hx-image/index.js +1 -1
  181. package/dist/components/hx-link/hx-link.d.ts +4 -2
  182. package/dist/components/hx-link/hx-link.d.ts.map +1 -1
  183. package/dist/components/hx-link/hx-link.styles.d.ts.map +1 -1
  184. package/dist/components/hx-link/index.js +1 -1
  185. package/dist/components/hx-list/hx-list-item.d.ts +3 -2
  186. package/dist/components/hx-list/hx-list-item.d.ts.map +1 -1
  187. package/dist/components/hx-list/hx-list-item.styles.d.ts.map +1 -1
  188. package/dist/components/hx-list/hx-list.d.ts +3 -2
  189. package/dist/components/hx-list/hx-list.d.ts.map +1 -1
  190. package/dist/components/hx-list/hx-list.styles.d.ts.map +1 -1
  191. package/dist/components/hx-list/index.js +1 -1
  192. package/dist/components/hx-menu/hx-menu-divider.d.ts +2 -2
  193. package/dist/components/hx-menu/hx-menu-divider.d.ts.map +1 -1
  194. package/dist/components/hx-menu/hx-menu-divider.styles.d.ts.map +1 -1
  195. package/dist/components/hx-menu/hx-menu-item.d.ts +2 -2
  196. package/dist/components/hx-menu/hx-menu-item.d.ts.map +1 -1
  197. package/dist/components/hx-menu/hx-menu-item.styles.d.ts.map +1 -1
  198. package/dist/components/hx-menu/hx-menu.d.ts +2 -2
  199. package/dist/components/hx-menu/hx-menu.d.ts.map +1 -1
  200. package/dist/components/hx-menu/hx-menu.styles.d.ts.map +1 -1
  201. package/dist/components/hx-menu/index.js +1 -1
  202. package/dist/components/hx-meter/hx-meter.d.ts +3 -4
  203. package/dist/components/hx-meter/hx-meter.d.ts.map +1 -1
  204. package/dist/components/hx-meter/hx-meter.styles.d.ts.map +1 -1
  205. package/dist/components/hx-meter/index.js +1 -1
  206. package/dist/components/hx-nav/hx-nav.d.ts +2 -4
  207. package/dist/components/hx-nav/hx-nav.d.ts.map +1 -1
  208. package/dist/components/hx-nav/hx-nav.styles.d.ts.map +1 -1
  209. package/dist/components/hx-nav/index.d.ts +1 -1
  210. package/dist/components/hx-nav/index.d.ts.map +1 -1
  211. package/dist/components/hx-nav/index.js +1 -1
  212. package/dist/components/hx-number-input/hx-number-input.d.ts +14 -20
  213. package/dist/components/hx-number-input/hx-number-input.d.ts.map +1 -1
  214. package/dist/components/hx-number-input/hx-number-input.styles.d.ts.map +1 -1
  215. package/dist/components/hx-number-input/index.d.ts +1 -0
  216. package/dist/components/hx-number-input/index.d.ts.map +1 -1
  217. package/dist/components/hx-number-input/index.js +1 -1
  218. package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts +2 -2
  219. package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts.map +1 -1
  220. package/dist/components/hx-overflow-menu/hx-overflow-menu.styles.d.ts.map +1 -1
  221. package/dist/components/hx-overflow-menu/index.js +1 -1
  222. package/dist/components/hx-pagination/hx-pagination.d.ts +10 -2
  223. package/dist/components/hx-pagination/hx-pagination.d.ts.map +1 -1
  224. package/dist/components/hx-pagination/index.d.ts +1 -0
  225. package/dist/components/hx-pagination/index.d.ts.map +1 -1
  226. package/dist/components/hx-pagination/index.js +1 -1
  227. package/dist/components/hx-patient-banner/hx-patient-banner.d.ts +47 -5
  228. package/dist/components/hx-patient-banner/hx-patient-banner.d.ts.map +1 -1
  229. package/dist/components/hx-patient-banner/hx-patient-banner.styles.d.ts.map +1 -1
  230. package/dist/components/hx-patient-banner/index.js +1 -1
  231. package/dist/components/hx-phi-field/hx-phi-field.d.ts +87 -6
  232. package/dist/components/hx-phi-field/hx-phi-field.d.ts.map +1 -1
  233. package/dist/components/hx-phi-field/hx-phi-field.styles.d.ts.map +1 -1
  234. package/dist/components/hx-phi-field/index.js +1 -1
  235. package/dist/components/hx-popover/hx-popover.d.ts +4 -2
  236. package/dist/components/hx-popover/hx-popover.d.ts.map +1 -1
  237. package/dist/components/hx-popover/hx-popover.styles.d.ts.map +1 -1
  238. package/dist/components/hx-popover/index.js +1 -1
  239. package/dist/components/hx-popup/hx-popup.d.ts +7 -2
  240. package/dist/components/hx-popup/hx-popup.d.ts.map +1 -1
  241. package/dist/components/hx-popup/hx-popup.styles.d.ts.map +1 -1
  242. package/dist/components/hx-popup/index.js +1 -1
  243. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts +3 -4
  244. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts.map +1 -1
  245. package/dist/components/hx-progress-bar/index.js +1 -1
  246. package/dist/components/hx-progress-ring/hx-progress-ring.d.ts +3 -2
  247. package/dist/components/hx-progress-ring/hx-progress-ring.d.ts.map +1 -1
  248. package/dist/components/hx-progress-ring/hx-progress-ring.styles.d.ts.map +1 -1
  249. package/dist/components/hx-progress-ring/index.js +1 -1
  250. package/dist/components/hx-prose/hx-prose.d.ts +3 -2
  251. package/dist/components/hx-prose/hx-prose.d.ts.map +1 -1
  252. package/dist/components/hx-prose/hx-prose.styles.d.ts +8 -0
  253. package/dist/components/hx-prose/hx-prose.styles.d.ts.map +1 -1
  254. package/dist/components/hx-prose/index.js +1 -1
  255. package/dist/components/hx-radio-group/hx-radio-group.d.ts +14 -39
  256. package/dist/components/hx-radio-group/hx-radio-group.d.ts.map +1 -1
  257. package/dist/components/hx-radio-group/hx-radio-group.styles.d.ts.map +1 -1
  258. package/dist/components/hx-radio-group/hx-radio.d.ts +19 -4
  259. package/dist/components/hx-radio-group/hx-radio.d.ts.map +1 -1
  260. package/dist/components/hx-radio-group/hx-radio.styles.d.ts.map +1 -1
  261. package/dist/components/hx-radio-group/index.d.ts +1 -0
  262. package/dist/components/hx-radio-group/index.d.ts.map +1 -1
  263. package/dist/components/hx-radio-group/index.js +1 -1
  264. package/dist/components/hx-rating/hx-rating.d.ts +9 -20
  265. package/dist/components/hx-rating/hx-rating.d.ts.map +1 -1
  266. package/dist/components/hx-rating/hx-rating.styles.d.ts.map +1 -1
  267. package/dist/components/hx-rating/index.d.ts +1 -0
  268. package/dist/components/hx-rating/index.d.ts.map +1 -1
  269. package/dist/components/hx-rating/index.js +1 -1
  270. package/dist/components/hx-select/hx-select.d.ts +26 -17
  271. package/dist/components/hx-select/hx-select.d.ts.map +1 -1
  272. package/dist/components/hx-select/hx-select.styles.d.ts.map +1 -1
  273. package/dist/components/hx-select/index.d.ts +1 -0
  274. package/dist/components/hx-select/index.d.ts.map +1 -1
  275. package/dist/components/hx-select/index.js +1 -1
  276. package/dist/components/hx-side-nav/hx-nav-item.d.ts +2 -5
  277. package/dist/components/hx-side-nav/hx-nav-item.d.ts.map +1 -1
  278. package/dist/components/hx-side-nav/hx-nav-item.styles.d.ts.map +1 -1
  279. package/dist/components/hx-side-nav/hx-side-nav.d.ts +3 -2
  280. package/dist/components/hx-side-nav/hx-side-nav.d.ts.map +1 -1
  281. package/dist/components/hx-side-nav/hx-side-nav.styles.d.ts.map +1 -1
  282. package/dist/components/hx-side-nav/index.js +1 -1
  283. package/dist/components/hx-skeleton/hx-skeleton.d.ts +4 -3
  284. package/dist/components/hx-skeleton/hx-skeleton.d.ts.map +1 -1
  285. package/dist/components/hx-skeleton/hx-skeleton.styles.d.ts.map +1 -1
  286. package/dist/components/hx-skeleton/index.js +1 -1
  287. package/dist/components/hx-slider/hx-slider.d.ts +18 -22
  288. package/dist/components/hx-slider/hx-slider.d.ts.map +1 -1
  289. package/dist/components/hx-slider/hx-slider.styles.d.ts.map +1 -1
  290. package/dist/components/hx-slider/index.d.ts +1 -0
  291. package/dist/components/hx-slider/index.d.ts.map +1 -1
  292. package/dist/components/hx-slider/index.js +1 -1
  293. package/dist/components/hx-spinner/hx-spinner.d.ts +2 -2
  294. package/dist/components/hx-spinner/hx-spinner.d.ts.map +1 -1
  295. package/dist/components/hx-spinner/hx-spinner.styles.d.ts.map +1 -1
  296. package/dist/components/hx-spinner/index.js +1 -1
  297. package/dist/components/hx-split-button/hx-split-button.d.ts +10 -4
  298. package/dist/components/hx-split-button/hx-split-button.d.ts.map +1 -1
  299. package/dist/components/hx-split-button/hx-split-button.styles.d.ts.map +1 -1
  300. package/dist/components/hx-split-button/index.js +1 -1
  301. package/dist/components/hx-split-panel/hx-split-panel.d.ts +12 -2
  302. package/dist/components/hx-split-panel/hx-split-panel.d.ts.map +1 -1
  303. package/dist/components/hx-split-panel/hx-split-panel.styles.d.ts.map +1 -1
  304. package/dist/components/hx-split-panel/index.js +1 -1
  305. package/dist/components/hx-stack/hx-stack.d.ts +2 -2
  306. package/dist/components/hx-stack/hx-stack.d.ts.map +1 -1
  307. package/dist/components/hx-stack/hx-stack.styles.d.ts.map +1 -1
  308. package/dist/components/hx-stack/index.js +1 -1
  309. package/dist/components/hx-stat/hx-stat.d.ts +6 -2
  310. package/dist/components/hx-stat/hx-stat.d.ts.map +1 -1
  311. package/dist/components/hx-stat/hx-stat.styles.d.ts.map +1 -1
  312. package/dist/components/hx-stat/index.js +1 -1
  313. package/dist/components/hx-status-indicator/hx-status-indicator.d.ts +3 -2
  314. package/dist/components/hx-status-indicator/hx-status-indicator.d.ts.map +1 -1
  315. package/dist/components/hx-status-indicator/hx-status-indicator.styles.d.ts.map +1 -1
  316. package/dist/components/hx-status-indicator/index.js +1 -1
  317. package/dist/components/hx-steps/hx-step.d.ts +3 -2
  318. package/dist/components/hx-steps/hx-step.d.ts.map +1 -1
  319. package/dist/components/hx-steps/hx-step.styles.d.ts.map +1 -1
  320. package/dist/components/hx-steps/hx-steps.d.ts +11 -4
  321. package/dist/components/hx-steps/hx-steps.d.ts.map +1 -1
  322. package/dist/components/hx-steps/hx-steps.styles.d.ts.map +1 -1
  323. package/dist/components/hx-steps/index.js +1 -1
  324. package/dist/components/hx-structured-list/hx-structured-list.d.ts +3 -3
  325. package/dist/components/hx-structured-list/hx-structured-list.d.ts.map +1 -1
  326. package/dist/components/hx-structured-list/hx-structured-list.styles.d.ts.map +1 -1
  327. package/dist/components/hx-structured-list/index.js +1 -1
  328. package/dist/components/hx-style-scope/hx-style-scope.d.ts +4 -3
  329. package/dist/components/hx-style-scope/hx-style-scope.d.ts.map +1 -1
  330. package/dist/components/hx-style-scope/hx-style-scope.styles.d.ts.map +1 -1
  331. package/dist/components/hx-style-scope/index.js +1 -1
  332. package/dist/components/hx-switch/hx-switch.d.ts +25 -29
  333. package/dist/components/hx-switch/hx-switch.d.ts.map +1 -1
  334. package/dist/components/hx-switch/hx-switch.styles.d.ts.map +1 -1
  335. package/dist/components/hx-switch/index.d.ts +2 -1
  336. package/dist/components/hx-switch/index.d.ts.map +1 -1
  337. package/dist/components/hx-switch/index.js +1 -1
  338. package/dist/components/hx-table/hx-table.d.ts +3 -2
  339. package/dist/components/hx-table/hx-table.d.ts.map +1 -1
  340. package/dist/components/hx-table/hx-table.styles.d.ts.map +1 -1
  341. package/dist/components/hx-table/hx-tbody.d.ts +2 -2
  342. package/dist/components/hx-table/hx-tbody.d.ts.map +1 -1
  343. package/dist/components/hx-table/hx-td.d.ts +2 -2
  344. package/dist/components/hx-table/hx-td.d.ts.map +1 -1
  345. package/dist/components/hx-table/hx-tfoot.d.ts +2 -2
  346. package/dist/components/hx-table/hx-tfoot.d.ts.map +1 -1
  347. package/dist/components/hx-table/hx-th.d.ts +2 -2
  348. package/dist/components/hx-table/hx-th.d.ts.map +1 -1
  349. package/dist/components/hx-table/hx-thead.d.ts +2 -2
  350. package/dist/components/hx-table/hx-thead.d.ts.map +1 -1
  351. package/dist/components/hx-table/hx-tr.d.ts +2 -2
  352. package/dist/components/hx-table/hx-tr.d.ts.map +1 -1
  353. package/dist/components/hx-table/index.js +1 -1
  354. package/dist/components/hx-tabs/hx-tab-panel.d.ts +2 -2
  355. package/dist/components/hx-tabs/hx-tab-panel.d.ts.map +1 -1
  356. package/dist/components/hx-tabs/hx-tab-panel.styles.d.ts.map +1 -1
  357. package/dist/components/hx-tabs/hx-tab.d.ts +2 -2
  358. package/dist/components/hx-tabs/hx-tab.d.ts.map +1 -1
  359. package/dist/components/hx-tabs/hx-tab.styles.d.ts.map +1 -1
  360. package/dist/components/hx-tabs/hx-tabs.d.ts +14 -2
  361. package/dist/components/hx-tabs/hx-tabs.d.ts.map +1 -1
  362. package/dist/components/hx-tabs/hx-tabs.styles.d.ts.map +1 -1
  363. package/dist/components/hx-tabs/index.d.ts +1 -0
  364. package/dist/components/hx-tabs/index.d.ts.map +1 -1
  365. package/dist/components/hx-tabs/index.js +1 -1
  366. package/dist/components/hx-tag/hx-tag.d.ts +2 -4
  367. package/dist/components/hx-tag/hx-tag.d.ts.map +1 -1
  368. package/dist/components/hx-tag/hx-tag.styles.d.ts.map +1 -1
  369. package/dist/components/hx-tag/index.d.ts +0 -2
  370. package/dist/components/hx-tag/index.d.ts.map +1 -1
  371. package/dist/components/hx-tag/index.js +1 -1
  372. package/dist/components/hx-text/hx-text.d.ts +2 -2
  373. package/dist/components/hx-text/hx-text.d.ts.map +1 -1
  374. package/dist/components/hx-text/hx-text.styles.d.ts.map +1 -1
  375. package/dist/components/hx-text/index.js +1 -1
  376. package/dist/components/hx-text-input/hx-text-input.d.ts +34 -7
  377. package/dist/components/hx-text-input/hx-text-input.d.ts.map +1 -1
  378. package/dist/components/hx-text-input/hx-text-input.styles.d.ts.map +1 -1
  379. package/dist/components/hx-text-input/index.d.ts +1 -0
  380. package/dist/components/hx-text-input/index.d.ts.map +1 -1
  381. package/dist/components/hx-text-input/index.js +1 -1
  382. package/dist/components/hx-textarea/hx-textarea.d.ts +41 -25
  383. package/dist/components/hx-textarea/hx-textarea.d.ts.map +1 -1
  384. package/dist/components/hx-textarea/hx-textarea.styles.d.ts.map +1 -1
  385. package/dist/components/hx-textarea/index.d.ts +1 -0
  386. package/dist/components/hx-textarea/index.d.ts.map +1 -1
  387. package/dist/components/hx-textarea/index.js +1 -1
  388. package/dist/components/hx-theme/hx-theme.d.ts +3 -11
  389. package/dist/components/hx-theme/hx-theme.d.ts.map +1 -1
  390. package/dist/components/hx-theme/hx-theme.styles.d.ts.map +1 -1
  391. package/dist/components/hx-theme/index.d.ts +0 -2
  392. package/dist/components/hx-theme/index.d.ts.map +1 -1
  393. package/dist/components/hx-theme/index.js +1 -1
  394. package/dist/components/hx-time-picker/hx-time-picker.d.ts +13 -31
  395. package/dist/components/hx-time-picker/hx-time-picker.d.ts.map +1 -1
  396. package/dist/components/hx-time-picker/hx-time-picker.styles.d.ts.map +1 -1
  397. package/dist/components/hx-time-picker/index.d.ts +1 -0
  398. package/dist/components/hx-time-picker/index.d.ts.map +1 -1
  399. package/dist/components/hx-time-picker/index.js +1 -1
  400. package/dist/components/hx-toast/hx-toast-stack.d.ts +2 -2
  401. package/dist/components/hx-toast/hx-toast-stack.d.ts.map +1 -1
  402. package/dist/components/hx-toast/hx-toast.d.ts +3 -2
  403. package/dist/components/hx-toast/hx-toast.d.ts.map +1 -1
  404. package/dist/components/hx-toast/hx-toast.styles.d.ts.map +1 -1
  405. package/dist/components/hx-toast/index.js +1 -1
  406. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts +10 -13
  407. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts.map +1 -1
  408. package/dist/components/hx-toggle-button/hx-toggle-button.styles.d.ts.map +1 -1
  409. package/dist/components/hx-toggle-button/index.d.ts +1 -0
  410. package/dist/components/hx-toggle-button/index.d.ts.map +1 -1
  411. package/dist/components/hx-toggle-button/index.js +1 -1
  412. package/dist/components/hx-tooltip/hx-tooltip.d.ts +2 -2
  413. package/dist/components/hx-tooltip/hx-tooltip.d.ts.map +1 -1
  414. package/dist/components/hx-tooltip/hx-tooltip.styles.d.ts.map +1 -1
  415. package/dist/components/hx-tooltip/index.js +1 -1
  416. package/dist/components/hx-top-nav/hx-top-nav.d.ts +2 -2
  417. package/dist/components/hx-top-nav/hx-top-nav.d.ts.map +1 -1
  418. package/dist/components/hx-top-nav/hx-top-nav.styles.d.ts.map +1 -1
  419. package/dist/components/hx-top-nav/index.js +1 -1
  420. package/dist/components/hx-tree-view/hx-tree-item.d.ts +2 -4
  421. package/dist/components/hx-tree-view/hx-tree-item.d.ts.map +1 -1
  422. package/dist/components/hx-tree-view/hx-tree-item.styles.d.ts.map +1 -1
  423. package/dist/components/hx-tree-view/hx-tree-view.d.ts +2 -4
  424. package/dist/components/hx-tree-view/hx-tree-view.d.ts.map +1 -1
  425. package/dist/components/hx-tree-view/hx-tree-view.styles.d.ts.map +1 -1
  426. package/dist/components/hx-tree-view/index.d.ts +0 -4
  427. package/dist/components/hx-tree-view/index.d.ts.map +1 -1
  428. package/dist/components/hx-tree-view/index.js +1 -1
  429. package/dist/components/hx-visually-hidden/hx-visually-hidden.d.ts +2 -2
  430. package/dist/components/hx-visually-hidden/hx-visually-hidden.d.ts.map +1 -1
  431. package/dist/components/hx-visually-hidden/hx-visually-hidden.styles.d.ts.map +1 -1
  432. package/dist/components/hx-visually-hidden/index.js +1 -1
  433. package/dist/css/helix-all.css +3717 -786
  434. package/dist/css/helix-core.css +277 -64
  435. package/dist/css/helix-data.css +86 -7
  436. package/dist/css/helix-feedback.css +215 -69
  437. package/dist/css/helix-forms.css +2122 -127
  438. package/dist/css/helix-layout.css +53 -7
  439. package/dist/css/helix-media.css +40 -16
  440. package/dist/css/helix-navigation.css +209 -48
  441. package/dist/css/helix-overlay.css +99 -12
  442. package/dist/css/helix-tokens.css +30 -11
  443. package/dist/css/helix-utility.css +118 -9
  444. package/dist/css/hx-accordion.css +9 -1
  445. package/dist/css/hx-action-bar.css +17 -3
  446. package/dist/css/hx-alert.css +39 -18
  447. package/dist/css/hx-avatar.css +1 -1
  448. package/dist/css/hx-badge.css +59 -24
  449. package/dist/css/hx-banner.css +35 -18
  450. package/dist/css/hx-breadcrumb.css +27 -0
  451. package/dist/css/hx-button-group.css +13 -0
  452. package/dist/css/hx-button.css +6 -3
  453. package/dist/css/hx-card.css +18 -6
  454. package/dist/css/hx-carousel.css +40 -16
  455. package/dist/css/hx-checkbox-group.css +36 -4
  456. package/dist/css/hx-checkbox.css +74 -8
  457. package/dist/css/hx-clinical-status.css +46 -23
  458. package/dist/css/hx-code-snippet.css +25 -3
  459. package/dist/css/hx-color-picker.css +276 -1
  460. package/dist/css/hx-combobox.css +391 -1
  461. package/dist/css/hx-container.css +10 -6
  462. package/dist/css/hx-copy-button.css +31 -3
  463. package/dist/css/hx-counter.css +11 -1
  464. package/dist/css/hx-data-table.css +24 -1
  465. package/dist/css/hx-date-picker.css +437 -1
  466. package/dist/css/hx-dialog.css +23 -2
  467. package/dist/css/hx-divider.css +8 -0
  468. package/dist/css/hx-drawer.css +22 -1
  469. package/dist/css/hx-dropdown.css +10 -1
  470. package/dist/css/hx-field-label.css +18 -2
  471. package/dist/css/hx-field.css +39 -3
  472. package/dist/css/hx-file-upload.css +60 -12
  473. package/dist/css/hx-format-date.css +11 -0
  474. package/dist/css/hx-grid.css +10 -0
  475. package/dist/css/hx-help-text.css +25 -5
  476. package/dist/css/hx-icon-button.css +27 -0
  477. package/dist/css/hx-icon.css +8 -0
  478. package/dist/css/hx-image.css +11 -3
  479. package/dist/css/hx-link.css +24 -6
  480. package/dist/css/hx-list.css +10 -0
  481. package/dist/css/hx-menu.css +10 -2
  482. package/dist/css/hx-meter.css +28 -14
  483. package/dist/css/hx-nav.css +27 -12
  484. package/dist/css/hx-number-input.css +78 -0
  485. package/dist/css/hx-overflow-menu.css +41 -10
  486. package/dist/css/hx-pagination.css +13 -13
  487. package/dist/css/hx-patient-banner.css +30 -10
  488. package/dist/css/hx-phi-field.css +20 -3
  489. package/dist/css/hx-popover.css +16 -4
  490. package/dist/css/hx-popup.css +12 -0
  491. package/dist/css/hx-progress-bar.css +1 -1
  492. package/dist/css/hx-progress-ring.css +26 -4
  493. package/dist/css/hx-radio-group.css +35 -3
  494. package/dist/css/hx-rating.css +45 -4
  495. package/dist/css/hx-select.css +89 -9
  496. package/dist/css/hx-side-nav.css +26 -0
  497. package/dist/css/hx-skeleton.css +13 -1
  498. package/dist/css/hx-slider.css +16 -11
  499. package/dist/css/hx-spinner.css +15 -3
  500. package/dist/css/hx-split-button.css +37 -2
  501. package/dist/css/hx-split-panel.css +14 -0
  502. package/dist/css/hx-stack.css +10 -0
  503. package/dist/css/hx-stat.css +52 -5
  504. package/dist/css/hx-status-indicator.css +15 -2
  505. package/dist/css/hx-steps.css +12 -0
  506. package/dist/css/hx-structured-list.css +18 -2
  507. package/dist/css/hx-style-scope.css +11 -0
  508. package/dist/css/hx-switch.css +66 -4
  509. package/dist/css/hx-table.css +9 -1
  510. package/dist/css/hx-tabs.css +15 -3
  511. package/dist/css/hx-tag.css +24 -12
  512. package/dist/css/hx-text-input.css +71 -9
  513. package/dist/css/hx-text.css +38 -5
  514. package/dist/css/hx-textarea.css +71 -15
  515. package/dist/css/hx-theme.css +11 -0
  516. package/dist/css/hx-time-picker.css +224 -1
  517. package/dist/css/hx-toast.css +19 -7
  518. package/dist/css/hx-toggle-button.css +41 -4
  519. package/dist/css/hx-tooltip.css +16 -4
  520. package/dist/css/hx-top-nav.css +29 -8
  521. package/dist/css/hx-tree-view.css +9 -0
  522. package/dist/css/hx-visually-hidden.css +12 -0
  523. package/dist/css/index.css +1 -1
  524. package/dist/css/manifest.json +49 -11
  525. package/dist/form-test-utils.d.ts +45 -0
  526. package/dist/form-test-utils.d.ts.map +1 -0
  527. package/dist/index.d.ts +28 -14
  528. package/dist/index.d.ts.map +1 -1
  529. package/dist/index.js +189 -176
  530. package/dist/index.js.map +1 -1
  531. package/dist/mixins/FormMixin.d.ts +24 -5
  532. package/dist/mixins/FormMixin.d.ts.map +1 -1
  533. package/dist/mixins/aria-delegation.d.ts +1 -1
  534. package/dist/mixins/aria-delegation.d.ts.map +1 -1
  535. package/dist/mixins/index.d.ts +3 -1
  536. package/dist/mixins/index.d.ts.map +1 -1
  537. package/dist/shared/{FormMixin-Bjvw20G5.js → FormMixin-B8PXk5RQ.js} +31 -14
  538. package/dist/shared/FormMixin-B8PXk5RQ.js.map +1 -0
  539. package/dist/shared/{aria-delegation-CBP9eQ0M.js → aria-delegation-Doq6RRUy.js} +6 -6
  540. package/dist/shared/aria-delegation-Doq6RRUy.js.map +1 -0
  541. package/dist/shared/{id-counter-JhvVCnjh.js → helix-element-BNEYeiys.js} +35 -44
  542. package/dist/shared/helix-element-BNEYeiys.js.map +1 -0
  543. package/dist/shared/{hx-accordion-CpfO0YQo.js → hx-accordion-Wt52OOZD.js} +127 -80
  544. package/dist/shared/hx-accordion-Wt52OOZD.js.map +1 -0
  545. package/dist/shared/{hx-action-bar-BpY1Z1UV.js → hx-action-bar-BKMADbHj.js} +90 -75
  546. package/dist/shared/hx-action-bar-BKMADbHj.js.map +1 -0
  547. package/dist/shared/{hx-alert-CHOjTBds.js → hx-alert-D7n94HwI.js} +47 -26
  548. package/dist/shared/hx-alert-D7n94HwI.js.map +1 -0
  549. package/dist/shared/{hx-avatar-an-WsuLl.js → hx-avatar-iLYzu8MJ.js} +10 -10
  550. package/dist/shared/hx-avatar-iLYzu8MJ.js.map +1 -0
  551. package/dist/shared/{hx-badge-DDXTLoWi.js → hx-badge-CVCmMPyW.js} +78 -43
  552. package/dist/shared/hx-badge-CVCmMPyW.js.map +1 -0
  553. package/dist/shared/{hx-banner-B-WEDiq7.js → hx-banner-C_He7Tr4.js} +60 -43
  554. package/dist/shared/hx-banner-C_He7Tr4.js.map +1 -0
  555. package/dist/shared/{hx-breadcrumb-item-DzLyeL5Z.js → hx-breadcrumb-item-CldCwD1d.js} +123 -83
  556. package/dist/shared/hx-breadcrumb-item-CldCwD1d.js.map +1 -0
  557. package/dist/shared/{hx-button-DoN8jjQT.js → hx-button-Ddl-T6T-.js} +117 -92
  558. package/dist/shared/hx-button-Ddl-T6T-.js.map +1 -0
  559. package/dist/shared/{hx-button-group-BXlMQTt_.js → hx-button-group-BJOGWoMa.js} +33 -21
  560. package/dist/shared/hx-button-group-BJOGWoMa.js.map +1 -0
  561. package/dist/shared/{hx-card-BgXZXDuc.js → hx-card-ycveujjL.js} +64 -38
  562. package/dist/shared/hx-card-ycveujjL.js.map +1 -0
  563. package/dist/shared/{hx-carousel-item-Dwt9Pphz.js → hx-carousel-item-D_dCv61-.js} +76 -41
  564. package/dist/shared/hx-carousel-item-D_dCv61-.js.map +1 -0
  565. package/dist/shared/{hx-checkbox-CTEZ9IFq.js → hx-checkbox-DkkoWoye.js} +163 -79
  566. package/dist/shared/hx-checkbox-DkkoWoye.js.map +1 -0
  567. package/dist/shared/{hx-checkbox-group-DThZeN5d.js → hx-checkbox-group-C3poJ-Zw.js} +105 -79
  568. package/dist/shared/hx-checkbox-group-C3poJ-Zw.js.map +1 -0
  569. package/dist/shared/{hx-clinical-status-m4soOOwg.js → hx-clinical-status-BS5lcddT.js} +74 -51
  570. package/dist/shared/hx-clinical-status-BS5lcddT.js.map +1 -0
  571. package/dist/shared/{hx-code-snippet-CoLYvX1Z.js → hx-code-snippet-B7wUKzyb.js} +35 -13
  572. package/dist/shared/{hx-code-snippet-CoLYvX1Z.js.map → hx-code-snippet-B7wUKzyb.js.map} +1 -1
  573. package/dist/shared/{hx-color-picker-DhOaNe6-.js → hx-color-picker-DBaKTVLr.js} +360 -98
  574. package/dist/shared/hx-color-picker-DBaKTVLr.js.map +1 -0
  575. package/dist/shared/hx-combobox-BmgYT7Ar.js +929 -0
  576. package/dist/shared/hx-combobox-BmgYT7Ar.js.map +1 -0
  577. package/dist/shared/{hx-container-31QT9KV_.js → hx-container-DVI7sxfX.js} +27 -23
  578. package/dist/shared/hx-container-DVI7sxfX.js.map +1 -0
  579. package/dist/shared/{hx-copy-button-BoM0WsMd.js → hx-copy-button-8deNUdwP.js} +68 -40
  580. package/dist/shared/hx-copy-button-8deNUdwP.js.map +1 -0
  581. package/dist/shared/{hx-counter-CP42cSVK.js → hx-counter-CKfl_g8K.js} +88 -43
  582. package/dist/shared/hx-counter-CKfl_g8K.js.map +1 -0
  583. package/dist/shared/{hx-data-table-D5Ne-goy.js → hx-data-table-B6h0RPn0.js} +203 -132
  584. package/dist/shared/hx-data-table-B6h0RPn0.js.map +1 -0
  585. package/dist/shared/hx-date-picker-Dq2Nb68_.js +1077 -0
  586. package/dist/shared/hx-date-picker-Dq2Nb68_.js.map +1 -0
  587. package/dist/shared/{hx-dialog-D4ubstxx.js → hx-dialog-CvIlY0Tc.js} +85 -52
  588. package/dist/shared/hx-dialog-CvIlY0Tc.js.map +1 -0
  589. package/dist/shared/{hx-divider-BBtOLHRP.js → hx-divider-DwpOrzMW.js} +23 -15
  590. package/dist/shared/hx-divider-DwpOrzMW.js.map +1 -0
  591. package/dist/shared/{hx-drawer--WDLuWtS.js → hx-drawer-Cx2ZJhBe.js} +101 -66
  592. package/dist/shared/hx-drawer-Cx2ZJhBe.js.map +1 -0
  593. package/dist/shared/{hx-dropdown-n5-XSmiV.js → hx-dropdown-BjDrPUq5.js} +55 -46
  594. package/dist/shared/hx-dropdown-BjDrPUq5.js.map +1 -0
  595. package/dist/shared/{hx-field-CwT9tki1.js → hx-field-Dp3qQMut.js} +61 -25
  596. package/dist/shared/hx-field-Dp3qQMut.js.map +1 -0
  597. package/dist/shared/{hx-field-label-CcOK9VU3.js → hx-field-label-BC8QViXv.js} +41 -25
  598. package/dist/shared/hx-field-label-BC8QViXv.js.map +1 -0
  599. package/dist/shared/{hx-file-upload-Dwtu3WcB.js → hx-file-upload-B6Yl1u0i.js} +201 -130
  600. package/dist/shared/hx-file-upload-B6Yl1u0i.js.map +1 -0
  601. package/dist/shared/{hx-form-fJE-FJQV.js → hx-form-ButQFt9A.js} +13 -18
  602. package/dist/shared/hx-form-ButQFt9A.js.map +1 -0
  603. package/dist/shared/{hx-format-date-B7L9odbA.js → hx-format-date-CKnlQOmV.js} +20 -9
  604. package/dist/shared/hx-format-date-CKnlQOmV.js.map +1 -0
  605. package/dist/shared/{hx-grid-BIAR5h9m.js → hx-grid-CXZf3jeK.js} +28 -18
  606. package/dist/shared/hx-grid-CXZf3jeK.js.map +1 -0
  607. package/dist/shared/{hx-help-text-Bmb80bP4.js → hx-help-text-D7eytSim.js} +45 -25
  608. package/dist/shared/hx-help-text-D7eytSim.js.map +1 -0
  609. package/dist/shared/{hx-icon-BKHs3OLu.js → hx-icon-CcyDPDYY.js} +104 -62
  610. package/dist/shared/hx-icon-CcyDPDYY.js.map +1 -0
  611. package/dist/shared/{hx-icon-button-CJuy9xbw.js → hx-icon-button-BHneqPCU.js} +58 -42
  612. package/dist/shared/hx-icon-button-BHneqPCU.js.map +1 -0
  613. package/dist/shared/{hx-image-ztiXumZB.js → hx-image-2gt14zZd.js} +34 -26
  614. package/dist/shared/hx-image-2gt14zZd.js.map +1 -0
  615. package/dist/shared/{hx-link-IVsXmsKx.js → hx-link-BESrWK8M.js} +72 -48
  616. package/dist/shared/hx-link-BESrWK8M.js.map +1 -0
  617. package/dist/shared/{hx-list-CoTDMp19.js → hx-list-_9qVv02L.js} +91 -49
  618. package/dist/shared/hx-list-_9qVv02L.js.map +1 -0
  619. package/dist/shared/{hx-menu-divider-DRT8yHRZ.js → hx-menu-divider-Ck-9Os1t.js} +103 -60
  620. package/dist/shared/hx-menu-divider-Ck-9Os1t.js.map +1 -0
  621. package/dist/shared/{hx-meter-BvSJoqDp.js → hx-meter-TbROk-dw.js} +64 -49
  622. package/dist/shared/hx-meter-TbROk-dw.js.map +1 -0
  623. package/dist/shared/{hx-nav-l0Rp7WPW.js → hx-nav-BcYDmjf7.js} +71 -56
  624. package/dist/shared/hx-nav-BcYDmjf7.js.map +1 -0
  625. package/dist/shared/{hx-nav-item-CJN4VDrf.js → hx-nav-item-pqPasRUm.js} +67 -23
  626. package/dist/shared/hx-nav-item-pqPasRUm.js.map +1 -0
  627. package/dist/shared/{hx-number-input-0Waw7Z7u.js → hx-number-input-mOIZ3-46.js} +169 -96
  628. package/dist/shared/hx-number-input-mOIZ3-46.js.map +1 -0
  629. package/dist/shared/{hx-overflow-menu-DElwFSCd.js → hx-overflow-menu-Dprb9lnT.js} +70 -38
  630. package/dist/shared/hx-overflow-menu-Dprb9lnT.js.map +1 -0
  631. package/dist/shared/{hx-pagination-BNtx-LG6.js → hx-pagination-AguTQjYC.js} +35 -35
  632. package/dist/shared/hx-pagination-AguTQjYC.js.map +1 -0
  633. package/dist/shared/{hx-patient-banner-BKiN7nIE.js → hx-patient-banner-uE6gqLpT.js} +67 -47
  634. package/dist/shared/hx-patient-banner-uE6gqLpT.js.map +1 -0
  635. package/dist/shared/{hx-phi-field-BiJH3V-k.js → hx-phi-field-BC_XowhC.js} +158 -59
  636. package/dist/shared/hx-phi-field-BC_XowhC.js.map +1 -0
  637. package/dist/shared/{hx-popover-D63RXn5H.js → hx-popover-B2_203ct.js} +48 -34
  638. package/dist/shared/hx-popover-B2_203ct.js.map +1 -0
  639. package/dist/shared/{hx-popup-BQWMhvMO.js → hx-popup-DZXpsJ1R.js} +89 -64
  640. package/dist/shared/hx-popup-DZXpsJ1R.js.map +1 -0
  641. package/dist/shared/{hx-progress-bar-Cm0VihTN.js → hx-progress-bar-KjEkEJLy.js} +21 -20
  642. package/dist/shared/hx-progress-bar-KjEkEJLy.js.map +1 -0
  643. package/dist/shared/{hx-progress-ring-BJeiDr3q.js → hx-progress-ring-3zMwvrwD.js} +56 -34
  644. package/dist/shared/hx-progress-ring-3zMwvrwD.js.map +1 -0
  645. package/dist/shared/{hx-prose-Ml_L2zje.js → hx-prose-BCtK7YL6.js} +48 -15
  646. package/dist/shared/{hx-prose-Ml_L2zje.js.map → hx-prose-BCtK7YL6.js.map} +1 -1
  647. package/dist/shared/{hx-radio-f8c5ggHG.js → hx-radio-BBC5qZgE.js} +202 -123
  648. package/dist/shared/hx-radio-BBC5qZgE.js.map +1 -0
  649. package/dist/shared/{hx-rating-qRJZXskm.js → hx-rating-C3E3ENJb.js} +92 -69
  650. package/dist/shared/hx-rating-C3E3ENJb.js.map +1 -0
  651. package/dist/shared/{hx-select-B5wq9Swh.js → hx-select-CixTo7jp.js} +206 -136
  652. package/dist/shared/hx-select-CixTo7jp.js.map +1 -0
  653. package/dist/shared/{hx-skeleton-e5K9Qaxq.js → hx-skeleton-LxkI0pxr.js} +41 -29
  654. package/dist/shared/hx-skeleton-LxkI0pxr.js.map +1 -0
  655. package/dist/shared/{hx-slider-BvXtvxmN.js → hx-slider-DFHuzF3N.js} +79 -91
  656. package/dist/shared/hx-slider-DFHuzF3N.js.map +1 -0
  657. package/dist/shared/{hx-spinner-Dyese1Tb.js → hx-spinner-BKjuCdZB.js} +32 -20
  658. package/dist/shared/hx-spinner-BKjuCdZB.js.map +1 -0
  659. package/dist/shared/{hx-split-button-CPndTJlC.js → hx-split-button-CGcJMmCG.js} +59 -22
  660. package/dist/shared/hx-split-button-CGcJMmCG.js.map +1 -0
  661. package/dist/shared/{hx-split-panel-Dx72NaET.js → hx-split-panel-C-1R10Mc.js} +71 -47
  662. package/dist/shared/hx-split-panel-C-1R10Mc.js.map +1 -0
  663. package/dist/shared/{hx-stack-B76_1O6g.js → hx-stack-DGfcOfWJ.js} +21 -11
  664. package/dist/shared/hx-stack-DGfcOfWJ.js.map +1 -0
  665. package/dist/shared/{hx-stat-DKD2E7An.js → hx-stat-BTpykQAt.js} +103 -48
  666. package/dist/shared/hx-stat-BTpykQAt.js.map +1 -0
  667. package/dist/shared/{hx-status-indicator-ClWpK6zz.js → hx-status-indicator-X2QEWNFt.js} +36 -23
  668. package/dist/shared/hx-status-indicator-X2QEWNFt.js.map +1 -0
  669. package/dist/shared/{hx-step-C2Jk4mHa.js → hx-step-CRNQlmSo.js} +83 -32
  670. package/dist/shared/hx-step-CRNQlmSo.js.map +1 -0
  671. package/dist/shared/{hx-structured-list-DKlrv7kS.js → hx-structured-list-CqNbaEXg.js} +32 -16
  672. package/dist/shared/hx-structured-list-CqNbaEXg.js.map +1 -0
  673. package/dist/shared/hx-style-scope-TDnR8H4O.js +251 -0
  674. package/dist/shared/hx-style-scope-TDnR8H4O.js.map +1 -0
  675. package/dist/shared/{hx-switch-BzMN37PV.js → hx-switch-DqOD9JR7.js} +122 -81
  676. package/dist/shared/hx-switch-DqOD9JR7.js.map +1 -0
  677. package/dist/shared/{hx-tab-panel-J58zOSjq.js → hx-tab-panel-BIzKfW5i.js} +156 -102
  678. package/dist/shared/hx-tab-panel-BIzKfW5i.js.map +1 -0
  679. package/dist/shared/{hx-tag-F0ZcYj9b.js → hx-tag-CgnrNnte.js} +30 -18
  680. package/dist/shared/hx-tag-CgnrNnte.js.map +1 -0
  681. package/dist/shared/{hx-td-CNCvzBwY.js → hx-td-Bra35cH4.js} +55 -47
  682. package/dist/shared/hx-td-Bra35cH4.js.map +1 -0
  683. package/dist/shared/{hx-text-DcWBqZwx.js → hx-text-DMC2CPlL.js} +74 -41
  684. package/dist/shared/hx-text-DMC2CPlL.js.map +1 -0
  685. package/dist/shared/{hx-text-input-Scyeefec.js → hx-text-input--q0GH78x.js} +123 -61
  686. package/dist/shared/hx-text-input--q0GH78x.js.map +1 -0
  687. package/dist/shared/{hx-textarea-BfSJJtA1.js → hx-textarea-CK621vSL.js} +124 -89
  688. package/dist/shared/hx-textarea-CK621vSL.js.map +1 -0
  689. package/dist/shared/{hx-theme-pc1V7dyL.js → hx-theme-DfEy-SJA.js} +72 -64
  690. package/dist/shared/hx-theme-DfEy-SJA.js.map +1 -0
  691. package/dist/shared/{hx-time-picker-CZvmihHD.js → hx-time-picker-tPUfgElQ.js} +300 -82
  692. package/dist/shared/hx-time-picker-tPUfgElQ.js.map +1 -0
  693. package/dist/shared/{hx-toggle-button-BZUQUULm.js → hx-toggle-button-L-uBJr-a.js} +72 -42
  694. package/dist/shared/hx-toggle-button-L-uBJr-a.js.map +1 -0
  695. package/dist/shared/{hx-tooltip-Ny4i1Idj.js → hx-tooltip-B_zfKvwc.js} +44 -31
  696. package/dist/shared/hx-tooltip-B_zfKvwc.js.map +1 -0
  697. package/dist/shared/{hx-top-nav-CC4FW2Hp.js → hx-top-nav-CATbRvIv.js} +53 -30
  698. package/dist/shared/hx-top-nav-CATbRvIv.js.map +1 -0
  699. package/dist/shared/{hx-tree-item-CPQ9dJiK.js → hx-tree-item-A45WCiBu.js} +37 -9
  700. package/dist/shared/hx-tree-item-A45WCiBu.js.map +1 -0
  701. package/dist/shared/hx-visually-hidden-0bZKOWgT.js +66 -0
  702. package/dist/shared/hx-visually-hidden-0bZKOWgT.js.map +1 -0
  703. package/dist/shared/id-counter-DuX8vsui.js +11 -0
  704. package/dist/shared/id-counter-DuX8vsui.js.map +1 -0
  705. package/dist/shared/{toast-factory-CEMNOt1T.js → toast-factory-BPPnG3mM.js} +58 -46
  706. package/dist/shared/toast-factory-BPPnG3mM.js.map +1 -0
  707. package/dist/utilities/injectLightStyles.d.ts.map +1 -1
  708. package/dist/utilities/sanitizeCss.d.ts +43 -0
  709. package/dist/utilities/sanitizeCss.d.ts.map +1 -0
  710. package/figma-inventory.json +18614 -0
  711. package/package.json +35 -14
  712. package/dist/shared/FormMixin-Bjvw20G5.js.map +0 -1
  713. package/dist/shared/aria-delegation-CBP9eQ0M.js.map +0 -1
  714. package/dist/shared/document-token-adoption-DuYNKd4k.js +0 -21
  715. package/dist/shared/document-token-adoption-DuYNKd4k.js.map +0 -1
  716. package/dist/shared/hx-accordion-CpfO0YQo.js.map +0 -1
  717. package/dist/shared/hx-action-bar-BpY1Z1UV.js.map +0 -1
  718. package/dist/shared/hx-alert-CHOjTBds.js.map +0 -1
  719. package/dist/shared/hx-avatar-an-WsuLl.js.map +0 -1
  720. package/dist/shared/hx-badge-DDXTLoWi.js.map +0 -1
  721. package/dist/shared/hx-banner-B-WEDiq7.js.map +0 -1
  722. package/dist/shared/hx-breadcrumb-item-DzLyeL5Z.js.map +0 -1
  723. package/dist/shared/hx-button-DoN8jjQT.js.map +0 -1
  724. package/dist/shared/hx-button-group-BXlMQTt_.js.map +0 -1
  725. package/dist/shared/hx-card-BgXZXDuc.js.map +0 -1
  726. package/dist/shared/hx-carousel-item-Dwt9Pphz.js.map +0 -1
  727. package/dist/shared/hx-checkbox-CTEZ9IFq.js.map +0 -1
  728. package/dist/shared/hx-checkbox-group-DThZeN5d.js.map +0 -1
  729. package/dist/shared/hx-clinical-status-m4soOOwg.js.map +0 -1
  730. package/dist/shared/hx-color-picker-DhOaNe6-.js.map +0 -1
  731. package/dist/shared/hx-combobox-BJ4lQocO.js +0 -544
  732. package/dist/shared/hx-combobox-BJ4lQocO.js.map +0 -1
  733. package/dist/shared/hx-container-31QT9KV_.js.map +0 -1
  734. package/dist/shared/hx-copy-button-BoM0WsMd.js.map +0 -1
  735. package/dist/shared/hx-counter-CP42cSVK.js.map +0 -1
  736. package/dist/shared/hx-data-table-D5Ne-goy.js.map +0 -1
  737. package/dist/shared/hx-date-picker-Cd3I3WkX.js +0 -627
  738. package/dist/shared/hx-date-picker-Cd3I3WkX.js.map +0 -1
  739. package/dist/shared/hx-dialog-D4ubstxx.js.map +0 -1
  740. package/dist/shared/hx-divider-BBtOLHRP.js.map +0 -1
  741. package/dist/shared/hx-drawer--WDLuWtS.js.map +0 -1
  742. package/dist/shared/hx-dropdown-n5-XSmiV.js.map +0 -1
  743. package/dist/shared/hx-field-CwT9tki1.js.map +0 -1
  744. package/dist/shared/hx-field-label-CcOK9VU3.js.map +0 -1
  745. package/dist/shared/hx-file-upload-Dwtu3WcB.js.map +0 -1
  746. package/dist/shared/hx-form-fJE-FJQV.js.map +0 -1
  747. package/dist/shared/hx-format-date-B7L9odbA.js.map +0 -1
  748. package/dist/shared/hx-grid-BIAR5h9m.js.map +0 -1
  749. package/dist/shared/hx-help-text-Bmb80bP4.js.map +0 -1
  750. package/dist/shared/hx-icon-BKHs3OLu.js.map +0 -1
  751. package/dist/shared/hx-icon-button-CJuy9xbw.js.map +0 -1
  752. package/dist/shared/hx-image-ztiXumZB.js.map +0 -1
  753. package/dist/shared/hx-link-IVsXmsKx.js.map +0 -1
  754. package/dist/shared/hx-list-CoTDMp19.js.map +0 -1
  755. package/dist/shared/hx-menu-divider-DRT8yHRZ.js.map +0 -1
  756. package/dist/shared/hx-meter-BvSJoqDp.js.map +0 -1
  757. package/dist/shared/hx-nav-item-CJN4VDrf.js.map +0 -1
  758. package/dist/shared/hx-nav-l0Rp7WPW.js.map +0 -1
  759. package/dist/shared/hx-number-input-0Waw7Z7u.js.map +0 -1
  760. package/dist/shared/hx-overflow-menu-DElwFSCd.js.map +0 -1
  761. package/dist/shared/hx-pagination-BNtx-LG6.js.map +0 -1
  762. package/dist/shared/hx-patient-banner-BKiN7nIE.js.map +0 -1
  763. package/dist/shared/hx-phi-field-BiJH3V-k.js.map +0 -1
  764. package/dist/shared/hx-popover-D63RXn5H.js.map +0 -1
  765. package/dist/shared/hx-popup-BQWMhvMO.js.map +0 -1
  766. package/dist/shared/hx-progress-bar-Cm0VihTN.js.map +0 -1
  767. package/dist/shared/hx-progress-ring-BJeiDr3q.js.map +0 -1
  768. package/dist/shared/hx-radio-f8c5ggHG.js.map +0 -1
  769. package/dist/shared/hx-rating-qRJZXskm.js.map +0 -1
  770. package/dist/shared/hx-select-B5wq9Swh.js.map +0 -1
  771. package/dist/shared/hx-skeleton-e5K9Qaxq.js.map +0 -1
  772. package/dist/shared/hx-slider-BvXtvxmN.js.map +0 -1
  773. package/dist/shared/hx-spinner-Dyese1Tb.js.map +0 -1
  774. package/dist/shared/hx-split-button-CPndTJlC.js.map +0 -1
  775. package/dist/shared/hx-split-panel-Dx72NaET.js.map +0 -1
  776. package/dist/shared/hx-stack-B76_1O6g.js.map +0 -1
  777. package/dist/shared/hx-stat-DKD2E7An.js.map +0 -1
  778. package/dist/shared/hx-status-indicator-ClWpK6zz.js.map +0 -1
  779. package/dist/shared/hx-step-C2Jk4mHa.js.map +0 -1
  780. package/dist/shared/hx-structured-list-DKlrv7kS.js.map +0 -1
  781. package/dist/shared/hx-style-scope-CsQ2Phf_.js +0 -126
  782. package/dist/shared/hx-style-scope-CsQ2Phf_.js.map +0 -1
  783. package/dist/shared/hx-switch-BzMN37PV.js.map +0 -1
  784. package/dist/shared/hx-tab-panel-J58zOSjq.js.map +0 -1
  785. package/dist/shared/hx-tag-F0ZcYj9b.js.map +0 -1
  786. package/dist/shared/hx-td-CNCvzBwY.js.map +0 -1
  787. package/dist/shared/hx-text-DcWBqZwx.js.map +0 -1
  788. package/dist/shared/hx-text-input-Scyeefec.js.map +0 -1
  789. package/dist/shared/hx-textarea-BfSJJtA1.js.map +0 -1
  790. package/dist/shared/hx-theme-pc1V7dyL.js.map +0 -1
  791. package/dist/shared/hx-time-picker-CZvmihHD.js.map +0 -1
  792. package/dist/shared/hx-toggle-button-BZUQUULm.js.map +0 -1
  793. package/dist/shared/hx-tooltip-Ny4i1Idj.js.map +0 -1
  794. package/dist/shared/hx-top-nav-CC4FW2Hp.js.map +0 -1
  795. package/dist/shared/hx-tree-item-CPQ9dJiK.js.map +0 -1
  796. package/dist/shared/hx-visually-hidden-vKX8QjeX.js +0 -54
  797. package/dist/shared/hx-visually-hidden-vKX8QjeX.js.map +0 -1
  798. package/dist/shared/id-counter-JhvVCnjh.js.map +0 -1
  799. package/dist/shared/toast-factory-CEMNOt1T.js.map +0 -1
  800. package/dist/tools/cem-a11y-analyzer/analyzers/aria-analyzer.d.ts +0 -12
  801. package/dist/tools/cem-a11y-analyzer/analyzers/aria-analyzer.d.ts.map +0 -1
  802. package/dist/tools/cem-a11y-analyzer/analyzers/focus-analyzer.d.ts +0 -13
  803. package/dist/tools/cem-a11y-analyzer/analyzers/focus-analyzer.d.ts.map +0 -1
  804. package/dist/tools/cem-a11y-analyzer/analyzers/form-analyzer.d.ts +0 -13
  805. package/dist/tools/cem-a11y-analyzer/analyzers/form-analyzer.d.ts.map +0 -1
  806. package/dist/tools/cem-a11y-analyzer/analyzers/keyboard-analyzer.d.ts +0 -12
  807. package/dist/tools/cem-a11y-analyzer/analyzers/keyboard-analyzer.d.ts.map +0 -1
  808. package/dist/tools/cem-a11y-analyzer/analyzers/label-analyzer.d.ts +0 -13
  809. package/dist/tools/cem-a11y-analyzer/analyzers/label-analyzer.d.ts.map +0 -1
  810. package/dist/tools/cem-a11y-analyzer/analyzers/motion-analyzer.d.ts +0 -12
  811. package/dist/tools/cem-a11y-analyzer/analyzers/motion-analyzer.d.ts.map +0 -1
  812. package/dist/tools/cem-a11y-analyzer/index.d.ts +0 -14
  813. package/dist/tools/cem-a11y-analyzer/index.d.ts.map +0 -1
  814. package/dist/tools/cem-a11y-analyzer/reporter.d.ts +0 -6
  815. package/dist/tools/cem-a11y-analyzer/reporter.d.ts.map +0 -1
  816. package/dist/tools/cem-a11y-analyzer/scorer.d.ts +0 -22
  817. package/dist/tools/cem-a11y-analyzer/scorer.d.ts.map +0 -1
  818. package/dist/tools/cem-a11y-analyzer/types.d.ts +0 -171
  819. package/dist/tools/cem-a11y-analyzer/types.d.ts.map +0 -1
@@ -1,7 +1,8 @@
1
- import { LitElement as m, html as c, nothing as x } from "lit";
2
- import { state as d, property as h, customElement as f } from "lit/decorators.js";
3
- import { ifDefined as p } from "lit/directives/if-defined.js";
4
- import { A as u } from "./adopted-stylesheets-BZZnCSAs.js";
1
+ import { html as c, nothing as m } from "lit";
2
+ import { state as x, property as h, customElement as d } from "lit/decorators.js";
3
+ import { ifDefined as f } from "lit/directives/if-defined.js";
4
+ import { A as p } from "./adopted-stylesheets-BZZnCSAs.js";
5
+ import { H as u } from "./helix-element-BNEYeiys.js";
5
6
  const v = `hx-form{display:flex;flex-direction:column;gap:var(--hx-form-gap, var(--hx-space-4, 1rem));max-width:var(--hx-form-max-width, none);padding:var(--hx-form-padding, 0)}hx-form .hx-form-error-summary{border:var(--hx-border-width-thin, 1px) solid var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));border-radius:var(--hx-border-radius-md, .375rem);background-color:var(--hx-color-error-50, #fef2f2);color:var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));padding:var(--hx-space-3, .75rem) var(--hx-space-4, 1rem);font-size:var(--hx-font-size-sm, .875rem);line-height:var(--hx-line-height-normal, 1.5);font-family:var(--hx-input-font-family, var(--hx-font-family-sans, sans-serif))}hx-form .hx-form-error-summary ul{margin:0;padding:0 0 0 var(--hx-space-4, 1rem)}hx-form .hx-form-error-summary li{margin-bottom:var(--hx-space-1, .25rem)}hx-form .hx-form-error-summary li:last-child{margin-bottom:0}hx-form .form-item{display:flex;flex-direction:column;gap:var(--hx-space-1, .25rem);font-family:var(--hx-input-font-family, var(--hx-font-family-sans, sans-serif))}hx-form .form-item+.form-item{margin-top:var(--hx-space-4, 1rem)}hx-form label{display:flex;align-items:baseline;gap:var(--hx-space-1, .25rem);font-size:var(--hx-font-size-sm, .875rem);font-weight:var(--hx-font-weight-medium, 500);color:var(--hx-input-label-color, var(--hx-color-neutral-700, #343a40));line-height:var(--hx-line-height-normal, 1.5)}hx-form .form-required{color:var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));font-weight:var(--hx-font-weight-bold, 700)}hx-form .description{font-size:var(--hx-font-size-xs, .75rem);color:var(--hx-color-neutral-500, #6c757d);line-height:var(--hx-line-height-normal, 1.5)}hx-form .form-item :is(*,*:before,*:after){box-sizing:border-box}hx-form :is(input:is([type=text],[type=email],[type=password],[type=tel],[type=url],[type=search],[type=number]),textarea){display:block;width:100%;border:var(--hx-border-width-thin, 1px) solid var(--hx-input-border-color, var(--hx-color-neutral-300, #ced4da));border-radius:var(--hx-input-border-radius, var(--hx-border-radius-md, .375rem));background-color:var(--hx-input-bg, var(--hx-color-neutral-0, #ffffff));padding:var(--hx-space-2, .5rem) var(--hx-space-3, .75rem);font-family:var(--hx-input-font-family, var(--hx-font-family-sans, sans-serif));font-size:var(--hx-font-size-md, 1rem);color:var(--hx-input-color, var(--hx-color-neutral-800, #212529));line-height:var(--hx-line-height-normal, 1.5);transition:border-color var(--hx-transition-fast, .15s ease),box-shadow var(--hx-transition-fast, .15s ease)}hx-form input:is([type=text],[type=email],[type=password],[type=tel],[type=url],[type=search],[type=number]){min-height:var(--hx-size-10, 2.5rem)}hx-form :is(input:is([type=text],[type=email],[type=password],[type=tel],[type=url],[type=search],[type=number]),textarea)::placeholder{color:var(--hx-color-neutral-400, #adb5bd)}hx-form :is(input:is([type=text],[type=email],[type=password],[type=tel],[type=url],[type=search],[type=number]),textarea):focus{outline:0;border-color:var(--hx-input-focus-ring-color, var(--hx-focus-ring-color, #2563eb));box-shadow:0 0 0 var(--hx-focus-ring-width, 2px) color-mix(in srgb,var(--hx-input-focus-ring-color, var(--hx-focus-ring-color, #2563eb)) calc(var(--hx-focus-ring-opacity, .25) * 100%),transparent)}hx-form :is(input:is([type=text],[type=email],[type=password],[type=tel],[type=url],[type=search],[type=number]),textarea):disabled{opacity:var(--hx-opacity-disabled, .5);cursor:not-allowed;pointer-events:none}hx-form :is(input:is([type=text],[type=email],[type=password],[type=tel],[type=url],[type=search],[type=number]),textarea):read-only{background-color:var(--hx-color-neutral-100, #e9ecef)}hx-form input[type=search]::-webkit-search-decoration,hx-form input[type=search]::-webkit-search-cancel-button,hx-form input[type=search]::-webkit-search-results-button,hx-form input[type=search]::-webkit-search-results-decoration{-webkit-appearance:none}hx-form input[type=number]::-webkit-inner-spin-button,hx-form input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}hx-form input[type=number]{appearance:textfield}hx-form textarea{min-height:var(--hx-textarea-min-height, var(--hx-size-20, 5rem));resize:vertical}hx-form select{display:block;width:100%;border:var(--hx-border-width-thin, 1px) solid var(--hx-select-border-color, var(--hx-color-neutral-300, #ced4da));border-radius:var(--hx-select-border-radius, var(--hx-border-radius-md, .375rem));background-color:var(--hx-select-bg, var(--hx-color-neutral-0, #ffffff));padding:var(--hx-space-2, .5rem) var(--hx-space-8, 2rem) var(--hx-space-2, .5rem) var(--hx-space-3, .75rem);font-family:var(--hx-select-font-family, var(--hx-font-family-sans, sans-serif));font-size:var(--hx-font-size-md, 1rem);color:var(--hx-select-color, var(--hx-color-neutral-800, #212529));line-height:var(--hx-line-height-normal, 1.5);min-height:var(--hx-input-height-md, var(--hx-size-10, 2.5rem));cursor:pointer;transition:border-color var(--hx-transition-fast, .15s ease),box-shadow var(--hx-transition-fast, .15s ease);appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%236c757d' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--hx-space-3, .75rem) center;background-size:12px 8px}hx-form select:focus{outline:0;border-color:var(--hx-select-focus-ring-color, var(--hx-focus-ring-color, #2563eb));box-shadow:0 0 0 var(--hx-focus-ring-width, 2px) color-mix(in srgb,var(--hx-select-focus-ring-color, var(--hx-focus-ring-color, #2563eb)) calc(var(--hx-focus-ring-opacity, .25) * 100%),transparent)}hx-form select:disabled{opacity:var(--hx-opacity-disabled, .5);cursor:not-allowed;pointer-events:none}hx-form select[multiple]{min-height:var(--hx-size-20, 5rem);padding-right:var(--hx-space-3, .75rem);background-image:none}hx-form select[multiple] option{padding:var(--hx-space-1, .25rem) var(--hx-space-2, .5rem)}hx-form select::-ms-expand{display:none}hx-form :is(input[type=checkbox],input[type=radio]){appearance:none;-webkit-appearance:none;-moz-appearance:none;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;margin:0;background-color:var(--hx-color-neutral-0, #ffffff);cursor:pointer;vertical-align:middle;transition:background-color var(--hx-transition-fast, .15s ease),border-color var(--hx-transition-fast, .15s ease),box-shadow var(--hx-transition-fast, .15s ease)}hx-form input[type=checkbox]{width:var(--hx-checkbox-size, var(--hx-size-5, 1.25rem));height:var(--hx-checkbox-size, var(--hx-size-5, 1.25rem));border:var(--hx-border-width-medium, 2px) solid var(--hx-checkbox-border-color, var(--hx-color-neutral-300, #ced4da));border-radius:var(--hx-checkbox-border-radius, var(--hx-border-radius-sm, .25rem))}hx-form input[type=checkbox]:checked{background-color:var(--hx-checkbox-checked-bg, var(--hx-color-primary-500, #2563eb));border-color:var(--hx-checkbox-checked-border-color, var(--hx-color-primary-500, #2563eb));background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M3.5 8.5L6.5 11.5L12.5 4.5' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:100%}hx-form input[type=checkbox]:indeterminate{background-color:var(--hx-checkbox-checked-bg, var(--hx-color-primary-500, #2563eb));border-color:var(--hx-checkbox-checked-border-color, var(--hx-color-primary-500, #2563eb));background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 8H12' stroke='%23ffffff' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:100%}hx-form input[type=checkbox]:focus-visible{outline:var(--hx-focus-ring-width, 2px) solid var(--hx-checkbox-focus-ring-color, var(--hx-focus-ring-color, #2563eb));outline-offset:var(--hx-focus-ring-offset, 2px)}hx-form input[type=checkbox]:hover:not(:disabled){border-color:var(--hx-color-primary-500, #2563eb)}hx-form input[type=checkbox]:checked:hover:not(:disabled){filter:brightness(var(--hx-filter-brightness-hover, .9))}hx-form :is(input[type=checkbox],input[type=radio]):disabled{opacity:var(--hx-opacity-disabled, .5);cursor:not-allowed;pointer-events:none}hx-form :is(.form-type-checkbox,.form-type-checkbox-toggle){display:flex;align-items:flex-start;gap:var(--hx-space-2, .5rem)}hx-form :is(.form-type-checkbox,.form-type-checkbox-toggle) label{font-size:var(--hx-font-size-sm, .875rem);font-weight:var(--hx-font-weight-medium, 500);color:var(--hx-checkbox-label-color, var(--hx-color-neutral-700, #343a40));line-height:var(--hx-line-height-normal, 1.5);cursor:pointer;user-select:none;-webkit-user-select:none}hx-form input[type=radio]{width:var(--hx-radio-size, var(--hx-size-5, 1.25rem));height:var(--hx-radio-size, var(--hx-size-5, 1.25rem));border:var(--hx-border-width-medium, 2px) solid var(--hx-radio-border-color, var(--hx-color-neutral-300, #ced4da));border-radius:var(--hx-border-radius-full, 9999px)}hx-form input[type=radio]:checked{border-color:var(--hx-radio-checked-border-color, var(--hx-color-primary-500, #2563eb));background-color:var(--hx-radio-checked-bg, var(--hx-color-primary-500, #2563eb));box-shadow:inset 0 0 0 calc(var(--hx-radio-size, var(--hx-size-5, 1.25rem)) * .3) var(--hx-radio-dot-color, var(--hx-color-neutral-0, #ffffff))}hx-form input[type=radio]:focus-visible{outline:var(--hx-focus-ring-width, 2px) solid var(--hx-radio-focus-ring-color, var(--hx-focus-ring-color, #2563eb));outline-offset:var(--hx-focus-ring-offset, 2px)}hx-form input[type=radio]:hover:not(:disabled):not(:checked){border-color:var(--hx-color-neutral-400, #adb5bd)}hx-form .form-type-radio{display:inline-flex;align-items:center;gap:var(--hx-space-2, .5rem)}hx-form .form-type-radio label{font-size:var(--hx-font-size-md, 1rem);color:var(--hx-radio-label-color, var(--hx-color-neutral-700, #343a40));line-height:var(--hx-line-height-normal, 1.5);cursor:pointer;user-select:none;-webkit-user-select:none}hx-form .form-radios{display:flex;flex-direction:column;gap:var(--hx-radio-group-gap, var(--hx-space-3, .75rem))}hx-form .form-radios--horizontal{flex-direction:row;flex-wrap:wrap}hx-form .form-type-switch{display:flex;flex-direction:column;gap:var(--hx-space-1, .25rem);font-family:var(--hx-font-family-sans, sans-serif)}hx-form .form-type-switch .switch__control-row{display:flex;align-items:center;gap:var(--hx-space-2, .5rem)}hx-form .form-type-switch input[type=checkbox]{position:relative;width:var(--hx-switch-track-width-md, var(--hx-size-10, 2.5rem));height:var(--hx-switch-track-height-md, var(--hx-size-5-5, 1.375rem));border:none;border-radius:var(--hx-border-radius-full, 9999px);background-color:var(--hx-switch-track-bg, var(--hx-color-neutral-300, #ced4da));transition:background-color var(--hx-transition-fast, .15s ease);background-image:none}hx-form .form-type-switch input[type=checkbox]:before{content:"";position:absolute;top:50%;left:var(--hx-switch-thumb-offset, var(--hx-space-0-5, .125rem));transform:translateY(-50%);width:var(--hx-switch-thumb-size-md, var(--hx-size-4-5, 1.125rem));height:var(--hx-switch-thumb-size-md, var(--hx-size-4-5, 1.125rem));border-radius:var(--hx-border-radius-full, 9999px);background-color:var(--hx-switch-thumb-bg, var(--hx-color-neutral-0, #ffffff));box-shadow:var(--hx-switch-thumb-shadow, var(--hx-shadow-sm, 0 1px 2px 0 rgb(0 0 0 / .05)));transition:transform var(--hx-transition-fast, .15s ease)}hx-form .form-type-switch input[type=checkbox]:checked{background-color:var(--hx-switch-track-checked-bg, var(--hx-color-primary-500, #2563eb));background-image:none}hx-form .form-type-switch input[type=checkbox]:checked:before{transform:translateY(-50%) translate(var(--hx-switch-thumb-size-md, var(--hx-size-4-5, 1.125rem)))}hx-form .form-type-switch input[type=checkbox]:focus-visible{outline:var(--hx-focus-ring-width, 2px) solid var(--hx-switch-focus-ring-color, var(--hx-focus-ring-color, #2563eb));outline-offset:var(--hx-focus-ring-offset, 2px)}hx-form .form-type-switch input[type=checkbox]:disabled{opacity:var(--hx-opacity-disabled, .5);cursor:not-allowed;pointer-events:none}hx-form .form-type-switch label{font-size:var(--hx-font-size-sm, .875rem);font-weight:var(--hx-font-weight-medium, 500);color:var(--hx-switch-label-color, var(--hx-color-neutral-700, #343a40));line-height:var(--hx-line-height-normal, 1.5);cursor:pointer;user-select:none;-webkit-user-select:none}hx-form .form-type-switch--sm input[type=checkbox]{width:var(--hx-switch-track-width-sm, var(--hx-size-8, 2rem));height:var(--hx-switch-track-height-sm, var(--hx-size-4-5, 1.125rem))}hx-form .form-type-switch--sm input[type=checkbox]:before{width:var(--hx-switch-thumb-size-sm, var(--hx-size-3-5, .875rem));height:var(--hx-switch-thumb-size-sm, var(--hx-size-3-5, .875rem))}hx-form .form-type-switch--sm input[type=checkbox]:checked:before{transform:translateY(-50%) translate(var(--hx-switch-thumb-size-sm, var(--hx-size-3-5, .875rem)))}hx-form .form-type-switch--lg input[type=checkbox]{width:var(--hx-switch-track-width-lg, var(--hx-size-12, 3rem));height:var(--hx-switch-track-height-lg, var(--hx-size-6-5, 1.625rem))}hx-form .form-type-switch--lg input[type=checkbox]:before{width:var(--hx-switch-thumb-size-lg, var(--hx-size-5-5, 1.375rem));height:var(--hx-switch-thumb-size-lg, var(--hx-size-5-5, 1.375rem))}hx-form .form-type-switch--lg input[type=checkbox]:checked:before{transform:translateY(-50%) translate(var(--hx-switch-thumb-size-lg, var(--hx-size-5-5, 1.375rem)))}hx-form form{display:flex;flex-direction:column;gap:var(--hx-form-gap, var(--hx-space-4, 1rem));font-family:var(--hx-input-font-family, var(--hx-font-family-sans, sans-serif))}hx-form fieldset{border:var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-200, #dee2e6);border-radius:var(--hx-border-radius-md, .375rem);padding:var(--hx-space-4, 1rem);margin:0;display:flex;flex-direction:column;gap:var(--hx-space-4, 1rem)}hx-form :is(legend,summary){font-size:var(--hx-font-size-sm, .875rem);font-weight:var(--hx-font-weight-semibold, 600);color:var(--hx-color-neutral-700, #343a40);line-height:var(--hx-line-height-normal, 1.5)}hx-form legend{display:flex;align-items:baseline;gap:var(--hx-space-1, .25rem);padding:0 var(--hx-space-1, .25rem)}hx-form details{border:var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-200, #dee2e6);border-radius:var(--hx-border-radius-md, .375rem);padding:var(--hx-space-4, 1rem);margin:0}hx-form summary{cursor:pointer;padding:var(--hx-space-1, .25rem) 0;user-select:none;-webkit-user-select:none}hx-form summary:focus-visible{outline:var(--hx-focus-ring-width, 2px) solid var(--hx-focus-ring-color, #2563eb);outline-offset:var(--hx-focus-ring-offset, 2px);border-radius:var(--hx-border-radius-sm, .25rem)}hx-form .form-actions{display:flex;align-items:center;gap:var(--hx-space-3, .75rem);padding-top:var(--hx-space-4, 1rem)}hx-form .form-actions--end{justify-content:flex-end}hx-form .form-actions--between{justify-content:space-between}hx-form .form-columns{display:grid;gap:var(--hx-space-4, 1rem)}hx-form .form-columns--2{grid-template-columns:repeat(2,1fr)}hx-form .form-columns--3{grid-template-columns:repeat(3,1fr)}hx-form .form-columns--4{grid-template-columns:repeat(4,1fr)}@media(max-width:640px){hx-form .form-columns--2,hx-form .form-columns--3,hx-form .form-columns--4{grid-template-columns:1fr}}hx-form .form-item--full{grid-column:1 / -1}hx-form .form-inline{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--hx-space-3, .75rem)}hx-form .form-inline .form-item{flex:1;min-width:0}hx-form .form-inline .form-item+.form-item{margin-top:0}hx-form .form-divider{border:none;border-top:var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-200, #dee2e6);margin:var(--hx-space-2, .5rem) 0}hx-form :is(.form-item.error,.form-item.has-error,.form-item--error) label{color:var(--hx-input-error-color, var(--hx-color-error-500, #dc3545))}hx-form :is(.form-item.error,.form-item.has-error,.form-item--error) :is(input:is([type=text],[type=email],[type=password],[type=tel],[type=url],[type=search],[type=number]),textarea,select){border-color:var(--hx-input-error-color, var(--hx-color-error-500, #dc3545))}hx-form :is(.form-item.error,.form-item.has-error,.form-item--error) :is(input:is([type=text],[type=email],[type=password],[type=tel],[type=url],[type=search],[type=number]),textarea,select):focus{border-color:var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));box-shadow:0 0 0 var(--hx-focus-ring-width, 2px) color-mix(in srgb,var(--hx-input-error-color, var(--hx-color-error-500, #dc3545)) calc(var(--hx-focus-ring-opacity, .25) * 100%),transparent)}hx-form :is(.form-item.error,.form-item.has-error,.form-item--error) input[type=checkbox]{border-color:var(--hx-checkbox-error-color, var(--hx-color-error-500, #dc3545))}hx-form :is(.form-item.error,.form-item.has-error,.form-item--error) input[type=checkbox]:checked{background-color:var(--hx-checkbox-error-color, var(--hx-color-error-500, #dc3545));border-color:var(--hx-checkbox-error-color, var(--hx-color-error-500, #dc3545))}hx-form :is(.form-item.error,.form-item.has-error,.form-item--error) input[type=radio]{border-color:var(--hx-color-error-500, #dc3545)}hx-form :is(.form-item__error-message,.form-item .error-message,.error-message,.form-item__success-message,.form-item .success-message,.success-message){font-size:var(--hx-font-size-xs, .75rem);line-height:var(--hx-line-height-normal, 1.5)}hx-form :is(.form-item__error-message,.form-item .error-message,.error-message){color:var(--hx-input-error-color, var(--hx-color-error-500, #dc3545))}hx-form :is(.form-item__success-message,.form-item .success-message,.success-message){color:var(--hx-color-success-500, #198754)}hx-form :is(.form-item.success,.form-item.has-success,.form-item--success) label{color:var(--hx-color-success-500, #198754)}hx-form :is(.form-item.success,.form-item.has-success,.form-item--success) :is(input:is([type=text],[type=email],[type=password],[type=tel],[type=url],[type=search],[type=number]),textarea,select){border-color:var(--hx-color-success-500, #198754)}hx-form :is(.form-item.success,.form-item.has-success,.form-item--success) :is(input:is([type=text],[type=email],[type=password],[type=tel],[type=url],[type=search],[type=number]),textarea,select):focus{border-color:var(--hx-color-success-500, #198754);box-shadow:0 0 0 var(--hx-focus-ring-width, 2px) color-mix(in srgb,var(--hx-color-success-500, #198754) calc(var(--hx-focus-ring-opacity, .25) * 100%),transparent)}hx-form :is(.messages--error,.messages--status,.messages--warning){border:var(--hx-border-width-thin, 1px) solid;border-radius:var(--hx-border-radius-md, .375rem);padding:var(--hx-space-3, .75rem) var(--hx-space-4, 1rem);font-size:var(--hx-font-size-sm, .875rem);line-height:var(--hx-line-height-normal, 1.5)}hx-form .messages--error{border-color:var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));background-color:var(--hx-color-error-50, #fef2f2);color:var(--hx-input-error-color, var(--hx-color-error-500, #dc3545))}hx-form .messages--status{border-color:var(--hx-color-success-500, #198754);background-color:var(--hx-color-success-50, #f0fdf4);color:var(--hx-color-success-500, #198754)}hx-form .messages--warning{border-color:var(--hx-color-warning-500, #ffc107);background-color:var(--hx-color-warning-50, #fffbeb);color:var(--hx-color-warning-700, #92400e)}@media(forced-colors:active){hx-form :is(input:is([type=text],[type=email],[type=password],[type=tel],[type=url],[type=search],[type=number]),textarea,select):focus{outline:2px solid CanvasText;outline-offset:2px}hx-form .hx-form-error-summary{border-color:LinkText}}
6
7
  `, b = v;
7
8
  var g = Object.defineProperty, y = Object.getOwnPropertyDescriptor, s = (e, r, a, t) => {
@@ -9,9 +10,9 @@ var g = Object.defineProperty, y = Object.getOwnPropertyDescriptor, s = (e, r, a
9
10
  (l = e[n]) && (o = (t ? l(r, a, o) : l(o)) || o);
10
11
  return t && o && g(r, a, o), o;
11
12
  };
12
- let i = class extends m {
13
+ let i = class extends u {
13
14
  constructor() {
14
- super(...arguments), this._styles = new u(this, b, document), this._validationErrors = [], this.action = "", this.method = "post", this.novalidate = !1, this.name = "", this.enctype = "application/x-www-form-urlencoded", this._handleSubmit = (e) => {
15
+ super(...arguments), this._styles = new p(this, b, document), this._validationErrors = [], this.action = "", this.method = "post", this.novalidate = !1, this.name = "", this.enctype = "application/x-www-form-urlencoded", this._handleSubmit = (e) => {
15
16
  if (this.action)
16
17
  return;
17
18
  if (e.preventDefault(), !this.novalidate && !this.checkValidity()) {
@@ -207,27 +208,21 @@ let i = class extends m {
207
208
  // ─── Render ───
208
209
  render() {
209
210
  const e = this._validationErrors.length > 0 ? c`
210
- <div
211
- class="hx-form-error-summary"
212
- role="alert"
213
- aria-live="assertive"
214
- aria-atomic="true"
215
- tabindex="-1"
216
- >
211
+ <div class="hx-form-error-summary" role="alert" aria-atomic="true" tabindex="-1">
217
212
  <ul>
218
213
  ${this._validationErrors.map(
219
214
  (r) => c`<li>${r.message || r.name}</li>`
220
215
  )}
221
216
  </ul>
222
217
  </div>
223
- ` : x;
218
+ ` : m;
224
219
  return this.action ? c`
225
220
  ${e}
226
221
  <form
227
222
  action=${this.action}
228
223
  method=${this.method}
229
224
  enctype=${this.enctype}
230
- name=${p(this.name || void 0)}
225
+ name=${f(this.name || void 0)}
231
226
  ?novalidate=${this.novalidate}
232
227
  >
233
228
  <slot></slot>
@@ -236,7 +231,7 @@ let i = class extends m {
236
231
  }
237
232
  };
238
233
  s([
239
- d()
234
+ x()
240
235
  ], i.prototype, "_validationErrors", 2);
241
236
  s([
242
237
  h({ type: String })
@@ -254,9 +249,9 @@ s([
254
249
  h({ type: String })
255
250
  ], i.prototype, "enctype", 2);
256
251
  i = s([
257
- f("hx-form")
252
+ d("hx-form")
258
253
  ], i);
259
254
  export {
260
255
  i as H
261
256
  };
262
- //# sourceMappingURL=hx-form-fJE-FJQV.js.map
257
+ //# sourceMappingURL=hx-form-ButQFt9A.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hx-form-ButQFt9A.js","sources":["../../src/styles/form/form.scoped.css?raw","../../src/components/hx-form/hx-form.styles.ts","../../src/components/hx-form/hx-form.ts"],"sourcesContent":["export default \"hx-form{display:flex;flex-direction:column;gap:var(--hx-form-gap, var(--hx-space-4, 1rem));max-width:var(--hx-form-max-width, none);padding:var(--hx-form-padding, 0)}hx-form .hx-form-error-summary{border:var(--hx-border-width-thin, 1px) solid var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));border-radius:var(--hx-border-radius-md, .375rem);background-color:var(--hx-color-error-50, #fef2f2);color:var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));padding:var(--hx-space-3, .75rem) var(--hx-space-4, 1rem);font-size:var(--hx-font-size-sm, .875rem);line-height:var(--hx-line-height-normal, 1.5);font-family:var(--hx-input-font-family, var(--hx-font-family-sans, sans-serif))}hx-form .hx-form-error-summary ul{margin:0;padding:0 0 0 var(--hx-space-4, 1rem)}hx-form .hx-form-error-summary li{margin-bottom:var(--hx-space-1, .25rem)}hx-form .hx-form-error-summary li:last-child{margin-bottom:0}hx-form .form-item{display:flex;flex-direction:column;gap:var(--hx-space-1, .25rem);font-family:var(--hx-input-font-family, var(--hx-font-family-sans, sans-serif))}hx-form .form-item+.form-item{margin-top:var(--hx-space-4, 1rem)}hx-form label{display:flex;align-items:baseline;gap:var(--hx-space-1, .25rem);font-size:var(--hx-font-size-sm, .875rem);font-weight:var(--hx-font-weight-medium, 500);color:var(--hx-input-label-color, var(--hx-color-neutral-700, #343a40));line-height:var(--hx-line-height-normal, 1.5)}hx-form .form-required{color:var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));font-weight:var(--hx-font-weight-bold, 700)}hx-form .description{font-size:var(--hx-font-size-xs, .75rem);color:var(--hx-color-neutral-500, #6c757d);line-height:var(--hx-line-height-normal, 1.5)}hx-form .form-item :is(*,*:before,*:after){box-sizing:border-box}hx-form :is(input:is([type=text],[type=email],[type=password],[type=tel],[type=url],[type=search],[type=number]),textarea){display:block;width:100%;border:var(--hx-border-width-thin, 1px) solid var(--hx-input-border-color, var(--hx-color-neutral-300, #ced4da));border-radius:var(--hx-input-border-radius, var(--hx-border-radius-md, .375rem));background-color:var(--hx-input-bg, var(--hx-color-neutral-0, #ffffff));padding:var(--hx-space-2, .5rem) var(--hx-space-3, .75rem);font-family:var(--hx-input-font-family, var(--hx-font-family-sans, sans-serif));font-size:var(--hx-font-size-md, 1rem);color:var(--hx-input-color, var(--hx-color-neutral-800, #212529));line-height:var(--hx-line-height-normal, 1.5);transition:border-color var(--hx-transition-fast, .15s ease),box-shadow var(--hx-transition-fast, .15s ease)}hx-form input:is([type=text],[type=email],[type=password],[type=tel],[type=url],[type=search],[type=number]){min-height:var(--hx-size-10, 2.5rem)}hx-form :is(input:is([type=text],[type=email],[type=password],[type=tel],[type=url],[type=search],[type=number]),textarea)::placeholder{color:var(--hx-color-neutral-400, #adb5bd)}hx-form :is(input:is([type=text],[type=email],[type=password],[type=tel],[type=url],[type=search],[type=number]),textarea):focus{outline:0;border-color:var(--hx-input-focus-ring-color, var(--hx-focus-ring-color, #2563eb));box-shadow:0 0 0 var(--hx-focus-ring-width, 2px) color-mix(in srgb,var(--hx-input-focus-ring-color, var(--hx-focus-ring-color, #2563eb)) calc(var(--hx-focus-ring-opacity, .25) * 100%),transparent)}hx-form :is(input:is([type=text],[type=email],[type=password],[type=tel],[type=url],[type=search],[type=number]),textarea):disabled{opacity:var(--hx-opacity-disabled, .5);cursor:not-allowed;pointer-events:none}hx-form :is(input:is([type=text],[type=email],[type=password],[type=tel],[type=url],[type=search],[type=number]),textarea):read-only{background-color:var(--hx-color-neutral-100, #e9ecef)}hx-form input[type=search]::-webkit-search-decoration,hx-form input[type=search]::-webkit-search-cancel-button,hx-form input[type=search]::-webkit-search-results-button,hx-form input[type=search]::-webkit-search-results-decoration{-webkit-appearance:none}hx-form input[type=number]::-webkit-inner-spin-button,hx-form input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}hx-form input[type=number]{appearance:textfield}hx-form textarea{min-height:var(--hx-textarea-min-height, var(--hx-size-20, 5rem));resize:vertical}hx-form select{display:block;width:100%;border:var(--hx-border-width-thin, 1px) solid var(--hx-select-border-color, var(--hx-color-neutral-300, #ced4da));border-radius:var(--hx-select-border-radius, var(--hx-border-radius-md, .375rem));background-color:var(--hx-select-bg, var(--hx-color-neutral-0, #ffffff));padding:var(--hx-space-2, .5rem) var(--hx-space-8, 2rem) var(--hx-space-2, .5rem) var(--hx-space-3, .75rem);font-family:var(--hx-select-font-family, var(--hx-font-family-sans, sans-serif));font-size:var(--hx-font-size-md, 1rem);color:var(--hx-select-color, var(--hx-color-neutral-800, #212529));line-height:var(--hx-line-height-normal, 1.5);min-height:var(--hx-input-height-md, var(--hx-size-10, 2.5rem));cursor:pointer;transition:border-color var(--hx-transition-fast, .15s ease),box-shadow var(--hx-transition-fast, .15s ease);appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%236c757d' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E\\\");background-repeat:no-repeat;background-position:right var(--hx-space-3, .75rem) center;background-size:12px 8px}hx-form select:focus{outline:0;border-color:var(--hx-select-focus-ring-color, var(--hx-focus-ring-color, #2563eb));box-shadow:0 0 0 var(--hx-focus-ring-width, 2px) color-mix(in srgb,var(--hx-select-focus-ring-color, var(--hx-focus-ring-color, #2563eb)) calc(var(--hx-focus-ring-opacity, .25) * 100%),transparent)}hx-form select:disabled{opacity:var(--hx-opacity-disabled, .5);cursor:not-allowed;pointer-events:none}hx-form select[multiple]{min-height:var(--hx-size-20, 5rem);padding-right:var(--hx-space-3, .75rem);background-image:none}hx-form select[multiple] option{padding:var(--hx-space-1, .25rem) var(--hx-space-2, .5rem)}hx-form select::-ms-expand{display:none}hx-form :is(input[type=checkbox],input[type=radio]){appearance:none;-webkit-appearance:none;-moz-appearance:none;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;margin:0;background-color:var(--hx-color-neutral-0, #ffffff);cursor:pointer;vertical-align:middle;transition:background-color var(--hx-transition-fast, .15s ease),border-color var(--hx-transition-fast, .15s ease),box-shadow var(--hx-transition-fast, .15s ease)}hx-form input[type=checkbox]{width:var(--hx-checkbox-size, var(--hx-size-5, 1.25rem));height:var(--hx-checkbox-size, var(--hx-size-5, 1.25rem));border:var(--hx-border-width-medium, 2px) solid var(--hx-checkbox-border-color, var(--hx-color-neutral-300, #ced4da));border-radius:var(--hx-checkbox-border-radius, var(--hx-border-radius-sm, .25rem))}hx-form input[type=checkbox]:checked{background-color:var(--hx-checkbox-checked-bg, var(--hx-color-primary-500, #2563eb));border-color:var(--hx-checkbox-checked-border-color, var(--hx-color-primary-500, #2563eb));background-image:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M3.5 8.5L6.5 11.5L12.5 4.5' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\\\");background-repeat:no-repeat;background-position:center;background-size:100%}hx-form input[type=checkbox]:indeterminate{background-color:var(--hx-checkbox-checked-bg, var(--hx-color-primary-500, #2563eb));border-color:var(--hx-checkbox-checked-border-color, var(--hx-color-primary-500, #2563eb));background-image:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 8H12' stroke='%23ffffff' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E\\\");background-repeat:no-repeat;background-position:center;background-size:100%}hx-form input[type=checkbox]:focus-visible{outline:var(--hx-focus-ring-width, 2px) solid var(--hx-checkbox-focus-ring-color, var(--hx-focus-ring-color, #2563eb));outline-offset:var(--hx-focus-ring-offset, 2px)}hx-form input[type=checkbox]:hover:not(:disabled){border-color:var(--hx-color-primary-500, #2563eb)}hx-form input[type=checkbox]:checked:hover:not(:disabled){filter:brightness(var(--hx-filter-brightness-hover, .9))}hx-form :is(input[type=checkbox],input[type=radio]):disabled{opacity:var(--hx-opacity-disabled, .5);cursor:not-allowed;pointer-events:none}hx-form :is(.form-type-checkbox,.form-type-checkbox-toggle){display:flex;align-items:flex-start;gap:var(--hx-space-2, .5rem)}hx-form :is(.form-type-checkbox,.form-type-checkbox-toggle) label{font-size:var(--hx-font-size-sm, .875rem);font-weight:var(--hx-font-weight-medium, 500);color:var(--hx-checkbox-label-color, var(--hx-color-neutral-700, #343a40));line-height:var(--hx-line-height-normal, 1.5);cursor:pointer;user-select:none;-webkit-user-select:none}hx-form input[type=radio]{width:var(--hx-radio-size, var(--hx-size-5, 1.25rem));height:var(--hx-radio-size, var(--hx-size-5, 1.25rem));border:var(--hx-border-width-medium, 2px) solid var(--hx-radio-border-color, var(--hx-color-neutral-300, #ced4da));border-radius:var(--hx-border-radius-full, 9999px)}hx-form input[type=radio]:checked{border-color:var(--hx-radio-checked-border-color, var(--hx-color-primary-500, #2563eb));background-color:var(--hx-radio-checked-bg, var(--hx-color-primary-500, #2563eb));box-shadow:inset 0 0 0 calc(var(--hx-radio-size, var(--hx-size-5, 1.25rem)) * .3) var(--hx-radio-dot-color, var(--hx-color-neutral-0, #ffffff))}hx-form input[type=radio]:focus-visible{outline:var(--hx-focus-ring-width, 2px) solid var(--hx-radio-focus-ring-color, var(--hx-focus-ring-color, #2563eb));outline-offset:var(--hx-focus-ring-offset, 2px)}hx-form input[type=radio]:hover:not(:disabled):not(:checked){border-color:var(--hx-color-neutral-400, #adb5bd)}hx-form .form-type-radio{display:inline-flex;align-items:center;gap:var(--hx-space-2, .5rem)}hx-form .form-type-radio label{font-size:var(--hx-font-size-md, 1rem);color:var(--hx-radio-label-color, var(--hx-color-neutral-700, #343a40));line-height:var(--hx-line-height-normal, 1.5);cursor:pointer;user-select:none;-webkit-user-select:none}hx-form .form-radios{display:flex;flex-direction:column;gap:var(--hx-radio-group-gap, var(--hx-space-3, .75rem))}hx-form .form-radios--horizontal{flex-direction:row;flex-wrap:wrap}hx-form .form-type-switch{display:flex;flex-direction:column;gap:var(--hx-space-1, .25rem);font-family:var(--hx-font-family-sans, sans-serif)}hx-form .form-type-switch .switch__control-row{display:flex;align-items:center;gap:var(--hx-space-2, .5rem)}hx-form .form-type-switch input[type=checkbox]{position:relative;width:var(--hx-switch-track-width-md, var(--hx-size-10, 2.5rem));height:var(--hx-switch-track-height-md, var(--hx-size-5-5, 1.375rem));border:none;border-radius:var(--hx-border-radius-full, 9999px);background-color:var(--hx-switch-track-bg, var(--hx-color-neutral-300, #ced4da));transition:background-color var(--hx-transition-fast, .15s ease);background-image:none}hx-form .form-type-switch input[type=checkbox]:before{content:\\\"\\\";position:absolute;top:50%;left:var(--hx-switch-thumb-offset, var(--hx-space-0-5, .125rem));transform:translateY(-50%);width:var(--hx-switch-thumb-size-md, var(--hx-size-4-5, 1.125rem));height:var(--hx-switch-thumb-size-md, var(--hx-size-4-5, 1.125rem));border-radius:var(--hx-border-radius-full, 9999px);background-color:var(--hx-switch-thumb-bg, var(--hx-color-neutral-0, #ffffff));box-shadow:var(--hx-switch-thumb-shadow, var(--hx-shadow-sm, 0 1px 2px 0 rgb(0 0 0 / .05)));transition:transform var(--hx-transition-fast, .15s ease)}hx-form .form-type-switch input[type=checkbox]:checked{background-color:var(--hx-switch-track-checked-bg, var(--hx-color-primary-500, #2563eb));background-image:none}hx-form .form-type-switch input[type=checkbox]:checked:before{transform:translateY(-50%) translate(var(--hx-switch-thumb-size-md, var(--hx-size-4-5, 1.125rem)))}hx-form .form-type-switch input[type=checkbox]:focus-visible{outline:var(--hx-focus-ring-width, 2px) solid var(--hx-switch-focus-ring-color, var(--hx-focus-ring-color, #2563eb));outline-offset:var(--hx-focus-ring-offset, 2px)}hx-form .form-type-switch input[type=checkbox]:disabled{opacity:var(--hx-opacity-disabled, .5);cursor:not-allowed;pointer-events:none}hx-form .form-type-switch label{font-size:var(--hx-font-size-sm, .875rem);font-weight:var(--hx-font-weight-medium, 500);color:var(--hx-switch-label-color, var(--hx-color-neutral-700, #343a40));line-height:var(--hx-line-height-normal, 1.5);cursor:pointer;user-select:none;-webkit-user-select:none}hx-form .form-type-switch--sm input[type=checkbox]{width:var(--hx-switch-track-width-sm, var(--hx-size-8, 2rem));height:var(--hx-switch-track-height-sm, var(--hx-size-4-5, 1.125rem))}hx-form .form-type-switch--sm input[type=checkbox]:before{width:var(--hx-switch-thumb-size-sm, var(--hx-size-3-5, .875rem));height:var(--hx-switch-thumb-size-sm, var(--hx-size-3-5, .875rem))}hx-form .form-type-switch--sm input[type=checkbox]:checked:before{transform:translateY(-50%) translate(var(--hx-switch-thumb-size-sm, var(--hx-size-3-5, .875rem)))}hx-form .form-type-switch--lg input[type=checkbox]{width:var(--hx-switch-track-width-lg, var(--hx-size-12, 3rem));height:var(--hx-switch-track-height-lg, var(--hx-size-6-5, 1.625rem))}hx-form .form-type-switch--lg input[type=checkbox]:before{width:var(--hx-switch-thumb-size-lg, var(--hx-size-5-5, 1.375rem));height:var(--hx-switch-thumb-size-lg, var(--hx-size-5-5, 1.375rem))}hx-form .form-type-switch--lg input[type=checkbox]:checked:before{transform:translateY(-50%) translate(var(--hx-switch-thumb-size-lg, var(--hx-size-5-5, 1.375rem)))}hx-form form{display:flex;flex-direction:column;gap:var(--hx-form-gap, var(--hx-space-4, 1rem));font-family:var(--hx-input-font-family, var(--hx-font-family-sans, sans-serif))}hx-form fieldset{border:var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-200, #dee2e6);border-radius:var(--hx-border-radius-md, .375rem);padding:var(--hx-space-4, 1rem);margin:0;display:flex;flex-direction:column;gap:var(--hx-space-4, 1rem)}hx-form :is(legend,summary){font-size:var(--hx-font-size-sm, .875rem);font-weight:var(--hx-font-weight-semibold, 600);color:var(--hx-color-neutral-700, #343a40);line-height:var(--hx-line-height-normal, 1.5)}hx-form legend{display:flex;align-items:baseline;gap:var(--hx-space-1, .25rem);padding:0 var(--hx-space-1, .25rem)}hx-form details{border:var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-200, #dee2e6);border-radius:var(--hx-border-radius-md, .375rem);padding:var(--hx-space-4, 1rem);margin:0}hx-form summary{cursor:pointer;padding:var(--hx-space-1, .25rem) 0;user-select:none;-webkit-user-select:none}hx-form summary:focus-visible{outline:var(--hx-focus-ring-width, 2px) solid var(--hx-focus-ring-color, #2563eb);outline-offset:var(--hx-focus-ring-offset, 2px);border-radius:var(--hx-border-radius-sm, .25rem)}hx-form .form-actions{display:flex;align-items:center;gap:var(--hx-space-3, .75rem);padding-top:var(--hx-space-4, 1rem)}hx-form .form-actions--end{justify-content:flex-end}hx-form .form-actions--between{justify-content:space-between}hx-form .form-columns{display:grid;gap:var(--hx-space-4, 1rem)}hx-form .form-columns--2{grid-template-columns:repeat(2,1fr)}hx-form .form-columns--3{grid-template-columns:repeat(3,1fr)}hx-form .form-columns--4{grid-template-columns:repeat(4,1fr)}@media(max-width:640px){hx-form .form-columns--2,hx-form .form-columns--3,hx-form .form-columns--4{grid-template-columns:1fr}}hx-form .form-item--full{grid-column:1 / -1}hx-form .form-inline{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--hx-space-3, .75rem)}hx-form .form-inline .form-item{flex:1;min-width:0}hx-form .form-inline .form-item+.form-item{margin-top:0}hx-form .form-divider{border:none;border-top:var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-200, #dee2e6);margin:var(--hx-space-2, .5rem) 0}hx-form :is(.form-item.error,.form-item.has-error,.form-item--error) label{color:var(--hx-input-error-color, var(--hx-color-error-500, #dc3545))}hx-form :is(.form-item.error,.form-item.has-error,.form-item--error) :is(input:is([type=text],[type=email],[type=password],[type=tel],[type=url],[type=search],[type=number]),textarea,select){border-color:var(--hx-input-error-color, var(--hx-color-error-500, #dc3545))}hx-form :is(.form-item.error,.form-item.has-error,.form-item--error) :is(input:is([type=text],[type=email],[type=password],[type=tel],[type=url],[type=search],[type=number]),textarea,select):focus{border-color:var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));box-shadow:0 0 0 var(--hx-focus-ring-width, 2px) color-mix(in srgb,var(--hx-input-error-color, var(--hx-color-error-500, #dc3545)) calc(var(--hx-focus-ring-opacity, .25) * 100%),transparent)}hx-form :is(.form-item.error,.form-item.has-error,.form-item--error) input[type=checkbox]{border-color:var(--hx-checkbox-error-color, var(--hx-color-error-500, #dc3545))}hx-form :is(.form-item.error,.form-item.has-error,.form-item--error) input[type=checkbox]:checked{background-color:var(--hx-checkbox-error-color, var(--hx-color-error-500, #dc3545));border-color:var(--hx-checkbox-error-color, var(--hx-color-error-500, #dc3545))}hx-form :is(.form-item.error,.form-item.has-error,.form-item--error) input[type=radio]{border-color:var(--hx-color-error-500, #dc3545)}hx-form :is(.form-item__error-message,.form-item .error-message,.error-message,.form-item__success-message,.form-item .success-message,.success-message){font-size:var(--hx-font-size-xs, .75rem);line-height:var(--hx-line-height-normal, 1.5)}hx-form :is(.form-item__error-message,.form-item .error-message,.error-message){color:var(--hx-input-error-color, var(--hx-color-error-500, #dc3545))}hx-form :is(.form-item__success-message,.form-item .success-message,.success-message){color:var(--hx-color-success-500, #198754)}hx-form :is(.form-item.success,.form-item.has-success,.form-item--success) label{color:var(--hx-color-success-500, #198754)}hx-form :is(.form-item.success,.form-item.has-success,.form-item--success) :is(input:is([type=text],[type=email],[type=password],[type=tel],[type=url],[type=search],[type=number]),textarea,select){border-color:var(--hx-color-success-500, #198754)}hx-form :is(.form-item.success,.form-item.has-success,.form-item--success) :is(input:is([type=text],[type=email],[type=password],[type=tel],[type=url],[type=search],[type=number]),textarea,select):focus{border-color:var(--hx-color-success-500, #198754);box-shadow:0 0 0 var(--hx-focus-ring-width, 2px) color-mix(in srgb,var(--hx-color-success-500, #198754) calc(var(--hx-focus-ring-opacity, .25) * 100%),transparent)}hx-form :is(.messages--error,.messages--status,.messages--warning){border:var(--hx-border-width-thin, 1px) solid;border-radius:var(--hx-border-radius-md, .375rem);padding:var(--hx-space-3, .75rem) var(--hx-space-4, 1rem);font-size:var(--hx-font-size-sm, .875rem);line-height:var(--hx-line-height-normal, 1.5)}hx-form .messages--error{border-color:var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));background-color:var(--hx-color-error-50, #fef2f2);color:var(--hx-input-error-color, var(--hx-color-error-500, #dc3545))}hx-form .messages--status{border-color:var(--hx-color-success-500, #198754);background-color:var(--hx-color-success-50, #f0fdf4);color:var(--hx-color-success-500, #198754)}hx-form .messages--warning{border-color:var(--hx-color-warning-500, #ffc107);background-color:var(--hx-color-warning-50, #fffbeb);color:var(--hx-color-warning-700, #92400e)}@media(forced-colors:active){hx-form :is(input:is([type=text],[type=email],[type=password],[type=tel],[type=url],[type=search],[type=number]),textarea,select):focus{outline:2px solid CanvasText;outline-offset:2px}hx-form .hx-form-error-summary{border-color:LinkText}}\\n\"","import formScopedCss from '../../styles/form/form.scoped.css?raw';\n\n/**\n * Scoped CSS for hx-form (applied to light DOM via CSSStyleSheet adoption).\n *\n * @media (forced-colors: active) rules are authored directly in\n * `../../styles/form/form.scoped.css` so they remain co-located with the\n * selectors they override. See the bottom of that file for the complete\n * forced-colors block.\n */\nexport const helixFormScopedCss = formScopedCss;\n","import { html, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { HelixElement } from '../../base/index.js';\nimport { AdoptedStylesheetsController } from '../../controllers/adopted-stylesheets.js';\nimport { helixFormScopedCss } from './hx-form.styles.js';\n\n/**\n * A Light DOM form wrapper that styles native HTML form elements and\n * hx-* components with the design system's form styles.\n *\n * When `action` is set, renders a `<form>` wrapper around slotted content.\n * When no `action` is set (the Drupal pattern), renders only a `<slot>`\n * so Drupal can provide its own `<form>` tag.\n *\n * Uses adopted stylesheets to inject scoped CSS into the document without\n * Shadow DOM, keeping native form participation and Drupal compatibility.\n *\n * @summary Light DOM form wrapper with scoped styles for native and hx-* form elements.\n *\n * @tag hx-form\n *\n * @slot - Default slot for form fields and controls.\n *\n * @fires {CustomEvent<{valid: boolean, values: Record<string, FormDataEntryValue | FormDataEntryValue[]>, formData: FormData}>} hx-submit - Dispatched on valid client-side submit when no action is set.\n * @fires {CustomEvent<{errors: Array<{name: string, message: string}>}>} hx-invalid - Dispatched when validation fails on submit.\n * @fires {CustomEvent} hx-reset - Dispatched when the form is reset.\n *\n * @cssprop [--hx-form-gap=var(--hx-space-4)] - Gap between form fields.\n * @cssprop [--hx-form-max-width=none] - Maximum width of the form.\n * @cssprop [--hx-form-padding=0] - Internal padding of the form.\n */\n@customElement('hx-form')\nexport class HelixForm extends HelixElement {\n // ─── Light DOM ───\n\n override createRenderRoot(): HTMLElement {\n return this;\n }\n\n // ─── Adopted Stylesheets ───\n\n /**\n * Controller that injects scoped CSS into the document via adopted stylesheets for Light DOM styling.\n * @internal\n */\n private _styles = new AdoptedStylesheetsController(this, helixFormScopedCss, document);\n\n // ─── Internal State ───\n\n /**\n * Current list of validation errors rendered in the error summary and used to set aria-invalid on fields.\n * @internal\n */\n @state()\n private _validationErrors: Array<{ name: string; message: string }> = [];\n\n // ─── Lifecycle ───\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener('submit', this._handleSubmit);\n this.addEventListener('reset', this._handleReset);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('submit', this._handleSubmit);\n this.removeEventListener('reset', this._handleReset);\n }\n\n // ─── Properties ───\n\n /**\n * The URL to submit the form to. When empty, the form handles\n * submission client-side only and dispatches `hx-submit`.\n * @attr action\n */\n @property({ type: String })\n action = '';\n\n /**\n * The HTTP method used when submitting the form.\n * @attr method\n */\n @property({ type: String })\n method: 'get' | 'post' = 'post';\n\n /**\n * When true, disables the browser's built-in constraint validation\n * on form submission.\n * @attr novalidate\n */\n @property({ type: Boolean })\n novalidate = false;\n\n /**\n * Identifies the form for scripting and form discovery.\n * @attr name\n */\n @property({ type: String })\n name = '';\n\n /**\n * The encoding type for form submission. Only used when `action` is set.\n * Use `multipart/form-data` for forms with file uploads.\n * @attr enctype\n */\n @property({ type: String })\n enctype: 'application/x-www-form-urlencoded' | 'multipart/form-data' | 'text/plain' =\n 'application/x-www-form-urlencoded';\n\n // ─── Public Methods ───\n\n /**\n * Checks the validity of all child form elements without showing\n * validation UI. Returns `true` if all elements are valid.\n */\n checkValidity(): boolean {\n const formElements = this._getAllValidatableElements();\n return formElements.every((el) => {\n if ('checkValidity' in el && typeof el.checkValidity === 'function') {\n return (el as HTMLInputElement).checkValidity();\n }\n return true;\n });\n }\n\n /**\n * Checks validity and triggers the browser's constraint validation UI\n * on each invalid element. Returns `true` if all elements are valid.\n */\n reportValidity(): boolean {\n const formElements = this._getAllValidatableElements();\n let allValid = true;\n for (const el of formElements) {\n if ('reportValidity' in el && typeof el.reportValidity === 'function') {\n if (!(el as HTMLInputElement).reportValidity()) {\n allValid = false;\n }\n }\n }\n return allValid;\n }\n\n /**\n * Collects form data from all child form elements (native and hx-*).\n * Returns a `FormData` object.\n */\n getFormData(): FormData {\n // If there is a native <form> child, use it directly\n const formEl = this.querySelector('form');\n if (formEl) {\n return new FormData(formEl);\n }\n\n // Otherwise, manually collect from all named inputs\n const formData = new FormData();\n const elements = this.getNativeFormElements();\n for (const el of elements) {\n const input = el as HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement;\n if (!input.name) continue;\n\n if (input instanceof HTMLInputElement) {\n if (input.type === 'checkbox' || input.type === 'radio') {\n if (input.checked) {\n formData.append(input.name, input.value || 'on');\n }\n } else {\n formData.append(input.name, input.value);\n }\n } else {\n formData.append(input.name, input.value);\n }\n }\n\n return formData;\n }\n\n /**\n * Returns all child hx-* form components that implement the form\n * component contract (hx-text-input, hx-select, hx-checkbox, hx-textarea,\n * hx-radio-group, hx-switch).\n *\n * Note: This uses a hardcoded allowlist. When a new hx-* form component\n * is added, update this selector to include it.\n */\n getFormElements(): HTMLElement[] {\n return Array.from(\n this.querySelectorAll<HTMLElement>(\n 'hx-text-input, hx-select, hx-checkbox, hx-textarea, hx-radio-group, hx-switch',\n ),\n );\n }\n\n /**\n * Returns all native form elements (input, select, textarea, button)\n * found within this component's light DOM.\n */\n getNativeFormElements(): Array<\n HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement | HTMLButtonElement\n > {\n return Array.from(\n this.querySelectorAll<\n HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement | HTMLButtonElement\n >('input, select, textarea, button'),\n );\n }\n\n /**\n * Programmatically sets server-side validation errors on the form.\n * Renders an error summary and sets `aria-invalid=\"true\"` on named fields.\n *\n * Useful for surfacing Drupal server-side validation responses.\n *\n * @param errors - Array of `{name, message}` pairs matching field `name` attributes.\n */\n setErrors(errors: Array<{ name: string; message: string }>): void {\n this._validationErrors = errors;\n this._applyAriaInvalidFromErrors(errors);\n }\n\n /**\n * Programmatically sets a single field error. Merges with any existing errors.\n *\n * @param name - The `name` attribute of the field.\n * @param message - The error message to display.\n */\n setFieldError(name: string, message: string): void {\n const existing = this._validationErrors.filter((e) => e.name !== name);\n this.setErrors([...existing, { name, message }]);\n }\n\n /**\n * Clears all validation errors from the error summary and removes\n * `aria-invalid` from all fields.\n */\n clearErrors(): void {\n this._clearAriaInvalid();\n this._validationErrors = [];\n }\n\n // ─── Private Helpers ───\n\n /**\n * Returns all elements that support constraint validation, including\n * both native form elements and hx-* components with `checkValidity`.\n * @internal\n */\n private _getAllValidatableElements(): HTMLElement[] {\n const native = Array.from(this.querySelectorAll<HTMLElement>('input, select, textarea'));\n const wcElements = this.getFormElements().filter(\n (el): el is HTMLElement & { checkValidity: () => boolean } =>\n 'checkValidity' in el &&\n typeof (el as { checkValidity: unknown }).checkValidity === 'function',\n );\n return [...native, ...wcElements];\n }\n\n /**\n * Sets `aria-invalid=\"true\"` on fields with errors, removes it from valid fields.\n * @internal\n */\n private _applyAriaInvalidFromErrors(errors: Array<{ name: string; message: string }>): void {\n const errorNames = new Set(errors.map((e) => e.name));\n const allElements = this._getAllValidatableElements();\n for (const el of allElements) {\n const named = el as HTMLElement & { name?: string };\n const fieldName = named.name ?? el.tagName.toLowerCase();\n if (errorNames.has(fieldName)) {\n el.setAttribute('aria-invalid', 'true');\n } else {\n el.removeAttribute('aria-invalid');\n }\n }\n }\n\n /**\n * Sets `aria-invalid` based on native constraint validation state.\n * @internal\n */\n private _applyAriaInvalidFromValidity(): void {\n const allElements = this._getAllValidatableElements();\n for (const el of allElements) {\n if ('validity' in el) {\n const validatable = el as HTMLInputElement;\n if (!validatable.validity.valid) {\n el.setAttribute('aria-invalid', 'true');\n } else {\n el.removeAttribute('aria-invalid');\n }\n }\n }\n }\n\n /**\n * Removes `aria-invalid` from all validatable elements.\n * @internal\n */\n private _clearAriaInvalid(): void {\n const allElements = this._getAllValidatableElements();\n for (const el of allElements) {\n el.removeAttribute('aria-invalid');\n }\n }\n\n // ─── Event Handling ───\n\n /**\n * Handles native form submit events, intercepting for client-side validation and hx-submit dispatch.\n * @internal\n */\n private _handleSubmit = (e: Event): void => {\n // If there is an action, let native form submission happen\n if (this.action) {\n return;\n }\n\n // Client-side only: prevent default and dispatch hx-submit or hx-invalid\n e.preventDefault();\n\n if (!this.novalidate && !this.checkValidity()) {\n const errors = this._collectValidationErrors();\n this._validationErrors = errors;\n this._applyAriaInvalidFromValidity();\n\n // Move focus to the error summary after it renders so screen readers announce it\n // immediately. tabindex=\"-1\" on the summary allows programmatic focus (WCAG 2.4.3).\n void this.updateComplete.then(() => {\n const summary = this.querySelector<HTMLElement>('.hx-form-error-summary');\n summary?.focus();\n });\n\n /**\n * Dispatched when validation fails on submit.\n * @event hx-invalid\n */\n this.dispatchEvent(\n new CustomEvent<{ errors: Array<{ name: string; message: string }> }>('hx-invalid', {\n bubbles: true,\n composed: true,\n detail: { errors },\n }),\n );\n return;\n }\n\n // Clear any previous errors on successful submit\n this._validationErrors = [];\n this._clearAriaInvalid();\n\n const formData = this.getFormData();\n const values: Record<string, FormDataEntryValue | FormDataEntryValue[]> = {};\n for (const key of new Set(formData.keys())) {\n const all = formData.getAll(key);\n if (all.length === 1 && all[0] !== undefined) {\n values[key] = all[0];\n } else {\n values[key] = all;\n }\n }\n\n /**\n * Dispatched on valid client-side submit.\n * @event hx-submit\n */\n this.dispatchEvent(\n new CustomEvent<{\n valid: boolean;\n values: Record<string, FormDataEntryValue | FormDataEntryValue[]>;\n formData: FormData;\n }>('hx-submit', {\n bubbles: true,\n composed: true,\n detail: { valid: true, values, formData },\n }),\n );\n };\n\n /**\n * Handles native form reset events, clearing validation errors and dispatching hx-reset.\n * @internal\n */\n private _handleReset = (): void => {\n this._validationErrors = [];\n this._clearAriaInvalid();\n\n /**\n * Dispatched when the form is reset.\n * @event hx-reset\n */\n this.dispatchEvent(\n new CustomEvent<void>('hx-reset', {\n bubbles: true,\n composed: true,\n }),\n );\n };\n\n /**\n * Collects constraint validation errors from all validatable elements after a failed submit attempt.\n * @internal\n */\n private _collectValidationErrors(): Array<{ name: string; message: string }> {\n const errors: Array<{ name: string; message: string }> = [];\n const elements = this._getAllValidatableElements();\n\n for (const el of elements) {\n if ('validity' in el && 'validationMessage' in el) {\n const validatable = el as HTMLInputElement;\n if (!validatable.validity.valid) {\n errors.push({\n name: validatable.name || validatable.tagName.toLowerCase(),\n message: validatable.validationMessage,\n });\n }\n }\n }\n\n return errors;\n }\n\n // ─── Render ───\n\n override render() {\n const errorSummary =\n this._validationErrors.length > 0\n ? html`\n <div class=\"hx-form-error-summary\" role=\"alert\" aria-atomic=\"true\" tabindex=\"-1\">\n <ul>\n ${this._validationErrors.map(\n (error) => html`<li>${error.message || error.name}</li>`,\n )}\n </ul>\n </div>\n `\n : nothing;\n\n if (this.action) {\n return html`\n ${errorSummary}\n <form\n action=${this.action}\n method=${this.method}\n enctype=${this.enctype}\n name=${ifDefined(this.name || undefined)}\n ?novalidate=${this.novalidate}\n >\n <slot></slot>\n </form>\n `;\n }\n\n return html`${errorSummary}<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-form': HelixForm;\n }\n}\n"],"names":["formScopedCss","helixFormScopedCss","HelixForm","HelixElement","AdoptedStylesheetsController","errors","summary","formData","values","key","all","el","formElements","allValid","formEl","elements","input","name","message","existing","e","native","wcElements","errorNames","allElements","fieldName","validatable","errorSummary","html","error","nothing","ifDefined","__decorateClass","state","property","customElement"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { css as _, LitElement as D, html as M } from "lit";
2
- import "./document-token-adoption-DuYNKd4k.js";
1
+ import { css as M, html as _ } from "lit";
3
2
  import { property as h, customElement as w } from "lit/decorators.js";
4
- const N = _`
3
+ import { H as D } from "./helix-element-BNEYeiys.js";
4
+ const N = M`
5
5
  :host {
6
6
  display: inline;
7
7
  }
@@ -11,6 +11,17 @@ const N = _`
11
11
  font: inherit;
12
12
  color: inherit;
13
13
  }
14
+
15
+ /* ─── High Contrast Mode (forced-colors) ─── */
16
+
17
+ /* hx-format-date renders text-only content using color: inherit from its parent.
18
+ forced-color-adjust: auto (default) is sufficient — the browser maps
19
+ inherited text color to CanvasText automatically in forced-colors mode. */
20
+ @media (forced-colors: active) {
21
+ :host {
22
+ forced-color-adjust: auto;
23
+ }
24
+ }
14
25
  `;
15
26
  var T = Object.defineProperty, $ = Object.getOwnPropertyDescriptor, n = (o, t, i, e) => {
16
27
  for (var a = e > 1 ? void 0 : e ? $(t, i) : t, s = o.length - 1, u; s >= 0; s--)
@@ -78,15 +89,15 @@ let r = class extends D {
78
89
  parseInt(m.hour === "24" ? "0" : m.hour ?? "0"),
79
90
  parseInt(m.minute ?? "0"),
80
91
  parseInt(m.second ?? "0")
81
- ), u = Math.round((s(e) - s(a)) / 6e4), y = u >= 0 ? "+" : "-", l = Math.abs(u), d = String(Math.floor(l / 60)).padStart(2, "0"), v = String(l % 60).padStart(2, "0"), p = e.hour === "24" ? "00" : e.hour ?? "00";
82
- return `${e.year}-${e.month}-${e.day}T${p}:${e.minute}:${e.second}${y}${d}:${v}`;
92
+ ), u = Math.round((s(e) - s(a)) / 6e4), l = u >= 0 ? "+" : "-", y = Math.abs(u), d = String(Math.floor(y / 60)).padStart(2, "0"), v = String(y % 60).padStart(2, "0"), p = e.hour === "24" ? "00" : e.hour ?? "00";
93
+ return `${e.year}-${e.month}-${e.day}T${p}:${e.minute}:${e.second}${l}${d}:${v}`;
83
94
  } catch {
84
95
  return o.toISOString();
85
96
  }
86
97
  }
87
98
  /** @internal */
88
99
  _formatRelative(o) {
89
- const t = /* @__PURE__ */ new Date(), i = o.getTime() - t.getTime(), e = Math.round(i / 1e3), a = Math.abs(e), s = Math.round(e / 60), u = Math.abs(s), y = Math.round(e / 3600), l = Math.abs(y), d = Math.round(e / 86400), v = Math.abs(d), p = Math.round(d / 30), m = Math.abs(p), g = Math.round(d / 365), f = this._getLocale(), b = `${f}|${this.numeric}`;
100
+ const t = /* @__PURE__ */ new Date(), i = o.getTime() - t.getTime(), e = Math.round(i / 1e3), a = Math.abs(e), s = Math.round(e / 60), u = Math.abs(s), l = Math.round(e / 3600), y = Math.abs(l), d = Math.round(e / 86400), v = Math.abs(d), p = Math.round(d / 30), m = Math.abs(p), g = Math.round(d / 365), f = this._getLocale(), b = `${f}|${this.numeric}`;
90
101
  let c = r._rtfCache.get(b);
91
102
  if (!c)
92
103
  try {
@@ -95,7 +106,7 @@ let r = class extends D {
95
106
  return "";
96
107
  }
97
108
  try {
98
- return a < 60 ? c.format(e, "second") : u < 60 ? c.format(s, "minute") : l < 24 ? c.format(y, "hour") : v < 30 ? c.format(d, "day") : m < 12 ? c.format(p, "month") : c.format(g, "year");
109
+ return a < 60 ? c.format(e, "second") : u < 60 ? c.format(s, "minute") : y < 24 ? c.format(l, "hour") : v < 30 ? c.format(d, "day") : m < 12 ? c.format(p, "month") : c.format(g, "year");
99
110
  } catch {
100
111
  return "";
101
112
  }
@@ -123,7 +134,7 @@ let r = class extends D {
123
134
  // ─── Render ───
124
135
  render() {
125
136
  const o = this._getDate(), t = this._getDatetimeAttr(o), i = this.relative ? this._formatRelative(o) : this._formatAbsolute(o);
126
- return M`<time part="base" datetime=${t}>${i}</time>`;
137
+ return _`<time part="base" datetime=${t}>${i}</time>`;
127
138
  }
128
139
  };
129
140
  r.styles = [N];
@@ -177,4 +188,4 @@ r = n([
177
188
  export {
178
189
  r as H
179
190
  };
180
- //# sourceMappingURL=hx-format-date-B7L9odbA.js.map
191
+ //# sourceMappingURL=hx-format-date-CKnlQOmV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hx-format-date-CKnlQOmV.js","sources":["../../src/components/hx-format-date/hx-format-date.styles.ts","../../src/components/hx-format-date/hx-format-date.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixFormatDateStyles = css`\n :host {\n display: inline;\n }\n\n [part='base'] {\n display: inline;\n font: inherit;\n color: inherit;\n }\n\n /* ─── High Contrast Mode (forced-colors) ─── */\n\n /* hx-format-date renders text-only content using color: inherit from its parent.\n forced-color-adjust: auto (default) is sufficient — the browser maps\n inherited text color to CanvasText automatically in forced-colors mode. */\n @media (forced-colors: active) {\n :host {\n forced-color-adjust: auto;\n }\n }\n`;\n","import { html } from 'lit';\nimport '../../utilities/document-token-adoption.js';\nimport { customElement, property } from 'lit/decorators.js';\nimport { HelixElement } from '../../base/index.js';\nimport { helixFormatDateStyles } from './hx-format-date.styles.js';\n\n/**\n * Formats and displays a date/time value using the browser's `Intl.DateTimeFormat`\n * (or `Intl.RelativeTimeFormat` when `relative` is set). Renders as an inline\n * `<time>` element — machine-readable via `datetime`, human-readable via formatted text.\n *\n * No external dependencies. Uses native Intl APIs only.\n *\n * @summary Inline date/time formatter using Intl APIs with semantic `<time>` output.\n *\n * @tag hx-format-date\n *\n * @csspart base - The inner `<time>` element.\n */\n@customElement('hx-format-date')\nexport class HelixFormatDate extends HelixElement {\n static override styles = [helixFormatDateStyles];\n\n // ─── Intl formatter caches (keyed by locale+options fingerprint) ───\n /** @internal */\n private static _dtfCache = new Map<string, Intl.DateTimeFormat>();\n /** @internal */\n private static _rtfCache = new Map<string, Intl.RelativeTimeFormat>();\n\n /**\n * The date/time value to format. Accepts an ISO string, a Unix timestamp (ms), or\n * a `Date` object. Defaults to the current date/time when empty.\n * @attr date\n */\n @property()\n date: string | number | Date = '';\n\n /**\n * BCP 47 locale tag used for formatting (e.g. `\"en-US\"`, `\"de\"`, `\"ja\"`).\n * Defaults to `document.documentElement.lang`, then `navigator.language`.\n * @attr lang\n */\n @property()\n override lang = '';\n\n /**\n * Month display format.\n * @attr month\n */\n @property()\n month: 'narrow' | 'short' | 'long' | 'numeric' | '2-digit' | undefined = undefined;\n\n /**\n * Year display format.\n * @attr year\n */\n @property()\n year: 'numeric' | '2-digit' | undefined = undefined;\n\n /**\n * Day display format.\n * @attr day\n */\n @property()\n day: 'numeric' | '2-digit' | undefined = undefined;\n\n /**\n * Weekday display format.\n * @attr weekday\n */\n @property()\n weekday: 'narrow' | 'short' | 'long' | undefined = undefined;\n\n /**\n * Hour display format.\n * @attr hour\n */\n @property()\n hour: 'numeric' | '2-digit' | undefined = undefined;\n\n /**\n * Minute display format.\n * @attr minute\n */\n @property()\n minute: 'numeric' | '2-digit' | undefined = undefined;\n\n /**\n * Second display format.\n * @attr second\n */\n @property()\n second: 'numeric' | '2-digit' | undefined = undefined;\n\n /**\n * Time zone name display format. Accepts all values supported by\n * `Intl.DateTimeFormatOptions.timeZoneName` including `'short'`, `'long'`,\n * `'shortOffset'`, `'longOffset'`, `'shortGeneric'`, and `'longGeneric'`.\n * @attr time-zone-name\n */\n @property({ attribute: 'time-zone-name' })\n timeZoneName: Intl.DateTimeFormatOptions['timeZoneName'] = undefined;\n\n /**\n * IANA time zone identifier (e.g. `\"America/New_York\"`, `\"UTC\"`).\n * @attr time-zone\n */\n @property({ attribute: 'time-zone' })\n timeZone: string | undefined = undefined;\n\n /**\n * Whether to use 12-hour or 24-hour clock. `\"auto\"` defers to locale default.\n * @attr hour-format\n */\n @property({ attribute: 'hour-format' })\n hourFormat: 'auto' | '12' | '24' = 'auto';\n\n /**\n * Controls whether `Intl.RelativeTimeFormat` always shows numeric output\n * (`\"always\"`) or uses natural language when possible (`\"auto\"`, e.g. \"yesterday\").\n * Only used when `relative` is true.\n * @attr numeric\n */\n @property()\n numeric: 'always' | 'auto' = 'auto';\n\n /**\n * When true, displays a relative time string such as \"2 hours ago\" or \"in 3 days\"\n * using `Intl.RelativeTimeFormat`.\n *\n * **Important:** The relative time string is computed once at render time and does\n * not auto-update. If the displayed text must stay current (e.g. a live \"X minutes\n * ago\" counter), the consuming component must re-set the `date` property on its own\n * interval to trigger a re-render.\n * @attr relative\n */\n @property({ type: Boolean })\n relative = false;\n\n // ─── Private helpers ───\n\n /** @internal */\n private _getDate(): Date {\n const val = this.date;\n if (val === '') return new Date();\n if (val instanceof Date) {\n return isNaN(val.getTime()) ? new Date() : val;\n }\n if (typeof val === 'number') {\n const d = new Date(val);\n return isNaN(d.getTime()) ? new Date() : d;\n }\n // Numeric strings (e.g. Unix timestamps set via HTML attribute) must be\n // converted to a number before passing to Date — new Date(\"1718462400000\")\n // returns Invalid Date in most JS engines.\n const asNumber = Number(val);\n if (!isNaN(asNumber)) {\n const d = new Date(asNumber);\n return isNaN(d.getTime()) ? new Date() : d;\n }\n const parsed = new Date(val);\n return isNaN(parsed.getTime()) ? new Date() : parsed;\n }\n\n /** @internal */\n private _getLocale(): string {\n if (this.lang) return this.lang;\n const docLang = typeof document !== 'undefined' ? document.documentElement.lang : '';\n const navLang = typeof navigator !== 'undefined' ? navigator.language : '';\n return docLang || navLang || 'en';\n }\n\n /** @internal */\n private _getHour12(): boolean | undefined {\n if (this.hourFormat === '12') return true;\n if (this.hourFormat === '24') return false;\n return undefined;\n }\n\n /**\n * Returns the `datetime` attribute value. When `timeZone` is set, returns a\n * timezone-offset ISO string (e.g. `2024-09-20T05:00:00-04:00`) so that\n * assistive technology reads the same local time as the visual display.\n */\n /** @internal */\n private _getDatetimeAttr(date: Date): string {\n if (!this.timeZone) return date.toISOString();\n try {\n const fmtOpts: Intl.DateTimeFormatOptions = {\n timeZone: this.timeZone,\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n hour12: false,\n };\n const reduceParts = (parts: Intl.DateTimeFormatPart[]) =>\n parts.reduce<Record<string, string>>((acc, p) => {\n if (p.type !== 'literal') acc[p.type] = p.value;\n return acc;\n }, {});\n\n const tzParts = reduceParts(new Intl.DateTimeFormat('en-CA', fmtOpts).formatToParts(date));\n const utcParts = reduceParts(\n new Intl.DateTimeFormat('en-CA', { ...fmtOpts, timeZone: 'UTC' }).formatToParts(date),\n );\n\n const toMs = (p: Record<string, string>) =>\n Date.UTC(\n parseInt(p['year'] ?? '0'),\n parseInt(p['month'] ?? '1') - 1,\n parseInt(p['day'] ?? '1'),\n parseInt(p['hour'] === '24' ? '0' : (p['hour'] ?? '0')),\n parseInt(p['minute'] ?? '0'),\n parseInt(p['second'] ?? '0'),\n );\n\n const offsetMin = Math.round((toMs(tzParts) - toMs(utcParts)) / 60000);\n const sign = offsetMin >= 0 ? '+' : '-';\n const absMin = Math.abs(offsetMin);\n const hh = String(Math.floor(absMin / 60)).padStart(2, '0');\n const mm = String(absMin % 60).padStart(2, '0');\n const h = tzParts['hour'] === '24' ? '00' : (tzParts['hour'] ?? '00');\n return `${tzParts['year']}-${tzParts['month']}-${tzParts['day']}T${h}:${tzParts['minute']}:${tzParts['second']}${sign}${hh}:${mm}`;\n } catch {\n return date.toISOString();\n }\n }\n\n /** @internal */\n private _formatRelative(date: Date): string {\n const now = new Date();\n const diffMs = date.getTime() - now.getTime();\n const diffSec = Math.round(diffMs / 1000);\n const absSec = Math.abs(diffSec);\n const diffMin = Math.round(diffSec / 60);\n const absMin = Math.abs(diffMin);\n const diffHour = Math.round(diffSec / 3600);\n const absHour = Math.abs(diffHour);\n const diffDay = Math.round(diffSec / 86400);\n const absDay = Math.abs(diffDay);\n const diffMonth = Math.round(diffDay / 30);\n const absMonth = Math.abs(diffMonth);\n const diffYear = Math.round(diffDay / 365);\n\n const locale = this._getLocale();\n const cacheKey = `${locale}|${this.numeric}`;\n let rtf = HelixFormatDate._rtfCache.get(cacheKey);\n if (!rtf) {\n try {\n rtf = new Intl.RelativeTimeFormat(locale, { numeric: this.numeric });\n HelixFormatDate._rtfCache.set(cacheKey, rtf);\n } catch {\n return '';\n }\n }\n\n try {\n if (absSec < 60) return rtf.format(diffSec, 'second');\n if (absMin < 60) return rtf.format(diffMin, 'minute');\n if (absHour < 24) return rtf.format(diffHour, 'hour');\n if (absDay < 30) return rtf.format(diffDay, 'day');\n if (absMonth < 12) return rtf.format(diffMonth, 'month');\n return rtf.format(diffYear, 'year');\n } catch {\n return '';\n }\n }\n\n /** @internal */\n private _formatAbsolute(date: Date): string {\n const options: Intl.DateTimeFormatOptions = {};\n\n if (this.month !== undefined) options.month = this.month;\n if (this.year !== undefined) options.year = this.year;\n if (this.day !== undefined) options.day = this.day;\n if (this.weekday !== undefined) options.weekday = this.weekday;\n if (this.hour !== undefined) options.hour = this.hour;\n if (this.minute !== undefined) options.minute = this.minute;\n if (this.second !== undefined) options.second = this.second;\n if (this.timeZoneName !== undefined) options.timeZoneName = this.timeZoneName;\n if (this.timeZone !== undefined) options.timeZone = this.timeZone;\n\n const hour12 = this._getHour12();\n if (hour12 !== undefined) options.hour12 = hour12;\n\n // Fall back to a sensible default when no format options are specified\n if (Object.keys(options).length === 0) {\n options.year = 'numeric';\n options.month = 'long';\n options.day = 'numeric';\n }\n\n const locale = this._getLocale();\n const cacheKey = `${locale}|${JSON.stringify(options)}`;\n let dtf = HelixFormatDate._dtfCache.get(cacheKey);\n if (!dtf) {\n try {\n dtf = new Intl.DateTimeFormat(locale, options);\n HelixFormatDate._dtfCache.set(cacheKey, dtf);\n } catch {\n // Invalid options (e.g. unknown timeZone) — return empty string\n return '';\n }\n }\n\n try {\n return dtf.format(date);\n } catch {\n return '';\n }\n }\n\n // ─── Render ───\n\n override render() {\n const date = this._getDate();\n const datetimeAttr = this._getDatetimeAttr(date);\n const formattedText = this.relative ? this._formatRelative(date) : this._formatAbsolute(date);\n\n return html`<time part=\"base\" datetime=${datetimeAttr}>${formattedText}</time>`;\n }\n}\n\nexport type HxFormatDate = HelixFormatDate;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-format-date': HelixFormatDate;\n }\n}\n"],"names":["helixFormatDateStyles","css","HelixFormatDate","HelixElement","val","d","asNumber","parsed","docLang","navLang","date","fmtOpts","reduceParts","parts","acc","p","tzParts","utcParts","toMs","offsetMin","sign","absMin","hh","mm","h","now","diffMs","diffSec","absSec","diffMin","diffHour","absHour","diffDay","absDay","diffMonth","absMonth","diffYear","locale","cacheKey","rtf","options","hour12","dtf","datetimeAttr","formattedText","html","__decorateClass","property","customElement"],"mappings":"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"}
@@ -1,26 +1,36 @@
1
- import { css as m, LitElement as c, html as d } from "lit";
2
- import "./document-token-adoption-DuYNKd4k.js";
3
- import { property as s, customElement as g } from "lit/decorators.js";
1
+ import { css as h, html as m } from "lit";
2
+ import { property as s, customElement as d } from "lit/decorators.js";
4
3
  import { styleMap as y } from "lit/directives/style-map.js";
5
- const f = m`
4
+ import { H as g } from "./helix-element-BNEYeiys.js";
5
+ const f = h`
6
6
  :host {
7
7
  display: block;
8
8
  box-sizing: border-box;
9
9
  width: 100%;
10
10
  }
11
- `, v = m`
11
+ `, v = h`
12
12
  :host {
13
13
  display: block;
14
14
  min-width: 0;
15
15
  min-height: 0;
16
16
  }
17
+
18
+ /* ─── High Contrast Mode (forced-colors) ─── */
19
+
20
+ /* hx-grid and hx-grid-item are layout wrappers with no state communicated
21
+ via color. forced-color-adjust: auto (default) is sufficient. */
22
+ @media (forced-colors: active) {
23
+ :host {
24
+ forced-color-adjust: auto;
25
+ }
26
+ }
17
27
  `;
18
- var x = Object.defineProperty, G = Object.getOwnPropertyDescriptor, e = (t, l, a, p) => {
19
- for (var o = p > 1 ? void 0 : p ? G(l, a) : l, n = t.length - 1, u; n >= 0; n--)
20
- (u = t[n]) && (o = (p ? u(l, a, o) : u(o)) || o);
21
- return p && o && x(l, a, o), o;
28
+ var x = Object.defineProperty, G = Object.getOwnPropertyDescriptor, e = (t, l, p, a) => {
29
+ for (var o = a > 1 ? void 0 : a ? G(l, p) : l, u = t.length - 1, n; u >= 0; u--)
30
+ (n = t[u]) && (o = (a ? n(l, p, o) : n(o)) || o);
31
+ return a && o && x(l, p, o), o;
22
32
  };
23
- const h = {
33
+ const c = {
24
34
  none: "0",
25
35
  xs: "var(--hx-space-1, 0.25rem)",
26
36
  sm: "var(--hx-space-2, 0.5rem)",
@@ -28,7 +38,7 @@ const h = {
28
38
  lg: "var(--hx-space-6, 1.5rem)",
29
39
  xl: "var(--hx-space-8, 2rem)"
30
40
  };
31
- let r = class extends c {
41
+ let r = class extends g {
32
42
  constructor() {
33
43
  super(...arguments), this.columns = 1, this.gap = "md", this.align = "stretch", this.justify = "stretch";
34
44
  }
@@ -39,7 +49,7 @@ let r = class extends c {
39
49
  }
40
50
  /** @internal */
41
51
  _resolveGap(t) {
42
- return h[t] ?? h.md;
52
+ return c[t] ?? c.md;
43
53
  }
44
54
  /** @internal */
45
55
  _computedRowGap() {
@@ -61,7 +71,7 @@ let r = class extends c {
61
71
  };
62
72
  }
63
73
  render() {
64
- return d`
74
+ return m`
65
75
  <div part="base" role="presentation" style=${y(this._baseStyleMap())}>
66
76
  <slot></slot>
67
77
  </div>
@@ -88,9 +98,9 @@ e([
88
98
  s({ reflect: !0 })
89
99
  ], r.prototype, "justify", 2);
90
100
  r = e([
91
- g("hx-grid")
101
+ d("hx-grid")
92
102
  ], r);
93
- let i = class extends c {
103
+ let i = class extends g {
94
104
  updated(t) {
95
105
  super.updated(t), (t.has("column") || t.has("row") || t.has("span")) && this._applyHostGridStyles();
96
106
  }
@@ -102,7 +112,7 @@ let i = class extends c {
102
112
  this.column ? this.style.gridColumn = this.column : this.span !== void 0 ? this.style.gridColumn = `span ${this.span}` : this.style.gridColumn = "", this.row ? this.style.gridRow = this.row : this.style.gridRow = "";
103
113
  }
104
114
  render() {
105
- return d`<slot></slot>`;
115
+ return m`<slot></slot>`;
106
116
  }
107
117
  };
108
118
  i.styles = [v];
@@ -116,10 +126,10 @@ e([
116
126
  s({ type: Number, reflect: !0 })
117
127
  ], i.prototype, "span", 2);
118
128
  i = e([
119
- g("hx-grid-item")
129
+ d("hx-grid-item")
120
130
  ], i);
121
131
  export {
122
132
  r as H,
123
133
  i as a
124
134
  };
125
- //# sourceMappingURL=hx-grid-BIAR5h9m.js.map
135
+ //# sourceMappingURL=hx-grid-CXZf3jeK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hx-grid-CXZf3jeK.js","sources":["../../src/components/hx-grid/hx-grid.styles.ts","../../src/components/hx-grid/hx-grid.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixGridStyles = css`\n :host {\n display: block;\n box-sizing: border-box;\n width: 100%;\n }\n`;\n\nexport const helixGridItemStyles = css`\n :host {\n display: block;\n min-width: 0;\n min-height: 0;\n }\n\n /* ─── High Contrast Mode (forced-colors) ─── */\n\n /* hx-grid and hx-grid-item are layout wrappers with no state communicated\n via color. forced-color-adjust: auto (default) is sufficient. */\n @media (forced-colors: active) {\n :host {\n forced-color-adjust: auto;\n }\n }\n`;\n","import { html, type PropertyValues } from 'lit';\nimport '../../utilities/document-token-adoption.js';\nimport { customElement, property } from 'lit/decorators.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { HelixElement } from '../../base/index.js';\nimport { helixGridStyles, helixGridItemStyles } from './hx-grid.styles.js';\n\ntype GapSize = 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nconst GAP_TOKENS: Record<GapSize, string> = {\n none: '0',\n xs: 'var(--hx-space-1, 0.25rem)',\n sm: 'var(--hx-space-2, 0.5rem)',\n md: 'var(--hx-space-4, 1rem)',\n lg: 'var(--hx-space-6, 1.5rem)',\n xl: 'var(--hx-space-8, 2rem)',\n};\n\n/**\n * A CSS Grid layout wrapper with design-token-based column and gap system.\n *\n * @summary CSS Grid layout primitive for building responsive grid layouts.\n *\n * @tag hx-grid\n *\n * @slot - Default slot for grid content (use `hx-grid-item` for precise placement).\n *\n * @csspart base - The grid container element.\n *\n * @cssprop [--hx-grid-columns] - Override the computed grid-template-columns.\n * @cssprop [--hx-grid-gap] - Override the computed gap.\n * @cssprop [--hx-grid-row-gap] - Override the computed row-gap.\n * @cssprop [--hx-grid-column-gap] - Override the computed column-gap.\n */\n@customElement('hx-grid')\nexport class HelixGrid extends HelixElement {\n static override styles = [helixGridStyles];\n\n /**\n * Number of equal columns (`repeat(N, 1fr)`) or a CSS grid-template-columns string.\n * @attr columns\n */\n @property({ reflect: true })\n columns: number | string = 1;\n\n /**\n * Gap size applied to both row and column gaps.\n * @attr gap\n */\n @property({ reflect: true })\n gap: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' = 'md';\n\n /**\n * Row gap override. When set, takes precedence over `gap` for row spacing.\n * @attr row-gap\n */\n @property({ attribute: 'row-gap', reflect: true })\n rowGap: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | undefined;\n\n /**\n * Column gap override. When set, takes precedence over `gap` for column spacing.\n * @attr column-gap\n */\n @property({ attribute: 'column-gap', reflect: true })\n columnGap: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | undefined;\n\n /**\n * Aligns grid items along the block axis (align-items).\n * @attr align\n */\n @property({ reflect: true })\n align: 'start' | 'center' | 'end' | 'stretch' = 'stretch';\n\n /**\n * Justifies grid items along the inline axis (justify-items).\n * @attr justify\n */\n @property({ reflect: true })\n justify: 'start' | 'center' | 'end' | 'stretch' = 'stretch';\n\n /** @internal */\n private _gridTemplateColumns(): string {\n const cols = this.columns;\n if (typeof cols === 'number' || /^\\d+$/.test(String(cols))) {\n return `var(--hx-grid-columns, repeat(${cols}, 1fr))`;\n }\n return `var(--hx-grid-columns, ${cols})`;\n }\n\n /** @internal */\n private _resolveGap(size: GapSize): string {\n return GAP_TOKENS[size] ?? GAP_TOKENS.md;\n }\n\n /** @internal */\n private _computedRowGap(): string {\n if (this.rowGap) {\n return `var(--hx-grid-row-gap, ${this._resolveGap(this.rowGap)})`;\n }\n return `var(--hx-grid-row-gap, var(--hx-grid-gap, ${this._resolveGap(this.gap)}))`;\n }\n\n /** @internal */\n private _computedColumnGap(): string {\n if (this.columnGap) {\n return `var(--hx-grid-column-gap, ${this._resolveGap(this.columnGap)})`;\n }\n return `var(--hx-grid-column-gap, var(--hx-grid-gap, ${this._resolveGap(this.gap)}))`;\n }\n\n /** @internal */\n private _baseStyleMap(): Record<string, string> {\n return {\n display: 'grid',\n 'grid-template-columns': this._gridTemplateColumns(),\n 'row-gap': this._computedRowGap(),\n 'column-gap': this._computedColumnGap(),\n 'align-items': this.align,\n 'justify-items': this.justify,\n };\n }\n\n override render() {\n return html`\n <div part=\"base\" role=\"presentation\" style=${styleMap(this._baseStyleMap())}>\n <slot></slot>\n </div>\n `;\n }\n}\n\n/**\n * Optional companion element for precise grid item placement.\n * Applies grid-column and grid-row directly to the host element\n * so it participates correctly in the parent CSS grid layout.\n *\n * @summary Grid item with explicit column/row placement.\n *\n * @tag hx-grid-item\n *\n * @slot - Default slot for item content.\n */\n@customElement('hx-grid-item')\nexport class HelixGridItem extends HelixElement {\n static override styles = [helixGridItemStyles];\n\n /**\n * CSS grid-column value (e.g., \"1 / 3\", \"span 2\").\n * @attr column\n */\n @property({ reflect: true })\n column: string | undefined;\n\n /**\n * CSS grid-row value (e.g., \"1 / 2\").\n * @attr row\n */\n @property({ reflect: true })\n row: string | undefined;\n\n /**\n * Column span shorthand — equivalent to setting `column: \"span N\"`.\n * @attr span\n */\n @property({ type: Number, reflect: true })\n span: number | undefined;\n\n override updated(changed: PropertyValues<this>): void {\n super.updated(changed);\n if (changed.has('column') || changed.has('row') || changed.has('span')) {\n this._applyHostGridStyles();\n }\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this._applyHostGridStyles();\n }\n\n /** @internal */\n private _applyHostGridStyles(): void {\n if (this.column) {\n this.style.gridColumn = this.column;\n } else if (this.span !== undefined) {\n this.style.gridColumn = `span ${this.span}`;\n } else {\n this.style.gridColumn = '';\n }\n if (this.row) {\n this.style.gridRow = this.row;\n } else {\n this.style.gridRow = '';\n }\n }\n\n override render() {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-grid': HelixGrid;\n 'hx-grid-item': HelixGridItem;\n }\n}\n"],"names":["helixGridStyles","css","helixGridItemStyles","GAP_TOKENS","HelixGrid","HelixElement","cols","size","html","styleMap","__decorateClass","property","customElement","HelixGridItem","changed"],"mappings":";;;;AAEO,MAAMA,IAAkBC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQlBC,IAAsBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;ACDnC,MAAME,IAAsC;AAAA,EAC1C,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAmBO,IAAMC,IAAN,cAAwBC,EAAa;AAAA,EAArC,cAAA;AAAA,UAAA,GAAA,SAAA,GAQL,KAAA,UAA2B,GAO3B,KAAA,MAAiD,MAqBjD,KAAA,QAAgD,WAOhD,KAAA,UAAkD;AAAA,EAAA;AAAA;AAAA,EAG1C,uBAA+B;AACrC,UAAMC,IAAO,KAAK;AAClB,WAAI,OAAOA,KAAS,YAAY,QAAQ,KAAK,OAAOA,CAAI,CAAC,IAChD,iCAAiCA,CAAI,YAEvC,0BAA0BA,CAAI;AAAA,EACvC;AAAA;AAAA,EAGQ,YAAYC,GAAuB;AACzC,WAAOJ,EAAWI,CAAI,KAAKJ,EAAW;AAAA,EACxC;AAAA;AAAA,EAGQ,kBAA0B;AAChC,WAAI,KAAK,SACA,0BAA0B,KAAK,YAAY,KAAK,MAAM,CAAC,MAEzD,6CAA6C,KAAK,YAAY,KAAK,GAAG,CAAC;AAAA,EAChF;AAAA;AAAA,EAGQ,qBAA6B;AACnC,WAAI,KAAK,YACA,6BAA6B,KAAK,YAAY,KAAK,SAAS,CAAC,MAE/D,gDAAgD,KAAK,YAAY,KAAK,GAAG,CAAC;AAAA,EACnF;AAAA;AAAA,EAGQ,gBAAwC;AAC9C,WAAO;AAAA,MACL,SAAS;AAAA,MACT,yBAAyB,KAAK,qBAAA;AAAA,MAC9B,WAAW,KAAK,gBAAA;AAAA,MAChB,cAAc,KAAK,mBAAA;AAAA,MACnB,eAAe,KAAK;AAAA,MACpB,iBAAiB,KAAK;AAAA,IAAA;AAAA,EAE1B;AAAA,EAES,SAAS;AAChB,WAAOK;AAAA,mDACwCC,EAAS,KAAK,cAAA,CAAe,CAAC;AAAA;AAAA;AAAA;AAAA,EAI/E;AACF;AA9FaL,EACK,SAAS,CAACJ,CAAe;AAOzCU,EAAA;AAAA,EADCC,EAAS,EAAE,SAAS,GAAA,CAAM;AAAA,GAPhBP,EAQX,WAAA,WAAA,CAAA;AAOAM,EAAA;AAAA,EADCC,EAAS,EAAE,SAAS,GAAA,CAAM;AAAA,GAdhBP,EAeX,WAAA,OAAA,CAAA;AAOAM,EAAA;AAAA,EADCC,EAAS,EAAE,WAAW,WAAW,SAAS,IAAM;AAAA,GArBtCP,EAsBX,WAAA,UAAA,CAAA;AAOAM,EAAA;AAAA,EADCC,EAAS,EAAE,WAAW,cAAc,SAAS,IAAM;AAAA,GA5BzCP,EA6BX,WAAA,aAAA,CAAA;AAOAM,EAAA;AAAA,EADCC,EAAS,EAAE,SAAS,GAAA,CAAM;AAAA,GAnChBP,EAoCX,WAAA,SAAA,CAAA;AAOAM,EAAA;AAAA,EADCC,EAAS,EAAE,SAAS,GAAA,CAAM;AAAA,GA1ChBP,EA2CX,WAAA,WAAA,CAAA;AA3CWA,IAANM,EAAA;AAAA,EADNE,EAAc,SAAS;AAAA,GACXR,CAAA;AA4GN,IAAMS,IAAN,cAA4BR,EAAa;AAAA,EAwBrC,QAAQS,GAAqC;AACpD,UAAM,QAAQA,CAAO,IACjBA,EAAQ,IAAI,QAAQ,KAAKA,EAAQ,IAAI,KAAK,KAAKA,EAAQ,IAAI,MAAM,MACnE,KAAK,qBAAA;AAAA,EAET;AAAA,EAES,oBAA0B;AACjC,UAAM,kBAAA,GACN,KAAK,qBAAA;AAAA,EACP;AAAA;AAAA,EAGQ,uBAA6B;AACnC,IAAI,KAAK,SACP,KAAK,MAAM,aAAa,KAAK,SACpB,KAAK,SAAS,SACvB,KAAK,MAAM,aAAa,QAAQ,KAAK,IAAI,KAEzC,KAAK,MAAM,aAAa,IAEtB,KAAK,MACP,KAAK,MAAM,UAAU,KAAK,MAE1B,KAAK,MAAM,UAAU;AAAA,EAEzB;AAAA,EAES,SAAS;AAChB,WAAON;AAAA,EACT;AACF;AAvDaK,EACK,SAAS,CAACX,CAAmB;AAO7CQ,EAAA;AAAA,EADCC,EAAS,EAAE,SAAS,GAAA,CAAM;AAAA,GAPhBE,EAQX,WAAA,UAAA,CAAA;AAOAH,EAAA;AAAA,EADCC,EAAS,EAAE,SAAS,GAAA,CAAM;AAAA,GAdhBE,EAeX,WAAA,OAAA,CAAA;AAOAH,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GArB9BE,EAsBX,WAAA,QAAA,CAAA;AAtBWA,IAANH,EAAA;AAAA,EADNE,EAAc,cAAc;AAAA,GAChBC,CAAA;"}
@@ -1,8 +1,8 @@
1
- import { css as p, LitElement as v, nothing as c, html as n } from "lit";
2
- import "./document-token-adoption-DuYNKd4k.js";
3
- import { property as f, customElement as u } from "lit/decorators.js";
4
- import { classMap as d } from "lit/directives/class-map.js";
1
+ import { css as p, nothing as c, html as l } from "lit";
2
+ import { property as v, customElement as f } from "lit/decorators.js";
3
+ import { classMap as u } from "lit/directives/class-map.js";
5
4
  import { ifDefined as h } from "lit/directives/if-defined.js";
5
+ import { H as d } from "./helix-element-BNEYeiys.js";
6
6
  const m = p`
7
7
  :host {
8
8
  display: block;
@@ -16,7 +16,7 @@ const m = p`
16
16
  font-size: var(--hx-help-text-font-size, var(--hx-font-size-sm, 0.875rem));
17
17
  font-weight: var(--hx-help-text-font-weight, var(--hx-font-weight-normal, 400));
18
18
  line-height: var(--hx-help-text-line-height, var(--hx-line-height-normal, 1.5));
19
- color: var(--hx-help-text-color, var(--hx-color-neutral-500, #6b7280));
19
+ color: var(--hx-help-text-color, var(--hx-color-neutral-500, #64748b));
20
20
  margin: 0;
21
21
  }
22
22
 
@@ -33,33 +33,53 @@ const m = p`
33
33
  /* ─── Variant: default ─── */
34
34
 
35
35
  .help-text--default {
36
- --hx-help-text-color: var(--hx-color-neutral-500, #6b7280);
36
+ --hx-help-text-color: var(--hx-color-neutral-500, #64748b);
37
37
  }
38
38
 
39
39
  /* ─── Variant: error ─── */
40
40
 
41
41
  .help-text--error {
42
- --hx-help-text-color: var(--hx-color-error-600, #dc2626);
42
+ --hx-help-text-color: var(--hx-color-error-600, #b91c1c);
43
43
  }
44
44
 
45
45
  /* ─── Variant: warning ─── */
46
46
 
47
47
  .help-text--warning {
48
- --hx-help-text-color: var(--hx-color-warning-700, #b45309);
48
+ --hx-help-text-color: var(--hx-color-warning-700, #92400e);
49
49
  }
50
50
 
51
51
  /* ─── Variant: success ─── */
52
52
 
53
53
  .help-text--success {
54
- --hx-help-text-color: var(--hx-color-success-700, #15803d);
54
+ --hx-help-text-color: var(--hx-color-success-700, #166534);
55
+ }
56
+
57
+ /* ─── High Contrast Mode (forced-colors) ─── */
58
+
59
+ @media (forced-colors: active) {
60
+ .help-text {
61
+ color: GrayText;
62
+ }
63
+
64
+ .help-text--error {
65
+ color: LinkText;
66
+ }
67
+
68
+ .help-text--warning {
69
+ color: CanvasText;
70
+ }
71
+
72
+ .help-text--success {
73
+ color: CanvasText;
74
+ }
55
75
  }
56
76
  `;
57
- var g = Object.defineProperty, w = Object.getOwnPropertyDescriptor, x = (l, e, o, r) => {
58
- for (var t = r > 1 ? void 0 : r ? w(e, o) : e, s = l.length - 1, a; s >= 0; s--)
59
- (a = l[s]) && (t = (r ? a(e, o, t) : a(t)) || t);
77
+ var g = Object.defineProperty, w = Object.getOwnPropertyDescriptor, x = (n, e, o, r) => {
78
+ for (var t = r > 1 ? void 0 : r ? w(e, o) : e, s = n.length - 1, a; s >= 0; s--)
79
+ (a = n[s]) && (t = (r ? a(e, o, t) : a(t)) || t);
60
80
  return r && t && g(e, o, t), t;
61
81
  };
62
- const y = n`<svg viewBox="0 0 16 16" aria-hidden="true" width="1em" height="1em">
82
+ const y = l`<svg viewBox="0 0 16 16" aria-hidden="true" width="1em" height="1em">
63
83
  <circle cx="8" cy="8" r="7" stroke="currentColor" stroke-width="1.5" fill="none" />
64
84
  <line
65
85
  x1="8"
@@ -71,7 +91,7 @@ const y = n`<svg viewBox="0 0 16 16" aria-hidden="true" width="1em" height="1em"
71
91
  stroke-linecap="round"
72
92
  />
73
93
  <circle cx="8" cy="11" r="0.75" fill="currentColor" />
74
- </svg>`, _ = n`<svg viewBox="0 0 16 16" aria-hidden="true" width="1em" height="1em">
94
+ </svg>`, k = l`<svg viewBox="0 0 16 16" aria-hidden="true" width="1em" height="1em">
75
95
  <path
76
96
  d="M7.134 2.5a1 1 0 011.732 0l5.196 9a1 1 0 01-.866 1.5H2.804a1 1 0 01-.866-1.5l5.196-9z"
77
97
  stroke="currentColor"
@@ -88,7 +108,7 @@ const y = n`<svg viewBox="0 0 16 16" aria-hidden="true" width="1em" height="1em"
88
108
  stroke-linecap="round"
89
109
  />
90
110
  <circle cx="8" cy="11" r="0.625" fill="currentColor" />
91
- </svg>`, k = n`<svg viewBox="0 0 16 16" aria-hidden="true" width="1em" height="1em">
111
+ </svg>`, _ = l`<svg viewBox="0 0 16 16" aria-hidden="true" width="1em" height="1em">
92
112
  <circle cx="8" cy="8" r="7" stroke="currentColor" stroke-width="1.5" fill="none" />
93
113
  <path
94
114
  d="M5.25 8.25l1.75 1.75 3.75-3.75"
@@ -101,35 +121,35 @@ const y = n`<svg viewBox="0 0 16 16" aria-hidden="true" width="1em" height="1em"
101
121
  </svg>`, C = {
102
122
  default: c,
103
123
  error: y,
104
- warning: _,
105
- success: k
124
+ warning: k,
125
+ success: _
106
126
  };
107
- let i = class extends v {
127
+ let i = class extends d {
108
128
  constructor() {
109
129
  super(...arguments), this.variant = "default";
110
130
  }
111
131
  render() {
112
- const l = {
132
+ const n = {
113
133
  "help-text": !0,
114
134
  [`help-text--${this.variant}`]: !0
115
135
  }, e = C[this.variant], o = this.variant === "error" ? "alert" : void 0, r = this.variant === "warning" || this.variant === "success" ? "polite" : void 0;
116
- return n`<span
136
+ return l`<span
117
137
  part="base"
118
- class=${d(l)}
138
+ class=${u(n)}
119
139
  role=${h(o)}
120
140
  aria-live=${h(r)}
121
- >${e !== c ? n`<span part="icon" class="help-text__icon">${e}</span>` : c}<span part="text" class="help-text__text"><slot></slot></span>
141
+ >${e !== c ? l`<span part="icon" class="help-text__icon">${e}</span>` : c}<span part="text" class="help-text__text"><slot></slot></span>
122
142
  </span>`;
123
143
  }
124
144
  };
125
145
  i.styles = [m];
126
146
  x([
127
- f({ type: String, reflect: !0 })
147
+ v({ type: String, reflect: !0 })
128
148
  ], i.prototype, "variant", 2);
129
149
  i = x([
130
- u("hx-help-text")
150
+ f("hx-help-text")
131
151
  ], i);
132
152
  export {
133
153
  i as H
134
154
  };
135
- //# sourceMappingURL=hx-help-text-Bmb80bP4.js.map
155
+ //# sourceMappingURL=hx-help-text-D7eytSim.js.map