@sekiui/elements 0.0.63 → 0.0.64

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 (834) hide show
  1. package/dist/cdn/index.js +1 -1
  2. package/dist/cdn/{p-BWqEiwNC.js → p-BPP9Iksx.js} +2 -2
  3. package/dist/cdn/{p-CudMgQvM.js → p-DIeC6vvw.js} +1 -1
  4. package/dist/cdn/{p-MTqfs8Ir.js → p-JroBYg3Q.js} +1 -1
  5. package/dist/cdn/seki-accordion-content.js +2 -2
  6. package/dist/cdn/seki-accordion-item.js +1 -1
  7. package/dist/cdn/seki-accordion-trigger.js +2 -2
  8. package/dist/cdn/seki-accordion.js +1 -1
  9. package/dist/cdn/seki-alert-description.js +1 -1
  10. package/dist/cdn/seki-alert-title.js +1 -1
  11. package/dist/cdn/seki-aspect-ratio.js +1 -1
  12. package/dist/cdn/seki-breadcrumb-ellipsis.js +1 -1
  13. package/dist/cdn/seki-breadcrumb-item.js +1 -1
  14. package/dist/cdn/seki-breadcrumb-link.js +1 -1
  15. package/dist/cdn/seki-breadcrumb-list.js +1 -1
  16. package/dist/cdn/seki-breadcrumb-page.js +1 -1
  17. package/dist/cdn/seki-breadcrumb-separator.js +1 -1
  18. package/dist/cdn/seki-breadcrumb.js +1 -1
  19. package/dist/cdn/seki-button-group.js +2 -2
  20. package/dist/cdn/seki-button.js +1 -1
  21. package/dist/cdn/seki-card-action.js +1 -1
  22. package/dist/cdn/seki-card-content.js +1 -1
  23. package/dist/cdn/seki-card-description.js +1 -1
  24. package/dist/cdn/seki-card-footer.js +1 -1
  25. package/dist/cdn/seki-card-header.js +1 -1
  26. package/dist/cdn/seki-card.js +1 -1
  27. package/dist/cdn/seki-carousel-content.d.ts +11 -0
  28. package/dist/cdn/seki-carousel-content.js +36 -0
  29. package/dist/cdn/seki-carousel-dots.d.ts +11 -0
  30. package/dist/cdn/seki-carousel-dots.js +119 -0
  31. package/dist/cdn/seki-carousel-item.d.ts +11 -0
  32. package/dist/cdn/seki-carousel-item.js +43 -0
  33. package/dist/cdn/seki-carousel-next.d.ts +11 -0
  34. package/dist/cdn/seki-carousel-next.js +81 -0
  35. package/dist/cdn/seki-carousel-previous.d.ts +11 -0
  36. package/dist/cdn/seki-carousel-previous.js +81 -0
  37. package/dist/cdn/seki-carousel.d.ts +11 -0
  38. package/dist/cdn/seki-carousel.js +1981 -0
  39. package/dist/cdn/seki-checkbox.js +2 -2
  40. package/dist/cdn/seki-collapsible-content.js +2 -2
  41. package/dist/cdn/seki-collapsible.js +1 -1
  42. package/dist/cdn/seki-data-table.js +6 -6
  43. package/dist/cdn/seki-date-picker.js +2 -2
  44. package/dist/cdn/seki-dialog-close.js +1 -1
  45. package/dist/cdn/seki-dialog-description.js +1 -1
  46. package/dist/cdn/seki-dialog-footer.js +1 -1
  47. package/dist/cdn/seki-dialog-header.js +1 -1
  48. package/dist/cdn/seki-dialog-title.js +1 -1
  49. package/dist/cdn/seki-dialog-trigger.js +1 -1
  50. package/dist/cdn/seki-dialog.js +1 -1
  51. package/dist/cdn/seki-dropdown-menu-checkbox.js +2 -2
  52. package/dist/cdn/seki-dropdown-menu-item.js +2 -2
  53. package/dist/cdn/seki-dropdown-menu-label.js +2 -2
  54. package/dist/cdn/seki-dropdown-menu-radio-group.js +1 -1
  55. package/dist/cdn/seki-dropdown-menu-radio.js +2 -2
  56. package/dist/cdn/seki-dropdown-menu-separator.js +1 -1
  57. package/dist/cdn/seki-dropdown-menu-shortcut.js +1 -1
  58. package/dist/cdn/seki-dropdown-menu-trigger.js +1 -1
  59. package/dist/cdn/seki-dropdown-menu.js +1 -1
  60. package/dist/cdn/seki-field-description.js +1 -1
  61. package/dist/cdn/seki-field-error.js +1 -1
  62. package/dist/cdn/seki-field-group.js +1 -1
  63. package/dist/cdn/seki-field-label.js +1 -1
  64. package/dist/cdn/seki-field-legend.js +1 -1
  65. package/dist/cdn/seki-field.js +1 -1
  66. package/dist/cdn/seki-fieldset.js +1 -1
  67. package/dist/cdn/seki-input.js +1 -1
  68. package/dist/cdn/seki-kbd.js +1 -1
  69. package/dist/cdn/seki-navigation-menu-content.js +2 -2
  70. package/dist/cdn/seki-navigation-menu-item.js +2 -2
  71. package/dist/cdn/seki-navigation-menu-link.js +2 -2
  72. package/dist/cdn/seki-navigation-menu-list.js +1 -1
  73. package/dist/cdn/seki-navigation-menu-trigger.js +2 -2
  74. package/dist/cdn/seki-navigation-menu-viewport.js +1 -1
  75. package/dist/cdn/seki-navigation-menu.js +3 -3
  76. package/dist/cdn/seki-pagination-content.js +1 -1
  77. package/dist/cdn/seki-pagination-ellipsis.js +1 -1
  78. package/dist/cdn/seki-pagination-item.js +1 -1
  79. package/dist/cdn/seki-pagination-link.js +2 -2
  80. package/dist/cdn/seki-pagination-next.js +2 -2
  81. package/dist/cdn/seki-pagination-previous.js +2 -2
  82. package/dist/cdn/seki-pagination.js +1 -1
  83. package/dist/cdn/seki-popover-close.js +1 -1
  84. package/dist/cdn/seki-popover-trigger.js +1 -1
  85. package/dist/cdn/seki-popover.js +1 -1
  86. package/dist/cdn/seki-progress.js +1 -1
  87. package/dist/cdn/seki-radio-group-item.js +1 -1
  88. package/dist/cdn/seki-radio-group.js +1 -1
  89. package/dist/cdn/seki-select-group.js +1 -1
  90. package/dist/cdn/seki-select-option.js +1 -1
  91. package/dist/cdn/seki-select.js +1 -1
  92. package/dist/cdn/seki-separator.js +1 -1
  93. package/dist/cdn/seki-sheet-close.js +1 -1
  94. package/dist/cdn/seki-sheet-content.js +2 -2
  95. package/dist/cdn/seki-sheet-description.js +1 -1
  96. package/dist/cdn/seki-sheet-footer.js +1 -1
  97. package/dist/cdn/seki-sheet-header.js +1 -1
  98. package/dist/cdn/seki-sheet-title.js +1 -1
  99. package/dist/cdn/seki-sheet-trigger.js +1 -1
  100. package/dist/cdn/seki-sheet.js +2 -2
  101. package/dist/cdn/seki-sidebar-content.js +1 -1
  102. package/dist/cdn/seki-sidebar-footer.js +1 -1
  103. package/dist/cdn/seki-sidebar-group-action.js +1 -1
  104. package/dist/cdn/seki-sidebar-group-content.js +1 -1
  105. package/dist/cdn/seki-sidebar-group-label.js +1 -1
  106. package/dist/cdn/seki-sidebar-group.js +2 -2
  107. package/dist/cdn/seki-sidebar-header.js +1 -1
  108. package/dist/cdn/seki-sidebar-inset.js +1 -1
  109. package/dist/cdn/seki-sidebar-menu-action.js +1 -1
  110. package/dist/cdn/seki-sidebar-menu-badge.js +1 -1
  111. package/dist/cdn/seki-sidebar-menu-button.js +1 -1
  112. package/dist/cdn/seki-sidebar-menu-item.js +1 -1
  113. package/dist/cdn/seki-sidebar-menu-skeleton.js +1 -1
  114. package/dist/cdn/seki-sidebar-menu-sub-button.js +2 -2
  115. package/dist/cdn/seki-sidebar-menu-sub-item.js +1 -1
  116. package/dist/cdn/seki-sidebar-menu-sub.js +3 -3
  117. package/dist/cdn/seki-sidebar-menu.js +1 -1
  118. package/dist/cdn/seki-sidebar-provider.js +1 -1
  119. package/dist/cdn/seki-sidebar-rail.js +1 -1
  120. package/dist/cdn/seki-sidebar-separator.js +1 -1
  121. package/dist/cdn/seki-sidebar-trigger.js +1 -1
  122. package/dist/cdn/seki-sidebar.js +2 -2
  123. package/dist/cdn/seki-skeleton.js +1 -1
  124. package/dist/cdn/seki-slider.js +1 -1
  125. package/dist/cdn/seki-spinner.js +2 -2
  126. package/dist/cdn/seki-switch.js +1 -1
  127. package/dist/cdn/seki-table-body.js +1 -1
  128. package/dist/cdn/seki-table-caption.js +1 -1
  129. package/dist/cdn/seki-table-cell.js +2 -2
  130. package/dist/cdn/seki-table-footer.js +1 -1
  131. package/dist/cdn/seki-table-head.js +2 -2
  132. package/dist/cdn/seki-table-header.js +1 -1
  133. package/dist/cdn/seki-table-row.js +2 -2
  134. package/dist/cdn/seki-table.js +1 -1
  135. package/dist/cdn/seki-tabs-content.js +2 -2
  136. package/dist/cdn/seki-tabs-list.js +2 -2
  137. package/dist/cdn/seki-tabs-trigger.js +2 -2
  138. package/dist/cdn/seki-tabs.js +2 -2
  139. package/dist/cdn/seki-textarea.js +1 -1
  140. package/dist/cdn/seki-toaster.js +1 -1
  141. package/dist/cdn/seki-toggle.js +1 -1
  142. package/dist/cdn/seki-tooltip.js +1 -1
  143. package/dist/cjs/loader.cjs.js +1 -1
  144. package/dist/cjs/seki-accordion-content.cjs.entry.js +2 -2
  145. package/dist/cjs/seki-accordion-item.cjs.entry.js +1 -1
  146. package/dist/cjs/seki-accordion-trigger.cjs.entry.js +2 -2
  147. package/dist/cjs/seki-accordion.cjs.entry.js +1 -1
  148. package/dist/cjs/seki-alert-description.cjs.entry.js +1 -1
  149. package/dist/cjs/seki-alert-title.cjs.entry.js +1 -1
  150. package/dist/cjs/seki-aspect-ratio.cjs.entry.js +1 -1
  151. package/dist/cjs/seki-breadcrumb-ellipsis.cjs.entry.js +1 -1
  152. package/dist/cjs/seki-breadcrumb-item.cjs.entry.js +1 -1
  153. package/dist/cjs/seki-breadcrumb-link.cjs.entry.js +1 -1
  154. package/dist/cjs/seki-breadcrumb-list.cjs.entry.js +1 -1
  155. package/dist/cjs/seki-breadcrumb-page.cjs.entry.js +1 -1
  156. package/dist/cjs/seki-breadcrumb-separator.cjs.entry.js +1 -1
  157. package/dist/cjs/seki-breadcrumb.cjs.entry.js +1 -1
  158. package/dist/cjs/seki-button-group.cjs.entry.js +2 -2
  159. package/dist/cjs/seki-button.cjs.entry.js +1 -1
  160. package/dist/cjs/seki-card-action.cjs.entry.js +1 -1
  161. package/dist/cjs/seki-card-content.cjs.entry.js +1 -1
  162. package/dist/cjs/seki-card-description.cjs.entry.js +1 -1
  163. package/dist/cjs/seki-card-footer.cjs.entry.js +1 -1
  164. package/dist/cjs/seki-card-header.cjs.entry.js +1 -1
  165. package/dist/cjs/seki-card.cjs.entry.js +1 -1
  166. package/dist/cjs/seki-carousel-content.cjs.entry.js +17 -0
  167. package/dist/cjs/seki-carousel-dots.cjs.entry.js +97 -0
  168. package/dist/cjs/seki-carousel-item.cjs.entry.js +22 -0
  169. package/dist/cjs/seki-carousel-next.cjs.entry.js +60 -0
  170. package/dist/cjs/seki-carousel-previous.cjs.entry.js +60 -0
  171. package/dist/cjs/seki-carousel.cjs.entry.js +1938 -0
  172. package/dist/cjs/seki-checkbox.cjs.entry.js +2 -2
  173. package/dist/cjs/seki-collapsible-content.cjs.entry.js +2 -2
  174. package/dist/cjs/seki-collapsible.cjs.entry.js +1 -1
  175. package/dist/cjs/seki-data-table.cjs.entry.js +6 -6
  176. package/dist/cjs/seki-date-picker.cjs.entry.js +2 -2
  177. package/dist/cjs/seki-dialog-close.cjs.entry.js +1 -1
  178. package/dist/cjs/seki-dialog-description.cjs.entry.js +1 -1
  179. package/dist/cjs/seki-dialog-footer.cjs.entry.js +1 -1
  180. package/dist/cjs/seki-dialog-header.cjs.entry.js +1 -1
  181. package/dist/cjs/seki-dialog-title.cjs.entry.js +1 -1
  182. package/dist/cjs/seki-dialog-trigger.cjs.entry.js +1 -1
  183. package/dist/cjs/seki-dialog.cjs.entry.js +1 -1
  184. package/dist/cjs/seki-dropdown-menu-checkbox.cjs.entry.js +2 -2
  185. package/dist/cjs/seki-dropdown-menu-item.cjs.entry.js +2 -2
  186. package/dist/cjs/seki-dropdown-menu-label.cjs.entry.js +2 -2
  187. package/dist/cjs/seki-dropdown-menu-radio-group.cjs.entry.js +1 -1
  188. package/dist/cjs/seki-dropdown-menu-radio.cjs.entry.js +2 -2
  189. package/dist/cjs/seki-dropdown-menu-separator.cjs.entry.js +1 -1
  190. package/dist/cjs/seki-dropdown-menu-shortcut.cjs.entry.js +1 -1
  191. package/dist/cjs/seki-dropdown-menu-trigger.cjs.entry.js +1 -1
  192. package/dist/cjs/seki-dropdown-menu.cjs.entry.js +1 -1
  193. package/dist/cjs/seki-field-description.cjs.entry.js +1 -1
  194. package/dist/cjs/seki-field-error.cjs.entry.js +1 -1
  195. package/dist/cjs/seki-field-group.cjs.entry.js +1 -1
  196. package/dist/cjs/seki-field-label.cjs.entry.js +1 -1
  197. package/dist/cjs/seki-field-legend.cjs.entry.js +1 -1
  198. package/dist/cjs/seki-field.cjs.entry.js +1 -1
  199. package/dist/cjs/seki-fieldset.cjs.entry.js +1 -1
  200. package/dist/cjs/seki-input.cjs.entry.js +1 -1
  201. package/dist/cjs/seki-kbd.cjs.entry.js +1 -1
  202. package/dist/cjs/seki-navigation-menu-content.cjs.entry.js +2 -2
  203. package/dist/cjs/seki-navigation-menu-item.cjs.entry.js +2 -2
  204. package/dist/cjs/seki-navigation-menu-link.cjs.entry.js +2 -2
  205. package/dist/cjs/seki-navigation-menu-list.cjs.entry.js +1 -1
  206. package/dist/cjs/seki-navigation-menu-trigger.cjs.entry.js +2 -2
  207. package/dist/cjs/seki-navigation-menu-viewport.cjs.entry.js +2 -2
  208. package/dist/cjs/seki-navigation-menu.cjs.entry.js +2 -2
  209. package/dist/cjs/seki-pagination-content.cjs.entry.js +1 -1
  210. package/dist/cjs/seki-pagination-ellipsis.cjs.entry.js +1 -1
  211. package/dist/cjs/seki-pagination-item.cjs.entry.js +1 -1
  212. package/dist/cjs/seki-pagination-link.cjs.entry.js +2 -2
  213. package/dist/cjs/seki-pagination-next.cjs.entry.js +2 -2
  214. package/dist/cjs/seki-pagination-previous.cjs.entry.js +2 -2
  215. package/dist/cjs/seki-pagination.cjs.entry.js +1 -1
  216. package/dist/cjs/seki-popover-close.cjs.entry.js +1 -1
  217. package/dist/cjs/seki-popover-trigger.cjs.entry.js +1 -1
  218. package/dist/cjs/seki-popover.cjs.entry.js +1 -1
  219. package/dist/cjs/seki-progress.cjs.entry.js +1 -1
  220. package/dist/cjs/seki-radio-group-item.cjs.entry.js +1 -1
  221. package/dist/cjs/seki-radio-group.cjs.entry.js +1 -1
  222. package/dist/cjs/seki-select-group.cjs.entry.js +1 -1
  223. package/dist/cjs/seki-select-option.cjs.entry.js +1 -1
  224. package/dist/cjs/seki-select.cjs.entry.js +1 -1
  225. package/dist/cjs/seki-separator.cjs.entry.js +1 -1
  226. package/dist/cjs/seki-sheet-close.cjs.entry.js +1 -1
  227. package/dist/cjs/seki-sheet-content.cjs.entry.js +2 -2
  228. package/dist/cjs/seki-sheet-description.cjs.entry.js +1 -1
  229. package/dist/cjs/seki-sheet-footer.cjs.entry.js +1 -1
  230. package/dist/cjs/seki-sheet-header.cjs.entry.js +1 -1
  231. package/dist/cjs/seki-sheet-title.cjs.entry.js +1 -1
  232. package/dist/cjs/seki-sheet-trigger.cjs.entry.js +1 -1
  233. package/dist/cjs/seki-sheet.cjs.entry.js +2 -2
  234. package/dist/cjs/seki-sidebar-content.cjs.entry.js +1 -1
  235. package/dist/cjs/seki-sidebar-footer.cjs.entry.js +1 -1
  236. package/dist/cjs/seki-sidebar-group-action.cjs.entry.js +1 -1
  237. package/dist/cjs/seki-sidebar-group-content.cjs.entry.js +1 -1
  238. package/dist/cjs/seki-sidebar-group-label.cjs.entry.js +1 -1
  239. package/dist/cjs/seki-sidebar-group.cjs.entry.js +1 -1
  240. package/dist/cjs/seki-sidebar-header.cjs.entry.js +1 -1
  241. package/dist/cjs/seki-sidebar-inset.cjs.entry.js +1 -1
  242. package/dist/cjs/seki-sidebar-menu-action.cjs.entry.js +1 -1
  243. package/dist/cjs/seki-sidebar-menu-badge.cjs.entry.js +1 -1
  244. package/dist/cjs/seki-sidebar-menu-button.cjs.entry.js +1 -1
  245. package/dist/cjs/seki-sidebar-menu-item.cjs.entry.js +1 -1
  246. package/dist/cjs/seki-sidebar-menu-skeleton.cjs.entry.js +1 -1
  247. package/dist/cjs/seki-sidebar-menu-sub-button.cjs.entry.js +2 -2
  248. package/dist/cjs/seki-sidebar-menu-sub-item.cjs.entry.js +1 -1
  249. package/dist/cjs/seki-sidebar-menu-sub.cjs.entry.js +3 -3
  250. package/dist/cjs/seki-sidebar-menu.cjs.entry.js +1 -1
  251. package/dist/cjs/seki-sidebar-provider.cjs.entry.js +1 -1
  252. package/dist/cjs/seki-sidebar-rail.cjs.entry.js +1 -1
  253. package/dist/cjs/seki-sidebar-separator.cjs.entry.js +1 -1
  254. package/dist/cjs/seki-sidebar-trigger.cjs.entry.js +1 -1
  255. package/dist/cjs/seki-sidebar.cjs.entry.js +2 -2
  256. package/dist/cjs/seki-skeleton.cjs.entry.js +1 -1
  257. package/dist/cjs/seki-slider.cjs.entry.js +1 -1
  258. package/dist/cjs/seki-spinner.cjs.entry.js +2 -2
  259. package/dist/cjs/seki-switch.cjs.entry.js +1 -1
  260. package/dist/cjs/seki-table-body.cjs.entry.js +1 -1
  261. package/dist/cjs/seki-table-caption.cjs.entry.js +1 -1
  262. package/dist/cjs/seki-table-cell.cjs.entry.js +2 -2
  263. package/dist/cjs/seki-table-footer.cjs.entry.js +1 -1
  264. package/dist/cjs/seki-table-head.cjs.entry.js +2 -2
  265. package/dist/cjs/seki-table-header.cjs.entry.js +1 -1
  266. package/dist/cjs/seki-table-row.cjs.entry.js +2 -2
  267. package/dist/cjs/seki-table.cjs.entry.js +1 -1
  268. package/dist/cjs/seki-tabs-content.cjs.entry.js +2 -2
  269. package/dist/cjs/seki-tabs-list.cjs.entry.js +2 -2
  270. package/dist/cjs/seki-tabs-trigger.cjs.entry.js +2 -2
  271. package/dist/cjs/seki-tabs.cjs.entry.js +2 -2
  272. package/dist/cjs/seki-textarea.cjs.entry.js +1 -1
  273. package/dist/cjs/seki-toaster.cjs.entry.js +1 -1
  274. package/dist/cjs/seki-toggle.cjs.entry.js +1 -1
  275. package/dist/cjs/seki-tooltip.cjs.entry.js +1 -1
  276. package/dist/cjs/sekiui.cjs.js +1 -1
  277. package/dist/collection/collection-manifest.json +6 -0
  278. package/dist/collection/components/accordion/seki-accordion-content.js +2 -2
  279. package/dist/collection/components/accordion/seki-accordion-item.js +1 -1
  280. package/dist/collection/components/accordion/seki-accordion-trigger.js +2 -2
  281. package/dist/collection/components/accordion/seki-accordion.js +1 -1
  282. package/dist/collection/components/alert/seki-alert-description.js +1 -1
  283. package/dist/collection/components/alert/seki-alert-title.js +1 -1
  284. package/dist/collection/components/aspect-ratio/seki-aspect-ratio.js +1 -1
  285. package/dist/collection/components/breadcrumb/seki-breadcrumb-ellipsis.js +1 -1
  286. package/dist/collection/components/breadcrumb/seki-breadcrumb-item.js +1 -1
  287. package/dist/collection/components/breadcrumb/seki-breadcrumb-link.js +1 -1
  288. package/dist/collection/components/breadcrumb/seki-breadcrumb-list.js +1 -1
  289. package/dist/collection/components/breadcrumb/seki-breadcrumb-page.js +1 -1
  290. package/dist/collection/components/breadcrumb/seki-breadcrumb-separator.js +1 -1
  291. package/dist/collection/components/breadcrumb/seki-breadcrumb.js +1 -1
  292. package/dist/collection/components/button/seki-button.js +1 -1
  293. package/dist/collection/components/button-group/seki-button-group.js +2 -2
  294. package/dist/collection/components/card/seki-card-action.js +1 -1
  295. package/dist/collection/components/card/seki-card-content.js +1 -1
  296. package/dist/collection/components/card/seki-card-description.js +1 -1
  297. package/dist/collection/components/card/seki-card-footer.js +1 -1
  298. package/dist/collection/components/card/seki-card-header.js +1 -1
  299. package/dist/collection/components/card/seki-card.js +1 -1
  300. package/dist/collection/components/carousel/seki-carousel-content.css +18 -0
  301. package/dist/collection/components/carousel/seki-carousel-content.js +24 -0
  302. package/dist/collection/components/carousel/seki-carousel-dots.css +57 -0
  303. package/dist/collection/components/carousel/seki-carousel-dots.js +110 -0
  304. package/dist/collection/components/carousel/seki-carousel-item.css +14 -0
  305. package/dist/collection/components/carousel/seki-carousel-item.js +54 -0
  306. package/dist/collection/components/carousel/seki-carousel-navigation.css +78 -0
  307. package/dist/collection/components/carousel/seki-carousel-next.js +72 -0
  308. package/dist/collection/components/carousel/seki-carousel-previous.js +72 -0
  309. package/dist/collection/components/carousel/seki-carousel.css +62 -0
  310. package/dist/collection/components/carousel/seki-carousel.js +574 -0
  311. package/dist/collection/components/checkbox/seki-checkbox.js +2 -2
  312. package/dist/collection/components/collapsible/seki-collapsible-content.js +2 -2
  313. package/dist/collection/components/collapsible/seki-collapsible.js +1 -1
  314. package/dist/collection/components/data-table/seki-data-table.js +6 -6
  315. package/dist/collection/components/date-picker/seki-date-picker.js +2 -2
  316. package/dist/collection/components/dialog/seki-dialog-close.js +1 -1
  317. package/dist/collection/components/dialog/seki-dialog-description.js +1 -1
  318. package/dist/collection/components/dialog/seki-dialog-footer.js +1 -1
  319. package/dist/collection/components/dialog/seki-dialog-header.js +1 -1
  320. package/dist/collection/components/dialog/seki-dialog-title.js +1 -1
  321. package/dist/collection/components/dialog/seki-dialog-trigger.js +1 -1
  322. package/dist/collection/components/dialog/seki-dialog.js +1 -1
  323. package/dist/collection/components/dropdown-menu/seki-dropdown-menu-checkbox.js +2 -2
  324. package/dist/collection/components/dropdown-menu/seki-dropdown-menu-item.js +2 -2
  325. package/dist/collection/components/dropdown-menu/seki-dropdown-menu-label.js +2 -2
  326. package/dist/collection/components/dropdown-menu/seki-dropdown-menu-radio-group.js +1 -1
  327. package/dist/collection/components/dropdown-menu/seki-dropdown-menu-radio.js +2 -2
  328. package/dist/collection/components/dropdown-menu/seki-dropdown-menu-separator.js +1 -1
  329. package/dist/collection/components/dropdown-menu/seki-dropdown-menu-shortcut.js +1 -1
  330. package/dist/collection/components/dropdown-menu/seki-dropdown-menu-trigger.js +1 -1
  331. package/dist/collection/components/dropdown-menu/seki-dropdown-menu.js +1 -1
  332. package/dist/collection/components/field/seki-field.js +1 -1
  333. package/dist/collection/components/field-description/seki-field-description.js +1 -1
  334. package/dist/collection/components/field-error/seki-field-error.js +1 -1
  335. package/dist/collection/components/field-group/seki-field-group.js +1 -1
  336. package/dist/collection/components/field-label/seki-field-label.js +1 -1
  337. package/dist/collection/components/field-legend/seki-field-legend.js +1 -1
  338. package/dist/collection/components/fieldset/seki-fieldset.js +1 -1
  339. package/dist/collection/components/input/seki-input.js +1 -1
  340. package/dist/collection/components/kbd/seki-kbd.js +1 -1
  341. package/dist/collection/components/navigation-menu/seki-navigation-menu-content.js +2 -2
  342. package/dist/collection/components/navigation-menu/seki-navigation-menu-item.js +2 -2
  343. package/dist/collection/components/navigation-menu/seki-navigation-menu-link.js +2 -2
  344. package/dist/collection/components/navigation-menu/seki-navigation-menu-list.js +1 -1
  345. package/dist/collection/components/navigation-menu/seki-navigation-menu-trigger.js +2 -2
  346. package/dist/collection/components/navigation-menu/seki-navigation-menu-viewport.js +2 -2
  347. package/dist/collection/components/navigation-menu/seki-navigation-menu.js +2 -2
  348. package/dist/collection/components/pagination/seki-pagination-content.js +1 -1
  349. package/dist/collection/components/pagination/seki-pagination-ellipsis.js +1 -1
  350. package/dist/collection/components/pagination/seki-pagination-item.js +1 -1
  351. package/dist/collection/components/pagination/seki-pagination-link.js +2 -2
  352. package/dist/collection/components/pagination/seki-pagination-next.js +2 -2
  353. package/dist/collection/components/pagination/seki-pagination-previous.js +2 -2
  354. package/dist/collection/components/pagination/seki-pagination.js +1 -1
  355. package/dist/collection/components/popover/seki-popover-close.js +1 -1
  356. package/dist/collection/components/popover/seki-popover-trigger.js +1 -1
  357. package/dist/collection/components/popover/seki-popover.js +1 -1
  358. package/dist/collection/components/progress/seki-progress.js +1 -1
  359. package/dist/collection/components/radio-group/seki-radio-group-item.js +1 -1
  360. package/dist/collection/components/radio-group/seki-radio-group.js +1 -1
  361. package/dist/collection/components/select/seki-select.js +1 -1
  362. package/dist/collection/components/select-group/seki-select-group.js +1 -1
  363. package/dist/collection/components/select-option/seki-select-option.js +1 -1
  364. package/dist/collection/components/separator/seki-separator.js +1 -1
  365. package/dist/collection/components/sheet/seki-sheet-close.js +1 -1
  366. package/dist/collection/components/sheet/seki-sheet-content.js +2 -2
  367. package/dist/collection/components/sheet/seki-sheet-description.js +1 -1
  368. package/dist/collection/components/sheet/seki-sheet-footer.js +1 -1
  369. package/dist/collection/components/sheet/seki-sheet-header.js +1 -1
  370. package/dist/collection/components/sheet/seki-sheet-title.js +1 -1
  371. package/dist/collection/components/sheet/seki-sheet-trigger.js +1 -1
  372. package/dist/collection/components/sheet/seki-sheet.js +2 -2
  373. package/dist/collection/components/sidebar/seki-sidebar-content.js +1 -1
  374. package/dist/collection/components/sidebar/seki-sidebar-footer.js +1 -1
  375. package/dist/collection/components/sidebar/seki-sidebar-group-action.js +1 -1
  376. package/dist/collection/components/sidebar/seki-sidebar-group-content.js +1 -1
  377. package/dist/collection/components/sidebar/seki-sidebar-group-label.js +1 -1
  378. package/dist/collection/components/sidebar/seki-sidebar-group.js +1 -1
  379. package/dist/collection/components/sidebar/seki-sidebar-header.js +1 -1
  380. package/dist/collection/components/sidebar/seki-sidebar-inset.js +1 -1
  381. package/dist/collection/components/sidebar/seki-sidebar-menu-action.js +1 -1
  382. package/dist/collection/components/sidebar/seki-sidebar-menu-badge.js +1 -1
  383. package/dist/collection/components/sidebar/seki-sidebar-menu-button.js +1 -1
  384. package/dist/collection/components/sidebar/seki-sidebar-menu-item.js +1 -1
  385. package/dist/collection/components/sidebar/seki-sidebar-menu-skeleton.js +1 -1
  386. package/dist/collection/components/sidebar/seki-sidebar-menu-sub-button.js +2 -2
  387. package/dist/collection/components/sidebar/seki-sidebar-menu-sub-item.js +1 -1
  388. package/dist/collection/components/sidebar/seki-sidebar-menu-sub.js +3 -3
  389. package/dist/collection/components/sidebar/seki-sidebar-menu.js +1 -1
  390. package/dist/collection/components/sidebar/seki-sidebar-provider.js +1 -1
  391. package/dist/collection/components/sidebar/seki-sidebar-rail.js +1 -1
  392. package/dist/collection/components/sidebar/seki-sidebar-separator.js +1 -1
  393. package/dist/collection/components/sidebar/seki-sidebar-trigger.js +1 -1
  394. package/dist/collection/components/sidebar/seki-sidebar.js +2 -2
  395. package/dist/collection/components/skeleton/seki-skeleton.js +1 -1
  396. package/dist/collection/components/slider/seki-slider.js +1 -1
  397. package/dist/collection/components/spinner/seki-spinner.js +2 -2
  398. package/dist/collection/components/switch/seki-switch.js +1 -1
  399. package/dist/collection/components/table/seki-table-body.js +1 -1
  400. package/dist/collection/components/table/seki-table-caption.js +1 -1
  401. package/dist/collection/components/table/seki-table-cell.js +2 -2
  402. package/dist/collection/components/table/seki-table-footer.js +1 -1
  403. package/dist/collection/components/table/seki-table-head.js +2 -2
  404. package/dist/collection/components/table/seki-table-header.js +1 -1
  405. package/dist/collection/components/table/seki-table-row.js +2 -2
  406. package/dist/collection/components/table/seki-table.js +1 -1
  407. package/dist/collection/components/tabs/seki-tabs-content.js +2 -2
  408. package/dist/collection/components/tabs/seki-tabs-list.js +2 -2
  409. package/dist/collection/components/tabs/seki-tabs-trigger.js +2 -2
  410. package/dist/collection/components/tabs/seki-tabs.js +2 -2
  411. package/dist/collection/components/textarea/seki-textarea.js +1 -1
  412. package/dist/collection/components/toast/seki-toaster.js +1 -1
  413. package/dist/collection/components/toggle/seki-toggle.js +1 -1
  414. package/dist/collection/components/tooltip/seki-tooltip.js +1 -1
  415. package/dist/components/index.js +1 -1
  416. package/dist/components/{p-oh1mvYbb.js → p-BUYuvIRE.js} +1 -1
  417. package/dist/components/{p-BeqnZ40Z.js → p-CDQKMFP5.js} +2 -2
  418. package/dist/components/{p-FcPLiKcN.js → p-dCYFf9U9.js} +1 -1
  419. package/dist/components/seki-accordion-content.js +2 -2
  420. package/dist/components/seki-accordion-item.js +1 -1
  421. package/dist/components/seki-accordion-trigger.js +2 -2
  422. package/dist/components/seki-accordion.js +1 -1
  423. package/dist/components/seki-alert-description.js +1 -1
  424. package/dist/components/seki-alert-title.js +1 -1
  425. package/dist/components/seki-aspect-ratio.js +1 -1
  426. package/dist/components/seki-breadcrumb-ellipsis.js +1 -1
  427. package/dist/components/seki-breadcrumb-item.js +1 -1
  428. package/dist/components/seki-breadcrumb-link.js +1 -1
  429. package/dist/components/seki-breadcrumb-list.js +1 -1
  430. package/dist/components/seki-breadcrumb-page.js +1 -1
  431. package/dist/components/seki-breadcrumb-separator.js +1 -1
  432. package/dist/components/seki-breadcrumb.js +1 -1
  433. package/dist/components/seki-button-group.js +2 -2
  434. package/dist/components/seki-button.js +1 -1
  435. package/dist/components/seki-card-action.js +1 -1
  436. package/dist/components/seki-card-content.js +1 -1
  437. package/dist/components/seki-card-description.js +1 -1
  438. package/dist/components/seki-card-footer.js +1 -1
  439. package/dist/components/seki-card-header.js +1 -1
  440. package/dist/components/seki-card.js +1 -1
  441. package/dist/components/seki-carousel-content.d.ts +11 -0
  442. package/dist/components/seki-carousel-content.js +36 -0
  443. package/dist/components/seki-carousel-dots.d.ts +11 -0
  444. package/dist/components/seki-carousel-dots.js +119 -0
  445. package/dist/components/seki-carousel-item.d.ts +11 -0
  446. package/dist/components/seki-carousel-item.js +43 -0
  447. package/dist/components/seki-carousel-next.d.ts +11 -0
  448. package/dist/components/seki-carousel-next.js +81 -0
  449. package/dist/components/seki-carousel-previous.d.ts +11 -0
  450. package/dist/components/seki-carousel-previous.js +81 -0
  451. package/dist/components/seki-carousel.d.ts +11 -0
  452. package/dist/components/seki-carousel.js +1981 -0
  453. package/dist/components/seki-checkbox.js +2 -2
  454. package/dist/components/seki-collapsible-content.js +2 -2
  455. package/dist/components/seki-collapsible.js +1 -1
  456. package/dist/components/seki-data-table.js +6 -6
  457. package/dist/components/seki-date-picker.js +2 -2
  458. package/dist/components/seki-dialog-close.js +1 -1
  459. package/dist/components/seki-dialog-description.js +1 -1
  460. package/dist/components/seki-dialog-footer.js +1 -1
  461. package/dist/components/seki-dialog-header.js +1 -1
  462. package/dist/components/seki-dialog-title.js +1 -1
  463. package/dist/components/seki-dialog-trigger.js +1 -1
  464. package/dist/components/seki-dialog.js +1 -1
  465. package/dist/components/seki-dropdown-menu-checkbox.js +2 -2
  466. package/dist/components/seki-dropdown-menu-item.js +2 -2
  467. package/dist/components/seki-dropdown-menu-label.js +2 -2
  468. package/dist/components/seki-dropdown-menu-radio-group.js +1 -1
  469. package/dist/components/seki-dropdown-menu-radio.js +2 -2
  470. package/dist/components/seki-dropdown-menu-separator.js +1 -1
  471. package/dist/components/seki-dropdown-menu-shortcut.js +1 -1
  472. package/dist/components/seki-dropdown-menu-trigger.js +1 -1
  473. package/dist/components/seki-dropdown-menu.js +1 -1
  474. package/dist/components/seki-field-description.js +1 -1
  475. package/dist/components/seki-field-error.js +1 -1
  476. package/dist/components/seki-field-group.js +1 -1
  477. package/dist/components/seki-field-label.js +1 -1
  478. package/dist/components/seki-field-legend.js +1 -1
  479. package/dist/components/seki-field.js +1 -1
  480. package/dist/components/seki-fieldset.js +1 -1
  481. package/dist/components/seki-input.js +1 -1
  482. package/dist/components/seki-kbd.js +1 -1
  483. package/dist/components/seki-navigation-menu-content.js +2 -2
  484. package/dist/components/seki-navigation-menu-item.js +2 -2
  485. package/dist/components/seki-navigation-menu-link.js +2 -2
  486. package/dist/components/seki-navigation-menu-list.js +1 -1
  487. package/dist/components/seki-navigation-menu-trigger.js +2 -2
  488. package/dist/components/seki-navigation-menu-viewport.js +1 -1
  489. package/dist/components/seki-navigation-menu.js +3 -3
  490. package/dist/components/seki-pagination-content.js +1 -1
  491. package/dist/components/seki-pagination-ellipsis.js +1 -1
  492. package/dist/components/seki-pagination-item.js +1 -1
  493. package/dist/components/seki-pagination-link.js +2 -2
  494. package/dist/components/seki-pagination-next.js +2 -2
  495. package/dist/components/seki-pagination-previous.js +2 -2
  496. package/dist/components/seki-pagination.js +1 -1
  497. package/dist/components/seki-popover-close.js +1 -1
  498. package/dist/components/seki-popover-trigger.js +1 -1
  499. package/dist/components/seki-popover.js +1 -1
  500. package/dist/components/seki-progress.js +1 -1
  501. package/dist/components/seki-radio-group-item.js +1 -1
  502. package/dist/components/seki-radio-group.js +1 -1
  503. package/dist/components/seki-select-group.js +1 -1
  504. package/dist/components/seki-select-option.js +1 -1
  505. package/dist/components/seki-select.js +1 -1
  506. package/dist/components/seki-separator.js +1 -1
  507. package/dist/components/seki-sheet-close.js +1 -1
  508. package/dist/components/seki-sheet-content.js +2 -2
  509. package/dist/components/seki-sheet-description.js +1 -1
  510. package/dist/components/seki-sheet-footer.js +1 -1
  511. package/dist/components/seki-sheet-header.js +1 -1
  512. package/dist/components/seki-sheet-title.js +1 -1
  513. package/dist/components/seki-sheet-trigger.js +1 -1
  514. package/dist/components/seki-sheet.js +2 -2
  515. package/dist/components/seki-sidebar-content.js +1 -1
  516. package/dist/components/seki-sidebar-footer.js +1 -1
  517. package/dist/components/seki-sidebar-group-action.js +1 -1
  518. package/dist/components/seki-sidebar-group-content.js +1 -1
  519. package/dist/components/seki-sidebar-group-label.js +1 -1
  520. package/dist/components/seki-sidebar-group.js +2 -2
  521. package/dist/components/seki-sidebar-header.js +1 -1
  522. package/dist/components/seki-sidebar-inset.js +1 -1
  523. package/dist/components/seki-sidebar-menu-action.js +1 -1
  524. package/dist/components/seki-sidebar-menu-badge.js +1 -1
  525. package/dist/components/seki-sidebar-menu-button.js +1 -1
  526. package/dist/components/seki-sidebar-menu-item.js +1 -1
  527. package/dist/components/seki-sidebar-menu-skeleton.js +1 -1
  528. package/dist/components/seki-sidebar-menu-sub-button.js +2 -2
  529. package/dist/components/seki-sidebar-menu-sub-item.js +1 -1
  530. package/dist/components/seki-sidebar-menu-sub.js +3 -3
  531. package/dist/components/seki-sidebar-menu.js +1 -1
  532. package/dist/components/seki-sidebar-provider.js +1 -1
  533. package/dist/components/seki-sidebar-rail.js +1 -1
  534. package/dist/components/seki-sidebar-separator.js +1 -1
  535. package/dist/components/seki-sidebar-trigger.js +1 -1
  536. package/dist/components/seki-sidebar.js +2 -2
  537. package/dist/components/seki-skeleton.js +1 -1
  538. package/dist/components/seki-slider.js +1 -1
  539. package/dist/components/seki-spinner.js +2 -2
  540. package/dist/components/seki-switch.js +1 -1
  541. package/dist/components/seki-table-body.js +1 -1
  542. package/dist/components/seki-table-caption.js +1 -1
  543. package/dist/components/seki-table-cell.js +2 -2
  544. package/dist/components/seki-table-footer.js +1 -1
  545. package/dist/components/seki-table-head.js +2 -2
  546. package/dist/components/seki-table-header.js +1 -1
  547. package/dist/components/seki-table-row.js +2 -2
  548. package/dist/components/seki-table.js +1 -1
  549. package/dist/components/seki-tabs-content.js +2 -2
  550. package/dist/components/seki-tabs-list.js +2 -2
  551. package/dist/components/seki-tabs-trigger.js +2 -2
  552. package/dist/components/seki-tabs.js +2 -2
  553. package/dist/components/seki-textarea.js +1 -1
  554. package/dist/components/seki-toaster.js +1 -1
  555. package/dist/components/seki-toggle.js +1 -1
  556. package/dist/components/seki-tooltip.js +1 -1
  557. package/dist/esm/loader.js +1 -1
  558. package/dist/esm/seki-accordion-content.entry.js +2 -2
  559. package/dist/esm/seki-accordion-item.entry.js +1 -1
  560. package/dist/esm/seki-accordion-trigger.entry.js +2 -2
  561. package/dist/esm/seki-accordion.entry.js +1 -1
  562. package/dist/esm/seki-alert-description.entry.js +1 -1
  563. package/dist/esm/seki-alert-title.entry.js +1 -1
  564. package/dist/esm/seki-aspect-ratio.entry.js +1 -1
  565. package/dist/esm/seki-breadcrumb-ellipsis.entry.js +1 -1
  566. package/dist/esm/seki-breadcrumb-item.entry.js +1 -1
  567. package/dist/esm/seki-breadcrumb-link.entry.js +1 -1
  568. package/dist/esm/seki-breadcrumb-list.entry.js +1 -1
  569. package/dist/esm/seki-breadcrumb-page.entry.js +1 -1
  570. package/dist/esm/seki-breadcrumb-separator.entry.js +1 -1
  571. package/dist/esm/seki-breadcrumb.entry.js +1 -1
  572. package/dist/esm/seki-button-group.entry.js +2 -2
  573. package/dist/esm/seki-button.entry.js +1 -1
  574. package/dist/esm/seki-card-action.entry.js +1 -1
  575. package/dist/esm/seki-card-content.entry.js +1 -1
  576. package/dist/esm/seki-card-description.entry.js +1 -1
  577. package/dist/esm/seki-card-footer.entry.js +1 -1
  578. package/dist/esm/seki-card-header.entry.js +1 -1
  579. package/dist/esm/seki-card.entry.js +1 -1
  580. package/dist/esm/seki-carousel-content.entry.js +15 -0
  581. package/dist/esm/seki-carousel-dots.entry.js +95 -0
  582. package/dist/esm/seki-carousel-item.entry.js +20 -0
  583. package/dist/esm/seki-carousel-next.entry.js +58 -0
  584. package/dist/esm/seki-carousel-previous.entry.js +58 -0
  585. package/dist/esm/seki-carousel.entry.js +1936 -0
  586. package/dist/esm/seki-checkbox.entry.js +2 -2
  587. package/dist/esm/seki-collapsible-content.entry.js +2 -2
  588. package/dist/esm/seki-collapsible.entry.js +1 -1
  589. package/dist/esm/seki-data-table.entry.js +6 -6
  590. package/dist/esm/seki-date-picker.entry.js +2 -2
  591. package/dist/esm/seki-dialog-close.entry.js +1 -1
  592. package/dist/esm/seki-dialog-description.entry.js +1 -1
  593. package/dist/esm/seki-dialog-footer.entry.js +1 -1
  594. package/dist/esm/seki-dialog-header.entry.js +1 -1
  595. package/dist/esm/seki-dialog-title.entry.js +1 -1
  596. package/dist/esm/seki-dialog-trigger.entry.js +1 -1
  597. package/dist/esm/seki-dialog.entry.js +1 -1
  598. package/dist/esm/seki-dropdown-menu-checkbox.entry.js +2 -2
  599. package/dist/esm/seki-dropdown-menu-item.entry.js +2 -2
  600. package/dist/esm/seki-dropdown-menu-label.entry.js +2 -2
  601. package/dist/esm/seki-dropdown-menu-radio-group.entry.js +1 -1
  602. package/dist/esm/seki-dropdown-menu-radio.entry.js +2 -2
  603. package/dist/esm/seki-dropdown-menu-separator.entry.js +1 -1
  604. package/dist/esm/seki-dropdown-menu-shortcut.entry.js +1 -1
  605. package/dist/esm/seki-dropdown-menu-trigger.entry.js +1 -1
  606. package/dist/esm/seki-dropdown-menu.entry.js +1 -1
  607. package/dist/esm/seki-field-description.entry.js +1 -1
  608. package/dist/esm/seki-field-error.entry.js +1 -1
  609. package/dist/esm/seki-field-group.entry.js +1 -1
  610. package/dist/esm/seki-field-label.entry.js +1 -1
  611. package/dist/esm/seki-field-legend.entry.js +1 -1
  612. package/dist/esm/seki-field.entry.js +1 -1
  613. package/dist/esm/seki-fieldset.entry.js +1 -1
  614. package/dist/esm/seki-input.entry.js +1 -1
  615. package/dist/esm/seki-kbd.entry.js +1 -1
  616. package/dist/esm/seki-navigation-menu-content.entry.js +2 -2
  617. package/dist/esm/seki-navigation-menu-item.entry.js +2 -2
  618. package/dist/esm/seki-navigation-menu-link.entry.js +2 -2
  619. package/dist/esm/seki-navigation-menu-list.entry.js +1 -1
  620. package/dist/esm/seki-navigation-menu-trigger.entry.js +2 -2
  621. package/dist/esm/seki-navigation-menu-viewport.entry.js +2 -2
  622. package/dist/esm/seki-navigation-menu.entry.js +2 -2
  623. package/dist/esm/seki-pagination-content.entry.js +1 -1
  624. package/dist/esm/seki-pagination-ellipsis.entry.js +1 -1
  625. package/dist/esm/seki-pagination-item.entry.js +1 -1
  626. package/dist/esm/seki-pagination-link.entry.js +2 -2
  627. package/dist/esm/seki-pagination-next.entry.js +2 -2
  628. package/dist/esm/seki-pagination-previous.entry.js +2 -2
  629. package/dist/esm/seki-pagination.entry.js +1 -1
  630. package/dist/esm/seki-popover-close.entry.js +1 -1
  631. package/dist/esm/seki-popover-trigger.entry.js +1 -1
  632. package/dist/esm/seki-popover.entry.js +1 -1
  633. package/dist/esm/seki-progress.entry.js +1 -1
  634. package/dist/esm/seki-radio-group-item.entry.js +1 -1
  635. package/dist/esm/seki-radio-group.entry.js +1 -1
  636. package/dist/esm/seki-select-group.entry.js +1 -1
  637. package/dist/esm/seki-select-option.entry.js +1 -1
  638. package/dist/esm/seki-select.entry.js +1 -1
  639. package/dist/esm/seki-separator.entry.js +1 -1
  640. package/dist/esm/seki-sheet-close.entry.js +1 -1
  641. package/dist/esm/seki-sheet-content.entry.js +2 -2
  642. package/dist/esm/seki-sheet-description.entry.js +1 -1
  643. package/dist/esm/seki-sheet-footer.entry.js +1 -1
  644. package/dist/esm/seki-sheet-header.entry.js +1 -1
  645. package/dist/esm/seki-sheet-title.entry.js +1 -1
  646. package/dist/esm/seki-sheet-trigger.entry.js +1 -1
  647. package/dist/esm/seki-sheet.entry.js +2 -2
  648. package/dist/esm/seki-sidebar-content.entry.js +1 -1
  649. package/dist/esm/seki-sidebar-footer.entry.js +1 -1
  650. package/dist/esm/seki-sidebar-group-action.entry.js +1 -1
  651. package/dist/esm/seki-sidebar-group-content.entry.js +1 -1
  652. package/dist/esm/seki-sidebar-group-label.entry.js +1 -1
  653. package/dist/esm/seki-sidebar-group.entry.js +1 -1
  654. package/dist/esm/seki-sidebar-header.entry.js +1 -1
  655. package/dist/esm/seki-sidebar-inset.entry.js +1 -1
  656. package/dist/esm/seki-sidebar-menu-action.entry.js +1 -1
  657. package/dist/esm/seki-sidebar-menu-badge.entry.js +1 -1
  658. package/dist/esm/seki-sidebar-menu-button.entry.js +1 -1
  659. package/dist/esm/seki-sidebar-menu-item.entry.js +1 -1
  660. package/dist/esm/seki-sidebar-menu-skeleton.entry.js +1 -1
  661. package/dist/esm/seki-sidebar-menu-sub-button.entry.js +2 -2
  662. package/dist/esm/seki-sidebar-menu-sub-item.entry.js +1 -1
  663. package/dist/esm/seki-sidebar-menu-sub.entry.js +3 -3
  664. package/dist/esm/seki-sidebar-menu.entry.js +1 -1
  665. package/dist/esm/seki-sidebar-provider.entry.js +1 -1
  666. package/dist/esm/seki-sidebar-rail.entry.js +1 -1
  667. package/dist/esm/seki-sidebar-separator.entry.js +1 -1
  668. package/dist/esm/seki-sidebar-trigger.entry.js +1 -1
  669. package/dist/esm/seki-sidebar.entry.js +2 -2
  670. package/dist/esm/seki-skeleton.entry.js +1 -1
  671. package/dist/esm/seki-slider.entry.js +1 -1
  672. package/dist/esm/seki-spinner.entry.js +2 -2
  673. package/dist/esm/seki-switch.entry.js +1 -1
  674. package/dist/esm/seki-table-body.entry.js +1 -1
  675. package/dist/esm/seki-table-caption.entry.js +1 -1
  676. package/dist/esm/seki-table-cell.entry.js +2 -2
  677. package/dist/esm/seki-table-footer.entry.js +1 -1
  678. package/dist/esm/seki-table-head.entry.js +2 -2
  679. package/dist/esm/seki-table-header.entry.js +1 -1
  680. package/dist/esm/seki-table-row.entry.js +2 -2
  681. package/dist/esm/seki-table.entry.js +1 -1
  682. package/dist/esm/seki-tabs-content.entry.js +2 -2
  683. package/dist/esm/seki-tabs-list.entry.js +2 -2
  684. package/dist/esm/seki-tabs-trigger.entry.js +2 -2
  685. package/dist/esm/seki-tabs.entry.js +2 -2
  686. package/dist/esm/seki-textarea.entry.js +1 -1
  687. package/dist/esm/seki-toaster.entry.js +1 -1
  688. package/dist/esm/seki-toggle.entry.js +1 -1
  689. package/dist/esm/seki-tooltip.entry.js +1 -1
  690. package/dist/esm/sekiui.js +1 -1
  691. package/dist/sekiui/index.esm.js +1 -1
  692. package/dist/sekiui/{p-2e6f3ad1.entry.js → p-0046df3b.entry.js} +1 -1
  693. package/dist/sekiui/{p-ecb92437.entry.js → p-00f97767.entry.js} +1 -1
  694. package/dist/sekiui/{p-89857d7b.entry.js → p-01209a40.entry.js} +1 -1
  695. package/dist/sekiui/p-0228a5f0.entry.js +1 -0
  696. package/dist/sekiui/p-02db203d.entry.js +1 -0
  697. package/dist/sekiui/{p-df7953d7.entry.js → p-031f9127.entry.js} +1 -1
  698. package/dist/sekiui/{p-0636f4e5.entry.js → p-07a1344f.entry.js} +1 -1
  699. package/dist/sekiui/{p-24ef3b70.entry.js → p-085e109c.entry.js} +1 -1
  700. package/dist/sekiui/{p-dd7ba706.entry.js → p-0977b2e7.entry.js} +1 -1
  701. package/dist/sekiui/{p-72febeca.entry.js → p-09996a45.entry.js} +1 -1
  702. package/dist/sekiui/{p-6dc105b6.entry.js → p-09d2f9ac.entry.js} +1 -1
  703. package/dist/sekiui/p-0b86b994.entry.js +1 -0
  704. package/dist/sekiui/{p-33e6b68c.entry.js → p-0d12312f.entry.js} +1 -1
  705. package/dist/sekiui/p-0dca70f1.entry.js +1 -0
  706. package/dist/sekiui/{p-3fa43a1e.entry.js → p-0e3b26e6.entry.js} +1 -1
  707. package/dist/sekiui/p-0fce9401.entry.js +1 -0
  708. package/dist/sekiui/{p-6e7c08a8.entry.js → p-12d561e1.entry.js} +1 -1
  709. package/dist/sekiui/{p-724c9883.entry.js → p-13162301.entry.js} +1 -1
  710. package/dist/sekiui/{p-141c5253.entry.js → p-143f0310.entry.js} +1 -1
  711. package/dist/sekiui/{p-def1d27e.entry.js → p-1450382e.entry.js} +1 -1
  712. package/dist/sekiui/{p-c4f48069.entry.js → p-15264bb1.entry.js} +1 -1
  713. package/dist/sekiui/{p-278b239b.entry.js → p-18d2d4d0.entry.js} +1 -1
  714. package/dist/sekiui/{p-4fe7ebff.entry.js → p-1d99afff.entry.js} +1 -1
  715. package/dist/sekiui/{p-6ec3507a.entry.js → p-1e9e86d0.entry.js} +1 -1
  716. package/dist/sekiui/{p-9562051c.entry.js → p-1f4267ea.entry.js} +1 -1
  717. package/dist/sekiui/{p-53393a06.entry.js → p-2421f4e1.entry.js} +1 -1
  718. package/dist/sekiui/{p-56098fbc.entry.js → p-25b02509.entry.js} +1 -1
  719. package/dist/sekiui/{p-6d97f1bc.entry.js → p-25e67d85.entry.js} +1 -1
  720. package/dist/sekiui/{p-8508af36.entry.js → p-305bbc98.entry.js} +1 -1
  721. package/dist/sekiui/{p-7d1ec31a.entry.js → p-352c12d1.entry.js} +1 -1
  722. package/dist/sekiui/{p-195a4955.entry.js → p-37081f6c.entry.js} +1 -1
  723. package/dist/sekiui/{p-7c74c102.entry.js → p-3b882835.entry.js} +1 -1
  724. package/dist/sekiui/{p-12d200f1.entry.js → p-3edc1b78.entry.js} +1 -1
  725. package/dist/sekiui/{p-e8da0dce.entry.js → p-3f557afe.entry.js} +1 -1
  726. package/dist/sekiui/{p-779de7e0.entry.js → p-49c57dd7.entry.js} +1 -1
  727. package/dist/sekiui/{p-1d16abe4.entry.js → p-4a2144e8.entry.js} +1 -1
  728. package/dist/sekiui/{p-b0dab7e1.entry.js → p-4a50043e.entry.js} +1 -1
  729. package/dist/sekiui/{p-00dc6e0b.entry.js → p-4bc7f9fe.entry.js} +1 -1
  730. package/dist/sekiui/{p-de8e33f7.entry.js → p-4e9f83b5.entry.js} +1 -1
  731. package/dist/sekiui/{p-527e4c08.entry.js → p-505ad5ad.entry.js} +1 -1
  732. package/dist/sekiui/{p-1536d427.entry.js → p-53f602eb.entry.js} +1 -1
  733. package/dist/sekiui/{p-1b2aff61.entry.js → p-54c8ab50.entry.js} +1 -1
  734. package/dist/sekiui/{p-66ef322b.entry.js → p-54d025ca.entry.js} +1 -1
  735. package/dist/sekiui/{p-081c85fb.entry.js → p-598ddcbc.entry.js} +1 -1
  736. package/dist/sekiui/{p-3d1bcfc2.entry.js → p-5caa05a9.entry.js} +1 -1
  737. package/dist/sekiui/{p-c20d4ff2.entry.js → p-5f383cf5.entry.js} +1 -1
  738. package/dist/sekiui/{p-3e962e03.entry.js → p-64197c6d.entry.js} +1 -1
  739. package/dist/sekiui/{p-915383fa.entry.js → p-6526511b.entry.js} +1 -1
  740. package/dist/sekiui/{p-8996fc3a.entry.js → p-68a17592.entry.js} +1 -1
  741. package/dist/sekiui/{p-aa2c98ae.entry.js → p-69b12832.entry.js} +1 -1
  742. package/dist/sekiui/{p-3456528a.entry.js → p-69d568a0.entry.js} +1 -1
  743. package/dist/sekiui/{p-48ba2cbe.entry.js → p-6bcdfc9f.entry.js} +1 -1
  744. package/dist/sekiui/{p-b0730a80.entry.js → p-6fcc2712.entry.js} +1 -1
  745. package/dist/sekiui/{p-5cf81211.entry.js → p-706b3351.entry.js} +1 -1
  746. package/dist/sekiui/{p-81e38d92.entry.js → p-7179fbae.entry.js} +1 -1
  747. package/dist/sekiui/{p-f3c84445.entry.js → p-72fce202.entry.js} +1 -1
  748. package/dist/sekiui/{p-06ff0ec7.entry.js → p-7335a65a.entry.js} +1 -1
  749. package/dist/sekiui/{p-2dea79fa.entry.js → p-75c12cb9.entry.js} +1 -1
  750. package/dist/sekiui/{p-ee5d3312.entry.js → p-765bf02c.entry.js} +1 -1
  751. package/dist/sekiui/{p-cede903b.entry.js → p-77146005.entry.js} +1 -1
  752. package/dist/sekiui/{p-6c22df3c.entry.js → p-7aa6c152.entry.js} +1 -1
  753. package/dist/sekiui/{p-c1e1ed30.entry.js → p-7b10519a.entry.js} +1 -1
  754. package/dist/sekiui/{p-a157ab5c.entry.js → p-7bdf347f.entry.js} +1 -1
  755. package/dist/sekiui/{p-61b74ab5.entry.js → p-7c75559a.entry.js} +1 -1
  756. package/dist/sekiui/{p-342e10f8.entry.js → p-7e621ce2.entry.js} +1 -1
  757. package/dist/sekiui/{p-6231667a.entry.js → p-80cb25cc.entry.js} +1 -1
  758. package/dist/sekiui/{p-2d78438f.entry.js → p-8515402e.entry.js} +1 -1
  759. package/dist/sekiui/{p-7abf8533.entry.js → p-866c0857.entry.js} +1 -1
  760. package/dist/sekiui/{p-89ed27fe.entry.js → p-882f256e.entry.js} +1 -1
  761. package/dist/sekiui/{p-3ec6a8aa.entry.js → p-8966a28d.entry.js} +1 -1
  762. package/dist/sekiui/{p-47dc697d.entry.js → p-97f64fa1.entry.js} +1 -1
  763. package/dist/sekiui/{p-7dcf345e.entry.js → p-9cfd0c41.entry.js} +1 -1
  764. package/dist/sekiui/{p-7540bc14.entry.js → p-9d436e67.entry.js} +1 -1
  765. package/dist/sekiui/{p-62d8f76b.entry.js → p-9d958c7a.entry.js} +1 -1
  766. package/dist/sekiui/{p-307d9aee.entry.js → p-9db819cf.entry.js} +1 -1
  767. package/dist/sekiui/{p-12e0f465.entry.js → p-9e87ad12.entry.js} +1 -1
  768. package/dist/sekiui/{p-8da90782.entry.js → p-9f0fc24c.entry.js} +1 -1
  769. package/dist/sekiui/{p-cecfd410.entry.js → p-a082c299.entry.js} +1 -1
  770. package/dist/sekiui/{p-cc26fa12.entry.js → p-a1b8406c.entry.js} +1 -1
  771. package/dist/sekiui/{p-292512cd.entry.js → p-ab6d98a4.entry.js} +1 -1
  772. package/dist/sekiui/{p-c94a385d.entry.js → p-ac18d9f6.entry.js} +1 -1
  773. package/dist/sekiui/{p-e58907ad.entry.js → p-acbd75ad.entry.js} +1 -1
  774. package/dist/sekiui/{p-06df6d83.entry.js → p-ace43fbb.entry.js} +1 -1
  775. package/dist/sekiui/{p-20f94b5d.entry.js → p-ad81897a.entry.js} +1 -1
  776. package/dist/sekiui/{p-437f27d2.entry.js → p-afbdf831.entry.js} +1 -1
  777. package/dist/sekiui/{p-b913d1d4.entry.js → p-b19e2b9a.entry.js} +1 -1
  778. package/dist/sekiui/{p-29d3cb73.entry.js → p-b2f33d5d.entry.js} +1 -1
  779. package/dist/sekiui/{p-eb67fd08.entry.js → p-b48a4bd3.entry.js} +1 -1
  780. package/dist/sekiui/{p-dbd155ac.entry.js → p-b4cc7720.entry.js} +1 -1
  781. package/dist/sekiui/{p-0395719a.entry.js → p-b537a94e.entry.js} +1 -1
  782. package/dist/sekiui/{p-b9e0a237.entry.js → p-b8710792.entry.js} +1 -1
  783. package/dist/sekiui/{p-31c6b253.entry.js → p-bc2a682c.entry.js} +1 -1
  784. package/dist/sekiui/p-bd3f5b8d.entry.js +1 -0
  785. package/dist/sekiui/{p-2223d600.entry.js → p-bf0e084f.entry.js} +1 -1
  786. package/dist/sekiui/{p-8ad72f5a.entry.js → p-bf0fc580.entry.js} +1 -1
  787. package/dist/sekiui/{p-1414269e.entry.js → p-c7c07176.entry.js} +1 -1
  788. package/dist/sekiui/{p-bd728d45.entry.js → p-c87a1e68.entry.js} +1 -1
  789. package/dist/sekiui/{p-d2c1476c.entry.js → p-c8e6609c.entry.js} +1 -1
  790. package/dist/sekiui/{p-bbc7db9c.entry.js → p-c9f4344b.entry.js} +1 -1
  791. package/dist/sekiui/{p-669cb26d.entry.js → p-ca1dee5a.entry.js} +1 -1
  792. package/dist/sekiui/{p-f359dafc.entry.js → p-cbb3cfc5.entry.js} +1 -1
  793. package/dist/sekiui/{p-ad589391.entry.js → p-d08d0dee.entry.js} +1 -1
  794. package/dist/sekiui/{p-a56f5708.entry.js → p-d1ec1efa.entry.js} +1 -1
  795. package/dist/sekiui/{p-4bd67ade.entry.js → p-d23bdee7.entry.js} +1 -1
  796. package/dist/sekiui/{p-995693cb.entry.js → p-d634f921.entry.js} +1 -1
  797. package/dist/sekiui/{p-331ba142.entry.js → p-d7a82090.entry.js} +1 -1
  798. package/dist/sekiui/{p-3bee8a4a.entry.js → p-d8c158b8.entry.js} +1 -1
  799. package/dist/sekiui/{p-34f03f27.entry.js → p-dc55ac4f.entry.js} +1 -1
  800. package/dist/sekiui/{p-4edfc34e.entry.js → p-dcadf0f0.entry.js} +1 -1
  801. package/dist/sekiui/{p-d8ea2789.entry.js → p-dd0ed49c.entry.js} +1 -1
  802. package/dist/sekiui/{p-b95c4632.entry.js → p-df5f3abc.entry.js} +1 -1
  803. package/dist/sekiui/{p-ce88caf9.entry.js → p-e2093eba.entry.js} +1 -1
  804. package/dist/sekiui/{p-bf05d301.entry.js → p-e2e01d65.entry.js} +1 -1
  805. package/dist/sekiui/p-e3b9398b.entry.js +1 -0
  806. package/dist/sekiui/{p-4e0cc681.entry.js → p-e5b941b4.entry.js} +1 -1
  807. package/dist/sekiui/{p-8331e305.entry.js → p-e780bcfe.entry.js} +1 -1
  808. package/dist/sekiui/{p-93957f70.entry.js → p-e90babd3.entry.js} +1 -1
  809. package/dist/sekiui/{p-a6ca6f94.entry.js → p-e98ea402.entry.js} +1 -1
  810. package/dist/sekiui/{p-31c3c9c8.entry.js → p-e9f842fb.entry.js} +1 -1
  811. package/dist/sekiui/{p-a7bafefd.entry.js → p-ea539428.entry.js} +1 -1
  812. package/dist/sekiui/{p-ad752703.entry.js → p-eb2befd8.entry.js} +1 -1
  813. package/dist/sekiui/{p-59d588c6.entry.js → p-f02bf468.entry.js} +1 -1
  814. package/dist/sekiui/{p-6b1577c0.entry.js → p-f182d4a1.entry.js} +1 -1
  815. package/dist/sekiui/{p-39f926bd.entry.js → p-f2d18ba7.entry.js} +1 -1
  816. package/dist/sekiui/{p-f166c38d.entry.js → p-f41807af.entry.js} +1 -1
  817. package/dist/sekiui/{p-58208fad.entry.js → p-f4ddf894.entry.js} +1 -1
  818. package/dist/sekiui/{p-2edfdd68.entry.js → p-f8125181.entry.js} +1 -1
  819. package/dist/sekiui/p-f90c8e1c.entry.js +1 -0
  820. package/dist/sekiui/{p-af8819d1.entry.js → p-fad01ffd.entry.js} +1 -1
  821. package/dist/sekiui/{p-7881c6f6.entry.js → p-fc16a2fc.entry.js} +1 -1
  822. package/dist/sekiui/{p-7a877c35.entry.js → p-fd320255.entry.js} +1 -1
  823. package/dist/sekiui/{p-10bb0959.entry.js → p-ffbd965e.entry.js} +1 -1
  824. package/dist/sekiui/sekiui.esm.js +1 -1
  825. package/dist/types/components/carousel/seki-carousel-content.d.ts +9 -0
  826. package/dist/types/components/carousel/seki-carousel-dots.d.ts +21 -0
  827. package/dist/types/components/carousel/seki-carousel-item.d.ts +13 -0
  828. package/dist/types/components/carousel/seki-carousel-next.d.ts +19 -0
  829. package/dist/types/components/carousel/seki-carousel-previous.d.ts +19 -0
  830. package/dist/types/components/carousel/seki-carousel.d.ts +95 -0
  831. package/dist/types/components.d.ts +285 -0
  832. package/package.json +3 -2
  833. package/dist/sekiui/p-959903f5.entry.js +0 -1
  834. package/dist/sekiui/p-b3d7c946.entry.js +0 -1
