@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,271 @@
1
+ import { css as u, LitElement as _, nothing as d, html as h } from "lit";
2
+ import { property as l, state as p, customElement as x } from "lit/decorators.js";
3
+ import { classMap as g } from "lit/directives/class-map.js";
4
+ import { t as f } from "./lit-Dpo7RLp4.js";
5
+ const b = u`
6
+ :host {
7
+ display: block;
8
+ }
9
+
10
+ :host([disabled]) {
11
+ opacity: var(--hx-opacity-disabled);
12
+ cursor: not-allowed;
13
+ }
14
+
15
+ * {
16
+ box-sizing: border-box;
17
+ }
18
+
19
+ /* ─── Fieldset ─── */
20
+
21
+ .fieldset {
22
+ border: none;
23
+ margin: 0;
24
+ padding: 0;
25
+ display: flex;
26
+ flex-direction: column;
27
+ gap: var(--hx-space-2);
28
+ font-family: var(--hx-font-family-sans);
29
+ }
30
+
31
+ /* ─── Legend ─── */
32
+
33
+ .fieldset__legend {
34
+ display: flex;
35
+ align-items: baseline;
36
+ gap: var(--hx-space-1);
37
+ font-size: var(--hx-font-size-sm);
38
+ font-weight: var(--hx-font-weight-medium);
39
+ color: var(--hx-checkbox-group-label-color, var(--hx-color-neutral-700));
40
+ line-height: var(--hx-line-height-normal);
41
+ padding: 0;
42
+ margin-bottom: var(--hx-space-1);
43
+ }
44
+
45
+ .fieldset__required-marker {
46
+ color: var(--hx-checkbox-group-error-color, var(--hx-color-error-text, #b91c1c));
47
+ font-weight: var(--hx-font-weight-bold);
48
+ }
49
+
50
+ /* ─── Items Container ─── */
51
+
52
+ .fieldset__items {
53
+ display: flex;
54
+ flex-direction: column;
55
+ gap: var(--hx-checkbox-group-gap, var(--hx-space-3));
56
+ }
57
+
58
+ :host([orientation='horizontal']) .fieldset__items {
59
+ flex-direction: row;
60
+ flex-wrap: wrap;
61
+ }
62
+
63
+ /* ─── Error State ─── */
64
+
65
+ .fieldset--error .fieldset__legend {
66
+ color: var(--hx-checkbox-group-error-color, var(--hx-color-error-text, #b91c1c));
67
+ }
68
+
69
+ /* ─── Help Text & Error Messages ─── */
70
+
71
+ .fieldset__help-text {
72
+ font-size: var(--hx-font-size-xs);
73
+ color: var(--hx-color-neutral-500);
74
+ line-height: var(--hx-line-height-normal);
75
+ }
76
+
77
+ .fieldset__error {
78
+ font-size: var(--hx-font-size-xs);
79
+ color: var(--hx-checkbox-group-error-color, var(--hx-color-error-text, #b91c1c));
80
+ line-height: var(--hx-line-height-normal);
81
+ }
82
+ `;
83
+ var m = Object.defineProperty, k = Object.getOwnPropertyDescriptor, a = (e, t, s, o) => {
84
+ for (var i = o > 1 ? void 0 : o ? k(t, s) : t, n = e.length - 1, c; n >= 0; n--)
85
+ (c = e[n]) && (i = (o ? c(t, s, i) : c(i)) || i);
86
+ return o && i && m(t, s, i), i;
87
+ };
88
+ let y = 0, r = class extends _ {
89
+ constructor() {
90
+ super(), this.name = "", this.label = "", this.required = !1, this.disabled = !1, this.error = "", this.orientation = "vertical", this._hasErrorSlot = !1, this._hasHelpSlot = !1, this._groupId = `hx-checkbox-group-${++y}`, this._helpTextId = `${this._groupId}-help`, this._errorId = `${this._groupId}-error`, this._handleCheckboxChange = (e) => {
91
+ if (e.target === this) return;
92
+ e.stopImmediatePropagation();
93
+ const t = this._getCheckedValues();
94
+ this._updateFormValue(t), this._updateValidity(t), this.dispatchEvent(
95
+ new CustomEvent("hx-change", {
96
+ bubbles: !0,
97
+ composed: !0,
98
+ detail: { values: t }
99
+ })
100
+ );
101
+ }, this._internals = this.attachInternals();
102
+ }
103
+ // ─── Slot Handlers ───
104
+ _handleErrorSlotChange(e) {
105
+ const t = e.target;
106
+ this._hasErrorSlot = t.assignedNodes({ flatten: !0 }).length > 0;
107
+ }
108
+ _handleHelpSlotChange(e) {
109
+ const t = e.target;
110
+ this._hasHelpSlot = t.assignedNodes({ flatten: !0 }).length > 0;
111
+ }
112
+ // ─── Lifecycle ───
113
+ connectedCallback() {
114
+ super.connectedCallback(), this.addEventListener("hx-change", this._handleCheckboxChange);
115
+ }
116
+ disconnectedCallback() {
117
+ super.disconnectedCallback(), this.removeEventListener("hx-change", this._handleCheckboxChange);
118
+ }
119
+ updated(e) {
120
+ super.updated(e), e.has("disabled") && this._syncCheckboxes(), e.has("name") && this._syncCheckboxNames(), e.has("required") && this._updateValidity();
121
+ }
122
+ firstUpdated(e) {
123
+ super.firstUpdated(e), this._syncCheckboxes(), this._syncCheckboxNames();
124
+ const t = this._getCheckedValues();
125
+ this._updateFormValue(t), this._updateValidity(t);
126
+ }
127
+ // ─── Checkbox Management ───
128
+ _getCheckboxes() {
129
+ return Array.from(this.children).filter((e) => e.tagName === "HX-CHECKBOX");
130
+ }
131
+ _getCheckedValues() {
132
+ return this._getCheckboxes().filter((e) => e.checked).map((e) => e.value);
133
+ }
134
+ _syncCheckboxes() {
135
+ this._getCheckboxes().forEach((t) => {
136
+ t.disabled = this.disabled;
137
+ });
138
+ }
139
+ _syncCheckboxNames() {
140
+ if (!this.name) return;
141
+ this._getCheckboxes().forEach((t) => {
142
+ t.name = this.name;
143
+ });
144
+ }
145
+ _handleSlotChange() {
146
+ this._syncCheckboxes(), this._syncCheckboxNames();
147
+ const e = this._getCheckedValues();
148
+ this._updateFormValue(e), this._updateValidity(e);
149
+ }
150
+ // ─── Form Integration ───
151
+ _updateFormValue(e) {
152
+ if (e.length === 0) {
153
+ this._internals.setFormValue(null);
154
+ return;
155
+ }
156
+ const t = new FormData();
157
+ e.forEach((s) => t.append(this.name, s)), this._internals.setFormValue(t);
158
+ }
159
+ _updateValidity(e) {
160
+ const t = e ?? this._getCheckedValues();
161
+ if (this.required && t.length === 0) {
162
+ const s = this._getCheckboxes()[0];
163
+ this._internals.setValidity(
164
+ { valueMissing: !0 },
165
+ this.error || "Please select at least one option.",
166
+ s
167
+ );
168
+ } else
169
+ this._internals.setValidity({});
170
+ }
171
+ /** Returns the associated form element, if any. */
172
+ get form() {
173
+ return this._internals.form;
174
+ }
175
+ /** Returns the validation message. */
176
+ get validationMessage() {
177
+ return this._internals.validationMessage;
178
+ }
179
+ /** Returns the ValidityState object. */
180
+ get validity() {
181
+ return this._internals.validity;
182
+ }
183
+ /** Checks whether the group satisfies its constraints. */
184
+ checkValidity() {
185
+ return this._internals.checkValidity();
186
+ }
187
+ /** Reports validity and shows the browser's constraint validation UI. */
188
+ reportValidity() {
189
+ return this._internals.reportValidity();
190
+ }
191
+ /** Called by the form when it resets. */
192
+ formResetCallback() {
193
+ this._getCheckboxes().forEach((t) => {
194
+ t.checked = !1;
195
+ }), this._internals.setFormValue(null), this._updateValidity([]);
196
+ }
197
+ /** Called when the form restores state (e.g., back/forward navigation). */
198
+ formStateRestoreCallback(e) {
199
+ if (!(e instanceof FormData)) return;
200
+ const t = e.getAll(this.name).map((o) => String(o));
201
+ this._getCheckboxes().forEach((o) => {
202
+ o.checked = t.includes(o.value);
203
+ }), this._updateFormValue(t), this._updateValidity(t);
204
+ }
205
+ // ─── Render ───
206
+ render() {
207
+ const e = !!this.error || this._hasErrorSlot, t = {
208
+ fieldset: !0,
209
+ "fieldset--error": e,
210
+ "fieldset--disabled": this.disabled,
211
+ "fieldset--required": this.required
212
+ }, s = [e ? this._errorId : null, this._hasHelpSlot ? this._helpTextId : null].filter(Boolean).join(" ") || void 0;
213
+ return h`
214
+ <fieldset
215
+ part="group"
216
+ class=${g(t)}
217
+ aria-describedby=${s ?? d}
218
+ >
219
+ <legend part="label" class="fieldset__legend">
220
+ <slot name="label">${this.label}</slot>
221
+ ${this.required ? h`<span class="fieldset__required-marker" aria-hidden="true">*</span>` : d}
222
+ </legend>
223
+
224
+ <div class="fieldset__items">
225
+ <slot @slotchange=${this._handleSlotChange}></slot>
226
+ </div>
227
+
228
+ ${e ? h`<div part="error-message" class="fieldset__error" id=${this._errorId} role="alert">
229
+ <slot name="error" @slotchange=${this._handleErrorSlotChange}> ${this.error} </slot>
230
+ </div>` : h`<slot name="error" @slotchange=${this._handleErrorSlotChange}></slot>`}
231
+
232
+ <div part="help-text" class="fieldset__help-text" id=${this._helpTextId}>
233
+ <slot name="help" @slotchange=${this._handleHelpSlotChange}></slot>
234
+ </div>
235
+ </fieldset>
236
+ `;
237
+ }
238
+ };
239
+ r.styles = [f, b];
240
+ r.formAssociated = !0;
241
+ a([
242
+ l({ type: String })
243
+ ], r.prototype, "name", 2);
244
+ a([
245
+ l({ type: String })
246
+ ], r.prototype, "label", 2);
247
+ a([
248
+ l({ type: Boolean, reflect: !0 })
249
+ ], r.prototype, "required", 2);
250
+ a([
251
+ l({ type: Boolean, reflect: !0 })
252
+ ], r.prototype, "disabled", 2);
253
+ a([
254
+ l({ type: String })
255
+ ], r.prototype, "error", 2);
256
+ a([
257
+ l({ type: String, reflect: !0 })
258
+ ], r.prototype, "orientation", 2);
259
+ a([
260
+ p()
261
+ ], r.prototype, "_hasErrorSlot", 2);
262
+ a([
263
+ p()
264
+ ], r.prototype, "_hasHelpSlot", 2);
265
+ r = a([
266
+ x("hx-checkbox-group")
267
+ ], r);
268
+ export {
269
+ r as H
270
+ };
271
+ //# sourceMappingURL=hx-checkbox-group-ClGxYUi0.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hx-checkbox-group-ClGxYUi0.js","sources":["../../src/components/hx-checkbox-group/hx-checkbox-group.styles.ts","../../src/components/hx-checkbox-group/hx-checkbox-group.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixCheckboxGroupStyles = css`\n :host {\n display: block;\n }\n\n :host([disabled]) {\n opacity: var(--hx-opacity-disabled);\n cursor: not-allowed;\n }\n\n * {\n box-sizing: border-box;\n }\n\n /* ─── Fieldset ─── */\n\n .fieldset {\n border: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: var(--hx-space-2);\n font-family: var(--hx-font-family-sans);\n }\n\n /* ─── Legend ─── */\n\n .fieldset__legend {\n display: flex;\n align-items: baseline;\n gap: var(--hx-space-1);\n font-size: var(--hx-font-size-sm);\n font-weight: var(--hx-font-weight-medium);\n color: var(--hx-checkbox-group-label-color, var(--hx-color-neutral-700));\n line-height: var(--hx-line-height-normal);\n padding: 0;\n margin-bottom: var(--hx-space-1);\n }\n\n .fieldset__required-marker {\n color: var(--hx-checkbox-group-error-color, var(--hx-color-error-text, #b91c1c));\n font-weight: var(--hx-font-weight-bold);\n }\n\n /* ─── Items Container ─── */\n\n .fieldset__items {\n display: flex;\n flex-direction: column;\n gap: var(--hx-checkbox-group-gap, var(--hx-space-3));\n }\n\n :host([orientation='horizontal']) .fieldset__items {\n flex-direction: row;\n flex-wrap: wrap;\n }\n\n /* ─── Error State ─── */\n\n .fieldset--error .fieldset__legend {\n color: var(--hx-checkbox-group-error-color, var(--hx-color-error-text, #b91c1c));\n }\n\n /* ─── Help Text & Error Messages ─── */\n\n .fieldset__help-text {\n font-size: var(--hx-font-size-xs);\n color: var(--hx-color-neutral-500);\n line-height: var(--hx-line-height-normal);\n }\n\n .fieldset__error {\n font-size: var(--hx-font-size-xs);\n color: var(--hx-checkbox-group-error-color, var(--hx-color-error-text, #b91c1c));\n line-height: var(--hx-line-height-normal);\n }\n`;\n","import { LitElement, html, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { tokenStyles } from '@helixui/tokens/lit';\nimport { helixCheckboxGroupStyles } from './hx-checkbox-group.styles.js';\nimport type { HelixCheckbox } from '../hx-checkbox/hx-checkbox.js';\n\n/** Monotonic counter for stable, SSR-safe IDs. */\nlet _uid = 0;\n\n/**\n * A form-associated checkbox group that manages a set of `<hx-checkbox>` children.\n *\n * @summary Form-associated checkbox group with label, validation, help text, and multi-value form submission.\n *\n * @tag hx-checkbox-group\n *\n * @slot - `<hx-checkbox>` elements.\n * @slot label - Rich HTML group label (overrides the label property when used).\n * @slot error - Custom error content (overrides the error property).\n * @slot help - Group-level help text.\n *\n * @fires {CustomEvent<{values: string[]}>} hx-change - Dispatched when any child checkbox changes.\n *\n * @csspart group - The fieldset wrapper.\n * @csspart label - The legend/label.\n * @csspart help-text - The help text container.\n * @csspart error-message - The error message container.\n *\n * @cssprop [--hx-checkbox-group-gap=var(--hx-space-3, 0.75rem)] - Gap between checkbox items.\n * @cssprop [--hx-checkbox-group-label-color=var(--hx-color-neutral-700, #343a40)] - Label text color.\n * @cssprop [--hx-checkbox-group-error-color=var(--hx-color-error-500, #dc3545)] - Error message color.\n *\n * @drupal\n * Form-associated; render via Twig:\n * ```twig\n * <hx-checkbox-group name=\"{{ field_name }}\" label=\"{{ label }}\"{{ required ? ' required' : '' }}>\n * {% for option in options %}\n * <hx-checkbox value=\"{{ option.value }}\" label=\"{{ option.label }}\"></hx-checkbox>\n * {% endfor %}\n * </hx-checkbox-group>\n * ```\n * The `name` attribute propagates automatically to child checkboxes — no Drupal behavior required.\n */\n@customElement('hx-checkbox-group')\nexport class HelixCheckboxGroup extends LitElement {\n static override styles = [tokenStyles, helixCheckboxGroupStyles];\n\n // ─── Form Association ───\n\n static formAssociated = true;\n\n private _internals: ElementInternals;\n\n constructor() {\n super();\n this._internals = this.attachInternals();\n }\n\n // ─── Properties ───\n\n /**\n * The name used for form submission. Passed to child `hx-checkbox` elements.\n * @attr name\n */\n @property({ type: String })\n name = '';\n\n /**\n * The fieldset legend/label text.\n * @attr label\n */\n @property({ type: String })\n label = '';\n\n /**\n * Whether at least one checkbox must be checked for form submission.\n * @attr required\n */\n @property({ type: Boolean, reflect: true })\n required = false;\n\n /**\n * Whether the entire group 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 group enters an error state.\n * @attr error\n */\n @property({ type: String })\n error = '';\n\n /**\n * Layout orientation of the checkbox items.\n * @attr orientation\n */\n @property({ type: String, reflect: true })\n orientation: 'vertical' | 'horizontal' = 'vertical';\n\n @state() private _hasErrorSlot = false;\n @state() private _hasHelpSlot = false;\n\n // ─── Internal IDs ───\n\n private _groupId = `hx-checkbox-group-${++_uid}`;\n private _helpTextId = `${this._groupId}-help`;\n private _errorId = `${this._groupId}-error`;\n\n // ─── Slot Handlers ───\n\n private _handleErrorSlotChange(e: Event): void {\n const slot = e.target as HTMLSlotElement;\n this._hasErrorSlot = slot.assignedNodes({ flatten: true }).length > 0;\n }\n\n private _handleHelpSlotChange(e: Event): void {\n const slot = e.target as HTMLSlotElement;\n this._hasHelpSlot = slot.assignedNodes({ flatten: true }).length > 0;\n }\n\n // ─── Lifecycle ───\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener('hx-change', this._handleCheckboxChange as EventListener);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('hx-change', this._handleCheckboxChange as EventListener);\n }\n\n override updated(changedProperties: Map<string, unknown>): void {\n super.updated(changedProperties);\n if (changedProperties.has('disabled')) {\n this._syncCheckboxes();\n }\n if (changedProperties.has('name')) {\n this._syncCheckboxNames();\n }\n if (changedProperties.has('required')) {\n this._updateValidity();\n }\n }\n\n override firstUpdated(changedProperties: Map<string, unknown>): void {\n super.firstUpdated(changedProperties);\n this._syncCheckboxes();\n this._syncCheckboxNames();\n const checkedValues = this._getCheckedValues();\n this._updateFormValue(checkedValues);\n this._updateValidity(checkedValues);\n }\n\n // ─── Checkbox Management ───\n\n private _getCheckboxes(): HelixCheckbox[] {\n return Array.from(this.children).filter((c): c is HelixCheckbox => c.tagName === 'HX-CHECKBOX');\n }\n\n private _getCheckedValues(): string[] {\n return this._getCheckboxes()\n .filter((cb) => cb.checked)\n .map((cb) => cb.value);\n }\n\n private _syncCheckboxes(): void {\n const checkboxes = this._getCheckboxes();\n checkboxes.forEach((cb) => {\n cb.disabled = this.disabled;\n });\n }\n\n private _syncCheckboxNames(): void {\n if (!this.name) return;\n const checkboxes = this._getCheckboxes();\n checkboxes.forEach((cb) => {\n cb.name = this.name;\n });\n }\n\n // ─── Event Handling ───\n\n private _handleCheckboxChange = (e: CustomEvent<{ checked: boolean; value: string }>): void => {\n // Only intercept events from direct hx-checkbox children — do not re-intercept\n // the hx-change we dispatch ourselves from this element.\n if (e.target === this) return;\n\n e.stopImmediatePropagation();\n\n const values = this._getCheckedValues();\n this._updateFormValue(values);\n this._updateValidity(values);\n\n /**\n * Dispatched when any child checkbox changes.\n * @event hx-change\n */\n this.dispatchEvent(\n new CustomEvent('hx-change', {\n bubbles: true,\n composed: true,\n detail: { values },\n }),\n );\n };\n\n private _handleSlotChange(): void {\n this._syncCheckboxes();\n this._syncCheckboxNames();\n const checkedValues = this._getCheckedValues();\n this._updateFormValue(checkedValues);\n this._updateValidity(checkedValues);\n }\n\n // ─── Form Integration ───\n\n private _updateFormValue(values: string[]): void {\n if (values.length === 0) {\n this._internals.setFormValue(null);\n return;\n }\n const formData = new FormData();\n values.forEach((v) => formData.append(this.name, v));\n this._internals.setFormValue(formData);\n }\n\n private _updateValidity(values?: string[]): void {\n const checkedValues = values ?? this._getCheckedValues();\n if (this.required && checkedValues.length === 0) {\n const firstCheckbox = this._getCheckboxes()[0];\n this._internals.setValidity(\n { valueMissing: true },\n this.error || 'Please select at least one option.',\n firstCheckbox,\n );\n } else {\n this._internals.setValidity({});\n }\n }\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 group 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 /** Called by the form when it resets. */\n formResetCallback(): void {\n const checkboxes = this._getCheckboxes();\n checkboxes.forEach((cb) => {\n cb.checked = false;\n });\n this._internals.setFormValue(null);\n this._updateValidity([]);\n }\n\n /** Called when the form restores state (e.g., back/forward navigation). */\n formStateRestoreCallback(state: string | File | FormData): void {\n if (!(state instanceof FormData)) return;\n const restoredValues = state.getAll(this.name).map((v) => String(v));\n const checkboxes = this._getCheckboxes();\n checkboxes.forEach((cb) => {\n cb.checked = restoredValues.includes(cb.value);\n });\n this._updateFormValue(restoredValues);\n this._updateValidity(restoredValues);\n }\n\n // ─── Render ───\n\n override render() {\n const hasError = !!this.error || this._hasErrorSlot;\n\n const fieldsetClasses = {\n fieldset: true,\n 'fieldset--error': hasError,\n 'fieldset--disabled': this.disabled,\n 'fieldset--required': this.required,\n };\n\n const describedBy =\n [hasError ? this._errorId : null, this._hasHelpSlot ? this._helpTextId : null]\n .filter(Boolean)\n .join(' ') || undefined;\n\n return html`\n <fieldset\n part=\"group\"\n class=${classMap(fieldsetClasses)}\n aria-describedby=${describedBy ?? nothing}\n >\n <legend part=\"label\" class=\"fieldset__legend\">\n <slot name=\"label\">${this.label}</slot>\n ${this.required\n ? html`<span class=\"fieldset__required-marker\" aria-hidden=\"true\">*</span>`\n : nothing}\n </legend>\n\n <div class=\"fieldset__items\">\n <slot @slotchange=${this._handleSlotChange}></slot>\n </div>\n\n ${hasError\n ? html`<div part=\"error-message\" class=\"fieldset__error\" id=${this._errorId} role=\"alert\">\n <slot name=\"error\" @slotchange=${this._handleErrorSlotChange}> ${this.error} </slot>\n </div>`\n : html`<slot name=\"error\" @slotchange=${this._handleErrorSlotChange}></slot>`}\n\n <div part=\"help-text\" class=\"fieldset__help-text\" id=${this._helpTextId}>\n <slot name=\"help\" @slotchange=${this._handleHelpSlotChange}></slot>\n </div>\n </fieldset>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-checkbox-group': HelixCheckboxGroup;\n }\n}\n"],"names":["helixCheckboxGroupStyles","css","_uid","HelixCheckboxGroup","LitElement","values","slot","changedProperties","checkedValues","c","cb","formData","v","firstCheckbox","state","restoredValues","hasError","fieldsetClasses","describedBy","html","classMap","nothing","tokenStyles","__decorateClass","property","customElement"],"mappings":"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"}
@@ -0,0 +1,322 @@
1
+ import { css as u, LitElement as f, html as s, nothing as h } from "lit";
2
+ import { property as p, state as c, customElement as m } from "lit/decorators.js";
3
+ import { classMap as x } from "lit/directives/class-map.js";
4
+ import { t as v } from "./lit-Dpo7RLp4.js";
5
+ const b = u`
6
+ :host {
7
+ display: block;
8
+ }
9
+
10
+ :host([inline]) {
11
+ display: inline;
12
+ }
13
+
14
+ /* ─── Inline Mode ─── */
15
+
16
+ .code-snippet--inline {
17
+ display: inline;
18
+ font-family: var(--hx-code-snippet-font-family, var(--hx-font-family-mono, monospace));
19
+ font-size: var(--hx-code-snippet-font-size, var(--hx-font-size-sm, 0.875em));
20
+ background-color: var(--hx-code-snippet-inline-bg, var(--hx-color-neutral-100, #f1f5f9));
21
+ color: var(--hx-code-snippet-inline-color, var(--hx-color-neutral-900, #0f172a));
22
+ padding: var(--hx-code-snippet-inline-padding-y, 0.125em)
23
+ var(--hx-code-snippet-inline-padding-x, 0.375em);
24
+ border-radius: var(--hx-code-snippet-border-radius, var(--hx-border-radius-sm, 0.25rem));
25
+ }
26
+
27
+ /* ─── Block Mode Container ─── */
28
+
29
+ .code-snippet {
30
+ position: relative;
31
+ background-color: var(--hx-code-snippet-bg, var(--hx-color-neutral-900, #0f172a));
32
+ border-radius: var(--hx-code-snippet-border-radius, var(--hx-border-radius-md, 0.375rem));
33
+ overflow: hidden;
34
+ }
35
+
36
+ /* ─── Hidden Slot ─── */
37
+
38
+ .code-snippet__slot {
39
+ display: none;
40
+ }
41
+
42
+ /* ─── Header ─── */
43
+
44
+ .code-snippet__header {
45
+ display: flex;
46
+ align-items: center;
47
+ justify-content: flex-end;
48
+ padding: var(--hx-space-2, 0.5rem) var(--hx-space-2, 0.5rem) 0;
49
+ min-height: var(--hx-space-8, 2rem);
50
+ }
51
+
52
+ /* ─── Pre / Code ─── */
53
+
54
+ .code-snippet__pre {
55
+ margin: 0;
56
+ padding: var(--hx-code-snippet-padding, var(--hx-space-4, 1rem));
57
+ overflow-x: auto;
58
+ white-space: pre;
59
+ }
60
+
61
+ .code-snippet__pre--wrap {
62
+ white-space: pre-wrap;
63
+ word-break: break-word;
64
+ }
65
+
66
+ .code-snippet__code {
67
+ display: block;
68
+ font-family: var(--hx-code-snippet-font-family, var(--hx-font-family-mono, monospace));
69
+ font-size: var(--hx-code-snippet-font-size, var(--hx-font-size-sm, 0.875rem));
70
+ line-height: var(--hx-line-height-relaxed, 1.625);
71
+ color: var(--hx-code-snippet-color, var(--hx-color-neutral-100, #f1f5f9));
72
+ tab-size: var(--hx-code-snippet-tab-size, 2);
73
+ }
74
+
75
+ /* ─── Copy Button ─── */
76
+
77
+ .code-snippet__copy-button {
78
+ display: inline-flex;
79
+ align-items: center;
80
+ gap: var(--hx-space-1, 0.25rem);
81
+ padding: var(--hx-space-1, 0.25rem) var(--hx-space-2, 0.5rem);
82
+ border: var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-600, #475569);
83
+ border-radius: var(--hx-border-radius-sm, 0.25rem);
84
+ background-color: var(--hx-color-neutral-800, #1e293b);
85
+ color: var(--hx-color-neutral-200, #e2e8f0);
86
+ font-family: var(--hx-font-family-sans, sans-serif);
87
+ font-size: var(--hx-font-size-xs, 0.75rem);
88
+ font-weight: var(--hx-font-weight-medium, 500);
89
+ line-height: var(--hx-line-height-none, 1);
90
+ cursor: pointer;
91
+ transition:
92
+ background-color var(--hx-transition-fast, 150ms ease),
93
+ color var(--hx-transition-fast, 150ms ease),
94
+ border-color var(--hx-transition-fast, 150ms ease);
95
+ white-space: nowrap;
96
+ z-index: var(--hx-z-index-raised, 1);
97
+ }
98
+
99
+ .code-snippet__copy-button:hover {
100
+ background-color: var(--hx-color-neutral-700, #334155);
101
+ border-color: var(--hx-color-neutral-500, #64748b);
102
+ }
103
+
104
+ .code-snippet__copy-button:focus-visible {
105
+ outline: var(--hx-focus-ring-width, 2px) solid var(--hx-focus-ring-color, #2563eb);
106
+ outline-offset: var(--hx-focus-ring-offset, 2px);
107
+ }
108
+
109
+ .code-snippet__copy-button:active {
110
+ /* Non-standard token — fallback 0.8 applies if token is absent */
111
+ filter: brightness(var(--hx-filter-brightness-active, 0.8));
112
+ }
113
+
114
+ /* ─── Expand Button ─── */
115
+
116
+ .code-snippet__expand-button {
117
+ display: block;
118
+ width: 100%;
119
+ padding: var(--hx-space-2, 0.5rem) var(--hx-space-4, 1rem);
120
+ border: none;
121
+ border-top: var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-700, #334155);
122
+ background-color: var(--hx-color-neutral-800, #1e293b);
123
+ color: var(--hx-color-neutral-300, #cbd5e1);
124
+ font-family: var(--hx-font-family-sans, sans-serif);
125
+ font-size: var(--hx-font-size-sm, 0.875rem);
126
+ font-weight: var(--hx-font-weight-medium, 500);
127
+ text-align: center;
128
+ cursor: pointer;
129
+ transition: background-color var(--hx-transition-fast, 150ms ease);
130
+ }
131
+
132
+ .code-snippet__expand-button:hover {
133
+ background-color: var(--hx-color-neutral-700, #334155);
134
+ color: var(--hx-color-neutral-100, #f1f5f9);
135
+ }
136
+
137
+ .code-snippet__expand-button:focus-visible {
138
+ outline: var(--hx-focus-ring-width, 2px) solid var(--hx-focus-ring-color, #2563eb);
139
+ outline-offset: var(--hx-focus-ring-offset, 2px);
140
+ }
141
+
142
+ /* ─── Line Numbers ─── */
143
+
144
+ .code-snippet__line-number {
145
+ display: inline-block;
146
+ min-width: var(--hx-space-8, 2rem);
147
+ padding-right: var(--hx-space-3, 0.75rem);
148
+ color: var(--hx-code-snippet-line-number-color, var(--hx-color-neutral-500, #64748b));
149
+ user-select: none;
150
+ text-align: right;
151
+ }
152
+
153
+ /* ─── Screen-reader only ─── */
154
+
155
+ .sr-only {
156
+ position: absolute;
157
+ width: 1px;
158
+ height: 1px;
159
+ padding: 0;
160
+ margin: -1px;
161
+ overflow: hidden;
162
+ clip: rect(0, 0, 0, 0);
163
+ white-space: nowrap;
164
+ border: 0;
165
+ }
166
+ `;
167
+ var _ = Object.defineProperty, g = Object.getOwnPropertyDescriptor, i = (e, t, r, n) => {
168
+ for (var a = n > 1 ? void 0 : n ? g(t, r) : t, l = e.length - 1, d; l >= 0; l--)
169
+ (d = e[l]) && (a = (n ? d(t, r, a) : d(a)) || a);
170
+ return n && a && _(t, r, a), a;
171
+ };
172
+ let o = class extends f {
173
+ constructor() {
174
+ super(...arguments), this.language = "", this.inline = !1, this.wrap = !1, this.copyable = !0, this.maxLines = 0, this.lineNumbers = !1, this._copied = !1, this._expanded = !1, this._codeText = "", this._copyTimer = null;
175
+ }
176
+ // ─── Lifecycle ───
177
+ firstUpdated() {
178
+ var e;
179
+ if (!this._codeText) {
180
+ const t = ((e = this.textContent) == null ? void 0 : e.trim()) ?? "";
181
+ t && (this._codeText = t);
182
+ }
183
+ }
184
+ disconnectedCallback() {
185
+ super.disconnectedCallback(), this._copyTimer !== null && (clearTimeout(this._copyTimer), this._copyTimer = null);
186
+ }
187
+ // ─── Event Handlers ───
188
+ _handleSlotChange(e) {
189
+ const t = e.target;
190
+ if (!t) return;
191
+ const r = t.assignedNodes({ flatten: !0 });
192
+ this._codeText = r.map((n) => n.textContent ?? "").join("");
193
+ }
194
+ _handleCopy() {
195
+ const e = this._codeText;
196
+ navigator.clipboard.writeText(e).catch(() => {
197
+ }), this.dispatchEvent(
198
+ new CustomEvent("hx-copy", {
199
+ bubbles: !0,
200
+ composed: !0,
201
+ detail: { text: e }
202
+ })
203
+ ), this._copied = !0, this._copyTimer !== null && clearTimeout(this._copyTimer), this._copyTimer = setTimeout(() => {
204
+ this._copied = !1;
205
+ }, 2e3);
206
+ }
207
+ _handleExpand() {
208
+ this._expanded = !this._expanded;
209
+ }
210
+ // ─── Helpers ───
211
+ _getDisplayLines() {
212
+ const e = this._codeText.split(`
213
+ `);
214
+ return !this.maxLines || this.maxLines <= 0 || this._expanded || e.length <= this.maxLines ? e : e.slice(0, this.maxLines);
215
+ }
216
+ _isTruncated() {
217
+ return !this.maxLines || this.maxLines <= 0 ? !1 : this._codeText.split(`
218
+ `).length > this.maxLines;
219
+ }
220
+ _renderLines(e) {
221
+ return this.lineNumbers ? s`${e.map(
222
+ (t, r) => s`<span aria-hidden="true" class="code-snippet__line-number">${r + 1}</span>${t} `
223
+ )}` : s`${e.join(`
224
+ `)}`;
225
+ }
226
+ // ─── Render ───
227
+ render() {
228
+ if (this.inline)
229
+ return s`
230
+ <code part="base code" class="code-snippet code-snippet--inline">
231
+ <slot @slotchange=${this._handleSlotChange}></slot>
232
+ </code>
233
+ `;
234
+ const e = this._getDisplayLines(), t = this._isTruncated(), r = this.language ? `Code snippet: ${this.language}` : "Code snippet", n = x({
235
+ "code-snippet__code": !0,
236
+ [`language-${this.language}`]: !!this.language
237
+ });
238
+ return s`
239
+ <div part="base" class="code-snippet">
240
+ <div part="header" class="code-snippet__header">
241
+ ${this.copyable ? s`
242
+ <button
243
+ part="copy-button"
244
+ class="code-snippet__copy-button"
245
+ type="button"
246
+ aria-label=${this._copied ? "Copied!" : "Copy code"}
247
+ @click=${this._handleCopy}
248
+ >
249
+ ${this._copied ? "Copied!" : "Copy"}
250
+ </button>
251
+ ` : h}
252
+ </div>
253
+
254
+ <!-- Visually-hidden live region announces copy confirmation to assistive technology -->
255
+ <span
256
+ aria-live="polite"
257
+ style="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0;"
258
+ >${this._copied ? "Copied!" : ""}</span
259
+ >
260
+
261
+ <pre
262
+ role="region"
263
+ aria-label=${r}
264
+ class=${x({
265
+ "code-snippet__pre": !0,
266
+ "code-snippet__pre--wrap": this.wrap
267
+ })}
268
+ ><code part="code" class=${n}>${this._renderLines(e)}</code></pre>
269
+
270
+ <!-- Hidden slot to capture text content for display and copy -->
271
+ <slot class="code-snippet__slot" @slotchange=${this._handleSlotChange}></slot>
272
+
273
+ ${t ? s`
274
+ <button
275
+ part="expand-button"
276
+ class="code-snippet__expand-button"
277
+ type="button"
278
+ aria-expanded=${this._expanded ? "true" : "false"}
279
+ @click=${this._handleExpand}
280
+ >
281
+ ${this._expanded ? "Show less" : "Show more"}
282
+ </button>
283
+ ` : h}
284
+ </div>
285
+ `;
286
+ }
287
+ };
288
+ o.styles = [v, b];
289
+ i([
290
+ p({ type: String, reflect: !0 })
291
+ ], o.prototype, "language", 2);
292
+ i([
293
+ p({ type: Boolean, reflect: !0 })
294
+ ], o.prototype, "inline", 2);
295
+ i([
296
+ p({ type: Boolean, reflect: !0 })
297
+ ], o.prototype, "wrap", 2);
298
+ i([
299
+ p({ type: Boolean, reflect: !0 })
300
+ ], o.prototype, "copyable", 2);
301
+ i([
302
+ p({ type: Number, attribute: "max-lines", reflect: !0 })
303
+ ], o.prototype, "maxLines", 2);
304
+ i([
305
+ p({ type: Boolean, attribute: "line-numbers", reflect: !0 })
306
+ ], o.prototype, "lineNumbers", 2);
307
+ i([
308
+ c()
309
+ ], o.prototype, "_copied", 2);
310
+ i([
311
+ c()
312
+ ], o.prototype, "_expanded", 2);
313
+ i([
314
+ c()
315
+ ], o.prototype, "_codeText", 2);
316
+ o = i([
317
+ m("hx-code-snippet")
318
+ ], o);
319
+ export {
320
+ o as H
321
+ };
322
+ //# sourceMappingURL=hx-code-snippet-CoFaSyuB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hx-code-snippet-CoFaSyuB.js","sources":["../../src/components/hx-code-snippet/hx-code-snippet.styles.ts","../../src/components/hx-code-snippet/hx-code-snippet.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixCodeSnippetStyles = css`\n :host {\n display: block;\n }\n\n :host([inline]) {\n display: inline;\n }\n\n /* ─── Inline Mode ─── */\n\n .code-snippet--inline {\n display: inline;\n font-family: var(--hx-code-snippet-font-family, var(--hx-font-family-mono, monospace));\n font-size: var(--hx-code-snippet-font-size, var(--hx-font-size-sm, 0.875em));\n background-color: var(--hx-code-snippet-inline-bg, var(--hx-color-neutral-100, #f1f5f9));\n color: var(--hx-code-snippet-inline-color, var(--hx-color-neutral-900, #0f172a));\n padding: var(--hx-code-snippet-inline-padding-y, 0.125em)\n var(--hx-code-snippet-inline-padding-x, 0.375em);\n border-radius: var(--hx-code-snippet-border-radius, var(--hx-border-radius-sm, 0.25rem));\n }\n\n /* ─── Block Mode Container ─── */\n\n .code-snippet {\n position: relative;\n background-color: var(--hx-code-snippet-bg, var(--hx-color-neutral-900, #0f172a));\n border-radius: var(--hx-code-snippet-border-radius, var(--hx-border-radius-md, 0.375rem));\n overflow: hidden;\n }\n\n /* ─── Hidden Slot ─── */\n\n .code-snippet__slot {\n display: none;\n }\n\n /* ─── Header ─── */\n\n .code-snippet__header {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: var(--hx-space-2, 0.5rem) var(--hx-space-2, 0.5rem) 0;\n min-height: var(--hx-space-8, 2rem);\n }\n\n /* ─── Pre / Code ─── */\n\n .code-snippet__pre {\n margin: 0;\n padding: var(--hx-code-snippet-padding, var(--hx-space-4, 1rem));\n overflow-x: auto;\n white-space: pre;\n }\n\n .code-snippet__pre--wrap {\n white-space: pre-wrap;\n word-break: break-word;\n }\n\n .code-snippet__code {\n display: block;\n font-family: var(--hx-code-snippet-font-family, var(--hx-font-family-mono, monospace));\n font-size: var(--hx-code-snippet-font-size, var(--hx-font-size-sm, 0.875rem));\n line-height: var(--hx-line-height-relaxed, 1.625);\n color: var(--hx-code-snippet-color, var(--hx-color-neutral-100, #f1f5f9));\n tab-size: var(--hx-code-snippet-tab-size, 2);\n }\n\n /* ─── Copy Button ─── */\n\n .code-snippet__copy-button {\n display: inline-flex;\n align-items: center;\n gap: var(--hx-space-1, 0.25rem);\n padding: var(--hx-space-1, 0.25rem) var(--hx-space-2, 0.5rem);\n border: var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-600, #475569);\n border-radius: var(--hx-border-radius-sm, 0.25rem);\n background-color: var(--hx-color-neutral-800, #1e293b);\n color: var(--hx-color-neutral-200, #e2e8f0);\n font-family: var(--hx-font-family-sans, sans-serif);\n font-size: var(--hx-font-size-xs, 0.75rem);\n font-weight: var(--hx-font-weight-medium, 500);\n line-height: var(--hx-line-height-none, 1);\n cursor: pointer;\n transition:\n background-color var(--hx-transition-fast, 150ms ease),\n color var(--hx-transition-fast, 150ms ease),\n border-color var(--hx-transition-fast, 150ms ease);\n white-space: nowrap;\n z-index: var(--hx-z-index-raised, 1);\n }\n\n .code-snippet__copy-button:hover {\n background-color: var(--hx-color-neutral-700, #334155);\n border-color: var(--hx-color-neutral-500, #64748b);\n }\n\n .code-snippet__copy-button:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid var(--hx-focus-ring-color, #2563eb);\n outline-offset: var(--hx-focus-ring-offset, 2px);\n }\n\n .code-snippet__copy-button:active {\n /* Non-standard token — fallback 0.8 applies if token is absent */\n filter: brightness(var(--hx-filter-brightness-active, 0.8));\n }\n\n /* ─── Expand Button ─── */\n\n .code-snippet__expand-button {\n display: block;\n width: 100%;\n padding: var(--hx-space-2, 0.5rem) var(--hx-space-4, 1rem);\n border: none;\n border-top: var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-700, #334155);\n background-color: var(--hx-color-neutral-800, #1e293b);\n color: var(--hx-color-neutral-300, #cbd5e1);\n font-family: var(--hx-font-family-sans, sans-serif);\n font-size: var(--hx-font-size-sm, 0.875rem);\n font-weight: var(--hx-font-weight-medium, 500);\n text-align: center;\n cursor: pointer;\n transition: background-color var(--hx-transition-fast, 150ms ease);\n }\n\n .code-snippet__expand-button:hover {\n background-color: var(--hx-color-neutral-700, #334155);\n color: var(--hx-color-neutral-100, #f1f5f9);\n }\n\n .code-snippet__expand-button:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid var(--hx-focus-ring-color, #2563eb);\n outline-offset: var(--hx-focus-ring-offset, 2px);\n }\n\n /* ─── Line Numbers ─── */\n\n .code-snippet__line-number {\n display: inline-block;\n min-width: var(--hx-space-8, 2rem);\n padding-right: var(--hx-space-3, 0.75rem);\n color: var(--hx-code-snippet-line-number-color, var(--hx-color-neutral-500, #64748b));\n user-select: none;\n text-align: right;\n }\n\n /* ─── Screen-reader only ─── */\n\n .sr-only {\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, nothing, TemplateResult } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { tokenStyles } from '@helixui/tokens/lit';\nimport { helixCodeSnippetStyles } from './hx-code-snippet.styles.js';\n\n/**\n * A styled code block with optional copy button and max-lines truncation.\n * Supports block (`<pre><code>`) and inline (`<code>`) rendering modes.\n * No external syntax highlighting dependency — use the `language` attribute\n * as a hint for consumers integrating their own highlighter via slotted content.\n *\n * @summary Styled code display component with copy-to-clipboard and expand/collapse.\n *\n * @tag hx-code-snippet\n *\n * @slot - Code content as plain text. Note: HTML markup in slot content will be\n * stripped — only text content is extracted. Pre-highlighted HTML is not supported.\n *\n * @fires {CustomEvent<{text: string}>} hx-copy - Dispatched when the copy button is clicked.\n *\n * @csspart base - The outermost container (block: `<div>`, inline: `<code>`).\n * @csspart header - The header bar containing the copy button (block mode only).\n * @csspart code - The `<code>` element containing the content.\n * @csspart copy-button - The copy-to-clipboard button.\n * @csspart expand-button - The \"Show more / Show less\" button.\n *\n * @cssprop [--hx-code-snippet-bg=var(--hx-color-neutral-900,#0f172a)] - Background color.\n * @cssprop [--hx-code-snippet-color=var(--hx-color-neutral-100,#f1f5f9)] - Text color.\n * @cssprop [--hx-code-snippet-font-family=var(--hx-font-family-mono,monospace)] - Font family.\n * @cssprop [--hx-code-snippet-font-size=var(--hx-font-size-sm,0.875rem)] - Font size.\n * @cssprop [--hx-code-snippet-border-radius=var(--hx-border-radius-md,0.375rem)] - Border radius.\n * @cssprop [--hx-code-snippet-padding=var(--hx-space-4,1rem)] - Inner padding (block mode).\n */\n@customElement('hx-code-snippet')\nexport class HelixCodeSnippet extends LitElement {\n static override styles = [tokenStyles, helixCodeSnippetStyles];\n\n // ─── Public Properties ───\n\n /**\n * Language hint for consumers to apply syntax highlighting.\n * Does not affect rendering directly; it is applied as a `language-*` class\n * on the `<code>` element so external highlighters can target it.\n * @attr language\n */\n @property({ type: String, reflect: true })\n language: string = '';\n\n /**\n * When true, renders as an inline `<code>` element instead of a `<pre><code>` block.\n * @attr inline\n */\n @property({ type: Boolean, reflect: true })\n inline: boolean = false;\n\n /**\n * When true, enables word-wrap in block mode.\n * @attr wrap\n */\n @property({ type: Boolean, reflect: true })\n wrap: boolean = false;\n\n /**\n * When true, shows a copy-to-clipboard button.\n * @attr copyable\n *\n * IMPORTANT: This is a standard boolean attribute. Setting `copyable=\"false\"` in HTML\n * will NOT disable the copy button — the attribute presence alone signals `true`.\n * To disable programmatically, set `el.copyable = false` via JavaScript.\n * In Lit/HTML templates, use `?copyable=${false}` (Lit boolean binding) to remove the attribute.\n */\n @property({ type: Boolean, reflect: true })\n copyable: boolean = true;\n\n /**\n * Maximum number of lines to display before showing a \"Show more\" button.\n * Set to 0 (default) to disable truncation.\n * @attr max-lines\n */\n @property({ type: Number, attribute: 'max-lines', reflect: true })\n maxLines: number = 0;\n\n /**\n * When true, prepends line numbers to each displayed line in block mode.\n * Line numbers are rendered as `aria-hidden` spans so screen readers skip them.\n * @attr line-numbers\n */\n @property({ type: Boolean, attribute: 'line-numbers', reflect: true })\n lineNumbers: boolean = false;\n\n // ─── Internal State ───\n\n @state() private _copied: boolean = false;\n @state() private _expanded: boolean = false;\n @state() private _codeText: string = '';\n\n private _copyTimer: ReturnType<typeof setTimeout> | null = null;\n\n // ─── Lifecycle ───\n\n override firstUpdated(): void {\n // Prevent flash of empty <code> before slotchange fires by eagerly reading\n // text content from host children that are already present on first render.\n if (!this._codeText) {\n const text = this.textContent?.trim() ?? '';\n if (text) {\n this._codeText = text;\n }\n }\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n if (this._copyTimer !== null) {\n clearTimeout(this._copyTimer);\n this._copyTimer = null;\n }\n }\n\n // ─── Event Handlers ───\n\n private _handleSlotChange(e: Event): void {\n const slot = e.target as HTMLSlotElement | null;\n if (!slot) return;\n const nodes = slot.assignedNodes({ flatten: true });\n this._codeText = nodes.map((n) => n.textContent ?? '').join('');\n }\n\n private _handleCopy(): void {\n const text = this._codeText;\n\n navigator.clipboard.writeText(text).catch(() => {\n // Clipboard API unavailable (non-HTTPS environments such as Drupal staging) — emit event only.\n // Note: navigator.clipboard requires a secure context (HTTPS or localhost).\n // On HTTP, the copy event still fires but the clipboard is not populated.\n });\n\n this.dispatchEvent(\n new CustomEvent('hx-copy', {\n bubbles: true,\n composed: true,\n detail: { text },\n }),\n );\n\n this._copied = true;\n if (this._copyTimer !== null) clearTimeout(this._copyTimer);\n this._copyTimer = setTimeout(() => {\n this._copied = false;\n }, 2000);\n }\n\n private _handleExpand(): void {\n this._expanded = !this._expanded;\n }\n\n // ─── Helpers ───\n\n private _getDisplayLines(): string[] {\n const lines = this._codeText.split('\\n');\n if (!this.maxLines || this.maxLines <= 0 || this._expanded) {\n return lines;\n }\n if (lines.length <= this.maxLines) {\n return lines;\n }\n return lines.slice(0, this.maxLines);\n }\n\n private _isTruncated(): boolean {\n if (!this.maxLines || this.maxLines <= 0) return false;\n const lines = this._codeText.split('\\n');\n return lines.length > this.maxLines;\n }\n\n private _renderLines(lines: string[]): TemplateResult {\n if (!this.lineNumbers) {\n return html`${lines.join('\\n')}`;\n }\n return html`${lines.map(\n (line, i) =>\n html`<span aria-hidden=\"true\" class=\"code-snippet__line-number\">${i + 1}</span>${line} `,\n )}`;\n }\n\n // ─── Render ───\n\n override render(): TemplateResult | typeof nothing {\n if (this.inline) {\n return html`\n <code part=\"base code\" class=\"code-snippet code-snippet--inline\">\n <slot @slotchange=${this._handleSlotChange}></slot>\n </code>\n `;\n }\n\n const displayLines = this._getDisplayLines();\n const truncated = this._isTruncated();\n const preLabel = this.language ? `Code snippet: ${this.language}` : 'Code snippet';\n const codeClasses = classMap({\n 'code-snippet__code': true,\n [`language-${this.language}`]: Boolean(this.language),\n });\n\n return html`\n <div part=\"base\" class=\"code-snippet\">\n <div part=\"header\" class=\"code-snippet__header\">\n ${this.copyable\n ? html`\n <button\n part=\"copy-button\"\n class=\"code-snippet__copy-button\"\n type=\"button\"\n aria-label=${this._copied ? 'Copied!' : 'Copy code'}\n @click=${this._handleCopy}\n >\n ${this._copied ? 'Copied!' : 'Copy'}\n </button>\n `\n : nothing}\n </div>\n\n <!-- Visually-hidden live region announces copy confirmation to assistive technology -->\n <span\n aria-live=\"polite\"\n style=\"position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0;\"\n >${this._copied ? 'Copied!' : ''}</span\n >\n\n <pre\n role=\"region\"\n aria-label=${preLabel}\n class=${classMap({\n 'code-snippet__pre': true,\n 'code-snippet__pre--wrap': this.wrap,\n })}\n ><code part=\"code\" class=${codeClasses}>${this._renderLines(displayLines)}</code></pre>\n\n <!-- Hidden slot to capture text content for display and copy -->\n <slot class=\"code-snippet__slot\" @slotchange=${this._handleSlotChange}></slot>\n\n ${truncated\n ? html`\n <button\n part=\"expand-button\"\n class=\"code-snippet__expand-button\"\n type=\"button\"\n aria-expanded=${this._expanded ? 'true' : 'false'}\n @click=${this._handleExpand}\n >\n ${this._expanded ? 'Show less' : 'Show more'}\n </button>\n `\n : nothing}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-code-snippet': HelixCodeSnippet;\n }\n}\n"],"names":["helixCodeSnippetStyles","css","HelixCodeSnippet","LitElement","text","_a","slot","nodes","lines","html","line","i","displayLines","truncated","preLabel","codeClasses","classMap","nothing","tokenStyles","__decorateClass","property","state","customElement"],"mappings":"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"}