@helixui/library 0.1.0

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 (778) hide show
  1. package/custom-elements.json +31860 -0
  2. package/dist/components/hx-accordion/hx-accordion-item.d.ts +52 -0
  3. package/dist/components/hx-accordion/hx-accordion-item.d.ts.map +1 -0
  4. package/dist/components/hx-accordion/hx-accordion-item.styles.d.ts +2 -0
  5. package/dist/components/hx-accordion/hx-accordion-item.styles.d.ts.map +1 -0
  6. package/dist/components/hx-accordion/hx-accordion.d.ts +45 -0
  7. package/dist/components/hx-accordion/hx-accordion.d.ts.map +1 -0
  8. package/dist/components/hx-accordion/hx-accordion.styles.d.ts +2 -0
  9. package/dist/components/hx-accordion/hx-accordion.styles.d.ts.map +1 -0
  10. package/dist/components/hx-accordion/index.d.ts +3 -0
  11. package/dist/components/hx-accordion/index.d.ts.map +1 -0
  12. package/dist/components/hx-accordion/index.js +6 -0
  13. package/dist/components/hx-accordion/index.js.map +1 -0
  14. package/dist/components/hx-action-bar/hx-action-bar.d.ts +91 -0
  15. package/dist/components/hx-action-bar/hx-action-bar.d.ts.map +1 -0
  16. package/dist/components/hx-action-bar/hx-action-bar.styles.d.ts +2 -0
  17. package/dist/components/hx-action-bar/hx-action-bar.styles.d.ts.map +1 -0
  18. package/dist/components/hx-action-bar/index.d.ts +2 -0
  19. package/dist/components/hx-action-bar/index.d.ts.map +1 -0
  20. package/dist/components/hx-action-bar/index.js +5 -0
  21. package/dist/components/hx-action-bar/index.js.map +1 -0
  22. package/dist/components/hx-alert/hx-alert.d.ts +108 -0
  23. package/dist/components/hx-alert/hx-alert.d.ts.map +1 -0
  24. package/dist/components/hx-alert/hx-alert.styles.d.ts +2 -0
  25. package/dist/components/hx-alert/hx-alert.styles.d.ts.map +1 -0
  26. package/dist/components/hx-alert/index.d.ts +2 -0
  27. package/dist/components/hx-alert/index.d.ts.map +1 -0
  28. package/dist/components/hx-alert/index.js +5 -0
  29. package/dist/components/hx-alert/index.js.map +1 -0
  30. package/dist/components/hx-avatar/hx-avatar.d.ts +85 -0
  31. package/dist/components/hx-avatar/hx-avatar.d.ts.map +1 -0
  32. package/dist/components/hx-avatar/hx-avatar.styles.d.ts +2 -0
  33. package/dist/components/hx-avatar/hx-avatar.styles.d.ts.map +1 -0
  34. package/dist/components/hx-avatar/index.d.ts +2 -0
  35. package/dist/components/hx-avatar/index.d.ts.map +1 -0
  36. package/dist/components/hx-avatar/index.js +5 -0
  37. package/dist/components/hx-avatar/index.js.map +1 -0
  38. package/dist/components/hx-badge/hx-badge.d.ts +98 -0
  39. package/dist/components/hx-badge/hx-badge.d.ts.map +1 -0
  40. package/dist/components/hx-badge/hx-badge.styles.d.ts +2 -0
  41. package/dist/components/hx-badge/hx-badge.styles.d.ts.map +1 -0
  42. package/dist/components/hx-badge/index.d.ts +2 -0
  43. package/dist/components/hx-badge/index.d.ts.map +1 -0
  44. package/dist/components/hx-badge/index.js +5 -0
  45. package/dist/components/hx-badge/index.js.map +1 -0
  46. package/dist/components/hx-breadcrumb/hx-breadcrumb-item.d.ts +66 -0
  47. package/dist/components/hx-breadcrumb/hx-breadcrumb-item.d.ts.map +1 -0
  48. package/dist/components/hx-breadcrumb/hx-breadcrumb-item.styles.d.ts +2 -0
  49. package/dist/components/hx-breadcrumb/hx-breadcrumb-item.styles.d.ts.map +1 -0
  50. package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts +130 -0
  51. package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts.map +1 -0
  52. package/dist/components/hx-breadcrumb/hx-breadcrumb.styles.d.ts +2 -0
  53. package/dist/components/hx-breadcrumb/hx-breadcrumb.styles.d.ts.map +1 -0
  54. package/dist/components/hx-breadcrumb/index.d.ts +3 -0
  55. package/dist/components/hx-breadcrumb/index.d.ts.map +1 -0
  56. package/dist/components/hx-breadcrumb/index.js +6 -0
  57. package/dist/components/hx-breadcrumb/index.js.map +1 -0
  58. package/dist/components/hx-button/hx-button.d.ts +97 -0
  59. package/dist/components/hx-button/hx-button.d.ts.map +1 -0
  60. package/dist/components/hx-button/hx-button.styles.d.ts +2 -0
  61. package/dist/components/hx-button/hx-button.styles.d.ts.map +1 -0
  62. package/dist/components/hx-button/index.d.ts +2 -0
  63. package/dist/components/hx-button/index.d.ts.map +1 -0
  64. package/dist/components/hx-button/index.js +5 -0
  65. package/dist/components/hx-button/index.js.map +1 -0
  66. package/dist/components/hx-button-group/hx-button-group.d.ts +49 -0
  67. package/dist/components/hx-button-group/hx-button-group.d.ts.map +1 -0
  68. package/dist/components/hx-button-group/hx-button-group.styles.d.ts +2 -0
  69. package/dist/components/hx-button-group/hx-button-group.styles.d.ts.map +1 -0
  70. package/dist/components/hx-button-group/index.d.ts +2 -0
  71. package/dist/components/hx-button-group/index.d.ts.map +1 -0
  72. package/dist/components/hx-button-group/index.js +5 -0
  73. package/dist/components/hx-button-group/index.js.map +1 -0
  74. package/dist/components/hx-card/hx-card.d.ts +76 -0
  75. package/dist/components/hx-card/hx-card.d.ts.map +1 -0
  76. package/dist/components/hx-card/hx-card.styles.d.ts +2 -0
  77. package/dist/components/hx-card/hx-card.styles.d.ts.map +1 -0
  78. package/dist/components/hx-card/index.d.ts +2 -0
  79. package/dist/components/hx-card/index.d.ts.map +1 -0
  80. package/dist/components/hx-card/index.js +5 -0
  81. package/dist/components/hx-card/index.js.map +1 -0
  82. package/dist/components/hx-carousel/hx-carousel-item.d.ts +30 -0
  83. package/dist/components/hx-carousel/hx-carousel-item.d.ts.map +1 -0
  84. package/dist/components/hx-carousel/hx-carousel.d.ts +130 -0
  85. package/dist/components/hx-carousel/hx-carousel.d.ts.map +1 -0
  86. package/dist/components/hx-carousel/hx-carousel.styles.d.ts +2 -0
  87. package/dist/components/hx-carousel/hx-carousel.styles.d.ts.map +1 -0
  88. package/dist/components/hx-carousel/index.d.ts +3 -0
  89. package/dist/components/hx-carousel/index.d.ts.map +1 -0
  90. package/dist/components/hx-carousel/index.js +6 -0
  91. package/dist/components/hx-carousel/index.js.map +1 -0
  92. package/dist/components/hx-checkbox/hx-checkbox.d.ts +127 -0
  93. package/dist/components/hx-checkbox/hx-checkbox.d.ts.map +1 -0
  94. package/dist/components/hx-checkbox/hx-checkbox.styles.d.ts +2 -0
  95. package/dist/components/hx-checkbox/hx-checkbox.styles.d.ts.map +1 -0
  96. package/dist/components/hx-checkbox/index.d.ts +2 -0
  97. package/dist/components/hx-checkbox/index.d.ts.map +1 -0
  98. package/dist/components/hx-checkbox/index.js +5 -0
  99. package/dist/components/hx-checkbox/index.js.map +1 -0
  100. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts +111 -0
  101. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts.map +1 -0
  102. package/dist/components/hx-checkbox-group/hx-checkbox-group.styles.d.ts +2 -0
  103. package/dist/components/hx-checkbox-group/hx-checkbox-group.styles.d.ts.map +1 -0
  104. package/dist/components/hx-checkbox-group/index.d.ts +2 -0
  105. package/dist/components/hx-checkbox-group/index.d.ts.map +1 -0
  106. package/dist/components/hx-checkbox-group/index.js +5 -0
  107. package/dist/components/hx-checkbox-group/index.js.map +1 -0
  108. package/dist/components/hx-code-snippet/hx-code-snippet.d.ts +90 -0
  109. package/dist/components/hx-code-snippet/hx-code-snippet.d.ts.map +1 -0
  110. package/dist/components/hx-code-snippet/hx-code-snippet.styles.d.ts +2 -0
  111. package/dist/components/hx-code-snippet/hx-code-snippet.styles.d.ts.map +1 -0
  112. package/dist/components/hx-code-snippet/index.d.ts +2 -0
  113. package/dist/components/hx-code-snippet/index.d.ts.map +1 -0
  114. package/dist/components/hx-code-snippet/index.js +5 -0
  115. package/dist/components/hx-code-snippet/index.js.map +1 -0
  116. package/dist/components/hx-color-picker/hx-color-picker.d.ts +154 -0
  117. package/dist/components/hx-color-picker/hx-color-picker.d.ts.map +1 -0
  118. package/dist/components/hx-color-picker/hx-color-picker.styles.d.ts +2 -0
  119. package/dist/components/hx-color-picker/hx-color-picker.styles.d.ts.map +1 -0
  120. package/dist/components/hx-color-picker/index.d.ts +2 -0
  121. package/dist/components/hx-color-picker/index.d.ts.map +1 -0
  122. package/dist/components/hx-color-picker/index.js +5 -0
  123. package/dist/components/hx-color-picker/index.js.map +1 -0
  124. package/dist/components/hx-combobox/hx-combobox.d.ts +185 -0
  125. package/dist/components/hx-combobox/hx-combobox.d.ts.map +1 -0
  126. package/dist/components/hx-combobox/hx-combobox.styles.d.ts +2 -0
  127. package/dist/components/hx-combobox/hx-combobox.styles.d.ts.map +1 -0
  128. package/dist/components/hx-combobox/index.d.ts +3 -0
  129. package/dist/components/hx-combobox/index.d.ts.map +1 -0
  130. package/dist/components/hx-combobox/index.js +5 -0
  131. package/dist/components/hx-combobox/index.js.map +1 -0
  132. package/dist/components/hx-container/hx-container.d.ts +56 -0
  133. package/dist/components/hx-container/hx-container.d.ts.map +1 -0
  134. package/dist/components/hx-container/hx-container.styles.d.ts +2 -0
  135. package/dist/components/hx-container/hx-container.styles.d.ts.map +1 -0
  136. package/dist/components/hx-container/index.d.ts +2 -0
  137. package/dist/components/hx-container/index.d.ts.map +1 -0
  138. package/dist/components/hx-container/index.js +5 -0
  139. package/dist/components/hx-container/index.js.map +1 -0
  140. package/dist/components/hx-copy-button/hx-copy-button.d.ts +103 -0
  141. package/dist/components/hx-copy-button/hx-copy-button.d.ts.map +1 -0
  142. package/dist/components/hx-copy-button/hx-copy-button.styles.d.ts +2 -0
  143. package/dist/components/hx-copy-button/hx-copy-button.styles.d.ts.map +1 -0
  144. package/dist/components/hx-copy-button/index.d.ts +2 -0
  145. package/dist/components/hx-copy-button/index.d.ts.map +1 -0
  146. package/dist/components/hx-copy-button/index.js +5 -0
  147. package/dist/components/hx-copy-button/index.js.map +1 -0
  148. package/dist/components/hx-data-table/hx-data-table.d.ts +125 -0
  149. package/dist/components/hx-data-table/hx-data-table.d.ts.map +1 -0
  150. package/dist/components/hx-data-table/hx-data-table.styles.d.ts +2 -0
  151. package/dist/components/hx-data-table/hx-data-table.styles.d.ts.map +1 -0
  152. package/dist/components/hx-data-table/index.d.ts +3 -0
  153. package/dist/components/hx-data-table/index.d.ts.map +1 -0
  154. package/dist/components/hx-data-table/index.js +5 -0
  155. package/dist/components/hx-data-table/index.js.map +1 -0
  156. package/dist/components/hx-date-picker/hx-date-picker.d.ts +129 -0
  157. package/dist/components/hx-date-picker/hx-date-picker.d.ts.map +1 -0
  158. package/dist/components/hx-date-picker/hx-date-picker.styles.d.ts +2 -0
  159. package/dist/components/hx-date-picker/hx-date-picker.styles.d.ts.map +1 -0
  160. package/dist/components/hx-date-picker/index.d.ts +2 -0
  161. package/dist/components/hx-date-picker/index.d.ts.map +1 -0
  162. package/dist/components/hx-date-picker/index.js +5 -0
  163. package/dist/components/hx-date-picker/index.js.map +1 -0
  164. package/dist/components/hx-dialog/hx-dialog.d.ts +156 -0
  165. package/dist/components/hx-dialog/hx-dialog.d.ts.map +1 -0
  166. package/dist/components/hx-dialog/hx-dialog.styles.d.ts +2 -0
  167. package/dist/components/hx-dialog/hx-dialog.styles.d.ts.map +1 -0
  168. package/dist/components/hx-dialog/index.d.ts +2 -0
  169. package/dist/components/hx-dialog/index.d.ts.map +1 -0
  170. package/dist/components/hx-dialog/index.js +5 -0
  171. package/dist/components/hx-dialog/index.js.map +1 -0
  172. package/dist/components/hx-divider/hx-divider.d.ts +58 -0
  173. package/dist/components/hx-divider/hx-divider.d.ts.map +1 -0
  174. package/dist/components/hx-divider/hx-divider.styles.d.ts +2 -0
  175. package/dist/components/hx-divider/hx-divider.styles.d.ts.map +1 -0
  176. package/dist/components/hx-divider/index.d.ts +3 -0
  177. package/dist/components/hx-divider/index.d.ts.map +1 -0
  178. package/dist/components/hx-divider/index.js +5 -0
  179. package/dist/components/hx-divider/index.js.map +1 -0
  180. package/dist/components/hx-drawer/hx-drawer.d.ts +131 -0
  181. package/dist/components/hx-drawer/hx-drawer.d.ts.map +1 -0
  182. package/dist/components/hx-drawer/hx-drawer.styles.d.ts +2 -0
  183. package/dist/components/hx-drawer/hx-drawer.styles.d.ts.map +1 -0
  184. package/dist/components/hx-drawer/index.d.ts +2 -0
  185. package/dist/components/hx-drawer/index.d.ts.map +1 -0
  186. package/dist/components/hx-drawer/index.js +5 -0
  187. package/dist/components/hx-drawer/index.js.map +1 -0
  188. package/dist/components/hx-dropdown/hx-dropdown.d.ts +89 -0
  189. package/dist/components/hx-dropdown/hx-dropdown.d.ts.map +1 -0
  190. package/dist/components/hx-dropdown/hx-dropdown.styles.d.ts +2 -0
  191. package/dist/components/hx-dropdown/hx-dropdown.styles.d.ts.map +1 -0
  192. package/dist/components/hx-dropdown/index.d.ts +2 -0
  193. package/dist/components/hx-dropdown/index.d.ts.map +1 -0
  194. package/dist/components/hx-dropdown/index.js +5 -0
  195. package/dist/components/hx-dropdown/index.js.map +1 -0
  196. package/dist/components/hx-field/hx-field.d.ts +141 -0
  197. package/dist/components/hx-field/hx-field.d.ts.map +1 -0
  198. package/dist/components/hx-field/hx-field.styles.d.ts +2 -0
  199. package/dist/components/hx-field/hx-field.styles.d.ts.map +1 -0
  200. package/dist/components/hx-field/index.d.ts +2 -0
  201. package/dist/components/hx-field/index.d.ts.map +1 -0
  202. package/dist/components/hx-field/index.js +5 -0
  203. package/dist/components/hx-field/index.js.map +1 -0
  204. package/dist/components/hx-field-label/hx-field-label.d.ts +58 -0
  205. package/dist/components/hx-field-label/hx-field-label.d.ts.map +1 -0
  206. package/dist/components/hx-field-label/hx-field-label.styles.d.ts +2 -0
  207. package/dist/components/hx-field-label/hx-field-label.styles.d.ts.map +1 -0
  208. package/dist/components/hx-field-label/index.d.ts +2 -0
  209. package/dist/components/hx-field-label/index.d.ts.map +1 -0
  210. package/dist/components/hx-field-label/index.js +5 -0
  211. package/dist/components/hx-field-label/index.js.map +1 -0
  212. package/dist/components/hx-file-upload/hx-file-upload.d.ts +138 -0
  213. package/dist/components/hx-file-upload/hx-file-upload.d.ts.map +1 -0
  214. package/dist/components/hx-file-upload/hx-file-upload.styles.d.ts +2 -0
  215. package/dist/components/hx-file-upload/hx-file-upload.styles.d.ts.map +1 -0
  216. package/dist/components/hx-file-upload/index.d.ts +2 -0
  217. package/dist/components/hx-file-upload/index.d.ts.map +1 -0
  218. package/dist/components/hx-file-upload/index.js +5 -0
  219. package/dist/components/hx-file-upload/index.js.map +1 -0
  220. package/dist/components/hx-form/hx-form.d.ts +141 -0
  221. package/dist/components/hx-form/hx-form.d.ts.map +1 -0
  222. package/dist/components/hx-form/hx-form.styles.d.ts +2 -0
  223. package/dist/components/hx-form/hx-form.styles.d.ts.map +1 -0
  224. package/dist/components/hx-form/index.d.ts +2 -0
  225. package/dist/components/hx-form/index.d.ts.map +1 -0
  226. package/dist/components/hx-form/index.js +5 -0
  227. package/dist/components/hx-form/index.js.map +1 -0
  228. package/dist/components/hx-format-date/hx-format-date.d.ts +120 -0
  229. package/dist/components/hx-format-date/hx-format-date.d.ts.map +1 -0
  230. package/dist/components/hx-format-date/hx-format-date.styles.d.ts +2 -0
  231. package/dist/components/hx-format-date/hx-format-date.styles.d.ts.map +1 -0
  232. package/dist/components/hx-format-date/index.d.ts +2 -0
  233. package/dist/components/hx-format-date/index.d.ts.map +1 -0
  234. package/dist/components/hx-format-date/index.js +5 -0
  235. package/dist/components/hx-format-date/index.js.map +1 -0
  236. package/dist/components/hx-grid/hx-grid.d.ts +100 -0
  237. package/dist/components/hx-grid/hx-grid.d.ts.map +1 -0
  238. package/dist/components/hx-grid/hx-grid.styles.d.ts +3 -0
  239. package/dist/components/hx-grid/hx-grid.styles.d.ts.map +1 -0
  240. package/dist/components/hx-grid/index.d.ts +2 -0
  241. package/dist/components/hx-grid/index.d.ts.map +1 -0
  242. package/dist/components/hx-grid/index.js +6 -0
  243. package/dist/components/hx-grid/index.js.map +1 -0
  244. package/dist/components/hx-help-text/hx-help-text.d.ts +44 -0
  245. package/dist/components/hx-help-text/hx-help-text.d.ts.map +1 -0
  246. package/dist/components/hx-help-text/hx-help-text.styles.d.ts +2 -0
  247. package/dist/components/hx-help-text/hx-help-text.styles.d.ts.map +1 -0
  248. package/dist/components/hx-help-text/index.d.ts +2 -0
  249. package/dist/components/hx-help-text/index.d.ts.map +1 -0
  250. package/dist/components/hx-help-text/index.js +5 -0
  251. package/dist/components/hx-help-text/index.js.map +1 -0
  252. package/dist/components/hx-icon/hx-icon.d.ts +115 -0
  253. package/dist/components/hx-icon/hx-icon.d.ts.map +1 -0
  254. package/dist/components/hx-icon/hx-icon.styles.d.ts +2 -0
  255. package/dist/components/hx-icon/hx-icon.styles.d.ts.map +1 -0
  256. package/dist/components/hx-icon/index.d.ts +2 -0
  257. package/dist/components/hx-icon/index.d.ts.map +1 -0
  258. package/dist/components/hx-icon/index.js +5 -0
  259. package/dist/components/hx-icon/index.js.map +1 -0
  260. package/dist/components/hx-image/hx-image.d.ts +120 -0
  261. package/dist/components/hx-image/hx-image.d.ts.map +1 -0
  262. package/dist/components/hx-image/hx-image.styles.d.ts +2 -0
  263. package/dist/components/hx-image/hx-image.styles.d.ts.map +1 -0
  264. package/dist/components/hx-image/index.d.ts +2 -0
  265. package/dist/components/hx-image/index.d.ts.map +1 -0
  266. package/dist/components/hx-image/index.js +5 -0
  267. package/dist/components/hx-image/index.js.map +1 -0
  268. package/dist/components/hx-link/hx-link.d.ts +84 -0
  269. package/dist/components/hx-link/hx-link.d.ts.map +1 -0
  270. package/dist/components/hx-link/hx-link.styles.d.ts +2 -0
  271. package/dist/components/hx-link/hx-link.styles.d.ts.map +1 -0
  272. package/dist/components/hx-link/index.d.ts +3 -0
  273. package/dist/components/hx-link/index.d.ts.map +1 -0
  274. package/dist/components/hx-link/index.js +5 -0
  275. package/dist/components/hx-link/index.js.map +1 -0
  276. package/dist/components/hx-list/hx-list-item.d.ts +79 -0
  277. package/dist/components/hx-list/hx-list-item.d.ts.map +1 -0
  278. package/dist/components/hx-list/hx-list-item.styles.d.ts +2 -0
  279. package/dist/components/hx-list/hx-list-item.styles.d.ts.map +1 -0
  280. package/dist/components/hx-list/hx-list.d.ts +54 -0
  281. package/dist/components/hx-list/hx-list.d.ts.map +1 -0
  282. package/dist/components/hx-list/hx-list.styles.d.ts +2 -0
  283. package/dist/components/hx-list/hx-list.styles.d.ts.map +1 -0
  284. package/dist/components/hx-list/index.d.ts +3 -0
  285. package/dist/components/hx-list/index.d.ts.map +1 -0
  286. package/dist/components/hx-list/index.js +6 -0
  287. package/dist/components/hx-list/index.js.map +1 -0
  288. package/dist/components/hx-menu/hx-menu-divider.d.ts +22 -0
  289. package/dist/components/hx-menu/hx-menu-divider.d.ts.map +1 -0
  290. package/dist/components/hx-menu/hx-menu-item.d.ts +75 -0
  291. package/dist/components/hx-menu/hx-menu-item.d.ts.map +1 -0
  292. package/dist/components/hx-menu/hx-menu-item.styles.d.ts +2 -0
  293. package/dist/components/hx-menu/hx-menu-item.styles.d.ts.map +1 -0
  294. package/dist/components/hx-menu/hx-menu.d.ts +45 -0
  295. package/dist/components/hx-menu/hx-menu.d.ts.map +1 -0
  296. package/dist/components/hx-menu/hx-menu.styles.d.ts +2 -0
  297. package/dist/components/hx-menu/hx-menu.styles.d.ts.map +1 -0
  298. package/dist/components/hx-menu/index.d.ts +4 -0
  299. package/dist/components/hx-menu/index.d.ts.map +1 -0
  300. package/dist/components/hx-menu/index.js +7 -0
  301. package/dist/components/hx-menu/index.js.map +1 -0
  302. package/dist/components/hx-meter/hx-meter.d.ts +83 -0
  303. package/dist/components/hx-meter/hx-meter.d.ts.map +1 -0
  304. package/dist/components/hx-meter/hx-meter.styles.d.ts +2 -0
  305. package/dist/components/hx-meter/hx-meter.styles.d.ts.map +1 -0
  306. package/dist/components/hx-meter/index.d.ts +2 -0
  307. package/dist/components/hx-meter/index.d.ts.map +1 -0
  308. package/dist/components/hx-meter/index.js +5 -0
  309. package/dist/components/hx-meter/index.js.map +1 -0
  310. package/dist/components/hx-nav/hx-nav.d.ts +92 -0
  311. package/dist/components/hx-nav/hx-nav.d.ts.map +1 -0
  312. package/dist/components/hx-nav/hx-nav.styles.d.ts +2 -0
  313. package/dist/components/hx-nav/hx-nav.styles.d.ts.map +1 -0
  314. package/dist/components/hx-nav/index.d.ts +2 -0
  315. package/dist/components/hx-nav/index.d.ts.map +1 -0
  316. package/dist/components/hx-nav/index.js +5 -0
  317. package/dist/components/hx-nav/index.js.map +1 -0
  318. package/dist/components/hx-number-input/hx-number-input.d.ts +171 -0
  319. package/dist/components/hx-number-input/hx-number-input.d.ts.map +1 -0
  320. package/dist/components/hx-number-input/hx-number-input.styles.d.ts +2 -0
  321. package/dist/components/hx-number-input/hx-number-input.styles.d.ts.map +1 -0
  322. package/dist/components/hx-number-input/index.d.ts +2 -0
  323. package/dist/components/hx-number-input/index.d.ts.map +1 -0
  324. package/dist/components/hx-number-input/index.js +5 -0
  325. package/dist/components/hx-number-input/index.js.map +1 -0
  326. package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts +85 -0
  327. package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts.map +1 -0
  328. package/dist/components/hx-overflow-menu/hx-overflow-menu.styles.d.ts +2 -0
  329. package/dist/components/hx-overflow-menu/hx-overflow-menu.styles.d.ts.map +1 -0
  330. package/dist/components/hx-overflow-menu/index.d.ts +2 -0
  331. package/dist/components/hx-overflow-menu/index.d.ts.map +1 -0
  332. package/dist/components/hx-overflow-menu/index.js +5 -0
  333. package/dist/components/hx-overflow-menu/index.js.map +1 -0
  334. package/dist/components/hx-pagination/hx-pagination.d.ts +123 -0
  335. package/dist/components/hx-pagination/hx-pagination.d.ts.map +1 -0
  336. package/dist/components/hx-pagination/hx-pagination.styles.d.ts +2 -0
  337. package/dist/components/hx-pagination/hx-pagination.styles.d.ts.map +1 -0
  338. package/dist/components/hx-pagination/index.d.ts +2 -0
  339. package/dist/components/hx-pagination/index.d.ts.map +1 -0
  340. package/dist/components/hx-pagination/index.js +5 -0
  341. package/dist/components/hx-pagination/index.js.map +1 -0
  342. package/dist/components/hx-popover/hx-popover.d.ts +105 -0
  343. package/dist/components/hx-popover/hx-popover.d.ts.map +1 -0
  344. package/dist/components/hx-popover/hx-popover.styles.d.ts +2 -0
  345. package/dist/components/hx-popover/hx-popover.styles.d.ts.map +1 -0
  346. package/dist/components/hx-popover/index.d.ts +2 -0
  347. package/dist/components/hx-popover/index.d.ts.map +1 -0
  348. package/dist/components/hx-popover/index.js +5 -0
  349. package/dist/components/hx-popover/index.js.map +1 -0
  350. package/dist/components/hx-popup/hx-popup.d.ts +218 -0
  351. package/dist/components/hx-popup/hx-popup.d.ts.map +1 -0
  352. package/dist/components/hx-popup/hx-popup.styles.d.ts +2 -0
  353. package/dist/components/hx-popup/hx-popup.styles.d.ts.map +1 -0
  354. package/dist/components/hx-popup/index.d.ts +2 -0
  355. package/dist/components/hx-popup/index.d.ts.map +1 -0
  356. package/dist/components/hx-popup/index.js +5 -0
  357. package/dist/components/hx-popup/index.js.map +1 -0
  358. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts +80 -0
  359. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts.map +1 -0
  360. package/dist/components/hx-progress-bar/hx-progress-bar.styles.d.ts +2 -0
  361. package/dist/components/hx-progress-bar/hx-progress-bar.styles.d.ts.map +1 -0
  362. package/dist/components/hx-progress-bar/index.d.ts +2 -0
  363. package/dist/components/hx-progress-bar/index.d.ts.map +1 -0
  364. package/dist/components/hx-progress-bar/index.js +5 -0
  365. package/dist/components/hx-progress-bar/index.js.map +1 -0
  366. package/dist/components/hx-progress-ring/hx-progress-ring.d.ts +73 -0
  367. package/dist/components/hx-progress-ring/hx-progress-ring.d.ts.map +1 -0
  368. package/dist/components/hx-progress-ring/hx-progress-ring.styles.d.ts +2 -0
  369. package/dist/components/hx-progress-ring/hx-progress-ring.styles.d.ts.map +1 -0
  370. package/dist/components/hx-progress-ring/index.d.ts +2 -0
  371. package/dist/components/hx-progress-ring/index.d.ts.map +1 -0
  372. package/dist/components/hx-progress-ring/index.js +5 -0
  373. package/dist/components/hx-progress-ring/index.js.map +1 -0
  374. package/dist/components/hx-prose/hx-prose.d.ts +49 -0
  375. package/dist/components/hx-prose/hx-prose.d.ts.map +1 -0
  376. package/dist/components/hx-prose/hx-prose.styles.d.ts +2 -0
  377. package/dist/components/hx-prose/hx-prose.styles.d.ts.map +1 -0
  378. package/dist/components/hx-prose/index.d.ts +2 -0
  379. package/dist/components/hx-prose/index.d.ts.map +1 -0
  380. package/dist/components/hx-prose/index.js +5 -0
  381. package/dist/components/hx-prose/index.js.map +1 -0
  382. package/dist/components/hx-radio-group/hx-radio-group.d.ts +112 -0
  383. package/dist/components/hx-radio-group/hx-radio-group.d.ts.map +1 -0
  384. package/dist/components/hx-radio-group/hx-radio-group.styles.d.ts +2 -0
  385. package/dist/components/hx-radio-group/hx-radio-group.styles.d.ts.map +1 -0
  386. package/dist/components/hx-radio-group/hx-radio.d.ts +57 -0
  387. package/dist/components/hx-radio-group/hx-radio.d.ts.map +1 -0
  388. package/dist/components/hx-radio-group/hx-radio.styles.d.ts +2 -0
  389. package/dist/components/hx-radio-group/hx-radio.styles.d.ts.map +1 -0
  390. package/dist/components/hx-radio-group/index.d.ts +3 -0
  391. package/dist/components/hx-radio-group/index.d.ts.map +1 -0
  392. package/dist/components/hx-radio-group/index.js +6 -0
  393. package/dist/components/hx-radio-group/index.js.map +1 -0
  394. package/dist/components/hx-rating/hx-rating.d.ts +112 -0
  395. package/dist/components/hx-rating/hx-rating.d.ts.map +1 -0
  396. package/dist/components/hx-rating/hx-rating.styles.d.ts +2 -0
  397. package/dist/components/hx-rating/hx-rating.styles.d.ts.map +1 -0
  398. package/dist/components/hx-rating/index.d.ts +2 -0
  399. package/dist/components/hx-rating/index.d.ts.map +1 -0
  400. package/dist/components/hx-rating/index.js +5 -0
  401. package/dist/components/hx-rating/index.js.map +1 -0
  402. package/dist/components/hx-select/hx-select.d.ts +173 -0
  403. package/dist/components/hx-select/hx-select.d.ts.map +1 -0
  404. package/dist/components/hx-select/hx-select.styles.d.ts +2 -0
  405. package/dist/components/hx-select/hx-select.styles.d.ts.map +1 -0
  406. package/dist/components/hx-select/index.d.ts +2 -0
  407. package/dist/components/hx-select/index.d.ts.map +1 -0
  408. package/dist/components/hx-select/index.js +5 -0
  409. package/dist/components/hx-select/index.js.map +1 -0
  410. package/dist/components/hx-side-nav/hx-nav-item.d.ts +69 -0
  411. package/dist/components/hx-side-nav/hx-nav-item.d.ts.map +1 -0
  412. package/dist/components/hx-side-nav/hx-nav-item.styles.d.ts +2 -0
  413. package/dist/components/hx-side-nav/hx-nav-item.styles.d.ts.map +1 -0
  414. package/dist/components/hx-side-nav/hx-side-nav.d.ts +73 -0
  415. package/dist/components/hx-side-nav/hx-side-nav.d.ts.map +1 -0
  416. package/dist/components/hx-side-nav/hx-side-nav.styles.d.ts +2 -0
  417. package/dist/components/hx-side-nav/hx-side-nav.styles.d.ts.map +1 -0
  418. package/dist/components/hx-side-nav/index.d.ts +3 -0
  419. package/dist/components/hx-side-nav/index.d.ts.map +1 -0
  420. package/dist/components/hx-side-nav/index.js +6 -0
  421. package/dist/components/hx-side-nav/index.js.map +1 -0
  422. package/dist/components/hx-skeleton/hx-skeleton.d.ts +76 -0
  423. package/dist/components/hx-skeleton/hx-skeleton.d.ts.map +1 -0
  424. package/dist/components/hx-skeleton/hx-skeleton.styles.d.ts +2 -0
  425. package/dist/components/hx-skeleton/hx-skeleton.styles.d.ts.map +1 -0
  426. package/dist/components/hx-skeleton/index.d.ts +2 -0
  427. package/dist/components/hx-skeleton/index.d.ts.map +1 -0
  428. package/dist/components/hx-skeleton/index.js +5 -0
  429. package/dist/components/hx-skeleton/index.js.map +1 -0
  430. package/dist/components/hx-slider/hx-slider.d.ts +166 -0
  431. package/dist/components/hx-slider/hx-slider.d.ts.map +1 -0
  432. package/dist/components/hx-slider/hx-slider.styles.d.ts +2 -0
  433. package/dist/components/hx-slider/hx-slider.styles.d.ts.map +1 -0
  434. package/dist/components/hx-slider/index.d.ts +2 -0
  435. package/dist/components/hx-slider/index.d.ts.map +1 -0
  436. package/dist/components/hx-slider/index.js +5 -0
  437. package/dist/components/hx-slider/index.js.map +1 -0
  438. package/dist/components/hx-spinner/hx-spinner.d.ts +58 -0
  439. package/dist/components/hx-spinner/hx-spinner.d.ts.map +1 -0
  440. package/dist/components/hx-spinner/hx-spinner.styles.d.ts +2 -0
  441. package/dist/components/hx-spinner/hx-spinner.styles.d.ts.map +1 -0
  442. package/dist/components/hx-spinner/index.d.ts +2 -0
  443. package/dist/components/hx-spinner/index.d.ts.map +1 -0
  444. package/dist/components/hx-spinner/index.js +5 -0
  445. package/dist/components/hx-spinner/index.js.map +1 -0
  446. package/dist/components/hx-split-button/hx-split-button.d.ts +101 -0
  447. package/dist/components/hx-split-button/hx-split-button.d.ts.map +1 -0
  448. package/dist/components/hx-split-button/hx-split-button.styles.d.ts +2 -0
  449. package/dist/components/hx-split-button/hx-split-button.styles.d.ts.map +1 -0
  450. package/dist/components/hx-split-button/index.d.ts +2 -0
  451. package/dist/components/hx-split-button/index.d.ts.map +1 -0
  452. package/dist/components/hx-split-button/index.js +5 -0
  453. package/dist/components/hx-split-button/index.js.map +1 -0
  454. package/dist/components/hx-split-panel/hx-split-panel.d.ts +115 -0
  455. package/dist/components/hx-split-panel/hx-split-panel.d.ts.map +1 -0
  456. package/dist/components/hx-split-panel/hx-split-panel.styles.d.ts +2 -0
  457. package/dist/components/hx-split-panel/hx-split-panel.styles.d.ts.map +1 -0
  458. package/dist/components/hx-split-panel/index.d.ts +2 -0
  459. package/dist/components/hx-split-panel/index.d.ts.map +1 -0
  460. package/dist/components/hx-split-panel/index.js +5 -0
  461. package/dist/components/hx-split-panel/index.js.map +1 -0
  462. package/dist/components/hx-stack/hx-stack.d.ts +53 -0
  463. package/dist/components/hx-stack/hx-stack.d.ts.map +1 -0
  464. package/dist/components/hx-stack/hx-stack.styles.d.ts +2 -0
  465. package/dist/components/hx-stack/hx-stack.styles.d.ts.map +1 -0
  466. package/dist/components/hx-stack/index.d.ts +2 -0
  467. package/dist/components/hx-stack/index.d.ts.map +1 -0
  468. package/dist/components/hx-stack/index.js +5 -0
  469. package/dist/components/hx-stack/index.js.map +1 -0
  470. package/dist/components/hx-status-indicator/hx-status-indicator.d.ts +74 -0
  471. package/dist/components/hx-status-indicator/hx-status-indicator.d.ts.map +1 -0
  472. package/dist/components/hx-status-indicator/hx-status-indicator.styles.d.ts +2 -0
  473. package/dist/components/hx-status-indicator/hx-status-indicator.styles.d.ts.map +1 -0
  474. package/dist/components/hx-status-indicator/index.d.ts +3 -0
  475. package/dist/components/hx-status-indicator/index.d.ts.map +1 -0
  476. package/dist/components/hx-status-indicator/index.js +5 -0
  477. package/dist/components/hx-status-indicator/index.js.map +1 -0
  478. package/dist/components/hx-steps/hx-step.d.ts +88 -0
  479. package/dist/components/hx-steps/hx-step.d.ts.map +1 -0
  480. package/dist/components/hx-steps/hx-step.styles.d.ts +2 -0
  481. package/dist/components/hx-steps/hx-step.styles.d.ts.map +1 -0
  482. package/dist/components/hx-steps/hx-steps.d.ts +56 -0
  483. package/dist/components/hx-steps/hx-steps.d.ts.map +1 -0
  484. package/dist/components/hx-steps/hx-steps.styles.d.ts +2 -0
  485. package/dist/components/hx-steps/hx-steps.styles.d.ts.map +1 -0
  486. package/dist/components/hx-steps/index.d.ts +3 -0
  487. package/dist/components/hx-steps/index.d.ts.map +1 -0
  488. package/dist/components/hx-steps/index.js +6 -0
  489. package/dist/components/hx-steps/index.js.map +1 -0
  490. package/dist/components/hx-structured-list/hx-structured-list.d.ts +72 -0
  491. package/dist/components/hx-structured-list/hx-structured-list.d.ts.map +1 -0
  492. package/dist/components/hx-structured-list/hx-structured-list.styles.d.ts +3 -0
  493. package/dist/components/hx-structured-list/hx-structured-list.styles.d.ts.map +1 -0
  494. package/dist/components/hx-structured-list/index.d.ts +2 -0
  495. package/dist/components/hx-structured-list/index.d.ts.map +1 -0
  496. package/dist/components/hx-structured-list/index.js +6 -0
  497. package/dist/components/hx-structured-list/index.js.map +1 -0
  498. package/dist/components/hx-switch/hx-switch.d.ts +143 -0
  499. package/dist/components/hx-switch/hx-switch.d.ts.map +1 -0
  500. package/dist/components/hx-switch/hx-switch.styles.d.ts +2 -0
  501. package/dist/components/hx-switch/hx-switch.styles.d.ts.map +1 -0
  502. package/dist/components/hx-switch/index.d.ts +2 -0
  503. package/dist/components/hx-switch/index.d.ts.map +1 -0
  504. package/dist/components/hx-switch/index.js +5 -0
  505. package/dist/components/hx-switch/index.js.map +1 -0
  506. package/dist/components/hx-tabs/hx-tab-panel.d.ts +32 -0
  507. package/dist/components/hx-tabs/hx-tab-panel.d.ts.map +1 -0
  508. package/dist/components/hx-tabs/hx-tab-panel.styles.d.ts +2 -0
  509. package/dist/components/hx-tabs/hx-tab-panel.styles.d.ts.map +1 -0
  510. package/dist/components/hx-tabs/hx-tab.d.ts +69 -0
  511. package/dist/components/hx-tabs/hx-tab.d.ts.map +1 -0
  512. package/dist/components/hx-tabs/hx-tab.styles.d.ts +2 -0
  513. package/dist/components/hx-tabs/hx-tab.styles.d.ts.map +1 -0
  514. package/dist/components/hx-tabs/hx-tabs.d.ts +97 -0
  515. package/dist/components/hx-tabs/hx-tabs.d.ts.map +1 -0
  516. package/dist/components/hx-tabs/hx-tabs.styles.d.ts +2 -0
  517. package/dist/components/hx-tabs/hx-tabs.styles.d.ts.map +1 -0
  518. package/dist/components/hx-tabs/index.d.ts +4 -0
  519. package/dist/components/hx-tabs/index.d.ts.map +1 -0
  520. package/dist/components/hx-tabs/index.js +7 -0
  521. package/dist/components/hx-tabs/index.js.map +1 -0
  522. package/dist/components/hx-tag/hx-tag.d.ts +97 -0
  523. package/dist/components/hx-tag/hx-tag.d.ts.map +1 -0
  524. package/dist/components/hx-tag/hx-tag.styles.d.ts +2 -0
  525. package/dist/components/hx-tag/hx-tag.styles.d.ts.map +1 -0
  526. package/dist/components/hx-tag/index.d.ts +2 -0
  527. package/dist/components/hx-tag/index.d.ts.map +1 -0
  528. package/dist/components/hx-tag/index.js +5 -0
  529. package/dist/components/hx-tag/index.js.map +1 -0
  530. package/dist/components/hx-text/hx-text.d.ts +90 -0
  531. package/dist/components/hx-text/hx-text.d.ts.map +1 -0
  532. package/dist/components/hx-text/hx-text.styles.d.ts +2 -0
  533. package/dist/components/hx-text/hx-text.styles.d.ts.map +1 -0
  534. package/dist/components/hx-text/index.d.ts +2 -0
  535. package/dist/components/hx-text/index.d.ts.map +1 -0
  536. package/dist/components/hx-text/index.js +5 -0
  537. package/dist/components/hx-text/index.js.map +1 -0
  538. package/dist/components/hx-text-input/hx-text-input.d.ts +188 -0
  539. package/dist/components/hx-text-input/hx-text-input.d.ts.map +1 -0
  540. package/dist/components/hx-text-input/hx-text-input.styles.d.ts +2 -0
  541. package/dist/components/hx-text-input/hx-text-input.styles.d.ts.map +1 -0
  542. package/dist/components/hx-text-input/index.d.ts +2 -0
  543. package/dist/components/hx-text-input/index.d.ts.map +1 -0
  544. package/dist/components/hx-text-input/index.js +5 -0
  545. package/dist/components/hx-text-input/index.js.map +1 -0
  546. package/dist/components/hx-textarea/hx-textarea.d.ts +169 -0
  547. package/dist/components/hx-textarea/hx-textarea.d.ts.map +1 -0
  548. package/dist/components/hx-textarea/hx-textarea.styles.d.ts +2 -0
  549. package/dist/components/hx-textarea/hx-textarea.styles.d.ts.map +1 -0
  550. package/dist/components/hx-textarea/index.d.ts +2 -0
  551. package/dist/components/hx-textarea/index.d.ts.map +1 -0
  552. package/dist/components/hx-textarea/index.js +5 -0
  553. package/dist/components/hx-textarea/index.js.map +1 -0
  554. package/dist/components/hx-theme/hx-theme.d.ts +108 -0
  555. package/dist/components/hx-theme/hx-theme.d.ts.map +1 -0
  556. package/dist/components/hx-theme/hx-theme.styles.d.ts +2 -0
  557. package/dist/components/hx-theme/hx-theme.styles.d.ts.map +1 -0
  558. package/dist/components/hx-theme/index.d.ts +3 -0
  559. package/dist/components/hx-theme/index.d.ts.map +1 -0
  560. package/dist/components/hx-theme/index.js +5 -0
  561. package/dist/components/hx-theme/index.js.map +1 -0
  562. package/dist/components/hx-time-picker/hx-time-picker.d.ts +153 -0
  563. package/dist/components/hx-time-picker/hx-time-picker.d.ts.map +1 -0
  564. package/dist/components/hx-time-picker/hx-time-picker.styles.d.ts +2 -0
  565. package/dist/components/hx-time-picker/hx-time-picker.styles.d.ts.map +1 -0
  566. package/dist/components/hx-time-picker/index.d.ts +2 -0
  567. package/dist/components/hx-time-picker/index.d.ts.map +1 -0
  568. package/dist/components/hx-time-picker/index.js +5 -0
  569. package/dist/components/hx-time-picker/index.js.map +1 -0
  570. package/dist/components/hx-toast/hx-toast.d.ts +156 -0
  571. package/dist/components/hx-toast/hx-toast.d.ts.map +1 -0
  572. package/dist/components/hx-toast/hx-toast.styles.d.ts +3 -0
  573. package/dist/components/hx-toast/hx-toast.styles.d.ts.map +1 -0
  574. package/dist/components/hx-toast/index.d.ts +3 -0
  575. package/dist/components/hx-toast/index.d.ts.map +1 -0
  576. package/dist/components/hx-toast/index.js +7 -0
  577. package/dist/components/hx-toast/index.js.map +1 -0
  578. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts +93 -0
  579. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts.map +1 -0
  580. package/dist/components/hx-toggle-button/hx-toggle-button.styles.d.ts +2 -0
  581. package/dist/components/hx-toggle-button/hx-toggle-button.styles.d.ts.map +1 -0
  582. package/dist/components/hx-toggle-button/index.d.ts +2 -0
  583. package/dist/components/hx-toggle-button/index.d.ts.map +1 -0
  584. package/dist/components/hx-toggle-button/index.js +5 -0
  585. package/dist/components/hx-toggle-button/index.js.map +1 -0
  586. package/dist/components/hx-tooltip/hx-tooltip.d.ts +109 -0
  587. package/dist/components/hx-tooltip/hx-tooltip.d.ts.map +1 -0
  588. package/dist/components/hx-tooltip/hx-tooltip.styles.d.ts +2 -0
  589. package/dist/components/hx-tooltip/hx-tooltip.styles.d.ts.map +1 -0
  590. package/dist/components/hx-tooltip/index.d.ts +2 -0
  591. package/dist/components/hx-tooltip/index.d.ts.map +1 -0
  592. package/dist/components/hx-tooltip/index.js +5 -0
  593. package/dist/components/hx-tooltip/index.js.map +1 -0
  594. package/dist/components/hx-top-nav/hx-top-nav.d.ts +61 -0
  595. package/dist/components/hx-top-nav/hx-top-nav.d.ts.map +1 -0
  596. package/dist/components/hx-top-nav/hx-top-nav.styles.d.ts +2 -0
  597. package/dist/components/hx-top-nav/hx-top-nav.styles.d.ts.map +1 -0
  598. package/dist/components/hx-top-nav/index.d.ts +2 -0
  599. package/dist/components/hx-top-nav/index.d.ts.map +1 -0
  600. package/dist/components/hx-top-nav/index.js +5 -0
  601. package/dist/components/hx-top-nav/index.js.map +1 -0
  602. package/dist/components/hx-tree-view/hx-tree-item.d.ts +71 -0
  603. package/dist/components/hx-tree-view/hx-tree-item.d.ts.map +1 -0
  604. package/dist/components/hx-tree-view/hx-tree-item.styles.d.ts +2 -0
  605. package/dist/components/hx-tree-view/hx-tree-item.styles.d.ts.map +1 -0
  606. package/dist/components/hx-tree-view/hx-tree-view.d.ts +61 -0
  607. package/dist/components/hx-tree-view/hx-tree-view.d.ts.map +1 -0
  608. package/dist/components/hx-tree-view/hx-tree-view.styles.d.ts +2 -0
  609. package/dist/components/hx-tree-view/hx-tree-view.styles.d.ts.map +1 -0
  610. package/dist/components/hx-tree-view/index.d.ts +4 -0
  611. package/dist/components/hx-tree-view/index.d.ts.map +1 -0
  612. package/dist/components/hx-tree-view/index.js +6 -0
  613. package/dist/components/hx-tree-view/index.js.map +1 -0
  614. package/dist/components/hx-visually-hidden/hx-visually-hidden.d.ts +46 -0
  615. package/dist/components/hx-visually-hidden/hx-visually-hidden.d.ts.map +1 -0
  616. package/dist/components/hx-visually-hidden/hx-visually-hidden.styles.d.ts +2 -0
  617. package/dist/components/hx-visually-hidden/hx-visually-hidden.styles.d.ts.map +1 -0
  618. package/dist/components/hx-visually-hidden/index.d.ts +2 -0
  619. package/dist/components/hx-visually-hidden/index.d.ts.map +1 -0
  620. package/dist/components/hx-visually-hidden/index.js +5 -0
  621. package/dist/components/hx-visually-hidden/index.js.map +1 -0
  622. package/dist/controllers/adopted-stylesheets.d.ts +32 -0
  623. package/dist/controllers/adopted-stylesheets.d.ts.map +1 -0
  624. package/dist/index.d.ts +94 -0
  625. package/dist/index.d.ts.map +1 -0
  626. package/dist/index.js +163 -0
  627. package/dist/index.js.map +1 -0
  628. package/dist/shared/adopted-stylesheets-BZZnCSAs.js +35 -0
  629. package/dist/shared/adopted-stylesheets-BZZnCSAs.js.map +1 -0
  630. package/dist/shared/hx-accordion-DUkYS5rZ.js +332 -0
  631. package/dist/shared/hx-accordion-DUkYS5rZ.js.map +1 -0
  632. package/dist/shared/hx-action-bar-CwIRFzBx.js +256 -0
  633. package/dist/shared/hx-action-bar-CwIRFzBx.js.map +1 -0
  634. package/dist/shared/hx-alert-C3Papw22.js +364 -0
  635. package/dist/shared/hx-alert-C3Papw22.js.map +1 -0
  636. package/dist/shared/hx-avatar-DoHGMrj7.js +238 -0
  637. package/dist/shared/hx-avatar-DoHGMrj7.js.map +1 -0
  638. package/dist/shared/hx-badge-BeCmOPr1.js +255 -0
  639. package/dist/shared/hx-badge-BeCmOPr1.js.map +1 -0
  640. package/dist/shared/hx-breadcrumb-item-BSBMWQHz.js +309 -0
  641. package/dist/shared/hx-breadcrumb-item-BSBMWQHz.js.map +1 -0
  642. package/dist/shared/hx-button-group-BbWEDMPb.js +157 -0
  643. package/dist/shared/hx-button-group-BbWEDMPb.js.map +1 -0
  644. package/dist/shared/hx-button-p_YAY9Nv.js +322 -0
  645. package/dist/shared/hx-button-p_YAY9Nv.js.map +1 -0
  646. package/dist/shared/hx-card-DfEGlbZR.js +279 -0
  647. package/dist/shared/hx-card-DfEGlbZR.js.map +1 -0
  648. package/dist/shared/hx-carousel-item-CymJHv1m.js +610 -0
  649. package/dist/shared/hx-carousel-item-CymJHv1m.js.map +1 -0
  650. package/dist/shared/hx-checkbox-CV5c6AE8.js +423 -0
  651. package/dist/shared/hx-checkbox-CV5c6AE8.js.map +1 -0
  652. package/dist/shared/hx-checkbox-group-ClGxYUi0.js +271 -0
  653. package/dist/shared/hx-checkbox-group-ClGxYUi0.js.map +1 -0
  654. package/dist/shared/hx-code-snippet-CoFaSyuB.js +322 -0
  655. package/dist/shared/hx-code-snippet-CoFaSyuB.js.map +1 -0
  656. package/dist/shared/hx-color-picker-BF7PA7zf.js +795 -0
  657. package/dist/shared/hx-color-picker-BF7PA7zf.js.map +1 -0
  658. package/dist/shared/hx-combobox-De4-pDn0.js +871 -0
  659. package/dist/shared/hx-combobox-De4-pDn0.js.map +1 -0
  660. package/dist/shared/hx-container-DWBtruk3.js +121 -0
  661. package/dist/shared/hx-container-DWBtruk3.js.map +1 -0
  662. package/dist/shared/hx-copy-button-BCy6VMwN.js +265 -0
  663. package/dist/shared/hx-copy-button-BCy6VMwN.js.map +1 -0
  664. package/dist/shared/hx-data-table-D5huonFo.js +497 -0
  665. package/dist/shared/hx-data-table-D5huonFo.js.map +1 -0
  666. package/dist/shared/hx-date-picker-Ckvm0yi9.js +969 -0
  667. package/dist/shared/hx-date-picker-Ckvm0yi9.js.map +1 -0
  668. package/dist/shared/hx-dialog-D_NXy5rB.js +439 -0
  669. package/dist/shared/hx-dialog-D_NXy5rB.js.map +1 -0
  670. package/dist/shared/hx-divider-BDMW3H-1.js +157 -0
  671. package/dist/shared/hx-divider-BDMW3H-1.js.map +1 -0
  672. package/dist/shared/hx-drawer-CESgUmre.js +515 -0
  673. package/dist/shared/hx-drawer-CESgUmre.js.map +1 -0
  674. package/dist/shared/hx-dropdown-AZLF-5t6.js +229 -0
  675. package/dist/shared/hx-dropdown-AZLF-5t6.js.map +1 -0
  676. package/dist/shared/hx-field-label-CPBvSn_r.js +79 -0
  677. package/dist/shared/hx-field-label-CPBvSn_r.js.map +1 -0
  678. package/dist/shared/hx-field-vWiKgWIy.js +308 -0
  679. package/dist/shared/hx-field-vWiKgWIy.js.map +1 -0
  680. package/dist/shared/hx-file-upload-Px6kRzAZ.js +614 -0
  681. package/dist/shared/hx-file-upload-Px6kRzAZ.js.map +1 -0
  682. package/dist/shared/hx-form-BJeLK34m.js +1264 -0
  683. package/dist/shared/hx-form-BJeLK34m.js.map +1 -0
  684. package/dist/shared/hx-format-date-BIR66MeC.js +172 -0
  685. package/dist/shared/hx-format-date-BIR66MeC.js.map +1 -0
  686. package/dist/shared/hx-grid-Dgo7fnWu.js +118 -0
  687. package/dist/shared/hx-grid-Dgo7fnWu.js.map +1 -0
  688. package/dist/shared/hx-help-text-C3WCP11-.js +135 -0
  689. package/dist/shared/hx-help-text-C3WCP11-.js.map +1 -0
  690. package/dist/shared/hx-icon-CxOk7jZe.js +235 -0
  691. package/dist/shared/hx-icon-CxOk7jZe.js.map +1 -0
  692. package/dist/shared/hx-image-CZPw1AiF.js +175 -0
  693. package/dist/shared/hx-image-CZPw1AiF.js.map +1 -0
  694. package/dist/shared/hx-link-DObQ7eS4.js +209 -0
  695. package/dist/shared/hx-link-DObQ7eS4.js.map +1 -0
  696. package/dist/shared/hx-list-B6yPCAAW.js +402 -0
  697. package/dist/shared/hx-list-B6yPCAAW.js.map +1 -0
  698. package/dist/shared/hx-menu-divider-BgVoqte4.js +420 -0
  699. package/dist/shared/hx-menu-divider-BgVoqte4.js.map +1 -0
  700. package/dist/shared/hx-meter-B5LOo0zD.js +184 -0
  701. package/dist/shared/hx-meter-B5LOo0zD.js.map +1 -0
  702. package/dist/shared/hx-nav-BhtMZCze.js +537 -0
  703. package/dist/shared/hx-nav-BhtMZCze.js.map +1 -0
  704. package/dist/shared/hx-nav-item-CbNibLuK.js +605 -0
  705. package/dist/shared/hx-nav-item-CbNibLuK.js.map +1 -0
  706. package/dist/shared/hx-number-input-DgHt4ggr.js +642 -0
  707. package/dist/shared/hx-number-input-DgHt4ggr.js.map +1 -0
  708. package/dist/shared/hx-overflow-menu-DkbrRDmB.js +309 -0
  709. package/dist/shared/hx-overflow-menu-DkbrRDmB.js.map +1 -0
  710. package/dist/shared/hx-pagination-VMEpaOXX.js +437 -0
  711. package/dist/shared/hx-pagination-VMEpaOXX.js.map +1 -0
  712. package/dist/shared/hx-popover-DTe00Q46.js +226 -0
  713. package/dist/shared/hx-popover-DTe00Q46.js.map +1 -0
  714. package/dist/shared/hx-popup-5O6q0jf1.js +200 -0
  715. package/dist/shared/hx-popup-5O6q0jf1.js.map +1 -0
  716. package/dist/shared/hx-progress-bar-vQnpJ-9N.js +217 -0
  717. package/dist/shared/hx-progress-bar-vQnpJ-9N.js.map +1 -0
  718. package/dist/shared/hx-progress-ring-DDSW677s.js +252 -0
  719. package/dist/shared/hx-progress-ring-DDSW677s.js.map +1 -0
  720. package/dist/shared/hx-prose-BUkZ8rB3.js +873 -0
  721. package/dist/shared/hx-prose-BUkZ8rB3.js.map +1 -0
  722. package/dist/shared/hx-radio-93uKku6B.js +481 -0
  723. package/dist/shared/hx-radio-93uKku6B.js.map +1 -0
  724. package/dist/shared/hx-rating-t4o150-R.js +358 -0
  725. package/dist/shared/hx-rating-t4o150-R.js.map +1 -0
  726. package/dist/shared/hx-select-DQks1zLJ.js +753 -0
  727. package/dist/shared/hx-select-DQks1zLJ.js.map +1 -0
  728. package/dist/shared/hx-skeleton-DQQ2SYxF.js +154 -0
  729. package/dist/shared/hx-skeleton-DQQ2SYxF.js.map +1 -0
  730. package/dist/shared/hx-slider-BRMWoKZk.js +548 -0
  731. package/dist/shared/hx-slider-BRMWoKZk.js.map +1 -0
  732. package/dist/shared/hx-spinner-CcbmN-u_.js +183 -0
  733. package/dist/shared/hx-spinner-CcbmN-u_.js.map +1 -0
  734. package/dist/shared/hx-split-button-hBPl-zRv.js +542 -0
  735. package/dist/shared/hx-split-button-hBPl-zRv.js.map +1 -0
  736. package/dist/shared/hx-split-panel-C9Sy7XVW.js +351 -0
  737. package/dist/shared/hx-split-panel-C9Sy7XVW.js.map +1 -0
  738. package/dist/shared/hx-stack-B_wODjQX.js +154 -0
  739. package/dist/shared/hx-stack-B_wODjQX.js.map +1 -0
  740. package/dist/shared/hx-status-indicator-CiTQuO5V.js +149 -0
  741. package/dist/shared/hx-status-indicator-CiTQuO5V.js.map +1 -0
  742. package/dist/shared/hx-step-m5RcyZ61.js +496 -0
  743. package/dist/shared/hx-step-m5RcyZ61.js.map +1 -0
  744. package/dist/shared/hx-structured-list-ClvSFleR.js +133 -0
  745. package/dist/shared/hx-structured-list-ClvSFleR.js.map +1 -0
  746. package/dist/shared/hx-switch-BFxgxal8.js +356 -0
  747. package/dist/shared/hx-switch-BFxgxal8.js.map +1 -0
  748. package/dist/shared/hx-tab-panel-8p6KfVzz.js +470 -0
  749. package/dist/shared/hx-tab-panel-8p6KfVzz.js.map +1 -0
  750. package/dist/shared/hx-tag-BP7HJ6_0.js +243 -0
  751. package/dist/shared/hx-tag-BP7HJ6_0.js.map +1 -0
  752. package/dist/shared/hx-text-DDSH1alC.js +218 -0
  753. package/dist/shared/hx-text-DDSH1alC.js.map +1 -0
  754. package/dist/shared/hx-text-input-Dv458950.js +440 -0
  755. package/dist/shared/hx-text-input-Dv458950.js.map +1 -0
  756. package/dist/shared/hx-textarea-BX8nCfDJ.js +398 -0
  757. package/dist/shared/hx-textarea-BX8nCfDJ.js.map +1 -0
  758. package/dist/shared/hx-theme-Dc0nKH7V.js +176 -0
  759. package/dist/shared/hx-theme-Dc0nKH7V.js.map +1 -0
  760. package/dist/shared/hx-time-picker-CA58UCqx.js +651 -0
  761. package/dist/shared/hx-time-picker-CA58UCqx.js.map +1 -0
  762. package/dist/shared/hx-toast-BTqzF2VV.js +423 -0
  763. package/dist/shared/hx-toast-BTqzF2VV.js.map +1 -0
  764. package/dist/shared/hx-toggle-button-BkDaJgRS.js +320 -0
  765. package/dist/shared/hx-toggle-button-BkDaJgRS.js.map +1 -0
  766. package/dist/shared/hx-tooltip-wAQWzjlr.js +190 -0
  767. package/dist/shared/hx-tooltip-wAQWzjlr.js.map +1 -0
  768. package/dist/shared/hx-top-nav-CBxdfPqY.js +322 -0
  769. package/dist/shared/hx-top-nav-CBxdfPqY.js.map +1 -0
  770. package/dist/shared/hx-tree-item-BySNNlrw.js +494 -0
  771. package/dist/shared/hx-tree-item-BySNNlrw.js.map +1 -0
  772. package/dist/shared/hx-visually-hidden-8ycpz6oY.js +54 -0
  773. package/dist/shared/hx-visually-hidden-8ycpz6oY.js.map +1 -0
  774. package/dist/shared/index-nHBAh0Cr.js +74 -0
  775. package/dist/shared/index-nHBAh0Cr.js.map +1 -0
  776. package/dist/shared/lit-Dpo7RLp4.js +24 -0
  777. package/dist/shared/lit-Dpo7RLp4.js.map +1 -0
  778. package/package.json +62 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hx-form-BJeLK34m.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 \"/* ==========================================================================\\n * form.scoped.css — Scoped barrel file\\n *\\n * Contains all form styles with every selector prefixed by `hx-form` to\\n * prevent leaking outside the <hx-form> Light DOM wrapper.\\n *\\n * IMPORTANT: This file does NOT use @import because CSS imports cannot\\n * add scope prefixes. All styles are written inline.\\n * ==========================================================================\\n */\\n\\n/* ==========================================================================\\n * HOST / FORM ROOT TOKENS\\n * ========================================================================== */\\n\\nhx-form {\\n display: flex;\\n flex-direction: column;\\n gap: var(--hx-form-gap, var(--hx-space-4, 1rem));\\n max-width: var(--hx-form-max-width, none);\\n padding: var(--hx-form-padding, 0);\\n}\\n\\n/* ==========================================================================\\n * ERROR SUMMARY\\n * ========================================================================== */\\n\\nhx-form .hx-form-error-summary {\\n border: var(--hx-border-width-thin, 1px) solid\\n var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));\\n border-radius: var(--hx-border-radius-md, 0.375rem);\\n background-color: var(--hx-color-error-50, #fef2f2);\\n color: var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));\\n padding: var(--hx-space-3, 0.75rem) var(--hx-space-4, 1rem);\\n font-size: var(--hx-font-size-sm, 0.875rem);\\n line-height: var(--hx-line-height-normal, 1.5);\\n font-family: var(--hx-input-font-family, var(--hx-font-family-sans, sans-serif));\\n}\\n\\nhx-form .hx-form-error-summary ul {\\n margin: 0;\\n padding: 0 0 0 var(--hx-space-4, 1rem);\\n}\\n\\nhx-form .hx-form-error-summary li {\\n margin-bottom: var(--hx-space-1, 0.25rem);\\n}\\n\\nhx-form .hx-form-error-summary li:last-child {\\n margin-bottom: 0;\\n}\\n\\n/* ==========================================================================\\n * FIELD (_field.css scoped)\\n * ========================================================================== */\\n\\n/* ─── Field Container ─── */\\n\\nhx-form .form-item {\\n display: flex;\\n flex-direction: column;\\n gap: var(--hx-space-1, 0.25rem);\\n font-family: var(--hx-input-font-family, var(--hx-font-family-sans, sans-serif));\\n}\\n\\nhx-form .form-item + .form-item {\\n margin-top: var(--hx-space-4, 1rem);\\n}\\n\\n/* ─── Label ─── */\\n\\nhx-form label {\\n display: flex;\\n align-items: baseline;\\n gap: var(--hx-space-1, 0.25rem);\\n font-size: var(--hx-font-size-sm, 0.875rem);\\n font-weight: var(--hx-font-weight-medium, 500);\\n color: var(--hx-input-label-color, var(--hx-color-neutral-700, #343a40));\\n line-height: var(--hx-line-height-normal, 1.5);\\n}\\n\\n/* ─── Required Marker ─── */\\n\\nhx-form .form-required {\\n color: var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));\\n font-weight: var(--hx-font-weight-bold, 700);\\n}\\n\\n/* ─── Description / Help Text ─── */\\n\\nhx-form .description {\\n font-size: var(--hx-font-size-xs, 0.75rem);\\n color: var(--hx-color-neutral-500, #6c757d);\\n line-height: var(--hx-line-height-normal, 1.5);\\n}\\n\\n/* ─── Box Sizing Reset ─── */\\n\\nhx-form .form-item *,\\nhx-form .form-item *::before,\\nhx-form .form-item *::after {\\n box-sizing: border-box;\\n}\\n\\n/* ==========================================================================\\n * TEXT INPUT (_text-input.css scoped)\\n * ========================================================================== */\\n\\nhx-form input[type='text'],\\nhx-form input[type='email'],\\nhx-form input[type='password'],\\nhx-form input[type='tel'],\\nhx-form input[type='url'],\\nhx-form input[type='search'],\\nhx-form input[type='number'] {\\n display: block;\\n width: 100%;\\n border: var(--hx-border-width-thin, 1px) solid\\n var(--hx-input-border-color, var(--hx-color-neutral-300, #ced4da));\\n border-radius: var(--hx-input-border-radius, var(--hx-border-radius-md, 0.375rem));\\n background-color: var(--hx-input-bg, var(--hx-color-neutral-0, #ffffff));\\n padding: var(--hx-space-2, 0.5rem) var(--hx-space-3, 0.75rem);\\n font-family: var(--hx-input-font-family, var(--hx-font-family-sans, sans-serif));\\n font-size: var(--hx-font-size-md, 1rem);\\n color: var(--hx-input-color, var(--hx-color-neutral-800, #212529));\\n line-height: var(--hx-line-height-normal, 1.5);\\n min-height: var(--hx-size-10, 2.5rem);\\n transition:\\n border-color var(--hx-transition-fast, 150ms ease),\\n box-shadow var(--hx-transition-fast, 150ms ease);\\n}\\n\\n/* ─── Placeholder ─── */\\n\\nhx-form input[type='text']::placeholder,\\nhx-form input[type='email']::placeholder,\\nhx-form input[type='password']::placeholder,\\nhx-form input[type='tel']::placeholder,\\nhx-form input[type='url']::placeholder,\\nhx-form input[type='search']::placeholder,\\nhx-form input[type='number']::placeholder {\\n color: var(--hx-color-neutral-400, #adb5bd);\\n}\\n\\n/* ─── Focus State ─── */\\n\\nhx-form input[type='text']:focus,\\nhx-form input[type='email']:focus,\\nhx-form input[type='password']:focus,\\nhx-form input[type='tel']:focus,\\nhx-form input[type='url']:focus,\\nhx-form input[type='search']:focus,\\nhx-form input[type='number']:focus {\\n outline: 0;\\n border-color: var(--hx-input-focus-ring-color, var(--hx-focus-ring-color, #2563eb));\\n box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)\\n color-mix(\\n in srgb,\\n var(--hx-input-focus-ring-color, var(--hx-focus-ring-color, #2563eb))\\n calc(var(--hx-focus-ring-opacity, 0.25) * 100%),\\n transparent\\n );\\n}\\n\\n@media (forced-colors: active) {\\n hx-form input[type='text']:focus,\\n hx-form input[type='email']:focus,\\n hx-form input[type='password']:focus,\\n hx-form input[type='tel']:focus,\\n hx-form input[type='url']:focus,\\n hx-form input[type='search']:focus,\\n hx-form input[type='number']:focus {\\n outline: var(--hx-focus-ring-width, 2px) solid ButtonText;\\n outline-offset: var(--hx-focus-ring-offset, 2px);\\n }\\n}\\n\\n/* ─── Disabled State ─── */\\n\\nhx-form input[type='text']:disabled,\\nhx-form input[type='email']:disabled,\\nhx-form input[type='password']:disabled,\\nhx-form input[type='tel']:disabled,\\nhx-form input[type='url']:disabled,\\nhx-form input[type='search']:disabled,\\nhx-form input[type='number']:disabled {\\n opacity: var(--hx-opacity-disabled, 0.5);\\n cursor: not-allowed;\\n pointer-events: none;\\n}\\n\\n/* ─── Read-Only State ─── */\\n\\nhx-form input[type='text']:read-only,\\nhx-form input[type='email']:read-only,\\nhx-form input[type='password']:read-only,\\nhx-form input[type='tel']:read-only,\\nhx-form input[type='url']:read-only,\\nhx-form input[type='search']:read-only,\\nhx-form input[type='number']:read-only {\\n background-color: var(--hx-color-neutral-100, #e9ecef);\\n}\\n\\n/* ─── Remove browser search decorations ─── */\\n\\nhx-form input[type='search']::-webkit-search-decoration,\\nhx-form input[type='search']::-webkit-search-cancel-button,\\nhx-form input[type='search']::-webkit-search-results-button,\\nhx-form input[type='search']::-webkit-search-results-decoration {\\n -webkit-appearance: none;\\n}\\n\\n/* ─── Remove number input spinners ─── */\\n\\nhx-form input[type='number']::-webkit-inner-spin-button,\\nhx-form input[type='number']::-webkit-outer-spin-button {\\n -webkit-appearance: none;\\n margin: 0;\\n}\\n\\nhx-form input[type='number'] {\\n appearance: textfield;\\n}\\n\\n/* ==========================================================================\\n * TEXTAREA (_textarea.css scoped)\\n * ========================================================================== */\\n\\nhx-form textarea {\\n display: block;\\n width: 100%;\\n border: var(--hx-border-width-thin, 1px) solid\\n var(--hx-input-border-color, var(--hx-color-neutral-300, #ced4da));\\n border-radius: var(--hx-input-border-radius, var(--hx-border-radius-md, 0.375rem));\\n background-color: var(--hx-input-bg, var(--hx-color-neutral-0, #ffffff));\\n padding: var(--hx-space-2, 0.5rem) var(--hx-space-3, 0.75rem);\\n font-family: var(--hx-input-font-family, var(--hx-font-family-sans, sans-serif));\\n font-size: var(--hx-font-size-md, 1rem);\\n color: var(--hx-input-color, var(--hx-color-neutral-800, #212529));\\n line-height: var(--hx-line-height-normal, 1.5);\\n min-height: var(--hx-textarea-min-height, var(--hx-size-20, 5rem));\\n resize: vertical;\\n transition:\\n border-color var(--hx-transition-fast, 150ms ease),\\n box-shadow var(--hx-transition-fast, 150ms ease);\\n}\\n\\nhx-form textarea::placeholder {\\n color: var(--hx-color-neutral-400, #adb5bd);\\n}\\n\\nhx-form textarea:focus {\\n outline: 0;\\n border-color: var(--hx-input-focus-ring-color, var(--hx-focus-ring-color, #2563eb));\\n box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)\\n color-mix(\\n in srgb,\\n var(--hx-input-focus-ring-color, var(--hx-focus-ring-color, #2563eb))\\n calc(var(--hx-focus-ring-opacity, 0.25) * 100%),\\n transparent\\n );\\n}\\n\\n@media (forced-colors: active) {\\n hx-form textarea:focus {\\n outline: var(--hx-focus-ring-width, 2px) solid ButtonText;\\n outline-offset: var(--hx-focus-ring-offset, 2px);\\n }\\n}\\n\\nhx-form textarea:disabled {\\n opacity: var(--hx-opacity-disabled, 0.5);\\n cursor: not-allowed;\\n pointer-events: none;\\n}\\n\\nhx-form textarea:read-only {\\n background-color: var(--hx-color-neutral-100, #e9ecef);\\n}\\n\\n/* ==========================================================================\\n * SELECT (_select.css scoped)\\n * ========================================================================== */\\n\\nhx-form select {\\n display: block;\\n width: 100%;\\n border: var(--hx-border-width-thin, 1px) solid\\n var(--hx-select-border-color, var(--hx-color-neutral-300, #ced4da));\\n border-radius: var(--hx-select-border-radius, var(--hx-border-radius-md, 0.375rem));\\n background-color: var(--hx-select-bg, var(--hx-color-neutral-0, #ffffff));\\n padding: var(--hx-space-2, 0.5rem) var(--hx-space-8, 2rem) var(--hx-space-2, 0.5rem)\\n var(--hx-space-3, 0.75rem);\\n font-family: var(--hx-select-font-family, var(--hx-font-family-sans, sans-serif));\\n font-size: var(--hx-font-size-md, 1rem);\\n color: var(--hx-select-color, var(--hx-color-neutral-800, #212529));\\n line-height: var(--hx-line-height-normal, 1.5);\\n min-height: var(--hx-input-height-md, var(--hx-size-10, 2.5rem));\\n cursor: pointer;\\n transition:\\n border-color var(--hx-transition-fast, 150ms ease),\\n box-shadow var(--hx-transition-fast, 150ms ease);\\n appearance: none;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n 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\\\");\\n background-repeat: no-repeat;\\n background-position: right var(--hx-space-3, 0.75rem) center;\\n background-size: 12px 8px;\\n}\\n\\nhx-form select:focus {\\n outline: 0;\\n border-color: var(--hx-select-focus-ring-color, var(--hx-focus-ring-color, #2563eb));\\n box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)\\n color-mix(\\n in srgb,\\n var(--hx-select-focus-ring-color, var(--hx-focus-ring-color, #2563eb))\\n calc(var(--hx-focus-ring-opacity, 0.25) * 100%),\\n transparent\\n );\\n}\\n\\n@media (forced-colors: active) {\\n hx-form select:focus {\\n outline: var(--hx-focus-ring-width, 2px) solid ButtonText;\\n outline-offset: var(--hx-focus-ring-offset, 2px);\\n }\\n}\\n\\nhx-form select:disabled {\\n opacity: var(--hx-opacity-disabled, 0.5);\\n cursor: not-allowed;\\n pointer-events: none;\\n}\\n\\nhx-form select[multiple] {\\n min-height: var(--hx-size-20, 5rem);\\n padding-right: var(--hx-space-3, 0.75rem);\\n background-image: none;\\n}\\n\\nhx-form select[multiple] option {\\n padding: var(--hx-space-1, 0.25rem) var(--hx-space-2, 0.5rem);\\n}\\n\\nhx-form select::-ms-expand {\\n display: none;\\n}\\n\\n/* ==========================================================================\\n * CHECKBOX (_checkbox.css scoped)\\n * ========================================================================== */\\n\\nhx-form input[type='checkbox'] {\\n appearance: none;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n flex-shrink: 0;\\n width: var(--hx-checkbox-size, var(--hx-size-5, 1.25rem));\\n height: var(--hx-checkbox-size, var(--hx-size-5, 1.25rem));\\n margin: 0;\\n border: var(--hx-border-width-medium, 2px) solid\\n var(--hx-checkbox-border-color, var(--hx-color-neutral-300, #ced4da));\\n border-radius: var(--hx-checkbox-border-radius, var(--hx-border-radius-sm, 0.25rem));\\n background-color: var(--hx-color-neutral-0, #ffffff);\\n transition:\\n background-color var(--hx-transition-fast, 150ms ease),\\n border-color var(--hx-transition-fast, 150ms ease),\\n box-shadow var(--hx-transition-fast, 150ms ease);\\n cursor: pointer;\\n vertical-align: middle;\\n}\\n\\nhx-form input[type='checkbox']:checked {\\n background-color: var(--hx-checkbox-checked-bg, var(--hx-color-primary-500, #2563eb));\\n border-color: var(--hx-checkbox-checked-border-color, var(--hx-color-primary-500, #2563eb));\\n 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\\\");\\n background-repeat: no-repeat;\\n background-position: center;\\n background-size: 100%;\\n}\\n\\nhx-form input[type='checkbox']:indeterminate {\\n background-color: var(--hx-checkbox-checked-bg, var(--hx-color-primary-500, #2563eb));\\n border-color: var(--hx-checkbox-checked-border-color, var(--hx-color-primary-500, #2563eb));\\n 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\\\");\\n background-repeat: no-repeat;\\n background-position: center;\\n background-size: 100%;\\n}\\n\\nhx-form input[type='checkbox']:focus-visible {\\n outline: var(--hx-focus-ring-width, 2px) solid\\n var(--hx-checkbox-focus-ring-color, var(--hx-focus-ring-color, #2563eb));\\n outline-offset: var(--hx-focus-ring-offset, 2px);\\n}\\n\\nhx-form input[type='checkbox']:hover:not(:disabled) {\\n border-color: var(--hx-color-primary-500, #2563eb);\\n}\\n\\nhx-form input[type='checkbox']:checked:hover:not(:disabled) {\\n filter: brightness(var(--hx-filter-brightness-hover, 0.9));\\n}\\n\\nhx-form input[type='checkbox']:disabled {\\n opacity: var(--hx-opacity-disabled, 0.5);\\n cursor: not-allowed;\\n pointer-events: none;\\n}\\n\\nhx-form .form-type-checkbox,\\nhx-form .form-type-checkbox-toggle {\\n display: flex;\\n align-items: flex-start;\\n gap: var(--hx-space-2, 0.5rem);\\n}\\n\\nhx-form .form-type-checkbox label,\\nhx-form .form-type-checkbox-toggle label {\\n font-size: var(--hx-font-size-sm, 0.875rem);\\n font-weight: var(--hx-font-weight-medium, 500);\\n color: var(--hx-checkbox-label-color, var(--hx-color-neutral-700, #343a40));\\n line-height: var(--hx-line-height-normal, 1.5);\\n cursor: pointer;\\n user-select: none;\\n -webkit-user-select: none;\\n}\\n\\n/* ==========================================================================\\n * RADIO (_radio.css scoped)\\n * ========================================================================== */\\n\\nhx-form input[type='radio'] {\\n appearance: none;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n flex-shrink: 0;\\n width: var(--hx-radio-size, var(--hx-size-5, 1.25rem));\\n height: var(--hx-radio-size, var(--hx-size-5, 1.25rem));\\n margin: 0;\\n border: var(--hx-border-width-medium, 2px) solid\\n var(--hx-radio-border-color, var(--hx-color-neutral-300, #ced4da));\\n border-radius: var(--hx-border-radius-full, 9999px);\\n background-color: var(--hx-color-neutral-0, #ffffff);\\n transition:\\n border-color var(--hx-transition-fast, 150ms ease),\\n background-color var(--hx-transition-fast, 150ms ease),\\n box-shadow var(--hx-transition-fast, 150ms ease);\\n cursor: pointer;\\n vertical-align: middle;\\n}\\n\\nhx-form input[type='radio']:checked {\\n border-color: var(--hx-radio-checked-border-color, var(--hx-color-primary-500, #2563eb));\\n background-color: var(--hx-radio-checked-bg, var(--hx-color-primary-500, #2563eb));\\n box-shadow: inset 0 0 0 calc(var(--hx-radio-size, var(--hx-size-5, 1.25rem)) * 0.3)\\n var(--hx-radio-dot-color, var(--hx-color-neutral-0, #ffffff));\\n}\\n\\nhx-form input[type='radio']:focus-visible {\\n outline: var(--hx-focus-ring-width, 2px) solid\\n var(--hx-radio-focus-ring-color, var(--hx-focus-ring-color, #2563eb));\\n outline-offset: var(--hx-focus-ring-offset, 2px);\\n}\\n\\nhx-form input[type='radio']:hover:not(:disabled):not(:checked) {\\n border-color: var(--hx-color-neutral-400, #adb5bd);\\n}\\n\\nhx-form input[type='radio']:disabled {\\n opacity: var(--hx-opacity-disabled, 0.5);\\n cursor: not-allowed;\\n pointer-events: none;\\n}\\n\\nhx-form .form-type-radio {\\n display: inline-flex;\\n align-items: center;\\n gap: var(--hx-space-2, 0.5rem);\\n}\\n\\nhx-form .form-type-radio label {\\n font-size: var(--hx-font-size-md, 1rem);\\n color: var(--hx-radio-label-color, var(--hx-color-neutral-700, #343a40));\\n line-height: var(--hx-line-height-normal, 1.5);\\n cursor: pointer;\\n user-select: none;\\n -webkit-user-select: none;\\n}\\n\\nhx-form .form-radios {\\n display: flex;\\n flex-direction: column;\\n gap: var(--hx-radio-group-gap, var(--hx-space-3, 0.75rem));\\n}\\n\\nhx-form .form-radios--horizontal {\\n flex-direction: row;\\n flex-wrap: wrap;\\n}\\n\\n/* ==========================================================================\\n * SWITCH (_switch.css scoped)\\n * ========================================================================== */\\n\\nhx-form .form-type-switch {\\n display: flex;\\n flex-direction: column;\\n gap: var(--hx-space-1, 0.25rem);\\n font-family: var(--hx-font-family-sans, sans-serif);\\n}\\n\\nhx-form .form-type-switch .switch__control-row {\\n display: flex;\\n align-items: center;\\n gap: var(--hx-space-2, 0.5rem);\\n}\\n\\nhx-form .form-type-switch input[type='checkbox'] {\\n appearance: none;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n position: relative;\\n display: inline-flex;\\n align-items: center;\\n flex-shrink: 0;\\n width: var(--hx-switch-track-width-md, var(--hx-size-10, 2.5rem));\\n height: var(--hx-switch-track-height-md, var(--hx-size-5-5, 1.375rem));\\n margin: 0;\\n border: none;\\n border-radius: var(--hx-border-radius-full, 9999px);\\n background-color: var(--hx-switch-track-bg, var(--hx-color-neutral-300, #ced4da));\\n transition: background-color var(--hx-transition-fast, 150ms ease);\\n cursor: pointer;\\n background-image: none;\\n}\\n\\nhx-form .form-type-switch input[type='checkbox']::before {\\n content: '';\\n position: absolute;\\n top: 50%;\\n left: var(--hx-switch-thumb-offset, var(--hx-space-0-5, 0.125rem));\\n transform: translateY(-50%);\\n width: var(--hx-switch-thumb-size-md, var(--hx-size-4-5, 1.125rem));\\n height: var(--hx-switch-thumb-size-md, var(--hx-size-4-5, 1.125rem));\\n border-radius: var(--hx-border-radius-full, 9999px);\\n background-color: var(--hx-switch-thumb-bg, var(--hx-color-neutral-0, #ffffff));\\n box-shadow: var(--hx-switch-thumb-shadow, var(--hx-shadow-sm, 0 1px 2px 0 rgb(0 0 0 / 0.05)));\\n transition: transform var(--hx-transition-fast, 150ms ease);\\n}\\n\\nhx-form .form-type-switch input[type='checkbox']:checked {\\n background-color: var(--hx-switch-track-checked-bg, var(--hx-color-primary-500, #2563eb));\\n background-image: none;\\n}\\n\\nhx-form .form-type-switch input[type='checkbox']:checked::before {\\n transform: translateY(-50%)\\n translateX(var(--hx-switch-thumb-size-md, var(--hx-size-4-5, 1.125rem)));\\n}\\n\\nhx-form .form-type-switch input[type='checkbox']:focus-visible {\\n outline: var(--hx-focus-ring-width, 2px) solid\\n var(--hx-switch-focus-ring-color, var(--hx-focus-ring-color, #2563eb));\\n outline-offset: var(--hx-focus-ring-offset, 2px);\\n}\\n\\nhx-form .form-type-switch input[type='checkbox']:disabled {\\n opacity: var(--hx-opacity-disabled, 0.5);\\n cursor: not-allowed;\\n pointer-events: none;\\n}\\n\\nhx-form .form-type-switch label {\\n font-size: var(--hx-font-size-sm, 0.875rem);\\n font-weight: var(--hx-font-weight-medium, 500);\\n color: var(--hx-switch-label-color, var(--hx-color-neutral-700, #343a40));\\n line-height: var(--hx-line-height-normal, 1.5);\\n cursor: pointer;\\n user-select: none;\\n -webkit-user-select: none;\\n}\\n\\n/* Small */\\nhx-form .form-type-switch--sm input[type='checkbox'] {\\n width: var(--hx-switch-track-width-sm, var(--hx-size-8, 2rem));\\n height: var(--hx-switch-track-height-sm, var(--hx-size-4-5, 1.125rem));\\n}\\n\\nhx-form .form-type-switch--sm input[type='checkbox']::before {\\n width: var(--hx-switch-thumb-size-sm, var(--hx-size-3-5, 0.875rem));\\n height: var(--hx-switch-thumb-size-sm, var(--hx-size-3-5, 0.875rem));\\n}\\n\\nhx-form .form-type-switch--sm input[type='checkbox']:checked::before {\\n transform: translateY(-50%)\\n translateX(var(--hx-switch-thumb-size-sm, var(--hx-size-3-5, 0.875rem)));\\n}\\n\\n/* Large */\\nhx-form .form-type-switch--lg input[type='checkbox'] {\\n width: var(--hx-switch-track-width-lg, var(--hx-size-12, 3rem));\\n height: var(--hx-switch-track-height-lg, var(--hx-size-6-5, 1.625rem));\\n}\\n\\nhx-form .form-type-switch--lg input[type='checkbox']::before {\\n width: var(--hx-switch-thumb-size-lg, var(--hx-size-5-5, 1.375rem));\\n height: var(--hx-switch-thumb-size-lg, var(--hx-size-5-5, 1.375rem));\\n}\\n\\nhx-form .form-type-switch--lg input[type='checkbox']:checked::before {\\n transform: translateY(-50%)\\n translateX(var(--hx-switch-thumb-size-lg, var(--hx-size-5-5, 1.375rem)));\\n}\\n\\n/* ==========================================================================\\n * FORM LAYOUT (_form-layout.css scoped)\\n * ========================================================================== */\\n\\n/* ─── Form Root ─── */\\n\\nhx-form form {\\n display: flex;\\n flex-direction: column;\\n gap: var(--hx-form-gap, var(--hx-space-4, 1rem));\\n font-family: var(--hx-input-font-family, var(--hx-font-family-sans, sans-serif));\\n}\\n\\n/* ─── Fieldset ─── */\\n\\nhx-form fieldset {\\n border: var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-200, #dee2e6);\\n border-radius: var(--hx-border-radius-md, 0.375rem);\\n padding: var(--hx-space-4, 1rem) var(--hx-space-4, 1rem) var(--hx-space-4, 1rem);\\n margin: 0;\\n display: flex;\\n flex-direction: column;\\n gap: var(--hx-space-4, 1rem);\\n}\\n\\n/* ─── Legend ─── */\\n\\nhx-form legend {\\n display: flex;\\n align-items: baseline;\\n gap: var(--hx-space-1, 0.25rem);\\n font-size: var(--hx-font-size-sm, 0.875rem);\\n font-weight: var(--hx-font-weight-semibold, 600);\\n color: var(--hx-color-neutral-700, #343a40);\\n line-height: var(--hx-line-height-normal, 1.5);\\n padding: 0 var(--hx-space-1, 0.25rem);\\n}\\n\\n/* ─── Details / Collapsible Fieldset (Drupal) ─── */\\n\\nhx-form details {\\n border: var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-200, #dee2e6);\\n border-radius: var(--hx-border-radius-md, 0.375rem);\\n padding: var(--hx-space-4, 1rem);\\n margin: 0;\\n}\\n\\nhx-form summary {\\n font-size: var(--hx-font-size-sm, 0.875rem);\\n font-weight: var(--hx-font-weight-semibold, 600);\\n color: var(--hx-color-neutral-700, #343a40);\\n line-height: var(--hx-line-height-normal, 1.5);\\n cursor: pointer;\\n padding: var(--hx-space-1, 0.25rem) 0;\\n user-select: none;\\n -webkit-user-select: none;\\n}\\n\\nhx-form summary:focus-visible {\\n outline: var(--hx-focus-ring-width, 2px) solid var(--hx-focus-ring-color, #2563eb);\\n outline-offset: var(--hx-focus-ring-offset, 2px);\\n border-radius: var(--hx-border-radius-sm, 0.25rem);\\n}\\n\\n/* ─── Form Actions (button group) ─── */\\n\\nhx-form .form-actions {\\n display: flex;\\n align-items: center;\\n gap: var(--hx-space-3, 0.75rem);\\n padding-top: var(--hx-space-4, 1rem);\\n}\\n\\nhx-form .form-actions--end {\\n justify-content: flex-end;\\n}\\n\\nhx-form .form-actions--between {\\n justify-content: space-between;\\n}\\n\\n/* ─── Multi-Column Layout ─── */\\n\\nhx-form .form-columns {\\n display: grid;\\n gap: var(--hx-space-4, 1rem);\\n}\\n\\nhx-form .form-columns--2 {\\n grid-template-columns: repeat(2, 1fr);\\n}\\n\\nhx-form .form-columns--3 {\\n grid-template-columns: repeat(3, 1fr);\\n}\\n\\nhx-form .form-columns--4 {\\n grid-template-columns: repeat(4, 1fr);\\n}\\n\\n@media (max-width: 640px) {\\n hx-form .form-columns--2,\\n hx-form .form-columns--3,\\n hx-form .form-columns--4 {\\n grid-template-columns: 1fr;\\n }\\n}\\n\\n/* ─── Full-Width Form Item (spans all columns) ─── */\\n\\nhx-form .form-item--full {\\n grid-column: 1 / -1;\\n}\\n\\n/* ─── Inline Form Layout ─── */\\n\\nhx-form .form-inline {\\n display: flex;\\n flex-wrap: wrap;\\n align-items: flex-end;\\n gap: var(--hx-space-3, 0.75rem);\\n}\\n\\nhx-form .form-inline .form-item {\\n flex: 1;\\n min-width: 0;\\n}\\n\\nhx-form .form-inline .form-item + .form-item {\\n margin-top: 0;\\n}\\n\\n/* ─── Form Divider ─── */\\n\\nhx-form .form-divider {\\n border: none;\\n border-top: var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-200, #dee2e6);\\n margin: var(--hx-space-2, 0.5rem) 0;\\n}\\n\\n/* ==========================================================================\\n * VALIDATION (_validation.css scoped)\\n * ========================================================================== */\\n\\n/* ─── Error State on Field Wrapper ─── */\\n\\nhx-form .form-item.error label,\\nhx-form .form-item.has-error label,\\nhx-form .form-item--error label {\\n color: var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));\\n}\\n\\nhx-form .form-item.error input[type='text'],\\nhx-form .form-item.error input[type='email'],\\nhx-form .form-item.error input[type='password'],\\nhx-form .form-item.error input[type='tel'],\\nhx-form .form-item.error input[type='url'],\\nhx-form .form-item.error input[type='search'],\\nhx-form .form-item.error input[type='number'],\\nhx-form .form-item.error textarea,\\nhx-form .form-item.error select,\\nhx-form .form-item.has-error input[type='text'],\\nhx-form .form-item.has-error input[type='email'],\\nhx-form .form-item.has-error input[type='password'],\\nhx-form .form-item.has-error input[type='tel'],\\nhx-form .form-item.has-error input[type='url'],\\nhx-form .form-item.has-error input[type='search'],\\nhx-form .form-item.has-error input[type='number'],\\nhx-form .form-item.has-error textarea,\\nhx-form .form-item.has-error select,\\nhx-form .form-item--error input[type='text'],\\nhx-form .form-item--error input[type='email'],\\nhx-form .form-item--error input[type='password'],\\nhx-form .form-item--error input[type='tel'],\\nhx-form .form-item--error input[type='url'],\\nhx-form .form-item--error input[type='search'],\\nhx-form .form-item--error input[type='number'],\\nhx-form .form-item--error textarea,\\nhx-form .form-item--error select {\\n border-color: var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));\\n}\\n\\nhx-form .form-item.error input[type='text']:focus,\\nhx-form .form-item.error input[type='email']:focus,\\nhx-form .form-item.error input[type='password']:focus,\\nhx-form .form-item.error input[type='tel']:focus,\\nhx-form .form-item.error input[type='url']:focus,\\nhx-form .form-item.error input[type='search']:focus,\\nhx-form .form-item.error input[type='number']:focus,\\nhx-form .form-item.error textarea:focus,\\nhx-form .form-item.error select:focus,\\nhx-form .form-item.has-error input[type='text']:focus,\\nhx-form .form-item.has-error input[type='email']:focus,\\nhx-form .form-item.has-error input[type='password']:focus,\\nhx-form .form-item.has-error input[type='tel']:focus,\\nhx-form .form-item.has-error input[type='url']:focus,\\nhx-form .form-item.has-error input[type='search']:focus,\\nhx-form .form-item.has-error input[type='number']:focus,\\nhx-form .form-item.has-error textarea:focus,\\nhx-form .form-item.has-error select:focus,\\nhx-form .form-item--error input[type='text']:focus,\\nhx-form .form-item--error input[type='email']:focus,\\nhx-form .form-item--error input[type='password']:focus,\\nhx-form .form-item--error input[type='tel']:focus,\\nhx-form .form-item--error input[type='url']:focus,\\nhx-form .form-item--error input[type='search']:focus,\\nhx-form .form-item--error input[type='number']:focus,\\nhx-form .form-item--error textarea:focus,\\nhx-form .form-item--error select:focus {\\n border-color: var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));\\n box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)\\n color-mix(\\n in srgb,\\n var(--hx-input-error-color, var(--hx-color-error-500, #dc3545))\\n calc(var(--hx-focus-ring-opacity, 0.25) * 100%),\\n transparent\\n );\\n}\\n\\n/* ─── Error State on Checkbox/Radio ─── */\\n\\nhx-form .form-item.error input[type='checkbox'],\\nhx-form .form-item.has-error input[type='checkbox'],\\nhx-form .form-item--error input[type='checkbox'] {\\n border-color: var(--hx-checkbox-error-color, var(--hx-color-error-500, #dc3545));\\n}\\n\\nhx-form .form-item.error input[type='checkbox']:checked,\\nhx-form .form-item.has-error input[type='checkbox']:checked,\\nhx-form .form-item--error input[type='checkbox']:checked {\\n background-color: var(--hx-checkbox-error-color, var(--hx-color-error-500, #dc3545));\\n border-color: var(--hx-checkbox-error-color, var(--hx-color-error-500, #dc3545));\\n}\\n\\nhx-form .form-item.error input[type='radio'],\\nhx-form .form-item.has-error input[type='radio'],\\nhx-form .form-item--error input[type='radio'] {\\n border-color: var(--hx-color-error-500, #dc3545);\\n}\\n\\n/* ─── Inline Error Message ─── */\\n\\nhx-form .form-item__error-message,\\nhx-form .form-item .error-message,\\nhx-form .error-message {\\n font-size: var(--hx-font-size-xs, 0.75rem);\\n color: var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));\\n line-height: var(--hx-line-height-normal, 1.5);\\n}\\n\\n/* ─── Success State on Field Wrapper ─── */\\n\\nhx-form .form-item.success label,\\nhx-form .form-item.has-success label,\\nhx-form .form-item--success label {\\n color: var(--hx-color-success-500, #198754);\\n}\\n\\nhx-form .form-item.success input[type='text'],\\nhx-form .form-item.success input[type='email'],\\nhx-form .form-item.success input[type='password'],\\nhx-form .form-item.success input[type='tel'],\\nhx-form .form-item.success input[type='url'],\\nhx-form .form-item.success input[type='search'],\\nhx-form .form-item.success input[type='number'],\\nhx-form .form-item.success textarea,\\nhx-form .form-item.success select,\\nhx-form .form-item.has-success input[type='text'],\\nhx-form .form-item.has-success input[type='email'],\\nhx-form .form-item.has-success input[type='password'],\\nhx-form .form-item.has-success input[type='tel'],\\nhx-form .form-item.has-success input[type='url'],\\nhx-form .form-item.has-success input[type='search'],\\nhx-form .form-item.has-success input[type='number'],\\nhx-form .form-item.has-success textarea,\\nhx-form .form-item.has-success select,\\nhx-form .form-item--success input[type='text'],\\nhx-form .form-item--success input[type='email'],\\nhx-form .form-item--success input[type='password'],\\nhx-form .form-item--success input[type='tel'],\\nhx-form .form-item--success input[type='url'],\\nhx-form .form-item--success input[type='search'],\\nhx-form .form-item--success input[type='number'],\\nhx-form .form-item--success textarea,\\nhx-form .form-item--success select {\\n border-color: var(--hx-color-success-500, #198754);\\n}\\n\\nhx-form .form-item.success input[type='text']:focus,\\nhx-form .form-item.success input[type='email']:focus,\\nhx-form .form-item.success input[type='password']:focus,\\nhx-form .form-item.success input[type='tel']:focus,\\nhx-form .form-item.success input[type='url']:focus,\\nhx-form .form-item.success input[type='search']:focus,\\nhx-form .form-item.success input[type='number']:focus,\\nhx-form .form-item.success textarea:focus,\\nhx-form .form-item.success select:focus,\\nhx-form .form-item.has-success input[type='text']:focus,\\nhx-form .form-item.has-success input[type='email']:focus,\\nhx-form .form-item.has-success input[type='password']:focus,\\nhx-form .form-item.has-success input[type='tel']:focus,\\nhx-form .form-item.has-success input[type='url']:focus,\\nhx-form .form-item.has-success input[type='search']:focus,\\nhx-form .form-item.has-success input[type='number']:focus,\\nhx-form .form-item.has-success textarea:focus,\\nhx-form .form-item.has-success select:focus,\\nhx-form .form-item--success input[type='text']:focus,\\nhx-form .form-item--success input[type='email']:focus,\\nhx-form .form-item--success input[type='password']:focus,\\nhx-form .form-item--success input[type='tel']:focus,\\nhx-form .form-item--success input[type='url']:focus,\\nhx-form .form-item--success input[type='search']:focus,\\nhx-form .form-item--success input[type='number']:focus,\\nhx-form .form-item--success textarea:focus,\\nhx-form .form-item--success select:focus {\\n border-color: var(--hx-color-success-500, #198754);\\n box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)\\n color-mix(\\n in srgb,\\n var(--hx-color-success-500, #198754) calc(var(--hx-focus-ring-opacity, 0.25) * 100%),\\n transparent\\n );\\n}\\n\\n/* ─── Inline Success Message ─── */\\n\\nhx-form .form-item__success-message,\\nhx-form .form-item .success-message,\\nhx-form .success-message {\\n font-size: var(--hx-font-size-xs, 0.75rem);\\n color: var(--hx-color-success-500, #198754);\\n line-height: var(--hx-line-height-normal, 1.5);\\n}\\n\\n/* ─── Drupal System Messages ─── */\\n\\nhx-form .messages--error {\\n border: var(--hx-border-width-thin, 1px) solid\\n var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));\\n border-radius: var(--hx-border-radius-md, 0.375rem);\\n background-color: var(--hx-color-error-50, #fef2f2);\\n color: var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));\\n padding: var(--hx-space-3, 0.75rem) var(--hx-space-4, 1rem);\\n font-size: var(--hx-font-size-sm, 0.875rem);\\n line-height: var(--hx-line-height-normal, 1.5);\\n}\\n\\nhx-form .messages--status {\\n border: var(--hx-border-width-thin, 1px) solid var(--hx-color-success-500, #198754);\\n border-radius: var(--hx-border-radius-md, 0.375rem);\\n background-color: var(--hx-color-success-50, #f0fdf4);\\n color: var(--hx-color-success-500, #198754);\\n padding: var(--hx-space-3, 0.75rem) var(--hx-space-4, 1rem);\\n font-size: var(--hx-font-size-sm, 0.875rem);\\n line-height: var(--hx-line-height-normal, 1.5);\\n}\\n\\nhx-form .messages--warning {\\n border: var(--hx-border-width-thin, 1px) solid var(--hx-color-warning-500, #ffc107);\\n border-radius: var(--hx-border-radius-md, 0.375rem);\\n background-color: var(--hx-color-warning-50, #fffbeb);\\n color: var(--hx-color-warning-700, #92400e);\\n padding: var(--hx-space-3, 0.75rem) var(--hx-space-4, 1rem);\\n font-size: var(--hx-font-size-sm, 0.875rem);\\n line-height: var(--hx-line-height-normal, 1.5);\\n}\\n\\n/* ==========================================================================\\n * FORCED-COLORS / HIGH CONTRAST MODE (P1-01)\\n *\\n * When box-shadow is used for focus rings, it is invisible in Windows\\n * High Contrast Mode. Restore a visible outline.\\n * ========================================================================== */\\n\\n@media (forced-colors: active) {\\n hx-form input[type='text']:focus,\\n hx-form input[type='email']:focus,\\n hx-form input[type='password']:focus,\\n hx-form input[type='tel']:focus,\\n hx-form input[type='url']:focus,\\n hx-form input[type='search']:focus,\\n hx-form input[type='number']:focus,\\n hx-form textarea:focus,\\n hx-form select:focus {\\n outline: 2px solid CanvasText;\\n outline-offset: 2px;\\n }\\n\\n hx-form .hx-form-error-summary {\\n border-color: LinkText;\\n }\\n}\\n\"","import formScopedCss from '../../styles/form/form.scoped.css?raw';\n\nexport const helixFormScopedCss = formScopedCss;\n","import { LitElement, html, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.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 LitElement {\n // ─── Light DOM ───\n\n override createRenderRoot(): HTMLElement {\n return this;\n }\n\n // ─── Adopted Stylesheets ───\n\n private _styles = new AdoptedStylesheetsController(this, helixFormScopedCss, document);\n\n // ─── Internal State ───\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 */\n private _getAllValidatableElements(): HTMLElement[] {\n const native = Array.from(this.querySelectorAll<HTMLElement>('input, select, textarea'));\n const wcElements = this.getFormElements().filter(\n (el) =>\n 'checkValidity' in el &&\n typeof (el as Record<string, 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 */\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 */\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 */\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 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 /**\n * Dispatched when validation fails on submit.\n * @event hx-invalid\n */\n this.dispatchEvent(\n new CustomEvent('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('hx-submit', {\n bubbles: true,\n composed: true,\n detail: { valid: true, values, formData },\n }),\n );\n };\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('hx-reset', {\n bubbles: true,\n composed: true,\n }),\n );\n };\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\n class=\"hx-form-error-summary\"\n role=\"alert\"\n aria-live=\"assertive\"\n aria-atomic=\"true\"\n >\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","LitElement","AdoptedStylesheetsController","errors","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":";;;;AAAA,MAAAA,IAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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"}
