@helixui/library 1.0.0 → 1.1.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 (483) hide show
  1. package/custom-elements.json +1901 -8476
  2. package/dist/components/hx-accordion/hx-accordion-item.d.ts +27 -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 +3 -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 +13 -3
  8. package/dist/components/hx-action-bar/hx-action-bar.d.ts.map +1 -1
  9. package/dist/components/hx-action-bar/index.js +1 -1
  10. package/dist/components/hx-alert/hx-alert.d.ts +30 -0
  11. package/dist/components/hx-alert/hx-alert.d.ts.map +1 -1
  12. package/dist/components/hx-alert/hx-alert.styles.d.ts.map +1 -1
  13. package/dist/components/hx-alert/index.js +1 -1
  14. package/dist/components/hx-avatar/hx-avatar.d.ts +8 -1
  15. package/dist/components/hx-avatar/hx-avatar.d.ts.map +1 -1
  16. package/dist/components/hx-avatar/index.js +1 -1
  17. package/dist/components/hx-badge/hx-badge.d.ts +10 -1
  18. package/dist/components/hx-badge/hx-badge.d.ts.map +1 -1
  19. package/dist/components/hx-badge/hx-badge.styles.d.ts.map +1 -1
  20. package/dist/components/hx-badge/index.js +1 -1
  21. package/dist/components/hx-banner/hx-banner.d.ts +17 -0
  22. package/dist/components/hx-banner/hx-banner.d.ts.map +1 -1
  23. package/dist/components/hx-banner/index.js +1 -1
  24. package/dist/components/hx-breadcrumb/hx-breadcrumb-item.styles.d.ts.map +1 -1
  25. package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts +17 -2
  26. package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts.map +1 -1
  27. package/dist/components/hx-breadcrumb/index.js +1 -1
  28. package/dist/components/hx-button/hx-button.d.ts +6 -0
  29. package/dist/components/hx-button/hx-button.d.ts.map +1 -1
  30. package/dist/components/hx-button/hx-button.styles.d.ts.map +1 -1
  31. package/dist/components/hx-button/index.js +1 -1
  32. package/dist/components/hx-card/hx-card.d.ts +8 -0
  33. package/dist/components/hx-card/hx-card.d.ts.map +1 -1
  34. package/dist/components/hx-card/hx-card.styles.d.ts.map +1 -1
  35. package/dist/components/hx-card/index.js +1 -1
  36. package/dist/components/hx-carousel/hx-carousel-item.d.ts +2 -0
  37. package/dist/components/hx-carousel/hx-carousel-item.d.ts.map +1 -1
  38. package/dist/components/hx-carousel/hx-carousel-item.styles.d.ts +2 -0
  39. package/dist/components/hx-carousel/hx-carousel-item.styles.d.ts.map +1 -0
  40. package/dist/components/hx-carousel/hx-carousel.d.ts +27 -0
  41. package/dist/components/hx-carousel/hx-carousel.d.ts.map +1 -1
  42. package/dist/components/hx-carousel/hx-carousel.styles.d.ts.map +1 -1
  43. package/dist/components/hx-carousel/index.js +1 -1
  44. package/dist/components/hx-checkbox/hx-checkbox.d.ts +18 -2
  45. package/dist/components/hx-checkbox/hx-checkbox.d.ts.map +1 -1
  46. package/dist/components/hx-checkbox/hx-checkbox.styles.d.ts.map +1 -1
  47. package/dist/components/hx-checkbox/index.js +1 -1
  48. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts +20 -4
  49. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts.map +1 -1
  50. package/dist/components/hx-checkbox-group/index.js +1 -1
  51. package/dist/components/hx-code-snippet/hx-code-snippet.d.ts +10 -0
  52. package/dist/components/hx-code-snippet/hx-code-snippet.d.ts.map +1 -1
  53. package/dist/components/hx-code-snippet/hx-code-snippet.styles.d.ts.map +1 -1
  54. package/dist/components/hx-code-snippet/index.js +1 -1
  55. package/dist/components/hx-color-picker/hx-color-picker.d.ts +114 -12
  56. package/dist/components/hx-color-picker/hx-color-picker.d.ts.map +1 -1
  57. package/dist/components/hx-color-picker/hx-color-picker.styles.d.ts.map +1 -1
  58. package/dist/components/hx-color-picker/index.js +1 -1
  59. package/dist/components/hx-combobox/hx-combobox.d.ts +37 -2
  60. package/dist/components/hx-combobox/hx-combobox.d.ts.map +1 -1
  61. package/dist/components/hx-combobox/hx-combobox.styles.d.ts.map +1 -1
  62. package/dist/components/hx-combobox/index.js +1 -1
  63. package/dist/components/hx-copy-button/hx-copy-button.d.ts +11 -0
  64. package/dist/components/hx-copy-button/hx-copy-button.d.ts.map +1 -1
  65. package/dist/components/hx-copy-button/index.js +1 -1
  66. package/dist/components/hx-counter/hx-counter.d.ts +12 -3
  67. package/dist/components/hx-counter/hx-counter.d.ts.map +1 -1
  68. package/dist/components/hx-counter/index.js +1 -1
  69. package/dist/components/hx-data-table/hx-data-table.d.ts +27 -2
  70. package/dist/components/hx-data-table/hx-data-table.d.ts.map +1 -1
  71. package/dist/components/hx-data-table/hx-data-table.styles.d.ts.map +1 -1
  72. package/dist/components/hx-data-table/index.js +1 -1
  73. package/dist/components/hx-date-picker/hx-date-picker.d.ts +42 -3
  74. package/dist/components/hx-date-picker/hx-date-picker.d.ts.map +1 -1
  75. package/dist/components/hx-date-picker/hx-date-picker.styles.d.ts.map +1 -1
  76. package/dist/components/hx-date-picker/index.js +1 -1
  77. package/dist/components/hx-dialog/hx-dialog.d.ts +31 -4
  78. package/dist/components/hx-dialog/hx-dialog.d.ts.map +1 -1
  79. package/dist/components/hx-dialog/hx-dialog.styles.d.ts.map +1 -1
  80. package/dist/components/hx-dialog/index.js +1 -1
  81. package/dist/components/hx-divider/hx-divider.d.ts +4 -1
  82. package/dist/components/hx-divider/hx-divider.d.ts.map +1 -1
  83. package/dist/components/hx-divider/index.js +1 -1
  84. package/dist/components/hx-drawer/hx-drawer.d.ts +25 -3
  85. package/dist/components/hx-drawer/hx-drawer.d.ts.map +1 -1
  86. package/dist/components/hx-drawer/hx-drawer.styles.d.ts.map +1 -1
  87. package/dist/components/hx-drawer/index.js +1 -1
  88. package/dist/components/hx-dropdown/hx-dropdown.d.ts +35 -7
  89. package/dist/components/hx-dropdown/hx-dropdown.d.ts.map +1 -1
  90. package/dist/components/hx-dropdown/index.js +1 -1
  91. package/dist/components/hx-field/hx-field.d.ts +10 -2
  92. package/dist/components/hx-field/hx-field.d.ts.map +1 -1
  93. package/dist/components/hx-field/index.js +1 -1
  94. package/dist/components/hx-file-upload/hx-file-upload.d.ts +39 -2
  95. package/dist/components/hx-file-upload/hx-file-upload.d.ts.map +1 -1
  96. package/dist/components/hx-file-upload/hx-file-upload.styles.d.ts.map +1 -1
  97. package/dist/components/hx-file-upload/index.js +1 -1
  98. package/dist/components/hx-form/hx-form.d.ts.map +1 -1
  99. package/dist/components/hx-form/index.js +1 -1
  100. package/dist/components/hx-format-date/hx-format-date.d.ts +8 -0
  101. package/dist/components/hx-format-date/hx-format-date.d.ts.map +1 -1
  102. package/dist/components/hx-format-date/index.js +1 -1
  103. package/dist/components/hx-grid/hx-grid.d.ts +9 -3
  104. package/dist/components/hx-grid/hx-grid.d.ts.map +1 -1
  105. package/dist/components/hx-grid/index.js +1 -1
  106. package/dist/components/hx-help-text/index.js +1 -1
  107. package/dist/components/hx-icon/hx-icon.d.ts +10 -2
  108. package/dist/components/hx-icon/hx-icon.d.ts.map +1 -1
  109. package/dist/components/hx-icon/index.js +1 -1
  110. package/dist/components/hx-icon-button/hx-icon-button.d.ts +11 -0
  111. package/dist/components/hx-icon-button/hx-icon-button.d.ts.map +1 -1
  112. package/dist/components/hx-icon-button/hx-icon-button.styles.d.ts.map +1 -1
  113. package/dist/components/hx-icon-button/index.js +1 -1
  114. package/dist/components/hx-image/hx-image.d.ts +8 -0
  115. package/dist/components/hx-image/hx-image.d.ts.map +1 -1
  116. package/dist/components/hx-image/index.js +1 -1
  117. package/dist/components/hx-link/hx-link.d.ts +3 -0
  118. package/dist/components/hx-link/hx-link.d.ts.map +1 -1
  119. package/dist/components/hx-link/hx-link.styles.d.ts.map +1 -1
  120. package/dist/components/hx-link/index.js +1 -1
  121. package/dist/components/hx-list/hx-list-item.d.ts +8 -2
  122. package/dist/components/hx-list/hx-list-item.d.ts.map +1 -1
  123. package/dist/components/hx-list/hx-list-item.styles.d.ts.map +1 -1
  124. package/dist/components/hx-list/hx-list.d.ts +6 -2
  125. package/dist/components/hx-list/hx-list.d.ts.map +1 -1
  126. package/dist/components/hx-list/index.js +1 -1
  127. package/dist/components/hx-menu/hx-menu-item.d.ts +12 -0
  128. package/dist/components/hx-menu/hx-menu-item.d.ts.map +1 -1
  129. package/dist/components/hx-menu/hx-menu-item.styles.d.ts.map +1 -1
  130. package/dist/components/hx-menu/hx-menu.d.ts +11 -1
  131. package/dist/components/hx-menu/hx-menu.d.ts.map +1 -1
  132. package/dist/components/hx-menu/index.js +1 -1
  133. package/dist/components/hx-meter/hx-meter.d.ts +9 -0
  134. package/dist/components/hx-meter/hx-meter.d.ts.map +1 -1
  135. package/dist/components/hx-meter/hx-meter.styles.d.ts.map +1 -1
  136. package/dist/components/hx-meter/index.js +1 -1
  137. package/dist/components/hx-nav/hx-nav.d.ts +15 -0
  138. package/dist/components/hx-nav/hx-nav.d.ts.map +1 -1
  139. package/dist/components/hx-nav/hx-nav.styles.d.ts.map +1 -1
  140. package/dist/components/hx-nav/index.js +1 -1
  141. package/dist/components/hx-number-input/hx-number-input.d.ts +36 -1
  142. package/dist/components/hx-number-input/hx-number-input.d.ts.map +1 -1
  143. package/dist/components/hx-number-input/index.js +1 -1
  144. package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts +15 -0
  145. package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts.map +1 -1
  146. package/dist/components/hx-overflow-menu/hx-overflow-menu.styles.d.ts.map +1 -1
  147. package/dist/components/hx-overflow-menu/index.js +1 -1
  148. package/dist/components/hx-pagination/hx-pagination.d.ts +24 -0
  149. package/dist/components/hx-pagination/hx-pagination.d.ts.map +1 -1
  150. package/dist/components/hx-pagination/hx-pagination.styles.d.ts.map +1 -1
  151. package/dist/components/hx-pagination/index.js +1 -1
  152. package/dist/components/hx-popover/hx-popover.d.ts +94 -11
  153. package/dist/components/hx-popover/hx-popover.d.ts.map +1 -1
  154. package/dist/components/hx-popover/hx-popover.styles.d.ts.map +1 -1
  155. package/dist/components/hx-popover/index.js +1 -1
  156. package/dist/components/hx-popup/hx-popup.d.ts +8 -0
  157. package/dist/components/hx-popup/hx-popup.d.ts.map +1 -1
  158. package/dist/components/hx-popup/hx-popup.styles.d.ts.map +1 -1
  159. package/dist/components/hx-popup/index.js +1 -1
  160. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts +10 -2
  161. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts.map +1 -1
  162. package/dist/components/hx-progress-bar/hx-progress-bar.styles.d.ts.map +1 -1
  163. package/dist/components/hx-progress-bar/index.js +1 -1
  164. package/dist/components/hx-progress-ring/hx-progress-ring.d.ts +8 -2
  165. package/dist/components/hx-progress-ring/hx-progress-ring.d.ts.map +1 -1
  166. package/dist/components/hx-progress-ring/index.js +1 -1
  167. package/dist/components/hx-prose/hx-prose.d.ts +5 -3
  168. package/dist/components/hx-prose/hx-prose.d.ts.map +1 -1
  169. package/dist/components/hx-prose/index.js +1 -1
  170. package/dist/components/hx-radio-group/hx-radio-group.d.ts.map +1 -1
  171. package/dist/components/hx-radio-group/hx-radio.d.ts +4 -2
  172. package/dist/components/hx-radio-group/hx-radio.d.ts.map +1 -1
  173. package/dist/components/hx-radio-group/index.js +1 -1
  174. package/dist/components/hx-rating/hx-rating.d.ts +54 -2
  175. package/dist/components/hx-rating/hx-rating.d.ts.map +1 -1
  176. package/dist/components/hx-rating/index.js +1 -1
  177. package/dist/components/hx-select/hx-select.d.ts +22 -2
  178. package/dist/components/hx-select/hx-select.d.ts.map +1 -1
  179. package/dist/components/hx-select/hx-select.styles.d.ts.map +1 -1
  180. package/dist/components/hx-select/index.js +1 -1
  181. package/dist/components/hx-side-nav/hx-nav-item.d.ts +6 -0
  182. package/dist/components/hx-side-nav/hx-nav-item.d.ts.map +1 -1
  183. package/dist/components/hx-side-nav/hx-nav-item.styles.d.ts.map +1 -1
  184. package/dist/components/hx-side-nav/hx-side-nav.d.ts +6 -1
  185. package/dist/components/hx-side-nav/hx-side-nav.d.ts.map +1 -1
  186. package/dist/components/hx-side-nav/hx-side-nav.styles.d.ts.map +1 -1
  187. package/dist/components/hx-side-nav/index.js +1 -1
  188. package/dist/components/hx-slider/hx-slider.d.ts +22 -1
  189. package/dist/components/hx-slider/hx-slider.d.ts.map +1 -1
  190. package/dist/components/hx-slider/hx-slider.styles.d.ts.map +1 -1
  191. package/dist/components/hx-slider/index.js +1 -1
  192. package/dist/components/hx-spinner/hx-spinner.d.ts +3 -1
  193. package/dist/components/hx-spinner/hx-spinner.d.ts.map +1 -1
  194. package/dist/components/hx-spinner/index.js +1 -1
  195. package/dist/components/hx-split-button/hx-split-button.d.ts +12 -0
  196. package/dist/components/hx-split-button/hx-split-button.d.ts.map +1 -1
  197. package/dist/components/hx-split-button/index.js +1 -1
  198. package/dist/components/hx-split-panel/hx-split-panel.d.ts +72 -13
  199. package/dist/components/hx-split-panel/hx-split-panel.d.ts.map +1 -1
  200. package/dist/components/hx-split-panel/hx-split-panel.styles.d.ts.map +1 -1
  201. package/dist/components/hx-split-panel/index.js +1 -1
  202. package/dist/components/hx-stack/index.js +1 -1
  203. package/dist/components/hx-stat/hx-stat.d.ts +5 -1
  204. package/dist/components/hx-stat/hx-stat.d.ts.map +1 -1
  205. package/dist/components/hx-stat/index.js +1 -1
  206. package/dist/components/hx-status-indicator/hx-status-indicator.d.ts +13 -12
  207. package/dist/components/hx-status-indicator/hx-status-indicator.d.ts.map +1 -1
  208. package/dist/components/hx-status-indicator/index.js +1 -1
  209. package/dist/components/hx-steps/hx-step.d.ts +7 -9
  210. package/dist/components/hx-steps/hx-step.d.ts.map +1 -1
  211. package/dist/components/hx-steps/hx-step.styles.d.ts.map +1 -1
  212. package/dist/components/hx-steps/hx-steps.d.ts +3 -3
  213. package/dist/components/hx-steps/hx-steps.d.ts.map +1 -1
  214. package/dist/components/hx-steps/index.js +1 -1
  215. package/dist/components/hx-switch/hx-switch.d.ts +21 -1
  216. package/dist/components/hx-switch/hx-switch.d.ts.map +1 -1
  217. package/dist/components/hx-switch/index.js +1 -1
  218. package/dist/components/hx-table/hx-table.d.ts +7 -2
  219. package/dist/components/hx-table/hx-table.d.ts.map +1 -1
  220. package/dist/components/hx-table/hx-table.styles.d.ts.map +1 -1
  221. package/dist/components/hx-table/hx-th.d.ts +4 -0
  222. package/dist/components/hx-table/hx-th.d.ts.map +1 -1
  223. package/dist/components/hx-table/index.js +1 -1
  224. package/dist/components/hx-tabs/hx-tab.d.ts +3 -0
  225. package/dist/components/hx-tabs/hx-tab.d.ts.map +1 -1
  226. package/dist/components/hx-tabs/hx-tabs.d.ts +6 -0
  227. package/dist/components/hx-tabs/hx-tabs.d.ts.map +1 -1
  228. package/dist/components/hx-tabs/index.js +1 -1
  229. package/dist/components/hx-tag/hx-tag.d.ts +4 -0
  230. package/dist/components/hx-tag/hx-tag.d.ts.map +1 -1
  231. package/dist/components/hx-tag/hx-tag.styles.d.ts.map +1 -1
  232. package/dist/components/hx-tag/index.js +1 -1
  233. package/dist/components/hx-text/hx-text.d.ts +1 -0
  234. package/dist/components/hx-text/hx-text.d.ts.map +1 -1
  235. package/dist/components/hx-text/index.js +1 -1
  236. package/dist/components/hx-text-input/hx-text-input.d.ts +9 -4
  237. package/dist/components/hx-text-input/hx-text-input.d.ts.map +1 -1
  238. package/dist/components/hx-text-input/index.js +1 -1
  239. package/dist/components/hx-textarea/hx-textarea.d.ts +9 -3
  240. package/dist/components/hx-textarea/hx-textarea.d.ts.map +1 -1
  241. package/dist/components/hx-textarea/hx-textarea.styles.d.ts.map +1 -1
  242. package/dist/components/hx-textarea/index.js +1 -1
  243. package/dist/components/hx-theme/hx-theme.d.ts +2 -2
  244. package/dist/components/hx-theme/hx-theme.d.ts.map +1 -1
  245. package/dist/components/hx-time-picker/hx-time-picker.d.ts +102 -22
  246. package/dist/components/hx-time-picker/hx-time-picker.d.ts.map +1 -1
  247. package/dist/components/hx-time-picker/hx-time-picker.styles.d.ts.map +1 -1
  248. package/dist/components/hx-time-picker/index.js +1 -1
  249. package/dist/components/hx-toast/hx-toast.d.ts +18 -0
  250. package/dist/components/hx-toast/hx-toast.d.ts.map +1 -1
  251. package/dist/components/hx-toast/hx-toast.styles.d.ts.map +1 -1
  252. package/dist/components/hx-toast/index.js +1 -1
  253. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts +23 -0
  254. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts.map +1 -1
  255. package/dist/components/hx-toggle-button/index.js +1 -1
  256. package/dist/components/hx-tooltip/hx-tooltip.d.ts +57 -0
  257. package/dist/components/hx-tooltip/hx-tooltip.d.ts.map +1 -1
  258. package/dist/components/hx-tooltip/index.js +1 -1
  259. package/dist/components/hx-top-nav/hx-top-nav.d.ts +4 -0
  260. package/dist/components/hx-top-nav/hx-top-nav.d.ts.map +1 -1
  261. package/dist/components/hx-top-nav/index.js +1 -1
  262. package/dist/components/hx-tree-view/hx-tree-item.d.ts +13 -1
  263. package/dist/components/hx-tree-view/hx-tree-item.d.ts.map +1 -1
  264. package/dist/components/hx-tree-view/hx-tree-item.styles.d.ts.map +1 -1
  265. package/dist/components/hx-tree-view/hx-tree-view.d.ts +12 -0
  266. package/dist/components/hx-tree-view/hx-tree-view.d.ts.map +1 -1
  267. package/dist/components/hx-tree-view/index.js +1 -1
  268. package/dist/index.js +70 -70
  269. package/dist/shared/{hx-accordion-Cyswa6J3.js → hx-accordion-D1kFhdeQ.js} +68 -39
  270. package/dist/shared/hx-accordion-D1kFhdeQ.js.map +1 -0
  271. package/dist/shared/{hx-action-bar-we_WJety.js → hx-action-bar-D4bulGQP.js} +38 -31
  272. package/dist/shared/hx-action-bar-D4bulGQP.js.map +1 -0
  273. package/dist/shared/{hx-alert-Cg-zxRiU.js → hx-alert-K5F8KeqI.js} +123 -40
  274. package/dist/shared/hx-alert-K5F8KeqI.js.map +1 -0
  275. package/dist/shared/{hx-avatar-Cep6Urm3.js → hx-avatar-Cun-O99h.js} +5 -1
  276. package/dist/shared/hx-avatar-Cun-O99h.js.map +1 -0
  277. package/dist/shared/{hx-badge-CjT0d8NK.js → hx-badge-CsFd2xtw.js} +83 -47
  278. package/dist/shared/hx-badge-CsFd2xtw.js.map +1 -0
  279. package/dist/shared/{hx-banner-lxAIJ2kR.js → hx-banner-BTV-X2xF.js} +58 -42
  280. package/dist/shared/hx-banner-BTV-X2xF.js.map +1 -0
  281. package/dist/shared/{hx-breadcrumb-item-C0rz0fzV.js → hx-breadcrumb-item-4IwaLgaO.js} +39 -23
  282. package/dist/shared/hx-breadcrumb-item-4IwaLgaO.js.map +1 -0
  283. package/dist/shared/{hx-button-Cbhqpm5i.js → hx-button-7k-KeCYU.js} +29 -15
  284. package/dist/shared/hx-button-7k-KeCYU.js.map +1 -0
  285. package/dist/shared/{hx-card-Bg4W4uXC.js → hx-card-0hT3G5hi.js} +24 -13
  286. package/dist/shared/hx-card-0hT3G5hi.js.map +1 -0
  287. package/dist/shared/{hx-carousel-item-BKpmFbUT.js → hx-carousel-item-DgeYyYZJ.js} +138 -107
  288. package/dist/shared/hx-carousel-item-DgeYyYZJ.js.map +1 -0
  289. package/dist/shared/{hx-checkbox-BMayOpAM.js → hx-checkbox-BvjO-O41.js} +15 -6
  290. package/dist/shared/hx-checkbox-BvjO-O41.js.map +1 -0
  291. package/dist/shared/{hx-checkbox-group-ydUdV9Sx.js → hx-checkbox-group-Z5VvWzcj.js} +50 -37
  292. package/dist/shared/hx-checkbox-group-Z5VvWzcj.js.map +1 -0
  293. package/dist/shared/{hx-code-snippet-B4hV7rWG.js → hx-code-snippet-DqzPkH4K.js} +27 -11
  294. package/dist/shared/hx-code-snippet-DqzPkH4K.js.map +1 -0
  295. package/dist/shared/hx-color-picker-Da8z6AlQ.js +596 -0
  296. package/dist/shared/hx-color-picker-Da8z6AlQ.js.map +1 -0
  297. package/dist/shared/{hx-combobox-BBi3izKJ.js → hx-combobox-CivfelTS.js} +67 -430
  298. package/dist/shared/hx-combobox-CivfelTS.js.map +1 -0
  299. package/dist/shared/{hx-copy-button-CLBA31to.js → hx-copy-button--0dymSvw.js} +9 -1
  300. package/dist/shared/{hx-copy-button-CLBA31to.js.map → hx-copy-button--0dymSvw.js.map} +1 -1
  301. package/dist/shared/{hx-counter-D-1NXzGs.js → hx-counter-Duf00H7p.js} +58 -49
  302. package/dist/shared/hx-counter-Duf00H7p.js.map +1 -0
  303. package/dist/shared/{hx-data-table-DNiDVWR2.js → hx-data-table-DujB9hSE.js} +173 -129
  304. package/dist/shared/hx-data-table-DujB9hSE.js.map +1 -0
  305. package/dist/shared/{hx-date-picker-D7yCK0nk.js → hx-date-picker-C8d2HtRV.js} +142 -505
  306. package/dist/shared/hx-date-picker-C8d2HtRV.js.map +1 -0
  307. package/dist/shared/{hx-dialog-Z7Ou_AZ9.js → hx-dialog-DkUSnVgw.js} +76 -49
  308. package/dist/shared/hx-dialog-DkUSnVgw.js.map +1 -0
  309. package/dist/shared/{hx-divider-XgWIz4Mr.js → hx-divider-DNNs4e8q.js} +2 -1
  310. package/dist/shared/{hx-divider-XgWIz4Mr.js.map → hx-divider-DNNs4e8q.js.map} +1 -1
  311. package/dist/shared/{hx-drawer-Dk-_xzy0.js → hx-drawer-CJcRZcns.js} +102 -66
  312. package/dist/shared/hx-drawer-CJcRZcns.js.map +1 -0
  313. package/dist/shared/{hx-dropdown-DnjLnkTj.js → hx-dropdown-Bo0KTM1A.js} +56 -47
  314. package/dist/shared/hx-dropdown-Bo0KTM1A.js.map +1 -0
  315. package/dist/shared/{hx-field-CDP8EXuj.js → hx-field-3MmzJ4kZ.js} +21 -13
  316. package/dist/shared/hx-field-3MmzJ4kZ.js.map +1 -0
  317. package/dist/shared/{hx-file-upload-CUORgnKc.js → hx-file-upload-ByjAgfNy.js} +131 -86
  318. package/dist/shared/hx-file-upload-ByjAgfNy.js.map +1 -0
  319. package/dist/shared/hx-form-BpS6v3Iu.js +258 -0
  320. package/dist/shared/hx-form-BpS6v3Iu.js.map +1 -0
  321. package/dist/shared/{hx-format-date-BsVr8gpD.js → hx-format-date-BdnWV2kX.js} +7 -1
  322. package/dist/shared/hx-format-date-BdnWV2kX.js.map +1 -0
  323. package/dist/shared/{hx-grid-BsDBCTbt.js → hx-grid-gEjuF0cR.js} +25 -18
  324. package/dist/shared/hx-grid-gEjuF0cR.js.map +1 -0
  325. package/dist/shared/{hx-help-text-DaOPN1iB.js → hx-help-text-BAcEGRUE.js} +2 -2
  326. package/dist/shared/{hx-help-text-DaOPN1iB.js.map → hx-help-text-BAcEGRUE.js.map} +1 -1
  327. package/dist/shared/{hx-icon--xsJztDh.js → hx-icon-CP6OnLoM.js} +6 -1
  328. package/dist/shared/hx-icon-CP6OnLoM.js.map +1 -0
  329. package/dist/shared/{hx-icon-button-C83bCR0K.js → hx-icon-button-DzH_bRtC.js} +53 -29
  330. package/dist/shared/hx-icon-button-DzH_bRtC.js.map +1 -0
  331. package/dist/shared/{hx-image-xyb_tHCR.js → hx-image-C6pGiI6c.js} +6 -1
  332. package/dist/shared/hx-image-C6pGiI6c.js.map +1 -0
  333. package/dist/shared/{hx-link-DfNy_UU8.js → hx-link-Tmk_YPvW.js} +46 -37
  334. package/dist/shared/hx-link-Tmk_YPvW.js.map +1 -0
  335. package/dist/shared/{hx-list-CdRNgeoP.js → hx-list-DwInEX2H.js} +63 -37
  336. package/dist/shared/hx-list-DwInEX2H.js.map +1 -0
  337. package/dist/shared/{hx-menu-divider-11Dp2VfM.js → hx-menu-divider-DR4G_rqw.js} +93 -56
  338. package/dist/shared/hx-menu-divider-DR4G_rqw.js.map +1 -0
  339. package/dist/shared/hx-meter-uXkTZq-W.js +238 -0
  340. package/dist/shared/hx-meter-uXkTZq-W.js.map +1 -0
  341. package/dist/shared/{hx-nav-DSpwWYUX.js → hx-nav-3JsN2Oak.js} +94 -75
  342. package/dist/shared/hx-nav-3JsN2Oak.js.map +1 -0
  343. package/dist/shared/{hx-nav-item-D54-5eUM.js → hx-nav-item-D3EJatzc.js} +40 -16
  344. package/dist/shared/hx-nav-item-D3EJatzc.js.map +1 -0
  345. package/dist/shared/{hx-number-input-BP6TIA92.js → hx-number-input-CAAibZ8X.js} +35 -7
  346. package/dist/shared/hx-number-input-CAAibZ8X.js.map +1 -0
  347. package/dist/shared/{hx-overflow-menu-C7k5wlZy.js → hx-overflow-menu-2kgOJ_ht.js} +86 -66
  348. package/dist/shared/hx-overflow-menu-2kgOJ_ht.js.map +1 -0
  349. package/dist/shared/{hx-pagination-BQ0cLTuB.js → hx-pagination-DBs-vmSv.js} +127 -103
  350. package/dist/shared/hx-pagination-DBs-vmSv.js.map +1 -0
  351. package/dist/shared/hx-popover-DxE67miP.js +274 -0
  352. package/dist/shared/hx-popover-DxE67miP.js.map +1 -0
  353. package/dist/shared/{hx-popup-CYf9Q5sj.js → hx-popup-Dg6n_PbY.js} +13 -1
  354. package/dist/shared/hx-popup-Dg6n_PbY.js.map +1 -0
  355. package/dist/shared/{hx-progress-bar-C_mdPVF-.js → hx-progress-bar-Dm_EHyng.js} +101 -73
  356. package/dist/shared/hx-progress-bar-Dm_EHyng.js.map +1 -0
  357. package/dist/shared/{hx-progress-ring-BHJBaXNk.js → hx-progress-ring-DpxBDD5d.js} +35 -28
  358. package/dist/shared/hx-progress-ring-DpxBDD5d.js.map +1 -0
  359. package/dist/shared/hx-prose-Ml_L2zje.js +59 -0
  360. package/dist/shared/hx-prose-Ml_L2zje.js.map +1 -0
  361. package/dist/shared/{hx-radio-Bqyi8re3.js → hx-radio-BywgVSEu.js} +16 -15
  362. package/dist/shared/hx-radio-BywgVSEu.js.map +1 -0
  363. package/dist/shared/{hx-rating-Y_t7Z4qb.js → hx-rating-CUWBQ0fZ.js} +131 -64
  364. package/dist/shared/hx-rating-CUWBQ0fZ.js.map +1 -0
  365. package/dist/shared/{hx-select-BBae2LqN.js → hx-select-BwDwxk-M.js} +110 -171
  366. package/dist/shared/hx-select-BwDwxk-M.js.map +1 -0
  367. package/dist/shared/hx-skeleton-BHvALyd7.js.map +1 -1
  368. package/dist/shared/{hx-slider-CpnxH2UP.js → hx-slider-D_0EKJyk.js} +25 -8
  369. package/dist/shared/hx-slider-D_0EKJyk.js.map +1 -0
  370. package/dist/shared/{hx-spinner-BOApJ-g9.js → hx-spinner-DMn4SChS.js} +35 -28
  371. package/dist/shared/hx-spinner-DMn4SChS.js.map +1 -0
  372. package/dist/shared/{hx-split-button-BvwoG8h2.js → hx-split-button-CypgLXw1.js} +23 -12
  373. package/dist/shared/{hx-split-button-BvwoG8h2.js.map → hx-split-button-CypgLXw1.js.map} +1 -1
  374. package/dist/shared/{hx-split-panel-Cxkeauwe.js → hx-split-panel-BPMWKPGu.js} +74 -42
  375. package/dist/shared/hx-split-panel-BPMWKPGu.js.map +1 -0
  376. package/dist/shared/{hx-stack-CfoW7jU7.js → hx-stack-BStY1RmV.js} +29 -29
  377. package/dist/shared/hx-stack-BStY1RmV.js.map +1 -0
  378. package/dist/shared/{hx-stat-C2wfph8W.js → hx-stat-CHntLHJM.js} +18 -10
  379. package/dist/shared/hx-stat-CHntLHJM.js.map +1 -0
  380. package/dist/shared/{hx-status-indicator-oYWOkWlD.js → hx-status-indicator-C1BwEvUw.js} +15 -12
  381. package/dist/shared/hx-status-indicator-C1BwEvUw.js.map +1 -0
  382. package/dist/shared/{hx-step-DYoIumpR.js → hx-step-BIVWSPxd.js} +45 -33
  383. package/dist/shared/hx-step-BIVWSPxd.js.map +1 -0
  384. package/dist/shared/{hx-switch-DkKchcuP.js → hx-switch-BgX8kuWt.js} +12 -3
  385. package/dist/shared/hx-switch-BgX8kuWt.js.map +1 -0
  386. package/dist/shared/{hx-tab-panel-CHB0u1zF.js → hx-tab-panel-DhOq67jj.js} +65 -53
  387. package/dist/shared/hx-tab-panel-DhOq67jj.js.map +1 -0
  388. package/dist/shared/{hx-tag-SJJtMlOS.js → hx-tag-CzOTDcXI.js} +81 -55
  389. package/dist/shared/hx-tag-CzOTDcXI.js.map +1 -0
  390. package/dist/shared/{hx-td-CVwCGBYf.js → hx-td-h6oeW6YC.js} +43 -41
  391. package/dist/shared/hx-td-h6oeW6YC.js.map +1 -0
  392. package/dist/shared/{hx-text-NjKoQATI.js → hx-text-DTXjiviE.js} +2 -1
  393. package/dist/shared/{hx-text-NjKoQATI.js.map → hx-text-DTXjiviE.js.map} +1 -1
  394. package/dist/shared/{hx-text-input-BrCjo4fJ.js → hx-text-input-CqEdDHMU.js} +87 -70
  395. package/dist/shared/hx-text-input-CqEdDHMU.js.map +1 -0
  396. package/dist/shared/{hx-textarea-BsQdB1Rk.js → hx-textarea-BgX7rxyo.js} +21 -12
  397. package/dist/shared/hx-textarea-BgX7rxyo.js.map +1 -0
  398. package/dist/shared/hx-theme-6GDoUG8j.js.map +1 -1
  399. package/dist/shared/{hx-time-picker-DRRAFuVd.js → hx-time-picker-DmLu7WUC.js} +77 -274
  400. package/dist/shared/hx-time-picker-DmLu7WUC.js.map +1 -0
  401. package/dist/shared/{hx-toggle-button-D4F1soEM.js → hx-toggle-button-D1jpDvSA.js} +75 -38
  402. package/dist/shared/hx-toggle-button-D1jpDvSA.js.map +1 -0
  403. package/dist/shared/{hx-tooltip-Bk1iQRHs.js → hx-tooltip-kh7QFPKu.js} +66 -49
  404. package/dist/shared/hx-tooltip-kh7QFPKu.js.map +1 -0
  405. package/dist/shared/{hx-top-nav-DzW7XLv-.js → hx-top-nav-DYlnzDaU.js} +4 -2
  406. package/dist/shared/{hx-top-nav-DzW7XLv-.js.map → hx-top-nav-DYlnzDaU.js.map} +1 -1
  407. package/dist/shared/{hx-tree-item-DdH6RbMs.js → hx-tree-item-BP6UF_H1.js} +137 -101
  408. package/dist/shared/hx-tree-item-BP6UF_H1.js.map +1 -0
  409. package/dist/shared/toast-factory-DTy-qN8r.js +521 -0
  410. package/dist/shared/toast-factory-DTy-qN8r.js.map +1 -0
  411. package/dist/styles/shared-field.styles.d.ts +6 -0
  412. package/dist/styles/shared-field.styles.d.ts.map +1 -0
  413. package/package.json +2 -5
  414. package/dist/shared/hx-accordion-Cyswa6J3.js.map +0 -1
  415. package/dist/shared/hx-action-bar-we_WJety.js.map +0 -1
  416. package/dist/shared/hx-alert-Cg-zxRiU.js.map +0 -1
  417. package/dist/shared/hx-avatar-Cep6Urm3.js.map +0 -1
  418. package/dist/shared/hx-badge-CjT0d8NK.js.map +0 -1
  419. package/dist/shared/hx-banner-lxAIJ2kR.js.map +0 -1
  420. package/dist/shared/hx-breadcrumb-item-C0rz0fzV.js.map +0 -1
  421. package/dist/shared/hx-button-Cbhqpm5i.js.map +0 -1
  422. package/dist/shared/hx-card-Bg4W4uXC.js.map +0 -1
  423. package/dist/shared/hx-carousel-item-BKpmFbUT.js.map +0 -1
  424. package/dist/shared/hx-checkbox-BMayOpAM.js.map +0 -1
  425. package/dist/shared/hx-checkbox-group-ydUdV9Sx.js.map +0 -1
  426. package/dist/shared/hx-code-snippet-B4hV7rWG.js.map +0 -1
  427. package/dist/shared/hx-color-picker-BvfJ_h16.js +0 -803
  428. package/dist/shared/hx-color-picker-BvfJ_h16.js.map +0 -1
  429. package/dist/shared/hx-combobox-BBi3izKJ.js.map +0 -1
  430. package/dist/shared/hx-counter-D-1NXzGs.js.map +0 -1
  431. package/dist/shared/hx-data-table-DNiDVWR2.js.map +0 -1
  432. package/dist/shared/hx-date-picker-D7yCK0nk.js.map +0 -1
  433. package/dist/shared/hx-dialog-Z7Ou_AZ9.js.map +0 -1
  434. package/dist/shared/hx-drawer-Dk-_xzy0.js.map +0 -1
  435. package/dist/shared/hx-dropdown-DnjLnkTj.js.map +0 -1
  436. package/dist/shared/hx-field-CDP8EXuj.js.map +0 -1
  437. package/dist/shared/hx-file-upload-CUORgnKc.js.map +0 -1
  438. package/dist/shared/hx-form-BFv_N1dm.js +0 -1272
  439. package/dist/shared/hx-form-BFv_N1dm.js.map +0 -1
  440. package/dist/shared/hx-format-date-BsVr8gpD.js.map +0 -1
  441. package/dist/shared/hx-grid-BsDBCTbt.js.map +0 -1
  442. package/dist/shared/hx-icon--xsJztDh.js.map +0 -1
  443. package/dist/shared/hx-icon-button-C83bCR0K.js.map +0 -1
  444. package/dist/shared/hx-image-xyb_tHCR.js.map +0 -1
  445. package/dist/shared/hx-link-DfNy_UU8.js.map +0 -1
  446. package/dist/shared/hx-list-CdRNgeoP.js.map +0 -1
  447. package/dist/shared/hx-menu-divider-11Dp2VfM.js.map +0 -1
  448. package/dist/shared/hx-meter-UinDQjl6.js +0 -190
  449. package/dist/shared/hx-meter-UinDQjl6.js.map +0 -1
  450. package/dist/shared/hx-nav-DSpwWYUX.js.map +0 -1
  451. package/dist/shared/hx-nav-item-D54-5eUM.js.map +0 -1
  452. package/dist/shared/hx-number-input-BP6TIA92.js.map +0 -1
  453. package/dist/shared/hx-overflow-menu-C7k5wlZy.js.map +0 -1
  454. package/dist/shared/hx-pagination-BQ0cLTuB.js.map +0 -1
  455. package/dist/shared/hx-popover-BQsgrJCW.js +0 -226
  456. package/dist/shared/hx-popover-BQsgrJCW.js.map +0 -1
  457. package/dist/shared/hx-popup-CYf9Q5sj.js.map +0 -1
  458. package/dist/shared/hx-progress-bar-C_mdPVF-.js.map +0 -1
  459. package/dist/shared/hx-progress-ring-BHJBaXNk.js.map +0 -1
  460. package/dist/shared/hx-prose-DZh2KrMb.js +0 -876
  461. package/dist/shared/hx-prose-DZh2KrMb.js.map +0 -1
  462. package/dist/shared/hx-radio-Bqyi8re3.js.map +0 -1
  463. package/dist/shared/hx-rating-Y_t7Z4qb.js.map +0 -1
  464. package/dist/shared/hx-select-BBae2LqN.js.map +0 -1
  465. package/dist/shared/hx-slider-CpnxH2UP.js.map +0 -1
  466. package/dist/shared/hx-spinner-BOApJ-g9.js.map +0 -1
  467. package/dist/shared/hx-split-panel-Cxkeauwe.js.map +0 -1
  468. package/dist/shared/hx-stack-CfoW7jU7.js.map +0 -1
  469. package/dist/shared/hx-stat-C2wfph8W.js.map +0 -1
  470. package/dist/shared/hx-status-indicator-oYWOkWlD.js.map +0 -1
  471. package/dist/shared/hx-step-DYoIumpR.js.map +0 -1
  472. package/dist/shared/hx-switch-DkKchcuP.js.map +0 -1
  473. package/dist/shared/hx-tab-panel-CHB0u1zF.js.map +0 -1
  474. package/dist/shared/hx-tag-SJJtMlOS.js.map +0 -1
  475. package/dist/shared/hx-td-CVwCGBYf.js.map +0 -1
  476. package/dist/shared/hx-text-input-BrCjo4fJ.js.map +0 -1
  477. package/dist/shared/hx-textarea-BsQdB1Rk.js.map +0 -1
  478. package/dist/shared/hx-time-picker-DRRAFuVd.js.map +0 -1
  479. package/dist/shared/hx-toggle-button-D4F1soEM.js.map +0 -1
  480. package/dist/shared/hx-tooltip-Bk1iQRHs.js.map +0 -1
  481. package/dist/shared/hx-tree-item-DdH6RbMs.js.map +0 -1
  482. package/dist/shared/toast-factory-B8jicczW.js +0 -426
  483. package/dist/shared/toast-factory-B8jicczW.js.map +0 -1
