@purpur/library 9.5.0 → 9.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +66 -0
- package/CHANGELOG.md +29 -1
- package/dist/LICENSE.txt +27 -6
- package/dist/ThemeProvider-D7oXcAde.js +2 -0
- package/dist/{ThemeProvider-Dy771oix.js.map → ThemeProvider-D7oXcAde.js.map} +1 -1
- package/dist/ThemeProvider-DiDBfyFA.mjs +348 -0
- package/dist/{ThemeProvider-CkX-BNWN.mjs.map → ThemeProvider-DiDBfyFA.mjs.map} +1 -1
- package/dist/avatar-CYnD57o4.js +2 -0
- package/dist/avatar-CYnD57o4.js.map +1 -0
- package/dist/avatar-CzbDD1MK.mjs +27 -0
- package/dist/avatar-CzbDD1MK.mjs.map +1 -0
- package/dist/avatar.cjs.js +2 -0
- package/dist/avatar.cjs.js.map +1 -0
- package/dist/avatar.es.js +5 -0
- package/dist/avatar.es.js.map +1 -0
- package/dist/carousel-BIKcwvYz.mjs +1658 -0
- package/dist/carousel-BIKcwvYz.mjs.map +1 -0
- package/dist/carousel-DnSaLDZf.js +2 -0
- package/dist/carousel-DnSaLDZf.js.map +1 -0
- package/dist/carousel.cjs.js +1 -1
- package/dist/carousel.es.js +1 -1
- package/dist/color-dot-BEE5rKco.js +2 -0
- package/dist/color-dot-BEE5rKco.js.map +1 -0
- package/dist/color-dot-Dz9yzVX3.mjs +28 -0
- package/dist/color-dot-Dz9yzVX3.mjs.map +1 -0
- package/dist/color-dot.cjs.js +1 -1
- package/dist/color-dot.es.js +4 -3
- package/dist/comparison-table-0UDB2BTU.js +2 -0
- package/dist/comparison-table-0UDB2BTU.js.map +1 -0
- package/dist/comparison-table-CjTE-fHN.mjs +292 -0
- package/dist/comparison-table-CjTE-fHN.mjs.map +1 -0
- package/dist/comparison-table.cjs.js +1 -1
- package/dist/comparison-table.es.js +1 -1
- package/dist/components/avatar/src/avatar-constants.d.ts +2 -0
- package/dist/components/avatar/src/avatar-constants.d.ts.map +1 -0
- package/dist/components/avatar/src/avatar.d.ts +26 -0
- package/dist/components/avatar/src/avatar.d.ts.map +1 -0
- package/dist/components/button/src/button.visual.fixtures.d.ts +43 -0
- package/dist/components/button/src/button.visual.fixtures.d.ts.map +1 -0
- package/dist/components/carousel/src/carousel.d.ts.map +1 -1
- package/dist/components/color-dot/src/color-dot.d.ts +18 -8
- package/dist/components/color-dot/src/color-dot.d.ts.map +1 -1
- package/dist/components/comparison-table/src/components/OptionCard/option-card.d.ts.map +1 -1
- package/dist/components/date-picker/src/date-picker.d.ts +8 -0
- package/dist/components/date-picker/src/date-picker.d.ts.map +1 -1
- package/dist/components/drawer/src/drawer-content.d.ts +21 -0
- package/dist/components/drawer/src/drawer-content.d.ts.map +1 -1
- package/dist/components/hero-banner/src/hero-banner.visual.fixtures.d.ts +14 -0
- package/dist/components/hero-banner/src/hero-banner.visual.fixtures.d.ts.map +1 -0
- package/dist/components/loading/src/loading-dots.d.ts +19 -0
- package/dist/components/loading/src/loading-dots.d.ts.map +1 -0
- package/dist/components/loading/src/loading-text.d.ts +21 -0
- package/dist/components/loading/src/loading-text.d.ts.map +1 -0
- package/dist/components/loading/src/loading.d.ts +10 -0
- package/dist/components/loading/src/loading.d.ts.map +1 -0
- package/dist/components/message/src/message-bubble.d.ts +22 -0
- package/dist/components/message/src/message-bubble.d.ts.map +1 -0
- package/dist/components/message/src/message-stamp.d.ts +26 -0
- package/dist/components/message/src/message-stamp.d.ts.map +1 -0
- package/dist/components/message/src/message-utils.d.ts +3 -0
- package/dist/components/message/src/message-utils.d.ts.map +1 -0
- package/dist/components/message/src/message.d.ts +42 -0
- package/dist/components/message/src/message.d.ts.map +1 -0
- package/dist/components/modal/src/modal-content.d.ts +21 -0
- package/dist/components/modal/src/modal-content.d.ts.map +1 -1
- package/dist/components/modal/src/modal.d.ts +2 -0
- package/dist/components/modal/src/modal.d.ts.map +1 -1
- package/dist/components/popover/src/popover-content.d.ts +14 -0
- package/dist/components/popover/src/popover-content.d.ts.map +1 -1
- package/dist/components/radio-card-group/src/is-radio-card-item.d.ts +4 -0
- package/dist/components/radio-card-group/src/is-radio-card-item.d.ts.map +1 -0
- package/dist/components/radio-card-group/src/radio-card-group.constants.d.ts +5 -0
- package/dist/components/radio-card-group/src/radio-card-group.constants.d.ts.map +1 -0
- package/dist/components/radio-card-group/src/radio-card-group.d.ts +5 -6
- package/dist/components/radio-card-group/src/radio-card-group.d.ts.map +1 -1
- package/dist/components/radio-card-group/src/radio-card-item.d.ts +1 -2
- package/dist/components/radio-card-group/src/radio-card-item.d.ts.map +1 -1
- package/dist/components/search-field/src/search-field-autocomplete.d.ts +6 -3
- package/dist/components/search-field/src/search-field-autocomplete.d.ts.map +1 -1
- package/dist/components/search-field/src/search-field-base.d.ts +10 -3
- package/dist/components/search-field/src/search-field-base.d.ts.map +1 -1
- package/dist/components/search-field/src/search-field-button.d.ts +3 -1
- package/dist/components/search-field/src/search-field-button.d.ts.map +1 -1
- package/dist/components/search-field/src/search-field.d.ts +12 -6
- package/dist/components/search-field/src/search-field.d.ts.map +1 -1
- package/dist/components/table/src/drag-indicator-circle.d.ts +8 -1
- package/dist/components/table/src/drag-indicator-circle.d.ts.map +1 -1
- package/dist/components/table/src/table.d.ts.map +1 -1
- package/dist/components/tooltip/src/tooltip.d.ts +21 -0
- package/dist/components/tooltip/src/tooltip.d.ts.map +1 -1
- package/dist/components-metadata.js +33 -4
- package/dist/date-picker-CIizn3Pv.js +2 -0
- package/dist/{date-picker-uyPKJulK.js.map → date-picker-CIizn3Pv.js.map} +1 -1
- package/dist/date-picker-DixxW60s.mjs +1617 -0
- package/dist/{date-picker-CzxhZxsw.mjs.map → date-picker-DixxW60s.mjs.map} +1 -1
- package/dist/date-picker.cjs.js +1 -1
- package/dist/date-picker.es.js +1 -1
- package/dist/drawer-BzkRd9F0.mjs +577 -0
- package/dist/drawer-BzkRd9F0.mjs.map +1 -0
- package/dist/drawer-DyhsP34o.js +2 -0
- package/dist/drawer-DyhsP34o.js.map +1 -0
- package/dist/drawer.cjs.js +1 -1
- package/dist/drawer.es.js +1 -1
- package/dist/{footer-D9AcPwlH.js → footer-3Y-664-8.js} +2 -2
- package/dist/{footer-D9AcPwlH.js.map → footer-3Y-664-8.js.map} +1 -1
- package/dist/{footer-BLPlXaZK.mjs → footer-DenAcikt.mjs} +3 -3
- package/dist/{footer-BLPlXaZK.mjs.map → footer-DenAcikt.mjs.map} +1 -1
- package/dist/footer.cjs.js +1 -1
- package/dist/footer.es.js +1 -1
- package/dist/{hero-banner-DkC_BqM7.mjs → hero-banner-B7xrDfzN.mjs} +2 -2
- package/dist/{hero-banner-DkC_BqM7.mjs.map → hero-banner-B7xrDfzN.mjs.map} +1 -1
- package/dist/{hero-banner-D1A-_qou.js → hero-banner-DthITuQ7.js} +2 -2
- package/dist/{hero-banner-D1A-_qou.js.map → hero-banner-DthITuQ7.js.map} +1 -1
- package/dist/hero-banner.cjs.js +1 -1
- package/dist/hero-banner.es.js +1 -1
- package/dist/libraries/library/src/avatar.d.ts +6 -0
- package/dist/libraries/library/src/avatar.d.ts.map +1 -0
- package/dist/libraries/library/src/library.d.ts +3 -0
- package/dist/libraries/library/src/library.d.ts.map +1 -1
- package/dist/libraries/library/src/loading.d.ts +6 -0
- package/dist/libraries/library/src/loading.d.ts.map +1 -0
- package/dist/libraries/library/src/message.d.ts +6 -0
- package/dist/libraries/library/src/message.d.ts.map +1 -0
- package/dist/libraries/theme/src/ThemeProvider.d.ts.map +1 -1
- package/dist/libraries/theme/src/theme.d.ts +1 -0
- package/dist/libraries/theme/src/theme.d.ts.map +1 -1
- package/dist/libraries/theme/src/types.d.ts +7 -0
- package/dist/libraries/theme/src/types.d.ts.map +1 -1
- package/dist/libraries/theme/src/useThemePortalContainer.d.ts +12 -0
- package/dist/libraries/theme/src/useThemePortalContainer.d.ts.map +1 -0
- package/dist/library.cjs.js +1 -1
- package/dist/library.es.js +630 -623
- package/dist/library.es.js.map +1 -1
- package/dist/loading-Dwtkjstg.js +2 -0
- package/dist/loading-Dwtkjstg.js.map +1 -0
- package/dist/loading-r23nxJSz.mjs +107 -0
- package/dist/loading-r23nxJSz.mjs.map +1 -0
- package/dist/loading.cjs.js +2 -0
- package/dist/loading.cjs.js.map +1 -0
- package/dist/loading.es.js +5 -0
- package/dist/loading.es.js.map +1 -0
- package/dist/message-0yTS5pOF.js +3 -0
- package/dist/message-0yTS5pOF.js.map +1 -0
- package/dist/message-D9CDwcw9.mjs +132 -0
- package/dist/message-D9CDwcw9.mjs.map +1 -0
- package/dist/message.cjs.js +2 -0
- package/dist/message.cjs.js.map +1 -0
- package/dist/message.es.js +5 -0
- package/dist/message.es.js.map +1 -0
- package/dist/modal-DJn9idcw.js +2 -0
- package/dist/modal-DJn9idcw.js.map +1 -0
- package/dist/{modal-fp37VbrH.mjs → modal-EIP36327.mjs} +83 -80
- package/dist/modal-EIP36327.mjs.map +1 -0
- package/dist/modal.cjs.js +1 -1
- package/dist/modal.es.js +1 -1
- package/dist/{popover-I26xNbTz.mjs → popover-DERrvReO.mjs} +328 -325
- package/dist/popover-DERrvReO.mjs.map +1 -0
- package/dist/popover-DnGgzfQr.js +2 -0
- package/dist/popover-DnGgzfQr.js.map +1 -0
- package/dist/popover.cjs.js +1 -1
- package/dist/popover.es.js +1 -1
- package/dist/{product-card-CoY1KggV.js → product-card-8X-Ld2d_.js} +2 -2
- package/dist/{product-card-CoY1KggV.js.map → product-card-8X-Ld2d_.js.map} +1 -1
- package/dist/{product-card-C3_N0t-R.mjs → product-card-Bt-F0wKr.mjs} +10 -10
- package/dist/{product-card-C3_N0t-R.mjs.map → product-card-Bt-F0wKr.mjs.map} +1 -1
- package/dist/product-card.cjs.js +1 -1
- package/dist/product-card.es.js +1 -1
- package/dist/{promotion-card-BiHnQvhn.mjs → promotion-card-BnzIVNQ4.mjs} +2 -2
- package/dist/{promotion-card-BiHnQvhn.mjs.map → promotion-card-BnzIVNQ4.mjs.map} +1 -1
- package/dist/{promotion-card-Bag64gqP.js → promotion-card-DKc2Cx1h.js} +2 -2
- package/dist/{promotion-card-Bag64gqP.js.map → promotion-card-DKc2Cx1h.js.map} +1 -1
- package/dist/promotion-card.cjs.js +1 -1
- package/dist/promotion-card.es.js +1 -1
- package/dist/purpur.css +1 -1
- package/dist/radio-card-group-ZBXjYcQs.mjs +166 -0
- package/dist/radio-card-group-ZBXjYcQs.mjs.map +1 -0
- package/dist/radio-card-group-nrDi5EPK.js +2 -0
- package/dist/radio-card-group-nrDi5EPK.js.map +1 -0
- package/dist/radio-card-group.cjs.js +1 -1
- package/dist/radio-card-group.es.js +3 -5
- package/dist/search-field-2vdDbiT0.js +2 -0
- package/dist/search-field-2vdDbiT0.js.map +1 -0
- package/dist/search-field-DKyNh7pE.mjs +167 -0
- package/dist/search-field-DKyNh7pE.mjs.map +1 -0
- package/dist/search-field.cjs.js +1 -1
- package/dist/search-field.es.js +1 -1
- package/dist/{stepper-CWR2vGPj.mjs → stepper-BDsSa6yr.mjs} +2 -2
- package/dist/{stepper-CWR2vGPj.mjs.map → stepper-BDsSa6yr.mjs.map} +1 -1
- package/dist/{stepper-Df4X7DDR.js → stepper-DpauItjx.js} +2 -2
- package/dist/{stepper-Df4X7DDR.js.map → stepper-DpauItjx.js.map} +1 -1
- package/dist/stepper.cjs.js +1 -1
- package/dist/stepper.es.js +1 -1
- package/dist/{table-gnGUejtb.js → table-BOCcBzSO.js} +4 -4
- package/dist/table-BOCcBzSO.js.map +1 -0
- package/dist/{table-g_n68i4s.mjs → table-i1Gs9e0e.mjs} +440 -440
- package/dist/table-i1Gs9e0e.mjs.map +1 -0
- package/dist/table.cjs.js +1 -1
- package/dist/table.es.js +1 -1
- package/dist/{text-area-peNKG7g4.js → text-area-D0truMT1.js} +2 -2
- package/dist/{text-area-peNKG7g4.js.map → text-area-D0truMT1.js.map} +1 -1
- package/dist/{text-area-kJvg6cFp.mjs → text-area-IVH-k4MM.mjs} +3 -3
- package/dist/{text-area-kJvg6cFp.mjs.map → text-area-IVH-k4MM.mjs.map} +1 -1
- package/dist/text-area.cjs.js +1 -1
- package/dist/text-area.es.js +1 -1
- package/dist/theme.cjs.js +1 -1
- package/dist/theme.es.js +8 -6
- package/dist/theme.es.js.map +1 -1
- package/dist/tooltip-CJGmJDFQ.js +2 -0
- package/dist/{tooltip-C8Zxnqdb.js.map → tooltip-CJGmJDFQ.js.map} +1 -1
- package/dist/{tooltip-LU2Cy-QC.mjs → tooltip-RA-03bKs.mjs} +277 -274
- package/dist/{tooltip-LU2Cy-QC.mjs.map → tooltip-RA-03bKs.mjs.map} +1 -1
- package/dist/tooltip.cjs.js +1 -1
- package/dist/tooltip.es.js +1 -1
- package/dist/{useColorScheme-tAkY9LHt.mjs → useColorScheme-B9DWd-LN.mjs} +2 -2
- package/dist/{useColorScheme-tAkY9LHt.mjs.map → useColorScheme-B9DWd-LN.mjs.map} +1 -1
- package/dist/useColorScheme-DbTQjxNB.js +2 -0
- package/dist/{useColorScheme-DNyjsWX9.js.map → useColorScheme-DbTQjxNB.js.map} +1 -1
- package/dist/useThemePortalContainer-D9BYjEvT.js +2 -0
- package/dist/useThemePortalContainer-D9BYjEvT.js.map +1 -0
- package/dist/useThemePortalContainer-tFLTaYKN.mjs +9 -0
- package/dist/useThemePortalContainer-tFLTaYKN.mjs.map +1 -0
- package/package.json +27 -24
- package/src/aliases.ts +12 -0
- package/src/avatar.ts +6 -0
- package/src/entries.js +3 -0
- package/src/library.ts +5 -68
- package/src/loading.ts +6 -0
- package/src/message.ts +6 -0
- package/dist/ThemeProvider-CkX-BNWN.mjs +0 -337
- package/dist/ThemeProvider-Dy771oix.js +0 -2
- package/dist/carousel-DLkTL9sj.mjs +0 -1633
- package/dist/carousel-DLkTL9sj.mjs.map +0 -1
- package/dist/carousel-DXrtxRz5.js +0 -2
- package/dist/carousel-DXrtxRz5.js.map +0 -1
- package/dist/color-dot-6Mxngvce.mjs +0 -34
- package/dist/color-dot-6Mxngvce.mjs.map +0 -1
- package/dist/color-dot-B9w_ucWb.js +0 -2
- package/dist/color-dot-B9w_ucWb.js.map +0 -1
- package/dist/comparison-table-C74IAVqz.js +0 -2
- package/dist/comparison-table-C74IAVqz.js.map +0 -1
- package/dist/comparison-table-DctKxmX9.mjs +0 -267
- package/dist/comparison-table-DctKxmX9.mjs.map +0 -1
- package/dist/date-picker-CzxhZxsw.mjs +0 -1611
- package/dist/date-picker-uyPKJulK.js +0 -2
- package/dist/drawer-8Acg4wkV.mjs +0 -574
- package/dist/drawer-8Acg4wkV.mjs.map +0 -1
- package/dist/drawer-BLHgcEqb.js +0 -2
- package/dist/drawer-BLHgcEqb.js.map +0 -1
- package/dist/modal-Baisuc6m.js +0 -2
- package/dist/modal-Baisuc6m.js.map +0 -1
- package/dist/modal-fp37VbrH.mjs.map +0 -1
- package/dist/popover-B0XJZ5mj.js +0 -2
- package/dist/popover-B0XJZ5mj.js.map +0 -1
- package/dist/popover-I26xNbTz.mjs.map +0 -1
- package/dist/radio-card-group-CneOprGY.mjs +0 -168
- package/dist/radio-card-group-CneOprGY.mjs.map +0 -1
- package/dist/radio-card-group-Ctuvg61o.js +0 -2
- package/dist/radio-card-group-Ctuvg61o.js.map +0 -1
- package/dist/search-field-CpkHGIYi.mjs +0 -151
- package/dist/search-field-CpkHGIYi.mjs.map +0 -1
- package/dist/search-field-Z0PqDARl.js +0 -2
- package/dist/search-field-Z0PqDARl.js.map +0 -1
- package/dist/table-g_n68i4s.mjs.map +0 -1
- package/dist/table-gnGUejtb.js.map +0 -1
- package/dist/tooltip-C8Zxnqdb.js +0 -2
- package/dist/useColorScheme-DNyjsWX9.js +0 -2
- package/tokens/_dark.scss +0 -9
- package/tokens/_index.scss +0 -9
- package/tokens/border/variables.css +0 -13
- package/tokens/border/variables.d.ts +0 -10
- package/tokens/border/variables.dark.css +0 -12
- package/tokens/border/variables.dark.d.ts +0 -10
- package/tokens/border/variables.dark.js +0 -10
- package/tokens/border/variables.dark.json +0 -18
- package/tokens/border/variables.dark.scss +0 -10
- package/tokens/border/variables.js +0 -10
- package/tokens/border/variables.json +0 -18
- package/tokens/border/variables.scss +0 -10
- package/tokens/breakpoint/variables.css +0 -11
- package/tokens/breakpoint/variables.d.ts +0 -8
- package/tokens/breakpoint/variables.dark.css +0 -10
- package/tokens/breakpoint/variables.dark.d.ts +0 -8
- package/tokens/breakpoint/variables.dark.js +0 -8
- package/tokens/breakpoint/variables.dark.json +0 -14
- package/tokens/breakpoint/variables.dark.scss +0 -8
- package/tokens/breakpoint/variables.js +0 -8
- package/tokens/breakpoint/variables.json +0 -14
- package/tokens/breakpoint/variables.scss +0 -8
- package/tokens/color/variables.css +0 -262
- package/tokens/color/variables.d.ts +0 -253
- package/tokens/color/variables.dark.css +0 -262
- package/tokens/color/variables.dark.d.ts +0 -252
- package/tokens/color/variables.dark.js +0 -252
- package/tokens/color/variables.dark.json +0 -306
- package/tokens/color/variables.dark.scss +0 -252
- package/tokens/color/variables.js +0 -253
- package/tokens/color/variables.json +0 -307
- package/tokens/color/variables.scss +0 -253
- package/tokens/dark.css +0 -9
- package/tokens/dark.d.ts +0 -9
- package/tokens/dark.js +0 -9
- package/tokens/filter/variables.css +0 -4
- package/tokens/filter/variables.d.ts +0 -1
- package/tokens/filter/variables.dark.css +0 -3
- package/tokens/filter/variables.dark.d.ts +0 -1
- package/tokens/filter/variables.dark.js +0 -1
- package/tokens/filter/variables.dark.json +0 -7
- package/tokens/filter/variables.dark.scss +0 -1
- package/tokens/filter/variables.js +0 -1
- package/tokens/filter/variables.json +0 -7
- package/tokens/filter/variables.scss +0 -1
- package/tokens/gradient/variables.css +0 -53
- package/tokens/gradient/variables.d.ts +0 -9
- package/tokens/gradient/variables.dark.css +0 -51
- package/tokens/gradient/variables.dark.d.ts +0 -9
- package/tokens/gradient/variables.dark.js +0 -18
- package/tokens/gradient/variables.dark.json +0 -27
- package/tokens/gradient/variables.dark.scss +0 -36
- package/tokens/gradient/variables.js +0 -18
- package/tokens/gradient/variables.json +0 -27
- package/tokens/gradient/variables.scss +0 -42
- package/tokens/index.css +0 -18
- package/tokens/index.d.ts +0 -9
- package/tokens/index.js +0 -9
- package/tokens/motion/variables.css +0 -14
- package/tokens/motion/variables.d.ts +0 -11
- package/tokens/motion/variables.dark.css +0 -13
- package/tokens/motion/variables.dark.d.ts +0 -11
- package/tokens/motion/variables.dark.js +0 -11
- package/tokens/motion/variables.dark.json +0 -19
- package/tokens/motion/variables.dark.scss +0 -11
- package/tokens/motion/variables.js +0 -11
- package/tokens/motion/variables.json +0 -19
- package/tokens/motion/variables.scss +0 -11
- package/tokens/shadow/variables.css +0 -11
- package/tokens/shadow/variables.d.ts +0 -4
- package/tokens/shadow/variables.dark.css +0 -10
- package/tokens/shadow/variables.dark.d.ts +0 -4
- package/tokens/shadow/variables.dark.js +0 -4
- package/tokens/shadow/variables.dark.json +0 -8
- package/tokens/shadow/variables.dark.scss +0 -4
- package/tokens/shadow/variables.js +0 -4
- package/tokens/shadow/variables.json +0 -8
- package/tokens/shadow/variables.scss +0 -4
- package/tokens/spacing/variables.css +0 -26
- package/tokens/spacing/variables.d.ts +0 -23
- package/tokens/spacing/variables.dark.css +0 -17
- package/tokens/spacing/variables.dark.d.ts +0 -15
- package/tokens/spacing/variables.dark.js +0 -15
- package/tokens/spacing/variables.dark.json +0 -19
- package/tokens/spacing/variables.dark.scss +0 -15
- package/tokens/spacing/variables.js +0 -23
- package/tokens/spacing/variables.json +0 -31
- package/tokens/spacing/variables.scss +0 -23
- package/tokens/typography/variables.css +0 -30
- package/tokens/typography/variables.d.ts +0 -26
- package/tokens/typography/variables.dark.css +0 -29
- package/tokens/typography/variables.dark.d.ts +0 -26
- package/tokens/typography/variables.dark.js +0 -28
- package/tokens/typography/variables.dark.json +0 -38
- package/tokens/typography/variables.dark.scss +0 -26
- package/tokens/typography/variables.js +0 -28
- package/tokens/typography/variables.json +0 -38
- package/tokens/typography/variables.scss +0 -26
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"carousel-BIKcwvYz.mjs","sources":["../../../components/icon/dist/components/play-filled.es.js","../../../components/icon/dist/components/tv-pause.es.js","../../../common/temp/node_modules/.pnpm/embla-carousel-autoplay@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-autoplay/esm/embla-carousel-autoplay.esm.js","../../../common/temp/node_modules/.pnpm/embla-carousel-reactive-utils@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-reactive-utils/esm/embla-carousel-reactive-utils.esm.js","../../../common/temp/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/embla-carousel.esm.js","../../../common/temp/node_modules/.pnpm/embla-carousel-react@8.6.0_react@19.2.4/node_modules/embla-carousel-react/esm/embla-carousel-react.esm.js","../../../components/carousel/src/components/PageIndicator.tsx","../../../components/carousel/src/hooks/useAutoplay.ts","../../../components/carousel/src/hooks/usePageIndicators.ts","../../../components/carousel/src/hooks/usePrefersReducedMotion.ts","../../../components/carousel/src/hooks/usePrevNextButtons.ts","../../../components/carousel/src/carousel.tsx"],"sourcesContent":["import { jsx as o } from \"react/jsx-runtime\";\nimport { I as e } from \"../icon-DNHpBTHs.mjs\";\nconst a = {\n name: \"play-filled\",\n 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>',\n keywords: [\"play-filled\"],\n category: \"action\"\n}, d = (l) => /* @__PURE__ */ o(e, { ...l, svg: a });\nd.displayName = \"IconPlayFilled\";\nexport {\n d as IconPlayFilled\n};\n//# sourceMappingURL=play-filled.es.js.map\n","import { jsx as o } from \"react/jsx-runtime\";\nimport { I as v } from \"../icon-DNHpBTHs.mjs\";\nconst e = {\n name: \"tv-pause\",\n 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>',\n keywords: [\"tv-pause\"],\n category: \"action\"\n}, s = (a) => /* @__PURE__ */ o(v, { ...a, svg: e });\ns.displayName = \"IconTvPause\";\nexport {\n s as IconTvPause\n};\n//# sourceMappingURL=tv-pause.es.js.map\n","const defaultOptions = {\n active: true,\n breakpoints: {},\n delay: 4000,\n jump: false,\n playOnInit: true,\n stopOnFocusIn: true,\n stopOnInteraction: true,\n stopOnMouseEnter: false,\n stopOnLastSnap: false,\n rootNode: null\n};\n\nfunction normalizeDelay(emblaApi, delay) {\n const scrollSnaps = emblaApi.scrollSnapList();\n if (typeof delay === 'number') {\n return scrollSnaps.map(() => delay);\n }\n return delay(scrollSnaps, emblaApi);\n}\nfunction getAutoplayRootNode(emblaApi, rootNode) {\n const emblaRootNode = emblaApi.rootNode();\n return rootNode && rootNode(emblaRootNode) || emblaRootNode;\n}\n\nfunction Autoplay(userOptions = {}) {\n let options;\n let emblaApi;\n let destroyed;\n let delay;\n let timerStartTime = null;\n let timerId = 0;\n let autoplayActive = false;\n let mouseIsOver = false;\n let playOnDocumentVisible = false;\n let jump = false;\n function init(emblaApiInstance, optionsHandler) {\n emblaApi = emblaApiInstance;\n const {\n mergeOptions,\n optionsAtMedia\n } = optionsHandler;\n const optionsBase = mergeOptions(defaultOptions, Autoplay.globalOptions);\n const allOptions = mergeOptions(optionsBase, userOptions);\n options = optionsAtMedia(allOptions);\n if (emblaApi.scrollSnapList().length <= 1) return;\n jump = options.jump;\n destroyed = false;\n delay = normalizeDelay(emblaApi, options.delay);\n const {\n eventStore,\n ownerDocument\n } = emblaApi.internalEngine();\n const isDraggable = !!emblaApi.internalEngine().options.watchDrag;\n const root = getAutoplayRootNode(emblaApi, options.rootNode);\n eventStore.add(ownerDocument, 'visibilitychange', visibilityChange);\n if (isDraggable) {\n emblaApi.on('pointerDown', pointerDown);\n }\n if (isDraggable && !options.stopOnInteraction) {\n emblaApi.on('pointerUp', pointerUp);\n }\n if (options.stopOnMouseEnter) {\n eventStore.add(root, 'mouseenter', mouseEnter);\n }\n if (options.stopOnMouseEnter && !options.stopOnInteraction) {\n eventStore.add(root, 'mouseleave', mouseLeave);\n }\n if (options.stopOnFocusIn) {\n emblaApi.on('slideFocusStart', stopAutoplay);\n }\n if (options.stopOnFocusIn && !options.stopOnInteraction) {\n eventStore.add(emblaApi.containerNode(), 'focusout', startAutoplay);\n }\n if (options.playOnInit) startAutoplay();\n }\n function destroy() {\n emblaApi.off('pointerDown', pointerDown).off('pointerUp', pointerUp).off('slideFocusStart', stopAutoplay);\n stopAutoplay();\n destroyed = true;\n autoplayActive = false;\n }\n function setTimer() {\n const {\n ownerWindow\n } = emblaApi.internalEngine();\n ownerWindow.clearTimeout(timerId);\n timerId = ownerWindow.setTimeout(next, delay[emblaApi.selectedScrollSnap()]);\n timerStartTime = new Date().getTime();\n emblaApi.emit('autoplay:timerset');\n }\n function clearTimer() {\n const {\n ownerWindow\n } = emblaApi.internalEngine();\n ownerWindow.clearTimeout(timerId);\n timerId = 0;\n timerStartTime = null;\n emblaApi.emit('autoplay:timerstopped');\n }\n function startAutoplay() {\n if (destroyed) return;\n if (documentIsHidden()) {\n playOnDocumentVisible = true;\n return;\n }\n if (!autoplayActive) emblaApi.emit('autoplay:play');\n setTimer();\n autoplayActive = true;\n }\n function stopAutoplay() {\n if (destroyed) return;\n if (autoplayActive) emblaApi.emit('autoplay:stop');\n clearTimer();\n autoplayActive = false;\n }\n function visibilityChange() {\n if (documentIsHidden()) {\n playOnDocumentVisible = autoplayActive;\n return stopAutoplay();\n }\n if (playOnDocumentVisible) startAutoplay();\n }\n function documentIsHidden() {\n const {\n ownerDocument\n } = emblaApi.internalEngine();\n return ownerDocument.visibilityState === 'hidden';\n }\n function pointerDown() {\n if (!mouseIsOver) stopAutoplay();\n }\n function pointerUp() {\n if (!mouseIsOver) startAutoplay();\n }\n function mouseEnter() {\n mouseIsOver = true;\n stopAutoplay();\n }\n function mouseLeave() {\n mouseIsOver = false;\n startAutoplay();\n }\n function play(jumpOverride) {\n if (typeof jumpOverride !== 'undefined') jump = jumpOverride;\n startAutoplay();\n }\n function stop() {\n if (autoplayActive) stopAutoplay();\n }\n function reset() {\n if (autoplayActive) startAutoplay();\n }\n function isPlaying() {\n return autoplayActive;\n }\n function next() {\n const {\n index\n } = emblaApi.internalEngine();\n const nextIndex = index.clone().add(1).get();\n const lastIndex = emblaApi.scrollSnapList().length - 1;\n const kill = options.stopOnLastSnap && nextIndex === lastIndex;\n if (emblaApi.canScrollNext()) {\n emblaApi.scrollNext(jump);\n } else {\n emblaApi.scrollTo(0, jump);\n }\n emblaApi.emit('autoplay:select');\n if (kill) return stopAutoplay();\n startAutoplay();\n }\n function timeUntilNext() {\n if (!timerStartTime) return null;\n const currentDelay = delay[emblaApi.selectedScrollSnap()];\n const timePastSinceStart = new Date().getTime() - timerStartTime;\n return currentDelay - timePastSinceStart;\n }\n const self = {\n name: 'autoplay',\n options: userOptions,\n init,\n destroy,\n play,\n stop,\n reset,\n isPlaying,\n timeUntilNext\n };\n return self;\n}\nAutoplay.globalOptions = undefined;\n\nexport { Autoplay as default };\n//# sourceMappingURL=embla-carousel-autoplay.esm.js.map\n","function isObject(subject) {\n return Object.prototype.toString.call(subject) === '[object Object]';\n}\nfunction isRecord(subject) {\n return isObject(subject) || Array.isArray(subject);\n}\nfunction canUseDOM() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}\nfunction areOptionsEqual(optionsA, optionsB) {\n const optionsAKeys = Object.keys(optionsA);\n const optionsBKeys = Object.keys(optionsB);\n if (optionsAKeys.length !== optionsBKeys.length) return false;\n const breakpointsA = JSON.stringify(Object.keys(optionsA.breakpoints || {}));\n const breakpointsB = JSON.stringify(Object.keys(optionsB.breakpoints || {}));\n if (breakpointsA !== breakpointsB) return false;\n return optionsAKeys.every(key => {\n const valueA = optionsA[key];\n const valueB = optionsB[key];\n if (typeof valueA === 'function') return `${valueA}` === `${valueB}`;\n if (!isRecord(valueA) || !isRecord(valueB)) return valueA === valueB;\n return areOptionsEqual(valueA, valueB);\n });\n}\nfunction sortAndMapPluginToOptions(plugins) {\n return plugins.concat().sort((a, b) => a.name > b.name ? 1 : -1).map(plugin => plugin.options);\n}\nfunction arePluginsEqual(pluginsA, pluginsB) {\n if (pluginsA.length !== pluginsB.length) return false;\n const optionsA = sortAndMapPluginToOptions(pluginsA);\n const optionsB = sortAndMapPluginToOptions(pluginsB);\n return optionsA.every((optionA, index) => {\n const optionB = optionsB[index];\n return areOptionsEqual(optionA, optionB);\n });\n}\n\nexport { areOptionsEqual, arePluginsEqual, canUseDOM, sortAndMapPluginToOptions };\n//# sourceMappingURL=embla-carousel-reactive-utils.esm.js.map\n","function isNumber(subject) {\n return typeof subject === 'number';\n}\nfunction isString(subject) {\n return typeof subject === 'string';\n}\nfunction isBoolean(subject) {\n return typeof subject === 'boolean';\n}\nfunction isObject(subject) {\n return Object.prototype.toString.call(subject) === '[object Object]';\n}\nfunction mathAbs(n) {\n return Math.abs(n);\n}\nfunction mathSign(n) {\n return Math.sign(n);\n}\nfunction deltaAbs(valueB, valueA) {\n return mathAbs(valueB - valueA);\n}\nfunction factorAbs(valueB, valueA) {\n if (valueB === 0 || valueA === 0) return 0;\n if (mathAbs(valueB) <= mathAbs(valueA)) return 0;\n const diff = deltaAbs(mathAbs(valueB), mathAbs(valueA));\n return mathAbs(diff / valueB);\n}\nfunction roundToTwoDecimals(num) {\n return Math.round(num * 100) / 100;\n}\nfunction arrayKeys(array) {\n return objectKeys(array).map(Number);\n}\nfunction arrayLast(array) {\n return array[arrayLastIndex(array)];\n}\nfunction arrayLastIndex(array) {\n return Math.max(0, array.length - 1);\n}\nfunction arrayIsLastIndex(array, index) {\n return index === arrayLastIndex(array);\n}\nfunction arrayFromNumber(n, startAt = 0) {\n return Array.from(Array(n), (_, i) => startAt + i);\n}\nfunction objectKeys(object) {\n return Object.keys(object);\n}\nfunction objectsMergeDeep(objectA, objectB) {\n return [objectA, objectB].reduce((mergedObjects, currentObject) => {\n objectKeys(currentObject).forEach(key => {\n const valueA = mergedObjects[key];\n const valueB = currentObject[key];\n const areObjects = isObject(valueA) && isObject(valueB);\n mergedObjects[key] = areObjects ? objectsMergeDeep(valueA, valueB) : valueB;\n });\n return mergedObjects;\n }, {});\n}\nfunction isMouseEvent(evt, ownerWindow) {\n return typeof ownerWindow.MouseEvent !== 'undefined' && evt instanceof ownerWindow.MouseEvent;\n}\n\nfunction Alignment(align, viewSize) {\n const predefined = {\n start,\n center,\n end\n };\n function start() {\n return 0;\n }\n function center(n) {\n return end(n) / 2;\n }\n function end(n) {\n return viewSize - n;\n }\n function measure(n, index) {\n if (isString(align)) return predefined[align](n);\n return align(viewSize, n, index);\n }\n const self = {\n measure\n };\n return self;\n}\n\nfunction EventStore() {\n let listeners = [];\n function add(node, type, handler, options = {\n passive: true\n }) {\n let removeListener;\n if ('addEventListener' in node) {\n node.addEventListener(type, handler, options);\n removeListener = () => node.removeEventListener(type, handler, options);\n } else {\n const legacyMediaQueryList = node;\n legacyMediaQueryList.addListener(handler);\n removeListener = () => legacyMediaQueryList.removeListener(handler);\n }\n listeners.push(removeListener);\n return self;\n }\n function clear() {\n listeners = listeners.filter(remove => remove());\n }\n const self = {\n add,\n clear\n };\n return self;\n}\n\nfunction Animations(ownerDocument, ownerWindow, update, render) {\n const documentVisibleHandler = EventStore();\n const fixedTimeStep = 1000 / 60;\n let lastTimeStamp = null;\n let accumulatedTime = 0;\n let animationId = 0;\n function init() {\n documentVisibleHandler.add(ownerDocument, 'visibilitychange', () => {\n if (ownerDocument.hidden) reset();\n });\n }\n function destroy() {\n stop();\n documentVisibleHandler.clear();\n }\n function animate(timeStamp) {\n if (!animationId) return;\n if (!lastTimeStamp) {\n lastTimeStamp = timeStamp;\n update();\n update();\n }\n const timeElapsed = timeStamp - lastTimeStamp;\n lastTimeStamp = timeStamp;\n accumulatedTime += timeElapsed;\n while (accumulatedTime >= fixedTimeStep) {\n update();\n accumulatedTime -= fixedTimeStep;\n }\n const alpha = accumulatedTime / fixedTimeStep;\n render(alpha);\n if (animationId) {\n animationId = ownerWindow.requestAnimationFrame(animate);\n }\n }\n function start() {\n if (animationId) return;\n animationId = ownerWindow.requestAnimationFrame(animate);\n }\n function stop() {\n ownerWindow.cancelAnimationFrame(animationId);\n lastTimeStamp = null;\n accumulatedTime = 0;\n animationId = 0;\n }\n function reset() {\n lastTimeStamp = null;\n accumulatedTime = 0;\n }\n const self = {\n init,\n destroy,\n start,\n stop,\n update,\n render\n };\n return self;\n}\n\nfunction Axis(axis, contentDirection) {\n const isRightToLeft = contentDirection === 'rtl';\n const isVertical = axis === 'y';\n const scroll = isVertical ? 'y' : 'x';\n const cross = isVertical ? 'x' : 'y';\n const sign = !isVertical && isRightToLeft ? -1 : 1;\n const startEdge = getStartEdge();\n const endEdge = getEndEdge();\n function measureSize(nodeRect) {\n const {\n height,\n width\n } = nodeRect;\n return isVertical ? height : width;\n }\n function getStartEdge() {\n if (isVertical) return 'top';\n return isRightToLeft ? 'right' : 'left';\n }\n function getEndEdge() {\n if (isVertical) return 'bottom';\n return isRightToLeft ? 'left' : 'right';\n }\n function direction(n) {\n return n * sign;\n }\n const self = {\n scroll,\n cross,\n startEdge,\n endEdge,\n measureSize,\n direction\n };\n return self;\n}\n\nfunction Limit(min = 0, max = 0) {\n const length = mathAbs(min - max);\n function reachedMin(n) {\n return n < min;\n }\n function reachedMax(n) {\n return n > max;\n }\n function reachedAny(n) {\n return reachedMin(n) || reachedMax(n);\n }\n function constrain(n) {\n if (!reachedAny(n)) return n;\n return reachedMin(n) ? min : max;\n }\n function removeOffset(n) {\n if (!length) return n;\n return n - length * Math.ceil((n - max) / length);\n }\n const self = {\n length,\n max,\n min,\n constrain,\n reachedAny,\n reachedMax,\n reachedMin,\n removeOffset\n };\n return self;\n}\n\nfunction Counter(max, start, loop) {\n const {\n constrain\n } = Limit(0, max);\n const loopEnd = max + 1;\n let counter = withinLimit(start);\n function withinLimit(n) {\n return !loop ? constrain(n) : mathAbs((loopEnd + n) % loopEnd);\n }\n function get() {\n return counter;\n }\n function set(n) {\n counter = withinLimit(n);\n return self;\n }\n function add(n) {\n return clone().set(get() + n);\n }\n function clone() {\n return Counter(max, get(), loop);\n }\n const self = {\n get,\n set,\n add,\n clone\n };\n return self;\n}\n\nfunction DragHandler(axis, rootNode, ownerDocument, ownerWindow, target, dragTracker, location, animation, scrollTo, scrollBody, scrollTarget, index, eventHandler, percentOfView, dragFree, dragThreshold, skipSnaps, baseFriction, watchDrag) {\n const {\n cross: crossAxis,\n direction\n } = axis;\n const focusNodes = ['INPUT', 'SELECT', 'TEXTAREA'];\n const nonPassiveEvent = {\n passive: false\n };\n const initEvents = EventStore();\n const dragEvents = EventStore();\n const goToNextThreshold = Limit(50, 225).constrain(percentOfView.measure(20));\n const snapForceBoost = {\n mouse: 300,\n touch: 400\n };\n const freeForceBoost = {\n mouse: 500,\n touch: 600\n };\n const baseSpeed = dragFree ? 43 : 25;\n let isMoving = false;\n let startScroll = 0;\n let startCross = 0;\n let pointerIsDown = false;\n let preventScroll = false;\n let preventClick = false;\n let isMouse = false;\n function init(emblaApi) {\n if (!watchDrag) return;\n function downIfAllowed(evt) {\n if (isBoolean(watchDrag) || watchDrag(emblaApi, evt)) down(evt);\n }\n const node = rootNode;\n 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);\n }\n function destroy() {\n initEvents.clear();\n dragEvents.clear();\n }\n function addDragEvents() {\n const node = isMouse ? ownerDocument : rootNode;\n dragEvents.add(node, 'touchmove', move, nonPassiveEvent).add(node, 'touchend', up).add(node, 'mousemove', move, nonPassiveEvent).add(node, 'mouseup', up);\n }\n function isFocusNode(node) {\n const nodeName = node.nodeName || '';\n return focusNodes.includes(nodeName);\n }\n function forceBoost() {\n const boost = dragFree ? freeForceBoost : snapForceBoost;\n const type = isMouse ? 'mouse' : 'touch';\n return boost[type];\n }\n function allowedForce(force, targetChanged) {\n const next = index.add(mathSign(force) * -1);\n const baseForce = scrollTarget.byDistance(force, !dragFree).distance;\n if (dragFree || mathAbs(force) < goToNextThreshold) return baseForce;\n if (skipSnaps && targetChanged) return baseForce * 0.5;\n return scrollTarget.byIndex(next.get(), 0).distance;\n }\n function down(evt) {\n const isMouseEvt = isMouseEvent(evt, ownerWindow);\n isMouse = isMouseEvt;\n preventClick = dragFree && isMouseEvt && !evt.buttons && isMoving;\n isMoving = deltaAbs(target.get(), location.get()) >= 2;\n if (isMouseEvt && evt.button !== 0) return;\n if (isFocusNode(evt.target)) return;\n pointerIsDown = true;\n dragTracker.pointerDown(evt);\n scrollBody.useFriction(0).useDuration(0);\n target.set(location);\n addDragEvents();\n startScroll = dragTracker.readPoint(evt);\n startCross = dragTracker.readPoint(evt, crossAxis);\n eventHandler.emit('pointerDown');\n }\n function move(evt) {\n const isTouchEvt = !isMouseEvent(evt, ownerWindow);\n if (isTouchEvt && evt.touches.length >= 2) return up(evt);\n const lastScroll = dragTracker.readPoint(evt);\n const lastCross = dragTracker.readPoint(evt, crossAxis);\n const diffScroll = deltaAbs(lastScroll, startScroll);\n const diffCross = deltaAbs(lastCross, startCross);\n if (!preventScroll && !isMouse) {\n if (!evt.cancelable) return up(evt);\n preventScroll = diffScroll > diffCross;\n if (!preventScroll) return up(evt);\n }\n const diff = dragTracker.pointerMove(evt);\n if (diffScroll > dragThreshold) preventClick = true;\n scrollBody.useFriction(0.3).useDuration(0.75);\n animation.start();\n target.add(direction(diff));\n evt.preventDefault();\n }\n function up(evt) {\n const currentLocation = scrollTarget.byDistance(0, false);\n const targetChanged = currentLocation.index !== index.get();\n const rawForce = dragTracker.pointerUp(evt) * forceBoost();\n const force = allowedForce(direction(rawForce), targetChanged);\n const forceFactor = factorAbs(rawForce, force);\n const speed = baseSpeed - 10 * forceFactor;\n const friction = baseFriction + forceFactor / 50;\n preventScroll = false;\n pointerIsDown = false;\n dragEvents.clear();\n scrollBody.useDuration(speed).useFriction(friction);\n scrollTo.distance(force, !dragFree);\n isMouse = false;\n eventHandler.emit('pointerUp');\n }\n function click(evt) {\n if (preventClick) {\n evt.stopPropagation();\n evt.preventDefault();\n preventClick = false;\n }\n }\n function pointerDown() {\n return pointerIsDown;\n }\n const self = {\n init,\n destroy,\n pointerDown\n };\n return self;\n}\n\nfunction DragTracker(axis, ownerWindow) {\n const logInterval = 170;\n let startEvent;\n let lastEvent;\n function readTime(evt) {\n return evt.timeStamp;\n }\n function readPoint(evt, evtAxis) {\n const property = evtAxis || axis.scroll;\n const coord = `client${property === 'x' ? 'X' : 'Y'}`;\n return (isMouseEvent(evt, ownerWindow) ? evt : evt.touches[0])[coord];\n }\n function pointerDown(evt) {\n startEvent = evt;\n lastEvent = evt;\n return readPoint(evt);\n }\n function pointerMove(evt) {\n const diff = readPoint(evt) - readPoint(lastEvent);\n const expired = readTime(evt) - readTime(startEvent) > logInterval;\n lastEvent = evt;\n if (expired) startEvent = evt;\n return diff;\n }\n function pointerUp(evt) {\n if (!startEvent || !lastEvent) return 0;\n const diffDrag = readPoint(lastEvent) - readPoint(startEvent);\n const diffTime = readTime(evt) - readTime(startEvent);\n const expired = readTime(evt) - readTime(lastEvent) > logInterval;\n const force = diffDrag / diffTime;\n const isFlick = diffTime && !expired && mathAbs(force) > 0.1;\n return isFlick ? force : 0;\n }\n const self = {\n pointerDown,\n pointerMove,\n pointerUp,\n readPoint\n };\n return self;\n}\n\nfunction NodeRects() {\n function measure(node) {\n const {\n offsetTop,\n offsetLeft,\n offsetWidth,\n offsetHeight\n } = node;\n const offset = {\n top: offsetTop,\n right: offsetLeft + offsetWidth,\n bottom: offsetTop + offsetHeight,\n left: offsetLeft,\n width: offsetWidth,\n height: offsetHeight\n };\n return offset;\n }\n const self = {\n measure\n };\n return self;\n}\n\nfunction PercentOfView(viewSize) {\n function measure(n) {\n return viewSize * (n / 100);\n }\n const self = {\n measure\n };\n return self;\n}\n\nfunction ResizeHandler(container, eventHandler, ownerWindow, slides, axis, watchResize, nodeRects) {\n const observeNodes = [container].concat(slides);\n let resizeObserver;\n let containerSize;\n let slideSizes = [];\n let destroyed = false;\n function readSize(node) {\n return axis.measureSize(nodeRects.measure(node));\n }\n function init(emblaApi) {\n if (!watchResize) return;\n containerSize = readSize(container);\n slideSizes = slides.map(readSize);\n function defaultCallback(entries) {\n for (const entry of entries) {\n if (destroyed) return;\n const isContainer = entry.target === container;\n const slideIndex = slides.indexOf(entry.target);\n const lastSize = isContainer ? containerSize : slideSizes[slideIndex];\n const newSize = readSize(isContainer ? container : slides[slideIndex]);\n const diffSize = mathAbs(newSize - lastSize);\n if (diffSize >= 0.5) {\n emblaApi.reInit();\n eventHandler.emit('resize');\n break;\n }\n }\n }\n resizeObserver = new ResizeObserver(entries => {\n if (isBoolean(watchResize) || watchResize(emblaApi, entries)) {\n defaultCallback(entries);\n }\n });\n ownerWindow.requestAnimationFrame(() => {\n observeNodes.forEach(node => resizeObserver.observe(node));\n });\n }\n function destroy() {\n destroyed = true;\n if (resizeObserver) resizeObserver.disconnect();\n }\n const self = {\n init,\n destroy\n };\n return self;\n}\n\nfunction ScrollBody(location, offsetLocation, previousLocation, target, baseDuration, baseFriction) {\n let scrollVelocity = 0;\n let scrollDirection = 0;\n let scrollDuration = baseDuration;\n let scrollFriction = baseFriction;\n let rawLocation = location.get();\n let rawLocationPrevious = 0;\n function seek() {\n const displacement = target.get() - location.get();\n const isInstant = !scrollDuration;\n let scrollDistance = 0;\n if (isInstant) {\n scrollVelocity = 0;\n previousLocation.set(target);\n location.set(target);\n scrollDistance = displacement;\n } else {\n previousLocation.set(location);\n scrollVelocity += displacement / scrollDuration;\n scrollVelocity *= scrollFriction;\n rawLocation += scrollVelocity;\n location.add(scrollVelocity);\n scrollDistance = rawLocation - rawLocationPrevious;\n }\n scrollDirection = mathSign(scrollDistance);\n rawLocationPrevious = rawLocation;\n return self;\n }\n function settled() {\n const diff = target.get() - offsetLocation.get();\n return mathAbs(diff) < 0.001;\n }\n function duration() {\n return scrollDuration;\n }\n function direction() {\n return scrollDirection;\n }\n function velocity() {\n return scrollVelocity;\n }\n function useBaseDuration() {\n return useDuration(baseDuration);\n }\n function useBaseFriction() {\n return useFriction(baseFriction);\n }\n function useDuration(n) {\n scrollDuration = n;\n return self;\n }\n function useFriction(n) {\n scrollFriction = n;\n return self;\n }\n const self = {\n direction,\n duration,\n velocity,\n seek,\n settled,\n useBaseFriction,\n useBaseDuration,\n useFriction,\n useDuration\n };\n return self;\n}\n\nfunction ScrollBounds(limit, location, target, scrollBody, percentOfView) {\n const pullBackThreshold = percentOfView.measure(10);\n const edgeOffsetTolerance = percentOfView.measure(50);\n const frictionLimit = Limit(0.1, 0.99);\n let disabled = false;\n function shouldConstrain() {\n if (disabled) return false;\n if (!limit.reachedAny(target.get())) return false;\n if (!limit.reachedAny(location.get())) return false;\n return true;\n }\n function constrain(pointerDown) {\n if (!shouldConstrain()) return;\n const edge = limit.reachedMin(location.get()) ? 'min' : 'max';\n const diffToEdge = mathAbs(limit[edge] - location.get());\n const diffToTarget = target.get() - location.get();\n const friction = frictionLimit.constrain(diffToEdge / edgeOffsetTolerance);\n target.subtract(diffToTarget * friction);\n if (!pointerDown && mathAbs(diffToTarget) < pullBackThreshold) {\n target.set(limit.constrain(target.get()));\n scrollBody.useDuration(25).useBaseFriction();\n }\n }\n function toggleActive(active) {\n disabled = !active;\n }\n const self = {\n shouldConstrain,\n constrain,\n toggleActive\n };\n return self;\n}\n\nfunction ScrollContain(viewSize, contentSize, snapsAligned, containScroll, pixelTolerance) {\n const scrollBounds = Limit(-contentSize + viewSize, 0);\n const snapsBounded = measureBounded();\n const scrollContainLimit = findScrollContainLimit();\n const snapsContained = measureContained();\n function usePixelTolerance(bound, snap) {\n return deltaAbs(bound, snap) <= 1;\n }\n function findScrollContainLimit() {\n const startSnap = snapsBounded[0];\n const endSnap = arrayLast(snapsBounded);\n const min = snapsBounded.lastIndexOf(startSnap);\n const max = snapsBounded.indexOf(endSnap) + 1;\n return Limit(min, max);\n }\n function measureBounded() {\n return snapsAligned.map((snapAligned, index) => {\n const {\n min,\n max\n } = scrollBounds;\n const snap = scrollBounds.constrain(snapAligned);\n const isFirst = !index;\n const isLast = arrayIsLastIndex(snapsAligned, index);\n if (isFirst) return max;\n if (isLast) return min;\n if (usePixelTolerance(min, snap)) return min;\n if (usePixelTolerance(max, snap)) return max;\n return snap;\n }).map(scrollBound => parseFloat(scrollBound.toFixed(3)));\n }\n function measureContained() {\n if (contentSize <= viewSize + pixelTolerance) return [scrollBounds.max];\n if (containScroll === 'keepSnaps') return snapsBounded;\n const {\n min,\n max\n } = scrollContainLimit;\n return snapsBounded.slice(min, max);\n }\n const self = {\n snapsContained,\n scrollContainLimit\n };\n return self;\n}\n\nfunction ScrollLimit(contentSize, scrollSnaps, loop) {\n const max = scrollSnaps[0];\n const min = loop ? max - contentSize : arrayLast(scrollSnaps);\n const limit = Limit(min, max);\n const self = {\n limit\n };\n return self;\n}\n\nfunction ScrollLooper(contentSize, limit, location, vectors) {\n const jointSafety = 0.1;\n const min = limit.min + jointSafety;\n const max = limit.max + jointSafety;\n const {\n reachedMin,\n reachedMax\n } = Limit(min, max);\n function shouldLoop(direction) {\n if (direction === 1) return reachedMax(location.get());\n if (direction === -1) return reachedMin(location.get());\n return false;\n }\n function loop(direction) {\n if (!shouldLoop(direction)) return;\n const loopDistance = contentSize * (direction * -1);\n vectors.forEach(v => v.add(loopDistance));\n }\n const self = {\n loop\n };\n return self;\n}\n\nfunction ScrollProgress(limit) {\n const {\n max,\n length\n } = limit;\n function get(n) {\n const currentLocation = n - max;\n return length ? currentLocation / -length : 0;\n }\n const self = {\n get\n };\n return self;\n}\n\nfunction ScrollSnaps(axis, alignment, containerRect, slideRects, slidesToScroll) {\n const {\n startEdge,\n endEdge\n } = axis;\n const {\n groupSlides\n } = slidesToScroll;\n const alignments = measureSizes().map(alignment.measure);\n const snaps = measureUnaligned();\n const snapsAligned = measureAligned();\n function measureSizes() {\n return groupSlides(slideRects).map(rects => arrayLast(rects)[endEdge] - rects[0][startEdge]).map(mathAbs);\n }\n function measureUnaligned() {\n return slideRects.map(rect => containerRect[startEdge] - rect[startEdge]).map(snap => -mathAbs(snap));\n }\n function measureAligned() {\n return groupSlides(snaps).map(g => g[0]).map((snap, index) => snap + alignments[index]);\n }\n const self = {\n snaps,\n snapsAligned\n };\n return self;\n}\n\nfunction SlideRegistry(containSnaps, containScroll, scrollSnaps, scrollContainLimit, slidesToScroll, slideIndexes) {\n const {\n groupSlides\n } = slidesToScroll;\n const {\n min,\n max\n } = scrollContainLimit;\n const slideRegistry = createSlideRegistry();\n function createSlideRegistry() {\n const groupedSlideIndexes = groupSlides(slideIndexes);\n const doNotContain = !containSnaps || containScroll === 'keepSnaps';\n if (scrollSnaps.length === 1) return [slideIndexes];\n if (doNotContain) return groupedSlideIndexes;\n return groupedSlideIndexes.slice(min, max).map((group, index, groups) => {\n const isFirst = !index;\n const isLast = arrayIsLastIndex(groups, index);\n if (isFirst) {\n const range = arrayLast(groups[0]) + 1;\n return arrayFromNumber(range);\n }\n if (isLast) {\n const range = arrayLastIndex(slideIndexes) - arrayLast(groups)[0] + 1;\n return arrayFromNumber(range, arrayLast(groups)[0]);\n }\n return group;\n });\n }\n const self = {\n slideRegistry\n };\n return self;\n}\n\nfunction ScrollTarget(loop, scrollSnaps, contentSize, limit, targetVector) {\n const {\n reachedAny,\n removeOffset,\n constrain\n } = limit;\n function minDistance(distances) {\n return distances.concat().sort((a, b) => mathAbs(a) - mathAbs(b))[0];\n }\n function findTargetSnap(target) {\n const distance = loop ? removeOffset(target) : constrain(target);\n const ascDiffsToSnaps = scrollSnaps.map((snap, index) => ({\n diff: shortcut(snap - distance, 0),\n index\n })).sort((d1, d2) => mathAbs(d1.diff) - mathAbs(d2.diff));\n const {\n index\n } = ascDiffsToSnaps[0];\n return {\n index,\n distance\n };\n }\n function shortcut(target, direction) {\n const targets = [target, target + contentSize, target - contentSize];\n if (!loop) return target;\n if (!direction) return minDistance(targets);\n const matchingTargets = targets.filter(t => mathSign(t) === direction);\n if (matchingTargets.length) return minDistance(matchingTargets);\n return arrayLast(targets) - contentSize;\n }\n function byIndex(index, direction) {\n const diffToSnap = scrollSnaps[index] - targetVector.get();\n const distance = shortcut(diffToSnap, direction);\n return {\n index,\n distance\n };\n }\n function byDistance(distance, snap) {\n const target = targetVector.get() + distance;\n const {\n index,\n distance: targetSnapDistance\n } = findTargetSnap(target);\n const reachedBound = !loop && reachedAny(target);\n if (!snap || reachedBound) return {\n index,\n distance\n };\n const diffToSnap = scrollSnaps[index] - targetSnapDistance;\n const snapDistance = distance + shortcut(diffToSnap, 0);\n return {\n index,\n distance: snapDistance\n };\n }\n const self = {\n byDistance,\n byIndex,\n shortcut\n };\n return self;\n}\n\nfunction ScrollTo(animation, indexCurrent, indexPrevious, scrollBody, scrollTarget, targetVector, eventHandler) {\n function scrollTo(target) {\n const distanceDiff = target.distance;\n const indexDiff = target.index !== indexCurrent.get();\n targetVector.add(distanceDiff);\n if (distanceDiff) {\n if (scrollBody.duration()) {\n animation.start();\n } else {\n animation.update();\n animation.render(1);\n animation.update();\n }\n }\n if (indexDiff) {\n indexPrevious.set(indexCurrent.get());\n indexCurrent.set(target.index);\n eventHandler.emit('select');\n }\n }\n function distance(n, snap) {\n const target = scrollTarget.byDistance(n, snap);\n scrollTo(target);\n }\n function index(n, direction) {\n const targetIndex = indexCurrent.clone().set(n);\n const target = scrollTarget.byIndex(targetIndex.get(), direction);\n scrollTo(target);\n }\n const self = {\n distance,\n index\n };\n return self;\n}\n\nfunction SlideFocus(root, slides, slideRegistry, scrollTo, scrollBody, eventStore, eventHandler, watchFocus) {\n const focusListenerOptions = {\n passive: true,\n capture: true\n };\n let lastTabPressTime = 0;\n function init(emblaApi) {\n if (!watchFocus) return;\n function defaultCallback(index) {\n const nowTime = new Date().getTime();\n const diffTime = nowTime - lastTabPressTime;\n if (diffTime > 10) return;\n eventHandler.emit('slideFocusStart');\n root.scrollLeft = 0;\n const group = slideRegistry.findIndex(group => group.includes(index));\n if (!isNumber(group)) return;\n scrollBody.useDuration(0);\n scrollTo.index(group, 0);\n eventHandler.emit('slideFocus');\n }\n eventStore.add(document, 'keydown', registerTabPress, false);\n slides.forEach((slide, slideIndex) => {\n eventStore.add(slide, 'focus', evt => {\n if (isBoolean(watchFocus) || watchFocus(emblaApi, evt)) {\n defaultCallback(slideIndex);\n }\n }, focusListenerOptions);\n });\n }\n function registerTabPress(event) {\n if (event.code === 'Tab') lastTabPressTime = new Date().getTime();\n }\n const self = {\n init\n };\n return self;\n}\n\nfunction Vector1D(initialValue) {\n let value = initialValue;\n function get() {\n return value;\n }\n function set(n) {\n value = normalizeInput(n);\n }\n function add(n) {\n value += normalizeInput(n);\n }\n function subtract(n) {\n value -= normalizeInput(n);\n }\n function normalizeInput(n) {\n return isNumber(n) ? n : n.get();\n }\n const self = {\n get,\n set,\n add,\n subtract\n };\n return self;\n}\n\nfunction Translate(axis, container) {\n const translate = axis.scroll === 'x' ? x : y;\n const containerStyle = container.style;\n let previousTarget = null;\n let disabled = false;\n function x(n) {\n return `translate3d(${n}px,0px,0px)`;\n }\n function y(n) {\n return `translate3d(0px,${n}px,0px)`;\n }\n function to(target) {\n if (disabled) return;\n const newTarget = roundToTwoDecimals(axis.direction(target));\n if (newTarget === previousTarget) return;\n containerStyle.transform = translate(newTarget);\n previousTarget = newTarget;\n }\n function toggleActive(active) {\n disabled = !active;\n }\n function clear() {\n if (disabled) return;\n containerStyle.transform = '';\n if (!container.getAttribute('style')) container.removeAttribute('style');\n }\n const self = {\n clear,\n to,\n toggleActive\n };\n return self;\n}\n\nfunction SlideLooper(axis, viewSize, contentSize, slideSizes, slideSizesWithGaps, snaps, scrollSnaps, location, slides) {\n const roundingSafety = 0.5;\n const ascItems = arrayKeys(slideSizesWithGaps);\n const descItems = arrayKeys(slideSizesWithGaps).reverse();\n const loopPoints = startPoints().concat(endPoints());\n function removeSlideSizes(indexes, from) {\n return indexes.reduce((a, i) => {\n return a - slideSizesWithGaps[i];\n }, from);\n }\n function slidesInGap(indexes, gap) {\n return indexes.reduce((a, i) => {\n const remainingGap = removeSlideSizes(a, gap);\n return remainingGap > 0 ? a.concat([i]) : a;\n }, []);\n }\n function findSlideBounds(offset) {\n return snaps.map((snap, index) => ({\n start: snap - slideSizes[index] + roundingSafety + offset,\n end: snap + viewSize - roundingSafety + offset\n }));\n }\n function findLoopPoints(indexes, offset, isEndEdge) {\n const slideBounds = findSlideBounds(offset);\n return indexes.map(index => {\n const initial = isEndEdge ? 0 : -contentSize;\n const altered = isEndEdge ? contentSize : 0;\n const boundEdge = isEndEdge ? 'end' : 'start';\n const loopPoint = slideBounds[index][boundEdge];\n return {\n index,\n loopPoint,\n slideLocation: Vector1D(-1),\n translate: Translate(axis, slides[index]),\n target: () => location.get() > loopPoint ? initial : altered\n };\n });\n }\n function startPoints() {\n const gap = scrollSnaps[0];\n const indexes = slidesInGap(descItems, gap);\n return findLoopPoints(indexes, contentSize, false);\n }\n function endPoints() {\n const gap = viewSize - scrollSnaps[0] - 1;\n const indexes = slidesInGap(ascItems, gap);\n return findLoopPoints(indexes, -contentSize, true);\n }\n function canLoop() {\n return loopPoints.every(({\n index\n }) => {\n const otherIndexes = ascItems.filter(i => i !== index);\n return removeSlideSizes(otherIndexes, viewSize) <= 0.1;\n });\n }\n function loop() {\n loopPoints.forEach(loopPoint => {\n const {\n target,\n translate,\n slideLocation\n } = loopPoint;\n const shiftLocation = target();\n if (shiftLocation === slideLocation.get()) return;\n translate.to(shiftLocation);\n slideLocation.set(shiftLocation);\n });\n }\n function clear() {\n loopPoints.forEach(loopPoint => loopPoint.translate.clear());\n }\n const self = {\n canLoop,\n clear,\n loop,\n loopPoints\n };\n return self;\n}\n\nfunction SlidesHandler(container, eventHandler, watchSlides) {\n let mutationObserver;\n let destroyed = false;\n function init(emblaApi) {\n if (!watchSlides) return;\n function defaultCallback(mutations) {\n for (const mutation of mutations) {\n if (mutation.type === 'childList') {\n emblaApi.reInit();\n eventHandler.emit('slidesChanged');\n break;\n }\n }\n }\n mutationObserver = new MutationObserver(mutations => {\n if (destroyed) return;\n if (isBoolean(watchSlides) || watchSlides(emblaApi, mutations)) {\n defaultCallback(mutations);\n }\n });\n mutationObserver.observe(container, {\n childList: true\n });\n }\n function destroy() {\n if (mutationObserver) mutationObserver.disconnect();\n destroyed = true;\n }\n const self = {\n init,\n destroy\n };\n return self;\n}\n\nfunction SlidesInView(container, slides, eventHandler, threshold) {\n const intersectionEntryMap = {};\n let inViewCache = null;\n let notInViewCache = null;\n let intersectionObserver;\n let destroyed = false;\n function init() {\n intersectionObserver = new IntersectionObserver(entries => {\n if (destroyed) return;\n entries.forEach(entry => {\n const index = slides.indexOf(entry.target);\n intersectionEntryMap[index] = entry;\n });\n inViewCache = null;\n notInViewCache = null;\n eventHandler.emit('slidesInView');\n }, {\n root: container.parentElement,\n threshold\n });\n slides.forEach(slide => intersectionObserver.observe(slide));\n }\n function destroy() {\n if (intersectionObserver) intersectionObserver.disconnect();\n destroyed = true;\n }\n function createInViewList(inView) {\n return objectKeys(intersectionEntryMap).reduce((list, slideIndex) => {\n const index = parseInt(slideIndex);\n const {\n isIntersecting\n } = intersectionEntryMap[index];\n const inViewMatch = inView && isIntersecting;\n const notInViewMatch = !inView && !isIntersecting;\n if (inViewMatch || notInViewMatch) list.push(index);\n return list;\n }, []);\n }\n function get(inView = true) {\n if (inView && inViewCache) return inViewCache;\n if (!inView && notInViewCache) return notInViewCache;\n const slideIndexes = createInViewList(inView);\n if (inView) inViewCache = slideIndexes;\n if (!inView) notInViewCache = slideIndexes;\n return slideIndexes;\n }\n const self = {\n init,\n destroy,\n get\n };\n return self;\n}\n\nfunction SlideSizes(axis, containerRect, slideRects, slides, readEdgeGap, ownerWindow) {\n const {\n measureSize,\n startEdge,\n endEdge\n } = axis;\n const withEdgeGap = slideRects[0] && readEdgeGap;\n const startGap = measureStartGap();\n const endGap = measureEndGap();\n const slideSizes = slideRects.map(measureSize);\n const slideSizesWithGaps = measureWithGaps();\n function measureStartGap() {\n if (!withEdgeGap) return 0;\n const slideRect = slideRects[0];\n return mathAbs(containerRect[startEdge] - slideRect[startEdge]);\n }\n function measureEndGap() {\n if (!withEdgeGap) return 0;\n const style = ownerWindow.getComputedStyle(arrayLast(slides));\n return parseFloat(style.getPropertyValue(`margin-${endEdge}`));\n }\n function measureWithGaps() {\n return slideRects.map((rect, index, rects) => {\n const isFirst = !index;\n const isLast = arrayIsLastIndex(rects, index);\n if (isFirst) return slideSizes[index] + startGap;\n if (isLast) return slideSizes[index] + endGap;\n return rects[index + 1][startEdge] - rect[startEdge];\n }).map(mathAbs);\n }\n const self = {\n slideSizes,\n slideSizesWithGaps,\n startGap,\n endGap\n };\n return self;\n}\n\nfunction SlidesToScroll(axis, viewSize, slidesToScroll, loop, containerRect, slideRects, startGap, endGap, pixelTolerance) {\n const {\n startEdge,\n endEdge,\n direction\n } = axis;\n const groupByNumber = isNumber(slidesToScroll);\n function byNumber(array, groupSize) {\n return arrayKeys(array).filter(i => i % groupSize === 0).map(i => array.slice(i, i + groupSize));\n }\n function bySize(array) {\n if (!array.length) return [];\n return arrayKeys(array).reduce((groups, rectB, index) => {\n const rectA = arrayLast(groups) || 0;\n const isFirst = rectA === 0;\n const isLast = rectB === arrayLastIndex(array);\n const edgeA = containerRect[startEdge] - slideRects[rectA][startEdge];\n const edgeB = containerRect[startEdge] - slideRects[rectB][endEdge];\n const gapA = !loop && isFirst ? direction(startGap) : 0;\n const gapB = !loop && isLast ? direction(endGap) : 0;\n const chunkSize = mathAbs(edgeB - gapB - (edgeA + gapA));\n if (index && chunkSize > viewSize + pixelTolerance) groups.push(rectB);\n if (isLast) groups.push(array.length);\n return groups;\n }, []).map((currentSize, index, groups) => {\n const previousSize = Math.max(groups[index - 1] || 0);\n return array.slice(previousSize, currentSize);\n });\n }\n function groupSlides(array) {\n return groupByNumber ? byNumber(array, slidesToScroll) : bySize(array);\n }\n const self = {\n groupSlides\n };\n return self;\n}\n\nfunction Engine(root, container, slides, ownerDocument, ownerWindow, options, eventHandler) {\n // Options\n const {\n align,\n axis: scrollAxis,\n direction,\n startIndex,\n loop,\n duration,\n dragFree,\n dragThreshold,\n inViewThreshold,\n slidesToScroll: groupSlides,\n skipSnaps,\n containScroll,\n watchResize,\n watchSlides,\n watchDrag,\n watchFocus\n } = options;\n // Measurements\n const pixelTolerance = 2;\n const nodeRects = NodeRects();\n const containerRect = nodeRects.measure(container);\n const slideRects = slides.map(nodeRects.measure);\n const axis = Axis(scrollAxis, direction);\n const viewSize = axis.measureSize(containerRect);\n const percentOfView = PercentOfView(viewSize);\n const alignment = Alignment(align, viewSize);\n const containSnaps = !loop && !!containScroll;\n const readEdgeGap = loop || !!containScroll;\n const {\n slideSizes,\n slideSizesWithGaps,\n startGap,\n endGap\n } = SlideSizes(axis, containerRect, slideRects, slides, readEdgeGap, ownerWindow);\n const slidesToScroll = SlidesToScroll(axis, viewSize, groupSlides, loop, containerRect, slideRects, startGap, endGap, pixelTolerance);\n const {\n snaps,\n snapsAligned\n } = ScrollSnaps(axis, alignment, containerRect, slideRects, slidesToScroll);\n const contentSize = -arrayLast(snaps) + arrayLast(slideSizesWithGaps);\n const {\n snapsContained,\n scrollContainLimit\n } = ScrollContain(viewSize, contentSize, snapsAligned, containScroll, pixelTolerance);\n const scrollSnaps = containSnaps ? snapsContained : snapsAligned;\n const {\n limit\n } = ScrollLimit(contentSize, scrollSnaps, loop);\n // Indexes\n const index = Counter(arrayLastIndex(scrollSnaps), startIndex, loop);\n const indexPrevious = index.clone();\n const slideIndexes = arrayKeys(slides);\n // Animation\n const update = ({\n dragHandler,\n scrollBody,\n scrollBounds,\n options: {\n loop\n }\n }) => {\n if (!loop) scrollBounds.constrain(dragHandler.pointerDown());\n scrollBody.seek();\n };\n const render = ({\n scrollBody,\n translate,\n location,\n offsetLocation,\n previousLocation,\n scrollLooper,\n slideLooper,\n dragHandler,\n animation,\n eventHandler,\n scrollBounds,\n options: {\n loop\n }\n }, alpha) => {\n const shouldSettle = scrollBody.settled();\n const withinBounds = !scrollBounds.shouldConstrain();\n const hasSettled = loop ? shouldSettle : shouldSettle && withinBounds;\n const hasSettledAndIdle = hasSettled && !dragHandler.pointerDown();\n if (hasSettledAndIdle) animation.stop();\n const interpolatedLocation = location.get() * alpha + previousLocation.get() * (1 - alpha);\n offsetLocation.set(interpolatedLocation);\n if (loop) {\n scrollLooper.loop(scrollBody.direction());\n slideLooper.loop();\n }\n translate.to(offsetLocation.get());\n if (hasSettledAndIdle) eventHandler.emit('settle');\n if (!hasSettled) eventHandler.emit('scroll');\n };\n const animation = Animations(ownerDocument, ownerWindow, () => update(engine), alpha => render(engine, alpha));\n // Shared\n const friction = 0.68;\n const startLocation = scrollSnaps[index.get()];\n const location = Vector1D(startLocation);\n const previousLocation = Vector1D(startLocation);\n const offsetLocation = Vector1D(startLocation);\n const target = Vector1D(startLocation);\n const scrollBody = ScrollBody(location, offsetLocation, previousLocation, target, duration, friction);\n const scrollTarget = ScrollTarget(loop, scrollSnaps, contentSize, limit, target);\n const scrollTo = ScrollTo(animation, index, indexPrevious, scrollBody, scrollTarget, target, eventHandler);\n const scrollProgress = ScrollProgress(limit);\n const eventStore = EventStore();\n const slidesInView = SlidesInView(container, slides, eventHandler, inViewThreshold);\n const {\n slideRegistry\n } = SlideRegistry(containSnaps, containScroll, scrollSnaps, scrollContainLimit, slidesToScroll, slideIndexes);\n const slideFocus = SlideFocus(root, slides, slideRegistry, scrollTo, scrollBody, eventStore, eventHandler, watchFocus);\n // Engine\n const engine = {\n ownerDocument,\n ownerWindow,\n eventHandler,\n containerRect,\n slideRects,\n animation,\n axis,\n dragHandler: DragHandler(axis, root, ownerDocument, ownerWindow, target, DragTracker(axis, ownerWindow), location, animation, scrollTo, scrollBody, scrollTarget, index, eventHandler, percentOfView, dragFree, dragThreshold, skipSnaps, friction, watchDrag),\n eventStore,\n percentOfView,\n index,\n indexPrevious,\n limit,\n location,\n offsetLocation,\n previousLocation,\n options,\n resizeHandler: ResizeHandler(container, eventHandler, ownerWindow, slides, axis, watchResize, nodeRects),\n scrollBody,\n scrollBounds: ScrollBounds(limit, offsetLocation, target, scrollBody, percentOfView),\n scrollLooper: ScrollLooper(contentSize, limit, offsetLocation, [location, offsetLocation, previousLocation, target]),\n scrollProgress,\n scrollSnapList: scrollSnaps.map(scrollProgress.get),\n scrollSnaps,\n scrollTarget,\n scrollTo,\n slideLooper: SlideLooper(axis, viewSize, contentSize, slideSizes, slideSizesWithGaps, snaps, scrollSnaps, offsetLocation, slides),\n slideFocus,\n slidesHandler: SlidesHandler(container, eventHandler, watchSlides),\n slidesInView,\n slideIndexes,\n slideRegistry,\n slidesToScroll,\n target,\n translate: Translate(axis, container)\n };\n return engine;\n}\n\nfunction EventHandler() {\n let listeners = {};\n let api;\n function init(emblaApi) {\n api = emblaApi;\n }\n function getListeners(evt) {\n return listeners[evt] || [];\n }\n function emit(evt) {\n getListeners(evt).forEach(e => e(api, evt));\n return self;\n }\n function on(evt, cb) {\n listeners[evt] = getListeners(evt).concat([cb]);\n return self;\n }\n function off(evt, cb) {\n listeners[evt] = getListeners(evt).filter(e => e !== cb);\n return self;\n }\n function clear() {\n listeners = {};\n }\n const self = {\n init,\n emit,\n off,\n on,\n clear\n };\n return self;\n}\n\nconst defaultOptions = {\n align: 'center',\n axis: 'x',\n container: null,\n slides: null,\n containScroll: 'trimSnaps',\n direction: 'ltr',\n slidesToScroll: 1,\n inViewThreshold: 0,\n breakpoints: {},\n dragFree: false,\n dragThreshold: 10,\n loop: false,\n skipSnaps: false,\n duration: 25,\n startIndex: 0,\n active: true,\n watchDrag: true,\n watchResize: true,\n watchSlides: true,\n watchFocus: true\n};\n\nfunction OptionsHandler(ownerWindow) {\n function mergeOptions(optionsA, optionsB) {\n return objectsMergeDeep(optionsA, optionsB || {});\n }\n function optionsAtMedia(options) {\n const optionsAtMedia = options.breakpoints || {};\n const matchedMediaOptions = objectKeys(optionsAtMedia).filter(media => ownerWindow.matchMedia(media).matches).map(media => optionsAtMedia[media]).reduce((a, mediaOption) => mergeOptions(a, mediaOption), {});\n return mergeOptions(options, matchedMediaOptions);\n }\n function optionsMediaQueries(optionsList) {\n return optionsList.map(options => objectKeys(options.breakpoints || {})).reduce((acc, mediaQueries) => acc.concat(mediaQueries), []).map(ownerWindow.matchMedia);\n }\n const self = {\n mergeOptions,\n optionsAtMedia,\n optionsMediaQueries\n };\n return self;\n}\n\nfunction PluginsHandler(optionsHandler) {\n let activePlugins = [];\n function init(emblaApi, plugins) {\n activePlugins = plugins.filter(({\n options\n }) => optionsHandler.optionsAtMedia(options).active !== false);\n activePlugins.forEach(plugin => plugin.init(emblaApi, optionsHandler));\n return plugins.reduce((map, plugin) => Object.assign(map, {\n [plugin.name]: plugin\n }), {});\n }\n function destroy() {\n activePlugins = activePlugins.filter(plugin => plugin.destroy());\n }\n const self = {\n init,\n destroy\n };\n return self;\n}\n\nfunction EmblaCarousel(root, userOptions, userPlugins) {\n const ownerDocument = root.ownerDocument;\n const ownerWindow = ownerDocument.defaultView;\n const optionsHandler = OptionsHandler(ownerWindow);\n const pluginsHandler = PluginsHandler(optionsHandler);\n const mediaHandlers = EventStore();\n const eventHandler = EventHandler();\n const {\n mergeOptions,\n optionsAtMedia,\n optionsMediaQueries\n } = optionsHandler;\n const {\n on,\n off,\n emit\n } = eventHandler;\n const reInit = reActivate;\n let destroyed = false;\n let engine;\n let optionsBase = mergeOptions(defaultOptions, EmblaCarousel.globalOptions);\n let options = mergeOptions(optionsBase);\n let pluginList = [];\n let pluginApis;\n let container;\n let slides;\n function storeElements() {\n const {\n container: userContainer,\n slides: userSlides\n } = options;\n const customContainer = isString(userContainer) ? root.querySelector(userContainer) : userContainer;\n container = customContainer || root.children[0];\n const customSlides = isString(userSlides) ? container.querySelectorAll(userSlides) : userSlides;\n slides = [].slice.call(customSlides || container.children);\n }\n function createEngine(options) {\n const engine = Engine(root, container, slides, ownerDocument, ownerWindow, options, eventHandler);\n if (options.loop && !engine.slideLooper.canLoop()) {\n const optionsWithoutLoop = Object.assign({}, options, {\n loop: false\n });\n return createEngine(optionsWithoutLoop);\n }\n return engine;\n }\n function activate(withOptions, withPlugins) {\n if (destroyed) return;\n optionsBase = mergeOptions(optionsBase, withOptions);\n options = optionsAtMedia(optionsBase);\n pluginList = withPlugins || pluginList;\n storeElements();\n engine = createEngine(options);\n optionsMediaQueries([optionsBase, ...pluginList.map(({\n options\n }) => options)]).forEach(query => mediaHandlers.add(query, 'change', reActivate));\n if (!options.active) return;\n engine.translate.to(engine.location.get());\n engine.animation.init();\n engine.slidesInView.init();\n engine.slideFocus.init(self);\n engine.eventHandler.init(self);\n engine.resizeHandler.init(self);\n engine.slidesHandler.init(self);\n if (engine.options.loop) engine.slideLooper.loop();\n if (container.offsetParent && slides.length) engine.dragHandler.init(self);\n pluginApis = pluginsHandler.init(self, pluginList);\n }\n function reActivate(withOptions, withPlugins) {\n const startIndex = selectedScrollSnap();\n deActivate();\n activate(mergeOptions({\n startIndex\n }, withOptions), withPlugins);\n eventHandler.emit('reInit');\n }\n function deActivate() {\n engine.dragHandler.destroy();\n engine.eventStore.clear();\n engine.translate.clear();\n engine.slideLooper.clear();\n engine.resizeHandler.destroy();\n engine.slidesHandler.destroy();\n engine.slidesInView.destroy();\n engine.animation.destroy();\n pluginsHandler.destroy();\n mediaHandlers.clear();\n }\n function destroy() {\n if (destroyed) return;\n destroyed = true;\n mediaHandlers.clear();\n deActivate();\n eventHandler.emit('destroy');\n eventHandler.clear();\n }\n function scrollTo(index, jump, direction) {\n if (!options.active || destroyed) return;\n engine.scrollBody.useBaseFriction().useDuration(jump === true ? 0 : options.duration);\n engine.scrollTo.index(index, direction || 0);\n }\n function scrollNext(jump) {\n const next = engine.index.add(1).get();\n scrollTo(next, jump, -1);\n }\n function scrollPrev(jump) {\n const prev = engine.index.add(-1).get();\n scrollTo(prev, jump, 1);\n }\n function canScrollNext() {\n const next = engine.index.add(1).get();\n return next !== selectedScrollSnap();\n }\n function canScrollPrev() {\n const prev = engine.index.add(-1).get();\n return prev !== selectedScrollSnap();\n }\n function scrollSnapList() {\n return engine.scrollSnapList;\n }\n function scrollProgress() {\n return engine.scrollProgress.get(engine.offsetLocation.get());\n }\n function selectedScrollSnap() {\n return engine.index.get();\n }\n function previousScrollSnap() {\n return engine.indexPrevious.get();\n }\n function slidesInView() {\n return engine.slidesInView.get();\n }\n function slidesNotInView() {\n return engine.slidesInView.get(false);\n }\n function plugins() {\n return pluginApis;\n }\n function internalEngine() {\n return engine;\n }\n function rootNode() {\n return root;\n }\n function containerNode() {\n return container;\n }\n function slideNodes() {\n return slides;\n }\n const self = {\n canScrollNext,\n canScrollPrev,\n containerNode,\n internalEngine,\n destroy,\n off,\n on,\n emit,\n plugins,\n previousScrollSnap,\n reInit,\n rootNode,\n scrollNext,\n scrollPrev,\n scrollProgress,\n scrollSnapList,\n scrollTo,\n selectedScrollSnap,\n slideNodes,\n slidesInView,\n slidesNotInView\n };\n activate(userOptions, userPlugins);\n setTimeout(() => eventHandler.emit('init'), 0);\n return self;\n}\nEmblaCarousel.globalOptions = undefined;\n\nexport { EmblaCarousel as default };\n//# sourceMappingURL=embla-carousel.esm.js.map\n","import { useRef, useState, useCallback, useEffect } from 'react';\nimport { areOptionsEqual, arePluginsEqual, canUseDOM } from 'embla-carousel-reactive-utils';\nimport EmblaCarousel from 'embla-carousel';\n\nfunction useEmblaCarousel(options = {}, plugins = []) {\n const storedOptions = useRef(options);\n const storedPlugins = useRef(plugins);\n const [emblaApi, setEmblaApi] = useState();\n const [viewport, setViewport] = useState();\n const reInit = useCallback(() => {\n if (emblaApi) emblaApi.reInit(storedOptions.current, storedPlugins.current);\n }, [emblaApi]);\n useEffect(() => {\n if (areOptionsEqual(storedOptions.current, options)) return;\n storedOptions.current = options;\n reInit();\n }, [options, reInit]);\n useEffect(() => {\n if (arePluginsEqual(storedPlugins.current, plugins)) return;\n storedPlugins.current = plugins;\n reInit();\n }, [plugins, reInit]);\n useEffect(() => {\n if (canUseDOM() && viewport) {\n EmblaCarousel.globalOptions = useEmblaCarousel.globalOptions;\n const newEmblaApi = EmblaCarousel(viewport, storedOptions.current, storedPlugins.current);\n setEmblaApi(newEmblaApi);\n return () => newEmblaApi.destroy();\n } else {\n setEmblaApi(undefined);\n }\n }, [viewport, setEmblaApi]);\n return [setViewport, emblaApi];\n}\nuseEmblaCarousel.globalOptions = undefined;\n\nexport { useEmblaCarousel as default };\n//# sourceMappingURL=embla-carousel-react.esm.js.map\n","import React, { type ComponentPropsWithRef } from \"react\";\nimport c from \"classnames/bind\";\nimport { type AutoplayOptionsType } from \"embla-carousel-autoplay\";\n\nimport styles from \"./PageIndicator.module.scss\";\n\nconst cx = c.bind(styles);\n\nconst rootClassName = \"carousel-page-indicator\";\n\ntype PageIndicatorProps = ComponentPropsWithRef<\"li\"> & {\n showProgress: boolean;\n index: number;\n totalIndicators: number;\n selectedIndex: number;\n delay: AutoplayOptionsType[\"delay\"];\n};\n\nconst defaultDelay = 4000;\n\nexport const PageIndicator = ({\n index,\n selectedIndex,\n totalIndicators,\n showProgress,\n delay = defaultDelay,\n}: PageIndicatorProps) => {\n const getSize = () => {\n const distanceToEdge = Math.min(index, totalIndicators - 1 - index);\n\n let offset = distanceToSelected;\n\n if (!isWithinRange) return 0;\n if (distanceToEdge === 0) return 150;\n\n if (selectedDistanceToEdge === 0) {\n if (distanceToSelected === 2) offset = 1;\n if (distanceToSelected === 3) offset = 2;\n }\n\n const calc = 1 / (2 * (offset || 0.5));\n\n if (calc < 0.25) return 50;\n if (calc < 0.5) return 100;\n\n return 150;\n };\n\n const isSelected = index === selectedIndex;\n const distanceToSelected = Math.abs(selectedIndex - index);\n const selectedDistanceToEdge = Math.min(selectedIndex, totalIndicators - 1 - selectedIndex);\n const threshhold = Math.max(5 - selectedDistanceToEdge, 3);\n const isWithinRange = distanceToSelected < threshhold;\n const size = totalIndicators < 6 ? 150 : getSize();\n\n return (\n <li\n className={cx(rootClassName)}\n data-selected={isSelected}\n data-show-progress={showProgress}\n style={{\n marginLeft: isWithinRange && index > 0 ? \"var(--purpur-spacing-100)\" : undefined,\n width: isSelected ? \"var(--purpur-spacing-400)\" : `var(--purpur-spacing-${size})`,\n height: `var(--purpur-spacing-${size})`,\n // @ts-expect-error TS doesn't know about CSS variables yet\n [\"--progress-time\"]: `${delay}ms`,\n }}\n />\n );\n};\n","import { useCallback, useEffect, useRef, useState } from \"react\";\nimport { type EmblaCarouselType } from \"embla-carousel\";\n\nexport type UseAutoplayType = {\n isPlaying: boolean;\n toggle: () => void;\n reset: () => void;\n};\n\nexport const useAutoplay = (\n emblaApi: EmblaCarouselType | undefined,\n containerRef?: React.RefObject<Element | null>\n): UseAutoplayType => {\n const pausedByVisibility = useRef(false);\n const [autoplayIsPlaying, setAutoplayIsPlaying] = useState(false);\n const autoplay = emblaApi?.plugins()?.autoplay;\n\n const toggleAutoplay = useCallback(() => {\n if (!autoplay) return;\n\n const playOrStop = autoplay.isPlaying() ? autoplay.stop : autoplay.play;\n playOrStop();\n }, [autoplay]);\n\n const resetAutoplay = () => {\n if (!autoplay) return;\n autoplay.reset();\n };\n\n useEffect(() => {\n if (!autoplay) return;\n\n setAutoplayIsPlaying(autoplay.isPlaying());\n\n emblaApi\n .on(\"autoplay:play\", () => setAutoplayIsPlaying(true))\n .on(\"autoplay:stop\", () => setAutoplayIsPlaying(false))\n .on(\"reInit\", () => setAutoplayIsPlaying(autoplay.isPlaying()));\n }, [autoplay, emblaApi]);\n\n useEffect(() => {\n if (!autoplay || !containerRef?.current) return;\n\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (!entry.isIntersecting) {\n if (autoplay.isPlaying()) {\n pausedByVisibility.current = true;\n autoplay.stop();\n }\n } else {\n if (pausedByVisibility.current) {\n pausedByVisibility.current = false;\n autoplay.play();\n }\n }\n },\n { threshold: 0 }\n );\n\n const el = containerRef.current;\n observer.observe(el);\n return () => observer.disconnect();\n }, [autoplay, containerRef]);\n\n return {\n isPlaying: autoplayIsPlaying,\n toggle: toggleAutoplay,\n reset: resetAutoplay,\n };\n};\n","import { useCallback, useEffect, useState } from \"react\";\nimport type { EmblaCarouselType } from \"embla-carousel\";\n\ntype UseDotButtonType = {\n selectedIndex: number;\n scrollSnaps: number[];\n onIndicatorClick: (index: number) => void;\n};\n\nexport const usePageIndicators = (emblaApi: EmblaCarouselType | undefined): UseDotButtonType => {\n const [selectedIndex, setSelectedIndex] = useState(0);\n const [scrollSnaps, setScrollSnaps] = useState<number[]>([]);\n\n const onIndicatorClick = useCallback(\n (index: number) => {\n if (!emblaApi) return;\n emblaApi.scrollTo(index);\n },\n [emblaApi]\n );\n\n const onInit = useCallback((emblaApi: EmblaCarouselType) => {\n setScrollSnaps(emblaApi.scrollSnapList());\n }, []);\n\n const onSelect = useCallback((emblaApi: EmblaCarouselType) => {\n setSelectedIndex(emblaApi.selectedScrollSnap());\n }, []);\n\n useEffect(() => {\n if (!emblaApi) return;\n\n onInit(emblaApi);\n onSelect(emblaApi);\n emblaApi.on(\"reInit\", onInit).on(\"reInit\", onSelect).on(\"select\", onSelect);\n }, [emblaApi, onInit, onSelect]);\n\n return {\n selectedIndex,\n scrollSnaps,\n onIndicatorClick,\n };\n};\n","import { useEffect, useState } from \"react\";\n\nconst REDUCED_MOTION_QUERY = \"(prefers-reduced-motion: reduce)\";\n\nconst getPrefersReducedMotion = () => {\n if (typeof window === \"undefined\") {\n return false;\n }\n\n return window.matchMedia(REDUCED_MOTION_QUERY).matches;\n};\n\nexport const usePrefersReducedMotion = () => {\n const [prefersReducedMotion, setPrefersReducedMotion] = useState(getPrefersReducedMotion);\n\n useEffect(() => {\n if (typeof window === \"undefined\") {\n return;\n }\n\n const mediaQueryList = window.matchMedia(REDUCED_MOTION_QUERY);\n const updatePreference = () => {\n setPrefersReducedMotion(mediaQueryList.matches);\n };\n\n updatePreference();\n\n mediaQueryList.addEventListener(\"change\", updatePreference);\n\n return () => {\n mediaQueryList.removeEventListener(\"change\", updatePreference);\n };\n }, []);\n\n return prefersReducedMotion;\n};\n","import { useCallback, useEffect, useState } from \"react\";\nimport type { EmblaCarouselType } from \"embla-carousel\";\n\nimport { type UseAutoplayType } from \"./useAutoplay\";\n\ntype UsePrevNextButtonsType = {\n prevBtnDisabled: boolean;\n nextBtnDisabled: boolean;\n onPrevButtonClick: () => void;\n onNextButtonClick: () => void;\n};\n\nexport const usePrevNextButtons = (\n emblaApi: EmblaCarouselType | undefined,\n containerRef: React.RefObject<HTMLDivElement | null>,\n autoplay: UseAutoplayType\n): UsePrevNextButtonsType => {\n const [prevBtnDisabled, setPrevBtnDisabled] = useState(true);\n const [nextBtnDisabled, setNextBtnDisabled] = useState(true);\n\n const onPrevButtonClick = useCallback(() => {\n if (!emblaApi) return;\n emblaApi.scrollPrev();\n autoplay.reset();\n }, [emblaApi, autoplay]);\n\n const onNextButtonClick = useCallback(() => {\n if (!emblaApi) return;\n emblaApi.scrollNext();\n autoplay.reset();\n }, [emblaApi, autoplay]);\n\n const onSelect = useCallback((emblaApi: EmblaCarouselType) => {\n setPrevBtnDisabled(!emblaApi.canScrollPrev());\n setNextBtnDisabled(!emblaApi.canScrollNext());\n }, []);\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent) => {\n switch (e.key) {\n case \"ArrowLeft\":\n onPrevButtonClick();\n // @ts-expect-error - TypeScript doesn't know that the target will have previousSibling and nextSibling\n e.target?.previousSibling?.focus();\n break;\n\n case \"ArrowRight\":\n onNextButtonClick();\n // @ts-expect-error - TypeScript doesn't know that the target will have previousSibling and nextSibling\n e.target?.nextSibling?.focus();\n break;\n\n default:\n break;\n }\n },\n [onPrevButtonClick, onNextButtonClick]\n );\n\n useEffect(() => {\n const container = containerRef.current;\n\n if (!emblaApi) return;\n if (!container) return;\n\n onSelect(emblaApi);\n emblaApi.on(\"reInit\", onSelect).on(\"select\", onSelect);\n\n container.addEventListener(\"keydown\", handleKeyDown);\n\n return () => {\n container.removeEventListener(\"keydown\", handleKeyDown);\n };\n }, [emblaApi, onSelect, containerRef, handleKeyDown]);\n\n return {\n prevBtnDisabled,\n nextBtnDisabled,\n onPrevButtonClick,\n onNextButtonClick,\n };\n};\n","import React, { useEffect, useLayoutEffect, useMemo, useRef, useState } from \"react\";\nimport { Button } from \"@purpur/button\";\nimport { IconArrowLeft } from \"@purpur/icon/arrow-left\";\nimport { IconArrowRight } from \"@purpur/icon/arrow-right\";\nimport { IconPlayFilled } from \"@purpur/icon/play-filled\";\nimport { IconTvPause } from \"@purpur/icon/tv-pause\";\nimport c from \"classnames/bind\";\nimport { type EmblaOptionsType, type EmblaPluginType } from \"embla-carousel\";\nimport Autoplay, { type AutoplayOptionsType } from \"embla-carousel-autoplay\";\nimport useEmblaCarousel from \"embla-carousel-react\";\n\nimport styles from \"./carousel.module.scss\";\nimport { PageIndicator } from \"./components/PageIndicator\";\nimport { useAutoplay } from \"./hooks/useAutoplay\";\nimport { usePageIndicators } from \"./hooks/usePageIndicators\";\nimport { usePrefersReducedMotion } from \"./hooks/usePrefersReducedMotion\";\nimport { usePrevNextButtons } from \"./hooks/usePrevNextButtons\";\n\nconst cx = c.bind(styles);\n\nconst useIsomorphicLayoutEffect = typeof window === \"undefined\" ? useEffect : useLayoutEffect;\n\ntype ExpandedEmblaOptionsType = EmblaOptionsType & { slidesToShow?: number };\n\ntype PurpurSpacingToken =\n | 0\n | 10\n | 25\n | 50\n | 100\n | 150\n | 200\n | 250\n | 300\n | 400\n | 600\n | 800\n | 1000\n | 1200\n | 1600;\n\nexport type CarouselProps = {\n className?: string;\n children: React.ReactNode;\n options: ExpandedEmblaOptionsType & {\n breakpoints?: Record<string, Partial<ExpandedEmblaOptionsType>>;\n };\n autoplay?: boolean | AutoplayOptionsType;\n /** Space between slides, in purpur spacing tokens*/\n slideSpacing?: PurpurSpacingToken;\n controllerPlacement?: \"top\" | \"bottom\" | \"hidden\";\n\n /** Hides page indicators but keeps autoplay controls if autoplay is enabled */\n hidePageIndicator?: boolean;\n /** How much of the next available slide will be visible in percent\n * Min 0% (no preview) - Max 50% (100% of next slide will be visible)\n * Recomended maximum 35%\n */\n nextSlidePreview?: number;\n\n ariaLabels: {\n nextButton: string;\n previousButton: string;\n autoplay: {\n play: string;\n pause: string;\n indicator: string;\n };\n };\n};\n\nconst rootClassName = \"purpur-carousel\";\n\nexport const Carousel = ({\n className,\n options = {},\n children,\n controllerPlacement = \"bottom\",\n ...props\n}: CarouselProps) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const progressNode = useRef<HTMLLIElement>(null);\n\n const autoplayOptions = typeof props.autoplay === \"boolean\" ? {} : props.autoplay ?? {};\n const classes = cx(rootClassName, className);\n const prefersReducedMotion = usePrefersReducedMotion();\n\n const baseEmblaOptions = useMemo(\n () => (prefersReducedMotion ? { ...options, duration: 0 } : options),\n [options, prefersReducedMotion]\n );\n const emblaOptions = useBreakpointResolvedEmblaOptions(baseEmblaOptions);\n\n const plugins: EmblaPluginType[] = [];\n\n if (props.autoplay) {\n plugins.push(\n Autoplay({\n ...autoplayOptions,\n jump: prefersReducedMotion,\n })\n );\n }\n\n const [emblaRef, emblaApi] = useEmblaCarousel({ align: \"start\", ...emblaOptions }, plugins);\n const autoplay = useAutoplay(emblaApi, containerRef);\n const buttons = usePrevNextButtons(emblaApi, containerRef, autoplay);\n\n const { selectedIndex, scrollSnaps } = usePageIndicators(emblaApi);\n\n const renderSlides = () => {\n return React.Children.toArray(children).map((slide) => {\n return React.Children.only(slide);\n });\n };\n\n const renderControls = () => {\n return (\n <div className={cx(`${rootClassName}__controls`)}>\n {props.hidePageIndicator !== true && (\n <>\n <ul\n className={cx(`${rootClassName}__page-indicators`)}\n data-overflowing={scrollSnaps.length > 5}\n aria-label={`${props.ariaLabels.autoplay.indicator} ${selectedIndex + 1}`}\n aria-live=\"off\"\n >\n {scrollSnaps.map((_, i, arr) => {\n return (\n <PageIndicator\n key={i}\n index={i}\n ref={progressNode}\n showProgress={autoplay.isPlaying}\n totalIndicators={arr.length}\n selectedIndex={selectedIndex}\n delay={autoplayOptions.delay}\n />\n );\n })}\n </ul>\n {props.autoplay && (\n <Button\n variant=\"text\"\n aria-label={\n autoplay.isPlaying\n ? props.ariaLabels.autoplay.pause\n : props.ariaLabels.autoplay.play\n }\n onClick={autoplay.toggle}\n iconOnly\n size=\"sm\"\n className={cx(`${rootClassName}__autoplay-pause-button`)}\n >\n {autoplay.isPlaying ? <IconTvPause size=\"xs\" /> : <IconPlayFilled size=\"xs\" />}\n </Button>\n )}\n </>\n )}\n\n <div className={cx(`${rootClassName}__buttons`)}>\n <Button\n iconOnly\n aria-label={props.ariaLabels.previousButton}\n size=\"md\"\n variant=\"secondary\"\n onClick={buttons.onPrevButtonClick}\n disabled={buttons.prevBtnDisabled}\n >\n <IconArrowLeft size=\"xs\" />\n </Button>\n <Button\n iconOnly\n aria-label={props.ariaLabels.nextButton}\n size=\"md\"\n variant=\"secondary\"\n onClick={buttons.onNextButtonClick}\n disabled={buttons.nextBtnDisabled}\n >\n <IconArrowRight size=\"xs\" />\n </Button>\n </div>\n </div>\n );\n };\n\n const previewAmount = Math.max(0, Math.min(50, props.nextSlidePreview || 0));\n\n return (\n <section\n ref={containerRef}\n className={classes}\n data-is-looping={Boolean(options?.loop)}\n style={{\n // @ts-expect-error TS doesn't know about CSS variables yet\n [\"--n\"]: emblaOptions.slidesToShow || 1,\n [\"--preview\"]: previewAmount,\n [\"--slide-spacing\"]: `var(--purpur-spacing-${props.slideSpacing || 300})`,\n }}\n >\n {controllerPlacement === \"top\" && renderControls()}\n <div className={cx(`${rootClassName}__viewport`)} ref={emblaRef}>\n <ul className={cx(`${rootClassName}__container`)}>{renderSlides()}</ul>\n </div>\n {controllerPlacement === \"bottom\" && renderControls()}\n </section>\n );\n};\n\nconst CarouselSlide = ({ children }: { children: React.ReactNode }) => {\n return <li className={cx(`${rootClassName}__slide`)}>{children}</li>;\n};\n\nCarousel.displayName = \"Carousel\";\n\nCarousel.Slide = CarouselSlide;\n\nfunction useBreakpointResolvedEmblaOptions(\n options: ExpandedEmblaOptionsType = {}\n): ExpandedEmblaOptionsType {\n const [resolveBreakpoints, setResolveBreakpoints] = useState(false);\n const [, setBreakpointUpdateCount] = useState(0);\n\n useIsomorphicLayoutEffect(() => {\n setResolveBreakpoints(true);\n }, []);\n\n useIsomorphicLayoutEffect(() => {\n if (!resolveBreakpoints || !canUseMatchMedia() || !options.breakpoints) {\n return;\n }\n\n const mediaQueryLists = Object.keys(options.breakpoints).map((query) =>\n window.matchMedia(query)\n );\n const updateBreakpointOptions = () => {\n setBreakpointUpdateCount((count) => count + 1);\n };\n\n mediaQueryLists.forEach((mediaQueryList) => {\n mediaQueryList.addEventListener(\"change\", updateBreakpointOptions);\n });\n\n return () => {\n mediaQueryLists.forEach((mediaQueryList) => {\n mediaQueryList.removeEventListener(\"change\", updateBreakpointOptions);\n });\n };\n }, [options.breakpoints, resolveBreakpoints]);\n\n return getEmblaOptions(options, resolveBreakpoints);\n}\n\nfunction canUseMatchMedia() {\n return typeof window !== \"undefined\" && typeof window.matchMedia === \"function\";\n}\n\nfunction getEmblaOptions(\n options: ExpandedEmblaOptionsType = {},\n resolveBreakpoints = true\n): ExpandedEmblaOptionsType {\n const emblaOptions = { ...options };\n\n if (!resolveBreakpoints || !canUseMatchMedia() || !options.breakpoints) {\n return emblaOptions;\n }\n\n for (const key in options.breakpoints) {\n Object.assign(emblaOptions, window.matchMedia(key).matches ? options.breakpoints[key] : {});\n }\n\n return emblaOptions;\n}\n"],"names":["a","d","l","o","e","s","v","defaultOptions","normalizeDelay","emblaApi","delay","scrollSnaps","getAutoplayRootNode","rootNode","emblaRootNode","Autoplay","userOptions","options","destroyed","timerStartTime","timerId","autoplayActive","mouseIsOver","playOnDocumentVisible","jump","init","emblaApiInstance","optionsHandler","mergeOptions","optionsAtMedia","optionsBase","allOptions","eventStore","ownerDocument","isDraggable","root","visibilityChange","pointerDown","pointerUp","mouseEnter","mouseLeave","stopAutoplay","startAutoplay","destroy","setTimer","ownerWindow","next","clearTimer","documentIsHidden","play","jumpOverride","stop","reset","isPlaying","index","nextIndex","lastIndex","kill","timeUntilNext","currentDelay","timePastSinceStart","isObject","subject","isRecord","canUseDOM","areOptionsEqual","optionsA","optionsB","optionsAKeys","optionsBKeys","breakpointsA","breakpointsB","key","valueA","valueB","sortAndMapPluginToOptions","plugins","b","plugin","arePluginsEqual","pluginsA","pluginsB","optionA","optionB","isNumber","isString","isBoolean","mathAbs","n","mathSign","deltaAbs","factorAbs","diff","roundToTwoDecimals","num","arrayKeys","array","objectKeys","arrayLast","arrayLastIndex","arrayIsLastIndex","arrayFromNumber","startAt","_","i","object","objectsMergeDeep","objectA","objectB","mergedObjects","currentObject","areObjects","isMouseEvent","evt","Alignment","align","viewSize","predefined","start","center","end","measure","EventStore","listeners","add","node","type","handler","removeListener","legacyMediaQueryList","self","clear","remove","Animations","update","render","documentVisibleHandler","fixedTimeStep","lastTimeStamp","accumulatedTime","animationId","animate","timeStamp","timeElapsed","alpha","Axis","axis","contentDirection","isRightToLeft","isVertical","scroll","cross","sign","startEdge","getStartEdge","endEdge","getEndEdge","measureSize","nodeRect","height","width","direction","Limit","min","max","length","reachedMin","reachedMax","reachedAny","constrain","removeOffset","Counter","loop","loopEnd","counter","withinLimit","get","set","clone","DragHandler","target","dragTracker","location","animation","scrollTo","scrollBody","scrollTarget","eventHandler","percentOfView","dragFree","dragThreshold","skipSnaps","baseFriction","watchDrag","crossAxis","focusNodes","nonPassiveEvent","initEvents","dragEvents","goToNextThreshold","snapForceBoost","freeForceBoost","baseSpeed","isMoving","startScroll","startCross","pointerIsDown","preventScroll","preventClick","isMouse","downIfAllowed","down","up","click","addDragEvents","move","isFocusNode","nodeName","forceBoost","allowedForce","force","targetChanged","baseForce","isMouseEvt","lastScroll","lastCross","diffScroll","diffCross","rawForce","forceFactor","speed","friction","DragTracker","startEvent","lastEvent","readTime","readPoint","evtAxis","coord","pointerMove","expired","diffDrag","diffTime","NodeRects","offsetTop","offsetLeft","offsetWidth","offsetHeight","PercentOfView","ResizeHandler","container","slides","watchResize","nodeRects","observeNodes","resizeObserver","containerSize","slideSizes","readSize","defaultCallback","entries","entry","isContainer","slideIndex","lastSize","newSize","ScrollBody","offsetLocation","previousLocation","baseDuration","scrollVelocity","scrollDirection","scrollDuration","scrollFriction","rawLocation","rawLocationPrevious","seek","displacement","isInstant","scrollDistance","settled","duration","velocity","useBaseDuration","useDuration","useBaseFriction","useFriction","ScrollBounds","limit","pullBackThreshold","edgeOffsetTolerance","frictionLimit","disabled","shouldConstrain","edge","diffToEdge","diffToTarget","toggleActive","active","ScrollContain","contentSize","snapsAligned","containScroll","pixelTolerance","scrollBounds","snapsBounded","measureBounded","scrollContainLimit","findScrollContainLimit","snapsContained","measureContained","usePixelTolerance","bound","snap","startSnap","endSnap","snapAligned","isFirst","isLast","scrollBound","ScrollLimit","ScrollLooper","vectors","shouldLoop","loopDistance","ScrollProgress","currentLocation","ScrollSnaps","alignment","containerRect","slideRects","slidesToScroll","groupSlides","alignments","measureSizes","snaps","measureUnaligned","measureAligned","rects","rect","g","SlideRegistry","containSnaps","slideIndexes","slideRegistry","createSlideRegistry","groupedSlideIndexes","doNotContain","group","groups","range","ScrollTarget","targetVector","minDistance","distances","findTargetSnap","distance","ascDiffsToSnaps","shortcut","d1","d2","targets","matchingTargets","t","byIndex","diffToSnap","byDistance","targetSnapDistance","reachedBound","snapDistance","ScrollTo","indexCurrent","indexPrevious","distanceDiff","indexDiff","targetIndex","SlideFocus","watchFocus","focusListenerOptions","lastTabPressTime","registerTabPress","slide","event","Vector1D","initialValue","value","normalizeInput","subtract","Translate","translate","x","y","containerStyle","previousTarget","to","newTarget","SlideLooper","slideSizesWithGaps","ascItems","descItems","loopPoints","startPoints","endPoints","removeSlideSizes","indexes","from","slidesInGap","gap","findSlideBounds","offset","findLoopPoints","isEndEdge","slideBounds","initial","altered","boundEdge","loopPoint","canLoop","otherIndexes","slideLocation","shiftLocation","SlidesHandler","watchSlides","mutationObserver","mutations","mutation","SlidesInView","threshold","intersectionEntryMap","inViewCache","notInViewCache","intersectionObserver","createInViewList","inView","list","isIntersecting","SlideSizes","readEdgeGap","withEdgeGap","startGap","measureStartGap","endGap","measureEndGap","measureWithGaps","slideRect","style","SlidesToScroll","groupByNumber","byNumber","groupSize","bySize","rectB","rectA","edgeA","edgeB","gapA","gapB","chunkSize","currentSize","previousSize","Engine","scrollAxis","startIndex","inViewThreshold","dragHandler","scrollLooper","slideLooper","shouldSettle","withinBounds","hasSettled","hasSettledAndIdle","interpolatedLocation","engine","startLocation","scrollProgress","slidesInView","slideFocus","EventHandler","api","getListeners","emit","on","cb","off","OptionsHandler","matchedMediaOptions","media","mediaOption","optionsMediaQueries","optionsList","acc","mediaQueries","PluginsHandler","activePlugins","map","EmblaCarousel","userPlugins","pluginsHandler","mediaHandlers","reInit","reActivate","pluginList","pluginApis","storeElements","userContainer","userSlides","customSlides","createEngine","optionsWithoutLoop","activate","withOptions","withPlugins","query","selectedScrollSnap","deActivate","scrollNext","scrollPrev","prev","canScrollNext","canScrollPrev","scrollSnapList","previousScrollSnap","slidesNotInView","internalEngine","containerNode","slideNodes","useEmblaCarousel","storedOptions","useRef","storedPlugins","setEmblaApi","useState","viewport","setViewport","useCallback","useEffect","newEmblaApi","cx","c","styles","rootClassName","defaultDelay","PageIndicator","selectedIndex","totalIndicators","showProgress","getSize","distanceToEdge","distanceToSelected","isWithinRange","selectedDistanceToEdge","calc","isSelected","threshhold","size","jsx","useAutoplay","containerRef","pausedByVisibility","autoplayIsPlaying","setAutoplayIsPlaying","autoplay","toggleAutoplay","resetAutoplay","observer","el","usePageIndicators","setSelectedIndex","setScrollSnaps","onIndicatorClick","onInit","onSelect","REDUCED_MOTION_QUERY","getPrefersReducedMotion","usePrefersReducedMotion","prefersReducedMotion","setPrefersReducedMotion","mediaQueryList","updatePreference","usePrevNextButtons","prevBtnDisabled","setPrevBtnDisabled","nextBtnDisabled","setNextBtnDisabled","onPrevButtonClick","onNextButtonClick","handleKeyDown","useIsomorphicLayoutEffect","useLayoutEffect","Carousel","className","children","controllerPlacement","props","progressNode","autoplayOptions","classes","baseEmblaOptions","useMemo","emblaOptions","useBreakpointResolvedEmblaOptions","emblaRef","buttons","renderSlides","React","renderControls","jsxs","Fragment","arr","Button","IconTvPause","IconPlayFilled","IconArrowLeft","IconArrowRight","previewAmount","CarouselSlide","resolveBreakpoints","setResolveBreakpoints","setBreakpointUpdateCount","canUseMatchMedia","mediaQueryLists","updateBreakpointOptions","count","getEmblaOptions"],"mappings":"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","x_google_ignoreList":[2,3,4,5]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const B=require("react/jsx-runtime"),E=require("react"),Ot=require("./button-DmybVApa.js"),me=require("./arrow-left.es-CCWJyrcQ.js"),ye=require("./arrow-right.es-eH-IgGi9.js"),Jt=require("./icon-DNHpBTHs-faYHqTXU.js"),Xt=require("./bind-DeUYJ6m9.js"),he={name:"play-filled",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>',keywords:["play-filled"],category:"action"},Yt=t=>B.jsx(Jt.b,{...t,svg:he});Yt.displayName="IconPlayFilled";const Se={name:"tv-pause",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>',keywords:["tv-pause"],category:"action"},Wt=t=>B.jsx(Jt.b,{...t,svg:Se});Wt.displayName="IconTvPause";const be={active:!0,breakpoints:{},delay:4e3,jump:!1,playOnInit:!0,stopOnFocusIn:!0,stopOnInteraction:!0,stopOnMouseEnter:!1,stopOnLastSnap:!1,rootNode:null};function ve(t,e){const n=t.scrollSnapList();return typeof e=="number"?n.map(()=>e):e(n,t)}function xe(t,e){const n=t.rootNode();return e&&e(n)||n}function Tt(t={}){let e,n,r,i,o=null,s=0,u=!1,c=!1,a=!1,m=!1;function l(T,A){n=T;const{mergeOptions:R,optionsAtMedia:$}=A,G=R(be,Tt.globalOptions),Z=R(G,t);if(e=$(Z),n.scrollSnapList().length<=1)return;m=e.jump,r=!1,i=ve(n,e.delay);const{eventStore:K,ownerDocument:H}=n.internalEngine(),X=!!n.internalEngine().options.watchDrag,Y=xe(n,e.rootNode);K.add(H,"visibilitychange",d),X&&n.on("pointerDown",b),X&&!e.stopOnInteraction&&n.on("pointerUp",L),e.stopOnMouseEnter&&K.add(Y,"mouseenter",_),e.stopOnMouseEnter&&!e.stopOnInteraction&&K.add(Y,"mouseleave",I),e.stopOnFocusIn&&n.on("slideFocusStart",y),e.stopOnFocusIn&&!e.stopOnInteraction&&K.add(n.containerNode(),"focusout",p),e.playOnInit&&p()}function g(){n.off("pointerDown",b).off("pointerUp",L).off("slideFocusStart",y),y(),r=!0,u=!1}function S(){const{ownerWindow:T}=n.internalEngine();T.clearTimeout(s),s=T.setTimeout(M,i[n.selectedScrollSnap()]),o=new Date().getTime(),n.emit("autoplay:timerset")}function f(){const{ownerWindow:T}=n.internalEngine();T.clearTimeout(s),s=0,o=null,n.emit("autoplay:timerstopped")}function p(){if(!r){if(h()){a=!0;return}u||n.emit("autoplay:play"),S(),u=!0}}function y(){r||(u&&n.emit("autoplay:stop"),f(),u=!1)}function d(){if(h())return a=u,y();a&&p()}function h(){const{ownerDocument:T}=n.internalEngine();return T.visibilityState==="hidden"}function b(){c||y()}function L(){c||p()}function _(){c=!0,y()}function I(){c=!1,p()}function x(T){typeof T<"u"&&(m=T),p()}function w(){u&&y()}function O(){u&&p()}function C(){return u}function M(){const{index:T}=n.internalEngine(),A=T.clone().add(1).get(),R=n.scrollSnapList().length-1,$=e.stopOnLastSnap&&A===R;if(n.canScrollNext()?n.scrollNext(m):n.scrollTo(0,m),n.emit("autoplay:select"),$)return y();p()}function j(){if(!o)return null;const T=i[n.selectedScrollSnap()],A=new Date().getTime()-o;return T-A}return{name:"autoplay",options:t,init:l,destroy:g,play:x,stop:w,reset:O,isPlaying:C,timeUntilNext:j}}Tt.globalOptions=void 0;function we(t){return Object.prototype.toString.call(t)==="[object Object]"}function Ut(t){return we(t)||Array.isArray(t)}function Ee(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}function Dt(t,e){const n=Object.keys(t),r=Object.keys(e);if(n.length!==r.length)return!1;const i=JSON.stringify(Object.keys(t.breakpoints||{})),o=JSON.stringify(Object.keys(e.breakpoints||{}));return i!==o?!1:n.every(s=>{const u=t[s],c=e[s];return typeof u=="function"?`${u}`==`${c}`:!Ut(u)||!Ut(c)?u===c:Dt(u,c)})}function Gt(t){return t.concat().sort((e,n)=>e.name>n.name?1:-1).map(e=>e.options)}function Le(t,e){if(t.length!==e.length)return!1;const n=Gt(t),r=Gt(e);return n.every((i,o)=>{const s=r[o];return Dt(i,s)})}function kt(t){return typeof t=="number"}function _t(t){return typeof t=="string"}function vt(t){return typeof t=="boolean"}function Zt(t){return Object.prototype.toString.call(t)==="[object Object]"}function P(t){return Math.abs(t)}function Pt(t){return Math.sign(t)}function pt(t,e){return P(t-e)}function Ie(t,e){if(t===0||e===0||P(t)<=P(e))return 0;const n=pt(P(t),P(e));return P(n/t)}function Oe(t){return Math.round(t*100)/100}function gt(t){return mt(t).map(Number)}function Q(t){return t[ht(t)]}function ht(t){return Math.max(0,t.length-1)}function Ct(t,e){return e===ht(t)}function Qt(t,e=0){return Array.from(Array(t),(n,r)=>e+r)}function mt(t){return Object.keys(t)}function te(t,e){return[t,e].reduce((n,r)=>(mt(r).forEach(i=>{const o=n[i],s=r[i],u=Zt(o)&&Zt(s);n[i]=u?te(o,s):s}),n),{})}function Mt(t,e){return typeof e.MouseEvent<"u"&&t instanceof e.MouseEvent}function _e(t,e){const n={start:r,center:i,end:o};function r(){return 0}function i(c){return o(c)/2}function o(c){return e-c}function s(c,a){return _t(t)?n[t](c):t(e,c,a)}return{measure:s}}function yt(){let t=[];function e(i,o,s,u={passive:!0}){let c;if("addEventListener"in i)i.addEventListener(o,s,u),c=()=>i.removeEventListener(o,s,u);else{const a=i;a.addListener(s),c=()=>a.removeListener(s)}return t.push(c),r}function n(){t=t.filter(i=>i())}const r={add:e,clear:n};return r}function Me(t,e,n,r){const i=yt(),o=1e3/60;let s=null,u=0,c=0;function a(){i.add(t,"visibilitychange",()=>{t.hidden&&f()})}function m(){S(),i.clear()}function l(y){if(!c)return;s||(s=y,n(),n());const d=y-s;for(s=y,u+=d;u>=o;)n(),u-=o;const h=u/o;r(h),c&&(c=e.requestAnimationFrame(l))}function g(){c||(c=e.requestAnimationFrame(l))}function S(){e.cancelAnimationFrame(c),s=null,u=0,c=0}function f(){s=null,u=0}return{init:a,destroy:m,start:g,stop:S,update:n,render:r}}function Te(t,e){const n=e==="rtl",r=t==="y",i=r?"y":"x",o=r?"x":"y",s=!r&&n?-1:1,u=m(),c=l();function a(f){const{height:p,width:y}=f;return r?p:y}function m(){return r?"top":n?"right":"left"}function l(){return r?"bottom":n?"left":"right"}function g(f){return f*s}return{scroll:i,cross:o,startEdge:u,endEdge:c,measureSize:a,direction:g}}function ct(t=0,e=0){const n=P(t-e);function r(a){return a<t}function i(a){return a>e}function o(a){return r(a)||i(a)}function s(a){return o(a)?r(a)?t:e:a}function u(a){return n?a-n*Math.ceil((a-e)/n):a}return{length:n,max:e,min:t,constrain:s,reachedAny:o,reachedMax:i,reachedMin:r,removeOffset:u}}function ee(t,e,n){const{constrain:r}=ct(0,t),i=t+1;let o=s(e);function s(g){return n?P((i+g)%i):r(g)}function u(){return o}function c(g){return o=s(g),l}function a(g){return m().set(u()+g)}function m(){return ee(t,u(),n)}const l={get:u,set:c,add:a,clone:m};return l}function De(t,e,n,r,i,o,s,u,c,a,m,l,g,S,f,p,y,d,h){const{cross:b,direction:L}=t,_=["INPUT","SELECT","TEXTAREA"],I={passive:!1},x=yt(),w=yt(),O=ct(50,225).constrain(S.measure(20)),C={mouse:300,touch:400},M={mouse:500,touch:600},j=f?43:25;let U=!1,T=0,A=0,R=!1,$=!1,G=!1,Z=!1;function K(v){if(!h)return;function D(V){(vt(h)||h(v,V))&<(V)}const N=e;x.add(N,"dragstart",V=>V.preventDefault(),I).add(N,"touchmove",()=>{},I).add(N,"touchend",()=>{}).add(N,"touchstart",D).add(N,"mousedown",D).add(N,"touchcancel",F).add(N,"contextmenu",F).add(N,"click",tt,!0)}function H(){x.clear(),w.clear()}function X(){const v=Z?n:e;w.add(v,"touchmove",z,I).add(v,"touchend",F).add(v,"mousemove",z,I).add(v,"mouseup",F)}function Y(v){const D=v.nodeName||"";return _.includes(D)}function W(){return(f?M:C)[Z?"mouse":"touch"]}function at(v,D){const N=l.add(Pt(v)*-1),V=m.byDistance(v,!f).distance;return f||P(v)<O?V:y&&D?V*.5:m.byIndex(N.get(),0).distance}function lt(v){const D=Mt(v,r);Z=D,G=f&&D&&!v.buttons&&U,U=pt(i.get(),s.get())>=2,!(D&&v.button!==0)&&(Y(v.target)||(R=!0,o.pointerDown(v),a.useFriction(0).useDuration(0),i.set(s),X(),T=o.readPoint(v),A=o.readPoint(v,b),g.emit("pointerDown")))}function z(v){if(!Mt(v,r)&&v.touches.length>=2)return F(v);const N=o.readPoint(v),V=o.readPoint(v,b),J=pt(N,T),et=pt(V,A);if(!$&&!Z&&(!v.cancelable||($=J>et,!$)))return F(v);const rt=o.pointerMove(v);J>p&&(G=!0),a.useFriction(.3).useDuration(.75),u.start(),i.add(L(rt)),v.preventDefault()}function F(v){const N=m.byDistance(0,!1).index!==l.get(),V=o.pointerUp(v)*W(),J=at(L(V),N),et=Ie(V,J),rt=j-10*et,nt=d+et/50;$=!1,R=!1,w.clear(),a.useDuration(rt).useFriction(nt),c.distance(J,!f),Z=!1,g.emit("pointerUp")}function tt(v){G&&(v.stopPropagation(),v.preventDefault(),G=!1)}function q(){return R}return{init:K,destroy:H,pointerDown:q}}function ke(t,e){let r,i;function o(l){return l.timeStamp}function s(l,g){const f=`client${(g||t.scroll)==="x"?"X":"Y"}`;return(Mt(l,e)?l:l.touches[0])[f]}function u(l){return r=l,i=l,s(l)}function c(l){const g=s(l)-s(i),S=o(l)-o(r)>170;return i=l,S&&(r=l),g}function a(l){if(!r||!i)return 0;const g=s(i)-s(r),S=o(l)-o(r),f=o(l)-o(i)>170,p=g/S;return S&&!f&&P(p)>.1?p:0}return{pointerDown:u,pointerMove:c,pointerUp:a,readPoint:s}}function Pe(){function t(n){const{offsetTop:r,offsetLeft:i,offsetWidth:o,offsetHeight:s}=n;return{top:r,right:i+o,bottom:r+s,left:i,width:o,height:s}}return{measure:t}}function Ce(t){function e(r){return t*(r/100)}return{measure:e}}function Ne(t,e,n,r,i,o,s){const u=[t].concat(r);let c,a,m=[],l=!1;function g(y){return i.measureSize(s.measure(y))}function S(y){if(!o)return;a=g(t),m=r.map(g);function d(h){for(const b of h){if(l)return;const L=b.target===t,_=r.indexOf(b.target),I=L?a:m[_],x=g(L?t:r[_]);if(P(x-I)>=.5){y.reInit(),e.emit("resize");break}}}c=new ResizeObserver(h=>{(vt(o)||o(y,h))&&d(h)}),n.requestAnimationFrame(()=>{u.forEach(h=>c.observe(h))})}function f(){l=!0,c&&c.disconnect()}return{init:S,destroy:f}}function Be(t,e,n,r,i,o){let s=0,u=0,c=i,a=o,m=t.get(),l=0;function g(){const I=r.get()-t.get(),x=!c;let w=0;return x?(s=0,n.set(r),t.set(r),w=I):(n.set(t),s+=I/c,s*=a,m+=s,t.add(s),w=m-l),u=Pt(w),l=m,_}function S(){const I=r.get()-e.get();return P(I)<.001}function f(){return c}function p(){return u}function y(){return s}function d(){return b(i)}function h(){return L(o)}function b(I){return c=I,_}function L(I){return a=I,_}const _={direction:p,duration:f,velocity:y,seek:g,settled:S,useBaseFriction:h,useBaseDuration:d,useFriction:L,useDuration:b};return _}function je(t,e,n,r,i){const o=i.measure(10),s=i.measure(50),u=ct(.1,.99);let c=!1;function a(){return!(c||!t.reachedAny(n.get())||!t.reachedAny(e.get()))}function m(S){if(!a())return;const f=t.reachedMin(e.get())?"min":"max",p=P(t[f]-e.get()),y=n.get()-e.get(),d=u.constrain(p/s);n.subtract(y*d),!S&&P(y)<o&&(n.set(t.constrain(n.get())),r.useDuration(25).useBaseFriction())}function l(S){c=!S}return{shouldConstrain:a,constrain:m,toggleActive:l}}function Ae(t,e,n,r,i){const o=ct(-e+t,0),s=l(),u=m(),c=g();function a(f,p){return pt(f,p)<=1}function m(){const f=s[0],p=Q(s),y=s.lastIndexOf(f),d=s.indexOf(p)+1;return ct(y,d)}function l(){return n.map((f,p)=>{const{min:y,max:d}=o,h=o.constrain(f),b=!p,L=Ct(n,p);return b?d:L||a(y,h)?y:a(d,h)?d:h}).map(f=>parseFloat(f.toFixed(3)))}function g(){if(e<=t+i)return[o.max];if(r==="keepSnaps")return s;const{min:f,max:p}=u;return s.slice(f,p)}return{snapsContained:c,scrollContainLimit:u}}function Fe(t,e,n){const r=e[0],i=n?r-t:Q(e);return{limit:ct(i,r)}}function Ve(t,e,n,r){const o=e.min+.1,s=e.max+.1,{reachedMin:u,reachedMax:c}=ct(o,s);function a(g){return g===1?c(n.get()):g===-1?u(n.get()):!1}function m(g){if(!a(g))return;const S=t*(g*-1);r.forEach(f=>f.add(S))}return{loop:m}}function ze(t){const{max:e,length:n}=t;function r(o){const s=o-e;return n?s/-n:0}return{get:r}}function Re(t,e,n,r,i){const{startEdge:o,endEdge:s}=t,{groupSlides:u}=i,c=l().map(e.measure),a=g(),m=S();function l(){return u(r).map(p=>Q(p)[s]-p[0][o]).map(P)}function g(){return r.map(p=>n[o]-p[o]).map(p=>-P(p))}function S(){return u(a).map(p=>p[0]).map((p,y)=>p+c[y])}return{snaps:a,snapsAligned:m}}function $e(t,e,n,r,i,o){const{groupSlides:s}=i,{min:u,max:c}=r,a=m();function m(){const g=s(o),S=!t||e==="keepSnaps";return n.length===1?[o]:S?g:g.slice(u,c).map((f,p,y)=>{const d=!p,h=Ct(y,p);if(d){const b=Q(y[0])+1;return Qt(b)}if(h){const b=ht(o)-Q(y)[0]+1;return Qt(b,Q(y)[0])}return f})}return{slideRegistry:a}}function He(t,e,n,r,i){const{reachedAny:o,removeOffset:s,constrain:u}=r;function c(f){return f.concat().sort((p,y)=>P(p)-P(y))[0]}function a(f){const p=t?s(f):u(f),y=e.map((h,b)=>({diff:m(h-p,0),index:b})).sort((h,b)=>P(h.diff)-P(b.diff)),{index:d}=y[0];return{index:d,distance:p}}function m(f,p){const y=[f,f+n,f-n];if(!t)return f;if(!p)return c(y);const d=y.filter(h=>Pt(h)===p);return d.length?c(d):Q(y)-n}function l(f,p){const y=e[f]-i.get(),d=m(y,p);return{index:f,distance:d}}function g(f,p){const y=i.get()+f,{index:d,distance:h}=a(y),b=!t&&o(y);if(!p||b)return{index:d,distance:f};const L=e[d]-h,_=f+m(L,0);return{index:d,distance:_}}return{byDistance:g,byIndex:l,shortcut:m}}function qe(t,e,n,r,i,o,s){function u(l){const g=l.distance,S=l.index!==e.get();o.add(g),g&&(r.duration()?t.start():(t.update(),t.render(1),t.update())),S&&(n.set(e.get()),e.set(l.index),s.emit("select"))}function c(l,g){const S=i.byDistance(l,g);u(S)}function a(l,g){const S=e.clone().set(l),f=i.byIndex(S.get(),g);u(f)}return{distance:c,index:a}}function Ue(t,e,n,r,i,o,s,u){const c={passive:!0,capture:!0};let a=0;function m(S){if(!u)return;function f(p){if(new Date().getTime()-a>10)return;s.emit("slideFocusStart"),t.scrollLeft=0;const h=n.findIndex(b=>b.includes(p));kt(h)&&(i.useDuration(0),r.index(h,0),s.emit("slideFocus"))}o.add(document,"keydown",l,!1),e.forEach((p,y)=>{o.add(p,"focus",d=>{(vt(u)||u(S,d))&&f(y)},c)})}function l(S){S.code==="Tab"&&(a=new Date().getTime())}return{init:m}}function dt(t){let e=t;function n(){return e}function r(c){e=s(c)}function i(c){e+=s(c)}function o(c){e-=s(c)}function s(c){return kt(c)?c:c.get()}return{get:n,set:r,add:i,subtract:o}}function ne(t,e){const n=t.scroll==="x"?s:u,r=e.style;let i=null,o=!1;function s(g){return`translate3d(${g}px,0px,0px)`}function u(g){return`translate3d(0px,${g}px,0px)`}function c(g){if(o)return;const S=Oe(t.direction(g));S!==i&&(r.transform=n(S),i=S)}function a(g){o=!g}function m(){o||(r.transform="",e.getAttribute("style")||e.removeAttribute("style"))}return{clear:m,to:c,toggleActive:a}}function Ge(t,e,n,r,i,o,s,u,c){const m=gt(i),l=gt(i).reverse(),g=d().concat(h());function S(x,w){return x.reduce((O,C)=>O-i[C],w)}function f(x,w){return x.reduce((O,C)=>S(O,w)>0?O.concat([C]):O,[])}function p(x){return o.map((w,O)=>({start:w-r[O]+.5+x,end:w+e-.5+x}))}function y(x,w,O){const C=p(w);return x.map(M=>{const j=O?0:-n,U=O?n:0,T=O?"end":"start",A=C[M][T];return{index:M,loopPoint:A,slideLocation:dt(-1),translate:ne(t,c[M]),target:()=>u.get()>A?j:U}})}function d(){const x=s[0],w=f(l,x);return y(w,n,!1)}function h(){const x=e-s[0]-1,w=f(m,x);return y(w,-n,!0)}function b(){return g.every(({index:x})=>{const w=m.filter(O=>O!==x);return S(w,e)<=.1})}function L(){g.forEach(x=>{const{target:w,translate:O,slideLocation:C}=x,M=w();M!==C.get()&&(O.to(M),C.set(M))})}function _(){g.forEach(x=>x.translate.clear())}return{canLoop:b,clear:_,loop:L,loopPoints:g}}function Ze(t,e,n){let r,i=!1;function o(c){if(!n)return;function a(m){for(const l of m)if(l.type==="childList"){c.reInit(),e.emit("slidesChanged");break}}r=new MutationObserver(m=>{i||(vt(n)||n(c,m))&&a(m)}),r.observe(t,{childList:!0})}function s(){r&&r.disconnect(),i=!0}return{init:o,destroy:s}}function Qe(t,e,n,r){const i={};let o=null,s=null,u,c=!1;function a(){u=new IntersectionObserver(f=>{c||(f.forEach(p=>{const y=e.indexOf(p.target);i[y]=p}),o=null,s=null,n.emit("slidesInView"))},{root:t.parentElement,threshold:r}),e.forEach(f=>u.observe(f))}function m(){u&&u.disconnect(),c=!0}function l(f){return mt(i).reduce((p,y)=>{const d=parseInt(y),{isIntersecting:h}=i[d];return(f&&h||!f&&!h)&&p.push(d),p},[])}function g(f=!0){if(f&&o)return o;if(!f&&s)return s;const p=l(f);return f&&(o=p),f||(s=p),p}return{init:a,destroy:m,get:g}}function Ke(t,e,n,r,i,o){const{measureSize:s,startEdge:u,endEdge:c}=t,a=n[0]&&i,m=f(),l=p(),g=n.map(s),S=y();function f(){if(!a)return 0;const h=n[0];return P(e[u]-h[u])}function p(){if(!a)return 0;const h=o.getComputedStyle(Q(r));return parseFloat(h.getPropertyValue(`margin-${c}`))}function y(){return n.map((h,b,L)=>{const _=!b,I=Ct(L,b);return _?g[b]+m:I?g[b]+l:L[b+1][u]-h[u]}).map(P)}return{slideSizes:g,slideSizesWithGaps:S,startGap:m,endGap:l}}function Je(t,e,n,r,i,o,s,u,c){const{startEdge:a,endEdge:m,direction:l}=t,g=kt(n);function S(d,h){return gt(d).filter(b=>b%h===0).map(b=>d.slice(b,b+h))}function f(d){return d.length?gt(d).reduce((h,b,L)=>{const _=Q(h)||0,I=_===0,x=b===ht(d),w=i[a]-o[_][a],O=i[a]-o[b][m],C=!r&&I?l(s):0,M=!r&&x?l(u):0,j=P(O-M-(w+C));return L&&j>e+c&&h.push(b),x&&h.push(d.length),h},[]).map((h,b,L)=>{const _=Math.max(L[b-1]||0);return d.slice(_,h)}):[]}function p(d){return g?S(d,n):f(d)}return{groupSlides:p}}function Xe(t,e,n,r,i,o,s){const{align:u,axis:c,direction:a,startIndex:m,loop:l,duration:g,dragFree:S,dragThreshold:f,inViewThreshold:p,slidesToScroll:y,skipSnaps:d,containScroll:h,watchResize:b,watchSlides:L,watchDrag:_,watchFocus:I}=o,x=2,w=Pe(),O=w.measure(e),C=n.map(w.measure),M=Te(c,a),j=M.measureSize(O),U=Ce(j),T=_e(u,j),A=!l&&!!h,R=l||!!h,{slideSizes:$,slideSizesWithGaps:G,startGap:Z,endGap:K}=Ke(M,O,C,n,R,i),H=Je(M,j,y,l,O,C,Z,K,x),{snaps:X,snapsAligned:Y}=Re(M,T,O,C,H),W=-Q(X)+Q(G),{snapsContained:at,scrollContainLimit:lt}=Ae(j,W,Y,h,x),z=A?at:Y,{limit:F}=Fe(W,z,l),tt=ee(ht(z),m,l),q=tt.clone(),k=gt(n),v=({dragHandler:ut,scrollBody:Lt,scrollBounds:It,options:{loop:St}})=>{St||It.constrain(ut.pointerDown()),Lt.seek()},D=({scrollBody:ut,translate:Lt,location:It,offsetLocation:St,previousLocation:ce,scrollLooper:ue,slideLooper:ae,dragHandler:le,animation:fe,eventHandler:Vt,scrollBounds:de,options:{loop:zt}},Rt)=>{const $t=ut.settled(),pe=!de.shouldConstrain(),Ht=zt?$t:$t&&pe,qt=Ht&&!le.pointerDown();qt&&fe.stop();const ge=It.get()*Rt+ce.get()*(1-Rt);St.set(ge),zt&&(ue.loop(ut.direction()),ae.loop()),Lt.to(St.get()),qt&&Vt.emit("settle"),Ht||Vt.emit("scroll")},N=Me(r,i,()=>v(Et),ut=>D(Et,ut)),V=.68,J=z[tt.get()],et=dt(J),rt=dt(J),nt=dt(J),it=dt(J),ft=Be(et,nt,rt,it,g,V),xt=He(l,z,W,F,it),wt=qe(N,tt,q,ft,xt,it,s),jt=ze(F),At=yt(),re=Qe(e,n,s,p),{slideRegistry:Ft}=$e(A,h,z,lt,H,k),ie=Ue(t,n,Ft,wt,ft,At,s,I),Et={ownerDocument:r,ownerWindow:i,eventHandler:s,containerRect:O,slideRects:C,animation:N,axis:M,dragHandler:De(M,t,r,i,it,ke(M,i),et,N,wt,ft,xt,tt,s,U,S,f,d,V,_),eventStore:At,percentOfView:U,index:tt,indexPrevious:q,limit:F,location:et,offsetLocation:nt,previousLocation:rt,options:o,resizeHandler:Ne(e,s,i,n,M,b,w),scrollBody:ft,scrollBounds:je(F,nt,it,ft,U),scrollLooper:Ve(W,F,nt,[et,nt,rt,it]),scrollProgress:jt,scrollSnapList:z.map(jt.get),scrollSnaps:z,scrollTarget:xt,scrollTo:wt,slideLooper:Ge(M,j,W,$,G,X,z,nt,n),slideFocus:ie,slidesHandler:Ze(e,s,L),slidesInView:re,slideIndexes:k,slideRegistry:Ft,slidesToScroll:H,target:it,translate:ne(M,e)};return Et}function Ye(){let t={},e;function n(a){e=a}function r(a){return t[a]||[]}function i(a){return r(a).forEach(m=>m(e,a)),c}function o(a,m){return t[a]=r(a).concat([m]),c}function s(a,m){return t[a]=r(a).filter(l=>l!==m),c}function u(){t={}}const c={init:n,emit:i,off:s,on:o,clear:u};return c}const We={align:"center",axis:"x",container:null,slides:null,containScroll:"trimSnaps",direction:"ltr",slidesToScroll:1,inViewThreshold:0,breakpoints:{},dragFree:!1,dragThreshold:10,loop:!1,skipSnaps:!1,duration:25,startIndex:0,active:!0,watchDrag:!0,watchResize:!0,watchSlides:!0,watchFocus:!0};function tn(t){function e(o,s){return te(o,s||{})}function n(o){const s=o.breakpoints||{},u=mt(s).filter(c=>t.matchMedia(c).matches).map(c=>s[c]).reduce((c,a)=>e(c,a),{});return e(o,u)}function r(o){return o.map(s=>mt(s.breakpoints||{})).reduce((s,u)=>s.concat(u),[]).map(t.matchMedia)}return{mergeOptions:e,optionsAtMedia:n,optionsMediaQueries:r}}function en(t){let e=[];function n(o,s){return e=s.filter(({options:u})=>t.optionsAtMedia(u).active!==!1),e.forEach(u=>u.init(o,t)),s.reduce((u,c)=>Object.assign(u,{[c.name]:c}),{})}function r(){e=e.filter(o=>o.destroy())}return{init:n,destroy:r}}function bt(t,e,n){const r=t.ownerDocument,i=r.defaultView,o=tn(i),s=en(o),u=yt(),c=Ye(),{mergeOptions:a,optionsAtMedia:m,optionsMediaQueries:l}=o,{on:g,off:S,emit:f}=c,p=M;let y=!1,d,h=a(We,bt.globalOptions),b=a(h),L=[],_,I,x;function w(){const{container:k,slides:v}=b;I=(_t(k)?t.querySelector(k):k)||t.children[0];const N=_t(v)?I.querySelectorAll(v):v;x=[].slice.call(N||I.children)}function O(k){const v=Xe(t,I,x,r,i,k,c);if(k.loop&&!v.slideLooper.canLoop()){const D=Object.assign({},k,{loop:!1});return O(D)}return v}function C(k,v){y||(h=a(h,k),b=m(h),L=v||L,w(),d=O(b),l([h,...L.map(({options:D})=>D)]).forEach(D=>u.add(D,"change",M)),b.active&&(d.translate.to(d.location.get()),d.animation.init(),d.slidesInView.init(),d.slideFocus.init(q),d.eventHandler.init(q),d.resizeHandler.init(q),d.slidesHandler.init(q),d.options.loop&&d.slideLooper.loop(),I.offsetParent&&x.length&&d.dragHandler.init(q),_=s.init(q,L)))}function M(k,v){const D=H();j(),C(a({startIndex:D},k),v),c.emit("reInit")}function j(){d.dragHandler.destroy(),d.eventStore.clear(),d.translate.clear(),d.slideLooper.clear(),d.resizeHandler.destroy(),d.slidesHandler.destroy(),d.slidesInView.destroy(),d.animation.destroy(),s.destroy(),u.clear()}function U(){y||(y=!0,u.clear(),j(),c.emit("destroy"),c.clear())}function T(k,v,D){!b.active||y||(d.scrollBody.useBaseFriction().useDuration(v===!0?0:b.duration),d.scrollTo.index(k,D||0))}function A(k){const v=d.index.add(1).get();T(v,k,-1)}function R(k){const v=d.index.add(-1).get();T(v,k,1)}function $(){return d.index.add(1).get()!==H()}function G(){return d.index.add(-1).get()!==H()}function Z(){return d.scrollSnapList}function K(){return d.scrollProgress.get(d.offsetLocation.get())}function H(){return d.index.get()}function X(){return d.indexPrevious.get()}function Y(){return d.slidesInView.get()}function W(){return d.slidesInView.get(!1)}function at(){return _}function lt(){return d}function z(){return t}function F(){return I}function tt(){return x}const q={canScrollNext:$,canScrollPrev:G,containerNode:F,internalEngine:lt,destroy:U,off:S,on:g,emit:f,plugins:at,previousScrollSnap:X,reInit:p,rootNode:z,scrollNext:A,scrollPrev:R,scrollProgress:K,scrollSnapList:Z,scrollTo:T,selectedScrollSnap:H,slideNodes:tt,slidesInView:Y,slidesNotInView:W};return C(e,n),setTimeout(()=>c.emit("init"),0),q}bt.globalOptions=void 0;function Nt(t={},e=[]){const n=E.useRef(t),r=E.useRef(e),[i,o]=E.useState(),[s,u]=E.useState(),c=E.useCallback(()=>{i&&i.reInit(n.current,r.current)},[i]);return E.useEffect(()=>{Dt(n.current,t)||(n.current=t,c())},[t,c]),E.useEffect(()=>{Le(r.current,e)||(r.current=e,c())},[e,c]),E.useEffect(()=>{if(Ee()&&s){bt.globalOptions=Nt.globalOptions;const a=bt(s,n.current,r.current);return o(a),()=>a.destroy()}else o(void 0)},[s,o]),[u,i]}Nt.globalOptions=void 0;const nn={"purpur-carousel":"_purpur-carousel_9m686_1","purpur-carousel__viewport":"_purpur-carousel__viewport_9m686_17","purpur-carousel__container":"_purpur-carousel__container_9m686_24","purpur-carousel__page-indicators":"_purpur-carousel__page-indicators_9m686_32","purpur-carousel__controls":"_purpur-carousel__controls_9m686_41","purpur-carousel__autoplay-pause-button":"_purpur-carousel__autoplay-pause-button_9m686_45","purpur-carousel__buttons":"_purpur-carousel__buttons_9m686_53","purpur-carousel__slide":"_purpur-carousel__slide_9m686_64"},on={"carousel-page-indicator":"_carousel-page-indicator_y8joq_1","dot-progress":"_dot-progress_y8joq_1"},sn=Xt.c.bind(on),rn="carousel-page-indicator",cn=4e3,un=({index:t,selectedIndex:e,totalIndicators:n,showProgress:r,delay:i=cn})=>{const o=()=>{const g=Math.min(t,n-1-t);let S=u;if(!m)return 0;if(g===0)return 150;c===0&&(u===2&&(S=1),u===3&&(S=2));const f=1/(2*(S||.5));return f<.25?50:f<.5?100:150},s=t===e,u=Math.abs(e-t),c=Math.min(e,n-1-e),a=Math.max(5-c,3),m=u<a,l=n<6?150:o();return B.jsx("li",{className:sn(rn),"data-selected":s,"data-show-progress":r,style:{marginLeft:m&&t>0?"var(--purpur-spacing-100)":void 0,width:s?"var(--purpur-spacing-400)":`var(--purpur-spacing-${l})`,height:`var(--purpur-spacing-${l})`,"--progress-time":`${i}ms`}})},an=(t,e)=>{const n=E.useRef(!1),[r,i]=E.useState(!1),o=t?.plugins()?.autoplay,s=E.useCallback(()=>{if(!o)return;(o.isPlaying()?o.stop:o.play)()},[o]),u=()=>{o&&o.reset()};return E.useEffect(()=>{o&&(i(o.isPlaying()),t.on("autoplay:play",()=>i(!0)).on("autoplay:stop",()=>i(!1)).on("reInit",()=>i(o.isPlaying())))},[o,t]),E.useEffect(()=>{if(!o||!e?.current)return;const c=new IntersectionObserver(([m])=>{m.isIntersecting?n.current&&(n.current=!1,o.play()):o.isPlaying()&&(n.current=!0,o.stop())},{threshold:0}),a=e.current;return c.observe(a),()=>c.disconnect()},[o,e]),{isPlaying:r,toggle:s,reset:u}},ln=t=>{const[e,n]=E.useState(0),[r,i]=E.useState([]),o=E.useCallback(c=>{t&&t.scrollTo(c)},[t]),s=E.useCallback(c=>{i(c.scrollSnapList())},[]),u=E.useCallback(c=>{n(c.selectedScrollSnap())},[]);return E.useEffect(()=>{t&&(s(t),u(t),t.on("reInit",s).on("reInit",u).on("select",u))},[t,s,u]),{selectedIndex:e,scrollSnaps:r,onIndicatorClick:o}},oe="(prefers-reduced-motion: reduce)",fn=()=>typeof window>"u"?!1:window.matchMedia(oe).matches,dn=()=>{const[t,e]=E.useState(fn);return E.useEffect(()=>{if(typeof window>"u")return;const n=window.matchMedia(oe),r=()=>{e(n.matches)};return r(),n.addEventListener("change",r),()=>{n.removeEventListener("change",r)}},[]),t},pn=(t,e,n)=>{const[r,i]=E.useState(!0),[o,s]=E.useState(!0),u=E.useCallback(()=>{t&&(t.scrollPrev(),n.reset())},[t,n]),c=E.useCallback(()=>{t&&(t.scrollNext(),n.reset())},[t,n]),a=E.useCallback(l=>{i(!l.canScrollPrev()),s(!l.canScrollNext())},[]),m=E.useCallback(l=>{switch(l.key){case"ArrowLeft":u(),l.target?.previousSibling?.focus();break;case"ArrowRight":c(),l.target?.nextSibling?.focus();break}},[u,c]);return E.useEffect(()=>{const l=e.current;if(t&&l)return a(t),t.on("reInit",a).on("select",a),l.addEventListener("keydown",m),()=>{l.removeEventListener("keydown",m)}},[t,a,e,m]),{prevBtnDisabled:r,nextBtnDisabled:o,onPrevButtonClick:u,onNextButtonClick:c}},ot=Xt.c.bind(nn),Kt=typeof window>"u"?E.useEffect:E.useLayoutEffect,st="purpur-carousel",Bt=({className:t,options:e={},children:n,controllerPlacement:r="bottom",...i})=>{const o=E.useRef(null),s=E.useRef(null),u=typeof i.autoplay=="boolean"?{}:i.autoplay??{},c=ot(st,t),a=dn(),m=E.useMemo(()=>a?{...e,duration:0}:e,[e,a]),l=mn(m),g=[];i.autoplay&&g.push(Tt({...u,jump:a}));const[S,f]=Nt({align:"start",...l},g),p=an(f,o),y=pn(f,o,p),{selectedIndex:d,scrollSnaps:h}=ln(f),b=()=>E.Children.toArray(n).map(I=>E.Children.only(I)),L=()=>B.jsxs("div",{className:ot(`${st}__controls`),children:[i.hidePageIndicator!==!0&&B.jsxs(B.Fragment,{children:[B.jsx("ul",{className:ot(`${st}__page-indicators`),"data-overflowing":h.length>5,"aria-label":`${i.ariaLabels.autoplay.indicator} ${d+1}`,"aria-live":"off",children:h.map((I,x,w)=>B.jsx(un,{index:x,ref:s,showProgress:p.isPlaying,totalIndicators:w.length,selectedIndex:d,delay:u.delay},x))}),i.autoplay&&B.jsx(Ot.Button,{variant:"text","aria-label":p.isPlaying?i.ariaLabels.autoplay.pause:i.ariaLabels.autoplay.play,onClick:p.toggle,iconOnly:!0,size:"sm",className:ot(`${st}__autoplay-pause-button`),children:p.isPlaying?B.jsx(Wt,{size:"xs"}):B.jsx(Yt,{size:"xs"})})]}),B.jsxs("div",{className:ot(`${st}__buttons`),children:[B.jsx(Ot.Button,{iconOnly:!0,"aria-label":i.ariaLabels.previousButton,size:"md",variant:"secondary",onClick:y.onPrevButtonClick,disabled:y.prevBtnDisabled,children:B.jsx(me.l,{size:"xs"})}),B.jsx(Ot.Button,{iconOnly:!0,"aria-label":i.ariaLabels.nextButton,size:"md",variant:"secondary",onClick:y.onNextButtonClick,disabled:y.nextBtnDisabled,children:B.jsx(ye.i,{size:"xs"})})]})]}),_=Math.max(0,Math.min(50,i.nextSlidePreview||0));return B.jsxs("section",{ref:o,className:c,"data-is-looping":!!e?.loop,style:{"--n":l.slidesToShow||1,"--preview":_,"--slide-spacing":`var(--purpur-spacing-${i.slideSpacing||300})`},children:[r==="top"&&L(),B.jsx("div",{className:ot(`${st}__viewport`),ref:S,children:B.jsx("ul",{className:ot(`${st}__container`),children:b()})}),r==="bottom"&&L()]})},gn=({children:t})=>B.jsx("li",{className:ot(`${st}__slide`),children:t});Bt.displayName="Carousel";Bt.Slide=gn;function mn(t={}){const[e,n]=E.useState(!1),[,r]=E.useState(0);return Kt(()=>{n(!0)},[]),Kt(()=>{if(!e||!se()||!t.breakpoints)return;const i=Object.keys(t.breakpoints).map(s=>window.matchMedia(s)),o=()=>{r(s=>s+1)};return i.forEach(s=>{s.addEventListener("change",o)}),()=>{i.forEach(s=>{s.removeEventListener("change",o)})}},[t.breakpoints,e]),yn(t,e)}function se(){return typeof window<"u"&&typeof window.matchMedia=="function"}function yn(t={},e=!0){const n={...t};if(!e||!se()||!t.breakpoints)return n;for(const r in t.breakpoints)Object.assign(n,window.matchMedia(r).matches?t.breakpoints[r]:{});return n}exports.Carousel=Bt;
|
|
2
|
+
//# sourceMappingURL=carousel-DnSaLDZf.js.map
|