@@ -0,0 +1,172 @@
1
+ import { css as _, LitElement as D, html as M } from "lit";
2
+ import { property as h, customElement as w } from "lit/decorators.js";
3
+ import { t as N } from "./lit-Dpo7RLp4.js";
4
+ const T = _`
5
+ :host {
6
+ display: inline;
7
+ }
8
+
9
+ [part='base'] {
10
+ display: inline;
11
+ font: inherit;
12
+ color: inherit;
13
+ }
14
+ `;
15
+ var $ = Object.defineProperty, Z = Object.getOwnPropertyDescriptor, n = (o, t, i, e) => {
16
+ for (var a = e > 1 ? void 0 : e ? Z(t, i) : t, s = o.length - 1, c; s >= 0; s--)
17
+ (c = o[s]) && (a = (e ? c(t, i, a) : c(a)) || a);
18
+ return e && a && $(t, i, a), a;
19
+ };
20
+ let r = class extends D {
21
+ constructor() {
22
+ super(...arguments), this.date = "", this.lang = "", this.month = void 0, this.year = void 0, this.day = void 0, this.weekday = void 0, this.hour = void 0, this.minute = void 0, this.second = void 0, this.timeZoneName = void 0, this.timeZone = void 0, this.hourFormat = "auto", this.numeric = "auto", this.relative = !1;
23
+ }
24
+ // ─── Private helpers ───
25
+ _getDate() {
26
+ const o = this.date;
27
+ if (o === "") return /* @__PURE__ */ new Date();
28
+ if (o instanceof Date)
29
+ return isNaN(o.getTime()) ? /* @__PURE__ */ new Date() : o;
30
+ if (typeof o == "number") {
31
+ const e = new Date(o);
32
+ return isNaN(e.getTime()) ? /* @__PURE__ */ new Date() : e;
33
+ }
34
+ const t = Number(o);
35
+ if (!isNaN(t)) {
36
+ const e = new Date(t);
37
+ return isNaN(e.getTime()) ? /* @__PURE__ */ new Date() : e;
38
+ }
39
+ const i = new Date(o);
40
+ return isNaN(i.getTime()) ? /* @__PURE__ */ new Date() : i;
41
+ }
42
+ _getLocale() {
43
+ return this.lang ? this.lang : document.documentElement.lang || navigator.language || "en";
44
+ }
45
+ _getHour12() {
46
+ if (this.hourFormat === "12") return !0;
47
+ if (this.hourFormat === "24") return !1;
48
+ }
49
+ /**
50
+ * Returns the `datetime` attribute value. When `timeZone` is set, returns a
51
+ * timezone-offset ISO string (e.g. `2024-09-20T05:00:00-04:00`) so that
52
+ * assistive technology reads the same local time as the visual display.
53
+ */
54
+ _getDatetimeAttr(o) {
55
+ if (!this.timeZone) return o.toISOString();
56
+ try {
57
+ const t = {
58
+ timeZone: this.timeZone,
59
+ year: "numeric",
60
+ month: "2-digit",
61
+ day: "2-digit",
62
+ hour: "2-digit",
63
+ minute: "2-digit",
64
+ second: "2-digit",
65
+ hour12: !1
66
+ }, i = (m) => m.reduce((g, d) => (d.type !== "literal" && (g[d.type] = d.value), g), {}), e = i(new Intl.DateTimeFormat("en-CA", t).formatToParts(o)), a = i(
67
+ new Intl.DateTimeFormat("en-CA", { ...t, timeZone: "UTC" }).formatToParts(o)
68
+ ), s = (m) => Date.UTC(
69
+ parseInt(m.year ?? "0"),
70
+ parseInt(m.month ?? "1") - 1,
71
+ parseInt(m.day ?? "1"),
72
+ parseInt(m.hour === "24" ? "0" : m.hour ?? "0"),
73
+ parseInt(m.minute ?? "0"),
74
+ parseInt(m.second ?? "0")
75
+ ), c = Math.round((s(e) - s(a)) / 6e4), y = c >= 0 ? "+" : "-", l = Math.abs(c), f = String(Math.floor(l / 60)).padStart(2, "0"), v = String(l % 60).padStart(2, "0"), p = e.hour === "24" ? "00" : e.hour ?? "00";
76
+ return `${e.year}-${e.month}-${e.day}T${p}:${e.minute}:${e.second}${y}${f}:${v}`;
77
+ } catch {
78
+ return o.toISOString();
79
+ }
80
+ }
81
+ _formatRelative(o) {
82
+ const t = /* @__PURE__ */ new Date(), i = o.getTime() - t.getTime(), e = Math.round(i / 1e3), a = Math.abs(e), s = Math.round(e / 60), c = Math.abs(s), y = Math.round(e / 3600), l = Math.abs(y), f = Math.round(e / 86400), v = Math.abs(f), p = Math.round(f / 30), m = Math.abs(p), g = Math.round(f / 365), d = this._getLocale(), b = `${d}|${this.numeric}`;
83
+ let u = r._rtfCache.get(b);
84
+ if (!u)
85
+ try {
86
+ u = new Intl.RelativeTimeFormat(d, { numeric: this.numeric }), r._rtfCache.set(b, u);
87
+ } catch {
88
+ return "";
89
+ }
90
+ try {
91
+ return a < 60 ? u.format(e, "second") : c < 60 ? u.format(s, "minute") : l < 24 ? u.format(y, "hour") : v < 30 ? u.format(f, "day") : m < 12 ? u.format(p, "month") : u.format(g, "year");
92
+ } catch {
93
+ return "";
94
+ }
95
+ }
96
+ _formatAbsolute(o) {
97
+ const t = {};
98
+ this.month !== void 0 && (t.month = this.month), this.year !== void 0 && (t.year = this.year), this.day !== void 0 && (t.day = this.day), this.weekday !== void 0 && (t.weekday = this.weekday), this.hour !== void 0 && (t.hour = this.hour), this.minute !== void 0 && (t.minute = this.minute), this.second !== void 0 && (t.second = this.second), this.timeZoneName !== void 0 && (t.timeZoneName = this.timeZoneName), this.timeZone !== void 0 && (t.timeZone = this.timeZone);
99
+ const i = this._getHour12();
100
+ i !== void 0 && (t.hour12 = i), Object.keys(t).length === 0 && (t.year = "numeric", t.month = "long", t.day = "numeric");
101
+ const e = this._getLocale(), a = `${e}|${JSON.stringify(t)}`;
102
+ let s = r._dtfCache.get(a);
103
+ if (!s)
104
+ try {
105
+ s = new Intl.DateTimeFormat(e, t), r._dtfCache.set(a, s);
106
+ } catch {
107
+ return "";
108
+ }
109
+ try {
110
+ return s.format(o);
111
+ } catch {
112
+ return "";
113
+ }
114
+ }
115
+ // ─── Render ───
116
+ render() {
117
+ const o = this._getDate(), t = this._getDatetimeAttr(o), i = this.relative ? this._formatRelative(o) : this._formatAbsolute(o);
118
+ return M`<time part="base" datetime=${t}>${i}</time>`;
119
+ }
120
+ };
121
+ r.styles = [N, T];
122
+ r._dtfCache = /* @__PURE__ */ new Map();
123
+ r._rtfCache = /* @__PURE__ */ new Map();
124
+ n([
125
+ h()
126
+ ], r.prototype, "date", 2);
127
+ n([
128
+ h()
129
+ ], r.prototype, "lang", 2);
130
+ n([
131
+ h()
132
+ ], r.prototype, "month", 2);
133
+ n([
134
+ h()
135
+ ], r.prototype, "year", 2);
136
+ n([
137
+ h()
138
+ ], r.prototype, "day", 2);
139
+ n([
140
+ h()
141
+ ], r.prototype, "weekday", 2);
142
+ n([
143
+ h()
144
+ ], r.prototype, "hour", 2);
145
+ n([
146
+ h()
147
+ ], r.prototype, "minute", 2);
148
+ n([
149
+ h()
150
+ ], r.prototype, "second", 2);
151
+ n([
152
+ h({ attribute: "time-zone-name" })
153
+ ], r.prototype, "timeZoneName", 2);
154
+ n([
155
+ h({ attribute: "time-zone" })
156
+ ], r.prototype, "timeZone", 2);
157
+ n([
158
+ h({ attribute: "hour-format" })
159
+ ], r.prototype, "hourFormat", 2);
160
+ n([
161
+ h()
162
+ ], r.prototype, "numeric", 2);
163
+ n([
164
+ h({ type: Boolean })
165
+ ], r.prototype, "relative", 2);
166
+ r = n([
167
+ w("hx-format-date")
168
+ ], r);
169
+ export {
170
+ r as H
171
+ };
172
+ //# sourceMappingURL=hx-format-date-BIR66MeC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hx-format-date-BIR66MeC.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","import { LitElement, html } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { tokenStyles } from '@helixui/tokens/lit';\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 LitElement {\n static override styles = [tokenStyles, helixFormatDateStyles];\n\n // ─── Intl formatter caches (keyed by locale+options fingerprint) ───\n private static _dtfCache = new Map<string, Intl.DateTimeFormat>();\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 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 private _getLocale(): string {\n if (this.lang) return this.lang;\n return document.documentElement.lang || navigator.language || 'en';\n }\n\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 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 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 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","LitElement","val","d","asNumber","parsed","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","tokenStyles","__decorateClass","property","customElement"],"mappings":"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"}
@@ -0,0 +1,118 @@
1
+ import { css as m, LitElement as c, html as d } from "lit";
2
+ import { property as s, customElement as g } from "lit/decorators.js";
3
+ import { t as y } from "./lit-Dpo7RLp4.js";
4
+ const f = m`
5
+ :host {
6
+ display: block;
7
+ box-sizing: border-box;
8
+ width: 100%;
9
+ }
10
+ `, v = m`
11
+ :host {
12
+ display: block;
13
+ min-width: 0;
14
+ min-height: 0;
15
+ }
16
+ `;
17
+ var x = Object.defineProperty, G = Object.getOwnPropertyDescriptor, e = (t, l, a, p) => {
18
+ for (var o = p > 1 ? void 0 : p ? G(l, a) : l, n = t.length - 1, u; n >= 0; n--)
19
+ (u = t[n]) && (o = (p ? u(l, a, o) : u(o)) || o);
20
+ return p && o && x(l, a, o), o;
21
+ };
22
+ const h = {
23
+ none: "0",
24
+ xs: "var(--hx-space-1, 0.25rem)",
25
+ sm: "var(--hx-space-2, 0.5rem)",
26
+ md: "var(--hx-space-4, 1rem)",
27
+ lg: "var(--hx-space-6, 1.5rem)",
28
+ xl: "var(--hx-space-8, 2rem)"
29
+ };
30
+ let r = class extends c {
31
+ constructor() {
32
+ super(...arguments), this.columns = 1, this.gap = "md", this.align = "stretch", this.justify = "stretch";
33
+ }
34
+ _gridTemplateColumns() {
35
+ const t = this.columns;
36
+ return typeof t == "number" || /^\d+$/.test(String(t)) ? `var(--hx-grid-columns, repeat(${t}, 1fr))` : `var(--hx-grid-columns, ${t})`;
37
+ }
38
+ _resolveGap(t) {
39
+ return h[t] ?? h.md;
40
+ }
41
+ _computedRowGap() {
42
+ return this.rowGap ? `var(--hx-grid-row-gap, ${this._resolveGap(this.rowGap)})` : `var(--hx-grid-row-gap, var(--hx-grid-gap, ${this._resolveGap(this.gap)}))`;
43
+ }
44
+ _computedColumnGap() {
45
+ return this.columnGap ? `var(--hx-grid-column-gap, ${this._resolveGap(this.columnGap)})` : `var(--hx-grid-column-gap, var(--hx-grid-gap, ${this._resolveGap(this.gap)}))`;
46
+ }
47
+ _baseStyle() {
48
+ return [
49
+ "display: grid",
50
+ `grid-template-columns: ${this._gridTemplateColumns()}`,
51
+ `row-gap: ${this._computedRowGap()}`,
52
+ `column-gap: ${this._computedColumnGap()}`,
53
+ `align-items: ${this.align}`,
54
+ `justify-items: ${this.justify}`
55
+ ].join("; ");
56
+ }
57
+ render() {
58
+ return d`
59
+ <div part="base" role="presentation" style=${this._baseStyle()}>
60
+ <slot></slot>
61
+ </div>
62
+ `;
63
+ }
64
+ };
65
+ r.styles = [y, f];
66
+ e([
67
+ s({ reflect: !0 })
68
+ ], r.prototype, "columns", 2);
69
+ e([
70
+ s({ reflect: !0 })
71
+ ], r.prototype, "gap", 2);
72
+ e([
73
+ s({ attribute: "row-gap", reflect: !0 })
74
+ ], r.prototype, "rowGap", 2);
75
+ e([
76
+ s({ attribute: "column-gap", reflect: !0 })
77
+ ], r.prototype, "columnGap", 2);
78
+ e([
79
+ s({ reflect: !0 })
80
+ ], r.prototype, "align", 2);
81
+ e([
82
+ s({ reflect: !0 })
83
+ ], r.prototype, "justify", 2);
84
+ r = e([
85
+ g("hx-grid")
86
+ ], r);
87
+ let i = class extends c {
88
+ updated(t) {
89
+ (t.has("column") || t.has("row") || t.has("span")) && this._applyHostGridStyles();
90
+ }
91
+ connectedCallback() {
92
+ super.connectedCallback(), this._applyHostGridStyles();
93
+ }
94
+ _applyHostGridStyles() {
95
+ 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 = "";
96
+ }
97
+ render() {
98
+ return d`<slot></slot>`;
99
+ }
100
+ };
101
+ i.styles = [y, v];
102
+ e([
103
+ s({ reflect: !0 })
104
+ ], i.prototype, "column", 2);
105
+ e([
106
+ s({ reflect: !0 })
107
+ ], i.prototype, "row", 2);
108
+ e([
109
+ s({ type: Number, reflect: !0 })
110
+ ], i.prototype, "span", 2);
111
+ i = e([
112
+ g("hx-grid-item")
113
+ ], i);
114
+ export {
115
+ r as H,
116
+ i as a
117
+ };
118
+ //# sourceMappingURL=hx-grid-Dgo7fnWu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hx-grid-Dgo7fnWu.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","import { LitElement, html } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { tokenStyles } from '@helixui/tokens/lit';\nimport { helixGridStyles, helixGridItemStyles } from './hx-grid.styles.js';\n\ntype GapSize = 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl';\ntype AlignValue = 'start' | 'center' | 'end' | 'stretch';\ntype JustifyValue = 'start' | 'center' | 'end' | 'stretch';\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 LitElement {\n static override styles = [tokenStyles, 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: GapSize = '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: GapSize | 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: GapSize | undefined;\n\n /**\n * Aligns grid items along the block axis (align-items).\n * @attr align\n */\n @property({ reflect: true })\n align: AlignValue = 'stretch';\n\n /**\n * Justifies grid items along the inline axis (justify-items).\n * @attr justify\n */\n @property({ reflect: true })\n justify: JustifyValue = 'stretch';\n\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 private _resolveGap(size: GapSize): string {\n return GAP_TOKENS[size] ?? GAP_TOKENS.md;\n }\n\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 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 private _baseStyle(): 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 ].join('; ');\n }\n\n override render() {\n return html`\n <div part=\"base\" role=\"presentation\" style=${this._baseStyle()}>\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 LitElement {\n static override styles = [tokenStyles, 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: Map<string, unknown>): void {\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 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","LitElement","cols","size","html","tokenStyles","__decorateClass","property","customElement","HelixGridItem","changed"],"mappings":";;;AAEO,MAAMA,IAAkBC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQlBC,IAAsBD;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,EAAW;AAAA,EAAnC,cAAA;AAAA,UAAA,GAAA,SAAA,GAQL,KAAA,UAA2B,GAO3B,KAAA,MAAe,MAqBf,KAAA,QAAoB,WAOpB,KAAA,UAAwB;AAAA,EAAA;AAAA,EAEhB,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,EAEQ,YAAYC,GAAuB;AACzC,WAAOJ,EAAWI,CAAI,KAAKJ,EAAW;AAAA,EACxC;AAAA,EAEQ,kBAA0B;AAChC,WAAI,KAAK,SACA,0BAA0B,KAAK,YAAY,KAAK,MAAM,CAAC,MAEzD,6CAA6C,KAAK,YAAY,KAAK,GAAG,CAAC;AAAA,EAChF;AAAA,EAEQ,qBAA6B;AACnC,WAAI,KAAK,YACA,6BAA6B,KAAK,YAAY,KAAK,SAAS,CAAC,MAE/D,gDAAgD,KAAK,YAAY,KAAK,GAAG,CAAC;AAAA,EACnF;AAAA,EAEQ,aAAqB;AAC3B,WAAO;AAAA,MACL;AAAA,MACA,0BAA0B,KAAK,qBAAA,CAAsB;AAAA,MACrD,YAAY,KAAK,gBAAA,CAAiB;AAAA,MAClC,eAAe,KAAK,mBAAA,CAAoB;AAAA,MACxC,gBAAgB,KAAK,KAAK;AAAA,MAC1B,kBAAkB,KAAK,OAAO;AAAA,IAAA,EAC9B,KAAK,IAAI;AAAA,EACb;AAAA,EAES,SAAS;AAChB,WAAOK;AAAA,mDACwC,KAAK,YAAY;AAAA;AAAA;AAAA;AAAA,EAIlE;AACF;AAzFaJ,EACK,SAAS,CAACK,GAAaT,CAAe;AAOtDU,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;AAuGN,IAAMS,IAAN,cAA4BR,EAAW;AAAA,EAwBnC,QAAQS,GAAqC;AACpD,KAAIA,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,EAEQ,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;AArDaK,EACK,SAAS,CAACJ,GAAaP,CAAmB;AAO1DQ,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;"}
@@ -0,0 +1,135 @@
1
+ import { css as p, html as n, LitElement as v, nothing as c } from "lit";
2
+ import { property as f, customElement as u } from "lit/decorators.js";
3
+ import { classMap as d } from "lit/directives/class-map.js";
4
+ import { ifDefined as h } from "lit/directives/if-defined.js";
5
+ import { t as m } from "./lit-Dpo7RLp4.js";
6
+ const g = p`
7
+ :host {
8
+ display: block;
9
+ }
10
+
11
+ .help-text {
12
+ display: inline-flex;
13
+ align-items: baseline;
14
+ gap: var(--hx-help-text-icon-gap, 0.375rem);
15
+ font-family: var(--hx-help-text-font-family, var(--hx-font-family-sans, sans-serif));
16
+ font-size: var(--hx-help-text-font-size, var(--hx-font-size-sm, 0.875rem));
17
+ font-weight: var(--hx-help-text-font-weight, var(--hx-font-weight-normal, 400));
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));
20
+ margin: 0;
21
+ }
22
+
23
+ .help-text__icon {
24
+ flex-shrink: 0;
25
+ display: inline-flex;
26
+ align-items: center;
27
+ }
28
+
29
+ .help-text__text {
30
+ min-width: 0;
31
+ }
32
+
33
+ /* ─── Variant: default ─── */
34
+
35
+ .help-text--default {
36
+ --hx-help-text-color: var(--hx-color-neutral-500, #6b7280);
37
+ }
38
+
39
+ /* ─── Variant: error ─── */
40
+
41
+ .help-text--error {
42
+ --hx-help-text-color: var(--hx-color-error-600, #dc2626);
43
+ }
44
+
45
+ /* ─── Variant: warning ─── */
46
+
47
+ .help-text--warning {
48
+ --hx-help-text-color: var(--hx-color-warning-700, #b45309);
49
+ }
50
+
51
+ /* ─── Variant: success ─── */
52
+
53
+ .help-text--success {
54
+ --hx-help-text-color: var(--hx-color-success-700, #15803d);
55
+ }
56
+ `;
57
+ var w = Object.defineProperty, y = Object.getOwnPropertyDescriptor, x = (l, e, o, r) => {
58
+ for (var t = r > 1 ? void 0 : r ? y(e, o) : e, s = l.length - 1, a; s >= 0; s--)
59
+ (a = l[s]) && (t = (r ? a(e, o, t) : a(t)) || t);
60
+ return r && t && w(e, o, t), t;
61
+ };
62
+ const k = n`<svg viewBox="0 0 16 16" aria-hidden="true" width="1em" height="1em">
63
+ <circle cx="8" cy="8" r="7" stroke="currentColor" stroke-width="1.5" fill="none" />
64
+ <line
65
+ x1="8"
66
+ y1="4.5"
67
+ x2="8"
68
+ y2="8.5"
69
+ stroke="currentColor"
70
+ stroke-width="1.5"
71
+ stroke-linecap="round"
72
+ />
73
+ <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">
75
+ <path
76
+ 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
+ stroke="currentColor"
78
+ stroke-width="1.25"
79
+ fill="none"
80
+ />
81
+ <line
82
+ x1="8"
83
+ y1="6"
84
+ x2="8"
85
+ y2="9"
86
+ stroke="currentColor"
87
+ stroke-width="1.25"
88
+ stroke-linecap="round"
89
+ />
90
+ <circle cx="8" cy="11" r="0.625" fill="currentColor" />
91
+ </svg>`, C = n`<svg viewBox="0 0 16 16" aria-hidden="true" width="1em" height="1em">
92
+ <circle cx="8" cy="8" r="7" stroke="currentColor" stroke-width="1.5" fill="none" />
93
+ <path
94
+ d="M5.25 8.25l1.75 1.75 3.75-3.75"
95
+ stroke="currentColor"
96
+ stroke-width="1.5"
97
+ stroke-linecap="round"
98
+ stroke-linejoin="round"
99
+ fill="none"
100
+ />
101
+ </svg>`, b = {
102
+ default: c,
103
+ error: k,
104
+ warning: _,
105
+ success: C
106
+ };
107
+ let i = class extends v {
108
+ constructor() {
109
+ super(...arguments), this.variant = "default";
110
+ }
111
+ render() {
112
+ const l = {
113
+ "help-text": !0,
114
+ [`help-text--${this.variant}`]: !0
115
+ }, e = b[this.variant], o = this.variant === "error" ? "alert" : void 0, r = this.variant === "warning" || this.variant === "success" ? "polite" : void 0;
116
+ return n`<span
117
+ part="base"
118
+ class=${d(l)}
119
+ role=${h(o)}
120
+ 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>
122
+ </span>`;
123
+ }
124
+ };
125
+ i.styles = [m, g];
126
+ x([
127
+ f({ type: String, reflect: !0 })
128
+ ], i.prototype, "variant", 2);
129
+ i = x([
130
+ u("hx-help-text")
131
+ ], i);
132
+ export {
133
+ i as H
134
+ };
135
+ //# sourceMappingURL=hx-help-text-C3WCP11-.js.map