@@ -1,8 +1,8 @@
1
- import { css as g, html as l, LitElement as f, nothing as p } from "lit";
2
- import { property as a, state as c, customElement as _ } from "lit/decorators.js";
3
- import { classMap as x } from "lit/directives/class-map.js";
4
- import { tokenStyles as y } from "@helixui/tokens/lit";
5
- const b = g`
1
+ import { css as g, LitElement as f, nothing as p, html as l } from "lit";
2
+ import { property as n, state as c, customElement as _ } from "lit/decorators.js";
3
+ import { classMap as y } from "lit/directives/class-map.js";
4
+ import { tokenStyles as x } from "@helixui/tokens/lit";
5
+ const m = g`
6
6
  :host {
7
7
  display: block;
8
8
  position: relative;
@@ -39,6 +39,9 @@ const b = 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 b = 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 b = 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 b = 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 b = 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 b = 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,10 +214,10 @@ const b = g`
200
214
  }
201
215
  }
202
216
  `;
203
- var m = 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, u; h >= 0; h--)
205
- (u = t[h]) && (s = (i ? u(e, r, s) : u(s)) || s);
206
- return i && s && m(e, r, s), s;
217
+ var b = Object.defineProperty, w = Object.getOwnPropertyDescriptor, a = (t, e, i, r) => {
218
+ for (var s = r > 1 ? void 0 : r ? w(e, i) : e, h = t.length - 1, u; h >= 0; h--)
219
+ (u = t[h]) && (s = (r ? u(e, i, s) : u(s)) || s);
220
+ return r && s && b(e, i, s), s;
207
221
  };