@@ -0,0 +1,1938 @@
1
+ 'use strict';
2
+
3
+ var index = require('./index-BAbJauWg.js');
4
+
5
+ function isNumber(subject) {
6
+ return typeof subject === 'number';
7
+ }
8
+ function isString(subject) {
9
+ return typeof subject === 'string';
10
+ }
11
+ function isBoolean(subject) {
12
+ return typeof subject === 'boolean';
13
+ }
14
+ function isObject(subject) {
15
+ return Object.prototype.toString.call(subject) === '[object Object]';
16
+ }
17
+ function mathAbs(n) {
18
+ return Math.abs(n);
19
+ }
20
+ function mathSign(n) {
21
+ return Math.sign(n);
22
+ }
23
+ function deltaAbs(valueB, valueA) {
24
+ return mathAbs(valueB - valueA);
25
+ }
26
+ function factorAbs(valueB, valueA) {
27
+ if (valueB === 0 || valueA === 0) return 0;
28
+ if (mathAbs(valueB) <= mathAbs(valueA)) return 0;
29
+ const diff = deltaAbs(mathAbs(valueB), mathAbs(valueA));
30
+ return mathAbs(diff / valueB);
31
+ }
32
+ function roundToTwoDecimals(num) {
33
+ return Math.round(num * 100) / 100;
34
+ }
35
+ function arrayKeys(array) {
36
+ return objectKeys(array).map(Number);
37
+ }
38
+ function arrayLast(array) {
39
+ return array[arrayLastIndex(array)];
40
+ }
41
+ function arrayLastIndex(array) {
42
+ return Math.max(0, array.length - 1);
43
+ }
44
+ function arrayIsLastIndex(array, index) {
45
+ return index === arrayLastIndex(array);
46
+ }
47
+ function arrayFromNumber(n, startAt = 0) {
48
+ return Array.from(Array(n), (_, i) => startAt + i);
49
+ }
50
+ function objectKeys(object) {
51
+ return Object.keys(object);
52
+ }
53
+ function objectsMergeDeep(objectA, objectB) {
54
+ return [objectA, objectB].reduce((mergedObjects, currentObject) => {
55
+ objectKeys(currentObject).forEach(key => {
56
+ const valueA = mergedObjects[key];
57
+ const valueB = currentObject[key];
58
+ const areObjects = isObject(valueA) && isObject(valueB);
59
+ mergedObjects[key] = areObjects ? objectsMergeDeep(valueA, valueB) : valueB;
60
+ });
61
+ return mergedObjects;
62
+ }, {});
63
+ }
64
+ function isMouseEvent(evt, ownerWindow) {
65
+ return typeof ownerWindow.MouseEvent !== 'undefined' && evt instanceof ownerWindow.MouseEvent;
66
+ }
67
+
68
+ function Alignment(align, viewSize) {
69
+ const predefined = {
70
+ start,
71
+ center,
72
+ end
73
+ };
74
+ function start() {
75
+ return 0;
76
+ }
77
+ function center(n) {
78
+ return end(n) / 2;
79
+ }
80
+ function end(n) {
81
+ return viewSize - n;
82
+ }
83
+ function measure(n, index) {
84
+ if (isString(align)) return predefined[align](n);
85
+ return align(viewSize, n, index);
86
+ }
87
+ const self = {
88
+ measure
89
+ };
90
+ return self;
91
+ }
92
+
93
+ function EventStore() {
94
+ let listeners = [];
95
+ function add(node, type, handler, options = {
96
+ passive: true
97
+ }) {
98
+ let removeListener;
99
+ if ('addEventListener' in node) {
100
+ node.addEventListener(type, handler, options);
101
+ removeListener = () => node.removeEventListener(type, handler, options);
102
+ } else {
103
+ const legacyMediaQueryList = node;
104
+ legacyMediaQueryList.addListener(handler);
105
+ removeListener = () => legacyMediaQueryList.removeListener(handler);
106
+ }
107
+ listeners.push(removeListener);
108
+ return self;
109
+ }
110
+ function clear() {
111
+ listeners = listeners.filter(remove => remove());
112
+ }
113
+ const self = {
114
+ add,
115
+ clear
116
+ };
117
+ return self;
118
+ }
119
+
120
+ function Animations(ownerDocument, ownerWindow, update, render) {
121
+ const documentVisibleHandler = EventStore();
122
+ const fixedTimeStep = 1000 / 60;
123
+ let lastTimeStamp = null;
124
+ let accumulatedTime = 0;
125
+ let animationId = 0;
126
+ function init() {
127
+ documentVisibleHandler.add(ownerDocument, 'visibilitychange', () => {
128
+ if (ownerDocument.hidden) reset();
129
+ });
130
+ }
131
+ function destroy() {
132
+ stop();
133
+ documentVisibleHandler.clear();
134
+ }
135
+ function animate(timeStamp) {
136
+ if (!animationId) return;
137
+ if (!lastTimeStamp) {
138
+ lastTimeStamp = timeStamp;
139
+ update();
140
+ update();
141
+ }
142
+ const timeElapsed = timeStamp - lastTimeStamp;
143
+ lastTimeStamp = timeStamp;
144
+ accumulatedTime += timeElapsed;
145
+ while (accumulatedTime >= fixedTimeStep) {
146
+ update();
147
+ accumulatedTime -= fixedTimeStep;
148
+ }
149
+ const alpha = accumulatedTime / fixedTimeStep;
150
+ render(alpha);
151
+ if (animationId) {
152
+ animationId = ownerWindow.requestAnimationFrame(animate);
153
+ }
154
+ }
155
+ function start() {
156
+ if (animationId) return;
157
+ animationId = ownerWindow.requestAnimationFrame(animate);
158
+ }
159
+ function stop() {
160
+ ownerWindow.cancelAnimationFrame(animationId);
161
+ lastTimeStamp = null;
162
+ accumulatedTime = 0;
163
+ animationId = 0;
164
+ }
165
+ function reset() {
166
+ lastTimeStamp = null;
167
+ accumulatedTime = 0;
168
+ }
169
+ const self = {
170
+ init,
171
+ destroy,
172
+ start,
173
+ stop,
174
+ update,
175
+ render
176
+ };
177
+ return self;
178
+ }
179
+
180
+ function Axis(axis, contentDirection) {
181
+ const isRightToLeft = contentDirection === 'rtl';
182
+ const isVertical = axis === 'y';
183
+ const scroll = isVertical ? 'y' : 'x';
184
+ const cross = isVertical ? 'x' : 'y';
185
+ const sign = !isVertical && isRightToLeft ? -1 : 1;
186
+ const startEdge = getStartEdge();
187
+ const endEdge = getEndEdge();
188
+ function measureSize(nodeRect) {
189
+ const {
190
+ height,
191
+ width
192
+ } = nodeRect;
193
+ return isVertical ? height : width;
194
+ }
195
+ function getStartEdge() {
196
+ if (isVertical) return 'top';
197
+ return isRightToLeft ? 'right' : 'left';
198
+ }
199
+ function getEndEdge() {
200
+ if (isVertical) return 'bottom';
201
+ return isRightToLeft ? 'left' : 'right';
202
+ }
203
+ function direction(n) {
204
+ return n * sign;
205
+ }
206
+ const self = {
207
+ scroll,
208
+ cross,
209
+ startEdge,
210
+ endEdge,
211
+ measureSize,
212
+ direction
213
+ };
214
+ return self;
215
+ }
216
+
217
+ function Limit(min = 0, max = 0) {
218
+ const length = mathAbs(min - max);
219
+ function reachedMin(n) {
220
+ return n < min;
221
+ }
222
+ function reachedMax(n) {
223
+ return n > max;
224
+ }
225
+ function reachedAny(n) {
226
+ return reachedMin(n) || reachedMax(n);
227
+ }
228
+ function constrain(n) {
229
+ if (!reachedAny(n)) return n;
230
+ return reachedMin(n) ? min : max;
231
+ }
232
+ function removeOffset(n) {
233
+ if (!length) return n;
234
+ return n - length * Math.ceil((n - max) / length);
235
+ }
236
+ const self = {
237
+ length,
238
+ max,
239
+ min,
240
+ constrain,
241
+ reachedAny,
242
+ reachedMax,
243
+ reachedMin,
244
+ removeOffset
245
+ };
246
+ return self;
247
+ }
248
+
249
+ function Counter(max, start, loop) {
250
+ const {
251
+ constrain
252
+ } = Limit(0, max);
253
+ const loopEnd = max + 1;
254
+ let counter = withinLimit(start);
255
+ function withinLimit(n) {
256
+ return !loop ? constrain(n) : mathAbs((loopEnd + n) % loopEnd);
257
+ }
258
+ function get() {
259
+ return counter;
260
+ }
261
+ function set(n) {
262
+ counter = withinLimit(n);
263
+ return self;
264
+ }
265
+ function add(n) {
266
+ return clone().set(get() + n);
267
+ }
268
+ function clone() {
269
+ return Counter(max, get(), loop);
270
+ }
271
+ const self = {
272
+ get,
273
+ set,
274
+ add,
275
+ clone
276
+ };
277
+ return self;
278
+ }
279
+
280
+ function DragHandler(axis, rootNode, ownerDocument, ownerWindow, target, dragTracker, location, animation, scrollTo, scrollBody, scrollTarget, index, eventHandler, percentOfView, dragFree, dragThreshold, skipSnaps, baseFriction, watchDrag) {
281
+ const {
282
+ cross: crossAxis,
283
+ direction
284
+ } = axis;
285
+ const focusNodes = ['INPUT', 'SELECT', 'TEXTAREA'];
286
+ const nonPassiveEvent = {
287
+ passive: false
288
+ };
289
+ const initEvents = EventStore();
290
+ const dragEvents = EventStore();
291
+ const goToNextThreshold = Limit(50, 225).constrain(percentOfView.measure(20));
292
+ const snapForceBoost = {
293
+ mouse: 300,
294
+ touch: 400
295
+ };
296
+ const freeForceBoost = {
297
+ mouse: 500,
298
+ touch: 600
299
+ };
300
+ const baseSpeed = dragFree ? 43 : 25;
301
+ let isMoving = false;
302
+ let startScroll = 0;
303
+ let startCross = 0;
304
+ let pointerIsDown = false;
305
+ let preventScroll = false;
306
+ let preventClick = false;
307
+ let isMouse = false;
308
+ function init(emblaApi) {
309
+ if (!watchDrag) return;
310
+ function downIfAllowed(evt) {
311
+ if (isBoolean(watchDrag) || watchDrag(emblaApi, evt)) down(evt);
312
+ }
313
+ const node = rootNode;
314
+ initEvents.add(node, 'dragstart', evt => evt.preventDefault(), nonPassiveEvent).add(node, 'touchmove', () => undefined, nonPassiveEvent).add(node, 'touchend', () => undefined).add(node, 'touchstart', downIfAllowed).add(node, 'mousedown', downIfAllowed).add(node, 'touchcancel', up).add(node, 'contextmenu', up).add(node, 'click', click, true);
315
+ }
316
+ function destroy() {
317
+ initEvents.clear();
318
+ dragEvents.clear();
319
+ }
320
+ function addDragEvents() {
321
+ const node = isMouse ? ownerDocument : rootNode;
322
+ dragEvents.add(node, 'touchmove', move, nonPassiveEvent).add(node, 'touchend', up).add(node, 'mousemove', move, nonPassiveEvent).add(node, 'mouseup', up);
323
+ }
324
+ function isFocusNode(node) {
325
+ const nodeName = node.nodeName || '';
326
+ return focusNodes.includes(nodeName);
327
+ }
328
+ function forceBoost() {
329
+ const boost = dragFree ? freeForceBoost : snapForceBoost;
330
+ const type = isMouse ? 'mouse' : 'touch';
331
+ return boost[type];
332
+ }
333
+ function allowedForce(force, targetChanged) {
334
+ const next = index.add(mathSign(force) * -1);
335
+ const baseForce = scrollTarget.byDistance(force, !dragFree).distance;
336
+ if (dragFree || mathAbs(force) < goToNextThreshold) return baseForce;
337
+ if (skipSnaps && targetChanged) return baseForce * 0.5;
338
+ return scrollTarget.byIndex(next.get(), 0).distance;
339
+ }
340
+ function down(evt) {
341
+ const isMouseEvt = isMouseEvent(evt, ownerWindow);
342
+ isMouse = isMouseEvt;
343
+ preventClick = dragFree && isMouseEvt && !evt.buttons && isMoving;
344
+ isMoving = deltaAbs(target.get(), location.get()) >= 2;
345
+ if (isMouseEvt && evt.button !== 0) return;
346
+ if (isFocusNode(evt.target)) return;
347
+ pointerIsDown = true;
348
+ dragTracker.pointerDown(evt);
349
+ scrollBody.useFriction(0).useDuration(0);
350
+ target.set(location);
351
+ addDragEvents();
352
+ startScroll = dragTracker.readPoint(evt);
353
+ startCross = dragTracker.readPoint(evt, crossAxis);
354
+ eventHandler.emit('pointerDown');
355
+ }
356
+ function move(evt) {
357
+ const isTouchEvt = !isMouseEvent(evt, ownerWindow);
358
+ if (isTouchEvt && evt.touches.length >= 2) return up(evt);
359
+ const lastScroll = dragTracker.readPoint(evt);
360
+ const lastCross = dragTracker.readPoint(evt, crossAxis);
361
+ const diffScroll = deltaAbs(lastScroll, startScroll);
362
+ const diffCross = deltaAbs(lastCross, startCross);
363
+ if (!preventScroll && !isMouse) {
364
+ if (!evt.cancelable) return up(evt);
365
+ preventScroll = diffScroll > diffCross;
366
+ if (!preventScroll) return up(evt);
367
+ }
368
+ const diff = dragTracker.pointerMove(evt);
369
+ if (diffScroll > dragThreshold) preventClick = true;
370
+ scrollBody.useFriction(0.3).useDuration(0.75);
371
+ animation.start();
372
+ target.add(direction(diff));
373
+ evt.preventDefault();
374
+ }
375
+ function up(evt) {
376
+ const currentLocation = scrollTarget.byDistance(0, false);
377
+ const targetChanged = currentLocation.index !== index.get();
378
+ const rawForce = dragTracker.pointerUp(evt) * forceBoost();
379
+ const force = allowedForce(direction(rawForce), targetChanged);
380
+ const forceFactor = factorAbs(rawForce, force);
381
+ const speed = baseSpeed - 10 * forceFactor;
382
+ const friction = baseFriction + forceFactor / 50;
383
+ preventScroll = false;
384
+ pointerIsDown = false;
385
+ dragEvents.clear();
386
+ scrollBody.useDuration(speed).useFriction(friction);
387
+ scrollTo.distance(force, !dragFree);
388
+ isMouse = false;
389
+ eventHandler.emit('pointerUp');
390
+ }
391
+ function click(evt) {
392
+ if (preventClick) {
393
+ evt.stopPropagation();
394
+ evt.preventDefault();
395
+ preventClick = false;
396
+ }
397
+ }
398
+ function pointerDown() {
399
+ return pointerIsDown;
400
+ }
401
+ const self = {
402
+ init,
403
+ destroy,
404
+ pointerDown
405
+ };
406
+ return self;
407
+ }
408
+
409
+ function DragTracker(axis, ownerWindow) {
410
+ const logInterval = 170;
411
+ let startEvent;
412
+ let lastEvent;
413
+ function readTime(evt) {
414
+ return evt.timeStamp;
415
+ }
416
+ function readPoint(evt, evtAxis) {
417
+ const property = evtAxis || axis.scroll;
418
+ const coord = `client${property === 'x' ? 'X' : 'Y'}`;
419
+ return (isMouseEvent(evt, ownerWindow) ? evt : evt.touches[0])[coord];
420
+ }
421
+ function pointerDown(evt) {
422
+ startEvent = evt;
423
+ lastEvent = evt;
424
+ return readPoint(evt);
425
+ }
426
+ function pointerMove(evt) {
427
+ const diff = readPoint(evt) - readPoint(lastEvent);
428
+ const expired = readTime(evt) - readTime(startEvent) > logInterval;
429
+ lastEvent = evt;
430
+ if (expired) startEvent = evt;
431
+ return diff;
432
+ }
433
+ function pointerUp(evt) {
434
+ if (!startEvent || !lastEvent) return 0;
435
+ const diffDrag = readPoint(lastEvent) - readPoint(startEvent);
436
+ const diffTime = readTime(evt) - readTime(startEvent);
437
+ const expired = readTime(evt) - readTime(lastEvent) > logInterval;
438
+ const force = diffDrag / diffTime;
439
+ const isFlick = diffTime && !expired && mathAbs(force) > 0.1;
440
+ return isFlick ? force : 0;
441
+ }
442
+ const self = {
443
+ pointerDown,
444
+ pointerMove,
445
+ pointerUp,
446
+ readPoint
447
+ };
448
+ return self;
449
+ }
450
+
451
+ function NodeRects() {
452
+ function measure(node) {
453
+ const {
454
+ offsetTop,
455
+ offsetLeft,
456
+ offsetWidth,
457
+ offsetHeight
458
+ } = node;
459
+ const offset = {
460
+ top: offsetTop,
461
+ right: offsetLeft + offsetWidth,
462
+ bottom: offsetTop + offsetHeight,
463
+ left: offsetLeft,
464
+ width: offsetWidth,
465
+ height: offsetHeight
466
+ };
467
+ return offset;
468
+ }
469
+ const self = {
470
+ measure
471
+ };
472
+ return self;
473
+ }
474
+
475
+ function PercentOfView(viewSize) {
476
+ function measure(n) {
477
+ return viewSize * (n / 100);
478
+ }
479
+ const self = {
480
+ measure
481
+ };
482
+ return self;
483
+ }
484
+
485
+ function ResizeHandler(container, eventHandler, ownerWindow, slides, axis, watchResize, nodeRects) {
486
+ const observeNodes = [container].concat(slides);
487
+ let resizeObserver;
488
+ let containerSize;
489
+ let slideSizes = [];
490
+ let destroyed = false;
491
+ function readSize(node) {
492
+ return axis.measureSize(nodeRects.measure(node));
493
+ }
494
+ function init(emblaApi) {
495
+ if (!watchResize) return;
496
+ containerSize = readSize(container);
497
+ slideSizes = slides.map(readSize);
498
+ function defaultCallback(entries) {
499
+ for (const entry of entries) {
500
+ if (destroyed) return;
501
+ const isContainer = entry.target === container;
502
+ const slideIndex = slides.indexOf(entry.target);
503
+ const lastSize = isContainer ? containerSize : slideSizes[slideIndex];
504
+ const newSize = readSize(isContainer ? container : slides[slideIndex]);
505
+ const diffSize = mathAbs(newSize - lastSize);
506
+ if (diffSize >= 0.5) {
507
+ emblaApi.reInit();
508
+ eventHandler.emit('resize');
509
+ break;
510
+ }
511
+ }
512
+ }
513
+ resizeObserver = new ResizeObserver(entries => {
514
+ if (isBoolean(watchResize) || watchResize(emblaApi, entries)) {
515
+ defaultCallback(entries);
516
+ }
517
+ });
518
+ ownerWindow.requestAnimationFrame(() => {
519
+ observeNodes.forEach(node => resizeObserver.observe(node));
520
+ });
521
+ }
522
+ function destroy() {
523
+ destroyed = true;
524
+ if (resizeObserver) resizeObserver.disconnect();
525
+ }
526
+ const self = {
527
+ init,
528
+ destroy
529
+ };
530
+ return self;
531
+ }
532
+
533
+ function ScrollBody(location, offsetLocation, previousLocation, target, baseDuration, baseFriction) {
534
+ let scrollVelocity = 0;
535
+ let scrollDirection = 0;
536
+ let scrollDuration = baseDuration;
537
+ let scrollFriction = baseFriction;
538
+ let rawLocation = location.get();
539
+ let rawLocationPrevious = 0;
540
+ function seek() {
541
+ const displacement = target.get() - location.get();
542
+ const isInstant = !scrollDuration;
543
+ let scrollDistance = 0;
544
+ if (isInstant) {
545
+ scrollVelocity = 0;
546
+ previousLocation.set(target);
547
+ location.set(target);
548
+ scrollDistance = displacement;
549
+ } else {
550
+ previousLocation.set(location);
551
+ scrollVelocity += displacement / scrollDuration;
552
+ scrollVelocity *= scrollFriction;
553
+ rawLocation += scrollVelocity;
554
+ location.add(scrollVelocity);
555
+ scrollDistance = rawLocation - rawLocationPrevious;
556
+ }
557
+ scrollDirection = mathSign(scrollDistance);
558
+ rawLocationPrevious = rawLocation;
559
+ return self;
560
+ }
561
+ function settled() {
562
+ const diff = target.get() - offsetLocation.get();
563
+ return mathAbs(diff) < 0.001;
564
+ }
565
+ function duration() {
566
+ return scrollDuration;
567
+ }
568
+ function direction() {
569
+ return scrollDirection;
570
+ }
571
+ function velocity() {
572
+ return scrollVelocity;
573
+ }
574
+ function useBaseDuration() {
575
+ return useDuration(baseDuration);
576
+ }
577
+ function useBaseFriction() {
578
+ return useFriction(baseFriction);
579
+ }
580
+ function useDuration(n) {
581
+ scrollDuration = n;
582
+ return self;
583
+ }
584
+ function useFriction(n) {
585
+ scrollFriction = n;
586
+ return self;
587
+ }
588
+ const self = {
589
+ direction,
590
+ duration,
591
+ velocity,
592
+ seek,
593
+ settled,
594
+ useBaseFriction,
595
+ useBaseDuration,
596
+ useFriction,
597
+ useDuration
598
+ };
599
+ return self;
600
+ }
601
+
602
+ function ScrollBounds(limit, location, target, scrollBody, percentOfView) {
603
+ const pullBackThreshold = percentOfView.measure(10);
604
+ const edgeOffsetTolerance = percentOfView.measure(50);
605
+ const frictionLimit = Limit(0.1, 0.99);
606
+ let disabled = false;
607
+ function shouldConstrain() {
608
+ if (disabled) return false;
609
+ if (!limit.reachedAny(target.get())) return false;
610
+ if (!limit.reachedAny(location.get())) return false;
611
+ return true;
612
+ }
613
+ function constrain(pointerDown) {
614
+ if (!shouldConstrain()) return;
615
+ const edge = limit.reachedMin(location.get()) ? 'min' : 'max';
616
+ const diffToEdge = mathAbs(limit[edge] - location.get());
617
+ const diffToTarget = target.get() - location.get();
618
+ const friction = frictionLimit.constrain(diffToEdge / edgeOffsetTolerance);
619
+ target.subtract(diffToTarget * friction);
620
+ if (!pointerDown && mathAbs(diffToTarget) < pullBackThreshold) {
621
+ target.set(limit.constrain(target.get()));
622
+ scrollBody.useDuration(25).useBaseFriction();
623
+ }
624
+ }
625
+ function toggleActive(active) {
626
+ disabled = !active;
627
+ }
628
+ const self = {
629
+ shouldConstrain,
630
+ constrain,
631
+ toggleActive
632
+ };
633
+ return self;
634
+ }
635
+
636
+ function ScrollContain(viewSize, contentSize, snapsAligned, containScroll, pixelTolerance) {
637
+ const scrollBounds = Limit(-contentSize + viewSize, 0);
638
+ const snapsBounded = measureBounded();
639
+ const scrollContainLimit = findScrollContainLimit();
640
+ const snapsContained = measureContained();
641
+ function usePixelTolerance(bound, snap) {
642
+ return deltaAbs(bound, snap) <= 1;
643
+ }
644
+ function findScrollContainLimit() {
645
+ const startSnap = snapsBounded[0];
646
+ const endSnap = arrayLast(snapsBounded);
647
+ const min = snapsBounded.lastIndexOf(startSnap);
648
+ const max = snapsBounded.indexOf(endSnap) + 1;
649
+ return Limit(min, max);
650
+ }
651
+ function measureBounded() {
652
+ return snapsAligned.map((snapAligned, index) => {
653
+ const {
654
+ min,
655
+ max
656
+ } = scrollBounds;
657
+ const snap = scrollBounds.constrain(snapAligned);
658
+ const isFirst = !index;
659
+ const isLast = arrayIsLastIndex(snapsAligned, index);
660
+ if (isFirst) return max;
661
+ if (isLast) return min;
662
+ if (usePixelTolerance(min, snap)) return min;
663
+ if (usePixelTolerance(max, snap)) return max;
664
+ return snap;
665
+ }).map(scrollBound => parseFloat(scrollBound.toFixed(3)));
666
+ }
667
+ function measureContained() {
668
+ if (contentSize <= viewSize + pixelTolerance) return [scrollBounds.max];
669
+ if (containScroll === 'keepSnaps') return snapsBounded;
670
+ const {
671
+ min,
672
+ max
673
+ } = scrollContainLimit;
674
+ return snapsBounded.slice(min, max);
675
+ }
676
+ const self = {
677
+ snapsContained,
678
+ scrollContainLimit
679
+ };
680
+ return self;
681
+ }
682
+
683
+ function ScrollLimit(contentSize, scrollSnaps, loop) {
684
+ const max = scrollSnaps[0];
685
+ const min = loop ? max - contentSize : arrayLast(scrollSnaps);
686
+ const limit = Limit(min, max);
687
+ const self = {
688
+ limit
689
+ };
690
+ return self;
691
+ }
692
+
693
+ function ScrollLooper(contentSize, limit, location, vectors) {
694
+ const jointSafety = 0.1;
695
+ const min = limit.min + jointSafety;
696
+ const max = limit.max + jointSafety;
697
+ const {
698
+ reachedMin,
699
+ reachedMax
700
+ } = Limit(min, max);
701
+ function shouldLoop(direction) {
702
+ if (direction === 1) return reachedMax(location.get());
703
+ if (direction === -1) return reachedMin(location.get());
704
+ return false;
705
+ }
706
+ function loop(direction) {
707
+ if (!shouldLoop(direction)) return;
708
+ const loopDistance = contentSize * (direction * -1);
709
+ vectors.forEach(v => v.add(loopDistance));
710
+ }
711
+ const self = {
712
+ loop
713
+ };
714
+ return self;
715
+ }
716
+
717
+ function ScrollProgress(limit) {
718
+ const {
719
+ max,
720
+ length
721
+ } = limit;
722
+ function get(n) {
723
+ const currentLocation = n - max;
724
+ return length ? currentLocation / -length : 0;
725
+ }
726
+ const self = {
727
+ get
728
+ };
729
+ return self;
730
+ }
731
+
732
+ function ScrollSnaps(axis, alignment, containerRect, slideRects, slidesToScroll) {
733
+ const {
734
+ startEdge,
735
+ endEdge
736
+ } = axis;
737
+ const {
738
+ groupSlides
739
+ } = slidesToScroll;
740
+ const alignments = measureSizes().map(alignment.measure);
741
+ const snaps = measureUnaligned();
742
+ const snapsAligned = measureAligned();
743
+ function measureSizes() {
744
+ return groupSlides(slideRects).map(rects => arrayLast(rects)[endEdge] - rects[0][startEdge]).map(mathAbs);
745
+ }
746
+ function measureUnaligned() {
747
+ return slideRects.map(rect => containerRect[startEdge] - rect[startEdge]).map(snap => -mathAbs(snap));
748
+ }
749
+ function measureAligned() {
750
+ return groupSlides(snaps).map(g => g[0]).map((snap, index) => snap + alignments[index]);
751
+ }
752
+ const self = {
753
+ snaps,
754
+ snapsAligned
755
+ };
756
+ return self;
757
+ }
758
+
759
+ function SlideRegistry(containSnaps, containScroll, scrollSnaps, scrollContainLimit, slidesToScroll, slideIndexes) {
760
+ const {
761
+ groupSlides
762
+ } = slidesToScroll;
763
+ const {
764
+ min,
765
+ max
766
+ } = scrollContainLimit;
767
+ const slideRegistry = createSlideRegistry();
768
+ function createSlideRegistry() {
769
+ const groupedSlideIndexes = groupSlides(slideIndexes);
770
+ const doNotContain = !containSnaps || containScroll === 'keepSnaps';
771
+ if (scrollSnaps.length === 1) return [slideIndexes];
772
+ if (doNotContain) return groupedSlideIndexes;
773
+ return groupedSlideIndexes.slice(min, max).map((group, index, groups) => {
774
+ const isFirst = !index;
775
+ const isLast = arrayIsLastIndex(groups, index);
776
+ if (isFirst) {
777
+ const range = arrayLast(groups[0]) + 1;
778
+ return arrayFromNumber(range);
779
+ }
780
+ if (isLast) {
781
+ const range = arrayLastIndex(slideIndexes) - arrayLast(groups)[0] + 1;
782
+ return arrayFromNumber(range, arrayLast(groups)[0]);
783
+ }
784
+ return group;
785
+ });
786
+ }
787
+ const self = {
788
+ slideRegistry
789
+ };
790
+ return self;
791
+ }
792
+
793
+ function ScrollTarget(loop, scrollSnaps, contentSize, limit, targetVector) {
794
+ const {
795
+ reachedAny,
796
+ removeOffset,
797
+ constrain
798
+ } = limit;
799
+ function minDistance(distances) {
800
+ return distances.concat().sort((a, b) => mathAbs(a) - mathAbs(b))[0];
801
+ }
802
+ function findTargetSnap(target) {
803
+ const distance = loop ? removeOffset(target) : constrain(target);
804
+ const ascDiffsToSnaps = scrollSnaps.map((snap, index) => ({
805
+ diff: shortcut(snap - distance, 0),
806
+ index
807
+ })).sort((d1, d2) => mathAbs(d1.diff) - mathAbs(d2.diff));
808
+ const {
809
+ index
810
+ } = ascDiffsToSnaps[0];
811
+ return {
812
+ index,
813
+ distance
814
+ };
815
+ }
816
+ function shortcut(target, direction) {
817
+ const targets = [target, target + contentSize, target - contentSize];
818
+ if (!loop) return target;
819
+ if (!direction) return minDistance(targets);
820
+ const matchingTargets = targets.filter(t => mathSign(t) === direction);
821
+ if (matchingTargets.length) return minDistance(matchingTargets);
822
+ return arrayLast(targets) - contentSize;
823
+ }
824
+ function byIndex(index, direction) {
825
+ const diffToSnap = scrollSnaps[index] - targetVector.get();
826
+ const distance = shortcut(diffToSnap, direction);
827
+ return {
828
+ index,
829
+ distance
830
+ };
831
+ }
832
+ function byDistance(distance, snap) {
833
+ const target = targetVector.get() + distance;
834
+ const {
835
+ index,
836
+ distance: targetSnapDistance
837
+ } = findTargetSnap(target);
838
+ const reachedBound = !loop && reachedAny(target);
839
+ if (!snap || reachedBound) return {
840
+ index,
841
+ distance
842
+ };
843
+ const diffToSnap = scrollSnaps[index] - targetSnapDistance;
844
+ const snapDistance = distance + shortcut(diffToSnap, 0);
845
+ return {
846
+ index,
847
+ distance: snapDistance
848
+ };
849
+ }
850
+ const self = {
851
+ byDistance,
852
+ byIndex,
853
+ shortcut
854
+ };
855
+ return self;
856
+ }
857
+
858
+ function ScrollTo(animation, indexCurrent, indexPrevious, scrollBody, scrollTarget, targetVector, eventHandler) {
859
+ function scrollTo(target) {
860
+ const distanceDiff = target.distance;
861
+ const indexDiff = target.index !== indexCurrent.get();
862
+ targetVector.add(distanceDiff);
863
+ if (distanceDiff) {
864
+ if (scrollBody.duration()) {
865
+ animation.start();
866
+ } else {
867
+ animation.update();
868
+ animation.render(1);
869
+ animation.update();
870
+ }
871
+ }
872
+ if (indexDiff) {
873
+ indexPrevious.set(indexCurrent.get());
874
+ indexCurrent.set(target.index);
875
+ eventHandler.emit('select');
876
+ }
877
+ }
878
+ function distance(n, snap) {
879
+ const target = scrollTarget.byDistance(n, snap);
880
+ scrollTo(target);
881
+ }
882
+ function index(n, direction) {
883
+ const targetIndex = indexCurrent.clone().set(n);
884
+ const target = scrollTarget.byIndex(targetIndex.get(), direction);
885
+ scrollTo(target);
886
+ }
887
+ const self = {
888
+ distance,
889
+ index
890
+ };
891
+ return self;
892
+ }
893
+
894
+ function SlideFocus(root, slides, slideRegistry, scrollTo, scrollBody, eventStore, eventHandler, watchFocus) {
895
+ const focusListenerOptions = {
896
+ passive: true,
897
+ capture: true
898
+ };
899
+ let lastTabPressTime = 0;
900
+ function init(emblaApi) {
901
+ if (!watchFocus) return;
902
+ function defaultCallback(index) {
903
+ const nowTime = new Date().getTime();
904
+ const diffTime = nowTime - lastTabPressTime;
905
+ if (diffTime > 10) return;
906
+ eventHandler.emit('slideFocusStart');
907
+ root.scrollLeft = 0;
908
+ const group = slideRegistry.findIndex(group => group.includes(index));
909
+ if (!isNumber(group)) return;
910
+ scrollBody.useDuration(0);
911
+ scrollTo.index(group, 0);
912
+ eventHandler.emit('slideFocus');
913
+ }
914
+ eventStore.add(document, 'keydown', registerTabPress, false);
915
+ slides.forEach((slide, slideIndex) => {
916
+ eventStore.add(slide, 'focus', evt => {
917
+ if (isBoolean(watchFocus) || watchFocus(emblaApi, evt)) {
918
+ defaultCallback(slideIndex);
919
+ }
920
+ }, focusListenerOptions);
921
+ });
922
+ }
923
+ function registerTabPress(event) {
924
+ if (event.code === 'Tab') lastTabPressTime = new Date().getTime();
925
+ }
926
+ const self = {
927
+ init
928
+ };
929
+ return self;
930
+ }
931
+
932
+ function Vector1D(initialValue) {
933
+ let value = initialValue;
934
+ function get() {
935
+ return value;
936
+ }
937
+ function set(n) {
938
+ value = normalizeInput(n);
939
+ }
940
+ function add(n) {
941
+ value += normalizeInput(n);
942
+ }
943
+ function subtract(n) {
944
+ value -= normalizeInput(n);
945
+ }
946
+ function normalizeInput(n) {
947
+ return isNumber(n) ? n : n.get();
948
+ }
949
+ const self = {
950
+ get,
951
+ set,
952
+ add,
953
+ subtract
954
+ };
955
+ return self;
956
+ }
957
+
958
+ function Translate(axis, container) {
959
+ const translate = axis.scroll === 'x' ? x : y;
960
+ const containerStyle = container.style;
961
+ let previousTarget = null;
962
+ let disabled = false;
963
+ function x(n) {
964
+ return `translate3d(${n}px,0px,0px)`;
965
+ }
966
+ function y(n) {
967
+ return `translate3d(0px,${n}px,0px)`;
968
+ }
969
+ function to(target) {
970
+ if (disabled) return;
971
+ const newTarget = roundToTwoDecimals(axis.direction(target));
972
+ if (newTarget === previousTarget) return;
973
+ containerStyle.transform = translate(newTarget);
974
+ previousTarget = newTarget;
975
+ }
976
+ function toggleActive(active) {
977
+ disabled = !active;
978
+ }
979
+ function clear() {
980
+ if (disabled) return;
981
+ containerStyle.transform = '';
982
+ if (!container.getAttribute('style')) container.removeAttribute('style');
983
+ }
984
+ const self = {
985
+ clear,
986
+ to,
987
+ toggleActive
988
+ };
989
+ return self;
990
+ }
991
+
992
+ function SlideLooper(axis, viewSize, contentSize, slideSizes, slideSizesWithGaps, snaps, scrollSnaps, location, slides) {
993
+ const roundingSafety = 0.5;
994
+ const ascItems = arrayKeys(slideSizesWithGaps);
995
+ const descItems = arrayKeys(slideSizesWithGaps).reverse();
996
+ const loopPoints = startPoints().concat(endPoints());
997
+ function removeSlideSizes(indexes, from) {
998
+ return indexes.reduce((a, i) => {
999
+ return a - slideSizesWithGaps[i];
1000
+ }, from);
1001
+ }
1002
+ function slidesInGap(indexes, gap) {
1003
+ return indexes.reduce((a, i) => {
1004
+ const remainingGap = removeSlideSizes(a, gap);
1005
+ return remainingGap > 0 ? a.concat([i]) : a;
1006
+ }, []);
1007
+ }
1008
+ function findSlideBounds(offset) {
1009
+ return snaps.map((snap, index) => ({
1010
+ start: snap - slideSizes[index] + roundingSafety + offset,
1011
+ end: snap + viewSize - roundingSafety + offset
1012
+ }));
1013
+ }
1014
+ function findLoopPoints(indexes, offset, isEndEdge) {
1015
+ const slideBounds = findSlideBounds(offset);
1016
+ return indexes.map(index => {
1017
+ const initial = isEndEdge ? 0 : -contentSize;
1018
+ const altered = isEndEdge ? contentSize : 0;
1019
+ const boundEdge = isEndEdge ? 'end' : 'start';
1020
+ const loopPoint = slideBounds[index][boundEdge];
1021
+ return {
1022
+ index,
1023
+ loopPoint,
1024
+ slideLocation: Vector1D(-1),
1025
+ translate: Translate(axis, slides[index]),
1026
+ target: () => location.get() > loopPoint ? initial : altered
1027
+ };
1028
+ });
1029
+ }
1030
+ function startPoints() {
1031
+ const gap = scrollSnaps[0];
1032
+ const indexes = slidesInGap(descItems, gap);
1033
+ return findLoopPoints(indexes, contentSize, false);
1034
+ }
1035
+ function endPoints() {
1036
+ const gap = viewSize - scrollSnaps[0] - 1;
1037
+ const indexes = slidesInGap(ascItems, gap);
1038
+ return findLoopPoints(indexes, -contentSize, true);
1039
+ }
1040
+ function canLoop() {
1041
+ return loopPoints.every(({
1042
+ index
1043
+ }) => {
1044
+ const otherIndexes = ascItems.filter(i => i !== index);
1045
+ return removeSlideSizes(otherIndexes, viewSize) <= 0.1;
1046
+ });
1047
+ }
1048
+ function loop() {
1049
+ loopPoints.forEach(loopPoint => {
1050
+ const {
1051
+ target,
1052
+ translate,
1053
+ slideLocation
1054
+ } = loopPoint;
1055
+ const shiftLocation = target();
1056
+ if (shiftLocation === slideLocation.get()) return;
1057
+ translate.to(shiftLocation);
1058
+ slideLocation.set(shiftLocation);
1059
+ });
1060
+ }
1061
+ function clear() {
1062
+ loopPoints.forEach(loopPoint => loopPoint.translate.clear());
1063
+ }
1064
+ const self = {
1065
+ canLoop,
1066
+ clear,
1067
+ loop,
1068
+ loopPoints
1069
+ };
1070
+ return self;
1071
+ }
1072
+
1073
+ function SlidesHandler(container, eventHandler, watchSlides) {
1074
+ let mutationObserver;
1075
+ let destroyed = false;
1076
+ function init(emblaApi) {
1077
+ if (!watchSlides) return;
1078
+ function defaultCallback(mutations) {
1079
+ for (const mutation of mutations) {
1080
+ if (mutation.type === 'childList') {
1081
+ emblaApi.reInit();
1082
+ eventHandler.emit('slidesChanged');
1083
+ break;
1084
+ }
1085
+ }
1086
+ }
1087
+ mutationObserver = new MutationObserver(mutations => {
1088
+ if (destroyed) return;
1089
+ if (isBoolean(watchSlides) || watchSlides(emblaApi, mutations)) {
1090
+ defaultCallback(mutations);
1091
+ }
1092
+ });
1093
+ mutationObserver.observe(container, {
1094
+ childList: true
1095
+ });
1096
+ }
1097
+ function destroy() {
1098
+ if (mutationObserver) mutationObserver.disconnect();
1099
+ destroyed = true;
1100
+ }
1101
+ const self = {
1102
+ init,
1103
+ destroy
1104
+ };
1105
+ return self;
1106
+ }
1107
+
1108
+ function SlidesInView(container, slides, eventHandler, threshold) {
1109
+ const intersectionEntryMap = {};
1110
+ let inViewCache = null;
1111
+ let notInViewCache = null;
1112
+ let intersectionObserver;
1113
+ let destroyed = false;
1114
+ function init() {
1115
+ intersectionObserver = new IntersectionObserver(entries => {
1116
+ if (destroyed) return;
1117
+ entries.forEach(entry => {
1118
+ const index = slides.indexOf(entry.target);
1119
+ intersectionEntryMap[index] = entry;
1120
+ });
1121
+ inViewCache = null;
1122
+ notInViewCache = null;
1123
+ eventHandler.emit('slidesInView');
1124
+ }, {
1125
+ root: container.parentElement,
1126
+ threshold
1127
+ });
1128
+ slides.forEach(slide => intersectionObserver.observe(slide));
1129
+ }
1130
+ function destroy() {
1131
+ if (intersectionObserver) intersectionObserver.disconnect();
1132
+ destroyed = true;
1133
+ }
1134
+ function createInViewList(inView) {
1135
+ return objectKeys(intersectionEntryMap).reduce((list, slideIndex) => {
1136
+ const index = parseInt(slideIndex);
1137
+ const {
1138
+ isIntersecting
1139
+ } = intersectionEntryMap[index];
1140
+ const inViewMatch = inView && isIntersecting;
1141
+ const notInViewMatch = !inView && !isIntersecting;
1142
+ if (inViewMatch || notInViewMatch) list.push(index);
1143
+ return list;
1144
+ }, []);
1145
+ }
1146
+ function get(inView = true) {
1147
+ if (inView && inViewCache) return inViewCache;
1148
+ if (!inView && notInViewCache) return notInViewCache;
1149
+ const slideIndexes = createInViewList(inView);
1150
+ if (inView) inViewCache = slideIndexes;
1151
+ if (!inView) notInViewCache = slideIndexes;
1152
+ return slideIndexes;
1153
+ }
1154
+ const self = {
1155
+ init,
1156
+ destroy,
1157
+ get
1158
+ };
1159
+ return self;
1160
+ }
1161
+
1162
+ function SlideSizes(axis, containerRect, slideRects, slides, readEdgeGap, ownerWindow) {
1163
+ const {
1164
+ measureSize,
1165
+ startEdge,
1166
+ endEdge
1167
+ } = axis;
1168
+ const withEdgeGap = slideRects[0] && readEdgeGap;
1169
+ const startGap = measureStartGap();
1170
+ const endGap = measureEndGap();
1171
+ const slideSizes = slideRects.map(measureSize);
1172
+ const slideSizesWithGaps = measureWithGaps();
1173
+ function measureStartGap() {
1174
+ if (!withEdgeGap) return 0;
1175
+ const slideRect = slideRects[0];
1176
+ return mathAbs(containerRect[startEdge] - slideRect[startEdge]);
1177
+ }
1178
+ function measureEndGap() {
1179
+ if (!withEdgeGap) return 0;
1180
+ const style = ownerWindow.getComputedStyle(arrayLast(slides));
1181
+ return parseFloat(style.getPropertyValue(`margin-${endEdge}`));
1182
+ }
1183
+ function measureWithGaps() {
1184
+ return slideRects.map((rect, index, rects) => {
1185
+ const isFirst = !index;
1186
+ const isLast = arrayIsLastIndex(rects, index);
1187
+ if (isFirst) return slideSizes[index] + startGap;
1188
+ if (isLast) return slideSizes[index] + endGap;
1189
+ return rects[index + 1][startEdge] - rect[startEdge];
1190
+ }).map(mathAbs);
1191
+ }
1192
+ const self = {
1193
+ slideSizes,
1194
+ slideSizesWithGaps,
1195
+ startGap,
1196
+ endGap
1197
+ };
1198
+ return self;
1199
+ }
1200
+
1201
+ function SlidesToScroll(axis, viewSize, slidesToScroll, loop, containerRect, slideRects, startGap, endGap, pixelTolerance) {
1202
+ const {
1203
+ startEdge,
1204
+ endEdge,
1205
+ direction
1206
+ } = axis;
1207
+ const groupByNumber = isNumber(slidesToScroll);
1208
+ function byNumber(array, groupSize) {
1209
+ return arrayKeys(array).filter(i => i % groupSize === 0).map(i => array.slice(i, i + groupSize));
1210
+ }
1211
+ function bySize(array) {
1212
+ if (!array.length) return [];
1213
+ return arrayKeys(array).reduce((groups, rectB, index) => {
1214
+ const rectA = arrayLast(groups) || 0;
1215
+ const isFirst = rectA === 0;
1216
+ const isLast = rectB === arrayLastIndex(array);
1217
+ const edgeA = containerRect[startEdge] - slideRects[rectA][startEdge];
1218
+ const edgeB = containerRect[startEdge] - slideRects[rectB][endEdge];
1219
+ const gapA = !loop && isFirst ? direction(startGap) : 0;
1220
+ const gapB = !loop && isLast ? direction(endGap) : 0;
1221
+ const chunkSize = mathAbs(edgeB - gapB - (edgeA + gapA));
1222
+ if (index && chunkSize > viewSize + pixelTolerance) groups.push(rectB);
1223
+ if (isLast) groups.push(array.length);
1224
+ return groups;
1225
+ }, []).map((currentSize, index, groups) => {
1226
+ const previousSize = Math.max(groups[index - 1] || 0);
1227
+ return array.slice(previousSize, currentSize);
1228
+ });
1229
+ }
1230
+ function groupSlides(array) {
1231
+ return groupByNumber ? byNumber(array, slidesToScroll) : bySize(array);
1232
+ }
1233
+ const self = {
1234
+ groupSlides
1235
+ };
1236
+ return self;
1237
+ }
1238
+
1239
+ function Engine(root, container, slides, ownerDocument, ownerWindow, options, eventHandler) {
1240
+ // Options
1241
+ const {
1242
+ align,
1243
+ axis: scrollAxis,
1244
+ direction,
1245
+ startIndex,
1246
+ loop,
1247
+ duration,
1248
+ dragFree,
1249
+ dragThreshold,
1250
+ inViewThreshold,
1251
+ slidesToScroll: groupSlides,
1252
+ skipSnaps,
1253
+ containScroll,
1254
+ watchResize,
1255
+ watchSlides,
1256
+ watchDrag,
1257
+ watchFocus
1258
+ } = options;
1259
+ // Measurements
1260
+ const pixelTolerance = 2;
1261
+ const nodeRects = NodeRects();
1262
+ const containerRect = nodeRects.measure(container);
1263
+ const slideRects = slides.map(nodeRects.measure);
1264
+ const axis = Axis(scrollAxis, direction);
1265
+ const viewSize = axis.measureSize(containerRect);
1266
+ const percentOfView = PercentOfView(viewSize);
1267
+ const alignment = Alignment(align, viewSize);
1268
+ const containSnaps = !loop && !!containScroll;
1269
+ const readEdgeGap = loop || !!containScroll;
1270
+ const {
1271
+ slideSizes,
1272
+ slideSizesWithGaps,
1273
+ startGap,
1274
+ endGap
1275
+ } = SlideSizes(axis, containerRect, slideRects, slides, readEdgeGap, ownerWindow);
1276
+ const slidesToScroll = SlidesToScroll(axis, viewSize, groupSlides, loop, containerRect, slideRects, startGap, endGap, pixelTolerance);
1277
+ const {
1278
+ snaps,
1279
+ snapsAligned
1280
+ } = ScrollSnaps(axis, alignment, containerRect, slideRects, slidesToScroll);
1281
+ const contentSize = -arrayLast(snaps) + arrayLast(slideSizesWithGaps);
1282
+ const {
1283
+ snapsContained,
1284
+ scrollContainLimit
1285
+ } = ScrollContain(viewSize, contentSize, snapsAligned, containScroll, pixelTolerance);
1286
+ const scrollSnaps = containSnaps ? snapsContained : snapsAligned;
1287
+ const {
1288
+ limit
1289
+ } = ScrollLimit(contentSize, scrollSnaps, loop);
1290
+ // Indexes
1291
+ const index = Counter(arrayLastIndex(scrollSnaps), startIndex, loop);
1292
+ const indexPrevious = index.clone();
1293
+ const slideIndexes = arrayKeys(slides);
1294
+ // Animation
1295
+ const update = ({
1296
+ dragHandler,
1297
+ scrollBody,
1298
+ scrollBounds,
1299
+ options: {
1300
+ loop
1301
+ }
1302
+ }) => {
1303
+ if (!loop) scrollBounds.constrain(dragHandler.pointerDown());
1304
+ scrollBody.seek();
1305
+ };
1306
+ const render = ({
1307
+ scrollBody,
1308
+ translate,
1309
+ location,
1310
+ offsetLocation,
1311
+ previousLocation,
1312
+ scrollLooper,
1313
+ slideLooper,
1314
+ dragHandler,
1315
+ animation,
1316
+ eventHandler,
1317
+ scrollBounds,
1318
+ options: {
1319
+ loop
1320
+ }
1321
+ }, alpha) => {
1322
+ const shouldSettle = scrollBody.settled();
1323
+ const withinBounds = !scrollBounds.shouldConstrain();
1324
+ const hasSettled = loop ? shouldSettle : shouldSettle && withinBounds;
1325
+ const hasSettledAndIdle = hasSettled && !dragHandler.pointerDown();
1326
+ if (hasSettledAndIdle) animation.stop();
1327
+ const interpolatedLocation = location.get() * alpha + previousLocation.get() * (1 - alpha);
1328
+ offsetLocation.set(interpolatedLocation);
1329
+ if (loop) {
1330
+ scrollLooper.loop(scrollBody.direction());
1331
+ slideLooper.loop();
1332
+ }
1333
+ translate.to(offsetLocation.get());
1334
+ if (hasSettledAndIdle) eventHandler.emit('settle');
1335
+ if (!hasSettled) eventHandler.emit('scroll');
1336
+ };
1337
+ const animation = Animations(ownerDocument, ownerWindow, () => update(engine), alpha => render(engine, alpha));
1338
+ // Shared
1339
+ const friction = 0.68;
1340
+ const startLocation = scrollSnaps[index.get()];
1341
+ const location = Vector1D(startLocation);
1342
+ const previousLocation = Vector1D(startLocation);
1343
+ const offsetLocation = Vector1D(startLocation);
1344
+ const target = Vector1D(startLocation);
1345
+ const scrollBody = ScrollBody(location, offsetLocation, previousLocation, target, duration, friction);
1346
+ const scrollTarget = ScrollTarget(loop, scrollSnaps, contentSize, limit, target);
1347
+ const scrollTo = ScrollTo(animation, index, indexPrevious, scrollBody, scrollTarget, target, eventHandler);
1348
+ const scrollProgress = ScrollProgress(limit);
1349
+ const eventStore = EventStore();
1350
+ const slidesInView = SlidesInView(container, slides, eventHandler, inViewThreshold);
1351
+ const {
1352
+ slideRegistry
1353
+ } = SlideRegistry(containSnaps, containScroll, scrollSnaps, scrollContainLimit, slidesToScroll, slideIndexes);
1354
+ const slideFocus = SlideFocus(root, slides, slideRegistry, scrollTo, scrollBody, eventStore, eventHandler, watchFocus);
1355
+ // Engine
1356
+ const engine = {
1357
+ ownerDocument,
1358
+ ownerWindow,
1359
+ eventHandler,
1360
+ containerRect,
1361
+ slideRects,
1362
+ animation,
1363
+ axis,
1364
+ dragHandler: DragHandler(axis, root, ownerDocument, ownerWindow, target, DragTracker(axis, ownerWindow), location, animation, scrollTo, scrollBody, scrollTarget, index, eventHandler, percentOfView, dragFree, dragThreshold, skipSnaps, friction, watchDrag),
1365
+ eventStore,
1366
+ percentOfView,
1367
+ index,
1368
+ indexPrevious,
1369
+ limit,
1370
+ location,
1371
+ offsetLocation,
1372
+ previousLocation,
1373
+ options,
1374
+ resizeHandler: ResizeHandler(container, eventHandler, ownerWindow, slides, axis, watchResize, nodeRects),
1375
+ scrollBody,
1376
+ scrollBounds: ScrollBounds(limit, offsetLocation, target, scrollBody, percentOfView),
1377
+ scrollLooper: ScrollLooper(contentSize, limit, offsetLocation, [location, offsetLocation, previousLocation, target]),
1378
+ scrollProgress,
1379
+ scrollSnapList: scrollSnaps.map(scrollProgress.get),
1380
+ scrollSnaps,
1381
+ scrollTarget,
1382
+ scrollTo,
1383
+ slideLooper: SlideLooper(axis, viewSize, contentSize, slideSizes, slideSizesWithGaps, snaps, scrollSnaps, offsetLocation, slides),
1384
+ slideFocus,
1385
+ slidesHandler: SlidesHandler(container, eventHandler, watchSlides),
1386
+ slidesInView,
1387
+ slideIndexes,
1388
+ slideRegistry,
1389
+ slidesToScroll,
1390
+ target,
1391
+ translate: Translate(axis, container)
1392
+ };
1393
+ return engine;
1394
+ }
1395
+
1396
+ function EventHandler() {
1397
+ let listeners = {};
1398
+ let api;
1399
+ function init(emblaApi) {
1400
+ api = emblaApi;
1401
+ }
1402
+ function getListeners(evt) {
1403
+ return listeners[evt] || [];
1404
+ }
1405
+ function emit(evt) {
1406
+ getListeners(evt).forEach(e => e(api, evt));
1407
+ return self;
1408
+ }
1409
+ function on(evt, cb) {
1410
+ listeners[evt] = getListeners(evt).concat([cb]);
1411
+ return self;
1412
+ }
1413
+ function off(evt, cb) {
1414
+ listeners[evt] = getListeners(evt).filter(e => e !== cb);
1415
+ return self;
1416
+ }
1417
+ function clear() {
1418
+ listeners = {};
1419
+ }
1420
+ const self = {
1421
+ init,
1422
+ emit,
1423
+ off,
1424
+ on,
1425
+ clear
1426
+ };
1427
+ return self;
1428
+ }
1429
+
1430
+ const defaultOptions = {
1431
+ align: 'center',
1432
+ axis: 'x',
1433
+ container: null,
1434
+ slides: null,
1435
+ containScroll: 'trimSnaps',
1436
+ direction: 'ltr',
1437
+ slidesToScroll: 1,
1438
+ inViewThreshold: 0,
1439
+ breakpoints: {},
1440
+ dragFree: false,
1441
+ dragThreshold: 10,
1442
+ loop: false,
1443
+ skipSnaps: false,
1444
+ duration: 25,
1445
+ startIndex: 0,
1446
+ active: true,
1447
+ watchDrag: true,
1448
+ watchResize: true,
1449
+ watchSlides: true,
1450
+ watchFocus: true
1451
+ };
1452
+
1453
+ function OptionsHandler(ownerWindow) {
1454
+ function mergeOptions(optionsA, optionsB) {
1455
+ return objectsMergeDeep(optionsA, optionsB || {});
1456
+ }
1457
+ function optionsAtMedia(options) {
1458
+ const optionsAtMedia = options.breakpoints || {};
1459
+ const matchedMediaOptions = objectKeys(optionsAtMedia).filter(media => ownerWindow.matchMedia(media).matches).map(media => optionsAtMedia[media]).reduce((a, mediaOption) => mergeOptions(a, mediaOption), {});
1460
+ return mergeOptions(options, matchedMediaOptions);
1461
+ }
1462
+ function optionsMediaQueries(optionsList) {
1463
+ return optionsList.map(options => objectKeys(options.breakpoints || {})).reduce((acc, mediaQueries) => acc.concat(mediaQueries), []).map(ownerWindow.matchMedia);
1464
+ }
1465
+ const self = {
1466
+ mergeOptions,
1467
+ optionsAtMedia,
1468
+ optionsMediaQueries
1469
+ };
1470
+ return self;
1471
+ }
1472
+
1473
+ function PluginsHandler(optionsHandler) {
1474
+ let activePlugins = [];
1475
+ function init(emblaApi, plugins) {
1476
+ activePlugins = plugins.filter(({
1477
+ options
1478
+ }) => optionsHandler.optionsAtMedia(options).active !== false);
1479
+ activePlugins.forEach(plugin => plugin.init(emblaApi, optionsHandler));
1480
+ return plugins.reduce((map, plugin) => Object.assign(map, {
1481
+ [plugin.name]: plugin
1482
+ }), {});
1483
+ }
1484
+ function destroy() {
1485
+ activePlugins = activePlugins.filter(plugin => plugin.destroy());
1486
+ }
1487
+ const self = {
1488
+ init,
1489
+ destroy
1490
+ };
1491
+ return self;
1492
+ }
1493
+
1494
+ function EmblaCarousel(root, userOptions, userPlugins) {
1495
+ const ownerDocument = root.ownerDocument;
1496
+ const ownerWindow = ownerDocument.defaultView;
1497
+ const optionsHandler = OptionsHandler(ownerWindow);
1498
+ const pluginsHandler = PluginsHandler(optionsHandler);
1499
+ const mediaHandlers = EventStore();
1500
+ const eventHandler = EventHandler();
1501
+ const {
1502
+ mergeOptions,
1503
+ optionsAtMedia,
1504
+ optionsMediaQueries
1505
+ } = optionsHandler;
1506
+ const {
1507
+ on,
1508
+ off,
1509
+ emit
1510
+ } = eventHandler;
1511
+ const reInit = reActivate;
1512
+ let destroyed = false;
1513
+ let engine;
1514
+ let optionsBase = mergeOptions(defaultOptions, EmblaCarousel.globalOptions);
1515
+ let options = mergeOptions(optionsBase);
1516
+ let pluginList = [];
1517
+ let pluginApis;
1518
+ let container;
1519
+ let slides;
1520
+ function storeElements() {
1521
+ const {
1522
+ container: userContainer,
1523
+ slides: userSlides
1524
+ } = options;
1525
+ const customContainer = isString(userContainer) ? root.querySelector(userContainer) : userContainer;
1526
+ container = customContainer || root.children[0];
1527
+ const customSlides = isString(userSlides) ? container.querySelectorAll(userSlides) : userSlides;
1528
+ slides = [].slice.call(customSlides || container.children);
1529
+ }
1530
+ function createEngine(options) {
1531
+ const engine = Engine(root, container, slides, ownerDocument, ownerWindow, options, eventHandler);
1532
+ if (options.loop && !engine.slideLooper.canLoop()) {
1533
+ const optionsWithoutLoop = Object.assign({}, options, {
1534
+ loop: false
1535
+ });
1536
+ return createEngine(optionsWithoutLoop);
1537
+ }
1538
+ return engine;
1539
+ }
1540
+ function activate(withOptions, withPlugins) {
1541
+ if (destroyed) return;
1542
+ optionsBase = mergeOptions(optionsBase, withOptions);
1543
+ options = optionsAtMedia(optionsBase);
1544
+ pluginList = withPlugins || pluginList;
1545
+ storeElements();
1546
+ engine = createEngine(options);
1547
+ optionsMediaQueries([optionsBase, ...pluginList.map(({
1548
+ options
1549
+ }) => options)]).forEach(query => mediaHandlers.add(query, 'change', reActivate));
1550
+ if (!options.active) return;
1551
+ engine.translate.to(engine.location.get());
1552
+ engine.animation.init();
1553
+ engine.slidesInView.init();
1554
+ engine.slideFocus.init(self);
1555
+ engine.eventHandler.init(self);
1556
+ engine.resizeHandler.init(self);
1557
+ engine.slidesHandler.init(self);
1558
+ if (engine.options.loop) engine.slideLooper.loop();
1559
+ if (container.offsetParent && slides.length) engine.dragHandler.init(self);
1560
+ pluginApis = pluginsHandler.init(self, pluginList);
1561
+ }
1562
+ function reActivate(withOptions, withPlugins) {
1563
+ const startIndex = selectedScrollSnap();
1564
+ deActivate();
1565
+ activate(mergeOptions({
1566
+ startIndex
1567
+ }, withOptions), withPlugins);
1568
+ eventHandler.emit('reInit');
1569
+ }
1570
+ function deActivate() {
1571
+ engine.dragHandler.destroy();
1572
+ engine.eventStore.clear();
1573
+ engine.translate.clear();
1574
+ engine.slideLooper.clear();
1575
+ engine.resizeHandler.destroy();
1576
+ engine.slidesHandler.destroy();
1577
+ engine.slidesInView.destroy();
1578
+ engine.animation.destroy();
1579
+ pluginsHandler.destroy();
1580
+ mediaHandlers.clear();
1581
+ }
1582
+ function destroy() {
1583
+ if (destroyed) return;
1584
+ destroyed = true;
1585
+ mediaHandlers.clear();
1586
+ deActivate();
1587
+ eventHandler.emit('destroy');
1588
+ eventHandler.clear();
1589
+ }
1590
+ function scrollTo(index, jump, direction) {
1591
+ if (!options.active || destroyed) return;
1592
+ engine.scrollBody.useBaseFriction().useDuration(jump === true ? 0 : options.duration);
1593
+ engine.scrollTo.index(index, direction || 0);
1594
+ }
1595
+ function scrollNext(jump) {
1596
+ const next = engine.index.add(1).get();
1597
+ scrollTo(next, jump, -1);
1598
+ }
1599
+ function scrollPrev(jump) {
1600
+ const prev = engine.index.add(-1).get();
1601
+ scrollTo(prev, jump, 1);
1602
+ }
1603
+ function canScrollNext() {
1604
+ const next = engine.index.add(1).get();
1605
+ return next !== selectedScrollSnap();
1606
+ }
1607
+ function canScrollPrev() {
1608
+ const prev = engine.index.add(-1).get();
1609
+ return prev !== selectedScrollSnap();
1610
+ }
1611
+ function scrollSnapList() {
1612
+ return engine.scrollSnapList;
1613
+ }
1614
+ function scrollProgress() {
1615
+ return engine.scrollProgress.get(engine.offsetLocation.get());
1616
+ }
1617
+ function selectedScrollSnap() {
1618
+ return engine.index.get();
1619
+ }
1620
+ function previousScrollSnap() {
1621
+ return engine.indexPrevious.get();
1622
+ }
1623
+ function slidesInView() {
1624
+ return engine.slidesInView.get();
1625
+ }
1626
+ function slidesNotInView() {
1627
+ return engine.slidesInView.get(false);
1628
+ }
1629
+ function plugins() {
1630
+ return pluginApis;
1631
+ }
1632
+ function internalEngine() {
1633
+ return engine;
1634
+ }
1635
+ function rootNode() {
1636
+ return root;
1637
+ }
1638
+ function containerNode() {
1639
+ return container;
1640
+ }
1641
+ function slideNodes() {
1642
+ return slides;
1643
+ }
1644
+ const self = {
1645
+ canScrollNext,
1646
+ canScrollPrev,
1647
+ containerNode,
1648
+ internalEngine,
1649
+ destroy,
1650
+ off,
1651
+ on,
1652
+ emit,
1653
+ plugins,
1654
+ previousScrollSnap,
1655
+ reInit,
1656
+ rootNode,
1657
+ scrollNext,
1658
+ scrollPrev,
1659
+ scrollProgress,
1660
+ scrollSnapList,
1661
+ scrollTo,
1662
+ selectedScrollSnap,
1663
+ slideNodes,
1664
+ slidesInView,
1665
+ slidesNotInView
1666
+ };
1667
+ activate(userOptions, userPlugins);
1668
+ setTimeout(() => eventHandler.emit('init'), 0);
1669
+ return self;
1670
+ }
1671
+ EmblaCarousel.globalOptions = undefined;
1672
+
1673
+ const sekiCarouselCss = ":host{--seki-carousel-gap:1rem;--seki-carousel-arrow-size:2.5rem;--seki-carousel-arrow-bg:rgba(255, 255, 255, 0.8);--seki-carousel-arrow-bg-hover:rgba(255, 255, 255, 0.95);--seki-carousel-arrow-color:var(--seki-color-foreground, #0f172a);--seki-carousel-dot-size:0.5rem;--seki-carousel-dot-active-size:0.625rem;--seki-carousel-dot-gap:0.5rem;--seki-carousel-dot-color:var(--seki-color-muted, #94a3b8);--seki-carousel-dot-active-color:var(--seki-color-primary, #0f172a);display:block;position:relative;width:100%}:host(:focus){outline:none}:host(:focus-visible){outline:2px solid var(--seki-color-ring, #3b82f6);outline-offset:2px;border-radius:var(--seki-radius-md, 0.375rem)}.carousel__container{position:relative;width:100%}.carousel__live-region{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}:host([data-theme=\"dark\"]),:host-context([data-theme=\"dark\"]){--seki-carousel-arrow-bg:rgba(30, 41, 59, 0.8);--seki-carousel-arrow-bg-hover:rgba(30, 41, 59, 0.95);--seki-carousel-arrow-color:#f8fafc;--seki-carousel-dot-color:#64748b;--seki-carousel-dot-active-color:#f8fafc}@media (prefers-reduced-motion: reduce){:host *{transition:none !important;animation:none !important}}";
1674
+
1675
+ const SekiCarousel = class {
1676
+ constructor(hostRef) {
1677
+ index.registerInstance(this, hostRef);
1678
+ this.slideChange = index.createEvent(this, "seki-slide-change");
1679
+ // =========================================================================
1680
+ // Props
1681
+ // =========================================================================
1682
+ /** Enable infinite loop scrolling */
1683
+ this.loop = false;
1684
+ /** Enable autoplay */
1685
+ this.autoplay = false;
1686
+ /** Autoplay delay in milliseconds */
1687
+ this.autoplayDelay = 4000;
1688
+ /** Pause autoplay on hover */
1689
+ this.pauseOnHover = true;
1690
+ /** Number of slides to scroll at once */
1691
+ this.slidesToScroll = 1;
1692
+ /** Initial slide index */
1693
+ this.startIndex = 0;
1694
+ /** Enable momentum/free scrolling */
1695
+ this.dragFree = false;
1696
+ /** Accessible label for the carousel */
1697
+ this.ariaLabel = 'Carousel';
1698
+ // =========================================================================
1699
+ // State
1700
+ // =========================================================================
1701
+ /** Currently selected slide index */
1702
+ this.selectedIndex = 0;
1703
+ /** Total number of scroll snaps */
1704
+ this.scrollSnapCount = 0;
1705
+ /** Whether can scroll to previous */
1706
+ this.canScrollPrev = false;
1707
+ /** Whether can scroll to next */
1708
+ this.canScrollNext = false;
1709
+ /** Whether autoplay is currently paused */
1710
+ this.autoplayPaused = false;
1711
+ // =========================================================================
1712
+ // Private
1713
+ // =========================================================================
1714
+ this.emblaApi = null;
1715
+ this.autoplayInterval = null;
1716
+ this.viewportEl = null;
1717
+ this.handleSelect = () => {
1718
+ this.updateState();
1719
+ this.slideChange.emit({
1720
+ index: this.selectedIndex,
1721
+ total: this.scrollSnapCount,
1722
+ });
1723
+ };
1724
+ this.handleReInit = () => {
1725
+ this.updateState();
1726
+ };
1727
+ this.handlePointerDown = () => {
1728
+ if (this.autoplay) {
1729
+ this.pauseAutoplay();
1730
+ }
1731
+ };
1732
+ this.handlePointerUp = () => {
1733
+ if (this.autoplay && this.autoplayPaused) {
1734
+ this.resumeAutoplay();
1735
+ }
1736
+ };
1737
+ this.handleMouseEnter = () => {
1738
+ if (this.autoplay && this.pauseOnHover) {
1739
+ this.pauseAutoplay();
1740
+ }
1741
+ };
1742
+ this.handleMouseLeave = () => {
1743
+ if (this.autoplay && this.pauseOnHover && this.autoplayPaused) {
1744
+ this.resumeAutoplay();
1745
+ }
1746
+ };
1747
+ this.handleFocusIn = () => {
1748
+ if (this.autoplay) {
1749
+ this.pauseAutoplay();
1750
+ }
1751
+ };
1752
+ this.handleFocusOut = (event) => {
1753
+ // Only resume if focus is leaving the carousel entirely
1754
+ if (this.autoplay && !this.el.contains(event.relatedTarget)) {
1755
+ this.resumeAutoplay();
1756
+ }
1757
+ };
1758
+ this.handleKeyDown = (event) => {
1759
+ var _a, _b, _c, _d;
1760
+ switch (event.key) {
1761
+ case 'ArrowLeft':
1762
+ event.preventDefault();
1763
+ (_a = this.emblaApi) === null || _a === void 0 ? void 0 : _a.scrollPrev();
1764
+ break;
1765
+ case 'ArrowRight':
1766
+ event.preventDefault();
1767
+ (_b = this.emblaApi) === null || _b === void 0 ? void 0 : _b.scrollNext();
1768
+ break;
1769
+ case 'Home':
1770
+ event.preventDefault();
1771
+ (_c = this.emblaApi) === null || _c === void 0 ? void 0 : _c.scrollTo(0);
1772
+ break;
1773
+ case 'End':
1774
+ event.preventDefault();
1775
+ (_d = this.emblaApi) === null || _d === void 0 ? void 0 : _d.scrollTo(this.scrollSnapCount - 1);
1776
+ break;
1777
+ }
1778
+ };
1779
+ }
1780
+ // =========================================================================
1781
+ // Lifecycle
1782
+ // =========================================================================
1783
+ componentDidLoad() {
1784
+ this.initEmbla();
1785
+ }
1786
+ disconnectedCallback() {
1787
+ var _a;
1788
+ this.stopAutoplay();
1789
+ (_a = this.emblaApi) === null || _a === void 0 ? void 0 : _a.destroy();
1790
+ }
1791
+ // =========================================================================
1792
+ // Watchers
1793
+ // =========================================================================
1794
+ handleAutoplayChange(newValue) {
1795
+ if (newValue) {
1796
+ this.startAutoplay();
1797
+ }
1798
+ else {
1799
+ this.stopAutoplay();
1800
+ }
1801
+ }
1802
+ handleOptionsChange() {
1803
+ var _a;
1804
+ // Reinitialize Embla with new options
1805
+ (_a = this.emblaApi) === null || _a === void 0 ? void 0 : _a.destroy();
1806
+ this.initEmbla();
1807
+ }
1808
+ // =========================================================================
1809
+ // Public Methods
1810
+ // =========================================================================
1811
+ /** Scroll to the previous slide */
1812
+ async scrollPrev() {
1813
+ var _a;
1814
+ (_a = this.emblaApi) === null || _a === void 0 ? void 0 : _a.scrollPrev();
1815
+ }
1816
+ /** Scroll to the next slide */
1817
+ async scrollNext() {
1818
+ var _a;
1819
+ (_a = this.emblaApi) === null || _a === void 0 ? void 0 : _a.scrollNext();
1820
+ }
1821
+ /** Scroll to a specific slide index */
1822
+ async goToSlide(index) {
1823
+ var _a;
1824
+ (_a = this.emblaApi) === null || _a === void 0 ? void 0 : _a.scrollTo(index);
1825
+ }
1826
+ /** Get the currently selected slide index */
1827
+ async getSelectedIndex() {
1828
+ var _a, _b;
1829
+ return (_b = (_a = this.emblaApi) === null || _a === void 0 ? void 0 : _a.selectedScrollSnap()) !== null && _b !== void 0 ? _b : 0;
1830
+ }
1831
+ /** Get the carousel context for child components */
1832
+ async getContext() {
1833
+ return {
1834
+ emblaApi: this.emblaApi,
1835
+ selectedIndex: this.selectedIndex,
1836
+ scrollSnapCount: this.scrollSnapCount,
1837
+ canScrollPrev: this.canScrollPrev,
1838
+ canScrollNext: this.canScrollNext,
1839
+ scrollPrev: () => { var _a; return (_a = this.emblaApi) === null || _a === void 0 ? void 0 : _a.scrollPrev(); },
1840
+ scrollNext: () => { var _a; return (_a = this.emblaApi) === null || _a === void 0 ? void 0 : _a.scrollNext(); },
1841
+ scrollTo: (index) => { var _a; return (_a = this.emblaApi) === null || _a === void 0 ? void 0 : _a.scrollTo(index); },
1842
+ };
1843
+ }
1844
+ // =========================================================================
1845
+ // Private Methods
1846
+ // =========================================================================
1847
+ initEmbla() {
1848
+ var _a;
1849
+ // Find the viewport element (seki-carousel-content)
1850
+ this.viewportEl = this.el.querySelector('seki-carousel-content');
1851
+ if (!this.viewportEl) {
1852
+ console.warn('seki-carousel: No seki-carousel-content found');
1853
+ return;
1854
+ }
1855
+ // Get the inner container
1856
+ const containerEl = (_a = this.viewportEl.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.carousel-content');
1857
+ if (!containerEl) {
1858
+ // Wait for content to render
1859
+ requestAnimationFrame(() => this.initEmbla());
1860
+ return;
1861
+ }
1862
+ const options = {
1863
+ loop: this.loop,
1864
+ startIndex: this.startIndex,
1865
+ slidesToScroll: this.slidesToScroll,
1866
+ dragFree: this.dragFree,
1867
+ containScroll: 'trimSnaps',
1868
+ };
1869
+ this.emblaApi = EmblaCarousel(this.viewportEl, options);
1870
+ // Set up event listeners
1871
+ this.emblaApi.on('select', this.handleSelect);
1872
+ this.emblaApi.on('reInit', this.handleReInit);
1873
+ this.emblaApi.on('pointerDown', this.handlePointerDown);
1874
+ this.emblaApi.on('pointerUp', this.handlePointerUp);
1875
+ // Initial state update
1876
+ this.updateState();
1877
+ // Start autoplay if enabled
1878
+ if (this.autoplay) {
1879
+ this.startAutoplay();
1880
+ }
1881
+ }
1882
+ updateState() {
1883
+ if (!this.emblaApi)
1884
+ return;
1885
+ this.selectedIndex = this.emblaApi.selectedScrollSnap();
1886
+ this.scrollSnapCount = this.emblaApi.scrollSnapList().length;
1887
+ this.canScrollPrev = this.emblaApi.canScrollPrev();
1888
+ this.canScrollNext = this.emblaApi.canScrollNext();
1889
+ }
1890
+ startAutoplay() {
1891
+ if (this.autoplayInterval)
1892
+ return;
1893
+ // Check for reduced motion preference
1894
+ if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
1895
+ return;
1896
+ }
1897
+ this.autoplayInterval = setInterval(() => {
1898
+ if (!this.autoplayPaused && this.emblaApi) {
1899
+ if (this.loop || this.canScrollNext) {
1900
+ this.emblaApi.scrollNext();
1901
+ }
1902
+ else {
1903
+ // Reset to start if not looping
1904
+ this.emblaApi.scrollTo(0);
1905
+ }
1906
+ }
1907
+ }, this.autoplayDelay);
1908
+ }
1909
+ stopAutoplay() {
1910
+ if (this.autoplayInterval) {
1911
+ clearInterval(this.autoplayInterval);
1912
+ this.autoplayInterval = null;
1913
+ }
1914
+ this.autoplayPaused = false;
1915
+ }
1916
+ pauseAutoplay() {
1917
+ this.autoplayPaused = true;
1918
+ }
1919
+ resumeAutoplay() {
1920
+ this.autoplayPaused = false;
1921
+ }
1922
+ // =========================================================================
1923
+ // Render
1924
+ // =========================================================================
1925
+ render() {
1926
+ return (index.h(index.Host, { key: 'a7eb148f26f940d3924989a014770530044b6ff6', class: "carousel", role: "region", "aria-roledescription": "carousel", "aria-label": this.ariaLabel, tabindex: "0", onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave, onFocusIn: this.handleFocusIn, onFocusOut: this.handleFocusOut, onKeyDown: this.handleKeyDown }, index.h("div", { key: 'c0a1b637c07a58f8e73202396a1f29464fc2c758', class: "carousel__container" }, index.h("slot", { key: 'eb4dc7088cb11ecbf35c11c3ead292ac7f292a5a' })), index.h("div", { key: '78c4cdecff0fb89908279dc0a589dd174801bbd3', class: "carousel__live-region", "aria-live": "polite", "aria-atomic": "true" }, `Slide ${this.selectedIndex + 1} of ${this.scrollSnapCount}`)));
1927
+ }
1928
+ get el() { return index.getElement(this); }
1929
+ static get watchers() { return {
1930
+ "autoplay": ["handleAutoplayChange"],
1931
+ "loop": ["handleOptionsChange"],
1932
+ "slidesToScroll": ["handleOptionsChange"],
1933
+ "dragFree": ["handleOptionsChange"]
1934
+ }; }
1935
+ };
1936
+ SekiCarousel.style = sekiCarouselCss;
1937
+
1938
+ exports.seki_carousel = SekiCarousel;