@purpur/library 9.6.0 → 9.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (288) hide show
  1. package/CHANGELOG.json +57 -0
  2. package/CHANGELOG.md +26 -1
  3. package/dist/LICENSE.txt +7 -7
  4. package/dist/ThemeProvider-D7oXcAde.js +2 -0
  5. package/dist/{ThemeProvider-Dy771oix.js.map → ThemeProvider-D7oXcAde.js.map} +1 -1
  6. package/dist/ThemeProvider-DiDBfyFA.mjs +348 -0
  7. package/dist/{ThemeProvider-CkX-BNWN.mjs.map → ThemeProvider-DiDBfyFA.mjs.map} +1 -1
  8. package/dist/carousel-BIKcwvYz.mjs +1658 -0
  9. package/dist/carousel-BIKcwvYz.mjs.map +1 -0
  10. package/dist/carousel-DnSaLDZf.js +2 -0
  11. package/dist/carousel-DnSaLDZf.js.map +1 -0
  12. package/dist/carousel.cjs.js +1 -1
  13. package/dist/carousel.es.js +1 -1
  14. package/dist/{comparison-table-Nhp5W6Yc.js → comparison-table-0UDB2BTU.js} +2 -2
  15. package/dist/{comparison-table-Nhp5W6Yc.js.map → comparison-table-0UDB2BTU.js.map} +1 -1
  16. package/dist/{comparison-table-CZMKl1TX.mjs → comparison-table-CjTE-fHN.mjs} +48 -48
  17. package/dist/{comparison-table-CZMKl1TX.mjs.map → comparison-table-CjTE-fHN.mjs.map} +1 -1
  18. package/dist/comparison-table.cjs.js +1 -1
  19. package/dist/comparison-table.es.js +1 -1
  20. package/dist/components/button/src/button.d.ts +1 -1
  21. package/dist/components/button/src/button.visual.fixtures.d.ts +43 -0
  22. package/dist/components/button/src/button.visual.fixtures.d.ts.map +1 -0
  23. package/dist/components/carousel/src/carousel.d.ts.map +1 -1
  24. package/dist/components/date-picker/src/date-picker.d.ts +8 -0
  25. package/dist/components/date-picker/src/date-picker.d.ts.map +1 -1
  26. package/dist/components/drawer/src/drawer-content.d.ts +21 -0
  27. package/dist/components/drawer/src/drawer-content.d.ts.map +1 -1
  28. package/dist/components/hero-banner/src/hero-banner.visual.fixtures.d.ts +14 -0
  29. package/dist/components/hero-banner/src/hero-banner.visual.fixtures.d.ts.map +1 -0
  30. package/dist/components/modal/src/modal-content.d.ts +21 -0
  31. package/dist/components/modal/src/modal-content.d.ts.map +1 -1
  32. package/dist/components/modal/src/modal.d.ts +2 -0
  33. package/dist/components/modal/src/modal.d.ts.map +1 -1
  34. package/dist/components/popover/src/popover-content.d.ts +14 -0
  35. package/dist/components/popover/src/popover-content.d.ts.map +1 -1
  36. package/dist/components/radio-card-group/src/is-radio-card-item.d.ts +4 -0
  37. package/dist/components/radio-card-group/src/is-radio-card-item.d.ts.map +1 -0
  38. package/dist/components/radio-card-group/src/radio-card-group.constants.d.ts +5 -0
  39. package/dist/components/radio-card-group/src/radio-card-group.constants.d.ts.map +1 -0
  40. package/dist/components/radio-card-group/src/radio-card-group.d.ts +5 -6
  41. package/dist/components/radio-card-group/src/radio-card-group.d.ts.map +1 -1
  42. package/dist/components/radio-card-group/src/radio-card-item.d.ts +1 -2
  43. package/dist/components/radio-card-group/src/radio-card-item.d.ts.map +1 -1
  44. package/dist/components/search-field/src/search-field-autocomplete.d.ts +6 -3
  45. package/dist/components/search-field/src/search-field-autocomplete.d.ts.map +1 -1
  46. package/dist/components/search-field/src/search-field-base.d.ts +10 -3
  47. package/dist/components/search-field/src/search-field-base.d.ts.map +1 -1
  48. package/dist/components/search-field/src/search-field-button.d.ts +3 -1
  49. package/dist/components/search-field/src/search-field-button.d.ts.map +1 -1
  50. package/dist/components/search-field/src/search-field.d.ts +12 -6
  51. package/dist/components/search-field/src/search-field.d.ts.map +1 -1
  52. package/dist/components/table/src/drag-indicator-circle.d.ts +8 -1
  53. package/dist/components/table/src/drag-indicator-circle.d.ts.map +1 -1
  54. package/dist/components/table/src/table.d.ts.map +1 -1
  55. package/dist/components/tooltip/src/tooltip.d.ts +21 -0
  56. package/dist/components/tooltip/src/tooltip.d.ts.map +1 -1
  57. package/dist/components-metadata.js +0 -2
  58. package/dist/date-picker-CIizn3Pv.js +2 -0
  59. package/dist/{date-picker-uyPKJulK.js.map → date-picker-CIizn3Pv.js.map} +1 -1
  60. package/dist/date-picker-DixxW60s.mjs +1617 -0
  61. package/dist/{date-picker-CzxhZxsw.mjs.map → date-picker-DixxW60s.mjs.map} +1 -1
  62. package/dist/date-picker.cjs.js +1 -1
  63. package/dist/date-picker.es.js +1 -1
  64. package/dist/drawer-BzkRd9F0.mjs +577 -0
  65. package/dist/drawer-BzkRd9F0.mjs.map +1 -0
  66. package/dist/drawer-DyhsP34o.js +2 -0
  67. package/dist/drawer-DyhsP34o.js.map +1 -0
  68. package/dist/drawer.cjs.js +1 -1
  69. package/dist/drawer.es.js +1 -1
  70. package/dist/{footer-D9AcPwlH.js → footer-3Y-664-8.js} +2 -2
  71. package/dist/{footer-D9AcPwlH.js.map → footer-3Y-664-8.js.map} +1 -1
  72. package/dist/{footer-BLPlXaZK.mjs → footer-DenAcikt.mjs} +3 -3
  73. package/dist/{footer-BLPlXaZK.mjs.map → footer-DenAcikt.mjs.map} +1 -1
  74. package/dist/footer.cjs.js +1 -1
  75. package/dist/footer.es.js +1 -1
  76. package/dist/{hero-banner-DkC_BqM7.mjs → hero-banner-B7xrDfzN.mjs} +2 -2
  77. package/dist/{hero-banner-DkC_BqM7.mjs.map → hero-banner-B7xrDfzN.mjs.map} +1 -1
  78. package/dist/{hero-banner-D1A-_qou.js → hero-banner-DthITuQ7.js} +2 -2
  79. package/dist/{hero-banner-D1A-_qou.js.map → hero-banner-DthITuQ7.js.map} +1 -1
  80. package/dist/hero-banner.cjs.js +1 -1
  81. package/dist/hero-banner.es.js +1 -1
  82. package/dist/libraries/theme/src/ThemeProvider.d.ts.map +1 -1
  83. package/dist/libraries/theme/src/theme.d.ts +1 -0
  84. package/dist/libraries/theme/src/theme.d.ts.map +1 -1
  85. package/dist/libraries/theme/src/types.d.ts +7 -0
  86. package/dist/libraries/theme/src/types.d.ts.map +1 -1
  87. package/dist/libraries/theme/src/useThemePortalContainer.d.ts +12 -0
  88. package/dist/libraries/theme/src/useThemePortalContainer.d.ts.map +1 -0
  89. package/dist/library.cjs.js +1 -1
  90. package/dist/library.es.js +469 -469
  91. package/dist/library.es.js.map +1 -1
  92. package/dist/modal-DJn9idcw.js +2 -0
  93. package/dist/modal-DJn9idcw.js.map +1 -0
  94. package/dist/{modal-fp37VbrH.mjs → modal-EIP36327.mjs} +83 -80
  95. package/dist/modal-EIP36327.mjs.map +1 -0
  96. package/dist/modal.cjs.js +1 -1
  97. package/dist/modal.es.js +1 -1
  98. package/dist/{popover-I26xNbTz.mjs → popover-DERrvReO.mjs} +328 -325
  99. package/dist/popover-DERrvReO.mjs.map +1 -0
  100. package/dist/popover-DnGgzfQr.js +2 -0
  101. package/dist/popover-DnGgzfQr.js.map +1 -0
  102. package/dist/popover.cjs.js +1 -1
  103. package/dist/popover.es.js +1 -1
  104. package/dist/{promotion-card-BiHnQvhn.mjs → promotion-card-BnzIVNQ4.mjs} +2 -2
  105. package/dist/{promotion-card-BiHnQvhn.mjs.map → promotion-card-BnzIVNQ4.mjs.map} +1 -1
  106. package/dist/{promotion-card-Bag64gqP.js → promotion-card-DKc2Cx1h.js} +2 -2
  107. package/dist/{promotion-card-Bag64gqP.js.map → promotion-card-DKc2Cx1h.js.map} +1 -1
  108. package/dist/promotion-card.cjs.js +1 -1
  109. package/dist/promotion-card.es.js +1 -1
  110. package/dist/purpur.css +1 -1
  111. package/dist/radio-card-group-ZBXjYcQs.mjs +166 -0
  112. package/dist/radio-card-group-ZBXjYcQs.mjs.map +1 -0
  113. package/dist/radio-card-group-nrDi5EPK.js +2 -0
  114. package/dist/radio-card-group-nrDi5EPK.js.map +1 -0
  115. package/dist/radio-card-group.cjs.js +1 -1
  116. package/dist/radio-card-group.es.js +3 -5
  117. package/dist/search-field-2vdDbiT0.js +2 -0
  118. package/dist/search-field-2vdDbiT0.js.map +1 -0
  119. package/dist/search-field-DKyNh7pE.mjs +167 -0
  120. package/dist/search-field-DKyNh7pE.mjs.map +1 -0
  121. package/dist/search-field.cjs.js +1 -1
  122. package/dist/search-field.es.js +1 -1
  123. package/dist/{stepper-CWR2vGPj.mjs → stepper-BDsSa6yr.mjs} +2 -2
  124. package/dist/{stepper-CWR2vGPj.mjs.map → stepper-BDsSa6yr.mjs.map} +1 -1
  125. package/dist/{stepper-Df4X7DDR.js → stepper-DpauItjx.js} +2 -2
  126. package/dist/{stepper-Df4X7DDR.js.map → stepper-DpauItjx.js.map} +1 -1
  127. package/dist/stepper.cjs.js +1 -1
  128. package/dist/stepper.es.js +1 -1
  129. package/dist/{table-gnGUejtb.js → table-BOCcBzSO.js} +4 -4
  130. package/dist/table-BOCcBzSO.js.map +1 -0
  131. package/dist/{table-g_n68i4s.mjs → table-i1Gs9e0e.mjs} +440 -440
  132. package/dist/table-i1Gs9e0e.mjs.map +1 -0
  133. package/dist/table.cjs.js +1 -1
  134. package/dist/table.es.js +1 -1
  135. package/dist/{text-area-peNKG7g4.js → text-area-D0truMT1.js} +2 -2
  136. package/dist/{text-area-peNKG7g4.js.map → text-area-D0truMT1.js.map} +1 -1
  137. package/dist/{text-area-kJvg6cFp.mjs → text-area-IVH-k4MM.mjs} +3 -3
  138. package/dist/{text-area-kJvg6cFp.mjs.map → text-area-IVH-k4MM.mjs.map} +1 -1
  139. package/dist/text-area.cjs.js +1 -1
  140. package/dist/text-area.es.js +1 -1
  141. package/dist/theme.cjs.js +1 -1
  142. package/dist/theme.es.js +8 -6
  143. package/dist/theme.es.js.map +1 -1
  144. package/dist/tooltip-CJGmJDFQ.js +2 -0
  145. package/dist/{tooltip-C8Zxnqdb.js.map → tooltip-CJGmJDFQ.js.map} +1 -1
  146. package/dist/{tooltip-LU2Cy-QC.mjs → tooltip-RA-03bKs.mjs} +277 -274
  147. package/dist/{tooltip-LU2Cy-QC.mjs.map → tooltip-RA-03bKs.mjs.map} +1 -1
  148. package/dist/tooltip.cjs.js +1 -1
  149. package/dist/tooltip.es.js +1 -1
  150. package/dist/{useColorScheme-tAkY9LHt.mjs → useColorScheme-B9DWd-LN.mjs} +2 -2
  151. package/dist/{useColorScheme-tAkY9LHt.mjs.map → useColorScheme-B9DWd-LN.mjs.map} +1 -1
  152. package/dist/useColorScheme-DbTQjxNB.js +2 -0
  153. package/dist/{useColorScheme-DNyjsWX9.js.map → useColorScheme-DbTQjxNB.js.map} +1 -1
  154. package/dist/useThemePortalContainer-D9BYjEvT.js +2 -0
  155. package/dist/useThemePortalContainer-D9BYjEvT.js.map +1 -0
  156. package/dist/useThemePortalContainer-tFLTaYKN.mjs +9 -0
  157. package/dist/useThemePortalContainer-tFLTaYKN.mjs.map +1 -0
  158. package/package.json +29 -29
  159. package/scripts/generate.mts +62 -3
  160. package/src/library.ts +2 -71
  161. package/dist/ThemeProvider-CkX-BNWN.mjs +0 -337
  162. package/dist/ThemeProvider-Dy771oix.js +0 -2
  163. package/dist/carousel-DLkTL9sj.mjs +0 -1633
  164. package/dist/carousel-DLkTL9sj.mjs.map +0 -1
  165. package/dist/carousel-DXrtxRz5.js +0 -2
  166. package/dist/carousel-DXrtxRz5.js.map +0 -1
  167. package/dist/date-picker-CzxhZxsw.mjs +0 -1611
  168. package/dist/date-picker-uyPKJulK.js +0 -2
  169. package/dist/drawer-8Acg4wkV.mjs +0 -574
  170. package/dist/drawer-8Acg4wkV.mjs.map +0 -1
  171. package/dist/drawer-BLHgcEqb.js +0 -2
  172. package/dist/drawer-BLHgcEqb.js.map +0 -1
  173. package/dist/modal-Baisuc6m.js +0 -2
  174. package/dist/modal-Baisuc6m.js.map +0 -1
  175. package/dist/modal-fp37VbrH.mjs.map +0 -1
  176. package/dist/popover-B0XJZ5mj.js +0 -2
  177. package/dist/popover-B0XJZ5mj.js.map +0 -1
  178. package/dist/popover-I26xNbTz.mjs.map +0 -1
  179. package/dist/radio-card-group-CneOprGY.mjs +0 -168
  180. package/dist/radio-card-group-CneOprGY.mjs.map +0 -1
  181. package/dist/radio-card-group-Ctuvg61o.js +0 -2
  182. package/dist/radio-card-group-Ctuvg61o.js.map +0 -1
  183. package/dist/search-field-CpkHGIYi.mjs +0 -151
  184. package/dist/search-field-CpkHGIYi.mjs.map +0 -1
  185. package/dist/search-field-Z0PqDARl.js +0 -2
  186. package/dist/search-field-Z0PqDARl.js.map +0 -1
  187. package/dist/table-g_n68i4s.mjs.map +0 -1
  188. package/dist/table-gnGUejtb.js.map +0 -1
  189. package/dist/tooltip-C8Zxnqdb.js +0 -2
  190. package/dist/useColorScheme-DNyjsWX9.js +0 -2
  191. package/tokens/_dark.scss +0 -9
  192. package/tokens/_index.scss +0 -9
  193. package/tokens/border/variables.css +0 -13
  194. package/tokens/border/variables.d.ts +0 -10
  195. package/tokens/border/variables.dark.css +0 -12
  196. package/tokens/border/variables.dark.d.ts +0 -10
  197. package/tokens/border/variables.dark.js +0 -10
  198. package/tokens/border/variables.dark.json +0 -18
  199. package/tokens/border/variables.dark.scss +0 -10
  200. package/tokens/border/variables.js +0 -10
  201. package/tokens/border/variables.json +0 -18
  202. package/tokens/border/variables.scss +0 -10
  203. package/tokens/breakpoint/variables.css +0 -11
  204. package/tokens/breakpoint/variables.d.ts +0 -8
  205. package/tokens/breakpoint/variables.dark.css +0 -10
  206. package/tokens/breakpoint/variables.dark.d.ts +0 -8
  207. package/tokens/breakpoint/variables.dark.js +0 -8
  208. package/tokens/breakpoint/variables.dark.json +0 -14
  209. package/tokens/breakpoint/variables.dark.scss +0 -8
  210. package/tokens/breakpoint/variables.js +0 -8
  211. package/tokens/breakpoint/variables.json +0 -14
  212. package/tokens/breakpoint/variables.scss +0 -8
  213. package/tokens/color/variables.css +0 -262
  214. package/tokens/color/variables.d.ts +0 -253
  215. package/tokens/color/variables.dark.css +0 -262
  216. package/tokens/color/variables.dark.d.ts +0 -252
  217. package/tokens/color/variables.dark.js +0 -252
  218. package/tokens/color/variables.dark.json +0 -306
  219. package/tokens/color/variables.dark.scss +0 -252
  220. package/tokens/color/variables.js +0 -253
  221. package/tokens/color/variables.json +0 -307
  222. package/tokens/color/variables.scss +0 -253
  223. package/tokens/dark.css +0 -9
  224. package/tokens/dark.d.ts +0 -9
  225. package/tokens/dark.js +0 -9
  226. package/tokens/filter/variables.css +0 -4
  227. package/tokens/filter/variables.d.ts +0 -1
  228. package/tokens/filter/variables.dark.css +0 -3
  229. package/tokens/filter/variables.dark.d.ts +0 -1
  230. package/tokens/filter/variables.dark.js +0 -1
  231. package/tokens/filter/variables.dark.json +0 -7
  232. package/tokens/filter/variables.dark.scss +0 -1
  233. package/tokens/filter/variables.js +0 -1
  234. package/tokens/filter/variables.json +0 -7
  235. package/tokens/filter/variables.scss +0 -1
  236. package/tokens/gradient/variables.css +0 -53
  237. package/tokens/gradient/variables.d.ts +0 -9
  238. package/tokens/gradient/variables.dark.css +0 -51
  239. package/tokens/gradient/variables.dark.d.ts +0 -9
  240. package/tokens/gradient/variables.dark.js +0 -18
  241. package/tokens/gradient/variables.dark.json +0 -27
  242. package/tokens/gradient/variables.dark.scss +0 -36
  243. package/tokens/gradient/variables.js +0 -18
  244. package/tokens/gradient/variables.json +0 -27
  245. package/tokens/gradient/variables.scss +0 -42
  246. package/tokens/index.css +0 -18
  247. package/tokens/index.d.ts +0 -9
  248. package/tokens/index.js +0 -9
  249. package/tokens/motion/variables.css +0 -14
  250. package/tokens/motion/variables.d.ts +0 -11
  251. package/tokens/motion/variables.dark.css +0 -13
  252. package/tokens/motion/variables.dark.d.ts +0 -11
  253. package/tokens/motion/variables.dark.js +0 -11
  254. package/tokens/motion/variables.dark.json +0 -19
  255. package/tokens/motion/variables.dark.scss +0 -11
  256. package/tokens/motion/variables.js +0 -11
  257. package/tokens/motion/variables.json +0 -19
  258. package/tokens/motion/variables.scss +0 -11
  259. package/tokens/shadow/variables.css +0 -11
  260. package/tokens/shadow/variables.d.ts +0 -4
  261. package/tokens/shadow/variables.dark.css +0 -10
  262. package/tokens/shadow/variables.dark.d.ts +0 -4
  263. package/tokens/shadow/variables.dark.js +0 -4
  264. package/tokens/shadow/variables.dark.json +0 -8
  265. package/tokens/shadow/variables.dark.scss +0 -4
  266. package/tokens/shadow/variables.js +0 -4
  267. package/tokens/shadow/variables.json +0 -8
  268. package/tokens/shadow/variables.scss +0 -4
  269. package/tokens/spacing/variables.css +0 -26
  270. package/tokens/spacing/variables.d.ts +0 -23
  271. package/tokens/spacing/variables.dark.css +0 -17
  272. package/tokens/spacing/variables.dark.d.ts +0 -15
  273. package/tokens/spacing/variables.dark.js +0 -15
  274. package/tokens/spacing/variables.dark.json +0 -19
  275. package/tokens/spacing/variables.dark.scss +0 -15
  276. package/tokens/spacing/variables.js +0 -23
  277. package/tokens/spacing/variables.json +0 -31
  278. package/tokens/spacing/variables.scss +0 -23
  279. package/tokens/typography/variables.css +0 -30
  280. package/tokens/typography/variables.d.ts +0 -26
  281. package/tokens/typography/variables.dark.css +0 -29
  282. package/tokens/typography/variables.dark.d.ts +0 -26
  283. package/tokens/typography/variables.dark.js +0 -28
  284. package/tokens/typography/variables.dark.json +0 -38
  285. package/tokens/typography/variables.dark.scss +0 -26
  286. package/tokens/typography/variables.js +0 -28
  287. package/tokens/typography/variables.json +0 -38
  288. package/tokens/typography/variables.scss +0 -26
