@helixui/library 0.3.4 → 1.0.1

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 (452) hide show
  1. package/custom-elements.json +7076 -5902
  2. package/dist/components/hx-accordion/hx-accordion-item.d.ts +22 -0
  3. package/dist/components/hx-accordion/hx-accordion-item.d.ts.map +1 -1
  4. package/dist/components/hx-accordion/hx-accordion.d.ts +8 -0
  5. package/dist/components/hx-accordion/hx-accordion.d.ts.map +1 -1
  6. package/dist/components/hx-accordion/index.js +1 -1
  7. package/dist/components/hx-action-bar/hx-action-bar.d.ts.map +1 -1
  8. package/dist/components/hx-action-bar/index.js +1 -1
  9. package/dist/components/hx-alert/hx-alert.d.ts +12 -5
  10. package/dist/components/hx-alert/hx-alert.d.ts.map +1 -1
  11. package/dist/components/hx-alert/hx-alert.styles.d.ts.map +1 -1
  12. package/dist/components/hx-alert/index.js +1 -1
  13. package/dist/components/hx-avatar/hx-avatar.d.ts.map +1 -1
  14. package/dist/components/hx-avatar/index.js +1 -1
  15. package/dist/components/hx-badge/hx-badge.d.ts +2 -0
  16. package/dist/components/hx-badge/hx-badge.d.ts.map +1 -1
  17. package/dist/components/hx-badge/hx-badge.styles.d.ts.map +1 -1
  18. package/dist/components/hx-badge/index.js +1 -1
  19. package/dist/components/hx-banner/hx-banner.d.ts +105 -0
  20. package/dist/components/hx-banner/hx-banner.d.ts.map +1 -0
  21. package/dist/components/hx-banner/hx-banner.styles.d.ts +2 -0
  22. package/dist/components/hx-banner/hx-banner.styles.d.ts.map +1 -0
  23. package/dist/components/hx-banner/index.d.ts +3 -0
  24. package/dist/components/hx-banner/index.d.ts.map +1 -0
  25. package/dist/components/hx-banner/index.js +5 -0
  26. package/dist/components/hx-banner/index.js.map +1 -0
  27. package/dist/components/hx-breadcrumb/hx-breadcrumb-item.styles.d.ts.map +1 -1
  28. package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts +5 -0
  29. package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts.map +1 -1
  30. package/dist/components/hx-breadcrumb/index.js +1 -1
  31. package/dist/components/hx-button/hx-button.d.ts +17 -0
  32. package/dist/components/hx-button/hx-button.d.ts.map +1 -1
  33. package/dist/components/hx-button/hx-button.styles.d.ts.map +1 -1
  34. package/dist/components/hx-button/index.js +1 -1
  35. package/dist/components/hx-button-group/hx-button-group.d.ts +8 -0
  36. package/dist/components/hx-button-group/hx-button-group.d.ts.map +1 -1
  37. package/dist/components/hx-button-group/index.js +1 -1
  38. package/dist/components/hx-card/hx-card.d.ts +17 -0
  39. package/dist/components/hx-card/hx-card.d.ts.map +1 -1
  40. package/dist/components/hx-card/hx-card.styles.d.ts.map +1 -1
  41. package/dist/components/hx-card/index.js +1 -1
  42. package/dist/components/hx-carousel/hx-carousel.d.ts +122 -0
  43. package/dist/components/hx-carousel/hx-carousel.d.ts.map +1 -1
  44. package/dist/components/hx-carousel/hx-carousel.styles.d.ts.map +1 -1
  45. package/dist/components/hx-carousel/index.js +1 -1
  46. package/dist/components/hx-checkbox/hx-checkbox.d.ts +3 -1
  47. package/dist/components/hx-checkbox/hx-checkbox.d.ts.map +1 -1
  48. package/dist/components/hx-checkbox/hx-checkbox.styles.d.ts.map +1 -1
  49. package/dist/components/hx-checkbox/index.js +1 -1
  50. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts +5 -1
  51. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts.map +1 -1
  52. package/dist/components/hx-checkbox-group/index.js +1 -1
  53. package/dist/components/hx-code-snippet/hx-code-snippet.d.ts +21 -6
  54. package/dist/components/hx-code-snippet/hx-code-snippet.d.ts.map +1 -1
  55. package/dist/components/hx-code-snippet/index.js +1 -1
  56. package/dist/components/hx-color-picker/hx-color-picker.d.ts +47 -0
  57. package/dist/components/hx-color-picker/hx-color-picker.d.ts.map +1 -1
  58. package/dist/components/hx-color-picker/hx-color-picker.styles.d.ts.map +1 -1
  59. package/dist/components/hx-color-picker/index.js +1 -1
  60. package/dist/components/hx-combobox/hx-combobox.d.ts +24 -0
  61. package/dist/components/hx-combobox/hx-combobox.d.ts.map +1 -1
  62. package/dist/components/hx-combobox/hx-combobox.styles.d.ts.map +1 -1
  63. package/dist/components/hx-combobox/index.js +1 -1
  64. package/dist/components/hx-container/hx-container.d.ts +3 -1
  65. package/dist/components/hx-container/hx-container.d.ts.map +1 -1
  66. package/dist/components/hx-copy-button/hx-copy-button.d.ts +6 -0
  67. package/dist/components/hx-copy-button/hx-copy-button.d.ts.map +1 -1
  68. package/dist/components/hx-copy-button/index.js +1 -1
  69. package/dist/components/hx-counter/hx-counter.d.ts +79 -0
  70. package/dist/components/hx-counter/hx-counter.d.ts.map +1 -0
  71. package/dist/components/hx-counter/hx-counter.styles.d.ts +2 -0
  72. package/dist/components/hx-counter/hx-counter.styles.d.ts.map +1 -0
  73. package/dist/components/hx-counter/index.d.ts +3 -0
  74. package/dist/components/hx-counter/index.d.ts.map +1 -0
  75. package/dist/components/hx-counter/index.js +5 -0
  76. package/dist/components/hx-counter/index.js.map +1 -0
  77. package/dist/components/hx-data-table/hx-data-table.d.ts +6 -0
  78. package/dist/components/hx-data-table/hx-data-table.d.ts.map +1 -1
  79. package/dist/components/hx-data-table/hx-data-table.styles.d.ts.map +1 -1
  80. package/dist/components/hx-data-table/index.js +1 -1
  81. package/dist/components/hx-date-picker/hx-date-picker.d.ts +124 -0
  82. package/dist/components/hx-date-picker/hx-date-picker.d.ts.map +1 -1
  83. package/dist/components/hx-date-picker/hx-date-picker.styles.d.ts.map +1 -1
  84. package/dist/components/hx-date-picker/index.js +1 -1
  85. package/dist/components/hx-dialog/hx-dialog.d.ts.map +1 -1
  86. package/dist/components/hx-dialog/hx-dialog.styles.d.ts.map +1 -1
  87. package/dist/components/hx-dialog/index.js +1 -1
  88. package/dist/components/hx-divider/hx-divider.d.ts +3 -0
  89. package/dist/components/hx-divider/hx-divider.d.ts.map +1 -1
  90. package/dist/components/hx-drawer/hx-drawer.d.ts +54 -1
  91. package/dist/components/hx-drawer/hx-drawer.d.ts.map +1 -1
  92. package/dist/components/hx-drawer/hx-drawer.styles.d.ts.map +1 -1
  93. package/dist/components/hx-drawer/index.js +1 -1
  94. package/dist/components/hx-dropdown/hx-dropdown.d.ts +20 -0
  95. package/dist/components/hx-dropdown/hx-dropdown.d.ts.map +1 -1
  96. package/dist/components/hx-dropdown/index.js +1 -1
  97. package/dist/components/hx-field/hx-field.d.ts +31 -1
  98. package/dist/components/hx-field/hx-field.d.ts.map +1 -1
  99. package/dist/components/hx-field/index.js +1 -1
  100. package/dist/components/hx-file-upload/hx-file-upload.d.ts +12 -0
  101. package/dist/components/hx-file-upload/hx-file-upload.d.ts.map +1 -1
  102. package/dist/components/hx-file-upload/hx-file-upload.styles.d.ts.map +1 -1
  103. package/dist/components/hx-file-upload/index.js +1 -1
  104. package/dist/components/hx-form/hx-form.d.ts +24 -0
  105. package/dist/components/hx-form/hx-form.d.ts.map +1 -1
  106. package/dist/components/hx-form/index.js +1 -1
  107. package/dist/components/hx-help-text/hx-help-text.d.ts +3 -0
  108. package/dist/components/hx-help-text/hx-help-text.d.ts.map +1 -1
  109. package/dist/components/hx-icon-button/hx-icon-button.d.ts.map +1 -1
  110. package/dist/components/hx-icon-button/hx-icon-button.styles.d.ts.map +1 -1
  111. package/dist/components/hx-icon-button/index.js +1 -1
  112. package/dist/components/hx-list/hx-list.d.ts.map +1 -1
  113. package/dist/components/hx-list/index.js +1 -1
  114. package/dist/components/hx-menu/hx-menu-item.d.ts +1 -0
  115. package/dist/components/hx-menu/hx-menu-item.d.ts.map +1 -1
  116. package/dist/components/hx-menu/hx-menu.d.ts +13 -0
  117. package/dist/components/hx-menu/hx-menu.d.ts.map +1 -1
  118. package/dist/components/hx-menu/index.js +1 -1
  119. package/dist/components/hx-meter/hx-meter.d.ts +3 -0
  120. package/dist/components/hx-meter/hx-meter.d.ts.map +1 -1
  121. package/dist/components/hx-meter/hx-meter.styles.d.ts.map +1 -1
  122. package/dist/components/hx-meter/index.js +1 -1
  123. package/dist/components/hx-nav/hx-nav.d.ts +15 -1
  124. package/dist/components/hx-nav/hx-nav.d.ts.map +1 -1
  125. package/dist/components/hx-nav/hx-nav.styles.d.ts.map +1 -1
  126. package/dist/components/hx-nav/index.js +1 -1
  127. package/dist/components/hx-number-input/hx-number-input.d.ts +2 -0
  128. package/dist/components/hx-number-input/hx-number-input.d.ts.map +1 -1
  129. package/dist/components/hx-number-input/index.js +1 -1
  130. package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts +14 -0
  131. package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts.map +1 -1
  132. package/dist/components/hx-overflow-menu/hx-overflow-menu.styles.d.ts.map +1 -1
  133. package/dist/components/hx-overflow-menu/index.js +1 -1
  134. package/dist/components/hx-pagination/hx-pagination.d.ts +5 -0
  135. package/dist/components/hx-pagination/hx-pagination.d.ts.map +1 -1
  136. package/dist/components/hx-pagination/hx-pagination.styles.d.ts.map +1 -1
  137. package/dist/components/hx-pagination/index.js +1 -1
  138. package/dist/components/hx-popover/hx-popover.d.ts +43 -39
  139. package/dist/components/hx-popover/hx-popover.d.ts.map +1 -1
  140. package/dist/components/hx-popover/hx-popover.styles.d.ts.map +1 -1
  141. package/dist/components/hx-popover/index.js +1 -1
  142. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts +12 -0
  143. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts.map +1 -1
  144. package/dist/components/hx-progress-bar/index.js +1 -1
  145. package/dist/components/hx-progress-ring/hx-progress-ring.d.ts.map +1 -1
  146. package/dist/components/hx-progress-ring/index.js +1 -1
  147. package/dist/components/hx-radio-group/hx-radio-group.d.ts +75 -3
  148. package/dist/components/hx-radio-group/hx-radio-group.d.ts.map +1 -1
  149. package/dist/components/hx-radio-group/hx-radio.d.ts +3 -1
  150. package/dist/components/hx-radio-group/hx-radio.d.ts.map +1 -1
  151. package/dist/components/hx-radio-group/hx-radio.styles.d.ts.map +1 -1
  152. package/dist/components/hx-radio-group/index.js +1 -1
  153. package/dist/components/hx-rating/hx-rating.d.ts +18 -3
  154. package/dist/components/hx-rating/hx-rating.d.ts.map +1 -1
  155. package/dist/components/hx-rating/index.js +1 -1
  156. package/dist/components/hx-select/hx-select.d.ts +9 -0
  157. package/dist/components/hx-select/hx-select.d.ts.map +1 -1
  158. package/dist/components/hx-select/hx-select.styles.d.ts.map +1 -1
  159. package/dist/components/hx-select/index.js +1 -1
  160. package/dist/components/hx-side-nav/hx-side-nav.d.ts.map +1 -1
  161. package/dist/components/hx-side-nav/index.js +1 -1
  162. package/dist/components/hx-slider/hx-slider.d.ts +2 -0
  163. package/dist/components/hx-slider/hx-slider.d.ts.map +1 -1
  164. package/dist/components/hx-slider/index.js +1 -1
  165. package/dist/components/hx-split-button/hx-split-button.d.ts +16 -0
  166. package/dist/components/hx-split-button/hx-split-button.d.ts.map +1 -1
  167. package/dist/components/hx-split-button/index.js +1 -1
  168. package/dist/components/hx-split-panel/hx-split-panel.d.ts +44 -0
  169. package/dist/components/hx-split-panel/hx-split-panel.d.ts.map +1 -1
  170. package/dist/components/hx-split-panel/hx-split-panel.styles.d.ts.map +1 -1
  171. package/dist/components/hx-split-panel/index.js +1 -1
  172. package/dist/components/hx-stat/hx-stat.d.ts +71 -0
  173. package/dist/components/hx-stat/hx-stat.d.ts.map +1 -0
  174. package/dist/components/hx-stat/hx-stat.styles.d.ts +2 -0
  175. package/dist/components/hx-stat/hx-stat.styles.d.ts.map +1 -0
  176. package/dist/components/hx-stat/index.d.ts +3 -0
  177. package/dist/components/hx-stat/index.d.ts.map +1 -0
  178. package/dist/components/hx-stat/index.js +5 -0
  179. package/dist/components/hx-stat/index.js.map +1 -0
  180. package/dist/components/hx-steps/hx-steps.d.ts +5 -0
  181. package/dist/components/hx-steps/hx-steps.d.ts.map +1 -1
  182. package/dist/components/hx-steps/index.js +1 -1
  183. package/dist/components/hx-structured-list/hx-structured-list.d.ts +2 -0
  184. package/dist/components/hx-structured-list/hx-structured-list.d.ts.map +1 -1
  185. package/dist/components/hx-structured-list/index.js +1 -1
  186. package/dist/components/hx-switch/hx-switch.d.ts +2 -0
  187. package/dist/components/hx-switch/hx-switch.d.ts.map +1 -1
  188. package/dist/components/hx-switch/index.js +1 -1
  189. package/dist/components/hx-table/hx-table.d.ts +60 -0
  190. package/dist/components/hx-table/hx-table.d.ts.map +1 -0
  191. package/dist/components/hx-table/hx-table.styles.d.ts +9 -0
  192. package/dist/components/hx-table/hx-table.styles.d.ts.map +1 -0
  193. package/dist/components/hx-table/hx-tbody.d.ts +23 -0
  194. package/dist/components/hx-table/hx-tbody.d.ts.map +1 -0
  195. package/dist/components/hx-table/hx-td.d.ts +46 -0
  196. package/dist/components/hx-table/hx-td.d.ts.map +1 -0
  197. package/dist/components/hx-table/hx-tfoot.d.ts +23 -0
  198. package/dist/components/hx-table/hx-tfoot.d.ts.map +1 -0
  199. package/dist/components/hx-table/hx-th.d.ts +61 -0
  200. package/dist/components/hx-table/hx-th.d.ts.map +1 -0
  201. package/dist/components/hx-table/hx-thead.d.ts +23 -0
  202. package/dist/components/hx-table/hx-thead.d.ts.map +1 -0
  203. package/dist/components/hx-table/hx-tr.d.ts +33 -0
  204. package/dist/components/hx-table/hx-tr.d.ts.map +1 -0
  205. package/dist/components/hx-table/index.d.ts +9 -0
  206. package/dist/components/hx-table/index.d.ts.map +1 -0
  207. package/dist/components/hx-table/index.js +11 -0
  208. package/dist/components/hx-table/index.js.map +1 -0
  209. package/dist/components/hx-tabs/hx-tabs.d.ts.map +1 -1
  210. package/dist/components/hx-tabs/index.js +1 -1
  211. package/dist/components/hx-tag/hx-tag.d.ts +2 -0
  212. package/dist/components/hx-tag/hx-tag.d.ts.map +1 -1
  213. package/dist/components/hx-tag/hx-tag.styles.d.ts.map +1 -1
  214. package/dist/components/hx-tag/index.js +1 -1
  215. package/dist/components/hx-text-input/hx-text-input.d.ts +2 -1
  216. package/dist/components/hx-text-input/hx-text-input.d.ts.map +1 -1
  217. package/dist/components/hx-text-input/index.js +1 -1
  218. package/dist/components/hx-textarea/hx-textarea.d.ts +14 -0
  219. package/dist/components/hx-textarea/hx-textarea.d.ts.map +1 -1
  220. package/dist/components/hx-textarea/hx-textarea.styles.d.ts.map +1 -1
  221. package/dist/components/hx-textarea/index.js +1 -1
  222. package/dist/components/hx-time-picker/hx-time-picker.d.ts +83 -1
  223. package/dist/components/hx-time-picker/hx-time-picker.d.ts.map +1 -1
  224. package/dist/components/hx-time-picker/index.js +1 -1
  225. package/dist/components/hx-toast/hx-toast-stack.d.ts +36 -0
  226. package/dist/components/hx-toast/hx-toast-stack.d.ts.map +1 -0
  227. package/dist/components/hx-toast/hx-toast.d.ts +10 -52
  228. package/dist/components/hx-toast/hx-toast.d.ts.map +1 -1
  229. package/dist/components/hx-toast/hx-toast.styles.d.ts.map +1 -1
  230. package/dist/components/hx-toast/index.d.ts +6 -2
  231. package/dist/components/hx-toast/index.d.ts.map +1 -1
  232. package/dist/components/hx-toast/index.js +1 -1
  233. package/dist/components/hx-toast/toast-factory.d.ts +25 -0
  234. package/dist/components/hx-toast/toast-factory.d.ts.map +1 -0
  235. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts +1 -0
  236. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts.map +1 -1
  237. package/dist/components/hx-toggle-button/index.js +1 -1
  238. package/dist/components/hx-tooltip/hx-tooltip.d.ts +1 -45
  239. package/dist/components/hx-tooltip/hx-tooltip.d.ts.map +1 -1
  240. package/dist/components/hx-tooltip/index.js +1 -1
  241. package/dist/components/hx-top-nav/hx-top-nav.d.ts.map +1 -1
  242. package/dist/components/hx-top-nav/index.js +1 -1
  243. package/dist/components/hx-tree-view/hx-tree-item.d.ts +61 -1
  244. package/dist/components/hx-tree-view/hx-tree-item.d.ts.map +1 -1
  245. package/dist/components/hx-tree-view/hx-tree-item.styles.d.ts.map +1 -1
  246. package/dist/components/hx-tree-view/hx-tree-view.d.ts +16 -0
  247. package/dist/components/hx-tree-view/hx-tree-view.d.ts.map +1 -1
  248. package/dist/components/hx-tree-view/index.js +1 -1
  249. package/dist/index.d.ts +20 -2
  250. package/dist/index.d.ts.map +1 -1
  251. package/dist/index.js +169 -155
  252. package/dist/index.js.map +1 -1
  253. package/dist/shared/body-scroll-lock-VBa5TFP-.js +12 -0
  254. package/dist/shared/body-scroll-lock-VBa5TFP-.js.map +1 -0
  255. package/dist/shared/dev-warn-YlwPHjtX.js +6 -0
  256. package/dist/shared/dev-warn-YlwPHjtX.js.map +1 -0
  257. package/dist/shared/{hx-accordion-D95XSAft.js → hx-accordion-DT8qHOay.js} +73 -53
  258. package/dist/shared/hx-accordion-DT8qHOay.js.map +1 -0
  259. package/dist/shared/{hx-action-bar-B4i9tBCP.js → hx-action-bar-we_WJety.js} +41 -40
  260. package/dist/shared/hx-action-bar-we_WJety.js.map +1 -0
  261. package/dist/shared/{hx-alert-BQpT4gL3.js → hx-alert-D6uok29t.js} +95 -28
  262. package/dist/shared/hx-alert-D6uok29t.js.map +1 -0
  263. package/dist/shared/{hx-avatar-yHjmNdtf.js → hx-avatar-Cep6Urm3.js} +62 -65
  264. package/dist/shared/hx-avatar-Cep6Urm3.js.map +1 -0
  265. package/dist/shared/{hx-badge-CjT0d8NK.js → hx-badge-BeuWuUj_.js} +57 -31
  266. package/dist/shared/hx-badge-BeuWuUj_.js.map +1 -0
  267. package/dist/shared/hx-banner-DnCBJtRR.js +353 -0
  268. package/dist/shared/hx-banner-DnCBJtRR.js.map +1 -0
  269. package/dist/shared/{hx-breadcrumb-item-DtSxRZ_W.js → hx-breadcrumb-item-Bj2UqhzR.js} +54 -48
  270. package/dist/shared/hx-breadcrumb-item-Bj2UqhzR.js.map +1 -0
  271. package/dist/shared/{hx-button-CtiJsmOg.js → hx-button-Cbhqpm5i.js} +111 -28
  272. package/dist/shared/hx-button-Cbhqpm5i.js.map +1 -0
  273. package/dist/shared/{hx-button-group-BMV5qFs4.js → hx-button-group-CWjWv-wS.js} +10 -10
  274. package/dist/shared/hx-button-group-CWjWv-wS.js.map +1 -0
  275. package/dist/shared/{hx-card-DAkEfpJd.js → hx-card-B9j2SHyI.js} +26 -22
  276. package/dist/shared/hx-card-B9j2SHyI.js.map +1 -0
  277. package/dist/shared/{hx-carousel-item-C2yBnM0r.js → hx-carousel-item-Be0bC-7o.js} +150 -98
  278. package/dist/shared/hx-carousel-item-Be0bC-7o.js.map +1 -0
  279. package/dist/shared/{hx-checkbox-BMayOpAM.js → hx-checkbox-CuaJqEo7.js} +3 -1
  280. package/dist/shared/hx-checkbox-CuaJqEo7.js.map +1 -0
  281. package/dist/shared/{hx-checkbox-group-DTS9iT4b.js → hx-checkbox-group-ydUdV9Sx.js} +7 -7
  282. package/dist/shared/hx-checkbox-group-ydUdV9Sx.js.map +1 -0
  283. package/dist/shared/{hx-code-snippet-DdEqy-1B.js → hx-code-snippet-DBwIjl5p.js} +71 -59
  284. package/dist/shared/hx-code-snippet-DBwIjl5p.js.map +1 -0
  285. package/dist/shared/{hx-color-picker-K2x_dyeG.js → hx-color-picker-Bb2UPVc3.js} +101 -91
  286. package/dist/shared/hx-color-picker-Bb2UPVc3.js.map +1 -0
  287. package/dist/shared/{hx-combobox-DjMigccw.js → hx-combobox-CNvY-es8.js} +104 -65
  288. package/dist/shared/hx-combobox-CNvY-es8.js.map +1 -0
  289. package/dist/shared/hx-container-DLUKnTi9.js.map +1 -1
  290. package/dist/shared/{hx-copy-button-BXL1xkxb.js → hx-copy-button-CLBA31to.js} +45 -50
  291. package/dist/shared/hx-copy-button-CLBA31to.js.map +1 -0
  292. package/dist/shared/hx-counter-D-1NXzGs.js +138 -0
  293. package/dist/shared/hx-counter-D-1NXzGs.js.map +1 -0
  294. package/dist/shared/{hx-data-table-D3NZvc3P.js → hx-data-table-BwoJCFgs.js} +102 -96
  295. package/dist/shared/hx-data-table-BwoJCFgs.js.map +1 -0
  296. package/dist/shared/{hx-date-picker-CIHwx9b3.js → hx-date-picker-DDcIBJir.js} +58 -47
  297. package/dist/shared/hx-date-picker-DDcIBJir.js.map +1 -0
  298. package/dist/shared/{hx-dialog-e4CSD8xX.js → hx-dialog-M7so0sRT.js} +33 -25
  299. package/dist/shared/hx-dialog-M7so0sRT.js.map +1 -0
  300. package/dist/shared/hx-divider-XgWIz4Mr.js.map +1 -1
  301. package/dist/shared/{hx-drawer-bTF0nbrg.js → hx-drawer-CYxuhIQ0.js} +53 -45
  302. package/dist/shared/hx-drawer-CYxuhIQ0.js.map +1 -0
  303. package/dist/shared/{hx-dropdown-DnjLnkTj.js → hx-dropdown-7cfowTWv.js} +30 -30
  304. package/dist/shared/hx-dropdown-7cfowTWv.js.map +1 -0
  305. package/dist/shared/{hx-field-Dz-7M_SC.js → hx-field-CDP8EXuj.js} +22 -19
  306. package/dist/shared/hx-field-CDP8EXuj.js.map +1 -0
  307. package/dist/shared/{hx-file-upload-DnYiIhyN.js → hx-file-upload-9HbONfqt.js} +63 -54
  308. package/dist/shared/hx-file-upload-9HbONfqt.js.map +1 -0
  309. package/dist/shared/{hx-form-BJeLK34m.js → hx-form-BFv_N1dm.js} +9 -1
  310. package/dist/shared/{hx-form-BJeLK34m.js.map → hx-form-BFv_N1dm.js.map} +1 -1
  311. package/dist/shared/hx-help-text-DaOPN1iB.js.map +1 -1
  312. package/dist/shared/{hx-icon-button-C_fsUJW4.js → hx-icon-button-iu0i_faq.js} +40 -32
  313. package/dist/shared/hx-icon-button-iu0i_faq.js.map +1 -0
  314. package/dist/shared/{hx-list-CF-AAnp-.js → hx-list-CdRNgeoP.js} +7 -9
  315. package/dist/shared/{hx-list-CF-AAnp-.js.map → hx-list-CdRNgeoP.js.map} +1 -1
  316. package/dist/shared/{hx-menu-divider-Buc5XA9E.js → hx-menu-divider-DR8klkFT.js} +46 -38
  317. package/dist/shared/hx-menu-divider-DR8klkFT.js.map +1 -0
  318. package/dist/shared/{hx-meter-qcXl0zCL.js → hx-meter-CZ7lnMra.js} +87 -49
  319. package/dist/shared/hx-meter-CZ7lnMra.js.map +1 -0
  320. package/dist/shared/{hx-nav-CWwByFdq.js → hx-nav-DM6-cGKF.js} +97 -95
  321. package/dist/shared/hx-nav-DM6-cGKF.js.map +1 -0
  322. package/dist/shared/{hx-nav-item-DItaMWl0.js → hx-nav-item-D54-5eUM.js} +12 -12
  323. package/dist/shared/hx-nav-item-D54-5eUM.js.map +1 -0
  324. package/dist/shared/{hx-number-input-CS6_w1lT.js → hx-number-input-BP6TIA92.js} +5 -1
  325. package/dist/shared/hx-number-input-BP6TIA92.js.map +1 -0
  326. package/dist/shared/{hx-overflow-menu-CAS1Mlus.js → hx-overflow-menu-CobkjAb8.js} +50 -37
  327. package/dist/shared/hx-overflow-menu-CobkjAb8.js.map +1 -0
  328. package/dist/shared/{hx-pagination-DNFgXQm3.js → hx-pagination-10dpXS95.js} +74 -69
  329. package/dist/shared/hx-pagination-10dpXS95.js.map +1 -0
  330. package/dist/shared/hx-popover-ULjonbaO.js +269 -0
  331. package/dist/shared/hx-popover-ULjonbaO.js.map +1 -0
  332. package/dist/shared/{hx-progress-bar-b3_m1hna.js → hx-progress-bar-CnTibV63.js} +69 -50
  333. package/dist/shared/hx-progress-bar-CnTibV63.js.map +1 -0
  334. package/dist/shared/{hx-progress-ring-wOSv2y_I.js → hx-progress-ring-BHJBaXNk.js} +2 -4
  335. package/dist/shared/hx-progress-ring-BHJBaXNk.js.map +1 -0
  336. package/dist/shared/{hx-radio-CGtFKls2.js → hx-radio-BnKcRuQu.js} +46 -12
  337. package/dist/shared/hx-radio-BnKcRuQu.js.map +1 -0
  338. package/dist/shared/{hx-rating-C4kTOyHF.js → hx-rating-Y_t7Z4qb.js} +104 -67
  339. package/dist/shared/hx-rating-Y_t7Z4qb.js.map +1 -0
  340. package/dist/shared/{hx-select-D9bYJcDv.js → hx-select-C50lD7NS.js} +19 -12
  341. package/dist/shared/hx-select-C50lD7NS.js.map +1 -0
  342. package/dist/shared/{hx-slider-Duzmuid9.js → hx-slider-CprSNrRi.js} +11 -6
  343. package/dist/shared/hx-slider-CprSNrRi.js.map +1 -0
  344. package/dist/shared/{hx-split-button-DhncgAtZ.js → hx-split-button-CHGy4FUc.js} +19 -18
  345. package/dist/shared/hx-split-button-CHGy4FUc.js.map +1 -0
  346. package/dist/shared/{hx-split-panel-Cxkeauwe.js → hx-split-panel-DYtB45Tr.js} +16 -8
  347. package/dist/shared/hx-split-panel-DYtB45Tr.js.map +1 -0
  348. package/dist/shared/hx-stat-C2wfph8W.js +212 -0
  349. package/dist/shared/hx-stat-C2wfph8W.js.map +1 -0
  350. package/dist/shared/{hx-step-nMT0fHEn.js → hx-step-DYoIumpR.js} +29 -29
  351. package/dist/shared/hx-step-DYoIumpR.js.map +1 -0
  352. package/dist/shared/{hx-structured-list-CMja1VXz.js → hx-structured-list-CMWllxGg.js} +23 -17
  353. package/dist/shared/{hx-structured-list-CMja1VXz.js.map → hx-structured-list-CMWllxGg.js.map} +1 -1
  354. package/dist/shared/{hx-switch-BPvIcDpM.js → hx-switch-DkKchcuP.js} +8 -3
  355. package/dist/shared/{hx-switch-BPvIcDpM.js.map → hx-switch-DkKchcuP.js.map} +1 -1
  356. package/dist/shared/{hx-tab-panel-C7h5lRpw.js → hx-tab-panel-BRNcLICw.js} +129 -120
  357. package/dist/shared/hx-tab-panel-BRNcLICw.js.map +1 -0
  358. package/dist/shared/{hx-tag-SJJtMlOS.js → hx-tag-B3N-vZ6B.js} +80 -55
  359. package/dist/shared/hx-tag-B3N-vZ6B.js.map +1 -0
  360. package/dist/shared/hx-td-CVwCGBYf.js +604 -0
  361. package/dist/shared/hx-td-CVwCGBYf.js.map +1 -0
  362. package/dist/shared/{hx-text-input-BUMgOQHX.js → hx-text-input-CCZZbWQ9.js} +10 -6
  363. package/dist/shared/hx-text-input-CCZZbWQ9.js.map +1 -0
  364. package/dist/shared/{hx-textarea-B_nmxzhC.js → hx-textarea-BsQdB1Rk.js} +51 -18
  365. package/dist/shared/hx-textarea-BsQdB1Rk.js.map +1 -0
  366. package/dist/shared/{hx-time-picker-a-BCkecJ.js → hx-time-picker-CJcIjH3C.js} +65 -54
  367. package/dist/shared/hx-time-picker-CJcIjH3C.js.map +1 -0
  368. package/dist/shared/{hx-toggle-button--xCXWRJW.js → hx-toggle-button-D4F1soEM.js} +34 -22
  369. package/dist/shared/{hx-toggle-button--xCXWRJW.js.map → hx-toggle-button-D4F1soEM.js.map} +1 -1
  370. package/dist/shared/{hx-tooltip-DN6lMlP5.js → hx-tooltip-Bk1iQRHs.js} +23 -23
  371. package/dist/shared/hx-tooltip-Bk1iQRHs.js.map +1 -0
  372. package/dist/shared/{hx-top-nav-8lDKNZUj.js → hx-top-nav-D2bQpns3.js} +43 -30
  373. package/dist/shared/{hx-top-nav-8lDKNZUj.js.map → hx-top-nav-D2bQpns3.js.map} +1 -1
  374. package/dist/shared/{hx-tree-item-Cesh_du5.js → hx-tree-item-BobGN76x.js} +202 -120
  375. package/dist/shared/hx-tree-item-BobGN76x.js.map +1 -0
  376. package/dist/shared/{hx-toast-ikwh9Y03.js → toast-factory-MvMMreTu.js} +181 -94
  377. package/dist/shared/toast-factory-MvMMreTu.js.map +1 -0
  378. package/dist/tools/cem-a11y-analyzer/analyzers/aria-analyzer.d.ts +12 -0
  379. package/dist/tools/cem-a11y-analyzer/analyzers/aria-analyzer.d.ts.map +1 -0
  380. package/dist/tools/cem-a11y-analyzer/analyzers/focus-analyzer.d.ts +13 -0
  381. package/dist/tools/cem-a11y-analyzer/analyzers/focus-analyzer.d.ts.map +1 -0
  382. package/dist/tools/cem-a11y-analyzer/analyzers/form-analyzer.d.ts +13 -0
  383. package/dist/tools/cem-a11y-analyzer/analyzers/form-analyzer.d.ts.map +1 -0
  384. package/dist/tools/cem-a11y-analyzer/analyzers/keyboard-analyzer.d.ts +12 -0
  385. package/dist/tools/cem-a11y-analyzer/analyzers/keyboard-analyzer.d.ts.map +1 -0
  386. package/dist/tools/cem-a11y-analyzer/analyzers/label-analyzer.d.ts +13 -0
  387. package/dist/tools/cem-a11y-analyzer/analyzers/label-analyzer.d.ts.map +1 -0
  388. package/dist/tools/cem-a11y-analyzer/analyzers/motion-analyzer.d.ts +12 -0
  389. package/dist/tools/cem-a11y-analyzer/analyzers/motion-analyzer.d.ts.map +1 -0
  390. package/dist/tools/cem-a11y-analyzer/index.d.ts +14 -0
  391. package/dist/tools/cem-a11y-analyzer/index.d.ts.map +1 -0
  392. package/dist/tools/cem-a11y-analyzer/reporter.d.ts +6 -0
  393. package/dist/tools/cem-a11y-analyzer/reporter.d.ts.map +1 -0
  394. package/dist/tools/cem-a11y-analyzer/scorer.d.ts +22 -0
  395. package/dist/tools/cem-a11y-analyzer/scorer.d.ts.map +1 -0
  396. package/dist/tools/cem-a11y-analyzer/types.d.ts +171 -0
  397. package/dist/tools/cem-a11y-analyzer/types.d.ts.map +1 -0
  398. package/dist/utils/body-scroll-lock.d.ts +34 -0
  399. package/dist/utils/body-scroll-lock.d.ts.map +1 -0
  400. package/dist/utils/dev-warn.d.ts +19 -0
  401. package/dist/utils/dev-warn.d.ts.map +1 -0
  402. package/package.json +1 -1
  403. package/dist/shared/hx-accordion-D95XSAft.js.map +0 -1
  404. package/dist/shared/hx-action-bar-B4i9tBCP.js.map +0 -1
  405. package/dist/shared/hx-alert-BQpT4gL3.js.map +0 -1
  406. package/dist/shared/hx-avatar-yHjmNdtf.js.map +0 -1
  407. package/dist/shared/hx-badge-CjT0d8NK.js.map +0 -1
  408. package/dist/shared/hx-breadcrumb-item-DtSxRZ_W.js.map +0 -1
  409. package/dist/shared/hx-button-CtiJsmOg.js.map +0 -1
  410. package/dist/shared/hx-button-group-BMV5qFs4.js.map +0 -1
  411. package/dist/shared/hx-card-DAkEfpJd.js.map +0 -1
  412. package/dist/shared/hx-carousel-item-C2yBnM0r.js.map +0 -1
  413. package/dist/shared/hx-checkbox-BMayOpAM.js.map +0 -1
  414. package/dist/shared/hx-checkbox-group-DTS9iT4b.js.map +0 -1
  415. package/dist/shared/hx-code-snippet-DdEqy-1B.js.map +0 -1
  416. package/dist/shared/hx-color-picker-K2x_dyeG.js.map +0 -1
  417. package/dist/shared/hx-combobox-DjMigccw.js.map +0 -1
  418. package/dist/shared/hx-copy-button-BXL1xkxb.js.map +0 -1
  419. package/dist/shared/hx-data-table-D3NZvc3P.js.map +0 -1
  420. package/dist/shared/hx-date-picker-CIHwx9b3.js.map +0 -1
  421. package/dist/shared/hx-dialog-e4CSD8xX.js.map +0 -1
  422. package/dist/shared/hx-drawer-bTF0nbrg.js.map +0 -1
  423. package/dist/shared/hx-dropdown-DnjLnkTj.js.map +0 -1
  424. package/dist/shared/hx-field-Dz-7M_SC.js.map +0 -1
  425. package/dist/shared/hx-file-upload-DnYiIhyN.js.map +0 -1
  426. package/dist/shared/hx-icon-button-C_fsUJW4.js.map +0 -1
  427. package/dist/shared/hx-menu-divider-Buc5XA9E.js.map +0 -1
  428. package/dist/shared/hx-meter-qcXl0zCL.js.map +0 -1
  429. package/dist/shared/hx-nav-CWwByFdq.js.map +0 -1
  430. package/dist/shared/hx-nav-item-DItaMWl0.js.map +0 -1
  431. package/dist/shared/hx-number-input-CS6_w1lT.js.map +0 -1
  432. package/dist/shared/hx-overflow-menu-CAS1Mlus.js.map +0 -1
  433. package/dist/shared/hx-pagination-DNFgXQm3.js.map +0 -1
  434. package/dist/shared/hx-popover-BjAyLbzp.js +0 -226
  435. package/dist/shared/hx-popover-BjAyLbzp.js.map +0 -1
  436. package/dist/shared/hx-progress-bar-b3_m1hna.js.map +0 -1
  437. package/dist/shared/hx-progress-ring-wOSv2y_I.js.map +0 -1
  438. package/dist/shared/hx-radio-CGtFKls2.js.map +0 -1
  439. package/dist/shared/hx-rating-C4kTOyHF.js.map +0 -1
  440. package/dist/shared/hx-select-D9bYJcDv.js.map +0 -1
  441. package/dist/shared/hx-slider-Duzmuid9.js.map +0 -1
  442. package/dist/shared/hx-split-button-DhncgAtZ.js.map +0 -1
  443. package/dist/shared/hx-split-panel-Cxkeauwe.js.map +0 -1
  444. package/dist/shared/hx-step-nMT0fHEn.js.map +0 -1
  445. package/dist/shared/hx-tab-panel-C7h5lRpw.js.map +0 -1
  446. package/dist/shared/hx-tag-SJJtMlOS.js.map +0 -1
  447. package/dist/shared/hx-text-input-BUMgOQHX.js.map +0 -1
  448. package/dist/shared/hx-textarea-B_nmxzhC.js.map +0 -1
  449. package/dist/shared/hx-time-picker-a-BCkecJ.js.map +0 -1
  450. package/dist/shared/hx-toast-ikwh9Y03.js.map +0 -1
  451. package/dist/shared/hx-tooltip-DN6lMlP5.js.map +0 -1
  452. package/dist/shared/hx-tree-item-Cesh_du5.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hx-button-group-CWjWv-wS.js","sources":["../../src/components/hx-button-group/hx-button-group.styles.ts","../../src/components/hx-button-group/hx-button-group.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixButtonGroupStyles = css`\n :host {\n display: inline-flex;\n contain: layout style;\n }\n\n .group {\n display: inline-flex;\n align-items: stretch;\n }\n\n /* ─── Orientation Variants ─── */\n\n .group--horizontal {\n flex-direction: row;\n }\n\n .group--vertical {\n flex-direction: column;\n }\n\n /* ─── No Double Borders: Horizontal ─── */\n\n .group--horizontal ::slotted(*:not(:first-child)) {\n margin-left: calc(-1 * var(--hx-border-width-thin, 1px));\n }\n\n /* ─── No Double Borders: Vertical ─── */\n\n .group--vertical ::slotted(*:not(:first-child)) {\n margin-top: calc(-1 * var(--hx-border-width-thin, 1px));\n }\n\n /* ─── Border Radius: Horizontal — Single child keeps all corners ─── */\n\n .group--horizontal ::slotted(:only-child) {\n --hx-button-border-radius: var(--hx-border-radius-md, 0.375rem);\n }\n\n /* ─── Border Radius: Horizontal — First child keeps left corners ─── */\n\n .group--horizontal ::slotted(:first-child:not(:only-child)) {\n --hx-button-border-radius: var(--hx-border-radius-md, 0.375rem) 0 0\n var(--hx-border-radius-md, 0.375rem);\n }\n\n /* ─── Border Radius: Horizontal — Last child keeps right corners ─── */\n\n .group--horizontal ::slotted(:last-child:not(:only-child)) {\n --hx-button-border-radius: 0 var(--hx-border-radius-md, 0.375rem)\n var(--hx-border-radius-md, 0.375rem) 0;\n }\n\n /* ─── Border Radius: Horizontal — Middle children have no radius ─── */\n\n .group--horizontal ::slotted(:not(:first-child):not(:last-child)) {\n --hx-button-border-radius: 0;\n }\n\n /* ─── Border Radius: Vertical — Single child keeps all corners ─── */\n\n .group--vertical ::slotted(:only-child) {\n --hx-button-border-radius: var(--hx-border-radius-md, 0.375rem);\n }\n\n /* ─── Border Radius: Vertical — First child keeps top corners ─── */\n\n .group--vertical ::slotted(:first-child:not(:only-child)) {\n --hx-button-border-radius: var(--hx-border-radius-md, 0.375rem)\n var(--hx-border-radius-md, 0.375rem) 0 0;\n }\n\n /* ─── Border Radius: Vertical — Last child keeps bottom corners ─── */\n\n .group--vertical ::slotted(:last-child:not(:only-child)) {\n --hx-button-border-radius: 0 0 var(--hx-border-radius-md, 0.375rem)\n var(--hx-border-radius-md, 0.375rem);\n }\n\n /* ─── Border Radius: Vertical — Middle children have no radius ─── */\n\n .group--vertical ::slotted(:not(:first-child):not(:last-child)) {\n --hx-button-border-radius: 0;\n }\n\n /* ─── Z-index: Raise focused child above siblings to show full focus ring ─── */\n\n .group ::slotted(:focus-within) {\n z-index: 1;\n position: relative;\n }\n`;\n","import { LitElement, html } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { tokenStyles } from '@helixui/tokens/lit';\nimport { helixButtonGroupStyles } from './hx-button-group.styles.js';\nimport { devWarn } from '../../utils/dev-warn.js';\n\n/**\n * A container component that groups related hx-button elements into a cohesive\n * horizontal or vertical action set. Eliminates double borders between adjacent\n * buttons and squares off inner border-radius for a unified visual appearance.\n *\n * **Accessibility:** Always provide an accessible label via `aria-label` or\n * `aria-labelledby` so screen readers can announce the group purpose.\n *\n * @summary Groups hx-button elements into a horizontal or vertical action set with shared borders.\n *\n * @tag hx-button-group\n *\n * @slot - Default slot accepting hx-button children.\n *\n * @csspart group - The container div element wrapping all slotted buttons.\n *\n * @cssprop [--hx-button-group-size=md] - Size token forwarded to child buttons. Accepts 'sm', 'md', or 'lg'.\n */\n@customElement('hx-button-group')\nexport class HelixButtonGroup extends LitElement {\n static override styles = [tokenStyles, helixButtonGroupStyles];\n\n /**\n * ElementInternals instance for ARIA role and label management via the Accessibility Object Model.\n * @internal\n */\n private internals: ElementInternals;\n\n /**\n * Layout orientation of the button group.\n * @attr orientation\n */\n @property({ type: String, reflect: true })\n get orientation(): 'horizontal' | 'vertical' {\n return this._orientation;\n }\n set orientation(value: string) {\n if (value !== 'horizontal' && value !== 'vertical') {\n devWarn('hx-button-group', `Invalid orientation \"${value}\", defaulting to \"horizontal\".`);\n value = 'horizontal';\n }\n this._orientation = value as 'horizontal' | 'vertical';\n }\n /**\n * Backing store for the orientation property, holding the validated orientation value.\n * @internal\n */\n private _orientation: 'horizontal' | 'vertical' = 'horizontal';\n\n /**\n * Size applied to the button group and cascaded to child buttons via\n * the --hx-button-group-size CSS custom property.\n * @attr hx-size\n */\n @property({ type: String, reflect: true, attribute: 'hx-size' })\n size: 'sm' | 'md' | 'lg' = 'md';\n\n /**\n * Accessible label for the button group. Sets aria-label via ElementInternals.\n * **Strongly recommended** for WCAG 2.1 AA compliance — without it, screen\n * readers announce an unnamed \"group\". For Drupal/Twig compatibility, prefer\n * applying `aria-label` directly as an HTML attribute instead.\n * @attr label\n */\n @property({ type: String })\n label: string = '';\n\n // ─── Constructor ───\n\n constructor() {\n super();\n this.internals = this.attachInternals();\n this.internals.role = 'group';\n }\n\n // ─── Lifecycle ───\n\n override updated(changedProperties: Map<PropertyKey, unknown>): void {\n super.updated(changedProperties);\n\n if (changedProperties.has('size')) {\n this.style.setProperty('--hx-button-group-size', this.size);\n }\n\n if (changedProperties.has('label')) {\n this.internals.ariaLabel = this.label || null;\n }\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.style.setProperty('--hx-button-group-size', this.size);\n if (this.label) {\n this.internals.ariaLabel = this.label;\n }\n }\n\n // ─── Render ───\n\n override render() {\n return html`\n <div\n part=\"group\"\n class=${classMap({\n group: true,\n 'group--horizontal': this.orientation === 'horizontal',\n 'group--vertical': this.orientation === 'vertical',\n })}\n >\n <slot></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-button-group': HelixButtonGroup;\n }\n}\n"],"names":["helixButtonGroupStyles","css","HelixButtonGroup","LitElement","value","changedProperties","html","classMap","tokenStyles","__decorateClass","property","customElement"],"mappings":";;;;AAEO,MAAMA,IAAyBC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;ACwB/B,IAAMC,IAAN,cAA+BC,EAAW;AAAA;AAAA,EAkD/C,cAAc;AACZ,UAAA,GAvBF,KAAQ,eAA0C,cAQlD,KAAA,OAA2B,MAU3B,KAAA,QAAgB,IAMd,KAAK,YAAY,KAAK,gBAAA,GACtB,KAAK,UAAU,OAAO;AAAA,EACxB;AAAA,EAxCA,IAAI,cAAyC;AAC3C,WAAO,KAAK;AAAA,EACd;AAAA,EACA,IAAI,YAAYC,GAAe;AAC7B,IAAIA,MAAU,gBAAgBA,MAAU,eAEtCA,IAAQ,eAEV,KAAK,eAAeA;AAAA,EACtB;AAAA;AAAA,EAmCS,QAAQC,GAAoD;AACnE,UAAM,QAAQA,CAAiB,GAE3BA,EAAkB,IAAI,MAAM,KAC9B,KAAK,MAAM,YAAY,0BAA0B,KAAK,IAAI,GAGxDA,EAAkB,IAAI,OAAO,MAC/B,KAAK,UAAU,YAAY,KAAK,SAAS;AAAA,EAE7C;AAAA,EAES,oBAA0B;AACjC,UAAM,kBAAA,GACN,KAAK,MAAM,YAAY,0BAA0B,KAAK,IAAI,GACtD,KAAK,UACP,KAAK,UAAU,YAAY,KAAK;AAAA,EAEpC;AAAA;AAAA,EAIS,SAAS;AAChB,WAAOC;AAAA;AAAA;AAAA,gBAGKC,EAAS;AAAA,MACf,OAAO;AAAA,MACP,qBAAqB,KAAK,gBAAgB;AAAA,MAC1C,mBAAmB,KAAK,gBAAgB;AAAA,IAAA,CACzC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKR;AACF;AA9FaL,EACK,SAAS,CAACM,GAAaR,CAAsB;AAazDS,EAAA;AAAA,EADHC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAb9BR,EAcP,WAAA,eAAA,CAAA;AAsBJO,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM,WAAW,WAAW;AAAA,GAnCpDR,EAoCX,WAAA,QAAA,CAAA;AAUAO,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GA7CfR,EA8CX,WAAA,SAAA,CAAA;AA9CWA,IAANO,EAAA;AAAA,EADNE,EAAc,iBAAiB;AAAA,GACnBT,CAAA;"}
@@ -1,10 +1,12 @@
1
- import { css as g, LitElement as p, nothing as l, html as v } from "lit";
2
- import { property as s, state as d, customElement as x } from "lit/decorators.js";
1
+ import { css as x, LitElement as p, nothing as l, html as g } from "lit";
2
+ import { property as d, state as s, customElement as v } from "lit/decorators.js";
3
3
  import { classMap as f } from "lit/directives/class-map.js";
4
4
  import { tokenStyles as m } from "@helixui/tokens/lit";
5
- const _ = g`
5
+ const _ = x`
6
6
  :host {
7
7
  display: block;
8
+ color: var(--hx-card-color, var(--hx-color-neutral-800, #212529));
9
+ background-color: var(--hx-card-bg, var(--hx-color-neutral-0, #ffffff));
8
10
  }
9
11
 
10
12
  .card {
@@ -82,7 +84,8 @@ const _ = g`
82
84
  }
83
85
 
84
86
  .card--interactive:focus-visible {
85
- outline: var(--hx-focus-ring-width, 2px) solid var(--hx-focus-ring-color, #2563eb);
87
+ outline: var(--hx-focus-ring-width, 2px) solid
88
+ var(--hx-card-focus-ring-color, var(--hx-focus-ring-color, var(--hx-color-primary-500)));
86
89
  outline-offset: var(--hx-focus-ring-offset, 2px);
87
90
  }
88
91
 
@@ -161,10 +164,10 @@ const _ = g`
161
164
  margin-top: auto;
162
165
  }
163
166
  `;
164
- var b = Object.defineProperty, u = Object.getOwnPropertyDescriptor, t = (a, r, n, i) => {
165
- for (var o = i > 1 ? void 0 : i ? u(r, n) : r, h = a.length - 1, c; h >= 0; h--)
166
- (c = a[h]) && (o = (i ? c(r, n, o) : c(o)) || o);
167
- return i && o && b(r, n, o), o;
167
+ var u = Object.defineProperty, b = Object.getOwnPropertyDescriptor, t = (a, r, h, i) => {
168
+ for (var o = i > 1 ? void 0 : i ? b(r, h) : r, n = a.length - 1, c; n >= 0; n--)
169
+ (c = a[n]) && (o = (i ? c(r, h, o) : c(o)) || o);
170
+ return i && o && u(r, h, o), o;
168
171
  };
169
172
  let e = class extends p {
170
173
  constructor() {
@@ -184,9 +187,10 @@ let e = class extends p {
184
187
  }
185
188
  _onActionsSlotChange(a) {
186
189
  const r = a.target;
187
- this._hasActions = r.assignedNodes({ flatten: !0 }).length > 0, this._hasActions && this.hxHref && console.warn(
188
- '[hx-card] Using hx-href (interactive card) together with the actions slot is an ARIA anti-pattern: interactive controls cannot be nested inside role="link". Use either hx-href or the actions slot, not both.'
189
- );
190
+ this._hasActions = r.assignedNodes({ flatten: !0 }).length > 0, this._hasActions && this.hxHref;
191
+ }
192
+ updated(a) {
193
+ super.updated(a), (a.has("hxHref") || a.has("hxAriaLabel")) && this.hxHref && this.hxAriaLabel;
190
194
  }
191
195
  // ─── Event Handling ───
192
196
  _dispatchCardClick(a) {
@@ -212,7 +216,7 @@ let e = class extends p {
212
216
  [`card--${this.elevation}`]: !0,
213
217
  "card--interactive": a
214
218
  };
215
- return v`
219
+ return g`
216
220
  <div
217
221
  part="card"
218
222
  class=${f(r)}
@@ -251,33 +255,33 @@ e.shadowRootOptions = {
251
255
  };
252
256
  e.styles = [m, _];
253
257
  t([
254
- s({ type: String, reflect: !0 })
258
+ d({ type: String, reflect: !0 })
255
259
  ], e.prototype, "variant", 2);
256
260
  t([
257
- s({ type: String, reflect: !0 })
261
+ d({ type: String, reflect: !0 })
258
262
  ], e.prototype, "elevation", 2);
259
263
  t([
260
- s({ type: String, attribute: "hx-href" })
264
+ d({ type: String, attribute: "hx-href" })
261
265
  ], e.prototype, "hxHref", 2);
262
266
  t([
263
- s({ type: String, attribute: "hx-aria-label" })
267
+ d({ type: String, attribute: "hx-aria-label" })
264
268
  ], e.prototype, "hxAriaLabel", 2);
265
269
  t([
266
- d()
270
+ s()
267
271
  ], e.prototype, "_hasImage", 2);
268
272
  t([
269
- d()
273
+ s()
270
274
  ], e.prototype, "_hasHeading", 2);
271
275
  t([
272
- d()
276
+ s()
273
277
  ], e.prototype, "_hasFooter", 2);
274
278
  t([
275
- d()
279
+ s()
276
280
  ], e.prototype, "_hasActions", 2);
277
281
  e = t([
278
- x("hx-card")
282
+ v("hx-card")
279
283
  ], e);
280
284
  export {
281
285
  e as H
282
286
  };
283
- //# sourceMappingURL=hx-card-DAkEfpJd.js.map
287
+ //# sourceMappingURL=hx-card-B9j2SHyI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hx-card-B9j2SHyI.js","sources":["../../src/components/hx-card/hx-card.styles.ts","../../src/components/hx-card/hx-card.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixCardStyles = css`\n :host {\n display: block;\n color: var(--hx-card-color, var(--hx-color-neutral-800, #212529));\n background-color: var(--hx-card-bg, var(--hx-color-neutral-0, #ffffff));\n }\n\n .card {\n display: flex;\n flex-direction: column;\n gap: var(--hx-card-gap, var(--hx-space-4, 1rem));\n background-color: var(--hx-card-bg, var(--hx-color-neutral-0, #ffffff));\n color: var(--hx-card-color, var(--hx-color-neutral-800, #212529));\n border: var(--hx-border-width-thin, 1px) solid\n var(--hx-card-border-color, var(--hx-color-neutral-200, #dee2e6));\n border-radius: var(--hx-card-border-radius, var(--hx-border-radius-lg, 0.5rem));\n overflow: hidden;\n font-family: var(--hx-font-family-sans, sans-serif);\n transition:\n box-shadow var(--hx-transition-normal, 250ms ease),\n transform var(--hx-transition-normal, 250ms ease);\n }\n\n /* ─── Elevation Variants ─── */\n\n .card--flat {\n box-shadow: none;\n }\n\n .card--raised {\n box-shadow: var(--hx-shadow-md, 0 4px 6px -1px rgb(0 0 0 / 0.1));\n }\n\n .card--floating {\n box-shadow: var(--hx-shadow-xl, 0 20px 25px -5px rgb(0 0 0 / 0.1));\n }\n\n /* ─── Style Variants ─── */\n\n .card--default {\n /* Default styling — uses base styles */\n }\n\n .card--featured {\n border-color: var(--hx-color-primary-500, #2563eb);\n border-width: var(--hx-border-width-medium, 2px);\n }\n\n .card--compact .card__body {\n padding: var(--hx-space-3, 0.75rem);\n }\n\n .card--compact .card__heading {\n padding-top: var(--hx-space-3, 0.75rem);\n padding-right: var(--hx-space-3, 0.75rem);\n padding-left: var(--hx-space-3, 0.75rem);\n }\n\n .card--compact .card__footer {\n padding-right: var(--hx-space-3, 0.75rem);\n padding-bottom: var(--hx-space-3, 0.75rem);\n padding-left: var(--hx-space-3, 0.75rem);\n }\n\n .card--compact .card__actions {\n padding-right: var(--hx-space-3, 0.75rem);\n padding-bottom: var(--hx-space-3, 0.75rem);\n padding-left: var(--hx-space-3, 0.75rem);\n }\n\n /* ─── Interactive ─── */\n\n .card--interactive {\n cursor: pointer;\n }\n\n .card--interactive:hover {\n box-shadow: var(--hx-shadow-lg, 0 10px 15px -3px rgb(0 0 0 / 0.1));\n transform: translateY(var(--hx-lift-md, -2px));\n }\n\n .card--interactive:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid\n var(--hx-card-focus-ring-color, var(--hx-focus-ring-color, var(--hx-color-primary-500)));\n outline-offset: var(--hx-focus-ring-offset, 2px);\n }\n\n .card--interactive:active {\n transform: translateY(0);\n }\n\n @media (prefers-reduced-motion: reduce) {\n .card {\n transition: none;\n }\n\n .card--interactive:hover {\n transform: none;\n }\n\n .card--interactive:active {\n transform: none;\n }\n }\n\n /* ─── Hidden empty slot wrappers ─── */\n\n [hidden] {\n display: none !important;\n }\n\n /* ─── Sections ─── */\n\n .card__image {\n overflow: hidden;\n line-height: 0;\n }\n\n .card__image ::slotted(img) {\n width: 100%;\n aspect-ratio: var(--hx-card-image-aspect-ratio, 16 / 9);\n display: block;\n object-fit: cover;\n }\n\n .card__heading {\n padding-top: var(--hx-card-padding, var(--hx-space-6, 1.5rem));\n padding-right: var(--hx-card-padding, var(--hx-space-6, 1.5rem));\n padding-bottom: 0;\n padding-left: var(--hx-card-padding, var(--hx-space-6, 1.5rem));\n font-size: var(--hx-font-size-xl, 1.25rem);\n font-weight: var(--hx-font-weight-semibold, 600);\n line-height: var(--hx-line-height-tight, 1.25);\n }\n\n .card__body {\n padding: var(--hx-card-padding, var(--hx-space-6, 1.5rem));\n flex: 1;\n font-size: var(--hx-font-size-md, 1rem);\n line-height: var(--hx-line-height-normal, 1.5);\n color: var(--hx-color-neutral-600, #495057);\n }\n\n .card__footer {\n padding-top: 0;\n padding-right: var(--hx-card-padding, var(--hx-space-6, 1.5rem));\n padding-bottom: var(--hx-card-padding, var(--hx-space-6, 1.5rem));\n padding-left: var(--hx-card-padding, var(--hx-space-6, 1.5rem));\n }\n\n .card__actions {\n display: flex;\n gap: var(--hx-space-2, 0.5rem);\n padding-top: var(--hx-space-4, 1rem);\n padding-right: var(--hx-card-padding, var(--hx-space-6, 1.5rem));\n padding-bottom: var(--hx-card-padding, var(--hx-space-6, 1.5rem));\n padding-left: var(--hx-card-padding, var(--hx-space-6, 1.5rem));\n border-top: var(--hx-border-width-thin, 1px) solid\n var(--hx-card-border-color, var(--hx-color-neutral-200, #dee2e6));\n margin-top: auto;\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 { helixCardStyles } from './hx-card.styles.js';\nimport { devWarn } from '../../utils/dev-warn.js';\n\n/**\n * A flexible card component for displaying grouped content.\n *\n * @summary Content container with image, heading, body, footer, and action slots.\n *\n * @tag hx-card\n *\n * @slot image - Optional image or media content at the top of the card.\n * @slot heading - The card heading/title content. Use a semantic heading element (h2, h3, etc.) for proper accessibility.\n * @slot - Default slot for the card body content.\n * @slot footer - Optional footer content below the body.\n * @slot actions - Optional action buttons, rendered with a top border separator. Do NOT use together with hx-href (interactive card + focusable actions is an ARIA anti-pattern).\n *\n * @fires {CustomEvent<{href: string, originalEvent: MouseEvent | KeyboardEvent}>} hx-click - Dispatched when an interactive card (with hx-href) is clicked.\n *\n * @csspart card - The outer card container element.\n * @csspart image - The image slot container.\n * @csspart heading - The heading slot container.\n * @csspart body - The body slot container.\n * @csspart footer - The footer slot container.\n * @csspart actions - The actions slot container.\n *\n * @cssprop [--hx-card-bg=var(--hx-color-neutral-0)] - Card background color.\n * @cssprop [--hx-card-color=var(--hx-color-neutral-800)] - Card text color.\n * @cssprop [--hx-card-border-color=var(--hx-color-neutral-200)] - Card border color.\n * @cssprop [--hx-card-border-radius=var(--hx-border-radius-lg)] - Card border radius.\n * @cssprop [--hx-card-padding=var(--hx-space-6)] - Internal padding for card sections.\n * @cssprop [--hx-card-gap=var(--hx-space-4)] - Gap between card sections.\n * @cssprop [--hx-card-image-aspect-ratio=16/9] - Aspect ratio for the image slot.\n */\n@customElement('hx-card')\nexport class HelixCard extends LitElement {\n /** Enable delegatesFocus so :focus on the host works when the inner card div has focus. */\n static override shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n static override styles = [tokenStyles, helixCardStyles];\n\n /**\n * Visual style variant of the card.\n * @attr variant\n */\n @property({ type: String, reflect: true })\n variant: 'default' | 'featured' | 'compact' = 'default';\n\n /**\n * Elevation (shadow depth) of the card.\n * @attr elevation\n */\n @property({ type: String, reflect: true })\n elevation: 'flat' | 'raised' | 'floating' = 'flat';\n\n /**\n * Optional URL. When set, the card becomes interactive (clickable)\n * and navigates to this URL on click.\n * Uses hx-href to avoid conflicting with the native HTML href attribute.\n * @attr hx-href\n */\n @property({ type: String, attribute: 'hx-href' })\n hxHref: string | undefined = undefined;\n\n /**\n * Accessible label for interactive cards. Use this to provide a meaningful\n * description of the card's purpose rather than exposing the raw URL.\n * Only applies when hx-href is set.\n * @attr hx-aria-label\n */\n @property({ type: String, attribute: 'hx-aria-label' })\n hxAriaLabel: string | undefined = undefined;\n\n // ─── Slot Detection ───\n\n /**\n * Tracks whether any content is assigned to the image slot, controlling slot container visibility.\n * @internal\n */\n @state() private _hasImage = false;\n\n /**\n * Tracks whether any content is assigned to the heading slot, controlling slot container visibility.\n * @internal\n */\n @state() private _hasHeading = false;\n\n /**\n * Tracks whether any content is assigned to the footer slot, controlling slot container visibility.\n * @internal\n */\n @state() private _hasFooter = false;\n\n /**\n * Tracks whether any content is assigned to the actions slot, controlling slot container visibility.\n * @internal\n */\n @state() private _hasActions = false;\n\n private _onImageSlotChange(e: Event): void {\n const slot = e.target as HTMLSlotElement;\n this._hasImage = slot.assignedNodes({ flatten: true }).length > 0;\n }\n\n private _onHeadingSlotChange(e: Event): void {\n const slot = e.target as HTMLSlotElement;\n this._hasHeading = slot.assignedNodes({ flatten: true }).length > 0;\n }\n\n private _onFooterSlotChange(e: Event): void {\n const slot = e.target as HTMLSlotElement;\n this._hasFooter = slot.assignedNodes({ flatten: true }).length > 0;\n }\n\n private _onActionsSlotChange(e: Event): void {\n const slot = e.target as HTMLSlotElement;\n this._hasActions = slot.assignedNodes({ flatten: true }).length > 0;\n if (this._hasActions && this.hxHref) {\n devWarn(\n 'hx-card',\n 'Using hx-href (interactive card) together with the actions slot is an ARIA anti-pattern: ' +\n 'interactive controls cannot be nested inside role=\"link\". ' +\n 'Use either hx-href or the actions slot, not both.',\n );\n }\n }\n\n override updated(changedProperties: Map<PropertyKey, unknown>): void {\n super.updated(changedProperties);\n // WCAG 4.1.2: interactive cards (with hx-href) must have an accessible name\n if (\n (changedProperties.has('hxHref') || changedProperties.has('hxAriaLabel')) &&\n this.hxHref &&\n !this.hxAriaLabel\n ) {\n devWarn(\n 'hx-card',\n \"Interactive card (hx-href is set) is missing an accessible name. Set `hx-aria-label` to describe the card's destination or purpose (WCAG 4.1.2).\",\n );\n }\n }\n\n // ─── Event Handling ───\n\n private _dispatchCardClick(originalEvent: MouseEvent | KeyboardEvent): void {\n if (!this.hxHref) return;\n\n /**\n * Dispatched when an interactive card is clicked.\n * Includes the target href in the detail.\n * @event hx-click\n */\n this.dispatchEvent(\n new CustomEvent<{ href: string; originalEvent: MouseEvent | KeyboardEvent }>('hx-click', {\n bubbles: true,\n composed: true,\n detail: { href: this.hxHref, originalEvent },\n }),\n );\n }\n\n private _handleClick(e: MouseEvent): void {\n this._dispatchCardClick(e);\n }\n\n private _handleKeyDown(e: KeyboardEvent): void {\n if (!this.hxHref) return;\n\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n this._dispatchCardClick(e);\n }\n }\n\n // ─── Render ───\n\n override render() {\n const isInteractive = !!this.hxHref;\n\n const classes = {\n card: true,\n [`card--${this.variant}`]: true,\n [`card--${this.elevation}`]: true,\n 'card--interactive': isInteractive,\n };\n\n return html`\n <div\n part=\"card\"\n class=${classMap(classes)}\n role=${isInteractive ? 'link' : nothing}\n tabindex=${isInteractive ? '0' : nothing}\n aria-label=${isInteractive && this.hxAriaLabel ? this.hxAriaLabel : nothing}\n @click=${this._handleClick}\n @keydown=${this._handleKeyDown}\n >\n <div class=\"card__image\" part=\"image\" ?hidden=${!this._hasImage}>\n <slot name=\"image\" @slotchange=${this._onImageSlotChange}></slot>\n </div>\n\n <div class=\"card__heading\" part=\"heading\" ?hidden=${!this._hasHeading}>\n <slot name=\"heading\" @slotchange=${this._onHeadingSlotChange}></slot>\n </div>\n\n <div class=\"card__body\" part=\"body\">\n <slot></slot>\n </div>\n\n <div class=\"card__footer\" part=\"footer\" ?hidden=${!this._hasFooter}>\n <slot name=\"footer\" @slotchange=${this._onFooterSlotChange}></slot>\n </div>\n\n <div class=\"card__actions\" part=\"actions\" ?hidden=${!this._hasActions}>\n <slot name=\"actions\" @slotchange=${this._onActionsSlotChange}></slot>\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-card': HelixCard;\n }\n}\n"],"names":["helixCardStyles","css","HelixCard","LitElement","e","slot","changedProperties","originalEvent","isInteractive","classes","html","classMap","nothing","tokenStyles","__decorateClass","property","state","customElement"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { css as g, html as a, LitElement as f, nothing as v } from "lit";
2
- import { property as l, state as c, customElement as _ } from "lit/decorators.js";
3
- import { classMap as y } from "lit/directives/class-map.js";
1
+ import { css as g, html as l, LitElement as f, nothing as p } from "lit";
2
+ import { property as n, state as c, customElement as _ } from "lit/decorators.js";
3
+ import { classMap as m } from "lit/directives/class-map.js";
4
4
  import { tokenStyles as x } from "@helixui/tokens/lit";
5
- const m = g`
5
+ const y = g`
6
6
  :host {
7
7
  display: block;
8
8
  position: relative;
@@ -39,6 +39,9 @@ const m = g`
39
39
  justify-content: center;
40
40
  width: var(--hx-carousel-nav-btn-size, var(--hx-size-10, 2.5rem));
41
41
  height: var(--hx-carousel-nav-btn-size, var(--hx-size-10, 2.5rem));
42
+ /* WCAG 2.5.5 (healthcare mandate): minimum 44x44px touch target */
43
+ min-width: var(--hx-touch-target-min, 2.75rem);
44
+ min-height: var(--hx-touch-target-min, 2.75rem);
42
45
  border: var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-200, #e5e7eb);
43
46
  border-radius: var(--hx-border-radius-full, 9999px);
44
47
  background: var(--hx-color-neutral-0, #fff);
@@ -58,7 +61,8 @@ const m = g`
58
61
  }
59
62
 
60
63
  .nav-btn:focus-visible {
61
- outline: var(--hx-focus-ring-width, 2px) solid var(--hx-focus-ring-color, #2563eb);
64
+ outline: var(--hx-focus-ring-width, 2px) solid
65
+ var(--hx-carousel-focus-ring-color, var(--hx-focus-ring-color, var(--hx-color-primary-500)));
62
66
  outline-offset: var(--hx-focus-ring-offset, 2px);
63
67
  }
64
68
 
@@ -78,8 +82,11 @@ const m = g`
78
82
  display: inline-flex;
79
83
  align-items: center;
80
84
  justify-content: center;
81
- width: var(--hx-size-8, 2rem);
82
- height: var(--hx-size-8, 2rem);
85
+ /* WCAG 2.5.5 (healthcare mandate): minimum 44x44px touch target */
86
+ min-width: var(--hx-touch-target-min, 2.75rem);
87
+ min-height: var(--hx-touch-target-min, 2.75rem);
88
+ width: var(--hx-touch-target-min, 2.75rem);
89
+ height: var(--hx-touch-target-min, 2.75rem);
83
90
  border: var(--hx-border-width-thin, 1px) solid transparent;
84
91
  border-radius: var(--hx-border-radius-md, 0.375rem);
85
92
  background: transparent;
@@ -96,7 +103,8 @@ const m = g`
96
103
  }
97
104
 
98
105
  .play-pause-btn:focus-visible {
99
- outline: var(--hx-focus-ring-width, 2px) solid var(--hx-focus-ring-color, #2563eb);
106
+ outline: var(--hx-focus-ring-width, 2px) solid
107
+ var(--hx-carousel-focus-ring-color, var(--hx-focus-ring-color, var(--hx-color-primary-500)));
100
108
  outline-offset: var(--hx-focus-ring-offset, 2px);
101
109
  }
102
110
 
@@ -137,6 +145,11 @@ const m = g`
137
145
 
138
146
  .pagination-item {
139
147
  display: inline-flex;
148
+ align-items: center;
149
+ justify-content: center;
150
+ /* WCAG 2.5.5 (healthcare mandate): minimum 44x44px touch target */
151
+ min-width: var(--hx-touch-target-min, 2.75rem);
152
+ min-height: var(--hx-touch-target-min, 2.75rem);
140
153
  padding: 0;
141
154
  border: none;
142
155
  cursor: pointer;
@@ -162,7 +175,8 @@ const m = g`
162
175
  }
163
176
 
164
177
  .pagination-item:focus-visible {
165
- outline: var(--hx-focus-ring-width, 2px) solid var(--hx-focus-ring-color, #2563eb);
178
+ outline: var(--hx-focus-ring-width, 2px) solid
179
+ var(--hx-carousel-focus-ring-color, var(--hx-focus-ring-color, var(--hx-color-primary-500)));
166
180
  outline-offset: var(--hx-focus-ring-offset, 2px);
167
181
  border-radius: var(--hx-border-radius-full, 9999px);
168
182
  }
@@ -200,12 +214,12 @@ const m = g`
200
214
  }
201
215
  }
202
216
  `;
203
- var b = Object.defineProperty, w = Object.getOwnPropertyDescriptor, n = (t, e, r, i) => {
204
- for (var s = i > 1 ? void 0 : i ? w(e, r) : e, h = t.length - 1, d; h >= 0; h--)
205
- (d = t[h]) && (s = (i ? d(e, r, s) : d(s)) || s);
206
- return i && s && b(e, r, s), s;
217
+ var b = Object.defineProperty, w = Object.getOwnPropertyDescriptor, a = (t, e, r, i) => {
218
+ for (var o = i > 1 ? void 0 : i ? w(e, r) : e, h = t.length - 1, u; h >= 0; h--)
219
+ (u = t[h]) && (o = (i ? u(e, r, o) : u(o)) || o);
220
+ return i && o && b(e, r, o), o;
207
221
  };
208
- const P = a`<svg
222
+ const P = l`<svg
209
223
  xmlns="http://www.w3.org/2000/svg"
210
224
  viewBox="0 0 24 24"
211
225
  fill="none"
@@ -216,7 +230,7 @@ const P = a`<svg
216
230
  aria-hidden="true"
217
231
  >
218
232
  <polyline points="15 18 9 12 15 6"></polyline>
219
- </svg>`, k = a`<svg
233
+ </svg>`, k = l`<svg
220
234
  xmlns="http://www.w3.org/2000/svg"
221
235
  viewBox="0 0 24 24"
222
236
  fill="none"
@@ -227,7 +241,7 @@ const P = a`<svg
227
241
  aria-hidden="true"
228
242
  >
229
243
  <polyline points="18 15 12 9 6 15"></polyline>
230
- </svg>`, I = a`<svg
244
+ </svg>`, I = l`<svg
231
245
  xmlns="http://www.w3.org/2000/svg"
232
246
  viewBox="0 0 24 24"
233
247
  fill="none"
@@ -238,7 +252,7 @@ const P = a`<svg
238
252
  aria-hidden="true"
239
253
  >
240
254
  <polyline points="9 18 15 12 9 6"></polyline>
241
- </svg>`, M = a`<svg
255
+ </svg>`, M = l`<svg
242
256
  xmlns="http://www.w3.org/2000/svg"
243
257
  viewBox="0 0 24 24"
244
258
  fill="none"
@@ -249,7 +263,7 @@ const P = a`<svg
249
263
  aria-hidden="true"
250
264
  >
251
265
  <polyline points="6 9 12 15 18 9"></polyline>
252
- </svg>`, $ = a`<svg
266
+ </svg>`, S = l`<svg
253
267
  xmlns="http://www.w3.org/2000/svg"
254
268
  viewBox="0 0 24 24"
255
269
  fill="currentColor"
@@ -258,7 +272,7 @@ const P = a`<svg
258
272
  height="1em"
259
273
  >
260
274
  <polygon points="5 3 19 12 5 21 5 3"></polygon>
261
- </svg>`, T = a`<svg
275
+ </svg>`, $ = l`<svg
262
276
  xmlns="http://www.w3.org/2000/svg"
263
277
  viewBox="0 0 24 24"
264
278
  fill="currentColor"
@@ -269,10 +283,10 @@ const P = a`<svg
269
283
  <rect x="6" y="4" width="4" height="16"></rect>
270
284
  <rect x="14" y="4" width="4" height="16"></rect>
271
285
  </svg>`;
272
- let o = class extends f {
286
+ let s = class extends f {
273
287
  constructor() {
274
- super(...arguments), this.label = "Carousel", this.loop = !1, this.autoplay = !1, this.autoplayInterval = 3e3, this.slidesPerPage = 1, this.slidesPerMove = 1, this.orientation = "horizontal", this.mouseDragging = !1, this._currentIndex = 0, this._slides = [], this._isPlaying = !1, this._liveText = "", this._autoplayTimer = null, this._reducedMotion = !1, this._mql = null, this._isHovered = !1, this._isFocused = !1, this._dragStartCoord = 0, this._isDragging = !1, this._dragMoved = !1, this._touchStartCoord = 0, this._touchMoved = !1, this._autoplayTick = () => {
275
- this.loop ? this.goTo(this._currentIndex + this.slidesPerMove) : this._currentIndex < this._maxIndex ? this.goTo(this._currentIndex + this.slidesPerMove) : this.goTo(0);
288
+ super(...arguments), this.label = "Carousel", this.loop = !1, this.autoplay = !1, this.autoplayInterval = 3e3, this.slidesPerPage = 1, this.slidesPerMove = 1, this.orientation = "horizontal", this.mouseDragging = !1, this.labelPrevSlide = "Previous slide", this.labelNextSlide = "Next slide", this.labelPauseAutoplay = "Pause autoplay", this.labelPlayAutoplay = "Play autoplay", this._currentIndex = 0, this._slides = [], this._isPlaying = !1, this._liveText = "", this._livePolite = !0, this._autoplayTimer = null, this._reducedMotion = !1, this._mql = null, this._isHovered = !1, this._isFocused = !1, this._dragStartCoord = 0, this._isDragging = !1, this._dragMoved = !1, this._touchStartCoord = 0, this._touchMoved = !1, this._autoplayTick = () => {
289
+ this._livePolite = !1, this.loop ? this.goTo(this._currentIndex + this.slidesPerMove) : this._currentIndex < this._maxIndex ? this.goTo(this._currentIndex + this.slidesPerMove) : this.goTo(0);
276
290
  }, this._handleMotionChange = (t) => {
277
291
  this._reducedMotion = t.matches, this._reducedMotion ? this._stopAutoplay() : this.autoplay && !this._isHovered && !this._isFocused && this._startAutoplay();
278
292
  }, this._handleMouseEnter = () => {
@@ -304,8 +318,8 @@ let o = class extends f {
304
318
  const t = (r = this.shadowRoot) == null ? void 0 : r.querySelector("slot:not([name])");
305
319
  if (!t) return;
306
320
  const e = t.assignedElements({ flatten: !0 }).filter((i) => i.tagName.toLowerCase() === "hx-carousel-item");
307
- this._slides = e, e.forEach((i, s) => {
308
- i.slideIndex = s, i.totalSlides = e.length;
321
+ this._slides = e, e.forEach((i, o) => {
322
+ i.slideIndex = o, i.totalSlides = e.length;
309
323
  const h = `${100 / this.slidesPerPage}%`;
310
324
  i.style.setProperty("--_hx-carousel-slide-width", h);
311
325
  }), this._currentIndex >= e.length && (this._currentIndex = Math.max(0, e.length - 1));
@@ -314,6 +328,10 @@ let o = class extends f {
314
328
  this._syncSlides();
315
329
  }
316
330
  // ─── Navigation ───
331
+ /**
332
+ * Maximum valid slide index accounting for the number of slides visible per page.
333
+ * @internal
334
+ */
317
335
  get _maxIndex() {
318
336
  return Math.max(0, this._slides.length - this.slidesPerPage);
319
337
  }
@@ -330,11 +348,11 @@ let o = class extends f {
330
348
  }
331
349
  next() {
332
350
  const t = this._currentIndex + this.slidesPerMove;
333
- !this.loop && t > this._maxIndex || this.goTo(t);
351
+ !this.loop && t > this._maxIndex || (this._livePolite = !0, this.goTo(t));
334
352
  }
335
353
  previous() {
336
354
  const t = this._currentIndex - this.slidesPerMove;
337
- !this.loop && t < 0 || this.goTo(t);
355
+ !this.loop && t < 0 || (this._livePolite = !0, this.goTo(t));
338
356
  }
339
357
  _startAutoplay() {
340
358
  this._autoplayTimer === null && (this._isPlaying = !0, this._autoplayTimer = setInterval(this._autoplayTick, this.autoplayInterval));
@@ -382,53 +400,68 @@ let o = class extends f {
382
400
  if (!this._isDragging) return;
383
401
  const e = t.changedTouches[0];
384
402
  if (!e) return;
385
- const i = (this.orientation === "horizontal" ? e.clientX : e.clientY) - this._touchStartCoord, s = 50;
386
- this._touchMoved && (i > s ? this.previous() : i < -s && this.next()), this._isDragging = !1, this._touchMoved = !1;
403
+ const i = (this.orientation === "horizontal" ? e.clientX : e.clientY) - this._touchStartCoord, o = 50;
404
+ this._touchMoved && (i > o ? this.previous() : i < -o && this.next()), this._isDragging = !1, this._touchMoved = !1;
405
+ }
406
+ _goToManual(t) {
407
+ this._livePolite = !0, this.goTo(t);
387
408
  }
388
409
  // ─── Computed ───
410
+ /**
411
+ * CSS transform value applied to the slide track to scroll to the current index.
412
+ * @internal
413
+ */
389
414
  get _trackTransform() {
390
415
  const t = 100 / this.slidesPerPage, e = this._currentIndex * t;
391
416
  return this.orientation === "horizontal" ? `translateX(-${e}%)` : `translateY(-${e}%)`;
392
417
  }
418
+ /**
419
+ * Whether the previous navigation button should be enabled.
420
+ * @internal
421
+ */
393
422
  get _canGoPrev() {
394
423
  return this.loop || this._currentIndex > 0;
395
424
  }
425
+ /**
426
+ * Whether the next navigation button should be enabled.
427
+ * @internal
428
+ */
396
429
  get _canGoNext() {
397
430
  return this.loop || this._currentIndex < this._maxIndex;
398
431
  }
399
432
  // ─── Render Helpers ───
400
433
  _renderNavigation() {
401
- return a`
434
+ return l`
402
435
  <div class="navigation" part="navigation">
403
436
  <slot name="previous-button">
404
437
  <button
405
438
  class="nav-btn"
406
439
  part="prev-btn"
407
440
  type="button"
408
- aria-label="Previous slide"
441
+ aria-label=${this.labelPrevSlide}
409
442
  ?disabled=${!this._canGoPrev}
410
443
  @click=${() => this.previous()}
411
444
  >
412
445
  ${this._renderPrevIcon()}
413
446
  </button>
414
447
  </slot>
415
- ${this.autoplay ? a`
448
+ ${this.autoplay ? l`
416
449
  <button
417
450
  class="play-pause-btn"
418
451
  part="play-pause-btn"
419
452
  type="button"
420
- aria-label=${this._isPlaying ? "Pause autoplay" : "Play autoplay"}
453
+ aria-label=${this._isPlaying ? this.labelPauseAutoplay : this.labelPlayAutoplay}
421
454
  @click=${() => this._toggleAutoplay()}
422
455
  >
423
456
  ${this._isPlaying ? this._renderPauseIcon() : this._renderPlayIcon()}
424
457
  </button>
425
- ` : v}
458
+ ` : p}
426
459
  <slot name="next-button">
427
460
  <button
428
461
  class="nav-btn"
429
462
  part="next-btn"
430
463
  type="button"
431
- aria-label="Next slide"
464
+ aria-label=${this.labelNextSlide}
432
465
  ?disabled=${!this._canGoNext}
433
466
  @click=${() => this.next()}
434
467
  >
@@ -440,23 +473,23 @@ let o = class extends f {
440
473
  }
441
474
  _renderPagination() {
442
475
  const t = this._slides.length;
443
- if (t <= 1) return v;
476
+ if (t <= 1) return p;
444
477
  const e = Array.from({ length: t }, (r, i) => i);
445
- return a`
478
+ return l`
446
479
  <div class="controls">
447
480
  <div class="pagination" part="pagination">
448
481
  ${e.map(
449
- (r) => a`
482
+ (r) => l`
450
483
  <button
451
- class=${y({
484
+ class=${m({
452
485
  "pagination-item": !0,
453
486
  "is-active": r === this._currentIndex
454
487
  })}
455
488
  part="pagination-item"
456
489
  type="button"
457
490
  aria-label="Slide ${r + 1} of ${t}"
458
- aria-current=${r === this._currentIndex ? "true" : "false"}
459
- @click=${() => this.goTo(r)}
491
+ aria-current=${r === this._currentIndex ? "true" : p}
492
+ @click=${() => this._goToManual(r)}
460
493
  >
461
494
  <span class="pagination-dot"></span>
462
495
  </button>
@@ -473,23 +506,27 @@ let o = class extends f {
473
506
  return this.orientation === "horizontal" ? I : M;
474
507
  }
475
508
  _renderPlayIcon() {
476
- return $;
509
+ return S;
477
510
  }
478
511
  _renderPauseIcon() {
479
- return T;
512
+ return $;
480
513
  }
481
514
  // ─── Render ───
482
515
  render() {
483
- return a`
516
+ return l`
484
517
  <div
485
518
  class="base"
486
519
  part="base"
487
520
  role="region"
488
521
  aria-label=${this.label}
489
522
  aria-roledescription="carousel"
490
- tabindex="0"
491
523
  >
492
- <div class="live-region" role="status" aria-live="polite" aria-atomic="true">
524
+ <div
525
+ class="live-region"
526
+ role="status"
527
+ aria-live=${this._livePolite ? "polite" : "off"}
528
+ aria-atomic="true"
529
+ >
493
530
  ${this._liveText}
494
531
  </div>
495
532
  ${this._renderNavigation()}
@@ -515,65 +552,80 @@ let o = class extends f {
515
552
  `;
516
553
  }
517
554
  };
518
- o.styles = [x, m];
519
- n([
520
- l({ type: String, reflect: !0 })
521
- ], o.prototype, "label", 2);
522
- n([
523
- l({ type: Boolean, reflect: !0 })
524
- ], o.prototype, "loop", 2);
525
- n([
526
- l({ type: Boolean, reflect: !0 })
527
- ], o.prototype, "autoplay", 2);
528
- n([
529
- l({ type: Number, attribute: "autoplay-interval" })
530
- ], o.prototype, "autoplayInterval", 2);
531
- n([
532
- l({ type: Number, attribute: "slides-per-page" })
533
- ], o.prototype, "slidesPerPage", 2);
534
- n([
535
- l({ type: Number, attribute: "slides-per-move" })
536
- ], o.prototype, "slidesPerMove", 2);
537
- n([
538
- l({ type: String, reflect: !0 })
539
- ], o.prototype, "orientation", 2);
540
- n([
541
- l({ type: Boolean, attribute: "mouse-dragging", reflect: !0 })
542
- ], o.prototype, "mouseDragging", 2);
543
- n([
555
+ s.styles = [x, y];
556
+ a([
557
+ n({ type: String, reflect: !0 })
558
+ ], s.prototype, "label", 2);
559
+ a([
560
+ n({ type: Boolean, reflect: !0 })
561
+ ], s.prototype, "loop", 2);
562
+ a([
563
+ n({ type: Boolean, reflect: !0 })
564
+ ], s.prototype, "autoplay", 2);
565
+ a([
566
+ n({ type: Number, attribute: "autoplay-interval" })
567
+ ], s.prototype, "autoplayInterval", 2);
568
+ a([
569
+ n({ type: Number, attribute: "slides-per-page" })
570
+ ], s.prototype, "slidesPerPage", 2);
571
+ a([
572
+ n({ type: Number, attribute: "slides-per-move" })
573
+ ], s.prototype, "slidesPerMove", 2);
574
+ a([
575
+ n({ type: String, reflect: !0 })
576
+ ], s.prototype, "orientation", 2);
577
+ a([
578
+ n({ type: Boolean, attribute: "mouse-dragging", reflect: !0 })
579
+ ], s.prototype, "mouseDragging", 2);
580
+ a([
581
+ n({ type: String, attribute: "label-prev-slide" })
582
+ ], s.prototype, "labelPrevSlide", 2);
583
+ a([
584
+ n({ type: String, attribute: "label-next-slide" })
585
+ ], s.prototype, "labelNextSlide", 2);
586
+ a([
587
+ n({ type: String, attribute: "label-pause-autoplay" })
588
+ ], s.prototype, "labelPauseAutoplay", 2);
589
+ a([
590
+ n({ type: String, attribute: "label-play-autoplay" })
591
+ ], s.prototype, "labelPlayAutoplay", 2);
592
+ a([
593
+ c()
594
+ ], s.prototype, "_currentIndex", 2);
595
+ a([
544
596
  c()
545
- ], o.prototype, "_currentIndex", 2);
546
- n([
597
+ ], s.prototype, "_slides", 2);
598
+ a([
547
599
  c()
548
- ], o.prototype, "_slides", 2);
549
- n([
600
+ ], s.prototype, "_isPlaying", 2);
601
+ a([
550
602
  c()
551
- ], o.prototype, "_isPlaying", 2);
552
- n([
603
+ ], s.prototype, "_liveText", 2);
604
+ a([
553
605
  c()
554
- ], o.prototype, "_liveText", 2);
555
- o = n([
606
+ ], s.prototype, "_livePolite", 2);
607
+ s = a([
556
608
  _("hx-carousel")
557
- ], o);
558
- var C = Object.defineProperty, D = Object.getOwnPropertyDescriptor, p = (t, e, r, i) => {
559
- for (var s = i > 1 ? void 0 : i ? D(e, r) : e, h = t.length - 1, d; h >= 0; h--)
560
- (d = t[h]) && (s = (i ? d(e, r, s) : d(s)) || s);
561
- return i && s && C(e, r, s), s;
609
+ ], s);
610
+ var C = Object.defineProperty, T = Object.getOwnPropertyDescriptor, v = (t, e, r, i) => {
611
+ for (var o = i > 1 ? void 0 : i ? T(e, r) : e, h = t.length - 1, u; h >= 0; h--)
612
+ (u = t[h]) && (o = (i ? u(e, r, o) : u(o)) || o);
613
+ return i && o && C(e, r, o), o;
562
614
  };
563
- let u = class extends f {
615
+ let d = class extends f {
564
616
  constructor() {
565
617
  super(...arguments), this.slideIndex = 0, this.totalSlides = 0;
566
618
  }
567
619
  render() {
568
620
  const t = `Slide ${this.slideIndex + 1} of ${this.totalSlides}`;
569
- return a`
621
+ return l`
570
622
  <div class="slide-group" role="group" aria-label=${t} tabindex="-1">
571
623
  <slot></slot>
572
624
  </div>
573
625
  `;
574
626
  }
575
627
  };
576
- u.styles = [
628
+ d.styles = [
577
629
  x,
578
630
  g`
579
631
  :host {
@@ -601,17 +653,17 @@ u.styles = [
601
653
  }
602
654
  `
603
655
  ];
604
- p([
605
- l({ type: Number, attribute: "slide-index" })
606
- ], u.prototype, "slideIndex", 2);
607
- p([
608
- l({ type: Number, attribute: "total-slides" })
609
- ], u.prototype, "totalSlides", 2);
610
- u = p([
656
+ v([
657
+ n({ type: Number, attribute: "slide-index" })
658
+ ], d.prototype, "slideIndex", 2);
659
+ v([
660
+ n({ type: Number, attribute: "total-slides" })
661
+ ], d.prototype, "totalSlides", 2);
662
+ d = v([
611
663
  _("hx-carousel-item")
612
- ], u);
664
+ ], d);
613
665
  export {
614
- o as H,
615
- u as a
666
+ s as H,
667
+ d as a
616
668
  };
617
- //# sourceMappingURL=hx-carousel-item-C2yBnM0r.js.map
669
+ //# sourceMappingURL=hx-carousel-item-Be0bC-7o.js.map