208
222
  const P = l`<svg
209
223
  xmlns="http://www.w3.org/2000/svg"
@@ -271,7 +285,7 @@ const P = l`<svg
271
285
  </svg>`;
272
286
  let o = 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.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 = () => {
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.labelSlideOf = (t, e) => `Slide ${t} of ${e}`, 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 = () => {
275
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();
@@ -289,7 +303,7 @@ let o = class extends f {
289
303
  }
290
304
  // ─── Lifecycle ───
291
305
  connectedCallback() {
292
- super.connectedCallback(), this._mql = window.matchMedia("(prefers-reduced-motion: reduce)"), this._reducedMotion = this._mql.matches, this._mql.addEventListener("change", this._handleMotionChange), this.addEventListener("mouseenter", this._handleMouseEnter), this.addEventListener("mouseleave", this._handleMouseLeave), this.addEventListener("focusin", this._handleFocusIn), this.addEventListener("focusout", this._handleFocusOut), this.addEventListener("keydown", this._handleKeydown);
306
+ super.connectedCallback(), typeof window < "u" && (this._mql = window.matchMedia("(prefers-reduced-motion: reduce)"), this._reducedMotion = this._mql.matches, this._mql.addEventListener("change", this._handleMotionChange)), this.addEventListener("mouseenter", this._handleMouseEnter), this.addEventListener("mouseleave", this._handleMouseLeave), this.addEventListener("focusin", this._handleFocusIn), this.addEventListener("focusout", this._handleFocusOut), this.addEventListener("keydown", this._handleKeydown);
293
307
  }
294
308
  disconnectedCallback() {
295
309
  var t;
@@ -299,17 +313,19 @@ let o = class extends f {
299
313
  this._syncSlides(), this.autoplay && !this._reducedMotion && this._startAutoplay();
300
314
  }
301
315
  // ─── Slide Management ───
316
+ /** @internal */
302
317
  _syncSlides() {
303
- var r;
304
- const t = (r = this.shadowRoot) == null ? void 0 : r.querySelector("slot:not([name])");
318
+ var i;
319
+ const t = (i = this.shadowRoot) == null ? void 0 : i.querySelector("slot:not([name])");
305
320
  if (!t) return;
306
- 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
+ const e = t.assignedElements({ flatten: !0 }).filter((r) => r.tagName.toLowerCase() === "hx-carousel-item");
322
+ this._slides = e, e.forEach((r, s) => {
323
+ r.slideIndex = s, r.totalSlides = e.length;
309
324
  const h = `${100 / this.slidesPerPage}%`;
310
- i.style.setProperty("--_hx-carousel-slide-width", h);
325
+ r.style.setProperty("--_hx-carousel-slide-width", h);
311
326
  }), this._currentIndex >= e.length && (this._currentIndex = Math.max(0, e.length - 1));
312
327
  }
328
+ /** @internal */
313
329
  _handleSlotChange() {
314
330
  this._syncSlides();
315
331
  }
@@ -324,13 +340,16 @@ let o = class extends f {
324
340
  goTo(t) {
325
341
  if (this._slides.length === 0) return;
326
342
  let e = t;
327
- this.loop ? e = (t % this._slides.length + this._slides.length) % this._slides.length : e = Math.max(0, Math.min(t, this._maxIndex)), e !== this._currentIndex && (this._currentIndex = e, this._liveText = `Slide ${e + 1} of ${this._slides.length}`, this.dispatchEvent(
343
+ if (this.loop ? e = (t % this._slides.length + this._slides.length) % this._slides.length : e = Math.max(0, Math.min(t, this._maxIndex)), e === this._currentIndex) return;
344
+ this._currentIndex = e, this._liveText = this.labelSlideOf(e + 1, this._slides.length);
345
+ const i = this._slides[e];
346
+ i && this.dispatchEvent(
328
347
  new CustomEvent("hx-slide-change", {
329
348
  bubbles: !0,
330
349
  composed: !0,
331
- detail: { index: e, slide: this._slides[e] }
350
+ detail: { index: e, slide: i }
332
351
  })
333
- ));
352
+ );
334
353
  }
335
354
  next() {
336
355
  const t = this._currentIndex + this.slidesPerMove;
@@ -340,55 +359,67 @@ let o = class extends f {
340
359
  const t = this._currentIndex - this.slidesPerMove;
341
360
  !this.loop && t < 0 || (this._livePolite = !0, this.goTo(t));
342
361
  }
362
+ /** @internal */
343
363
  _startAutoplay() {
344
364
  this._autoplayTimer === null && (this._isPlaying = !0, this._autoplayTimer = setInterval(this._autoplayTick, this.autoplayInterval));
345
365
  }
366
+ /** @internal */
346
367
  _stopAutoplay() {
347
368
  this._autoplayTimer !== null && (clearInterval(this._autoplayTimer), this._autoplayTimer = null), this._isPlaying = !1;
348
369
  }
370
+ /** @internal */
349
371
  _toggleAutoplay() {
350
372
  this._isPlaying ? this._stopAutoplay() : this._reducedMotion || this._startAutoplay();
351
373
  }
374
+ /** @internal */
352
375
  _pauseAutoplay() {
353
376
  !this._isPlaying || this._autoplayTimer === null || (clearInterval(this._autoplayTimer), this._autoplayTimer = null);
354
377
  }
378
+ /** @internal */
355
379
  _resumeAutoplay() {
356
380
  !this.autoplay || !this._isPlaying || this._reducedMotion || this._autoplayTimer === null && (this._autoplayTimer = setInterval(this._autoplayTick, this.autoplayInterval));
357
381
  }
358
382
  // ─── Drag Handlers ───
383
+ /** @internal */
359
384
  _handleDragStart(t) {
360
385
  this.mouseDragging && (this._isDragging = !0, this._dragMoved = !1, this._dragStartCoord = this.orientation === "horizontal" ? t.clientX : t.clientY, t.currentTarget.style.cursor = "grabbing", t.preventDefault());
361
386
  }
387
+ /** @internal */
362
388
  _handleDragMove(t) {
363
389
  if (!this._isDragging) return;
364
- const r = (this.orientation === "horizontal" ? t.clientX : t.clientY) - this._dragStartCoord;
365
- Math.abs(r) > 5 && (this._dragMoved = !0);
390
+ const i = (this.orientation === "horizontal" ? t.clientX : t.clientY) - this._dragStartCoord;
391
+ Math.abs(i) > 5 && (this._dragMoved = !0);
366
392
  }
393
+ /** @internal */
367
394
  _handleDragEnd(t) {
368
395
  if (!this._isDragging) return;
369
- const r = (this.orientation === "horizontal" ? t.clientX : t.clientY) - this._dragStartCoord, i = 50;
370
- this._dragMoved && (r > i ? this.previous() : r < -i && this.next()), this._isDragging = !1, this._dragMoved = !1, t.currentTarget.style.cursor = "";
396
+ const i = (this.orientation === "horizontal" ? t.clientX : t.clientY) - this._dragStartCoord, r = 50;
397
+ this._dragMoved && (i > r ? this.previous() : i < -r && this.next()), this._isDragging = !1, this._dragMoved = !1, t.currentTarget.style.cursor = "";
371
398
  }
372
399
  // ─── Touch Handlers ───
400
+ /** @internal */
373
401
  _handleTouchStart(t) {
374
402
  if (!this.mouseDragging) return;
375
403
  const e = t.touches[0];
376
404
  e && (this._isDragging = !0, this._touchMoved = !1, this._touchStartCoord = this.orientation === "horizontal" ? e.clientX : e.clientY);
377
405
  }
406
+ /** @internal */
378
407
  _handleTouchMove(t) {
379
408
  if (!this._isDragging) return;
380
409
  const e = t.touches[0];
381
410
  if (!e) return;
382
- const i = (this.orientation === "horizontal" ? e.clientX : e.clientY) - this._touchStartCoord;
383
- Math.abs(i) > 5 && (this._touchMoved = !0);
411
+ const r = (this.orientation === "horizontal" ? e.clientX : e.clientY) - this._touchStartCoord;
412
+ Math.abs(r) > 5 && (this._touchMoved = !0);
384
413
  }
414
+ /** @internal */
385
415
  _handleTouchEnd(t) {
386
416
  if (!this._isDragging) return;
387
417
  const e = t.changedTouches[0];
388
418
  if (!e) return;
389
- const i = (this.orientation === "horizontal" ? e.clientX : e.clientY) - this._touchStartCoord, s = 50;
390
- this._touchMoved && (i > s ? this.previous() : i < -s && this.next()), this._isDragging = !1, this._touchMoved = !1;
419
+ const r = (this.orientation === "horizontal" ? e.clientX : e.clientY) - this._touchStartCoord, s = 50;
420
+ this._touchMoved && (r > s ? this.previous() : r < -s && this.next()), this._isDragging = !1, this._touchMoved = !1;
391
421
  }
422
+ /** @internal */
392
423
  _goToManual(t) {
393
424
  this._livePolite = !0, this.goTo(t);
394
425
  }
@@ -416,6 +447,7 @@ let o = class extends f {
416
447
  return this.loop || this._currentIndex < this._maxIndex;
417
448
  }
418
449
  // ─── Render Helpers ───
450
+ /** @internal */
419
451
  _renderNavigation() {
420
452
  return l`
