@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,398 @@
1
+ import { css as u, LitElement as f, nothing as d, html as o } from "lit";
2
+ import { property as i, query as v, state as x, customElement as _ } from "lit/decorators.js";
3
+ import { classMap as g } from "lit/directives/class-map.js";
4
+ import { ifDefined as n } from "lit/directives/if-defined.js";
5
+ import { live as b } from "lit/directives/live.js";
6
+ import { t as m } from "./lit-Dpo7RLp4.js";
7
+ const y = u`
8
+ :host {
9
+ display: block;
10
+ }
11
+
12
+ :host([disabled]) {
13
+ opacity: var(--hx-opacity-disabled, 0.5);
14
+ pointer-events: none;
15
+ }
16
+
17
+ * {
18
+ box-sizing: border-box;
19
+ }
20
+
21
+ .field {
22
+ display: flex;
23
+ flex-direction: column;
24
+ gap: var(--hx-space-1, 0.25rem);
25
+ font-family: var(--hx-input-font-family, var(--hx-font-family-sans, sans-serif));
26
+ }
27
+
28
+ /* --- Label --- */
29
+
30
+ .field__label-wrapper {
31
+ display: contents;
32
+ }
33
+
34
+ .field__label {
35
+ display: flex;
36
+ align-items: baseline;
37
+ gap: var(--hx-space-1, 0.25rem);
38
+ font-size: var(--hx-font-size-sm, 0.875rem);
39
+ font-weight: var(--hx-font-weight-medium, 500);
40
+ color: var(--hx-input-label-color, var(--hx-color-neutral-700, #343a40));
41
+ line-height: var(--hx-line-height-normal, 1.5);
42
+ }
43
+
44
+ .field__required-marker {
45
+ color: var(--hx-input-error-color, var(--hx-color-error-text, #b91c1c));
46
+ font-weight: var(--hx-font-weight-bold, 700);
47
+ }
48
+
49
+ /* --- Textarea Wrapper --- */
50
+
51
+ .field__textarea-wrapper {
52
+ display: flex;
53
+ flex-direction: column;
54
+ border: var(--hx-border-width-thin, 1px) solid
55
+ var(--hx-input-border-color, var(--hx-color-neutral-300, #ced4da));
56
+ border-radius: var(--hx-input-border-radius, var(--hx-border-radius-md, 0.375rem));
57
+ background-color: var(--hx-input-bg, var(--hx-color-neutral-0, #ffffff));
58
+ transition:
59
+ border-color var(--hx-transition-fast, 150ms ease),
60
+ box-shadow var(--hx-transition-fast, 150ms ease);
61
+ overflow: hidden;
62
+ }
63
+
64
+ .field__textarea-wrapper:focus-within {
65
+ border-color: var(--hx-input-focus-ring-color, var(--hx-focus-ring-color, #2563eb));
66
+ box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
67
+ color-mix(
68
+ in srgb,
69
+ var(--hx-input-focus-ring-color, var(--hx-focus-ring-color, #2563eb))
70
+ calc(var(--hx-focus-ring-opacity, 0.25) * 100%),
71
+ transparent
72
+ );
73
+ }
74
+
75
+ /* --- Error State --- */
76
+
77
+ .field--error .field__textarea-wrapper {
78
+ border-color: var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));
79
+ }
80
+
81
+ .field--error .field__textarea-wrapper:focus-within {
82
+ border-color: var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));
83
+ box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
84
+ color-mix(
85
+ in srgb,
86
+ var(--hx-input-error-color, var(--hx-color-error-500, #dc3545))
87
+ calc(var(--hx-focus-ring-opacity, 0.25) * 100%),
88
+ transparent
89
+ );
90
+ }
91
+
92
+ /* --- Native Textarea --- */
93
+
94
+ .field__textarea {
95
+ border: none;
96
+ outline: none;
97
+ background: transparent;
98
+ padding: var(--hx-space-2, 0.5rem) var(--hx-space-3, 0.75rem);
99
+ font-family: inherit;
100
+ font-size: var(--hx-font-size-md, 1rem);
101
+ color: var(--hx-input-color, var(--hx-color-neutral-800, #212529));
102
+ line-height: var(--hx-line-height-normal, 1.5);
103
+ min-height: var(--hx-textarea-min-height, var(--hx-size-20, 5rem));
104
+ width: 100%;
105
+ resize: vertical;
106
+ }
107
+
108
+ .field__textarea::placeholder {
109
+ color: var(--hx-color-neutral-400, #adb5bd);
110
+ }
111
+
112
+ .field__textarea:disabled {
113
+ cursor: not-allowed;
114
+ }
115
+
116
+ /* --- Resize Variants --- */
117
+
118
+ :host([resize='none']) .field__textarea {
119
+ resize: none;
120
+ }
121
+
122
+ :host([resize='vertical']) .field__textarea {
123
+ resize: vertical;
124
+ }
125
+
126
+ :host([resize='both']) .field__textarea {
127
+ resize: both;
128
+ }
129
+
130
+ :host([resize='auto']) .field__textarea {
131
+ resize: none;
132
+ overflow: hidden;
133
+ }
134
+
135
+ /* --- Character Counter --- */
136
+
137
+ .field__counter {
138
+ font-size: var(--hx-font-size-xs, 0.75rem);
139
+ color: var(--hx-color-neutral-500, #6c757d);
140
+ line-height: var(--hx-line-height-normal, 1.5);
141
+ text-align: right;
142
+ }
143
+
144
+ /* --- Help Text & Error Messages --- */
145
+
146
+ .field__help-text {
147
+ font-size: var(--hx-font-size-xs, 0.75rem);
148
+ color: var(--hx-color-neutral-500, #6c757d);
149
+ line-height: var(--hx-line-height-normal, 1.5);
150
+ }
151
+
152
+ .field__error {
153
+ font-size: var(--hx-font-size-xs, 0.75rem);
154
+ color: var(--hx-input-error-color, var(--hx-color-error-text, #b91c1c));
155
+ line-height: var(--hx-line-height-normal, 1.5);
156
+ }
157
+ `;
158
+ var $ = Object.defineProperty, w = Object.getOwnPropertyDescriptor, a = (e, t, l, h) => {
159
+ for (var s = h > 1 ? void 0 : h ? w(t, l) : t, p = e.length - 1, c; p >= 0; p--)
160
+ (c = e[p]) && (s = (h ? c(t, l, s) : c(s)) || s);
161
+ return h && s && $(t, l, s), s;
162
+ };
163
+ let S = 0, r = class extends f {
164
+ constructor() {
165
+ super(), this.label = "", this.placeholder = "", this.value = "", this.required = !1, this.disabled = !1, this.error = "", this.helpText = "", this.name = "", this.rows = 4, this.resize = "vertical", this.showCount = !1, this.ariaLabel = null, this._hasLabelSlot = !1, this._hasErrorSlot = !1, this._hasHelpTextSlot = !1, this._textareaId = `hx-textarea-${++S}`, this._helpTextId = `${this._textareaId}-help`, this._errorId = `${this._textareaId}-error`, this._counterId = `${this._textareaId}-counter`, this._internals = this.attachInternals();
166
+ }
167
+ /** @internal */
168
+ _handleLabelSlotChange(e) {
169
+ const t = e.target;
170
+ if (this._hasLabelSlot = t.assignedElements().length > 0, this._hasLabelSlot) {
171
+ const l = t.assignedElements()[0];
172
+ l && !l.id && (l.id = `${this._textareaId}-slotted-label`);
173
+ }
174
+ }
175
+ /** @internal */
176
+ _handleErrorSlotChange(e) {
177
+ const t = e.target;
178
+ this._hasErrorSlot = t.assignedElements().length > 0;
179
+ }
180
+ /** @internal */
181
+ _handleHelpTextSlotChange(e) {
182
+ const t = e.target;
183
+ this._hasHelpTextSlot = t.assignedElements().length > 0;
184
+ }
185
+ // ─── Lifecycle ───
186
+ updated(e) {
187
+ super.updated(e), e.has("value") && this._internals.setFormValue(this.value), (e.has("value") || e.has("required") || e.has("maxlength")) && this._updateValidity();
188
+ }
189
+ // ─── Form Integration ───
190
+ /** Returns the associated form element, if any. */
191
+ get form() {
192
+ return this._internals.form;
193
+ }
194
+ /** Returns the validation message. */
195
+ get validationMessage() {
196
+ return this._internals.validationMessage;
197
+ }
198
+ /** Returns the ValidityState object. */
199
+ get validity() {
200
+ return this._internals.validity;
201
+ }
202
+ /** Checks whether the textarea satisfies its constraints. */
203
+ checkValidity() {
204
+ return this._internals.checkValidity();
205
+ }
206
+ /** Reports validity and shows the browser's constraint validation UI. */
207
+ reportValidity() {
208
+ return this._internals.reportValidity();
209
+ }
210
+ /** @internal */
211
+ _updateValidity() {
212
+ const e = this._textarea ?? void 0;
213
+ this.required && !this.value ? this._internals.setValidity(
214
+ { valueMissing: !0 },
215
+ this.error || "This field is required.",
216
+ e
217
+ ) : this.maxlength !== void 0 && this.value.length > this.maxlength ? this._internals.setValidity(
218
+ { tooLong: !0 },
219
+ this.error || `Value must be ${this.maxlength} characters or fewer.`,
220
+ e
221
+ ) : this._internals.setValidity({});
222
+ }
223
+ /** Called by the browser when the owning form is reset. */
224
+ formResetCallback() {
225
+ this.value = "", this._internals.setFormValue("");
226
+ }
227
+ /** Called by the browser to restore form state (e.g., back/forward navigation). */
228
+ formStateRestoreCallback(e) {
229
+ this.value = e;
230
+ }
231
+ // ─── Event Handling ───
232
+ /** @internal */
233
+ _handleInput(e) {
234
+ const t = e.target;
235
+ this.value = t.value, this.resize === "auto" && (t.style.height = "auto", t.style.height = `${t.scrollHeight}px`), this.dispatchEvent(
236
+ new CustomEvent("hx-input", {
237
+ bubbles: !0,
238
+ composed: !0,
239
+ detail: { value: this.value }
240
+ })
241
+ );
242
+ }
243
+ /** @internal */
244
+ _handleChange(e) {
245
+ const t = e.target;
246
+ this.value = t.value, this._internals.setFormValue(this.value), this._updateValidity(), this.dispatchEvent(
247
+ new CustomEvent("hx-change", {
248
+ bubbles: !0,
249
+ composed: !0,
250
+ detail: { value: this.value }
251
+ })
252
+ );
253
+ }
254
+ // ─── Public Methods ───
255
+ /** Moves focus to the textarea element. */
256
+ focus(e) {
257
+ var t;
258
+ (t = this._textarea) == null || t.focus(e);
259
+ }
260
+ /** Selects all text in the textarea. */
261
+ select() {
262
+ var e;
263
+ (e = this._textarea) == null || e.select();
264
+ }
265
+ /** @internal */
266
+ _renderCounter() {
267
+ if (!this.showCount) return d;
268
+ const e = this.value.length, t = this.maxlength !== void 0 ? `${e} / ${this.maxlength}` : `${e}`;
269
+ return o`
270
+ <div part="counter" class="field__counter" id=${this._counterId} aria-live="polite">
271
+ ${t}
272
+ </div>
273
+ `;
274
+ }
275
+ render() {
276
+ const e = !!this.error || this._hasErrorSlot, t = {
277
+ field: !0,
278
+ "field--error": e,
279
+ "field--disabled": this.disabled,
280
+ "field--required": this.required
281
+ }, l = (!!this.helpText || this._hasHelpTextSlot) && !e, h = [
282
+ e ? this._errorId : null,
283
+ l ? this._helpTextId : null,
284
+ this.showCount ? this._counterId : null
285
+ ].filter(Boolean).join(" ") || void 0;
286
+ return o`
287
+ <div part="field" class=${g(t)}>
288
+ <div class="field__label-wrapper">
289
+ <slot name="label" @slotchange=${this._handleLabelSlotChange}>
290
+ ${this.label ? o`
291
+ <label part="label" class="field__label" for=${this._textareaId}>
292
+ ${this.label}
293
+ ${this.required ? o`<span class="field__required-marker" aria-hidden="true">*</span>` : d}
294
+ </label>
295
+ ` : d}
296
+ </slot>
297
+ </div>
298
+
299
+ <div part="textarea-wrapper" class="field__textarea-wrapper">
300
+ <textarea
301
+ part="textarea"
302
+ class="field__textarea"
303
+ id=${this._textareaId}
304
+ .value=${b(this.value)}
305
+ placeholder=${n(this.placeholder || void 0)}
306
+ ?required=${this.required}
307
+ ?disabled=${this.disabled}
308
+ rows=${this.rows}
309
+ maxlength=${n(this.maxlength)}
310
+ name=${n(this.name || void 0)}
311
+ aria-label=${n(this.ariaLabel ?? void 0)}
312
+ aria-labelledby=${n(
313
+ this._hasLabelSlot ? `${this._textareaId}-slotted-label` : void 0
314
+ )}
315
+ aria-invalid=${e ? "true" : d}
316
+ aria-describedby=${n(h)}
317
+ @input=${this._handleInput}
318
+ @change=${this._handleChange}
319
+ ></textarea>
320
+ </div>
321
+
322
+ ${this._renderCounter()}
323
+ ${e ? o`
324
+ <div part="error" class="field__error" id=${this._errorId} role="alert">
325
+ <slot name="error" @slotchange=${this._handleErrorSlotChange}> ${this.error} </slot>
326
+ </div>
327
+ ` : o`<slot name="error" @slotchange=${this._handleErrorSlotChange}></slot>`}
328
+ ${l ? o`
329
+ <div part="help-text" class="field__help-text" id=${this._helpTextId}>
330
+ <slot name="help-text" @slotchange=${this._handleHelpTextSlotChange}>
331
+ ${this.helpText}
332
+ </slot>
333
+ </div>
334
+ ` : o`<slot name="help-text" @slotchange=${this._handleHelpTextSlotChange}></slot>`}
335
+ </div>
336
+ `;
337
+ }
338
+ };
339
+ r.styles = [m, y];
340
+ r.formAssociated = !0;
341
+ a([
342
+ i({ type: String })
343
+ ], r.prototype, "label", 2);
344
+ a([
345
+ i({ type: String })
346
+ ], r.prototype, "placeholder", 2);
347
+ a([
348
+ i({ type: String })
349
+ ], r.prototype, "value", 2);
350
+ a([
351
+ i({ type: Boolean, reflect: !0 })
352
+ ], r.prototype, "required", 2);
353
+ a([
354
+ i({ type: Boolean, reflect: !0 })
355
+ ], r.prototype, "disabled", 2);
356
+ a([
357
+ i({ type: String })
358
+ ], r.prototype, "error", 2);
359
+ a([
360
+ i({ type: String, attribute: "help-text" })
361
+ ], r.prototype, "helpText", 2);
362
+ a([
363
+ i({ type: String })
364
+ ], r.prototype, "name", 2);
365
+ a([
366
+ i({ type: Number })
367
+ ], r.prototype, "rows", 2);
368
+ a([
369
+ i({ type: Number, attribute: "maxlength" })
370
+ ], r.prototype, "maxlength", 2);
371
+ a([
372
+ i({ type: String, reflect: !0 })
373
+ ], r.prototype, "resize", 2);
374
+ a([
375
+ i({ type: Boolean, attribute: "show-count" })
376
+ ], r.prototype, "showCount", 2);
377
+ a([
378
+ i({ type: String, attribute: "aria-label" })
379
+ ], r.prototype, "ariaLabel", 2);
380
+ a([
381
+ v(".field__textarea")
382
+ ], r.prototype, "_textarea", 2);
383
+ a([
384
+ x()
385
+ ], r.prototype, "_hasLabelSlot", 2);
386
+ a([
387
+ x()
388
+ ], r.prototype, "_hasErrorSlot", 2);
389
+ a([
390
+ x()
391
+ ], r.prototype, "_hasHelpTextSlot", 2);
392
+ r = a([
393
+ _("hx-textarea")
394
+ ], r);
395
+ export {
396
+ r as H
397
+ };
398
+ //# sourceMappingURL=hx-textarea-BX8nCfDJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hx-textarea-BX8nCfDJ.js","sources":["../../src/components/hx-textarea/hx-textarea.styles.ts","../../src/components/hx-textarea/hx-textarea.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixTextareaStyles = css`\n :host {\n display: block;\n }\n\n :host([disabled]) {\n opacity: var(--hx-opacity-disabled, 0.5);\n pointer-events: none;\n }\n\n * {\n box-sizing: border-box;\n }\n\n .field {\n display: flex;\n flex-direction: column;\n gap: var(--hx-space-1, 0.25rem);\n font-family: var(--hx-input-font-family, var(--hx-font-family-sans, sans-serif));\n }\n\n /* --- Label --- */\n\n .field__label-wrapper {\n display: contents;\n }\n\n .field__label {\n display: flex;\n align-items: baseline;\n gap: var(--hx-space-1, 0.25rem);\n font-size: var(--hx-font-size-sm, 0.875rem);\n font-weight: var(--hx-font-weight-medium, 500);\n color: var(--hx-input-label-color, var(--hx-color-neutral-700, #343a40));\n line-height: var(--hx-line-height-normal, 1.5);\n }\n\n .field__required-marker {\n color: var(--hx-input-error-color, var(--hx-color-error-text, #b91c1c));\n font-weight: var(--hx-font-weight-bold, 700);\n }\n\n /* --- Textarea Wrapper --- */\n\n .field__textarea-wrapper {\n display: flex;\n flex-direction: column;\n border: var(--hx-border-width-thin, 1px) solid\n var(--hx-input-border-color, var(--hx-color-neutral-300, #ced4da));\n border-radius: var(--hx-input-border-radius, var(--hx-border-radius-md, 0.375rem));\n background-color: var(--hx-input-bg, var(--hx-color-neutral-0, #ffffff));\n transition:\n border-color var(--hx-transition-fast, 150ms ease),\n box-shadow var(--hx-transition-fast, 150ms ease);\n overflow: hidden;\n }\n\n .field__textarea-wrapper:focus-within {\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 /* --- Error State --- */\n\n .field--error .field__textarea-wrapper {\n border-color: var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));\n }\n\n .field--error .field__textarea-wrapper:focus-within {\n border-color: var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));\n box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)\n color-mix(\n in srgb,\n var(--hx-input-error-color, var(--hx-color-error-500, #dc3545))\n calc(var(--hx-focus-ring-opacity, 0.25) * 100%),\n transparent\n );\n }\n\n /* --- Native Textarea --- */\n\n .field__textarea {\n border: none;\n outline: none;\n background: transparent;\n padding: var(--hx-space-2, 0.5rem) var(--hx-space-3, 0.75rem);\n font-family: inherit;\n font-size: var(--hx-font-size-md, 1rem);\n color: var(--hx-input-color, var(--hx-color-neutral-800, #212529));\n line-height: var(--hx-line-height-normal, 1.5);\n min-height: var(--hx-textarea-min-height, var(--hx-size-20, 5rem));\n width: 100%;\n resize: vertical;\n }\n\n .field__textarea::placeholder {\n color: var(--hx-color-neutral-400, #adb5bd);\n }\n\n .field__textarea:disabled {\n cursor: not-allowed;\n }\n\n /* --- Resize Variants --- */\n\n :host([resize='none']) .field__textarea {\n resize: none;\n }\n\n :host([resize='vertical']) .field__textarea {\n resize: vertical;\n }\n\n :host([resize='both']) .field__textarea {\n resize: both;\n }\n\n :host([resize='auto']) .field__textarea {\n resize: none;\n overflow: hidden;\n }\n\n /* --- Character Counter --- */\n\n .field__counter {\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 text-align: right;\n }\n\n /* --- Help Text & Error Messages --- */\n\n .field__help-text {\n font-size: var(--hx-font-size-xs, 0.75rem);\n color: var(--hx-color-neutral-500, #6c757d);\n line-height: var(--hx-line-height-normal, 1.5);\n }\n\n .field__error {\n font-size: var(--hx-font-size-xs, 0.75rem);\n color: var(--hx-input-error-color, var(--hx-color-error-text, #b91c1c));\n line-height: var(--hx-line-height-normal, 1.5);\n }\n`;\n","import { LitElement, html, nothing } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\nimport { tokenStyles } from '@helixui/tokens/lit';\nimport { helixTextareaStyles } from './hx-textarea.styles.js';\n\n// Module-level counter for stable, SSR-safe IDs (avoids Math.random() hydration mismatch)\nlet _hxTextareaIdCounter = 0;\n\n/**\n * A multi-line text area component with label, validation, and form association.\n *\n * Uses `aria-invalid` to convey error state and `aria-describedby` to link\n * error/help text to the textarea. Label association is handled through\n * `aria-labelledby` (for slotted labels) or the standard `<label for>` pattern.\n * Supports `aria-label` for cases where a visible label is not present.\n * Validation errors are announced via `role=\"alert\"` (assertive live region).\n *\n * @summary Form-associated textarea with built-in label, error, help text, character counter, and auto-resize.\n *\n * @tag hx-textarea\n *\n * @slot label - Custom label content (overrides the label property). Use for Drupal Form API rendered labels.\n * @slot help-text - Custom help text content (overrides the helpText property).\n * @slot error - Custom error content (overrides the error property). Use for Drupal Form API rendered errors.\n *\n * @fires {CustomEvent<{value: string}>} hx-input - Dispatched on every keystroke as the user types.\n * @fires {CustomEvent<{value: string}>} hx-change - Dispatched when the textarea loses focus after its value changed.\n *\n * @csspart field - The outer field container.\n * @csspart label - The label element.\n * @csspart textarea-wrapper - The wrapper around the textarea.\n * @csspart textarea - The native textarea element.\n * @csspart counter - The character count display.\n * @csspart help-text - The help text container.\n * @csspart error - The error message container.\n *\n * @cssprop [--hx-input-bg=var(--hx-color-neutral-0)] - Input background color.\n * @cssprop [--hx-input-color=var(--hx-color-neutral-800)] - Input text color.\n * @cssprop [--hx-input-border-color=var(--hx-color-neutral-300)] - Input border color.\n * @cssprop [--hx-input-border-radius=var(--hx-border-radius-md)] - Input border radius.\n * @cssprop [--hx-input-font-family=var(--hx-font-family-sans)] - Input font family.\n * @cssprop [--hx-input-focus-ring-color=var(--hx-focus-ring-color)] - Focus ring color.\n * @cssprop [--hx-input-error-color=var(--hx-color-error-500)] - Error state color.\n * @cssprop [--hx-input-label-color=var(--hx-color-neutral-700)] - Label text color.\n * @cssprop [--hx-textarea-min-height=var(--hx-size-20, 5rem)] - Minimum textarea height.\n */\n@customElement('hx-textarea')\nexport class HelixTextarea extends LitElement {\n static override styles = [tokenStyles, helixTextareaStyles];\n\n // ─── Form Association ───\n\n /** Enables the element to participate in form submission and validation. */\n static formAssociated = true;\n\n /** ElementInternals instance for form association, validation, and ARIA. */\n private _internals: ElementInternals;\n\n constructor() {\n super();\n this._internals = this.attachInternals();\n }\n\n // ─── Properties ───\n\n /**\n * The visible label text for the textarea.\n * @attr label\n */\n @property({ type: String })\n label = '';\n\n /**\n * Placeholder text shown when the textarea is empty.\n * @attr placeholder\n */\n @property({ type: String })\n placeholder = '';\n\n /**\n * The current value of the textarea.\n * @attr value\n */\n @property({ type: String })\n value = '';\n\n /**\n * Whether the textarea is required for form submission.\n * @attr required\n */\n @property({ type: Boolean, reflect: true })\n required = false;\n\n /**\n * Whether the textarea is disabled.\n * @attr disabled\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Error message to display. When set, the textarea enters an error state.\n * @attr error\n */\n @property({ type: String })\n error = '';\n\n /**\n * Help text displayed below the textarea for guidance.\n * @attr help-text\n */\n @property({ type: String, attribute: 'help-text' })\n helpText = '';\n\n /**\n * The name of the textarea, used for form submission.\n * @attr name\n */\n @property({ type: String })\n name = '';\n\n /**\n * The number of visible text rows.\n * @attr rows\n */\n @property({ type: Number })\n rows = 4;\n\n /**\n * Maximum number of characters allowed.\n * @attr maxlength\n */\n @property({ type: Number, attribute: 'maxlength' })\n maxlength: number | undefined;\n\n /**\n * Controls how the textarea can be resized. Use 'auto' for auto-grow behavior.\n * @attr resize\n */\n @property({ type: String, reflect: true })\n resize: 'none' | 'vertical' | 'both' | 'auto' = 'vertical';\n\n /**\n * Whether to show a character count below the textarea.\n * @attr show-count\n */\n @property({ type: Boolean, attribute: 'show-count' })\n showCount = false;\n\n /**\n * Accessible name for screen readers, if different from the visible label.\n * @attr aria-label\n */\n @property({ type: String, attribute: 'aria-label' })\n override ariaLabel: string | null = null;\n\n // ─── Internal References ───\n\n /** @internal */\n @query('.field__textarea')\n private _textarea!: HTMLTextAreaElement | undefined;\n\n // ─── Slot Tracking ───\n\n /** @internal */\n @state() private _hasLabelSlot = false;\n /** @internal */\n @state() private _hasErrorSlot = false;\n /** @internal */\n @state() private _hasHelpTextSlot = false;\n\n /** @internal */\n private _handleLabelSlotChange(e: Event): void {\n const slot = e.target as HTMLSlotElement;\n this._hasLabelSlot = slot.assignedElements().length > 0;\n if (this._hasLabelSlot) {\n const slottedLabel = slot.assignedElements()[0];\n if (slottedLabel && !slottedLabel.id) {\n slottedLabel.id = `${this._textareaId}-slotted-label`;\n }\n }\n }\n\n /** @internal */\n private _handleErrorSlotChange(e: Event): void {\n const slot = e.target as HTMLSlotElement;\n this._hasErrorSlot = slot.assignedElements().length > 0;\n }\n\n /** @internal */\n private _handleHelpTextSlotChange(e: Event): void {\n const slot = e.target as HTMLSlotElement;\n this._hasHelpTextSlot = slot.assignedElements().length > 0;\n }\n\n // ─── Lifecycle ───\n\n override updated(changedProperties: Map<string, unknown>): void {\n super.updated(changedProperties);\n if (changedProperties.has('value')) {\n this._internals.setFormValue(this.value);\n }\n if (\n changedProperties.has('value') ||\n changedProperties.has('required') ||\n changedProperties.has('maxlength')\n ) {\n this._updateValidity();\n }\n }\n\n // ─── Form Integration ───\n\n /** Returns the associated form element, if any. */\n get form(): HTMLFormElement | null {\n return this._internals.form;\n }\n\n /** Returns the validation message. */\n get validationMessage(): string {\n return this._internals.validationMessage;\n }\n\n /** Returns the ValidityState object. */\n get validity(): ValidityState {\n return this._internals.validity;\n }\n\n /** Checks whether the textarea satisfies its constraints. */\n checkValidity(): boolean {\n return this._internals.checkValidity();\n }\n\n /** Reports validity and shows the browser's constraint validation UI. */\n reportValidity(): boolean {\n return this._internals.reportValidity();\n }\n\n /** @internal */\n private _updateValidity(): void {\n const anchor = this._textarea ?? undefined;\n if (this.required && !this.value) {\n this._internals.setValidity(\n { valueMissing: true },\n this.error || 'This field is required.',\n anchor,\n );\n } else if (this.maxlength !== undefined && this.value.length > this.maxlength) {\n this._internals.setValidity(\n { tooLong: true },\n this.error || `Value must be ${this.maxlength} characters or fewer.`,\n anchor,\n );\n } else {\n this._internals.setValidity({});\n }\n }\n\n /** Called by the browser when the owning form is reset. */\n formResetCallback(): void {\n this.value = '';\n this._internals.setFormValue('');\n }\n\n /** Called by the browser to restore form state (e.g., back/forward navigation). */\n formStateRestoreCallback(state: string): void {\n this.value = state;\n }\n\n // ─── Event Handling ───\n\n /** @internal */\n private _handleInput(e: Event): void {\n const target = e.target as HTMLTextAreaElement;\n this.value = target.value;\n\n // Auto-grow: reset height then set to scrollHeight\n if (this.resize === 'auto') {\n target.style.height = 'auto';\n target.style.height = `${target.scrollHeight}px`;\n }\n\n /**\n * Dispatched on every keystroke as the user types.\n * @event hx-input\n */\n this.dispatchEvent(\n new CustomEvent('hx-input', {\n bubbles: true,\n composed: true,\n detail: { value: this.value },\n }),\n );\n }\n\n /** @internal */\n private _handleChange(e: Event): void {\n const target = e.target as HTMLTextAreaElement;\n this.value = target.value;\n this._internals.setFormValue(this.value);\n this._updateValidity();\n\n /**\n * Dispatched when the textarea loses focus after its value changed.\n * @event hx-change\n */\n this.dispatchEvent(\n new CustomEvent('hx-change', {\n bubbles: true,\n composed: true,\n detail: { value: this.value },\n }),\n );\n }\n\n // ─── Public Methods ───\n\n /** Moves focus to the textarea element. */\n override focus(options?: FocusOptions): void {\n this._textarea?.focus(options);\n }\n\n /** Selects all text in the textarea. */\n select(): void {\n this._textarea?.select();\n }\n\n // ─── Render ───\n\n /** @internal */\n private _textareaId = `hx-textarea-${++_hxTextareaIdCounter}`;\n /** @internal */\n private _helpTextId = `${this._textareaId}-help`;\n /** @internal */\n private _errorId = `${this._textareaId}-error`;\n /** @internal */\n private _counterId = `${this._textareaId}-counter`;\n\n /** @internal */\n private _renderCounter() {\n if (!this.showCount) return nothing;\n\n const count = this.value.length;\n const display = this.maxlength !== undefined ? `${count} / ${this.maxlength}` : `${count}`;\n\n return html`\n <div part=\"counter\" class=\"field__counter\" id=${this._counterId} aria-live=\"polite\">\n ${display}\n </div>\n `;\n }\n\n override render() {\n const hasError = !!this.error || this._hasErrorSlot;\n\n const fieldClasses = {\n field: true,\n 'field--error': hasError,\n 'field--disabled': this.disabled,\n 'field--required': this.required,\n };\n\n const hasHelpText = (!!this.helpText || this._hasHelpTextSlot) && !hasError;\n const describedBy =\n [\n hasError ? this._errorId : null,\n hasHelpText ? this._helpTextId : null,\n this.showCount ? this._counterId : null,\n ]\n .filter(Boolean)\n .join(' ') || undefined;\n\n return html`\n <div part=\"field\" class=${classMap(fieldClasses)}>\n <div class=\"field__label-wrapper\">\n <slot name=\"label\" @slotchange=${this._handleLabelSlotChange}>\n ${this.label\n ? html`\n <label part=\"label\" class=\"field__label\" for=${this._textareaId}>\n ${this.label}\n ${this.required\n ? html`<span class=\"field__required-marker\" aria-hidden=\"true\">*</span>`\n : nothing}\n </label>\n `\n : nothing}\n </slot>\n </div>\n\n <div part=\"textarea-wrapper\" class=\"field__textarea-wrapper\">\n <textarea\n part=\"textarea\"\n class=\"field__textarea\"\n id=${this._textareaId}\n .value=${live(this.value)}\n placeholder=${ifDefined(this.placeholder || undefined)}\n ?required=${this.required}\n ?disabled=${this.disabled}\n rows=${this.rows}\n maxlength=${ifDefined(this.maxlength)}\n name=${ifDefined(this.name || undefined)}\n aria-label=${ifDefined(this.ariaLabel ?? undefined)}\n aria-labelledby=${ifDefined(\n this._hasLabelSlot ? `${this._textareaId}-slotted-label` : undefined,\n )}\n aria-invalid=${hasError ? 'true' : nothing}\n aria-describedby=${ifDefined(describedBy)}\n @input=${this._handleInput}\n @change=${this._handleChange}\n ></textarea>\n </div>\n\n ${this._renderCounter()}\n ${hasError\n ? html`\n <div part=\"error\" class=\"field__error\" id=${this._errorId} role=\"alert\">\n <slot name=\"error\" @slotchange=${this._handleErrorSlotChange}> ${this.error} </slot>\n </div>\n `\n : html`<slot name=\"error\" @slotchange=${this._handleErrorSlotChange}></slot>`}\n ${hasHelpText\n ? html`\n <div part=\"help-text\" class=\"field__help-text\" id=${this._helpTextId}>\n <slot name=\"help-text\" @slotchange=${this._handleHelpTextSlotChange}>\n ${this.helpText}\n </slot>\n </div>\n `\n : html`<slot name=\"help-text\" @slotchange=${this._handleHelpTextSlotChange}></slot>`}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-textarea': HelixTextarea;\n }\n}\n\nexport type WcTextarea = HelixTextarea;\n"],"names":["helixTextareaStyles","css","_hxTextareaIdCounter","HelixTextarea","LitElement","slot","slottedLabel","changedProperties","anchor","state","target","options","_a","nothing","count","display","html","hasError","fieldClasses","hasHelpText","describedBy","classMap","live","ifDefined","tokenStyles","__decorateClass","property","query","customElement"],"mappings":"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"}
@@ -0,0 +1,176 @@
1
+ import { css as p, LitElement as m, html as u } from "lit";
2
+ import { property as c, customElement as x } from "lit/decorators.js";
3
+ import { t as f, d as F } from "./index-nHBAh0Cr.js";
4
+ const y = p`
5
+ :host {
6
+ display: contents;
7
+ }
8
+
9
+ /* display: contents makes this wrapper layout-invisible; exposed as [part="base"]
10
+ for consumer targeting via CSS parts without affecting layout */
11
+ .theme-base {
12
+ display: contents;
13
+ }
14
+
15
+ /* Visually hidden but accessible to screen readers — used for aria-live announcements */
16
+ .visually-hidden {
17
+ position: absolute;
18
+ width: 1px;
19
+ height: 1px;
20
+ padding: 0;
21
+ margin: -1px;
22
+ overflow: hidden;
23
+ clip: rect(0, 0, 0, 0);
24
+ white-space: nowrap;
25
+ border: 0;
26
+ }
27
+ `;
28
+ var _ = Object.defineProperty, g = Object.getOwnPropertyDescriptor, l = (e, s, o, r) => {
29
+ for (var t = r > 1 ? void 0 : r ? g(s, o) : s, i = e.length - 1, a; i >= 0; i--)
30
+ (a = e[i]) && (t = (r ? a(s, o, t) : a(t)) || t);
31
+ return r && t && _(s, o, t), t;
32
+ };
33
+ const v = [
34
+ ["--hx-color-text-primary", "#FFFFFF"],
35
+ ["--hx-color-text-secondary", "#FFFFFF"],
36
+ ["--hx-color-text-muted", "#E0E0E0"],
37
+ ["--hx-color-text-disabled", "#767676"],
38
+ ["--hx-color-text-inverse", "#000000"],
39
+ ["--hx-color-text-link", "#FFFF00"],
40
+ ["--hx-color-text-link-hover", "#FFFF99"],
41
+ ["--hx-color-text-link-visited", "#FF80FF"],
42
+ ["--hx-color-text-link-active", "#FFFFFF"],
43
+ ["--hx-color-surface-default", "#000000"],
44
+ ["--hx-color-surface-raised", "#1A1A1A"],
45
+ ["--hx-color-surface-sunken", "#000000"],
46
+ ["--hx-color-surface-overlay", "rgba(0, 0, 0, 0.95)"],
47
+ ["--hx-color-border-default", "#FFFFFF"],
48
+ ["--hx-color-border-subtle", "#C0C0C0"],
49
+ ["--hx-color-border-strong", "#FFFFFF"],
50
+ ["--hx-color-border-focus", "#FFFF00"],
51
+ ["--hx-color-focus-ring", "#FFFF00"],
52
+ ["--hx-color-selection-bg", "#1AEBFF"],
53
+ ["--hx-color-selection-color", "#000000"],
54
+ ["--hx-body-bg", "#000000"],
55
+ ["--hx-body-color", "#FFFFFF"],
56
+ ["--hx-shadow-sm", "0 1px 2px 0 rgb(255 255 255 / 0.2)"],
57
+ [
58
+ "--hx-shadow-md",
59
+ "0 4px 6px -1px rgb(255 255 255 / 0.3), 0 2px 4px -2px rgb(255 255 255 / 0.2)"
60
+ ],
61
+ [
62
+ "--hx-shadow-lg",
63
+ "0 10px 15px -3px rgb(255 255 255 / 0.3), 0 4px 6px -4px rgb(255 255 255 / 0.2)"
64
+ ],
65
+ [
66
+ "--hx-shadow-xl",
67
+ "0 20px 25px -5px rgb(255 255 255 / 0.3), 0 8px 10px -6px rgb(255 255 255 / 0.2)"
68
+ ],
69
+ ["--hx-shadow-2xl", "0 25px 50px -12px rgb(255 255 255 / 0.4)"]
70
+ ];
71
+ function n(e) {
72
+ return Array.from(e).map(([s, o]) => ` ${s}: ${o};`).join(`
73
+ `);
74
+ }
75
+ const d = /* @__PURE__ */ new Map();
76
+ function b(e) {
77
+ const s = d.get(e);
78
+ if (s) return s;
79
+ const o = new Map(f.map((t) => [t.name, t.value]));
80
+ let r;
81
+ if (e === "dark") {
82
+ const t = new Map(o);
83
+ for (const i of F)
84
+ t.set(i.name, i.value);
85
+ r = `:host {
86
+ ${n(t)}
87
+ color-scheme: dark;
88
+ }`;
89
+ } else if (e === "high-contrast") {
90
+ const t = new Map(o);
91
+ for (const [i, a] of v)
92
+ t.set(i, a);
93
+ r = `:host {
94
+ ${n(t)}
95
+ color-scheme: dark;
96
+ }`;
97
+ } else
98
+ r = `:host {
99
+ ${n(o)}
100
+ color-scheme: light;
101
+ }`;
102
+ return d.set(e, r), r;
103
+ }
104
+ let h = class extends m {
105
+ constructor() {
106
+ super(...arguments), this.theme = "light", this.system = !1, this._mediaQuery = null, this._mediaHandler = null, this._themeSheet = null;
107
+ }
108
+ firstUpdated(e) {
109
+ super.firstUpdated(e), this._initThemeSheet(), (this.system || this.theme === "auto") && this._attachMediaQuery();
110
+ }
111
+ updated(e) {
112
+ super.updated(e);
113
+ const s = this.system || this.theme === "auto";
114
+ (e.has("system") || e.has("theme")) && (s ? this._attachMediaQuery() : this._detachMediaQuery(), this._applyEffectiveTheme());
115
+ }
116
+ disconnectedCallback() {
117
+ super.disconnectedCallback(), this._detachMediaQuery();
118
+ }
119
+ /**
120
+ * Returns the currently active theme name.
121
+ * When `system=true` or `theme="auto"`, reflects the OS preference (`"light"` or `"dark"`).
122
+ * Otherwise returns the `theme` property value.
123
+ */
124
+ get effectiveTheme() {
125
+ return this.system || this.theme === "auto" ? typeof window > "u" ? "light" : window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light" : this.theme;
126
+ }
127
+ /** @internal */
128
+ _initThemeSheet() {
129
+ this.shadowRoot && (this._themeSheet = new CSSStyleSheet(), this.shadowRoot.adoptedStyleSheets = [
130
+ ...this.shadowRoot.adoptedStyleSheets,
131
+ this._themeSheet
132
+ ], this._applyEffectiveTheme());
133
+ }
134
+ /** @internal */
135
+ _attachMediaQuery() {
136
+ this._mediaQuery || typeof window > "u" || (this._mediaQuery = window.matchMedia("(prefers-color-scheme: dark)"), this._mediaHandler = () => {
137
+ this._applyEffectiveTheme(), this._announceThemeChange();
138
+ }, this._mediaQuery.addEventListener("change", this._mediaHandler));
139
+ }
140
+ /** @internal */
141
+ _detachMediaQuery() {
142
+ this._mediaQuery && this._mediaHandler && this._mediaQuery.removeEventListener("change", this._mediaHandler), this._mediaQuery = null, this._mediaHandler = null;
143
+ }
144
+ /** @internal — notifies AT users when system theme changes programmatically */
145
+ _announceThemeChange() {
146
+ var s;
147
+ const e = (s = this.shadowRoot) == null ? void 0 : s.querySelector('[role="status"]');
148
+ e && (e.textContent = `Theme changed to ${this.effectiveTheme}`);
149
+ }
150
+ /** @internal */
151
+ _applyEffectiveTheme() {
152
+ this._themeSheet && this._themeSheet.replace(b(this.effectiveTheme));
153
+ }
154
+ render() {
155
+ return u`
156
+ <div part="base" class="theme-base">
157
+ <slot></slot>
158
+ </div>
159
+ <span role="status" aria-live="polite" aria-atomic="true" class="visually-hidden"></span>
160
+ `;
161
+ }
162
+ };
163
+ h.styles = [y];
164
+ l([
165
+ c({ type: String, reflect: !0 })
166
+ ], h.prototype, "theme", 2);
167
+ l([
168
+ c({ type: Boolean, reflect: !0 })
169
+ ], h.prototype, "system", 2);
170
+ h = l([
171
+ x("hx-theme")
172
+ ], h);
173
+ export {
174
+ h as H
175
+ };
176
+ //# sourceMappingURL=hx-theme-Dc0nKH7V.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hx-theme-Dc0nKH7V.js","sources":["../../src/components/hx-theme/hx-theme.styles.ts","../../src/components/hx-theme/hx-theme.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixThemeStyles = css`\n :host {\n display: contents;\n }\n\n /* display: contents makes this wrapper layout-invisible; exposed as [part=\"base\"]\n for consumer targeting via CSS parts without affecting layout */\n .theme-base {\n display: contents;\n }\n\n /* Visually hidden but accessible to screen readers — used for aria-live announcements */\n .visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n`;\n","import { LitElement, html, type PropertyValues } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { tokenEntries, darkTokenEntries } from '@helixui/tokens';\nimport { helixThemeStyles } from './hx-theme.styles.js';\n\nexport type { TokenDefinition, TokenEntry } from '@helixui/tokens';\n\n/**\n * Supported theme names.\n *\n * Three-tier token cascade applied by this component:\n * - **Primitive tier** (`--hx-color-primary-500`, `--hx-space-4`, etc.) — raw values, always injected\n * - **Semantic tier** (`--hx-color-text-primary`, `--hx-color-surface-default`, etc.) — theme-sensitive,\n * override primitives for dark / high-contrast themes\n * - **Component tier** (`--hx-button-bg`, `--hx-card-padding`, etc.) — set by individual components,\n * consumed via semantic fallbacks; not managed by `hx-theme` directly\n *\n * Consumers should override at the semantic tier to respect theme scoping.\n */\nexport type ThemeName = 'light' | 'dark' | 'high-contrast' | 'auto';\n\n/**\n * High-contrast token overrides. Targets WCAG 7:1+ contrast ratios for low-vision users.\n * These are injected on top of the light primitives when theme=\"high-contrast\".\n * Values here mirror the `high-contrast` section of tokens.json; kept in sync manually\n * until HC tokens are promoted to the published @helixui/tokens package.\n */\nconst _hcOverrides: Array<[string, string]> = [\n ['--hx-color-text-primary', '#FFFFFF'],\n ['--hx-color-text-secondary', '#FFFFFF'],\n ['--hx-color-text-muted', '#E0E0E0'],\n ['--hx-color-text-disabled', '#767676'],\n ['--hx-color-text-inverse', '#000000'],\n ['--hx-color-text-link', '#FFFF00'],\n ['--hx-color-text-link-hover', '#FFFF99'],\n ['--hx-color-text-link-visited', '#FF80FF'],\n ['--hx-color-text-link-active', '#FFFFFF'],\n ['--hx-color-surface-default', '#000000'],\n ['--hx-color-surface-raised', '#1A1A1A'],\n ['--hx-color-surface-sunken', '#000000'],\n ['--hx-color-surface-overlay', 'rgba(0, 0, 0, 0.95)'],\n ['--hx-color-border-default', '#FFFFFF'],\n ['--hx-color-border-subtle', '#C0C0C0'],\n ['--hx-color-border-strong', '#FFFFFF'],\n ['--hx-color-border-focus', '#FFFF00'],\n ['--hx-color-focus-ring', '#FFFF00'],\n ['--hx-color-selection-bg', '#1AEBFF'],\n ['--hx-color-selection-color', '#000000'],\n ['--hx-body-bg', '#000000'],\n ['--hx-body-color', '#FFFFFF'],\n ['--hx-shadow-sm', '0 1px 2px 0 rgb(255 255 255 / 0.2)'],\n [\n '--hx-shadow-md',\n '0 4px 6px -1px rgb(255 255 255 / 0.3), 0 2px 4px -2px rgb(255 255 255 / 0.2)',\n ],\n [\n '--hx-shadow-lg',\n '0 10px 15px -3px rgb(255 255 255 / 0.3), 0 4px 6px -4px rgb(255 255 255 / 0.2)',\n ],\n [\n '--hx-shadow-xl',\n '0 20px 25px -5px rgb(255 255 255 / 0.3), 0 8px 10px -6px rgb(255 255 255 / 0.2)',\n ],\n ['--hx-shadow-2xl', '0 25px 50px -12px rgb(255 255 255 / 0.4)'],\n];\n\nfunction _buildProps(entries: Iterable<[string, string]>): string {\n return Array.from(entries)\n .map(([name, value]) => ` ${name}: ${value};`)\n .join('\\n');\n}\n\n/** Module-level CSS cache: one string per ThemeName — avoids re-building on every theme change */\nconst _cssCache = new Map<ThemeName, string>();\n\nfunction _buildThemeCss(theme: ThemeName): string {\n const cached = _cssCache.get(theme);\n if (cached) return cached;\n\n // Build light token base map from the @helixui/tokens package\n const lightMap = new Map(tokenEntries.map((t) => [t.name, t.value]));\n\n let css: string;\n if (theme === 'dark') {\n // Apply dark semantic overrides on top of light primitives\n const merged = new Map(lightMap);\n for (const t of darkTokenEntries) {\n merged.set(t.name, t.value);\n }\n css = `:host {\\n${_buildProps(merged)}\\n color-scheme: dark;\\n}`;\n } else if (theme === 'high-contrast') {\n // Apply HC overrides on top of light primitives — distinct WCAG 7:1+ token set\n const merged = new Map(lightMap);\n for (const [name, value] of _hcOverrides) {\n merged.set(name, value);\n }\n css = `:host {\\n${_buildProps(merged)}\\n color-scheme: dark;\\n}`;\n } else {\n // 'light' — 'auto' resolves to 'light' or 'dark' at runtime via effectiveTheme\n css = `:host {\\n${_buildProps(lightMap)}\\n color-scheme: light;\\n}`;\n }\n\n _cssCache.set(theme, css);\n return css;\n}\n\n/**\n * A theme provider that injects CSS custom property tokens for a named theme\n * onto a scoped root element. Wrapping content with this component scopes\n * all `--hx-*` design tokens to the selected theme.\n *\n * This is a pure infrastructure component with `display: contents` — it does\n * not affect layout. Use it to apply a theme to a subtree of components.\n *\n * Supported themes:\n * - `\"light\"` — standard light-mode token set (default)\n * - `\"dark\"` — dark-mode semantic overrides applied on top of light primitives\n * - `\"high-contrast\"` — WCAG 7:1+ contrast token set for low-vision accessibility\n * - `\"auto\"` — follows the OS `prefers-color-scheme` media query (light or dark)\n *\n * @summary Injects --hx-* design tokens for the specified theme scope.\n *\n * @tag hx-theme\n *\n * @slot - Default slot for themed content.\n *\n * @csspart base - The inner slot wrapper element. `display: contents` — no layout effect.\n *\n * @cssprop [--hx-*] - All design tokens for the selected theme are injected\n * as CSS custom properties on the host element.\n *\n * @example Drupal Twig — wrap a region with a dark theme:\n * ```twig\n * <hx-theme theme=\"dark\">\n * {{ content }}\n * </hx-theme>\n * ```\n *\n * @example Nested scoping — dark sidebar inside a light page:\n * ```html\n * <hx-theme theme=\"light\">\n * <main>...</main>\n * <hx-theme theme=\"dark\">\n * <aside>...</aside>\n * </hx-theme>\n * </hx-theme>\n * ```\n */\n@customElement('hx-theme')\nexport class HelixTheme extends LitElement {\n static override styles = [helixThemeStyles];\n\n /**\n * The theme to apply. Determines which set of --hx-* tokens are injected.\n * - `\"light\"` (default): standard light-mode tokens\n * - `\"dark\"`: dark-mode semantic overrides applied on top of light primitives\n * - `\"high-contrast\"`: WCAG 7:1+ contrast tokens for low-vision users\n * - `\"auto\"`: follows OS `prefers-color-scheme`; resolves to `\"light\"` or `\"dark\"` at runtime\n * @attr theme\n */\n @property({ type: String, reflect: true })\n theme: ThemeName = 'light';\n\n /**\n * @deprecated Use `theme=\"auto\"` instead.\n * When true, auto-detects the preferred color scheme via the\n * `prefers-color-scheme` media query, overriding the `theme` prop.\n * @attr system\n */\n @property({ type: Boolean, reflect: true })\n system = false;\n\n /** @internal */\n private _mediaQuery: MediaQueryList | null = null;\n /** @internal */\n private _mediaHandler: (() => void) | null = null;\n /** @internal */\n private _themeSheet: CSSStyleSheet | null = null;\n\n override firstUpdated(changed: PropertyValues): void {\n super.firstUpdated(changed);\n this._initThemeSheet();\n if (this.system || this.theme === 'auto') {\n this._attachMediaQuery();\n }\n }\n\n override updated(changed: PropertyValues): void {\n super.updated(changed);\n const autoMode = this.system || this.theme === 'auto';\n if (changed.has('system') || changed.has('theme')) {\n if (autoMode) {\n this._attachMediaQuery();\n } else {\n this._detachMediaQuery();\n }\n this._applyEffectiveTheme();\n }\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this._detachMediaQuery();\n }\n\n /**\n * Returns the currently active theme name.\n * When `system=true` or `theme=\"auto\"`, reflects the OS preference (`\"light\"` or `\"dark\"`).\n * Otherwise returns the `theme` property value.\n */\n get effectiveTheme(): ThemeName {\n if (this.system || this.theme === 'auto') {\n if (typeof window === 'undefined') return 'light';\n return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n }\n return this.theme;\n }\n\n /** @internal */\n private _initThemeSheet(): void {\n if (this.shadowRoot) {\n this._themeSheet = new CSSStyleSheet();\n this.shadowRoot.adoptedStyleSheets = [\n ...this.shadowRoot.adoptedStyleSheets,\n this._themeSheet,\n ];\n this._applyEffectiveTheme();\n }\n }\n\n /** @internal */\n private _attachMediaQuery(): void {\n if (this._mediaQuery || typeof window === 'undefined') return;\n this._mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n this._mediaHandler = () => {\n this._applyEffectiveTheme();\n this._announceThemeChange();\n };\n this._mediaQuery.addEventListener('change', this._mediaHandler);\n }\n\n /** @internal */\n private _detachMediaQuery(): void {\n if (this._mediaQuery && this._mediaHandler) {\n this._mediaQuery.removeEventListener('change', this._mediaHandler);\n }\n this._mediaQuery = null;\n this._mediaHandler = null;\n }\n\n /** @internal — notifies AT users when system theme changes programmatically */\n private _announceThemeChange(): void {\n const announcer = this.shadowRoot?.querySelector('[role=\"status\"]');\n if (announcer) {\n announcer.textContent = `Theme changed to ${this.effectiveTheme}`;\n }\n }\n\n /** @internal */\n private _applyEffectiveTheme(): void {\n if (!this._themeSheet) return;\n void this._themeSheet.replace(_buildThemeCss(this.effectiveTheme));\n }\n\n override render() {\n return html`\n <div part=\"base\" class=\"theme-base\">\n <slot></slot>\n </div>\n <span role=\"status\" aria-live=\"polite\" aria-atomic=\"true\" class=\"visually-hidden\"></span>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-theme': HelixTheme;\n }\n}\n"],"names":["helixThemeStyles","css","_hcOverrides","_buildProps","entries","name","value","_cssCache","_buildThemeCss","theme","cached","lightMap","tokenEntries","merged","t","darkTokenEntries","HelixTheme","LitElement","changed","autoMode","announcer","_a","html","__decorateClass","property","customElement"],"mappings":";;;AAEO,MAAMA,IAAmBC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;ACyBhC,MAAMC,IAAwC;AAAA,EAC5C,CAAC,2BAA2B,SAAS;AAAA,EACrC,CAAC,6BAA6B,SAAS;AAAA,EACvC,CAAC,yBAAyB,SAAS;AAAA,EACnC,CAAC,4BAA4B,SAAS;AAAA,EACtC,CAAC,2BAA2B,SAAS;AAAA,EACrC,CAAC,wBAAwB,SAAS;AAAA,EAClC,CAAC,8BAA8B,SAAS;AAAA,EACxC,CAAC,gCAAgC,SAAS;AAAA,EAC1C,CAAC,+BAA+B,SAAS;AAAA,EACzC,CAAC,8BAA8B,SAAS;AAAA,EACxC,CAAC,6BAA6B,SAAS;AAAA,EACvC,CAAC,6BAA6B,SAAS;AAAA,EACvC,CAAC,8BAA8B,qBAAqB;AAAA,EACpD,CAAC,6BAA6B,SAAS;AAAA,EACvC,CAAC,4BAA4B,SAAS;AAAA,EACtC,CAAC,4BAA4B,SAAS;AAAA,EACtC,CAAC,2BAA2B,SAAS;AAAA,EACrC,CAAC,yBAAyB,SAAS;AAAA,EACnC,CAAC,2BAA2B,SAAS;AAAA,EACrC,CAAC,8BAA8B,SAAS;AAAA,EACxC,CAAC,gBAAgB,SAAS;AAAA,EAC1B,CAAC,mBAAmB,SAAS;AAAA,EAC7B,CAAC,kBAAkB,oCAAoC;AAAA,EACvD;AAAA,IACE;AAAA,IACA;AAAA,EAAA;AAAA,EAEF;AAAA,IACE;AAAA,IACA;AAAA,EAAA;AAAA,EAEF;AAAA,IACE;AAAA,IACA;AAAA,EAAA;AAAA,EAEF,CAAC,mBAAmB,0CAA0C;AAChE;AAEA,SAASC,EAAYC,GAA6C;AAChE,SAAO,MAAM,KAAKA,CAAO,EACtB,IAAI,CAAC,CAACC,GAAMC,CAAK,MAAM,KAAKD,CAAI,KAAKC,CAAK,GAAG,EAC7C,KAAK;AAAA,CAAI;AACd;AAGA,MAAMC,wBAAgB,IAAA;AAEtB,SAASC,EAAeC,GAA0B;AAChD,QAAMC,IAASH,EAAU,IAAIE,CAAK;AAClC,MAAIC,EAAQ,QAAOA;AAGnB,QAAMC,IAAW,IAAI,IAAIC,EAAa,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AAEnE,MAAIX;AACJ,MAAIQ,MAAU,QAAQ;AAEpB,UAAMI,IAAS,IAAI,IAAIF,CAAQ;AAC/B,eAAWG,KAAKC;AACd,MAAAF,EAAO,IAAIC,EAAE,MAAMA,EAAE,KAAK;AAE5B,IAAAb,IAAM;AAAA,EAAYE,EAAYU,CAAM,CAAC;AAAA;AAAA;AAAA,EACvC,WAAWJ,MAAU,iBAAiB;AAEpC,UAAMI,IAAS,IAAI,IAAIF,CAAQ;AAC/B,eAAW,CAACN,GAAMC,CAAK,KAAKJ;AAC1B,MAAAW,EAAO,IAAIR,GAAMC,CAAK;AAExB,IAAAL,IAAM;AAAA,EAAYE,EAAYU,CAAM,CAAC;AAAA;AAAA;AAAA,EACvC;AAEE,IAAAZ,IAAM;AAAA,EAAYE,EAAYQ,CAAQ,CAAC;AAAA;AAAA;AAGzC,SAAAJ,EAAU,IAAIE,GAAOR,CAAG,GACjBA;AACT;AA6CO,IAAMe,IAAN,cAAyBC,EAAW;AAAA,EAApC,cAAA;AAAA,UAAA,GAAA,SAAA,GAYL,KAAA,QAAmB,SASnB,KAAA,SAAS,IAGT,KAAQ,cAAqC,MAE7C,KAAQ,gBAAqC,MAE7C,KAAQ,cAAoC;AAAA,EAAA;AAAA,EAEnC,aAAaC,GAA+B;AACnD,UAAM,aAAaA,CAAO,GAC1B,KAAK,gBAAA,IACD,KAAK,UAAU,KAAK,UAAU,WAChC,KAAK,kBAAA;AAAA,EAET;AAAA,EAES,QAAQA,GAA+B;AAC9C,UAAM,QAAQA,CAAO;AACrB,UAAMC,IAAW,KAAK,UAAU,KAAK,UAAU;AAC/C,KAAID,EAAQ,IAAI,QAAQ,KAAKA,EAAQ,IAAI,OAAO,OAC1CC,IACF,KAAK,kBAAA,IAEL,KAAK,kBAAA,GAEP,KAAK,qBAAA;AAAA,EAET;AAAA,EAES,uBAA6B;AACpC,UAAM,qBAAA,GACN,KAAK,kBAAA;AAAA,EACP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,IAAI,iBAA4B;AAC9B,WAAI,KAAK,UAAU,KAAK,UAAU,SAC5B,OAAO,SAAW,MAAoB,UACnC,OAAO,WAAW,8BAA8B,EAAE,UAAU,SAAS,UAEvE,KAAK;AAAA,EACd;AAAA;AAAA,EAGQ,kBAAwB;AAC9B,IAAI,KAAK,eACP,KAAK,cAAc,IAAI,cAAA,GACvB,KAAK,WAAW,qBAAqB;AAAA,MACnC,GAAG,KAAK,WAAW;AAAA,MACnB,KAAK;AAAA,IAAA,GAEP,KAAK,qBAAA;AAAA,EAET;AAAA;AAAA,EAGQ,oBAA0B;AAChC,IAAI,KAAK,eAAe,OAAO,SAAW,QAC1C,KAAK,cAAc,OAAO,WAAW,8BAA8B,GACnE,KAAK,gBAAgB,MAAM;AACzB,WAAK,qBAAA,GACL,KAAK,qBAAA;AAAA,IACP,GACA,KAAK,YAAY,iBAAiB,UAAU,KAAK,aAAa;AAAA,EAChE;AAAA;AAAA,EAGQ,oBAA0B;AAChC,IAAI,KAAK,eAAe,KAAK,iBAC3B,KAAK,YAAY,oBAAoB,UAAU,KAAK,aAAa,GAEnE,KAAK,cAAc,MACnB,KAAK,gBAAgB;AAAA,EACvB;AAAA;AAAA,EAGQ,uBAA6B;;AACnC,UAAMC,KAAYC,IAAA,KAAK,eAAL,gBAAAA,EAAiB,cAAc;AACjD,IAAID,MACFA,EAAU,cAAc,oBAAoB,KAAK,cAAc;AAAA,EAEnE;AAAA;AAAA,EAGQ,uBAA6B;AACnC,IAAK,KAAK,eACL,KAAK,YAAY,QAAQZ,EAAe,KAAK,cAAc,CAAC;AAAA,EACnE;AAAA,EAES,SAAS;AAChB,WAAOc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMT;AACF;AA3HaN,EACK,SAAS,CAAChB,CAAgB;AAW1CuB,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAX9BR,EAYX,WAAA,SAAA,CAAA;AASAO,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GApB/BR,EAqBX,WAAA,UAAA,CAAA;AArBWA,IAANO,EAAA;AAAA,EADNE,EAAc,UAAU;AAAA,GACZT,CAAA;"}