@@ -0,0 +1,1658 @@
1
+ import { jsx as V, jsxs as wt, Fragment as xn } from "react/jsx-runtime";
2
+ import Qt, { useRef as yt, useState as J, useCallback as et, useEffect as ot, useMemo as wn, useLayoutEffect as En } from "react";
3
+ import { b as Dt } from "./button-4-yWOgtD.mjs";
4
+ import { l as Ln } from "./arrow-left.es-DU-PX-Il.mjs";
5
+ import { i as In } from "./arrow-right.es-C7SkjAB6.mjs";
6
+ import { b as tn } from "./icon-DNHpBTHs-JfI8WyiR.mjs";
7
+ import { c as nn } from "./bind-CU-R61T-.mjs";
8
+ const On = {
9
+ name: "play-filled",
10
+ svg: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M19 12 5.5 19.794V4.206L19 12Z"/><path fill-rule="evenodd" d="M19.875 12a.875.875 0 0 1-.438.758l-13.5 7.794a.875.875 0 0 1-1.312-.758V4.206a.875.875 0 0 1 1.313-.758l13.5 7.794c.27.156.437.445.437.758Zm-13.5-6.279V18.28L17.25 12 6.375 5.721Z" clip-rule="evenodd"/></svg>',
11
+ keywords: ["play-filled"],
12
+ category: "action"
13
+ }, en = (t) => /* @__PURE__ */ V(tn, { ...t, svg: On });
14
+ en.displayName = "IconPlayFilled";
15
+ const _n = {
16
+ name: "tv-pause",
17
+ svg: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M19 20h-3V4h3v16ZM8 20H5V4h3v16Z"/><path fill-rule="evenodd" d="M4.1 4a.9.9 0 0 1 .9-.9h3a.9.9 0 0 1 .9.9v16a.9.9 0 0 1-.9.9H5a.9.9 0 0 1-.9-.9V4Zm1.8.9v14.2h1.2V4.9H5.9Zm9.2-.9a.9.9 0 0 1 .9-.9h3a.9.9 0 0 1 .9.9v16a.9.9 0 0 1-.9.9h-3a.9.9 0 0 1-.9-.9V4Zm1.8.9v14.2h1.2V4.9h-1.2Z" clip-rule="evenodd"/></svg>',
18
+ keywords: ["tv-pause"],
19
+ category: "action"
20
+ }, on = (t) => /* @__PURE__ */ V(tn, { ...t, svg: _n });
21
+ on.displayName = "IconTvPause";
22
+ const Mn = {
23
+ active: !0,
24
+ breakpoints: {},
25
+ delay: 4e3,
26
+ jump: !1,
27
+ playOnInit: !0,
28
+ stopOnFocusIn: !0,
29
+ stopOnInteraction: !0,
30
+ stopOnMouseEnter: !1,
31
+ stopOnLastSnap: !1,
32
+ rootNode: null
33
+ };
34
+ function Tn(t, n) {
35
+ const e = t.scrollSnapList();
36
+ return typeof n == "number" ? e.map(() => n) : n(e, t);
37
+ }
38
+ function Dn(t, n) {
39
+ const e = t.rootNode();
40
+ return n && n(e) || e;
41
+ }
42
+ function Nt(t = {}) {
43
+ let n, e, s, i, o = null, r = 0, u = !1, c = !1, a = !1, g = !1;
44
+ function l(M, B) {
45
+ e = M;
46
+ const {
47
+ mergeOptions: j,
48
+ optionsAtMedia: $
49
+ } = B, G = j(Mn, Nt.globalOptions), q = j(G, t);
50
+ if (n = $(q), e.scrollSnapList().length <= 1) return;
51
+ g = n.jump, s = !1, i = Tn(e, n.delay);
52
+ const {
53
+ eventStore: Q,
54
+ ownerDocument: R
55
+ } = e.internalEngine(), X = !!e.internalEngine().options.watchDrag, Y = Dn(e, n.rootNode);
56
+ Q.add(R, "visibilitychange", d), X && e.on("pointerDown", b), X && !n.stopOnInteraction && e.on("pointerUp", E), n.stopOnMouseEnter && Q.add(Y, "mouseenter", O), n.stopOnMouseEnter && !n.stopOnInteraction && Q.add(Y, "mouseleave", L), n.stopOnFocusIn && e.on("slideFocusStart", y), n.stopOnFocusIn && !n.stopOnInteraction && Q.add(e.containerNode(), "focusout", p), n.playOnInit && p();
57
+ }
58
+ function m() {
59
+ e.off("pointerDown", b).off("pointerUp", E).off("slideFocusStart", y), y(), s = !0, u = !1;
60
+ }
61
+ function S() {
62
+ const {
63
+ ownerWindow: M
64
+ } = e.internalEngine();
65
+ M.clearTimeout(r), r = M.setTimeout(_, i[e.selectedScrollSnap()]), o = (/* @__PURE__ */ new Date()).getTime(), e.emit("autoplay:timerset");
66
+ }
67
+ function f() {
68
+ const {
69
+ ownerWindow: M
70
+ } = e.internalEngine();
71
+ M.clearTimeout(r), r = 0, o = null, e.emit("autoplay:timerstopped");
72
+ }
73
+ function p() {
74
+ if (!s) {
75
+ if (h()) {
76
+ a = !0;
77
+ return;
78
+ }
79
+ u || e.emit("autoplay:play"), S(), u = !0;
80
+ }
81
+ }
82
+ function y() {
83
+ s || (u && e.emit("autoplay:stop"), f(), u = !1);
84
+ }
85
+ function d() {
86
+ if (h())
87
+ return a = u, y();
88
+ a && p();
89
+ }
90
+ function h() {
91
+ const {
92
+ ownerDocument: M
93
+ } = e.internalEngine();
94
+ return M.visibilityState === "hidden";
95
+ }
96
+ function b() {
97
+ c || y();
98
+ }
99
+ function E() {
100
+ c || p();
101
+ }
102
+ function O() {
103
+ c = !0, y();
104
+ }
105
+ function L() {
106
+ c = !1, p();
107
+ }
108
+ function x(M) {
109
+ typeof M < "u" && (g = M), p();
110
+ }
111
+ function w() {
112
+ u && y();
113
+ }
114
+ function I() {
115
+ u && p();
116
+ }
117
+ function k() {
118
+ return u;
119
+ }
120
+ function _() {
121
+ const {
122
+ index: M
123
+ } = e.internalEngine(), B = M.clone().add(1).get(), j = e.scrollSnapList().length - 1, $ = n.stopOnLastSnap && B === j;
124
+ if (e.canScrollNext() ? e.scrollNext(g) : e.scrollTo(0, g), e.emit("autoplay:select"), $) return y();
125
+ p();
126
+ }
127
+ function C() {
128
+ if (!o) return null;
129
+ const M = i[e.selectedScrollSnap()], B = (/* @__PURE__ */ new Date()).getTime() - o;
130
+ return M - B;
131
+ }
132
+ return {
133
+ name: "autoplay",
134
+ options: t,
135
+ init: l,
136
+ destroy: m,
137
+ play: x,
138
+ stop: w,
139
+ reset: I,
140
+ isPlaying: k,
141
+ timeUntilNext: C
142
+ };
143
+ }
144
+ Nt.globalOptions = void 0;
145
+ function Pn(t) {
146
+ return Object.prototype.toString.call(t) === "[object Object]";
147
+ }
148
+ function Kt(t) {
149
+ return Pn(t) || Array.isArray(t);
150
+ }
151
+ function kn() {
152
+ return !!(typeof window < "u" && window.document && window.document.createElement);
153
+ }
154
+ function Ct(t, n) {
155
+ const e = Object.keys(t), s = Object.keys(n);
156
+ if (e.length !== s.length) return !1;
157
+ const i = JSON.stringify(Object.keys(t.breakpoints || {})), o = JSON.stringify(Object.keys(n.breakpoints || {}));
158
+ return i !== o ? !1 : e.every((r) => {
159
+ const u = t[r], c = n[r];
160
+ return typeof u == "function" ? `${u}` == `${c}` : !Kt(u) || !Kt(c) ? u === c : Ct(u, c);
161
+ });
162
+ }
163
+ function Jt(t) {
164
+ return t.concat().sort((n, e) => n.name > e.name ? 1 : -1).map((n) => n.options);
165
+ }
166
+ function Nn(t, n) {
167
+ if (t.length !== n.length) return !1;
168
+ const e = Jt(t), s = Jt(n);
169
+ return e.every((i, o) => {
170
+ const r = s[o];
171
+ return Ct(i, r);
172
+ });
173
+ }
174
+ function Bt(t) {
175
+ return typeof t == "number";
176
+ }
177
+ function Pt(t) {
178
+ return typeof t == "string";
179
+ }
180
+ function Lt(t) {
181
+ return typeof t == "boolean";
182
+ }
183
+ function Xt(t) {
184
+ return Object.prototype.toString.call(t) === "[object Object]";
185
+ }
186
+ function P(t) {
187
+ return Math.abs(t);
188
+ }
189
+ function At(t) {
190
+ return Math.sign(t);
191
+ }
192
+ function gt(t, n) {
193
+ return P(t - n);
194
+ }
195
+ function Cn(t, n) {
196
+ if (t === 0 || n === 0 || P(t) <= P(n)) return 0;
197
+ const e = gt(P(t), P(n));
198
+ return P(e / t);
199
+ }
200
+ function Bn(t) {
201
+ return Math.round(t * 100) / 100;
202
+ }
203
+ function ht(t) {
204
+ return St(t).map(Number);
205
+ }
206
+ function Z(t) {
207
+ return t[vt(t)];
208
+ }
209
+ function vt(t) {
210
+ return Math.max(0, t.length - 1);
211
+ }
212
+ function Ft(t, n) {
213
+ return n === vt(t);
214
+ }
215
+ function Yt(t, n = 0) {
216
+ return Array.from(Array(t), (e, s) => n + s);
217
+ }
218
+ function St(t) {
219
+ return Object.keys(t);
220
+ }
221
+ function rn(t, n) {
222
+ return [t, n].reduce((e, s) => (St(s).forEach((i) => {
223
+ const o = e[i], r = s[i], u = Xt(o) && Xt(r);
224
+ e[i] = u ? rn(o, r) : r;
225
+ }), e), {});
226
+ }
227
+ function kt(t, n) {
228
+ return typeof n.MouseEvent < "u" && t instanceof n.MouseEvent;
229
+ }
230
+ function An(t, n) {
231
+ const e = {
232
+ start: s,
233
+ center: i,
234
+ end: o
235
+ };
236
+ function s() {
237
+ return 0;
238
+ }
239
+ function i(c) {
240
+ return o(c) / 2;
241
+ }
242
+ function o(c) {
243
+ return n - c;
244
+ }
245
+ function r(c, a) {
246
+ return Pt(t) ? e[t](c) : t(n, c, a);
247
+ }
248
+ return {
249
+ measure: r
250
+ };
251
+ }
252
+ function bt() {
253
+ let t = [];
254
+ function n(i, o, r, u = {
255
+ passive: !0
256
+ }) {
257
+ let c;
258
+ if ("addEventListener" in i)
259
+ i.addEventListener(o, r, u), c = () => i.removeEventListener(o, r, u);
260
+ else {
261
+ const a = i;
262
+ a.addListener(r), c = () => a.removeListener(r);
263
+ }
264
+ return t.push(c), s;
265
+ }
266
+ function e() {
267
+ t = t.filter((i) => i());
268
+ }
269
+ const s = {
270
+ add: n,
271
+ clear: e
272
+ };
273
+ return s;
274
+ }
275
+ function Fn(t, n, e, s) {
276
+ const i = bt(), o = 1e3 / 60;
277
+ let r = null, u = 0, c = 0;
278
+ function a() {
279
+ i.add(t, "visibilitychange", () => {
280
+ t.hidden && f();
281
+ });
282
+ }
283
+ function g() {
284
+ S(), i.clear();
285
+ }
286
+ function l(y) {
287
+ if (!c) return;
288
+ r || (r = y, e(), e());
289
+ const d = y - r;
290
+ for (r = y, u += d; u >= o; )
291
+ e(), u -= o;
292
+ const h = u / o;
293
+ s(h), c && (c = n.requestAnimationFrame(l));
294
+ }
295
+ function m() {
296
+ c || (c = n.requestAnimationFrame(l));
297
+ }
298
+ function S() {
299
+ n.cancelAnimationFrame(c), r = null, u = 0, c = 0;
300
+ }
301
+ function f() {
302
+ r = null, u = 0;
303
+ }
304
+ return {
305
+ init: a,
306
+ destroy: g,
307
+ start: m,
308
+ stop: S,
309
+ update: e,
310
+ render: s
311
+ };
312
+ }
313
+ function Vn(t, n) {
314
+ const e = n === "rtl", s = t === "y", i = s ? "y" : "x", o = s ? "x" : "y", r = !s && e ? -1 : 1, u = g(), c = l();
315
+ function a(f) {
316
+ const {
317
+ height: p,
318
+ width: y
319
+ } = f;
320
+ return s ? p : y;
321
+ }
322
+ function g() {
323
+ return s ? "top" : e ? "right" : "left";
324
+ }
325
+ function l() {
326
+ return s ? "bottom" : e ? "left" : "right";
327
+ }
328
+ function m(f) {
329
+ return f * r;
330
+ }
331
+ return {
332
+ scroll: i,
333
+ cross: o,
334
+ startEdge: u,
335
+ endEdge: c,
336
+ measureSize: a,
337
+ direction: m
338
+ };
339
+ }
340
+ function at(t = 0, n = 0) {
341
+ const e = P(t - n);
342
+ function s(a) {
343
+ return a < t;
344
+ }
345
+ function i(a) {
346
+ return a > n;
347
+ }
348
+ function o(a) {
349
+ return s(a) || i(a);
350
+ }
351
+ function r(a) {
352
+ return o(a) ? s(a) ? t : n : a;
353
+ }
354
+ function u(a) {
355
+ return e ? a - e * Math.ceil((a - n) / e) : a;
356
+ }
357
+ return {
358
+ length: e,
359
+ max: n,
360
+ min: t,
361
+ constrain: r,
362
+ reachedAny: o,
363
+ reachedMax: i,
364
+ reachedMin: s,
365
+ removeOffset: u
366
+ };
367
+ }
368
+ function sn(t, n, e) {
369
+ const {
370
+ constrain: s
371
+ } = at(0, t), i = t + 1;
372
+ let o = r(n);
373
+ function r(m) {
374
+ return e ? P((i + m) % i) : s(m);
375
+ }
376
+ function u() {
377
+ return o;
378
+ }
379
+ function c(m) {
380
+ return o = r(m), l;
381
+ }
382
+ function a(m) {
383
+ return g().set(u() + m);
384
+ }
385
+ function g() {
386
+ return sn(t, u(), e);
387
+ }
388
+ const l = {
389
+ get: u,
390
+ set: c,
391
+ add: a,
392
+ clone: g
393
+ };
394
+ return l;
395
+ }
396
+ function zn(t, n, e, s, i, o, r, u, c, a, g, l, m, S, f, p, y, d, h) {
397
+ const {
398
+ cross: b,
399
+ direction: E
400
+ } = t, O = ["INPUT", "SELECT", "TEXTAREA"], L = {
401
+ passive: !1
402
+ }, x = bt(), w = bt(), I = at(50, 225).constrain(S.measure(20)), k = {
403
+ mouse: 300,
404
+ touch: 400
405
+ }, _ = {
406
+ mouse: 500,
407
+ touch: 600
408
+ }, C = f ? 43 : 25;
409
+ let U = !1, M = 0, B = 0, j = !1, $ = !1, G = !1, q = !1;
410
+ function Q(v) {
411
+ if (!h) return;
412
+ function T(F) {
413
+ (Lt(h) || h(v, F)) && dt(F);
414
+ }
415
+ const N = n;
416
+ x.add(N, "dragstart", (F) => F.preventDefault(), L).add(N, "touchmove", () => {
417
+ }, L).add(N, "touchend", () => {
418
+ }).add(N, "touchstart", T).add(N, "mousedown", T).add(N, "touchcancel", A).add(N, "contextmenu", A).add(N, "click", tt, !0);
419
+ }
420
+ function R() {
421
+ x.clear(), w.clear();
422
+ }
423
+ function X() {
424
+ const v = q ? e : n;
425
+ w.add(v, "touchmove", z, L).add(v, "touchend", A).add(v, "mousemove", z, L).add(v, "mouseup", A);
426
+ }
427
+ function Y(v) {
428
+ const T = v.nodeName || "";
429
+ return O.includes(T);
430
+ }
431
+ function W() {
432
+ return (f ? _ : k)[q ? "mouse" : "touch"];
433
+ }
434
+ function ft(v, T) {
435
+ const N = l.add(At(v) * -1), F = g.byDistance(v, !f).distance;
436
+ return f || P(v) < I ? F : y && T ? F * 0.5 : g.byIndex(N.get(), 0).distance;
437
+ }
438
+ function dt(v) {
439
+ const T = kt(v, s);
440
+ q = T, G = f && T && !v.buttons && U, U = gt(i.get(), r.get()) >= 2, !(T && v.button !== 0) && (Y(v.target) || (j = !0, o.pointerDown(v), a.useFriction(0).useDuration(0), i.set(r), X(), M = o.readPoint(v), B = o.readPoint(v, b), m.emit("pointerDown")));
441
+ }
442
+ function z(v) {
443
+ if (!kt(v, s) && v.touches.length >= 2) return A(v);
444
+ const N = o.readPoint(v), F = o.readPoint(v, b), K = gt(N, M), nt = gt(F, B);
445
+ if (!$ && !q && (!v.cancelable || ($ = K > nt, !$)))
446
+ return A(v);
447
+ const ct = o.pointerMove(v);
448
+ K > p && (G = !0), a.useFriction(0.3).useDuration(0.75), u.start(), i.add(E(ct)), v.preventDefault();
449
+ }
450
+ function A(v) {
451
+ const N = g.byDistance(0, !1).index !== l.get(), F = o.pointerUp(v) * W(), K = ft(E(F), N), nt = Cn(F, K), ct = C - 10 * nt, rt = d + nt / 50;
452
+ $ = !1, j = !1, w.clear(), a.useDuration(ct).useFriction(rt), c.distance(K, !f), q = !1, m.emit("pointerUp");
453
+ }
454
+ function tt(v) {
455
+ G && (v.stopPropagation(), v.preventDefault(), G = !1);
456
+ }
457
+ function H() {
458
+ return j;
459
+ }
460
+ return {
461
+ init: Q,
462
+ destroy: R,
463
+ pointerDown: H
464
+ };
465
+ }
466
+ function jn(t, n) {
467
+ let s, i;
468
+ function o(l) {
469
+ return l.timeStamp;
470
+ }
471
+ function r(l, m) {
472
+ const f = `client${(m || t.scroll) === "x" ? "X" : "Y"}`;
473
+ return (kt(l, n) ? l : l.touches[0])[f];
474
+ }
475
+ function u(l) {
476
+ return s = l, i = l, r(l);
477
+ }
478
+ function c(l) {
479
+ const m = r(l) - r(i), S = o(l) - o(s) > 170;
480
+ return i = l, S && (s = l), m;
481
+ }
482
+ function a(l) {
483
+ if (!s || !i) return 0;
484
+ const m = r(i) - r(s), S = o(l) - o(s), f = o(l) - o(i) > 170, p = m / S;
485
+ return S && !f && P(p) > 0.1 ? p : 0;
486
+ }
487
+ return {
488
+ pointerDown: u,
489
+ pointerMove: c,
490
+ pointerUp: a,
491
+ readPoint: r
492
+ };
493
+ }
494
+ function $n() {
495
+ function t(e) {
496
+ const {
497
+ offsetTop: s,
498
+ offsetLeft: i,
499
+ offsetWidth: o,
500
+ offsetHeight: r
501
+ } = e;
502
+ return {
503
+ top: s,
504
+ right: i + o,
505
+ bottom: s + r,
506
+ left: i,
507
+ width: o,
508
+ height: r
509
+ };
510
+ }
511
+ return {
512
+ measure: t
513
+ };
514
+ }
515
+ function Rn(t) {
516
+ function n(s) {
517
+ return t * (s / 100);
518
+ }
519
+ return {
520
+ measure: n
521
+ };
522
+ }
523
+ function Hn(t, n, e, s, i, o, r) {
524
+ const u = [t].concat(s);
525
+ let c, a, g = [], l = !1;
526
+ function m(y) {
527
+ return i.measureSize(r.measure(y));
528
+ }
529
+ function S(y) {
530
+ if (!o) return;
531
+ a = m(t), g = s.map(m);
532
+ function d(h) {
533
+ for (const b of h) {
534
+ if (l) return;
535
+ const E = b.target === t, O = s.indexOf(b.target), L = E ? a : g[O], x = m(E ? t : s[O]);
536
+ if (P(x - L) >= 0.5) {
537
+ y.reInit(), n.emit("resize");
538
+ break;
539
+ }
540
+ }
541
+ }
542
+ c = new ResizeObserver((h) => {
543
+ (Lt(o) || o(y, h)) && d(h);
544
+ }), e.requestAnimationFrame(() => {
545
+ u.forEach((h) => c.observe(h));
546
+ });
547
+ }
548
+ function f() {
549
+ l = !0, c && c.disconnect();
550
+ }
551
+ return {
552
+ init: S,
553
+ destroy: f
554
+ };
555
+ }
556
+ function Un(t, n, e, s, i, o) {
557
+ let r = 0, u = 0, c = i, a = o, g = t.get(), l = 0;
558
+ function m() {
559
+ const L = s.get() - t.get(), x = !c;
560
+ let w = 0;
561
+ return x ? (r = 0, e.set(s), t.set(s), w = L) : (e.set(t), r += L / c, r *= a, g += r, t.add(r), w = g - l), u = At(w), l = g, O;
562
+ }
563
+ function S() {
564
+ const L = s.get() - n.get();
565
+ return P(L) < 1e-3;
566
+ }
567
+ function f() {
568
+ return c;
569
+ }
570
+ function p() {
571
+ return u;
572
+ }
573
+ function y() {
574
+ return r;
575
+ }
576
+ function d() {
577
+ return b(i);
578
+ }
579
+ function h() {
580
+ return E(o);
581
+ }
582
+ function b(L) {
583
+ return c = L, O;
584
+ }
585
+ function E(L) {
586
+ return a = L, O;
587
+ }
588
+ const O = {
589
+ direction: p,
590
+ duration: f,
591
+ velocity: y,
592
+ seek: m,
593
+ settled: S,
594
+ useBaseFriction: h,
595
+ useBaseDuration: d,
596
+ useFriction: E,
597
+ useDuration: b
598
+ };
599
+ return O;
600
+ }
601
+ function Gn(t, n, e, s, i) {
602
+ const o = i.measure(10), r = i.measure(50), u = at(0.1, 0.99);
603
+ let c = !1;
604
+ function a() {
605
+ return !(c || !t.reachedAny(e.get()) || !t.reachedAny(n.get()));
606
+ }
607
+ function g(S) {
608
+ if (!a()) return;
609
+ const f = t.reachedMin(n.get()) ? "min" : "max", p = P(t[f] - n.get()), y = e.get() - n.get(), d = u.constrain(p / r);
610
+ e.subtract(y * d), !S && P(y) < o && (e.set(t.constrain(e.get())), s.useDuration(25).useBaseFriction());
611
+ }
612
+ function l(S) {
613
+ c = !S;
614
+ }
615
+ return {
616
+ shouldConstrain: a,
617
+ constrain: g,
618
+ toggleActive: l
619
+ };
620
+ }
621
+ function qn(t, n, e, s, i) {
622
+ const o = at(-n + t, 0), r = l(), u = g(), c = m();
623
+ function a(f, p) {
624
+ return gt(f, p) <= 1;
625
+ }
626
+ function g() {
627
+ const f = r[0], p = Z(r), y = r.lastIndexOf(f), d = r.indexOf(p) + 1;
628
+ return at(y, d);
629
+ }
630
+ function l() {
631
+ return e.map((f, p) => {
632
+ const {
633
+ min: y,
634
+ max: d
635
+ } = o, h = o.constrain(f), b = !p, E = Ft(e, p);
636
+ return b ? d : E || a(y, h) ? y : a(d, h) ? d : h;
637
+ }).map((f) => parseFloat(f.toFixed(3)));
638
+ }
639
+ function m() {
640
+ if (n <= t + i) return [o.max];
641
+ if (s === "keepSnaps") return r;
642
+ const {
643
+ min: f,
644
+ max: p
645
+ } = u;
646
+ return r.slice(f, p);
647
+ }
648
+ return {
649
+ snapsContained: c,
650
+ scrollContainLimit: u
651
+ };
652
+ }
653
+ function Zn(t, n, e) {
654
+ const s = n[0], i = e ? s - t : Z(n);
655
+ return {
656
+ limit: at(i, s)
657
+ };
658
+ }
659
+ function Qn(t, n, e, s) {
660
+ const o = n.min + 0.1, r = n.max + 0.1, {
661
+ reachedMin: u,
662
+ reachedMax: c
663
+ } = at(o, r);
664
+ function a(m) {
665
+ return m === 1 ? c(e.get()) : m === -1 ? u(e.get()) : !1;
666
+ }
667
+ function g(m) {
668
+ if (!a(m)) return;
669
+ const S = t * (m * -1);
670
+ s.forEach((f) => f.add(S));
671
+ }
672
+ return {
673
+ loop: g
674
+ };
675
+ }
676
+ function Kn(t) {
677
+ const {
678
+ max: n,
679
+ length: e
680
+ } = t;
681
+ function s(o) {
682
+ const r = o - n;
683
+ return e ? r / -e : 0;
684
+ }
685
+ return {
686
+ get: s
687
+ };
688
+ }
689
+ function Jn(t, n, e, s, i) {
690
+ const {
691
+ startEdge: o,
692
+ endEdge: r
693
+ } = t, {
694
+ groupSlides: u
695
+ } = i, c = l().map(n.measure), a = m(), g = S();
696
+ function l() {
697
+ return u(s).map((p) => Z(p)[r] - p[0][o]).map(P);
698
+ }
699
+ function m() {
700
+ return s.map((p) => e[o] - p[o]).map((p) => -P(p));
701
+ }
702
+ function S() {
703
+ return u(a).map((p) => p[0]).map((p, y) => p + c[y]);
704
+ }
705
+ return {
706
+ snaps: a,
707
+ snapsAligned: g
708
+ };
709
+ }
710
+ function Xn(t, n, e, s, i, o) {
711
+ const {
712
+ groupSlides: r
713
+ } = i, {
714
+ min: u,
715
+ max: c
716
+ } = s, a = g();
717
+ function g() {
718
+ const m = r(o), S = !t || n === "keepSnaps";
719
+ return e.length === 1 ? [o] : S ? m : m.slice(u, c).map((f, p, y) => {
720
+ const d = !p, h = Ft(y, p);
721
+ if (d) {
722
+ const b = Z(y[0]) + 1;
723
+ return Yt(b);
724
+ }
725
+ if (h) {
726
+ const b = vt(o) - Z(y)[0] + 1;
727
+ return Yt(b, Z(y)[0]);
728
+ }
729
+ return f;
730
+ });
731
+ }
732
+ return {
733
+ slideRegistry: a
734
+ };
735
+ }
736
+ function Yn(t, n, e, s, i) {
737
+ const {
738
+ reachedAny: o,
739
+ removeOffset: r,
740
+ constrain: u
741
+ } = s;
742
+ function c(f) {
743
+ return f.concat().sort((p, y) => P(p) - P(y))[0];
744
+ }
745
+ function a(f) {
746
+ const p = t ? r(f) : u(f), y = n.map((h, b) => ({
747
+ diff: g(h - p, 0),
748
+ index: b
749
+ })).sort((h, b) => P(h.diff) - P(b.diff)), {
750
+ index: d
751
+ } = y[0];
752
+ return {
753
+ index: d,
754
+ distance: p
755
+ };
756
+ }
757
+ function g(f, p) {
758
+ const y = [f, f + e, f - e];
759
+ if (!t) return f;
760
+ if (!p) return c(y);
761
+ const d = y.filter((h) => At(h) === p);
762
+ return d.length ? c(d) : Z(y) - e;
763
+ }
764
+ function l(f, p) {
765
+ const y = n[f] - i.get(), d = g(y, p);
766
+ return {
767
+ index: f,
768
+ distance: d
769
+ };
770
+ }
771
+ function m(f, p) {
772
+ const y = i.get() + f, {
773
+ index: d,
774
+ distance: h
775
+ } = a(y), b = !t && o(y);
776
+ if (!p || b) return {
777
+ index: d,
778
+ distance: f
779
+ };
780
+ const E = n[d] - h, O = f + g(E, 0);
781
+ return {
782
+ index: d,
783
+ distance: O
784
+ };
785
+ }
786
+ return {
787
+ byDistance: m,
788
+ byIndex: l,
789
+ shortcut: g
790
+ };
791
+ }
792
+ function Wn(t, n, e, s, i, o, r) {
793
+ function u(l) {
794
+ const m = l.distance, S = l.index !== n.get();
795
+ o.add(m), m && (s.duration() ? t.start() : (t.update(), t.render(1), t.update())), S && (e.set(n.get()), n.set(l.index), r.emit("select"));
796
+ }
797
+ function c(l, m) {
798
+ const S = i.byDistance(l, m);
799
+ u(S);
800
+ }
801
+ function a(l, m) {
802
+ const S = n.clone().set(l), f = i.byIndex(S.get(), m);
803
+ u(f);
804
+ }
805
+ return {
806
+ distance: c,
807
+ index: a
808
+ };
809
+ }
810
+ function te(t, n, e, s, i, o, r, u) {
811
+ const c = {
812
+ passive: !0,
813
+ capture: !0
814
+ };
815
+ let a = 0;
816
+ function g(S) {
817
+ if (!u) return;
818
+ function f(p) {
819
+ if ((/* @__PURE__ */ new Date()).getTime() - a > 10) return;
820
+ r.emit("slideFocusStart"), t.scrollLeft = 0;
821
+ const h = e.findIndex((b) => b.includes(p));
822
+ Bt(h) && (i.useDuration(0), s.index(h, 0), r.emit("slideFocus"));
823
+ }
824
+ o.add(document, "keydown", l, !1), n.forEach((p, y) => {
825
+ o.add(p, "focus", (d) => {
826
+ (Lt(u) || u(S, d)) && f(y);
827
+ }, c);
828
+ });
829
+ }
830
+ function l(S) {
831
+ S.code === "Tab" && (a = (/* @__PURE__ */ new Date()).getTime());
832
+ }
833
+ return {
834
+ init: g
835
+ };
836
+ }
837
+ function mt(t) {
838
+ let n = t;
839
+ function e() {
840
+ return n;
841
+ }
842
+ function s(c) {
843
+ n = r(c);
844
+ }
845
+ function i(c) {
846
+ n += r(c);
847
+ }
848
+ function o(c) {
849
+ n -= r(c);
850
+ }
851
+ function r(c) {
852
+ return Bt(c) ? c : c.get();
853
+ }
854
+ return {
855
+ get: e,
856
+ set: s,
857
+ add: i,
858
+ subtract: o
859
+ };
860
+ }
861
+ function cn(t, n) {
862
+ const e = t.scroll === "x" ? r : u, s = n.style;
863
+ let i = null, o = !1;
864
+ function r(m) {
865
+ return `translate3d(${m}px,0px,0px)`;
866
+ }
867
+ function u(m) {
868
+ return `translate3d(0px,${m}px,0px)`;
869
+ }
870
+ function c(m) {
871
+ if (o) return;
872
+ const S = Bn(t.direction(m));
873
+ S !== i && (s.transform = e(S), i = S);
874
+ }
875
+ function a(m) {
876
+ o = !m;
877
+ }
878
+ function g() {
879
+ o || (s.transform = "", n.getAttribute("style") || n.removeAttribute("style"));
880
+ }
881
+ return {
882
+ clear: g,
883
+ to: c,
884
+ toggleActive: a
885
+ };
886
+ }
887
+ function ne(t, n, e, s, i, o, r, u, c) {
888
+ const g = ht(i), l = ht(i).reverse(), m = d().concat(h());
889
+ function S(x, w) {
890
+ return x.reduce((I, k) => I - i[k], w);
891
+ }
892
+ function f(x, w) {
893
+ return x.reduce((I, k) => S(I, w) > 0 ? I.concat([k]) : I, []);
894
+ }
895
+ function p(x) {
896
+ return o.map((w, I) => ({
897
+ start: w - s[I] + 0.5 + x,
898
+ end: w + n - 0.5 + x
899
+ }));
900
+ }
901
+ function y(x, w, I) {
902
+ const k = p(w);
903
+ return x.map((_) => {
904
+ const C = I ? 0 : -e, U = I ? e : 0, M = I ? "end" : "start", B = k[_][M];
905
+ return {
906
+ index: _,
907
+ loopPoint: B,
908
+ slideLocation: mt(-1),
909
+ translate: cn(t, c[_]),
910
+ target: () => u.get() > B ? C : U
911
+ };
912
+ });
913
+ }
914
+ function d() {
915
+ const x = r[0], w = f(l, x);
916
+ return y(w, e, !1);
917
+ }
918
+ function h() {
919
+ const x = n - r[0] - 1, w = f(g, x);
920
+ return y(w, -e, !0);
921
+ }
922
+ function b() {
923
+ return m.every(({
924
+ index: x
925
+ }) => {
926
+ const w = g.filter((I) => I !== x);
927
+ return S(w, n) <= 0.1;
928
+ });
929
+ }
930
+ function E() {
931
+ m.forEach((x) => {
932
+ const {
933
+ target: w,
934
+ translate: I,
935
+ slideLocation: k
936
+ } = x, _ = w();
937
+ _ !== k.get() && (I.to(_), k.set(_));
938
+ });
939
+ }
940
+ function O() {
941
+ m.forEach((x) => x.translate.clear());
942
+ }
943
+ return {
944
+ canLoop: b,
945
+ clear: O,
946
+ loop: E,
947
+ loopPoints: m
948
+ };
949
+ }
950
+ function ee(t, n, e) {
951
+ let s, i = !1;
952
+ function o(c) {
953
+ if (!e) return;
954
+ function a(g) {
955
+ for (const l of g)
956
+ if (l.type === "childList") {
957
+ c.reInit(), n.emit("slidesChanged");
958
+ break;
959
+ }
960
+ }
961
+ s = new MutationObserver((g) => {
962
+ i || (Lt(e) || e(c, g)) && a(g);
963
+ }), s.observe(t, {
964
+ childList: !0
965
+ });
966
+ }
967
+ function r() {
968
+ s && s.disconnect(), i = !0;
969
+ }
970
+ return {
971
+ init: o,
972
+ destroy: r
973
+ };
974
+ }
975
+ function oe(t, n, e, s) {
976
+ const i = {};
977
+ let o = null, r = null, u, c = !1;
978
+ function a() {
979
+ u = new IntersectionObserver((f) => {
980
+ c || (f.forEach((p) => {
981
+ const y = n.indexOf(p.target);
982
+ i[y] = p;
983
+ }), o = null, r = null, e.emit("slidesInView"));
984
+ }, {
985
+ root: t.parentElement,
986
+ threshold: s
987
+ }), n.forEach((f) => u.observe(f));
988
+ }
989
+ function g() {
990
+ u && u.disconnect(), c = !0;
991
+ }
992
+ function l(f) {
993
+ return St(i).reduce((p, y) => {
994
+ const d = parseInt(y), {
995
+ isIntersecting: h
996
+ } = i[d];
997
+ return (f && h || !f && !h) && p.push(d), p;
998
+ }, []);
999
+ }
1000
+ function m(f = !0) {
1001
+ if (f && o) return o;
1002
+ if (!f && r) return r;
1003
+ const p = l(f);
1004
+ return f && (o = p), f || (r = p), p;
1005
+ }
1006
+ return {
1007
+ init: a,
1008
+ destroy: g,
1009
+ get: m
1010
+ };
1011
+ }
1012
+ function re(t, n, e, s, i, o) {
1013
+ const {
1014
+ measureSize: r,
1015
+ startEdge: u,
1016
+ endEdge: c
1017
+ } = t, a = e[0] && i, g = f(), l = p(), m = e.map(r), S = y();
1018
+ function f() {
1019
+ if (!a) return 0;
1020
+ const h = e[0];
1021
+ return P(n[u] - h[u]);
1022
+ }
1023
+ function p() {
1024
+ if (!a) return 0;
1025
+ const h = o.getComputedStyle(Z(s));
1026
+ return parseFloat(h.getPropertyValue(`margin-${c}`));
1027
+ }
1028
+ function y() {
1029
+ return e.map((h, b, E) => {
1030
+ const O = !b, L = Ft(E, b);
1031
+ return O ? m[b] + g : L ? m[b] + l : E[b + 1][u] - h[u];
1032
+ }).map(P);
1033
+ }
1034
+ return {
1035
+ slideSizes: m,
1036
+ slideSizesWithGaps: S,
1037
+ startGap: g,
1038
+ endGap: l
1039
+ };
1040
+ }
1041
+ function se(t, n, e, s, i, o, r, u, c) {
1042
+ const {
1043
+ startEdge: a,
1044
+ endEdge: g,
1045
+ direction: l
1046
+ } = t, m = Bt(e);
1047
+ function S(d, h) {
1048
+ return ht(d).filter((b) => b % h === 0).map((b) => d.slice(b, b + h));
1049
+ }
1050
+ function f(d) {
1051
+ return d.length ? ht(d).reduce((h, b, E) => {
1052
+ const O = Z(h) || 0, L = O === 0, x = b === vt(d), w = i[a] - o[O][a], I = i[a] - o[b][g], k = !s && L ? l(r) : 0, _ = !s && x ? l(u) : 0, C = P(I - _ - (w + k));
1053
+ return E && C > n + c && h.push(b), x && h.push(d.length), h;
1054
+ }, []).map((h, b, E) => {
1055
+ const O = Math.max(E[b - 1] || 0);
1056
+ return d.slice(O, h);
1057
+ }) : [];
1058
+ }
1059
+ function p(d) {
1060
+ return m ? S(d, e) : f(d);
1061
+ }
1062
+ return {
1063
+ groupSlides: p
1064
+ };
1065
+ }
1066
+ function ie(t, n, e, s, i, o, r) {
1067
+ const {
1068
+ align: u,
1069
+ axis: c,
1070
+ direction: a,
1071
+ startIndex: g,
1072
+ loop: l,
1073
+ duration: m,
1074
+ dragFree: S,
1075
+ dragThreshold: f,
1076
+ inViewThreshold: p,
1077
+ slidesToScroll: y,
1078
+ skipSnaps: d,
1079
+ containScroll: h,
1080
+ watchResize: b,
1081
+ watchSlides: E,
1082
+ watchDrag: O,
1083
+ watchFocus: L
1084
+ } = o, x = 2, w = $n(), I = w.measure(n), k = e.map(w.measure), _ = Vn(c, a), C = _.measureSize(I), U = Rn(C), M = An(u, C), B = !l && !!h, j = l || !!h, {
1085
+ slideSizes: $,
1086
+ slideSizesWithGaps: G,
1087
+ startGap: q,
1088
+ endGap: Q
1089
+ } = re(_, I, k, e, j, i), R = se(_, C, y, l, I, k, q, Q, x), {
1090
+ snaps: X,
1091
+ snapsAligned: Y
1092
+ } = Jn(_, M, I, k, R), W = -Z(X) + Z(G), {
1093
+ snapsContained: ft,
1094
+ scrollContainLimit: dt
1095
+ } = qn(C, W, Y, h, x), z = B ? ft : Y, {
1096
+ limit: A
1097
+ } = Zn(W, z, l), tt = sn(vt(z), g, l), H = tt.clone(), D = ht(e), v = ({
1098
+ dragHandler: lt,
1099
+ scrollBody: Mt,
1100
+ scrollBounds: Tt,
1101
+ options: {
1102
+ loop: xt
1103
+ }
1104
+ }) => {
1105
+ xt || Tt.constrain(lt.pointerDown()), Mt.seek();
1106
+ }, T = ({
1107
+ scrollBody: lt,
1108
+ translate: Mt,
1109
+ location: Tt,
1110
+ offsetLocation: xt,
1111
+ previousLocation: pn,
1112
+ scrollLooper: mn,
1113
+ slideLooper: gn,
1114
+ dragHandler: yn,
1115
+ animation: hn,
1116
+ eventHandler: Rt,
1117
+ scrollBounds: Sn,
1118
+ options: {
1119
+ loop: Ht
1120
+ }
1121
+ }, Ut) => {
1122
+ const Gt = lt.settled(), bn = !Sn.shouldConstrain(), qt = Ht ? Gt : Gt && bn, Zt = qt && !yn.pointerDown();
1123
+ Zt && hn.stop();
1124
+ const vn = Tt.get() * Ut + pn.get() * (1 - Ut);
1125
+ xt.set(vn), Ht && (mn.loop(lt.direction()), gn.loop()), Mt.to(xt.get()), Zt && Rt.emit("settle"), qt || Rt.emit("scroll");
1126
+ }, N = Fn(s, i, () => v(_t), (lt) => T(_t, lt)), F = 0.68, K = z[tt.get()], nt = mt(K), ct = mt(K), rt = mt(K), ut = mt(K), pt = Un(nt, rt, ct, ut, m, F), It = Yn(l, z, W, A, ut), Ot = Wn(N, tt, H, pt, It, ut, r), zt = Kn(A), jt = bt(), fn = oe(n, e, r, p), {
1127
+ slideRegistry: $t
1128
+ } = Xn(B, h, z, dt, R, D), dn = te(t, e, $t, Ot, pt, jt, r, L), _t = {
1129
+ ownerDocument: s,
1130
+ ownerWindow: i,
1131
+ eventHandler: r,
1132
+ containerRect: I,
1133
+ slideRects: k,
1134
+ animation: N,
1135
+ axis: _,
1136
+ dragHandler: zn(_, t, s, i, ut, jn(_, i), nt, N, Ot, pt, It, tt, r, U, S, f, d, F, O),
1137
+ eventStore: jt,
1138
+ percentOfView: U,
1139
+ index: tt,
1140
+ indexPrevious: H,
1141
+ limit: A,
1142
+ location: nt,
1143
+ offsetLocation: rt,
1144
+ previousLocation: ct,
1145
+ options: o,
1146
+ resizeHandler: Hn(n, r, i, e, _, b, w),
1147
+ scrollBody: pt,
1148
+ scrollBounds: Gn(A, rt, ut, pt, U),
1149
+ scrollLooper: Qn(W, A, rt, [nt, rt, ct, ut]),
1150
+ scrollProgress: zt,
1151
+ scrollSnapList: z.map(zt.get),
1152
+ scrollSnaps: z,
1153
+ scrollTarget: It,
1154
+ scrollTo: Ot,
1155
+ slideLooper: ne(_, C, W, $, G, X, z, rt, e),
1156
+ slideFocus: dn,
1157
+ slidesHandler: ee(n, r, E),
1158
+ slidesInView: fn,
1159
+ slideIndexes: D,
1160
+ slideRegistry: $t,
1161
+ slidesToScroll: R,
1162
+ target: ut,
1163
+ translate: cn(_, n)
1164
+ };
1165
+ return _t;
1166
+ }
1167
+ function ce() {
1168
+ let t = {}, n;
1169
+ function e(a) {
1170
+ n = a;
1171
+ }
1172
+ function s(a) {
1173
+ return t[a] || [];
1174
+ }
1175
+ function i(a) {
1176
+ return s(a).forEach((g) => g(n, a)), c;
1177
+ }
1178
+ function o(a, g) {
1179
+ return t[a] = s(a).concat([g]), c;
1180
+ }
1181
+ function r(a, g) {
1182
+ return t[a] = s(a).filter((l) => l !== g), c;
1183
+ }
1184
+ function u() {
1185
+ t = {};
1186
+ }
1187
+ const c = {
1188
+ init: e,
1189
+ emit: i,
1190
+ off: r,
1191
+ on: o,
1192
+ clear: u
1193
+ };
1194
+ return c;
1195
+ }
1196
+ const ue = {
1197
+ align: "center",
1198
+ axis: "x",
1199
+ container: null,
1200
+ slides: null,
1201
+ containScroll: "trimSnaps",
1202
+ direction: "ltr",
1203
+ slidesToScroll: 1,
1204
+ inViewThreshold: 0,
1205
+ breakpoints: {},
1206
+ dragFree: !1,
1207
+ dragThreshold: 10,
1208
+ loop: !1,
1209
+ skipSnaps: !1,
1210
+ duration: 25,
1211
+ startIndex: 0,
1212
+ active: !0,
1213
+ watchDrag: !0,
1214
+ watchResize: !0,
1215
+ watchSlides: !0,
1216
+ watchFocus: !0
1217
+ };
1218
+ function ae(t) {
1219
+ function n(o, r) {
1220
+ return rn(o, r || {});
1221
+ }
1222
+ function e(o) {
1223
+ const r = o.breakpoints || {}, u = St(r).filter((c) => t.matchMedia(c).matches).map((c) => r[c]).reduce((c, a) => n(c, a), {});
1224
+ return n(o, u);
1225
+ }
1226
+ function s(o) {
1227
+ return o.map((r) => St(r.breakpoints || {})).reduce((r, u) => r.concat(u), []).map(t.matchMedia);
1228
+ }
1229
+ return {
1230
+ mergeOptions: n,
1231
+ optionsAtMedia: e,
1232
+ optionsMediaQueries: s
1233
+ };
1234
+ }
1235
+ function le(t) {
1236
+ let n = [];
1237
+ function e(o, r) {
1238
+ return n = r.filter(({
1239
+ options: u
1240
+ }) => t.optionsAtMedia(u).active !== !1), n.forEach((u) => u.init(o, t)), r.reduce((u, c) => Object.assign(u, {
1241
+ [c.name]: c
1242
+ }), {});
1243
+ }
1244
+ function s() {
1245
+ n = n.filter((o) => o.destroy());
1246
+ }
1247
+ return {
1248
+ init: e,
1249
+ destroy: s
1250
+ };
1251
+ }
1252
+ function Et(t, n, e) {
1253
+ const s = t.ownerDocument, i = s.defaultView, o = ae(i), r = le(o), u = bt(), c = ce(), {
1254
+ mergeOptions: a,
1255
+ optionsAtMedia: g,
1256
+ optionsMediaQueries: l
1257
+ } = o, {
1258
+ on: m,
1259
+ off: S,
1260
+ emit: f
1261
+ } = c, p = _;
1262
+ let y = !1, d, h = a(ue, Et.globalOptions), b = a(h), E = [], O, L, x;
1263
+ function w() {
1264
+ const {
1265
+ container: D,
1266
+ slides: v
1267
+ } = b;
1268
+ L = (Pt(D) ? t.querySelector(D) : D) || t.children[0];
1269
+ const N = Pt(v) ? L.querySelectorAll(v) : v;
1270
+ x = [].slice.call(N || L.children);
1271
+ }
1272
+ function I(D) {
1273
+ const v = ie(t, L, x, s, i, D, c);
1274
+ if (D.loop && !v.slideLooper.canLoop()) {
1275
+ const T = Object.assign({}, D, {
1276
+ loop: !1
1277
+ });
1278
+ return I(T);
1279
+ }
1280
+ return v;
1281
+ }
1282
+ function k(D, v) {
1283
+ y || (h = a(h, D), b = g(h), E = v || E, w(), d = I(b), l([h, ...E.map(({
1284
+ options: T
1285
+ }) => T)]).forEach((T) => u.add(T, "change", _)), b.active && (d.translate.to(d.location.get()), d.animation.init(), d.slidesInView.init(), d.slideFocus.init(H), d.eventHandler.init(H), d.resizeHandler.init(H), d.slidesHandler.init(H), d.options.loop && d.slideLooper.loop(), L.offsetParent && x.length && d.dragHandler.init(H), O = r.init(H, E)));
1286
+ }
1287
+ function _(D, v) {
1288
+ const T = R();
1289
+ C(), k(a({
1290
+ startIndex: T
1291
+ }, D), v), c.emit("reInit");
1292
+ }
1293
+ function C() {
1294
+ d.dragHandler.destroy(), d.eventStore.clear(), d.translate.clear(), d.slideLooper.clear(), d.resizeHandler.destroy(), d.slidesHandler.destroy(), d.slidesInView.destroy(), d.animation.destroy(), r.destroy(), u.clear();
1295
+ }
1296
+ function U() {
1297
+ y || (y = !0, u.clear(), C(), c.emit("destroy"), c.clear());
1298
+ }
1299
+ function M(D, v, T) {
1300
+ !b.active || y || (d.scrollBody.useBaseFriction().useDuration(v === !0 ? 0 : b.duration), d.scrollTo.index(D, T || 0));
1301
+ }
1302
+ function B(D) {
1303
+ const v = d.index.add(1).get();
1304
+ M(v, D, -1);
1305
+ }
1306
+ function j(D) {
1307
+ const v = d.index.add(-1).get();
1308
+ M(v, D, 1);
1309
+ }
1310
+ function $() {
1311
+ return d.index.add(1).get() !== R();
1312
+ }
1313
+ function G() {
1314
+ return d.index.add(-1).get() !== R();
1315
+ }
1316
+ function q() {
1317
+ return d.scrollSnapList;
1318
+ }
1319
+ function Q() {
1320
+ return d.scrollProgress.get(d.offsetLocation.get());
1321
+ }
1322
+ function R() {
1323
+ return d.index.get();
1324
+ }
1325
+ function X() {
1326
+ return d.indexPrevious.get();
1327
+ }
1328
+ function Y() {
1329
+ return d.slidesInView.get();
1330
+ }
1331
+ function W() {
1332
+ return d.slidesInView.get(!1);
1333
+ }
1334
+ function ft() {
1335
+ return O;
1336
+ }
1337
+ function dt() {
1338
+ return d;
1339
+ }
1340
+ function z() {
1341
+ return t;
1342
+ }
1343
+ function A() {
1344
+ return L;
1345
+ }
1346
+ function tt() {
1347
+ return x;
1348
+ }
1349
+ const H = {
1350
+ canScrollNext: $,
1351
+ canScrollPrev: G,
1352
+ containerNode: A,
1353
+ internalEngine: dt,
1354
+ destroy: U,
1355
+ off: S,
1356
+ on: m,
1357
+ emit: f,
1358
+ plugins: ft,
1359
+ previousScrollSnap: X,
1360
+ reInit: p,
1361
+ rootNode: z,
1362
+ scrollNext: B,
1363
+ scrollPrev: j,
1364
+ scrollProgress: Q,
1365
+ scrollSnapList: q,
1366
+ scrollTo: M,
1367
+ selectedScrollSnap: R,
1368
+ slideNodes: tt,
1369
+ slidesInView: Y,
1370
+ slidesNotInView: W
1371
+ };
1372
+ return k(n, e), setTimeout(() => c.emit("init"), 0), H;
1373
+ }
1374
+ Et.globalOptions = void 0;
1375
+ function Vt(t = {}, n = []) {
1376
+ const e = yt(t), s = yt(n), [i, o] = J(), [r, u] = J(), c = et(() => {
1377
+ i && i.reInit(e.current, s.current);
1378
+ }, [i]);
1379
+ return ot(() => {
1380
+ Ct(e.current, t) || (e.current = t, c());
1381
+ }, [t, c]), ot(() => {
1382
+ Nn(s.current, n) || (s.current = n, c());
1383
+ }, [n, c]), ot(() => {
1384
+ if (kn() && r) {
1385
+ Et.globalOptions = Vt.globalOptions;
1386
+ const a = Et(r, e.current, s.current);
1387
+ return o(a), () => a.destroy();
1388
+ } else
1389
+ o(void 0);
1390
+ }, [r, o]), [u, i];
1391
+ }
1392
+ Vt.globalOptions = void 0;
1393
+ const fe = {
1394
+ "purpur-carousel": "_purpur-carousel_9m686_1",
1395
+ "purpur-carousel__viewport": "_purpur-carousel__viewport_9m686_17",
1396
+ "purpur-carousel__container": "_purpur-carousel__container_9m686_24",
1397
+ "purpur-carousel__page-indicators": "_purpur-carousel__page-indicators_9m686_32",
1398
+ "purpur-carousel__controls": "_purpur-carousel__controls_9m686_41",
1399
+ "purpur-carousel__autoplay-pause-button": "_purpur-carousel__autoplay-pause-button_9m686_45",
1400
+ "purpur-carousel__buttons": "_purpur-carousel__buttons_9m686_53",
1401
+ "purpur-carousel__slide": "_purpur-carousel__slide_9m686_64"
1402
+ }, de = {
1403
+ "carousel-page-indicator": "_carousel-page-indicator_y8joq_1",
1404
+ "dot-progress": "_dot-progress_y8joq_1"
1405
+ }, pe = nn.bind(de), me = "carousel-page-indicator", ge = 4e3, ye = ({
1406
+ index: t,
1407
+ selectedIndex: n,
1408
+ totalIndicators: e,
1409
+ showProgress: s,
1410
+ delay: i = ge
1411
+ }) => {
1412
+ const o = () => {
1413
+ const m = Math.min(t, e - 1 - t);
1414
+ let S = u;
1415
+ if (!g) return 0;
1416
+ if (m === 0) return 150;
1417
+ c === 0 && (u === 2 && (S = 1), u === 3 && (S = 2));
1418
+ const f = 1 / (2 * (S || 0.5));
1419
+ return f < 0.25 ? 50 : f < 0.5 ? 100 : 150;
1420
+ }, r = t === n, u = Math.abs(n - t), c = Math.min(n, e - 1 - n), a = Math.max(5 - c, 3), g = u < a, l = e < 6 ? 150 : o();
1421
+ return /* @__PURE__ */ V(
1422
+ "li",
1423
+ {
1424
+ className: pe(me),
1425
+ "data-selected": r,
1426
+ "data-show-progress": s,
1427
+ style: {
1428
+ marginLeft: g && t > 0 ? "var(--purpur-spacing-100)" : void 0,
1429
+ width: r ? "var(--purpur-spacing-400)" : `var(--purpur-spacing-${l})`,
1430
+ height: `var(--purpur-spacing-${l})`,
1431
+ // @ts-expect-error TS doesn't know about CSS variables yet
1432
+ "--progress-time": `${i}ms`
1433
+ }
1434
+ }
1435
+ );
1436
+ }, he = (t, n) => {
1437
+ const e = yt(!1), [s, i] = J(!1), o = t?.plugins()?.autoplay, r = et(() => {
1438
+ if (!o) return;
1439
+ (o.isPlaying() ? o.stop : o.play)();
1440
+ }, [o]), u = () => {
1441
+ o && o.reset();
1442
+ };
1443
+ return ot(() => {
1444
+ o && (i(o.isPlaying()), t.on("autoplay:play", () => i(!0)).on("autoplay:stop", () => i(!1)).on("reInit", () => i(o.isPlaying())));
1445
+ }, [o, t]), ot(() => {
1446
+ if (!o || !n?.current) return;
1447
+ const c = new IntersectionObserver(
1448
+ ([g]) => {
1449
+ g.isIntersecting ? e.current && (e.current = !1, o.play()) : o.isPlaying() && (e.current = !0, o.stop());
1450
+ },
1451
+ { threshold: 0 }
1452
+ ), a = n.current;
1453
+ return c.observe(a), () => c.disconnect();
1454
+ }, [o, n]), {
1455
+ isPlaying: s,
1456
+ toggle: r,
1457
+ reset: u
1458
+ };
1459
+ }, Se = (t) => {
1460
+ const [n, e] = J(0), [s, i] = J([]), o = et(
1461
+ (c) => {
1462
+ t && t.scrollTo(c);
1463
+ },
1464
+ [t]
1465
+ ), r = et((c) => {
1466
+ i(c.scrollSnapList());
1467
+ }, []), u = et((c) => {
1468
+ e(c.selectedScrollSnap());
1469
+ }, []);
1470
+ return ot(() => {
1471
+ t && (r(t), u(t), t.on("reInit", r).on("reInit", u).on("select", u));
1472
+ }, [t, r, u]), {
1473
+ selectedIndex: n,
1474
+ scrollSnaps: s,
1475
+ onIndicatorClick: o
1476
+ };
1477
+ }, un = "(prefers-reduced-motion: reduce)", be = () => typeof window > "u" ? !1 : window.matchMedia(un).matches, ve = () => {
1478
+ const [t, n] = J(be);
1479
+ return ot(() => {
1480
+ if (typeof window > "u")
1481
+ return;
1482
+ const e = window.matchMedia(un), s = () => {
1483
+ n(e.matches);
1484
+ };
1485
+ return s(), e.addEventListener("change", s), () => {
1486
+ e.removeEventListener("change", s);
1487
+ };
1488
+ }, []), t;
1489
+ }, xe = (t, n, e) => {
1490
+ const [s, i] = J(!0), [o, r] = J(!0), u = et(() => {
1491
+ t && (t.scrollPrev(), e.reset());
1492
+ }, [t, e]), c = et(() => {
1493
+ t && (t.scrollNext(), e.reset());
1494
+ }, [t, e]), a = et((l) => {
1495
+ i(!l.canScrollPrev()), r(!l.canScrollNext());
1496
+ }, []), g = et(
1497
+ (l) => {
1498
+ switch (l.key) {
1499
+ case "ArrowLeft":
1500
+ u(), l.target?.previousSibling?.focus();
1501
+ break;
1502
+ case "ArrowRight":
1503
+ c(), l.target?.nextSibling?.focus();
1504
+ break;
1505
+ }
1506
+ },
1507
+ [u, c]
1508
+ );
1509
+ return ot(() => {
1510
+ const l = n.current;
1511
+ if (t && l)
1512
+ return a(t), t.on("reInit", a).on("select", a), l.addEventListener("keydown", g), () => {
1513
+ l.removeEventListener("keydown", g);
1514
+ };
1515
+ }, [t, a, n, g]), {
1516
+ prevBtnDisabled: s,
1517
+ nextBtnDisabled: o,
1518
+ onPrevButtonClick: u,
1519
+ onNextButtonClick: c
1520
+ };
1521
+ }, st = nn.bind(fe), Wt = typeof window > "u" ? ot : En, it = "purpur-carousel", an = ({
1522
+ className: t,
1523
+ options: n = {},
1524
+ children: e,
1525
+ controllerPlacement: s = "bottom",
1526
+ ...i
1527
+ }) => {
1528
+ const o = yt(null), r = yt(null), u = typeof i.autoplay == "boolean" ? {} : i.autoplay ?? {}, c = st(it, t), a = ve(), g = wn(
1529
+ () => a ? { ...n, duration: 0 } : n,
1530
+ [n, a]
1531
+ ), l = Ee(g), m = [];
1532
+ i.autoplay && m.push(
1533
+ Nt({
1534
+ ...u,
1535
+ jump: a
1536
+ })
1537
+ );
1538
+ const [S, f] = Vt({ align: "start", ...l }, m), p = he(f, o), y = xe(f, o, p), { selectedIndex: d, scrollSnaps: h } = Se(f), b = () => Qt.Children.toArray(e).map((L) => Qt.Children.only(L)), E = () => /* @__PURE__ */ wt("div", { className: st(`${it}__controls`), children: [
1539
+ i.hidePageIndicator !== !0 && /* @__PURE__ */ wt(xn, { children: [
1540
+ /* @__PURE__ */ V(
1541
+ "ul",
1542
+ {
1543
+ className: st(`${it}__page-indicators`),
1544
+ "data-overflowing": h.length > 5,
1545
+ "aria-label": `${i.ariaLabels.autoplay.indicator} ${d + 1}`,
1546
+ "aria-live": "off",
1547
+ children: h.map((L, x, w) => /* @__PURE__ */ V(
1548
+ ye,
1549
+ {
1550
+ index: x,
1551
+ ref: r,
1552
+ showProgress: p.isPlaying,
1553
+ totalIndicators: w.length,
1554
+ selectedIndex: d,
1555
+ delay: u.delay
1556
+ },
1557
+ x
1558
+ ))
1559
+ }
1560
+ ),
1561
+ i.autoplay && /* @__PURE__ */ V(
1562
+ Dt,
1563
+ {
1564
+ variant: "text",
1565
+ "aria-label": p.isPlaying ? i.ariaLabels.autoplay.pause : i.ariaLabels.autoplay.play,
1566
+ onClick: p.toggle,
1567
+ iconOnly: !0,
1568
+ size: "sm",
1569
+ className: st(`${it}__autoplay-pause-button`),
1570
+ children: p.isPlaying ? /* @__PURE__ */ V(on, { size: "xs" }) : /* @__PURE__ */ V(en, { size: "xs" })
1571
+ }
1572
+ )
1573
+ ] }),
1574
+ /* @__PURE__ */ wt("div", { className: st(`${it}__buttons`), children: [
1575
+ /* @__PURE__ */ V(
1576
+ Dt,
1577
+ {
1578
+ iconOnly: !0,
1579
+ "aria-label": i.ariaLabels.previousButton,
1580
+ size: "md",
1581
+ variant: "secondary",
1582
+ onClick: y.onPrevButtonClick,
1583
+ disabled: y.prevBtnDisabled,
1584
+ children: /* @__PURE__ */ V(Ln, { size: "xs" })
1585
+ }
1586
+ ),
1587
+ /* @__PURE__ */ V(
1588
+ Dt,
1589
+ {
1590
+ iconOnly: !0,
1591
+ "aria-label": i.ariaLabels.nextButton,
1592
+ size: "md",
1593
+ variant: "secondary",
1594
+ onClick: y.onNextButtonClick,
1595
+ disabled: y.nextBtnDisabled,
1596
+ children: /* @__PURE__ */ V(In, { size: "xs" })
1597
+ }
1598
+ )
1599
+ ] })
1600
+ ] }), O = Math.max(0, Math.min(50, i.nextSlidePreview || 0));
1601
+ return /* @__PURE__ */ wt(
1602
+ "section",
1603
+ {
1604
+ ref: o,
1605
+ className: c,
1606
+ "data-is-looping": !!n?.loop,
1607
+ style: {
1608
+ // @ts-expect-error TS doesn't know about CSS variables yet
1609
+ "--n": l.slidesToShow || 1,
1610
+ "--preview": O,
1611
+ "--slide-spacing": `var(--purpur-spacing-${i.slideSpacing || 300})`
1612
+ },
1613
+ children: [
1614
+ s === "top" && E(),
1615
+ /* @__PURE__ */ V("div", { className: st(`${it}__viewport`), ref: S, children: /* @__PURE__ */ V("ul", { className: st(`${it}__container`), children: b() }) }),
1616
+ s === "bottom" && E()
1617
+ ]
1618
+ }
1619
+ );
1620
+ }, we = ({ children: t }) => /* @__PURE__ */ V("li", { className: st(`${it}__slide`), children: t });
1621
+ an.displayName = "Carousel";
1622
+ an.Slide = we;
1623
+ function Ee(t = {}) {
1624
+ const [n, e] = J(!1), [, s] = J(0);
1625
+ return Wt(() => {
1626
+ e(!0);
1627
+ }, []), Wt(() => {
1628
+ if (!n || !ln() || !t.breakpoints)
1629
+ return;
1630
+ const i = Object.keys(t.breakpoints).map(
1631
+ (r) => window.matchMedia(r)
1632
+ ), o = () => {
1633
+ s((r) => r + 1);
1634
+ };
1635
+ return i.forEach((r) => {
1636
+ r.addEventListener("change", o);
1637
+ }), () => {
1638
+ i.forEach((r) => {
1639
+ r.removeEventListener("change", o);
1640
+ });
1641
+ };
1642
+ }, [t.breakpoints, n]), Le(t, n);
1643
+ }
1644
+ function ln() {
1645
+ return typeof window < "u" && typeof window.matchMedia == "function";
1646
+ }
1647
+ function Le(t = {}, n = !0) {
1648
+ const e = { ...t };
1649
+ if (!n || !ln() || !t.breakpoints)
1650
+ return e;
1651
+ for (const s in t.breakpoints)
1652
+ Object.assign(e, window.matchMedia(s).matches ? t.breakpoints[s] : {});
1653
+ return e;
1654
+ }
1655
+ export {
1656
+ an as C
1657
+ };
1658
+ //# sourceMappingURL=carousel-BIKcwvYz.mjs.map