421
453
  <div class="navigation" part="navigation">
@@ -457,25 +489,26 @@ let o = class extends f {
457
489
  </div>
458
490
  `;
459
491
  }
492
+ /** @internal */
460
493
  _renderPagination() {
461
494
  const t = this._slides.length;
462
495
  if (t <= 1) return p;
463
- const e = Array.from({ length: t }, (r, i) => i);
496
+ const e = Array.from({ length: t }, (i, r) => r);
464
497
  return l`
465
498
  <div class="controls">
466
499
  <div class="pagination" part="pagination">
467
500
  ${e.map(
468
- (r) => l`
501
+ (i) => l`
469
502
  <button
470
- class=${x({
503
+ class=${y({
471
504
  "pagination-item": !0,
472
- "is-active": r === this._currentIndex
505
+ "is-active": i === this._currentIndex
473
506
  })}
474
507
  part="pagination-item"
475
508
  type="button"
476
- aria-label="Slide ${r + 1} of ${t}"
477
- aria-current=${r === this._currentIndex ? "true" : p}
478
- @click=${() => this._goToManual(r)}
509
+ aria-label=${this.labelSlideOf(i + 1, t)}
510
+ aria-current=${i === this._currentIndex ? "true" : p}
511
+ @click=${() => this._goToManual(i)}
479
512
  >
480
513
  <span class="pagination-dot"></span>
481
514
  </button>
@@ -485,15 +518,19 @@ let o = class extends f {
485
518
  </div>
486
519
  `;
487
520
  }
521
+ /** @internal */
488
522
  _renderPrevIcon() {
489
523
  return this.orientation === "horizontal" ? P : k;
490
524
  }
525
+ /** @internal */
491
526
  _renderNextIcon() {
492
527
  return this.orientation === "horizontal" ? I : M;
493
528
  }
529
+ /** @internal */
494
530
  _renderPlayIcon() {
495
531
  return S;
496
532
  }
533
+ /** @internal */
497
534
  _renderPauseIcon() {
498
535
  return $;
499
536
  }
@@ -538,65 +575,86 @@ let o = class extends f {
538
575
  `;
539
576
  }
540
577
  };
541
- o.styles = [y, b];
542
- n([
543
- a({ type: String, reflect: !0 })
578
+ o.styles = [x, m];
579
+ a([
580
+ n({ type: String, reflect: !0 })
544
581
  ], o.prototype, "label", 2);
545
- n([
546
- a({ type: Boolean, reflect: !0 })
582
+ a([
583
+ n({ type: Boolean, reflect: !0 })
547
584
  ], o.prototype, "loop", 2);
548
- n([
549
- a({ type: Boolean, reflect: !0 })
585
+ a([
586
+ n({ type: Boolean, reflect: !0 })
550
587
  ], o.prototype, "autoplay", 2);
551
- n([
552
- a({ type: Number, attribute: "autoplay-interval" })
588
+ a([
589
+ n({ type: Number, attribute: "autoplay-interval" })
553
590
  ], o.prototype, "autoplayInterval", 2);
554
- n([
555
- a({ type: Number, attribute: "slides-per-page" })
591
+ a([
592
+ n({ type: Number, attribute: "slides-per-page" })
556
593
  ], o.prototype, "slidesPerPage", 2);
557
- n([
558
- a({ type: Number, attribute: "slides-per-move" })
594
+ a([
595
+ n({ type: Number, attribute: "slides-per-move" })
559
596
  ], o.prototype, "slidesPerMove", 2);
560
- n([
561
- a({ type: String, reflect: !0 })
597
+ a([
598
+ n({ type: String, reflect: !0 })
562
599
  ], o.prototype, "orientation", 2);
563
- n([
564
- a({ type: Boolean, attribute: "mouse-dragging", reflect: !0 })
600
+ a([
601
+ n({ type: Boolean, attribute: "mouse-dragging", reflect: !0 })
565
602
  ], o.prototype, "mouseDragging", 2);
566
- n([
567
- a({ type: String, attribute: "label-prev-slide" })
603
+ a([
604
+ n({ type: String, attribute: "label-prev-slide" })
568
605
  ], o.prototype, "labelPrevSlide", 2);
569
- n([
570
- a({ type: String, attribute: "label-next-slide" })
606
+ a([
607
+ n({ type: String, attribute: "label-next-slide" })
571
608
  ], o.prototype, "labelNextSlide", 2);
572
- n([
573
- a({ type: String, attribute: "label-pause-autoplay" })
609
+ a([
610
+ n({ type: String, attribute: "label-pause-autoplay" })
574
611
  ], o.prototype, "labelPauseAutoplay", 2);
575
- n([
576
- a({ type: String, attribute: "label-play-autoplay" })
612
+ a([
613
+ n({ type: String, attribute: "label-play-autoplay" })
577
614
  ], o.prototype, "labelPlayAutoplay", 2);
578
- n([
615
+ a([
616
+ n({ attribute: !1 })
617
+ ], o.prototype, "labelSlideOf", 2);
618
+ a([
579
619
  c()
580
620
  ], o.prototype, "_currentIndex", 2);
581
- n([
621
+ a([
582
622
  c()
583
623
  ], o.prototype, "_slides", 2);
584
- n([
624
+ a([
585
625
  c()
586
626
  ], o.prototype, "_isPlaying", 2);
587
- n([
627
+ a([
588
628
  c()
589
629
  ], o.prototype, "_liveText", 2);
590
- n([
630
+ a([
591
631
  c()
592
632
  ], o.prototype, "_livePolite", 2);
593
- o = n([
633
+ o = a([
594
634
  _("hx-carousel")
595
635
  ], o);
596
- var T = Object.defineProperty, C = Object.getOwnPropertyDescriptor, v = (t, e, r, i) => {
597
- for (var s = i > 1 ? void 0 : i ? C(e, r) : e, h = t.length - 1, u; h >= 0; h--)
598
- (u = t[h]) && (s = (i ? u(e, r, s) : u(s)) || s);
599
- return i && s && T(e, r, s), s;
636
+ const C = g`
637
+ :host {
638
+ display: block;
639
+ flex-shrink: 0;
640
+ width: var(--_hx-carousel-slide-width, 100%);
641
+ box-sizing: border-box;
642
+ }
643
+
644
+ .slide-group {
645
+ height: 100%;
646
+ outline: none;
647
+ }
648
+
649
+ .slide-group:focus-visible {
650
+ outline: var(--hx-focus-ring-width) solid var(--hx-focus-ring-color);
651
+ outline-offset: var(--hx-focus-ring-offset);
652
+ }
653
+ `;
654
+ var T = Object.defineProperty, D = Object.getOwnPropertyDescriptor, v = (t, e, i, r) => {
655
+ for (var s = r > 1 ? void 0 : r ? D(e, i) : e, h = t.length - 1, u; h >= 0; h--)
656
+ (u = t[h]) && (s = (r ? u(e, i, s) : u(s)) || s);
657
+ return r && s && T(e, i, s), s;
600
658
  };
601
659
  let d = class extends f {
602
660
  constructor() {
@@ -605,45 +663,18 @@ let d = class extends f {
605
663
  render() {
606
664
  const t = `Slide ${this.slideIndex + 1} of ${this.totalSlides}`;
607
665
  return l`
608
- <div class="slide-group" role="group" aria-label=${t} tabindex="-1">
666
+ <div class="slide-group" part="slide" role="group" aria-label=${t} tabindex="-1">
609
667
  <slot></slot>
610
668
  </div>
611
669
  `;
612
670
  }
613
671
  };
614
- d.styles = [
615
- y,
616
- g`
617
- :host {
618
- display: block;
619
- flex-shrink: 0;
620
- width: var(--_hx-carousel-slide-width, 100%);
621
- box-sizing: border-box;
622
- }
623
-
624
- .slide-group {
625
- height: 100%;
626
- outline: none;
627
- }
628
-
629
- /*
630
- * Show focus ring for both keyboard-initiated focus (:focus-visible) and
631
- * programmatic focus (.focus() calls from JS). tabindex="-1" elements only
632
- * receive focus programmatically, so :focus-visible may not trigger in all
633
- * browsers — :focus-within on the host ensures the ring is always visible.
634
- */
635
- .slide-group:focus-visible,
636
- .slide-group:focus {
637
- outline: var(--hx-focus-ring-width) solid var(--hx-focus-ring-color);
638
- outline-offset: var(--hx-focus-ring-offset);
639
- }
640
- `
641
- ];
672
+ d.styles = [x, C];
642
673
  v([
643
- a({ type: Number, attribute: "slide-index" })
674
+ n({ type: Number, attribute: "slide-index" })
644
675
  ], d.prototype, "slideIndex", 2);
645
676
  v([
646
- a({ type: Number, attribute: "total-slides" })
677
+ n({ type: Number, attribute: "total-slides" })
647
678
  ], d.prototype, "totalSlides", 2);
648
679
  d = v([
649
680
  _("hx-carousel-item")
@@ -652,4 +683,4 @@ export {
652
683
  o as H,
653
684
  d as a
654
685
  };
655
- //# sourceMappingURL=hx-carousel-item-BKpmFbUT.js.map
686
+ //# sourceMappingURL=hx-carousel-item-DgeYyYZJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hx-carousel-item-DgeYyYZJ.js","sources":["../../src/components/hx-carousel/hx-carousel.styles.ts","../../src/components/hx-carousel/hx-carousel.ts","../../src/components/hx-carousel/hx-carousel-item.styles.ts","../../src/components/hx-carousel/hx-carousel-item.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixCarouselStyles = css`\n :host {\n display: block;\n position: relative;\n }\n\n /* ─── Base ─── */\n\n .base {\n display: flex;\n flex-direction: column;\n gap: var(--hx-space-3, 0.75rem);\n }\n\n :host([orientation='vertical']) .base {\n flex-direction: row;\n }\n\n /* ─── Navigation ─── */\n\n .navigation {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--hx-space-2, 0.5rem);\n }\n\n :host([orientation='vertical']) .navigation {\n flex-direction: column;\n }\n\n .nav-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--hx-carousel-nav-btn-size, var(--hx-size-10, 2.5rem));\n height: var(--hx-carousel-nav-btn-size, var(--hx-size-10, 2.5rem));\n /* WCAG 2.5.5 (healthcare mandate): minimum 44x44px touch target */\n min-width: var(--hx-touch-target-min, 2.75rem);\n min-height: var(--hx-touch-target-min, 2.75rem);\n border: var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-200, #e5e7eb);\n border-radius: var(--hx-border-radius-full, 9999px);\n background: var(--hx-color-neutral-0, #fff);\n color: var(--hx-color-neutral-700, #374151);\n cursor: pointer;\n padding: 0;\n transition:\n background-color var(--hx-transition-fast, 0.15s ease),\n color var(--hx-transition-fast, 0.15s ease),\n border-color var(--hx-transition-fast, 0.15s ease);\n flex-shrink: 0;\n }\n\n .nav-btn:hover:not([disabled]) {\n background: var(--hx-color-neutral-50, #f9fafb);\n border-color: var(--hx-color-neutral-400, #9ca3af);\n }\n\n .nav-btn:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid\n var(--hx-carousel-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 .nav-btn[disabled] {\n opacity: var(--hx-opacity-disabled, 0.4);\n cursor: not-allowed;\n }\n\n .nav-btn svg {\n width: 1.25em;\n height: 1.25em;\n }\n\n /* ─── Play/Pause ─── */\n\n .play-pause-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n /* WCAG 2.5.5 (healthcare mandate): minimum 44x44px touch target */\n min-width: var(--hx-touch-target-min, 2.75rem);\n min-height: var(--hx-touch-target-min, 2.75rem);\n width: var(--hx-touch-target-min, 2.75rem);\n height: var(--hx-touch-target-min, 2.75rem);\n border: var(--hx-border-width-thin, 1px) solid transparent;\n border-radius: var(--hx-border-radius-md, 0.375rem);\n background: transparent;\n color: var(--hx-color-neutral-500, #6b7280);\n cursor: pointer;\n padding: 0;\n font-size: var(--hx-font-size-sm, 0.875rem);\n transition: background-color var(--hx-transition-fast, 0.15s ease);\n flex-shrink: 0;\n }\n\n .play-pause-btn:hover {\n background: var(--hx-color-neutral-100, #f3f4f6);\n }\n\n .play-pause-btn:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid\n var(--hx-carousel-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 /* ─── Scroll Container ─── */\n\n .scroll-container-wrapper {\n flex: 1;\n overflow: hidden;\n }\n\n .slide-viewport {\n overflow: hidden;\n border-radius: var(--hx-border-radius-md, 0.375rem);\n }\n\n .track {\n display: flex;\n transition: transform var(--hx-transition-base, 0.3s ease);\n }\n\n :host([orientation='vertical']) .track {\n flex-direction: column;\n }\n\n /* ─── Pagination ─── */\n\n .pagination {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--hx-space-2, 0.5rem);\n flex-wrap: wrap;\n }\n\n :host([orientation='vertical']) .pagination {\n flex-direction: column;\n }\n\n .pagination-item {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n /* WCAG 2.5.5 (healthcare mandate): minimum 44x44px touch target */\n min-width: var(--hx-touch-target-min, 2.75rem);\n min-height: var(--hx-touch-target-min, 2.75rem);\n padding: 0;\n border: none;\n cursor: pointer;\n background: transparent;\n border-radius: var(--hx-border-radius-full, 9999px);\n }\n\n .pagination-dot {\n display: block;\n width: var(--hx-carousel-pagination-dot-size, 0.5rem);\n height: var(--hx-carousel-pagination-dot-size, 0.5rem);\n border-radius: var(--hx-border-radius-full, 9999px);\n background: var(--hx-color-neutral-300, #d1d5db);\n transition:\n background-color var(--hx-transition-fast, 0.15s ease),\n transform var(--hx-transition-fast, 0.15s ease);\n }\n\n .pagination-item[aria-current='true'] .pagination-dot,\n .pagination-item.is-active .pagination-dot {\n background: var(--hx-color-primary-600, #2563eb);\n transform: scale(1.25);\n }\n\n .pagination-item:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid\n var(--hx-carousel-focus-ring-color, var(--hx-focus-ring-color, var(--hx-color-primary-500)));\n outline-offset: var(--hx-focus-ring-offset, 2px);\n border-radius: var(--hx-border-radius-full, 9999px);\n }\n\n /* ─── Controls row ─── */\n\n .controls {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--hx-space-3, 0.75rem);\n }\n\n /* ─── Live Region ─── */\n\n .live-region {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n\n /* ─── Reduced Motion ─── */\n\n @media (prefers-reduced-motion: reduce) {\n .track,\n .nav-btn,\n .pagination-dot,\n .play-pause-btn {\n transition: none;\n }\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 { helixCarouselStyles } from './hx-carousel.styles.js';\nimport type { HelixCarouselItem } from './hx-carousel-item.js';\n\n// ─── Module-level SVG icon constants ───\n\nconst _svgChevronLeft = html`<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n>\n <polyline points=\"15 18 9 12 15 6\"></polyline>\n</svg>`;\n\nconst _svgChevronUp = html`<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n>\n <polyline points=\"18 15 12 9 6 15\"></polyline>\n</svg>`;\n\nconst _svgChevronRight = html`<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n>\n <polyline points=\"9 18 15 12 9 6\"></polyline>\n</svg>`;\n\nconst _svgChevronDown = html`<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n>\n <polyline points=\"6 9 12 15 18 9\"></polyline>\n</svg>`;\n\nconst _svgPlay = html`<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n width=\"1em\"\n height=\"1em\"\n>\n <polygon points=\"5 3 19 12 5 21 5 3\"></polygon>\n</svg>`;\n\nconst _svgPause = html`<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n width=\"1em\"\n height=\"1em\"\n>\n <rect x=\"6\" y=\"4\" width=\"4\" height=\"16\"></rect>\n <rect x=\"14\" y=\"4\" width=\"4\" height=\"16\"></rect>\n</svg>`;\n\n/**\n * A scrollable carousel/slider for images or content slides.\n *\n * @summary Scrollable carousel with navigation, pagination, autoplay, and an accessible label.\n *\n * @tag hx-carousel\n *\n * @slot - `hx-carousel-item` elements (the slides).\n * @slot next-button - Custom next navigation button.\n * @slot previous-button - Custom previous navigation button.\n *\n * @fires {CustomEvent<{index: number, slide: HelixCarouselItem}>} hx-slide-change - Dispatched when the active slide changes.\n *\n * @csspart base - The outer wrapper element.\n * @csspart slide-viewport - The slide viewport/overflow container.\n * @csspart pagination - The pagination dot container.\n * @csspart pagination-item - Individual pagination dot button.\n * @csspart navigation - The previous/next button wrapper.\n * @csspart prev-btn - The previous navigation button.\n * @csspart next-btn - The next navigation button.\n * @csspart play-pause-btn - The autoplay play/pause toggle button.\n *\n * @cssprop [--hx-carousel-gap=0px] - Gap between slides.\n * @cssprop [--hx-carousel-slide-width=100%] - Width override for each slide.\n * @cssprop [--hx-carousel-nav-btn-size=2.5rem] - Size of previous/next navigation buttons.\n * @cssprop [--hx-carousel-pagination-dot-size=0.5rem] - Size of pagination dots.\n */\n@customElement('hx-carousel')\nexport class HelixCarousel extends LitElement {\n static override styles = [tokenStyles, helixCarouselStyles];\n\n /**\n * Accessible label identifying this carousel to assistive technology.\n * When multiple carousels appear on the same page, each must have a unique label.\n * @attr label\n */\n @property({ type: String, reflect: true })\n label = 'Carousel';\n\n /**\n * Whether the carousel wraps around from last to first slide and vice-versa.\n * @attr loop\n */\n @property({ type: Boolean, reflect: true })\n loop = false;\n\n /**\n * Whether the carousel auto-advances slides.\n * Automatically pauses on hover, focus, and when prefers-reduced-motion is active.\n * @attr autoplay\n */\n @property({ type: Boolean, reflect: true })\n autoplay = false;\n\n /**\n * Milliseconds between auto-advance transitions.\n * @attr autoplay-interval\n */\n @property({ type: Number, attribute: 'autoplay-interval' })\n autoplayInterval = 3000;\n\n /**\n * Number of slides visible at once.\n * @attr slides-per-page\n */\n @property({ type: Number, attribute: 'slides-per-page' })\n slidesPerPage = 1;\n\n /**\n * Number of slides to advance per navigation action.\n * @attr slides-per-move\n */\n @property({ type: Number, attribute: 'slides-per-move' })\n slidesPerMove = 1;\n\n /**\n * Scroll axis of the carousel.\n * @attr orientation\n */\n @property({ type: String, reflect: true })\n orientation: 'horizontal' | 'vertical' = 'horizontal';\n\n /**\n * Whether click-drag scrolling is enabled.\n * @attr mouse-dragging\n */\n @property({ type: Boolean, attribute: 'mouse-dragging', reflect: true })\n mouseDragging = false;\n\n /**\n * Accessible label for the previous slide button.\n * @attr label-prev-slide\n */\n @property({ type: String, attribute: 'label-prev-slide' })\n labelPrevSlide = 'Previous slide';\n\n /**\n * Accessible label for the next slide button.\n * @attr label-next-slide\n */\n @property({ type: String, attribute: 'label-next-slide' })\n labelNextSlide = 'Next slide';\n\n /**\n * Accessible label for the autoplay pause button.\n * @attr label-pause-autoplay\n */\n @property({ type: String, attribute: 'label-pause-autoplay' })\n labelPauseAutoplay = 'Pause autoplay';\n\n /**\n * Accessible label for the autoplay play button.\n * @attr label-play-autoplay\n */\n @property({ type: String, attribute: 'label-play-autoplay' })\n labelPlayAutoplay = 'Play autoplay';\n\n /**\n * Generates the live-region text for a slide position.\n * @param index - 1-based slide index\n * @param total - total slide count\n */\n @property({ attribute: false })\n labelSlideOf: (index: number, total: number) => string = (index, total) =>\n `Slide ${index} of ${total}`;\n\n /**\n * Index of the currently visible slide.\n * @internal\n */\n @state() private _currentIndex = 0;\n /**\n * Array of carousel item elements assigned to the default slot.\n * @internal\n */\n @state() private _slides: HelixCarouselItem[] = [];\n /**\n * Whether the autoplay is currently active and advancing slides.\n * @internal\n */\n @state() private _isPlaying = false;\n /**\n * Text content for the ARIA live region announcing slide changes.\n * @internal\n */\n @state() private _liveText = '';\n /** @internal */\n @state() private _livePolite = true;\n\n /**\n * Reference to the active autoplay interval timer, or null when stopped.\n * @internal\n */\n private _autoplayTimer: ReturnType<typeof setInterval> | null = null;\n /**\n * Whether the user has requested reduced motion via the OS media preference.\n * @internal\n */\n private _reducedMotion = false;\n /**\n * MediaQueryList instance for monitoring the prefers-reduced-motion media feature.\n * @internal\n */\n private _mql: MediaQueryList | null = null;\n /**\n * Whether the carousel is currently being hovered, used to pause autoplay on hover.\n * @internal\n */\n private _isHovered = false;\n /**\n * Whether a descendant of the carousel currently has focus, used to pause autoplay on focus.\n * @internal\n */\n private _isFocused = false;\n\n // ─── Drag state ───\n /**\n * Pointer coordinate at the start of a mouse drag gesture.\n * @internal\n */\n private _dragStartCoord = 0;\n /**\n * Whether a mouse drag gesture is currently in progress.\n * @internal\n */\n private _isDragging = false;\n /**\n * Whether the pointer has moved beyond the drag threshold during the current drag gesture.\n * @internal\n */\n private _dragMoved = false;\n /**\n * Touch coordinate at the start of a touch swipe gesture.\n * @internal\n */\n private _touchStartCoord = 0;\n /**\n * Whether the touch has moved beyond the swipe threshold during the current touch gesture.\n * @internal\n */\n private _touchMoved = false;\n\n // ─── Lifecycle ───\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n // Guard for SSR — window.matchMedia is unavailable server-side\n if (typeof window !== 'undefined') {\n this._mql = window.matchMedia('(prefers-reduced-motion: reduce)');\n this._reducedMotion = this._mql.matches;\n this._mql.addEventListener('change', this._handleMotionChange);\n }\n\n this.addEventListener('mouseenter', this._handleMouseEnter);\n this.addEventListener('mouseleave', this._handleMouseLeave);\n this.addEventListener('focusin', this._handleFocusIn);\n this.addEventListener('focusout', this._handleFocusOut);\n this.addEventListener('keydown', this._handleKeydown);\n // Touch events are registered directly on the scroll-container in the template\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this._mql?.removeEventListener('change', this._handleMotionChange);\n this._stopAutoplay();\n this.removeEventListener('mouseenter', this._handleMouseEnter);\n this.removeEventListener('mouseleave', this._handleMouseLeave);\n this.removeEventListener('focusin', this._handleFocusIn);\n this.removeEventListener('focusout', this._handleFocusOut);\n this.removeEventListener('keydown', this._handleKeydown);\n }\n\n override firstUpdated(): void {\n this._syncSlides();\n if (this.autoplay && !this._reducedMotion) {\n this._startAutoplay();\n }\n }\n\n // ─── Slide Management ───\n\n /** @internal */\n private _syncSlides(): void {\n const slot = this.shadowRoot?.querySelector<HTMLSlotElement>('slot:not([name])');\n if (!slot) return;\n\n const items = slot\n .assignedElements({ flatten: true })\n .filter((el) => el.tagName.toLowerCase() === 'hx-carousel-item') as HelixCarouselItem[];\n\n this._slides = items;\n\n // Update aria labels on each item\n items.forEach((item, i) => {\n item.slideIndex = i;\n item.totalSlides = items.length;\n const slideWidth = `${100 / this.slidesPerPage}%`;\n (item as HTMLElement).style.setProperty('--_hx-carousel-slide-width', slideWidth);\n });\n\n // Clamp currentIndex if slides changed\n if (this._currentIndex >= items.length) {\n this._currentIndex = Math.max(0, items.length - 1);\n }\n }\n\n /** @internal */\n private _handleSlotChange(): void {\n this._syncSlides();\n }\n\n // ─── Navigation ───\n\n /**\n * Maximum valid slide index accounting for the number of slides visible per page.\n * @internal\n */\n private get _maxIndex(): number {\n return Math.max(0, this._slides.length - this.slidesPerPage);\n }\n\n goTo(index: number): void {\n if (this._slides.length === 0) return;\n\n let next = index;\n if (this.loop) {\n next = ((index % this._slides.length) + this._slides.length) % this._slides.length;\n } else {\n next = Math.max(0, Math.min(index, this._maxIndex));\n }\n\n if (next === this._currentIndex) return;\n\n this._currentIndex = next;\n this._liveText = this.labelSlideOf(next + 1, this._slides.length);\n const slide = this._slides[next];\n if (!slide) return;\n this.dispatchEvent(\n new CustomEvent<{ index: number; slide: HelixCarouselItem | undefined }>('hx-slide-change', {\n bubbles: true,\n composed: true,\n detail: { index: next, slide },\n }),\n );\n }\n\n next(): void {\n const nextIndex = this._currentIndex + this.slidesPerMove;\n if (!this.loop && nextIndex > this._maxIndex) {\n return;\n }\n this._livePolite = true;\n this.goTo(nextIndex);\n }\n\n previous(): void {\n const prevIndex = this._currentIndex - this.slidesPerMove;\n if (!this.loop && prevIndex < 0) {\n return;\n }\n this._livePolite = true;\n this.goTo(prevIndex);\n }\n\n // ─── Autoplay ───\n\n /**\n * Callback invoked on each autoplay interval tick to advance to the next slide.\n * @internal\n */\n private _autoplayTick = (): void => {\n this._livePolite = false;\n if (this.loop) {\n this.goTo(this._currentIndex + this.slidesPerMove);\n } else if (this._currentIndex < this._maxIndex) {\n this.goTo(this._currentIndex + this.slidesPerMove);\n } else {\n this.goTo(0);\n }\n };\n\n /** @internal */\n private _startAutoplay(): void {\n if (this._autoplayTimer !== null) return;\n this._isPlaying = true;\n this._autoplayTimer = setInterval(this._autoplayTick, this.autoplayInterval);\n }\n\n /** @internal */\n private _stopAutoplay(): void {\n if (this._autoplayTimer !== null) {\n clearInterval(this._autoplayTimer);\n this._autoplayTimer = null;\n }\n this._isPlaying = false;\n }\n\n /** @internal */\n private _toggleAutoplay(): void {\n if (this._isPlaying) {\n this._stopAutoplay();\n } else if (!this._reducedMotion) {\n this._startAutoplay();\n }\n }\n\n /** @internal */\n private _pauseAutoplay(): void {\n if (!this._isPlaying || this._autoplayTimer === null) return;\n clearInterval(this._autoplayTimer);\n this._autoplayTimer = null;\n }\n\n /** @internal */\n private _resumeAutoplay(): void {\n if (!this.autoplay || !this._isPlaying || this._reducedMotion) return;\n if (this._autoplayTimer !== null) return;\n this._autoplayTimer = setInterval(this._autoplayTick, this.autoplayInterval);\n }\n\n // ─── Event Handlers ───\n\n /**\n * Handles changes to the prefers-reduced-motion media query, stopping or resuming autoplay accordingly.\n * @internal\n */\n private _handleMotionChange = (e: MediaQueryListEvent): void => {\n this._reducedMotion = e.matches;\n if (this._reducedMotion) {\n this._stopAutoplay();\n } else if (this.autoplay && !this._isHovered && !this._isFocused) {\n this._startAutoplay();\n }\n };\n\n /**\n * Handles the mouseenter event to pause autoplay while the user hovers over the carousel.\n * @internal\n */\n private _handleMouseEnter = (): void => {\n this._isHovered = true;\n this._pauseAutoplay();\n };\n\n /**\n * Handles the mouseleave event to resume autoplay when the user stops hovering.\n * @internal\n */\n private _handleMouseLeave = (): void => {\n this._isHovered = false;\n if (!this._isFocused) {\n this._resumeAutoplay();\n }\n };\n\n /**\n * Handles the focusin event to pause autoplay while a descendant has focus.\n * @internal\n */\n private _handleFocusIn = (): void => {\n this._isFocused = true;\n this._pauseAutoplay();\n };\n\n /**\n * Handles the focusout event to resume autoplay when focus leaves the carousel.\n * @internal\n */\n private _handleFocusOut = (): void => {\n this._isFocused = false;\n if (!this._isHovered) {\n this._resumeAutoplay();\n }\n };\n\n /**\n * Handles keyboard navigation to move between slides using arrow, Home, and End keys.\n * @internal\n */\n private _handleKeydown = (e: KeyboardEvent): void => {\n if (this.orientation === 'horizontal') {\n if (e.key === 'ArrowLeft') {\n e.preventDefault();\n this.previous();\n } else if (e.key === 'ArrowRight') {\n e.preventDefault();\n this.next();\n }\n } else {\n if (e.key === 'ArrowUp') {\n e.preventDefault();\n this.previous();\n } else if (e.key === 'ArrowDown') {\n e.preventDefault();\n this.next();\n }\n }\n\n if (e.key === 'Home') {\n e.preventDefault();\n this.goTo(0);\n } else if (e.key === 'End') {\n e.preventDefault();\n this.goTo(this._slides.length - 1);\n }\n };\n\n // ─── Drag Handlers ───\n\n /** @internal */\n private _handleDragStart(e: MouseEvent): void {\n if (!this.mouseDragging) return;\n this._isDragging = true;\n this._dragMoved = false;\n this._dragStartCoord = this.orientation === 'horizontal' ? e.clientX : e.clientY;\n (e.currentTarget as HTMLElement).style.cursor = 'grabbing';\n e.preventDefault();\n }\n\n /** @internal */\n private _handleDragMove(e: MouseEvent): void {\n if (!this._isDragging) return;\n const current = this.orientation === 'horizontal' ? e.clientX : e.clientY;\n const diff = current - this._dragStartCoord;\n if (Math.abs(diff) > 5) {\n this._dragMoved = true;\n }\n }\n\n /** @internal */\n private _handleDragEnd(e: MouseEvent): void {\n if (!this._isDragging) return;\n const current = this.orientation === 'horizontal' ? e.clientX : e.clientY;\n const diff = current - this._dragStartCoord;\n const threshold = 50;\n if (this._dragMoved) {\n if (diff > threshold) {\n this.previous();\n } else if (diff < -threshold) {\n this.next();\n }\n }\n this._isDragging = false;\n this._dragMoved = false;\n (e.currentTarget as HTMLElement).style.cursor = '';\n }\n\n // ─── Touch Handlers ───\n\n /** @internal */\n private _handleTouchStart(e: TouchEvent): void {\n if (!this.mouseDragging) return;\n const touch = e.touches[0];\n if (!touch) return;\n this._isDragging = true;\n this._touchMoved = false;\n this._touchStartCoord = this.orientation === 'horizontal' ? touch.clientX : touch.clientY;\n }\n\n /** @internal */\n private _handleTouchMove(e: TouchEvent): void {\n if (!this._isDragging) return;\n const touch = e.touches[0];\n if (!touch) return;\n const current = this.orientation === 'horizontal' ? touch.clientX : touch.clientY;\n const diff = current - this._touchStartCoord;\n if (Math.abs(diff) > 5) {\n this._touchMoved = true;\n }\n }\n\n /** @internal */\n private _handleTouchEnd(e: TouchEvent): void {\n if (!this._isDragging) return;\n const touch = e.changedTouches[0];\n if (!touch) return;\n const current = this.orientation === 'horizontal' ? touch.clientX : touch.clientY;\n const diff = current - this._touchStartCoord;\n const threshold = 50;\n if (this._touchMoved) {\n if (diff > threshold) {\n this.previous();\n } else if (diff < -threshold) {\n this.next();\n }\n }\n this._isDragging = false;\n this._touchMoved = false;\n }\n\n /** @internal */\n private _goToManual(index: number): void {\n this._livePolite = true;\n this.goTo(index);\n }\n\n // ─── Computed ───\n\n /**\n * CSS transform value applied to the slide track to scroll to the current index.\n * @internal\n */\n private get _trackTransform(): string {\n const slideSize = 100 / this.slidesPerPage;\n const offset = this._currentIndex * slideSize;\n return this.orientation === 'horizontal'\n ? `translateX(-${offset}%)`\n : `translateY(-${offset}%)`;\n }\n\n /**\n * Whether the previous navigation button should be enabled.\n * @internal\n */\n private get _canGoPrev(): boolean {\n return this.loop || this._currentIndex > 0;\n }\n\n /**\n * Whether the next navigation button should be enabled.\n * @internal\n */\n private get _canGoNext(): boolean {\n return this.loop || this._currentIndex < this._maxIndex;\n }\n\n // ─── Render Helpers ───\n\n /** @internal */\n private _renderNavigation() {\n return html`\n <div class=\"navigation\" part=\"navigation\">\n <slot name=\"previous-button\">\n <button\n class=\"nav-btn\"\n part=\"prev-btn\"\n type=\"button\"\n aria-label=${this.labelPrevSlide}\n ?disabled=${!this._canGoPrev}\n @click=${() => this.previous()}\n >\n ${this._renderPrevIcon()}\n </button>\n </slot>\n ${this.autoplay\n ? html`\n <button\n class=\"play-pause-btn\"\n part=\"play-pause-btn\"\n type=\"button\"\n aria-label=${this._isPlaying ? this.labelPauseAutoplay : this.labelPlayAutoplay}\n @click=${() => this._toggleAutoplay()}\n >\n ${this._isPlaying ? this._renderPauseIcon() : this._renderPlayIcon()}\n </button>\n `\n : nothing}\n <slot name=\"next-button\">\n <button\n class=\"nav-btn\"\n part=\"next-btn\"\n type=\"button\"\n aria-label=${this.labelNextSlide}\n ?disabled=${!this._canGoNext}\n @click=${() => this.next()}\n >\n ${this._renderNextIcon()}\n </button>\n </slot>\n </div>\n `;\n }\n\n /** @internal */\n private _renderPagination() {\n const count = this._slides.length;\n if (count <= 1) return nothing;\n const dots = Array.from({ length: count }, (_, i) => i);\n return html`\n <div class=\"controls\">\n <div class=\"pagination\" part=\"pagination\">\n ${dots.map(\n (i) => html`\n <button\n class=${classMap({\n 'pagination-item': true,\n 'is-active': i === this._currentIndex,\n })}\n part=\"pagination-item\"\n type=\"button\"\n aria-label=${this.labelSlideOf(i + 1, count)}\n aria-current=${i === this._currentIndex ? 'true' : nothing}\n @click=${() => this._goToManual(i)}\n >\n <span class=\"pagination-dot\"></span>\n </button>\n `,\n )}\n </div>\n </div>\n `;\n }\n\n /** @internal */\n private _renderPrevIcon() {\n return this.orientation === 'horizontal' ? _svgChevronLeft : _svgChevronUp;\n }\n\n /** @internal */\n private _renderNextIcon() {\n return this.orientation === 'horizontal' ? _svgChevronRight : _svgChevronDown;\n }\n\n /** @internal */\n private _renderPlayIcon() {\n return _svgPlay;\n }\n\n /** @internal */\n private _renderPauseIcon() {\n return _svgPause;\n }\n\n // ─── Render ───\n\n override render() {\n return html`\n <div\n class=\"base\"\n part=\"base\"\n role=\"region\"\n aria-label=${this.label}\n aria-roledescription=\"carousel\"\n >\n <div\n class=\"live-region\"\n role=\"status\"\n aria-live=${this._livePolite ? 'polite' : 'off'}\n aria-atomic=\"true\"\n >\n ${this._liveText}\n </div>\n ${this._renderNavigation()}\n <div class=\"scroll-container-wrapper\">\n <div\n class=\"slide-viewport\"\n part=\"slide-viewport\"\n @mousedown=${this._handleDragStart}\n @mousemove=${this._handleDragMove}\n @mouseup=${this._handleDragEnd}\n @mouseleave=${this._handleDragEnd}\n @touchstart=${this._handleTouchStart}\n @touchmove=${this._handleTouchMove}\n @touchend=${this._handleTouchEnd}\n >\n <div class=\"track\" style=\"transform: ${this._trackTransform};\">\n <slot @slotchange=${this._handleSlotChange}></slot>\n </div>\n </div>\n </div>\n ${this._renderPagination()}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-carousel': HelixCarousel;\n }\n}\n","import { css } from 'lit';\n\nexport const helixCarouselItemStyles = css`\n :host {\n display: block;\n flex-shrink: 0;\n width: var(--_hx-carousel-slide-width, 100%);\n box-sizing: border-box;\n }\n\n .slide-group {\n height: 100%;\n outline: none;\n }\n\n .slide-group:focus-visible {\n outline: var(--hx-focus-ring-width) solid var(--hx-focus-ring-color);\n outline-offset: var(--hx-focus-ring-offset);\n }\n`;\n","import { LitElement, html } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { tokenStyles } from '@helixui/tokens/lit';\nimport { helixCarouselItemStyles } from './hx-carousel-item.styles.js';\n\n/**\n * A wrapper for individual carousel slides.\n *\n * @summary Individual slide wrapper for use inside hx-carousel.\n *\n * @tag hx-carousel-item\n *\n * @slot - Slide content.\n *\n * @csspart slide - The slide wrapper element.\n */\n@customElement('hx-carousel-item')\nexport class HelixCarouselItem extends LitElement {\n static override styles = [tokenStyles, helixCarouselItemStyles];\n\n /**\n * The 0-based index of this slide within the carousel. Set by hx-carousel.\n * @attr slide-index\n */\n @property({ type: Number, attribute: 'slide-index' })\n slideIndex = 0;\n\n /**\n * Total number of slides in the carousel. Set by hx-carousel.\n * @attr total-slides\n */\n @property({ type: Number, attribute: 'total-slides' })\n totalSlides = 0;\n\n override render() {\n const label = `Slide ${this.slideIndex + 1} of ${this.totalSlides}`;\n return html`\n <div class=\"slide-group\" part=\"slide\" role=\"group\" aria-label=${label} tabindex=\"-1\">\n <slot></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-carousel-item': HelixCarouselItem;\n }\n}\n"],"names":["helixCarouselStyles","css","_svgChevronLeft","html","_svgChevronUp","_svgChevronRight","_svgChevronDown","_svgPlay","_svgPause","HelixCarousel","LitElement","index","total","e","_a","slot","items","el","item","i","slideWidth","next","slide","nextIndex","prevIndex","diff","threshold","touch","slideSize","offset","nothing","count","dots","_","classMap","tokenStyles","__decorateClass","property","state","customElement","helixCarouselItemStyles","HelixCarouselItem","label"],"mappings":";;;;AAEO,MAAMA,IAAsBC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;ACOnC,MAAMC,IAAkBC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAalBC,IAAgBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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"}