@mantine-bites/lightbox 1.0.0-beta.8 → 1.0.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/README.md +7 -8
- package/dist/cjs/Lightbox.cjs +41 -200
- package/dist/cjs/Lightbox.cjs.map +1 -1
- package/dist/cjs/Lightbox.context-value.cjs +47 -0
- package/dist/cjs/Lightbox.context-value.cjs.map +1 -0
- package/dist/cjs/Lightbox.context.cjs.map +1 -1
- package/dist/cjs/Lightbox.defaults.cjs +3 -8
- package/dist/cjs/Lightbox.defaults.cjs.map +1 -1
- package/dist/cjs/Lightbox.module.css.cjs +1 -1
- package/dist/cjs/LightboxSlide.cjs +72 -5
- package/dist/cjs/LightboxSlide.cjs.map +1 -1
- package/dist/cjs/LightboxSlide.context.cjs +12 -0
- package/dist/cjs/LightboxSlide.context.cjs.map +1 -0
- package/dist/cjs/components/LightboxAutoplayButton.cjs +43 -0
- package/dist/cjs/components/LightboxAutoplayButton.cjs.map +1 -0
- package/dist/cjs/components/LightboxCarousel.cjs +29 -0
- package/dist/cjs/components/LightboxCarousel.cjs.map +1 -0
- package/dist/cjs/components/LightboxCarouselSlide.context.cjs +12 -0
- package/dist/cjs/components/LightboxCarouselSlide.context.cjs.map +1 -0
- package/dist/cjs/components/LightboxCloseButton.cjs +33 -0
- package/dist/cjs/components/LightboxCloseButton.cjs.map +1 -0
- package/dist/cjs/components/LightboxContent.cjs +38 -0
- package/dist/cjs/components/LightboxContent.cjs.map +1 -0
- package/dist/cjs/components/LightboxControls.cjs +68 -0
- package/dist/cjs/components/LightboxControls.cjs.map +1 -0
- package/dist/cjs/components/LightboxCounter.cjs +34 -0
- package/dist/cjs/components/LightboxCounter.cjs.map +1 -0
- package/dist/cjs/components/LightboxFullscreenButton.cjs +41 -0
- package/dist/cjs/components/LightboxFullscreenButton.cjs.map +1 -0
- package/dist/cjs/components/LightboxOverlay.cjs +40 -0
- package/dist/cjs/components/LightboxOverlay.cjs.map +1 -0
- package/dist/cjs/components/LightboxPreset.cjs +32 -0
- package/dist/cjs/components/LightboxPreset.cjs.map +1 -0
- package/dist/cjs/components/LightboxRoot.cjs +260 -0
- package/dist/cjs/components/LightboxRoot.cjs.map +1 -0
- package/dist/cjs/components/LightboxSlide.cjs +154 -0
- package/dist/cjs/components/LightboxSlide.cjs.map +1 -0
- package/dist/cjs/components/LightboxSlide.context.cjs +12 -0
- package/dist/cjs/components/LightboxSlide.context.cjs.map +1 -0
- package/dist/cjs/components/LightboxSlides.cjs +97 -77
- package/dist/cjs/components/LightboxSlides.cjs.map +1 -1
- package/dist/cjs/components/LightboxThumbnail.cjs +40 -0
- package/dist/cjs/components/LightboxThumbnail.cjs.map +1 -0
- package/dist/cjs/components/LightboxThumbnail.context.cjs +12 -0
- package/dist/cjs/components/LightboxThumbnail.context.cjs.map +1 -0
- package/dist/cjs/components/LightboxThumbnails.cjs +110 -32
- package/dist/cjs/components/LightboxThumbnails.cjs.map +1 -1
- package/dist/cjs/components/LightboxToolbar.cjs +83 -70
- package/dist/cjs/components/LightboxToolbar.cjs.map +1 -1
- package/dist/cjs/components/LightboxZoomButton.cjs +39 -0
- package/dist/cjs/components/LightboxZoomButton.cjs.map +1 -0
- package/dist/cjs/components/icons/EnterFullscreen.cjs +30 -0
- package/dist/cjs/components/icons/EnterFullscreen.cjs.map +1 -0
- package/dist/cjs/components/icons/ExitFullscreen.cjs +30 -0
- package/dist/cjs/components/icons/ExitFullscreen.cjs.map +1 -0
- package/dist/cjs/components/icons/Pause.cjs +28 -0
- package/dist/cjs/components/icons/Pause.cjs.map +1 -0
- package/dist/cjs/components/icons/Play.cjs +22 -0
- package/dist/cjs/components/icons/Play.cjs.map +1 -0
- package/dist/cjs/components/icons/ZoomIn.cjs +30 -0
- package/dist/cjs/components/icons/ZoomIn.cjs.map +1 -0
- package/dist/cjs/components/icons/ZoomOut.cjs +29 -0
- package/dist/cjs/components/icons/ZoomOut.cjs.map +1 -0
- package/dist/cjs/context/LightboxContext.cjs +12 -0
- package/dist/cjs/context/LightboxContext.cjs.map +1 -0
- package/dist/cjs/context/LightboxSlideContext.cjs +12 -0
- package/dist/cjs/context/LightboxSlideContext.cjs.map +1 -0
- package/dist/cjs/context/LightboxThumbnailContext.cjs +12 -0
- package/dist/cjs/context/LightboxThumbnailContext.cjs.map +1 -0
- package/dist/cjs/hooks/useAutoPlay.cjs +37 -13
- package/dist/cjs/hooks/useAutoPlay.cjs.map +1 -1
- package/dist/cjs/hooks/useLightbox.cjs +62 -108
- package/dist/cjs/hooks/useLightbox.cjs.map +1 -1
- package/dist/cjs/hooks/useLightboxRootOptions.cjs +20 -0
- package/dist/cjs/hooks/useLightboxRootOptions.cjs.map +1 -0
- package/dist/cjs/hooks/useSlideInteractions.cjs +13 -13
- package/dist/cjs/hooks/useSlideInteractions.cjs.map +1 -1
- package/dist/cjs/hooks/useThumbnails.cjs +14 -11
- package/dist/cjs/hooks/useThumbnails.cjs.map +1 -1
- package/dist/cjs/hooks/useZoom.cjs +110 -72
- package/dist/cjs/hooks/useZoom.cjs.map +1 -1
- package/dist/cjs/index.cjs +26 -2
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/styles/Lightbox.module.css.cjs +7 -0
- package/dist/cjs/styles/Lightbox.module.css.cjs.map +1 -0
- package/dist/cjs/utils/pointer.cjs +50 -0
- package/dist/cjs/utils/pointer.cjs.map +1 -0
- package/dist/cjs/utils/zoom.cjs +24 -51
- package/dist/cjs/utils/zoom.cjs.map +1 -1
- package/dist/esm/Lightbox.context-value.mjs +45 -0
- package/dist/esm/Lightbox.context-value.mjs.map +1 -0
- package/dist/esm/Lightbox.context.mjs.map +1 -1
- package/dist/esm/Lightbox.defaults.mjs +3 -8
- package/dist/esm/Lightbox.defaults.mjs.map +1 -1
- package/dist/esm/Lightbox.mjs +43 -202
- package/dist/esm/Lightbox.mjs.map +1 -1
- package/dist/esm/Lightbox.module.css.mjs +1 -1
- package/dist/esm/LightboxSlide.context.mjs +9 -0
- package/dist/esm/LightboxSlide.context.mjs.map +1 -0
- package/dist/esm/LightboxSlide.mjs +73 -6
- package/dist/esm/LightboxSlide.mjs.map +1 -1
- package/dist/esm/components/LightboxAutoplayButton.mjs +41 -0
- package/dist/esm/components/LightboxAutoplayButton.mjs.map +1 -0
- package/dist/esm/components/LightboxCarousel.mjs +27 -0
- package/dist/esm/components/LightboxCarousel.mjs.map +1 -0
- package/dist/esm/components/LightboxCarouselSlide.context.mjs +9 -0
- package/dist/esm/components/LightboxCarouselSlide.context.mjs.map +1 -0
- package/dist/esm/components/LightboxCloseButton.mjs +31 -0
- package/dist/esm/components/LightboxCloseButton.mjs.map +1 -0
- package/dist/esm/components/LightboxContent.mjs +36 -0
- package/dist/esm/components/LightboxContent.mjs.map +1 -0
- package/dist/esm/components/LightboxControls.mjs +66 -0
- package/dist/esm/components/LightboxControls.mjs.map +1 -0
- package/dist/esm/components/LightboxCounter.mjs +32 -0
- package/dist/esm/components/LightboxCounter.mjs.map +1 -0
- package/dist/esm/components/LightboxFullscreenButton.mjs +39 -0
- package/dist/esm/components/LightboxFullscreenButton.mjs.map +1 -0
- package/dist/esm/components/LightboxOverlay.mjs +38 -0
- package/dist/esm/components/LightboxOverlay.mjs.map +1 -0
- package/dist/esm/components/LightboxPreset.mjs +30 -0
- package/dist/esm/components/LightboxPreset.mjs.map +1 -0
- package/dist/esm/components/LightboxRoot.mjs +258 -0
- package/dist/esm/components/LightboxRoot.mjs.map +1 -0
- package/dist/esm/components/LightboxSlide.context.mjs +9 -0
- package/dist/esm/components/LightboxSlide.context.mjs.map +1 -0
- package/dist/esm/components/LightboxSlide.mjs +152 -0
- package/dist/esm/components/LightboxSlide.mjs.map +1 -0
- package/dist/esm/components/LightboxSlides.mjs +98 -78
- package/dist/esm/components/LightboxSlides.mjs.map +1 -1
- package/dist/esm/components/LightboxThumbnail.context.mjs +9 -0
- package/dist/esm/components/LightboxThumbnail.context.mjs.map +1 -0
- package/dist/esm/components/LightboxThumbnail.mjs +38 -0
- package/dist/esm/components/LightboxThumbnail.mjs.map +1 -0
- package/dist/esm/components/LightboxThumbnails.mjs +111 -33
- package/dist/esm/components/LightboxThumbnails.mjs.map +1 -1
- package/dist/esm/components/LightboxToolbar.mjs +85 -72
- package/dist/esm/components/LightboxToolbar.mjs.map +1 -1
- package/dist/esm/components/LightboxZoomButton.mjs +37 -0
- package/dist/esm/components/LightboxZoomButton.mjs.map +1 -0
- package/dist/esm/components/icons/EnterFullscreen.mjs +28 -0
- package/dist/esm/components/icons/EnterFullscreen.mjs.map +1 -0
- package/dist/esm/components/icons/ExitFullscreen.mjs +28 -0
- package/dist/esm/components/icons/ExitFullscreen.mjs.map +1 -0
- package/dist/esm/components/icons/Pause.mjs +26 -0
- package/dist/esm/components/icons/Pause.mjs.map +1 -0
- package/dist/esm/components/icons/Play.mjs +20 -0
- package/dist/esm/components/icons/Play.mjs.map +1 -0
- package/dist/esm/components/icons/ZoomIn.mjs +28 -0
- package/dist/esm/components/icons/ZoomIn.mjs.map +1 -0
- package/dist/esm/components/icons/ZoomOut.mjs +27 -0
- package/dist/esm/components/icons/ZoomOut.mjs.map +1 -0
- package/dist/esm/context/LightboxContext.mjs +9 -0
- package/dist/esm/context/LightboxContext.mjs.map +1 -0
- package/dist/esm/context/LightboxSlideContext.mjs +9 -0
- package/dist/esm/context/LightboxSlideContext.mjs.map +1 -0
- package/dist/esm/context/LightboxThumbnailContext.mjs +9 -0
- package/dist/esm/context/LightboxThumbnailContext.mjs.map +1 -0
- package/dist/esm/hooks/useAutoPlay.mjs +30 -6
- package/dist/esm/hooks/useAutoPlay.mjs.map +1 -1
- package/dist/esm/hooks/useLightbox.mjs +58 -104
- package/dist/esm/hooks/useLightbox.mjs.map +1 -1
- package/dist/esm/hooks/useLightboxRootOptions.mjs +18 -0
- package/dist/esm/hooks/useLightboxRootOptions.mjs.map +1 -0
- package/dist/esm/hooks/useSlideInteractions.mjs +1 -1
- package/dist/esm/hooks/useSlideInteractions.mjs.map +1 -1
- package/dist/esm/hooks/useThumbnails.mjs +7 -4
- package/dist/esm/hooks/useThumbnails.mjs.map +1 -1
- package/dist/esm/hooks/useZoom.mjs +83 -45
- package/dist/esm/hooks/useZoom.mjs.map +1 -1
- package/dist/esm/index.mjs +13 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/styles/Lightbox.module.css.mjs +5 -0
- package/dist/esm/styles/Lightbox.module.css.mjs.map +1 -0
- package/dist/esm/utils/pointer.mjs +41 -0
- package/dist/esm/utils/pointer.mjs.map +1 -0
- package/dist/esm/utils/zoom.mjs +24 -44
- package/dist/esm/utils/zoom.mjs.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/styles.layer.css +1 -1
- package/dist/types/Lightbox.context-value.d.ts +16 -0
- package/dist/types/Lightbox.context-value.d.ts.map +1 -0
- package/dist/types/Lightbox.context.d.ts +17 -15
- package/dist/types/Lightbox.context.d.ts.map +1 -1
- package/dist/types/Lightbox.d.ts +56 -97
- package/dist/types/Lightbox.d.ts.map +1 -1
- package/dist/types/Lightbox.defaults.d.ts +3 -8
- package/dist/types/Lightbox.defaults.d.ts.map +1 -1
- package/dist/types/Lightbox.story.d.ts +2 -2
- package/dist/types/Lightbox.story.d.ts.map +1 -1
- package/dist/types/LightboxSlide.context.d.ts +8 -0
- package/dist/types/LightboxSlide.context.d.ts.map +1 -0
- package/dist/types/LightboxSlide.d.ts +0 -3
- package/dist/types/LightboxSlide.d.ts.map +1 -1
- package/dist/types/__tests__/Lightbox.test.d.ts +2 -0
- package/dist/types/__tests__/Lightbox.test.d.ts.map +1 -0
- package/dist/types/__tests__/LightboxSimple.test.d.ts +2 -0
- package/dist/types/__tests__/LightboxSimple.test.d.ts.map +1 -0
- package/dist/types/__tests__/pointer.test.d.ts +2 -0
- package/dist/types/__tests__/pointer.test.d.ts.map +1 -0
- package/dist/types/__tests__/zoom.test.d.ts +2 -0
- package/dist/types/__tests__/zoom.test.d.ts.map +1 -0
- package/dist/types/components/LightboxAutoplayButton.d.ts +17 -0
- package/dist/types/components/LightboxAutoplayButton.d.ts.map +1 -0
- package/dist/types/components/LightboxCarousel.d.ts +6 -0
- package/dist/types/components/LightboxCarousel.d.ts.map +1 -0
- package/dist/types/components/LightboxCarouselSlide.context.d.ts +10 -0
- package/dist/types/components/LightboxCarouselSlide.context.d.ts.map +1 -0
- package/dist/types/components/LightboxCloseButton.d.ts +17 -0
- package/dist/types/components/LightboxCloseButton.d.ts.map +1 -0
- package/dist/types/components/LightboxContent.d.ts +14 -0
- package/dist/types/components/LightboxContent.d.ts.map +1 -0
- package/dist/types/components/LightboxControls.d.ts +19 -0
- package/dist/types/components/LightboxControls.d.ts.map +1 -0
- package/dist/types/components/LightboxCounter.d.ts +19 -0
- package/dist/types/components/LightboxCounter.d.ts.map +1 -0
- package/dist/types/components/LightboxFullscreenButton.d.ts +17 -0
- package/dist/types/components/LightboxFullscreenButton.d.ts.map +1 -0
- package/dist/types/components/LightboxOverlay.d.ts +4 -0
- package/dist/types/components/LightboxOverlay.d.ts.map +1 -0
- package/dist/types/components/LightboxPreset.d.ts +10 -0
- package/dist/types/components/LightboxPreset.d.ts.map +1 -0
- package/dist/types/components/LightboxRoot.d.ts +80 -0
- package/dist/types/components/LightboxRoot.d.ts.map +1 -0
- package/dist/types/components/LightboxSlide.context.d.ts +8 -0
- package/dist/types/components/LightboxSlide.context.d.ts.map +1 -0
- package/dist/types/components/LightboxSlide.d.ts +17 -0
- package/dist/types/components/LightboxSlide.d.ts.map +1 -0
- package/dist/types/components/LightboxSlides.d.ts +23 -1
- package/dist/types/components/LightboxSlides.d.ts.map +1 -1
- package/dist/types/components/LightboxThumbnail.context.d.ts +8 -0
- package/dist/types/components/LightboxThumbnail.context.d.ts.map +1 -0
- package/dist/types/components/LightboxThumbnail.d.ts +17 -0
- package/dist/types/components/LightboxThumbnail.d.ts.map +1 -0
- package/dist/types/components/LightboxThumbnails.d.ts +18 -6
- package/dist/types/components/LightboxThumbnails.d.ts.map +1 -1
- package/dist/types/components/LightboxToolbar.d.ts +16 -1
- package/dist/types/components/LightboxToolbar.d.ts.map +1 -1
- package/dist/types/components/LightboxZoomButton.d.ts +17 -0
- package/dist/types/components/LightboxZoomButton.d.ts.map +1 -0
- package/dist/types/components/icons/EnterFullscreen.d.ts +3 -0
- package/dist/types/components/icons/EnterFullscreen.d.ts.map +1 -0
- package/dist/types/components/icons/ExitFullscreen.d.ts +3 -0
- package/dist/types/components/icons/ExitFullscreen.d.ts.map +1 -0
- package/dist/types/components/icons/Pause.d.ts +3 -0
- package/dist/types/components/icons/Pause.d.ts.map +1 -0
- package/dist/types/components/icons/Play.d.ts +3 -0
- package/dist/types/components/icons/Play.d.ts.map +1 -0
- package/dist/types/components/icons/ZoomIn.d.ts +3 -0
- package/dist/types/components/icons/ZoomIn.d.ts.map +1 -0
- package/dist/types/components/icons/ZoomOut.d.ts +3 -0
- package/dist/types/components/icons/ZoomOut.d.ts.map +1 -0
- package/dist/types/context/LightboxContext.d.ts +46 -0
- package/dist/types/context/LightboxContext.d.ts.map +1 -0
- package/dist/types/context/LightboxSlideContext.d.ts +8 -0
- package/dist/types/context/LightboxSlideContext.d.ts.map +1 -0
- package/dist/types/context/LightboxThumbnailContext.d.ts +8 -0
- package/dist/types/context/LightboxThumbnailContext.d.ts.map +1 -0
- package/dist/types/hooks/useAutoPlay.d.ts +2 -1
- package/dist/types/hooks/useAutoPlay.d.ts.map +1 -1
- package/dist/types/hooks/useLightbox.d.ts +5 -27
- package/dist/types/hooks/useLightbox.d.ts.map +1 -1
- package/dist/types/hooks/useLightboxRootOptions.d.ts +12 -0
- package/dist/types/hooks/useLightboxRootOptions.d.ts.map +1 -0
- package/dist/types/hooks/useSlideInteractions.d.ts +3 -3
- package/dist/types/hooks/useThumbnails.d.ts +5 -4
- package/dist/types/hooks/useThumbnails.d.ts.map +1 -1
- package/dist/types/hooks/useZoom.d.ts +3 -9
- package/dist/types/hooks/useZoom.d.ts.map +1 -1
- package/dist/types/index.d.mts +27 -3
- package/dist/types/index.d.ts +27 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/stories/Lightbox.story.d.ts +11 -0
- package/dist/types/stories/Lightbox.story.d.ts.map +1 -0
- package/dist/types/utils/pointer.d.ts +63 -0
- package/dist/types/utils/pointer.d.ts.map +1 -0
- package/dist/types/utils/zoom.d.ts +12 -62
- package/dist/types/utils/zoom.d.ts.map +1 -1
- package/package.json +2 -4
|
@@ -4,10 +4,18 @@ import { useRef, useState, useCallback } from 'react';
|
|
|
4
4
|
function useAutoPlay() {
|
|
5
5
|
const autoplayPluginRef = useRef(null);
|
|
6
6
|
const emblaInstanceRef = useRef(null);
|
|
7
|
-
const
|
|
7
|
+
const autoplayShouldRunRef = useRef(false);
|
|
8
|
+
const [canAutoPlay, setCanAutoPlay] = useState(false);
|
|
8
9
|
const [isPlaying, setIsPlaying] = useState(false);
|
|
9
|
-
const onAutoPlayPlay = useCallback(() =>
|
|
10
|
+
const onAutoPlayPlay = useCallback(() => {
|
|
11
|
+
setIsPlaying(true);
|
|
12
|
+
}, []);
|
|
10
13
|
const onAutoPlayStop = useCallback(() => setIsPlaying(false), []);
|
|
14
|
+
const onEmblaPointerUp = useCallback(() => {
|
|
15
|
+
if (!autoplayShouldRunRef.current) {
|
|
16
|
+
autoplayPluginRef.current?.stop();
|
|
17
|
+
}
|
|
18
|
+
}, []);
|
|
11
19
|
const handleEmblaApiForAutoPlay = useCallback(
|
|
12
20
|
(embla) => {
|
|
13
21
|
const plugin = embla.plugins()?.autoplay;
|
|
@@ -18,15 +26,19 @@ function useAutoPlay() {
|
|
|
18
26
|
if (prevEmbla) {
|
|
19
27
|
prevEmbla.off("autoplay:play", onAutoPlayPlay);
|
|
20
28
|
prevEmbla.off("autoplay:stop", onAutoPlayStop);
|
|
29
|
+
prevEmbla.off("pointerUp", onEmblaPointerUp);
|
|
21
30
|
}
|
|
22
31
|
emblaInstanceRef.current = embla;
|
|
23
32
|
autoplayPluginRef.current = plugin;
|
|
24
33
|
embla.on("autoplay:play", onAutoPlayPlay);
|
|
25
34
|
embla.on("autoplay:stop", onAutoPlayStop);
|
|
26
|
-
|
|
27
|
-
|
|
35
|
+
embla.on("pointerUp", onEmblaPointerUp);
|
|
36
|
+
const playing = plugin.isPlaying();
|
|
37
|
+
setCanAutoPlay(true);
|
|
38
|
+
setIsPlaying(playing);
|
|
39
|
+
autoplayShouldRunRef.current = playing;
|
|
28
40
|
},
|
|
29
|
-
[onAutoPlayPlay, onAutoPlayStop]
|
|
41
|
+
[onAutoPlayPlay, onAutoPlayStop, onEmblaPointerUp]
|
|
30
42
|
);
|
|
31
43
|
const toggleAutoPlay = useCallback(() => {
|
|
32
44
|
const plugin = autoplayPluginRef.current;
|
|
@@ -34,15 +46,27 @@ function useAutoPlay() {
|
|
|
34
46
|
return;
|
|
35
47
|
}
|
|
36
48
|
if (isPlaying) {
|
|
49
|
+
autoplayShouldRunRef.current = false;
|
|
37
50
|
plugin.stop();
|
|
38
51
|
} else {
|
|
52
|
+
autoplayShouldRunRef.current = true;
|
|
39
53
|
plugin.play();
|
|
40
54
|
}
|
|
41
55
|
}, [isPlaying]);
|
|
56
|
+
const notifyAutoPlayInteraction = useCallback(() => {
|
|
57
|
+
const embla = emblaInstanceRef.current;
|
|
58
|
+
const plugin = autoplayPluginRef.current;
|
|
59
|
+
if (!embla || !plugin?.isPlaying()) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
embla.emit("pointerDown");
|
|
63
|
+
embla.emit("pointerUp");
|
|
64
|
+
}, []);
|
|
42
65
|
return {
|
|
43
|
-
|
|
66
|
+
canAutoPlay,
|
|
44
67
|
isPlaying,
|
|
45
68
|
toggleAutoPlay,
|
|
69
|
+
notifyAutoPlayInteraction,
|
|
46
70
|
handleEmblaApiForAutoPlay
|
|
47
71
|
};
|
|
48
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAutoPlay.mjs","sources":["../../../src/hooks/useAutoPlay.ts"],"sourcesContent":["import type { EmblaCarouselType } from \"embla-carousel\";\nimport type { AutoplayType } from \"embla-carousel-autoplay\";\nimport { useCallback, useRef, useState } from \"react\";\n\ninterface UseAutoPlayOutput {\n\tcanUseAutoPlay: boolean;\n\tisPlaying: boolean;\n\ttoggleAutoPlay: () => void;\n\thandleEmblaApiForAutoPlay: (embla: EmblaCarouselType) => void;\n}\n\nexport function useAutoPlay(): UseAutoPlayOutput {\n\tconst autoplayPluginRef = useRef<AutoplayType | null>(null);\n\tconst emblaInstanceRef = useRef<EmblaCarouselType | null>(null);\n\n\tconst [canUseAutoPlay, setCanUseAutoPlay] = useState(false);\n\tconst [isPlaying, setIsPlaying] = useState(false);\n\n\tconst onAutoPlayPlay = useCallback(() => setIsPlaying(true), []);\n\tconst onAutoPlayStop = useCallback(() => setIsPlaying(false), []);\n\n\tconst handleEmblaApiForAutoPlay = useCallback(\n\t\t(embla: EmblaCarouselType) => {\n\t\t\tconst plugin = embla.plugins()?.autoplay;\n\n\t\t\tif (\n\t\t\t\t!plugin ||\n\t\t\t\ttypeof plugin !== \"object\" ||\n\t\t\t\ttypeof plugin.play !== \"function\"\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst prevEmbla = emblaInstanceRef.current;\n\n\t\t\tif (prevEmbla) {\n\t\t\t\tprevEmbla.off(\"autoplay:play\", onAutoPlayPlay);\n\n\t\t\t\tprevEmbla.off(\"autoplay:stop\", onAutoPlayStop);\n\t\t\t}\n\n\t\t\temblaInstanceRef.current = embla;\n\n\t\t\tautoplayPluginRef.current = plugin;\n\n\t\t\tembla.on(\"autoplay:play\", onAutoPlayPlay);\n\n\t\t\tembla.on(\"autoplay:stop\", onAutoPlayStop);\n\n\t\t\tsetCanUseAutoPlay(true);\n\n\t\t\tsetIsPlaying(plugin.isPlaying());\n\t\t},\n\t\t[onAutoPlayPlay, onAutoPlayStop],\n\t);\n\n\tconst toggleAutoPlay = useCallback(() => {\n\t\tconst plugin = autoplayPluginRef.current;\n\n\t\tif (!plugin) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isPlaying) {\n\t\t\tplugin.stop();\n\t\t} else {\n\t\t\tplugin.play();\n\t\t}\n\t}, [isPlaying]);\n\n\treturn {\n\t\tcanUseAutoPlay,\n\t\tisPlaying,\n\t\ttoggleAutoPlay,\n\t\thandleEmblaApiForAutoPlay,\n\t};\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useAutoPlay.mjs","sources":["../../../src/hooks/useAutoPlay.ts"],"sourcesContent":["import type { EmblaCarouselType } from \"embla-carousel\";\nimport type { AutoplayType } from \"embla-carousel-autoplay\";\nimport { useCallback, useRef, useState } from \"react\";\n\ninterface UseAutoPlayOutput {\n\tcanAutoPlay: boolean;\n\tisPlaying: boolean;\n\ttoggleAutoPlay: () => void;\n\tnotifyAutoPlayInteraction: () => void;\n\thandleEmblaApiForAutoPlay: (embla: EmblaCarouselType) => void;\n}\n\nexport function useAutoPlay(): UseAutoPlayOutput {\n\tconst autoplayPluginRef = useRef<AutoplayType | null>(null);\n\tconst emblaInstanceRef = useRef<EmblaCarouselType | null>(null);\n\tconst autoplayShouldRunRef = useRef(false);\n\n\tconst [canAutoPlay, setCanAutoPlay] = useState(false);\n\tconst [isPlaying, setIsPlaying] = useState(false);\n\n\tconst onAutoPlayPlay = useCallback(() => {\n\t\tsetIsPlaying(true);\n\t}, []);\n\n\tconst onAutoPlayStop = useCallback(() => setIsPlaying(false), []);\n\n\tconst onEmblaPointerUp = useCallback(() => {\n\t\tif (!autoplayShouldRunRef.current) {\n\t\t\tautoplayPluginRef.current?.stop();\n\t\t}\n\t}, []);\n\n\tconst handleEmblaApiForAutoPlay = useCallback(\n\t\t(embla: EmblaCarouselType) => {\n\t\t\tconst plugin = embla.plugins()?.autoplay;\n\n\t\t\tif (\n\t\t\t\t!plugin ||\n\t\t\t\ttypeof plugin !== \"object\" ||\n\t\t\t\ttypeof plugin.play !== \"function\"\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst prevEmbla = emblaInstanceRef.current;\n\n\t\t\tif (prevEmbla) {\n\t\t\t\tprevEmbla.off(\"autoplay:play\", onAutoPlayPlay);\n\t\t\t\tprevEmbla.off(\"autoplay:stop\", onAutoPlayStop);\n\t\t\t\tprevEmbla.off(\"pointerUp\", onEmblaPointerUp);\n\t\t\t}\n\n\t\t\temblaInstanceRef.current = embla;\n\t\t\tautoplayPluginRef.current = plugin;\n\n\t\t\tembla.on(\"autoplay:play\", onAutoPlayPlay);\n\t\t\tembla.on(\"autoplay:stop\", onAutoPlayStop);\n\t\t\tembla.on(\"pointerUp\", onEmblaPointerUp);\n\n\t\t\tconst playing = plugin.isPlaying();\n\t\t\tsetCanAutoPlay(true);\n\t\t\tsetIsPlaying(playing);\n\t\t\tautoplayShouldRunRef.current = playing;\n\t\t},\n\t\t[onAutoPlayPlay, onAutoPlayStop, onEmblaPointerUp],\n\t);\n\n\tconst toggleAutoPlay = useCallback(() => {\n\t\tconst plugin = autoplayPluginRef.current;\n\n\t\tif (!plugin) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isPlaying) {\n\t\t\tautoplayShouldRunRef.current = false;\n\t\t\tplugin.stop();\n\t\t} else {\n\t\t\tautoplayShouldRunRef.current = true;\n\t\t\tplugin.play();\n\t\t}\n\t}, [isPlaying]);\n\n\tconst notifyAutoPlayInteraction = useCallback(() => {\n\t\tconst embla = emblaInstanceRef.current;\n\t\tconst plugin = autoplayPluginRef.current;\n\n\t\tif (!embla || !plugin?.isPlaying()) {\n\t\t\treturn;\n\t\t}\n\n\t\tembla.emit(\"pointerDown\");\n\t\tembla.emit(\"pointerUp\");\n\t}, []);\n\n\treturn {\n\t\tcanAutoPlay,\n\t\tisPlaying,\n\t\ttoggleAutoPlay,\n\t\tnotifyAutoPlayInteraction,\n\t\thandleEmblaApiForAutoPlay,\n\t};\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,17 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { useFocusTrap, useMergedRef, useFocusReturn } from '@mantine/hooks';
|
|
3
|
-
import { useRef, useState,
|
|
2
|
+
import { useFocusTrap, useMergedRef, useFocusReturn, useHotkeys } from '@mantine/hooks';
|
|
3
|
+
import { useMemo, useRef, useState, useCallback } from 'react';
|
|
4
4
|
import { LIGHTBOX_DEFAULT_PROPS } from '../Lightbox.defaults.mjs';
|
|
5
|
-
import { useAutoPlay } from './useAutoPlay.mjs';
|
|
6
|
-
import { useCarouselOptions } from './useCarouselOptions.mjs';
|
|
7
|
-
import { useFullscreen } from './useFullscreen.mjs';
|
|
8
|
-
import { useKeyboardNavigation } from './useKeyboardNavigation.mjs';
|
|
9
|
-
import { useZoom } from './useZoom.mjs';
|
|
10
5
|
|
|
11
6
|
function useLightbox(props) {
|
|
12
7
|
const {
|
|
13
8
|
ref,
|
|
14
9
|
opened,
|
|
10
|
+
initialSlide,
|
|
15
11
|
onClose,
|
|
16
12
|
closeOnClickOutside,
|
|
17
13
|
trapFocus,
|
|
18
14
|
returnFocus,
|
|
19
|
-
children,
|
|
20
15
|
carouselOptions,
|
|
21
16
|
thumbnailEmblaOptions,
|
|
22
17
|
counterFormatter
|
|
@@ -24,61 +19,66 @@ function useLightbox(props) {
|
|
|
24
19
|
const shouldCloseOnClickOutside = closeOnClickOutside ?? LIGHTBOX_DEFAULT_PROPS.closeOnClickOutside;
|
|
25
20
|
const shouldTrapFocus = trapFocus ?? LIGHTBOX_DEFAULT_PROPS.trapFocus;
|
|
26
21
|
const shouldReturnFocus = returnFocus ?? LIGHTBOX_DEFAULT_PROPS.returnFocus;
|
|
22
|
+
const mergedBaseCarouselOptions = useMemo(
|
|
23
|
+
() => ({
|
|
24
|
+
...LIGHTBOX_DEFAULT_PROPS.carouselOptions,
|
|
25
|
+
...carouselOptions,
|
|
26
|
+
initialSlide
|
|
27
|
+
}),
|
|
28
|
+
[carouselOptions, initialSlide]
|
|
29
|
+
);
|
|
30
|
+
const mergedThumbnailEmblaOptions = useMemo(
|
|
31
|
+
() => ({
|
|
32
|
+
...LIGHTBOX_DEFAULT_PROPS.thumbnailEmblaOptions,
|
|
33
|
+
...thumbnailEmblaOptions
|
|
34
|
+
}),
|
|
35
|
+
[thumbnailEmblaOptions]
|
|
36
|
+
);
|
|
27
37
|
const focusTrapRef = useFocusTrap(opened && shouldTrapFocus);
|
|
28
38
|
const mergedRef = useMergedRef(ref, focusTrapRef);
|
|
29
39
|
useFocusReturn({ opened, shouldReturnFocus });
|
|
30
|
-
const
|
|
40
|
+
const slidesEmblaRef = useRef(null);
|
|
31
41
|
const thumbnailsEmblaRef = useRef(null);
|
|
32
42
|
const [currentIndex, setCurrentIndex] = useState(
|
|
33
|
-
|
|
34
|
-
);
|
|
35
|
-
const initialSlide = carouselOptions?.initialSlide ?? 0;
|
|
36
|
-
const { isFullscreen, canUseFullscreen, toggleFullscreen } = useFullscreen({
|
|
37
|
-
opened
|
|
38
|
-
});
|
|
39
|
-
const {
|
|
40
|
-
isZoomed,
|
|
41
|
-
isDraggingZoom,
|
|
42
|
-
zoomOffset,
|
|
43
|
-
zoomScale,
|
|
44
|
-
canZoomCurrent,
|
|
45
|
-
isZoomedRef,
|
|
46
|
-
activeZoomContainerRef,
|
|
47
|
-
resetZoom,
|
|
48
|
-
toggleZoom,
|
|
49
|
-
updateCanZoomAvailability,
|
|
50
|
-
handleZoomPointerDown,
|
|
51
|
-
handleZoomPointerMove,
|
|
52
|
-
handleZoomPointerEnd
|
|
53
|
-
} = useZoom({ opened });
|
|
54
|
-
const {
|
|
55
|
-
canUseAutoPlay,
|
|
56
|
-
isPlaying,
|
|
57
|
-
toggleAutoPlay,
|
|
58
|
-
handleEmblaApiForAutoPlay
|
|
59
|
-
} = useAutoPlay();
|
|
60
|
-
const slides = Children.toArray(children).filter(
|
|
61
|
-
isValidElement
|
|
43
|
+
mergedBaseCarouselOptions?.initialSlide ?? 0
|
|
62
44
|
);
|
|
63
|
-
const total =
|
|
64
|
-
|
|
45
|
+
const [total, setTotal] = useState(null);
|
|
46
|
+
useHotkeys([
|
|
47
|
+
["ArrowLeft", () => opened && slidesEmblaRef.current?.scrollPrev()],
|
|
48
|
+
["ArrowRight", () => opened && slidesEmblaRef.current?.scrollNext()],
|
|
49
|
+
["Escape", () => opened && onClose()]
|
|
50
|
+
]);
|
|
51
|
+
const counterText = useMemo(() => {
|
|
52
|
+
if (total === null) {
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
if (counterFormatter) {
|
|
56
|
+
return counterFormatter(currentIndex, total);
|
|
57
|
+
}
|
|
58
|
+
return `${currentIndex + 1} / ${total}`;
|
|
59
|
+
}, [counterFormatter, currentIndex, total]);
|
|
65
60
|
const handleEmblaApi = useCallback(
|
|
66
61
|
(embla) => {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
62
|
+
slidesEmblaRef.current = embla;
|
|
63
|
+
const onInit = (api) => {
|
|
64
|
+
setTotal(api.slideNodes().length);
|
|
65
|
+
mergedBaseCarouselOptions.getEmblaApi?.(api);
|
|
66
|
+
};
|
|
67
|
+
const onSelect = (api) => {
|
|
68
|
+
setCurrentIndex(api.selectedScrollSnap());
|
|
69
|
+
thumbnailsEmblaRef.current?.scrollTo(api.selectedScrollSnap());
|
|
70
|
+
};
|
|
71
|
+
const onDestroy = () => {
|
|
72
|
+
setCurrentIndex(mergedBaseCarouselOptions?.initialSlide ?? 0);
|
|
73
|
+
setTotal(null);
|
|
74
|
+
thumbnailsEmblaRef.current = null;
|
|
75
|
+
slidesEmblaRef.current = null;
|
|
76
|
+
};
|
|
77
|
+
onInit(embla);
|
|
78
|
+
embla.on("select", onSelect);
|
|
79
|
+
embla.on("destroy", onDestroy);
|
|
80
80
|
},
|
|
81
|
-
[
|
|
81
|
+
[mergedBaseCarouselOptions]
|
|
82
82
|
);
|
|
83
83
|
const handleThumbnailsEmblaApi = useCallback(
|
|
84
84
|
(embla) => {
|
|
@@ -87,70 +87,24 @@ function useLightbox(props) {
|
|
|
87
87
|
},
|
|
88
88
|
[currentIndex]
|
|
89
89
|
);
|
|
90
|
-
const handleThumbnailClick = useCallback(
|
|
91
|
-
(index)
|
|
92
|
-
|
|
93
|
-
resetZoom();
|
|
94
|
-
}
|
|
95
|
-
emblaRef.current?.scrollTo(index);
|
|
96
|
-
},
|
|
97
|
-
[isZoomed, resetZoom]
|
|
98
|
-
);
|
|
90
|
+
const handleThumbnailClick = useCallback((index) => {
|
|
91
|
+
slidesEmblaRef.current?.scrollTo(index);
|
|
92
|
+
}, []);
|
|
99
93
|
const handleOutsideClick = useCallback(() => {
|
|
100
94
|
if (!shouldCloseOnClickOutside) {
|
|
101
95
|
return;
|
|
102
96
|
}
|
|
103
97
|
onClose();
|
|
104
98
|
}, [shouldCloseOnClickOutside, onClose]);
|
|
105
|
-
const mergedCarouselOptions =
|
|
106
|
-
carouselOptions,
|
|
107
|
-
isZoomedRef
|
|
108
|
-
});
|
|
109
|
-
const mergedThumbnailEmblaOptions = {
|
|
110
|
-
...thumbnailEmblaOptions
|
|
111
|
-
};
|
|
112
|
-
useKeyboardNavigation({ opened, emblaRef, onClose });
|
|
113
|
-
useEffect(() => {
|
|
114
|
-
if (!opened) {
|
|
115
|
-
setCurrentIndex(initialSlide);
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
118
|
-
setCurrentIndex(initialSlide);
|
|
119
|
-
emblaRef.current?.scrollTo(initialSlide);
|
|
120
|
-
thumbnailsEmblaRef.current?.scrollTo(initialSlide);
|
|
121
|
-
}, [opened, initialSlide]);
|
|
122
|
-
useEffect(() => {
|
|
123
|
-
if (opened) {
|
|
124
|
-
thumbnailsEmblaRef.current?.scrollTo(currentIndex);
|
|
125
|
-
}
|
|
126
|
-
}, [opened, currentIndex]);
|
|
99
|
+
const mergedCarouselOptions = mergedBaseCarouselOptions;
|
|
127
100
|
return {
|
|
128
101
|
mergedRef,
|
|
129
|
-
slides,
|
|
130
102
|
currentIndex,
|
|
131
103
|
counterText,
|
|
132
|
-
isFullscreen,
|
|
133
|
-
canUseFullscreen,
|
|
134
|
-
toggleFullscreen,
|
|
135
|
-
isZoomed,
|
|
136
|
-
isDraggingZoom,
|
|
137
|
-
zoomOffset,
|
|
138
|
-
zoomScale,
|
|
139
|
-
canZoomCurrent,
|
|
140
|
-
activeZoomContainerRef,
|
|
141
|
-
toggleZoom,
|
|
142
|
-
updateCanZoomAvailability,
|
|
143
|
-
handleZoomPointerDown,
|
|
144
|
-
handleZoomPointerMove,
|
|
145
|
-
handleZoomPointerEnd,
|
|
146
104
|
handleEmblaApi,
|
|
147
105
|
handleThumbnailsEmblaApi,
|
|
148
|
-
handleSlideChange,
|
|
149
106
|
handleThumbnailClick,
|
|
150
107
|
handleOutsideClick,
|
|
151
|
-
isPlaying,
|
|
152
|
-
canUseAutoPlay,
|
|
153
|
-
toggleAutoPlay,
|
|
154
108
|
mergedCarouselOptions,
|
|
155
109
|
mergedThumbnailEmblaOptions
|
|
156
110
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLightbox.mjs","sources":["../../../src/hooks/useLightbox.ts"],"sourcesContent":["import type { CarouselProps } from \"@mantine/carousel\";\nimport { useFocusReturn, useFocusTrap, useMergedRef } from \"@mantine/hooks\";\nimport type { EmblaCarouselType } from \"embla-carousel\";\nimport {\n\tChildren,\n\ttype ForwardedRef,\n\tisValidElement,\n\ttype ReactElement,\n\ttype ReactNode,\n\ttype PointerEvent as ReactPointerEvent,\n\ttype RefObject,\n\tuseCallback,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n} from \"react\";\nimport { LIGHTBOX_DEFAULT_PROPS } from \"../Lightbox.defaults.js\";\nimport type {\n\tLightboxCarouselOptions,\n\tLightboxThumbnailEmblaOptions,\n} from \"../Lightbox.js\";\nimport type { LightboxSlideProps } from \"../LightboxSlide.js\";\nimport type { ZoomOffset } from \"../utils/zoom.js\";\nimport { useAutoPlay } from \"./useAutoPlay.js\";\nimport {\n\ttype UseCarouselOptionsOutput,\n\tuseCarouselOptions,\n} from \"./useCarouselOptions.js\";\nimport { useFullscreen } from \"./useFullscreen.js\";\nimport { useKeyboardNavigation } from \"./useKeyboardNavigation.js\";\nimport { useZoom } from \"./useZoom.js\";\n\ninterface UseLightboxInput {\n\tref: ForwardedRef<HTMLDivElement>;\n\topened: boolean;\n\tonClose: () => void;\n\tcloseOnClickOutside: boolean | undefined;\n\ttrapFocus: boolean | undefined;\n\treturnFocus: boolean | undefined;\n\tchildren: ReactNode;\n\tcarouselOptions: LightboxCarouselOptions | undefined;\n\tthumbnailEmblaOptions: LightboxThumbnailEmblaOptions | undefined;\n\tcounterFormatter: ((index: number, total: number) => string) | undefined;\n}\n\ninterface UseLightboxOutput {\n\tmergedRef: (node: HTMLDivElement | null) => void;\n\tslides: ReactElement<Pick<LightboxSlideProps, \"children\" | \"thumbnail\">>[];\n\tcurrentIndex: number;\n\tcounterText: string;\n\tisFullscreen: boolean;\n\tcanUseFullscreen: boolean;\n\ttoggleFullscreen: () => void;\n\tisZoomed: boolean;\n\tisDraggingZoom: boolean;\n\tzoomOffset: ZoomOffset;\n\tzoomScale: number;\n\tcanZoomCurrent: boolean;\n\tactiveZoomContainerRef: RefObject<HTMLDivElement | null>;\n\ttoggleZoom: () => void;\n\tupdateCanZoomAvailability: () => void;\n\thandleZoomPointerDown: (event: ReactPointerEvent<HTMLDivElement>) => void;\n\thandleZoomPointerMove: (event: ReactPointerEvent<HTMLDivElement>) => void;\n\thandleZoomPointerEnd: (event: ReactPointerEvent<HTMLDivElement>) => void;\n\thandleEmblaApi: CarouselProps[\"getEmblaApi\"];\n\thandleThumbnailsEmblaApi: (embla: EmblaCarouselType) => void;\n\thandleSlideChange: (index: number) => void;\n\thandleThumbnailClick: (index: number) => void;\n\thandleOutsideClick: () => void;\n\tisPlaying: boolean;\n\tcanUseAutoPlay: boolean;\n\ttoggleAutoPlay: () => void;\n\tmergedCarouselOptions: UseCarouselOptionsOutput;\n\tmergedThumbnailEmblaOptions: LightboxThumbnailEmblaOptions;\n}\n\nexport function useLightbox(props: UseLightboxInput): UseLightboxOutput {\n\tconst {\n\t\tref,\n\t\topened,\n\t\tonClose,\n\t\tcloseOnClickOutside,\n\t\ttrapFocus,\n\t\treturnFocus,\n\t\tchildren,\n\t\tcarouselOptions,\n\t\tthumbnailEmblaOptions,\n\t\tcounterFormatter,\n\t} = props;\n\n\tconst shouldCloseOnClickOutside =\n\t\tcloseOnClickOutside ?? LIGHTBOX_DEFAULT_PROPS.closeOnClickOutside;\n\n\tconst shouldTrapFocus = trapFocus ?? LIGHTBOX_DEFAULT_PROPS.trapFocus;\n\n\tconst shouldReturnFocus = returnFocus ?? LIGHTBOX_DEFAULT_PROPS.returnFocus;\n\n\tconst focusTrapRef = useFocusTrap(opened && shouldTrapFocus);\n\n\tconst mergedRef = useMergedRef(ref, focusTrapRef);\n\n\tuseFocusReturn({ opened, shouldReturnFocus });\n\n\tconst emblaRef = useRef<EmblaCarouselType | null>(null);\n\tconst thumbnailsEmblaRef = useRef<EmblaCarouselType | null>(null);\n\tconst [currentIndex, setCurrentIndex] = useState(\n\t\tcarouselOptions?.initialSlide ?? 0,\n\t);\n\tconst initialSlide = carouselOptions?.initialSlide ?? 0;\n\n\tconst { isFullscreen, canUseFullscreen, toggleFullscreen } = useFullscreen({\n\t\topened,\n\t});\n\n\tconst {\n\t\tisZoomed,\n\t\tisDraggingZoom,\n\t\tzoomOffset,\n\t\tzoomScale,\n\t\tcanZoomCurrent,\n\t\tisZoomedRef,\n\t\tactiveZoomContainerRef,\n\t\tresetZoom,\n\t\ttoggleZoom,\n\t\tupdateCanZoomAvailability,\n\t\thandleZoomPointerDown,\n\t\thandleZoomPointerMove,\n\t\thandleZoomPointerEnd,\n\t} = useZoom({ opened });\n\n\tconst {\n\t\tcanUseAutoPlay,\n\t\tisPlaying,\n\t\ttoggleAutoPlay,\n\t\thandleEmblaApiForAutoPlay,\n\t} = useAutoPlay();\n\n\tconst slides = Children.toArray(children).filter(\n\t\tisValidElement,\n\t) as ReactElement<Pick<LightboxSlideProps, \"children\" | \"thumbnail\">>[];\n\n\tconst total = slides.length;\n\n\tconst counterText = counterFormatter\n\t\t? counterFormatter(currentIndex, total)\n\t\t: `${currentIndex + 1} / ${total}`;\n\n\tconst handleEmblaApi = useCallback(\n\t\t(embla: EmblaCarouselType) => {\n\t\t\temblaRef.current = embla;\n\n\t\t\thandleEmblaApiForAutoPlay(embla);\n\n\t\t\tcarouselOptions?.getEmblaApi?.(embla);\n\t\t},\n\t\t[carouselOptions?.getEmblaApi, handleEmblaApiForAutoPlay],\n\t);\n\n\tconst handleSlideChange = useCallback(\n\t\t(index: number) => {\n\t\t\tsetCurrentIndex(index);\n\n\t\t\tresetZoom();\n\n\t\t\trequestAnimationFrame(updateCanZoomAvailability);\n\n\t\t\tcarouselOptions?.onSlideChange?.(index);\n\n\t\t\tthumbnailsEmblaRef.current?.scrollTo(index);\n\t\t},\n\t\t[carouselOptions?.onSlideChange, resetZoom, updateCanZoomAvailability],\n\t);\n\n\tconst handleThumbnailsEmblaApi = useCallback(\n\t\t(embla: EmblaCarouselType) => {\n\t\t\tthumbnailsEmblaRef.current = embla;\n\n\t\t\tembla.scrollTo(currentIndex);\n\t\t},\n\t\t[currentIndex],\n\t);\n\n\tconst handleThumbnailClick = useCallback(\n\t\t(index: number) => {\n\t\t\tif (isZoomed) {\n\t\t\t\tresetZoom();\n\t\t\t}\n\n\t\t\temblaRef.current?.scrollTo(index);\n\t\t},\n\t\t[isZoomed, resetZoom],\n\t);\n\n\tconst handleOutsideClick = useCallback(() => {\n\t\tif (!shouldCloseOnClickOutside) {\n\t\t\treturn;\n\t\t}\n\n\t\tonClose();\n\t}, [shouldCloseOnClickOutside, onClose]);\n\n\tconst mergedCarouselOptions = useCarouselOptions({\n\t\tcarouselOptions,\n\t\tisZoomedRef,\n\t});\n\n\tconst mergedThumbnailEmblaOptions: LightboxThumbnailEmblaOptions = {\n\t\t...thumbnailEmblaOptions,\n\t};\n\n\tuseKeyboardNavigation({ opened, emblaRef, onClose });\n\n\tuseEffect(() => {\n\t\tif (!opened) {\n\t\t\tsetCurrentIndex(initialSlide);\n\n\t\t\treturn;\n\t\t}\n\n\t\tsetCurrentIndex(initialSlide);\n\n\t\temblaRef.current?.scrollTo(initialSlide);\n\n\t\tthumbnailsEmblaRef.current?.scrollTo(initialSlide);\n\t}, [opened, initialSlide]);\n\n\tuseEffect(() => {\n\t\tif (opened) {\n\t\t\tthumbnailsEmblaRef.current?.scrollTo(currentIndex);\n\t\t}\n\t}, [opened, currentIndex]);\n\n\treturn {\n\t\tmergedRef,\n\t\tslides,\n\t\tcurrentIndex,\n\t\tcounterText,\n\t\tisFullscreen,\n\t\tcanUseFullscreen,\n\t\ttoggleFullscreen,\n\t\tisZoomed,\n\t\tisDraggingZoom,\n\t\tzoomOffset,\n\t\tzoomScale,\n\t\tcanZoomCurrent,\n\t\tactiveZoomContainerRef,\n\t\ttoggleZoom,\n\t\tupdateCanZoomAvailability,\n\t\thandleZoomPointerDown,\n\t\thandleZoomPointerMove,\n\t\thandleZoomPointerEnd,\n\t\thandleEmblaApi,\n\t\thandleThumbnailsEmblaApi,\n\t\thandleSlideChange,\n\t\thandleThumbnailClick,\n\t\thandleOutsideClick,\n\t\tisPlaying,\n\t\tcanUseAutoPlay,\n\t\ttoggleAutoPlay,\n\t\tmergedCarouselOptions,\n\t\tmergedThumbnailEmblaOptions,\n\t};\n}\n"],"names":[],"mappings":";;;;;;;;;;AAkBO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,CAAA;AACnC,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA;AACR,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA;AACP,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA;AACV,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA;AACX,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAA;AACvB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA;AACb,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA;AACf,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA;AACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA;AACnB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAA;AACzB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACJ,CAAA,CAAA,CAAG,GAAG,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA;AACX,CAAA,CAAE,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyB,CAAA,CAAA,CAAG,mBAAmB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAA;AACrG,CAAA,CAAE,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAG,SAAS,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA;AACvE,CAAA,CAAE,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAG,WAAW,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA;AAC7E,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,YAAY,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,eAAe,CAAC,CAAA;AAC9D,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,SAAS,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA,CAAG,CAAA,CAAE,YAAY,CAAC,CAAA;AACnD,CAAA,CAAE,cAAc,CAAC,CAAA,CAAE,MAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,EAAE,CAAC,CAAA;AAC/C,CAAA,CAAE,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,IAAI,CAAC,CAAA;AAC/B,CAAA,CAAE,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,IAAI,CAAC,CAAA;AACzC,CAAA,CAAE,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA;AAClD,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAA;AACrC,CAAA,CAAA,CAAG,CAAA;AACH,CAAA,CAAE,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAG,eAAe,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,IAAI,CAAC,CAAA;AACzD,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAE,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAA;AAC7E,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACJ,CAAA,CAAA,CAAG,CAAC,CAAA;AACJ,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA;AACR,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA;AACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA;AAClB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA;AACd,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA;AACb,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA;AAClB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA;AACf,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,CAAA;AAC1B,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA;AACb,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA;AACd,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyB,CAAA;AAC7B,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAA;AACzB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAA;AACzB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACJ,CAAA,CAAA,CAAG,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAC,CAAA;AACzB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA;AACR,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA;AAClB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA;AACb,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA;AAClB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACJ,CAAA,CAAA,CAAG,CAAA,CAAA,CAAG,WAAW,CAAA,CAAE,CAAA;AACnB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,OAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA;AAClD,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACJ,CAAA,CAAA,CAAG,CAAA;AACH,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA;AAC7B,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,WAAW,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,GAAG,CAAC,CAAA,CAAE,YAAY,CAAA,CAAA,CAAG,CAAC,CAAC,CAAA,CAAA,CAAG,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAC,CAAA;AACjH,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA;AACpC,CAAA,CAAA,CAAA,CAAI,CAAC,KAAK,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA;AACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAG,KAAK,CAAC,CAAA;AAC3C,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA;AACL,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyB,CAAA;AAC5D,CAAA,CAAA,CAAG,CAAA;AACH,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA;AACvC,CAAA,CAAA,CAAA,CAAI,CAAC,KAAK,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA;AACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,SAAS,CAAA,CAAE,CAAA;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyB,CAAC,CAAA;AACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAG,KAAK,CAAC,CAAA;AAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,kBAAkB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,KAAK,CAAC,CAAA;AACjD,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA;AACL,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAE,aAAa,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyB,CAAA;AACzE,CAAA,CAAA,CAAG,CAAA;AACH,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA;AAC9C,CAAA,CAAA,CAAA,CAAI,CAAC,KAAK,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA;AACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA;AACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,YAAY,CAAC,CAAA;AAClC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA;AACL,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA;AACjB,CAAA,CAAA,CAAG,CAAA;AACH,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA;AAC1C,CAAA,CAAA,CAAA,CAAI,CAAC,KAAK,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA;AACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,QAAQ,CAAA,CAAE,CAAA;AACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,SAAS,CAAA,CAAE,CAAA;AACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA;AACN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,QAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,KAAK,CAAC,CAAA;AACvC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA;AACL,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA;AACxB,CAAA,CAAA,CAAG,CAAA;AACH,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA;AAC/C,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyB,CAAA,CAAE,CAAA;AACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACN,CAAA,CAAA,CAAA,CAAI,CAAA;AACJ,CAAA,CAAA,CAAA,CAAI,OAAO,CAAA,CAAE,CAAA;AACb,CAAA,CAAE,CAAC,CAAA,CAAE,CAAC,yBAAyB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAC,CAAA;AAC1C,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC,CAAA;AACnD,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA;AACnB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACJ,CAAA,CAAA,CAAG,CAAC,CAAA;AACJ,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,2BAA2B,CAAA,CAAA,CAAG,CAAA;AACtC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACP,CAAA,CAAA,CAAG,CAAA;AACH,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAC,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAC,CAAA;AACtD,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA;AAClB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA;AACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACN,CAAA,CAAA,CAAA,CAAI,CAAA;AACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA;AACjC,CAAA,CAAA,CAAA,CAAI,QAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,YAAY,CAAC,CAAA;AAC5C,CAAA,CAAA,CAAA,CAAI,kBAAkB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,YAAY,CAAC,CAAA;AACtD,CAAA,CAAE,CAAC,CAAA,CAAE,CAAC,MAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAC,CAAA;AAC5B,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA;AAClB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,MAAM,CAAA,CAAE,CAAA;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,kBAAkB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,YAAY,CAAC,CAAA;AACxD,CAAA,CAAA,CAAA,CAAI,CAAA;AACJ,CAAA,CAAE,CAAC,CAAA,CAAE,CAAC,MAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAC,CAAA;AAC5B,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA;AACT,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA;AACb,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA;AACV,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA;AAChB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA;AACf,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA;AAChB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA;AACpB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA;AACpB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA;AACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA;AAClB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA;AACd,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA;AACb,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA;AAClB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,CAAA;AAC1B,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA;AACd,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyB,CAAA;AAC7B,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAA;AACzB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAA;AACzB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA;AACxB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA;AAClB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAA;AAC5B,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA;AACrB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA;AACxB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAA;AACtB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA;AACb,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA;AAClB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA;AAClB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAA;AACzB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACJ,CAAA,CAAA,CAAG,CAAA;AACH,CAAA;;"}
|
|
1
|
+
{"version":3,"file":"useLightbox.mjs","sources":["../../../src/hooks/useLightbox.ts"],"sourcesContent":["import type { CarouselProps } from \"@mantine/carousel\";\nimport {\n\tuseFocusReturn,\n\tuseFocusTrap,\n\tuseHotkeys,\n\tuseMergedRef,\n} from \"@mantine/hooks\";\nimport type { EmblaCarouselType } from \"embla-carousel\";\nimport {\n\ttype ForwardedRef,\n\tuseCallback,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from \"react\";\nimport { LIGHTBOX_DEFAULT_PROPS } from \"../Lightbox.defaults.js\";\nimport type {\n\tLightboxCarouselOptions,\n\tLightboxThumbnailEmblaOptions,\n} from \"../Lightbox.js\";\n\ninterface UseLightboxInput {\n\tref: ForwardedRef<HTMLDivElement>;\n\topened: boolean;\n\tinitialSlide: number | undefined;\n\tonClose: () => void;\n\tcloseOnClickOutside: boolean | undefined;\n\ttrapFocus: boolean | undefined;\n\treturnFocus: boolean | undefined;\n\tcarouselOptions: LightboxCarouselOptions | undefined;\n\tthumbnailEmblaOptions: LightboxThumbnailEmblaOptions | undefined;\n\tcounterFormatter: ((index: number, total: number) => string) | undefined;\n}\n\nexport interface UseLightboxOutput {\n\tmergedRef: (node: HTMLDivElement | null) => void;\n\tcurrentIndex: number;\n\tcounterText: string | null;\n\thandleEmblaApi: CarouselProps[\"getEmblaApi\"];\n\thandleThumbnailsEmblaApi: (embla: EmblaCarouselType) => void;\n\thandleThumbnailClick: (index: number) => void;\n\thandleOutsideClick: () => void;\n\tmergedCarouselOptions: LightboxCarouselOptions;\n\tmergedThumbnailEmblaOptions: LightboxThumbnailEmblaOptions;\n}\n\nexport function useLightbox(props: UseLightboxInput): UseLightboxOutput {\n\tconst {\n\t\tref,\n\t\topened,\n\t\tinitialSlide,\n\t\tonClose,\n\t\tcloseOnClickOutside,\n\t\ttrapFocus,\n\t\treturnFocus,\n\t\tcarouselOptions,\n\t\tthumbnailEmblaOptions,\n\t\tcounterFormatter,\n\t} = props;\n\n\tconst shouldCloseOnClickOutside =\n\t\tcloseOnClickOutside ?? LIGHTBOX_DEFAULT_PROPS.closeOnClickOutside;\n\n\tconst shouldTrapFocus = trapFocus ?? LIGHTBOX_DEFAULT_PROPS.trapFocus;\n\n\tconst shouldReturnFocus = returnFocus ?? LIGHTBOX_DEFAULT_PROPS.returnFocus;\n\n\tconst mergedBaseCarouselOptions = useMemo<LightboxCarouselOptions>(\n\t\t() => ({\n\t\t\t...LIGHTBOX_DEFAULT_PROPS.carouselOptions,\n\t\t\t...carouselOptions,\n\t\t\tinitialSlide,\n\t\t}),\n\t\t[carouselOptions, initialSlide],\n\t);\n\n\tconst mergedThumbnailEmblaOptions = useMemo<LightboxThumbnailEmblaOptions>(\n\t\t() => ({\n\t\t\t...LIGHTBOX_DEFAULT_PROPS.thumbnailEmblaOptions,\n\t\t\t...thumbnailEmblaOptions,\n\t\t}),\n\t\t[thumbnailEmblaOptions],\n\t);\n\n\tconst focusTrapRef = useFocusTrap(opened && shouldTrapFocus);\n\n\tconst mergedRef = useMergedRef(ref, focusTrapRef);\n\n\tuseFocusReturn({ opened, shouldReturnFocus });\n\n\tconst slidesEmblaRef = useRef<EmblaCarouselType | null>(null);\n\tconst thumbnailsEmblaRef = useRef<EmblaCarouselType | null>(null);\n\n\tconst [currentIndex, setCurrentIndex] = useState(\n\t\tmergedBaseCarouselOptions?.initialSlide ?? 0,\n\t);\n\tconst [total, setTotal] = useState<number | null>(null);\n\n\tuseHotkeys([\n\t\t[\"ArrowLeft\", () => opened && slidesEmblaRef.current?.scrollPrev()],\n\t\t[\"ArrowRight\", () => opened && slidesEmblaRef.current?.scrollNext()],\n\t\t[\"Escape\", () => opened && onClose()],\n\t]);\n\n\tconst counterText = useMemo(() => {\n\t\tif (total === null) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif (counterFormatter) {\n\t\t\treturn counterFormatter(currentIndex, total);\n\t\t}\n\n\t\treturn `${currentIndex + 1} / ${total}`;\n\t}, [counterFormatter, currentIndex, total]);\n\n\tconst handleEmblaApi = useCallback(\n\t\t(embla: EmblaCarouselType) => {\n\t\t\tslidesEmblaRef.current = embla;\n\n\t\t\tconst onInit = (api: EmblaCarouselType) => {\n\t\t\t\tsetTotal(api.slideNodes().length);\n\t\t\t\tmergedBaseCarouselOptions.getEmblaApi?.(api);\n\t\t\t};\n\n\t\t\tconst onSelect = (api: EmblaCarouselType) => {\n\t\t\t\tsetCurrentIndex(api.selectedScrollSnap());\n\t\t\t\tthumbnailsEmblaRef.current?.scrollTo(api.selectedScrollSnap());\n\t\t\t};\n\n\t\t\tconst onDestroy = () => {\n\t\t\t\tsetCurrentIndex(mergedBaseCarouselOptions?.initialSlide ?? 0);\n\t\t\t\tsetTotal(null);\n\t\t\t\tthumbnailsEmblaRef.current = null;\n\t\t\t\tslidesEmblaRef.current = null;\n\t\t\t};\n\n\t\t\tonInit(embla);\n\n\t\t\tembla.on(\"select\", onSelect);\n\t\t\tembla.on(\"destroy\", onDestroy);\n\t\t},\n\t\t[mergedBaseCarouselOptions],\n\t);\n\n\tconst handleThumbnailsEmblaApi = useCallback(\n\t\t(embla: EmblaCarouselType) => {\n\t\t\tthumbnailsEmblaRef.current = embla;\n\n\t\t\tembla.scrollTo(currentIndex);\n\t\t},\n\t\t[currentIndex],\n\t);\n\n\tconst handleThumbnailClick = useCallback((index: number) => {\n\t\tslidesEmblaRef.current?.scrollTo(index);\n\t}, []);\n\n\tconst handleOutsideClick = useCallback(() => {\n\t\tif (!shouldCloseOnClickOutside) {\n\t\t\treturn;\n\t\t}\n\n\t\tonClose();\n\t}, [shouldCloseOnClickOutside, onClose]);\n\n\tconst mergedCarouselOptions = mergedBaseCarouselOptions;\n\n\treturn {\n\t\tmergedRef,\n\t\tcurrentIndex,\n\t\tcounterText,\n\t\thandleEmblaApi,\n\t\thandleThumbnailsEmblaApi,\n\t\thandleThumbnailClick,\n\t\thandleOutsideClick,\n\t\tmergedCarouselOptions,\n\t\tmergedThumbnailEmblaOptions,\n\t};\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { LIGHTBOX_DEFAULT_PROPS } from '../Lightbox.defaults.mjs';
|
|
3
|
+
|
|
4
|
+
function useLightboxRootOptions(props) {
|
|
5
|
+
return {
|
|
6
|
+
overlayProps: {
|
|
7
|
+
...LIGHTBOX_DEFAULT_PROPS.overlayProps,
|
|
8
|
+
...props.overlayProps
|
|
9
|
+
},
|
|
10
|
+
transitionProps: {
|
|
11
|
+
...LIGHTBOX_DEFAULT_PROPS.transitionProps,
|
|
12
|
+
...props.transitionProps
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export { useLightboxRootOptions };
|
|
18
|
+
//# sourceMappingURL=useLightboxRootOptions.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useLightboxRootOptions.mjs","sources":["../../../src/hooks/useLightboxRootOptions.ts"],"sourcesContent":["import type { OverlayProps, TransitionOverride } from \"@mantine/core\";\nimport { LIGHTBOX_DEFAULT_PROPS } from \"../Lightbox.defaults.js\";\n\ninterface UseLightboxRootOptionsInput {\n\toverlayProps: OverlayProps | undefined;\n\ttransitionProps: TransitionOverride | undefined;\n}\n\ninterface UseLightboxRootOptionsOutput {\n\toverlayProps: OverlayProps;\n\ttransitionProps: TransitionOverride;\n}\n\nexport function useLightboxRootOptions(\n\tprops: UseLightboxRootOptionsInput,\n): UseLightboxRootOptionsOutput {\n\treturn {\n\t\toverlayProps: {\n\t\t\t...LIGHTBOX_DEFAULT_PROPS.overlayProps,\n\t\t\t...props.overlayProps,\n\t\t},\n\t\ttransitionProps: {\n\t\t\t...LIGHTBOX_DEFAULT_PROPS.transitionProps,\n\t\t\t...props.transitionProps,\n\t\t},\n\t};\n}\n"],"names":[],"mappings":";;;AAEO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,CAAA;AAC9C,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA;AACT,CAAA,CAAA,CAAA,CAAI,YAAY,CAAA,CAAE,CAAA;AAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA;AAC5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,KAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACf,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA;AACL,CAAA,CAAA,CAAA,CAAI,eAAe,CAAA,CAAE,CAAA;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA;AAC/C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,KAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACf,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAG,CAAA;AACH,CAAA;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { useRef, useCallback } from 'react';
|
|
3
|
-
import { isEventTargetWithinSelector, createOutsideClosePointerState, updateOutsideClosePointerState, shouldCloseFromOutsidePointerState } from '../utils/
|
|
3
|
+
import { isEventTargetWithinSelector, createOutsideClosePointerState, updateOutsideClosePointerState, shouldCloseFromOutsidePointerState } from '../utils/pointer.mjs';
|
|
4
4
|
|
|
5
5
|
function useSlideInteractions(props) {
|
|
6
6
|
const {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSlideInteractions.mjs","sources":["../../../src/hooks/useSlideInteractions.ts"],"sourcesContent":["import type { PointerEvent as ReactPointerEvent, SyntheticEvent } from \"react\";\nimport { useCallback, useRef } from \"react\";\nimport {\n\tcreateOutsideClosePointerState,\n\tisEventTargetWithinSelector,\n\ttype OutsideClosePointerState,\n\tshouldCloseFromOutsidePointerState,\n\tupdateOutsideClosePointerState,\n} from \"../utils/zoom.js\";\n\ninterface UseSlideInteractionsInput {\n\tonClose: () => void;\n\tonZoomPointerDown: (event: ReactPointerEvent<HTMLDivElement>) => void;\n\tonZoomPointerMove: (event: ReactPointerEvent<HTMLDivElement>) => void;\n\tonZoomPointerEnd: (event: ReactPointerEvent<HTMLDivElement>) => void;\n\tupdateCanZoomAvailability: () => void;\n}\n\ninterface UseSlideInteractionsOutput {\n\thandleSlidePointerDown: (event: ReactPointerEvent<HTMLDivElement>) => void;\n\thandleSlidePointerMove: (event: ReactPointerEvent<HTMLDivElement>) => void;\n\thandleSlidePointerUp: (event: ReactPointerEvent<HTMLDivElement>) => void;\n\thandleSlidePointerCancel: (event: ReactPointerEvent<HTMLDivElement>) => void;\n\thandleSlideLoadCapture: (event: SyntheticEvent<HTMLDivElement>) => void;\n}\n\n/**\n * Combines outside-content close detection with zoom pointer event delegation\n * for a single lightbox slide element.\n *\n * Tracks whether each pointer press originated outside `[data-lightbox-slide-content]`\n * and closes the lightbox on release if the pointer did not drag. Zoom pointer\n * events are forwarded to the provided zoom handlers throughout.\n */\nexport function useSlideInteractions(\n\tprops: UseSlideInteractionsInput,\n): UseSlideInteractionsOutput {\n\tconst {\n\t\tonClose,\n\t\tonZoomPointerDown,\n\t\tonZoomPointerMove,\n\t\tonZoomPointerEnd,\n\t\tupdateCanZoomAvailability,\n\t} = props;\n\n\tconst outsideClosePointerRef = useRef<OutsideClosePointerState | null>(null);\n\n\tconst handleSlidePointerDown = useCallback(\n\t\t(event: ReactPointerEvent<HTMLDivElement>) => {\n\t\t\tconst startedInsideContent = isEventTargetWithinSelector(\n\t\t\t\tevent.target,\n\t\t\t\t\"[data-lightbox-slide-content]\",\n\t\t\t);\n\n\t\t\toutsideClosePointerRef.current = createOutsideClosePointerState({\n\t\t\t\tpointerId: event.pointerId,\n\t\t\t\tclientX: event.clientX,\n\t\t\t\tclientY: event.clientY,\n\t\t\t\tstartedOutsideContent: !startedInsideContent,\n\t\t\t});\n\n\t\t\tonZoomPointerDown(event);\n\t\t},\n\t\t[onZoomPointerDown],\n\t);\n\n\tconst handleSlidePointerMove = useCallback(\n\t\t(event: ReactPointerEvent<HTMLDivElement>) => {\n\t\t\tconst outsideClosePointer = outsideClosePointerRef.current;\n\n\t\t\tif (\n\t\t\t\toutsideClosePointer &&\n\t\t\t\toutsideClosePointer.pointerId === event.pointerId\n\t\t\t) {\n\t\t\t\toutsideClosePointerRef.current = updateOutsideClosePointerState(\n\t\t\t\t\toutsideClosePointer,\n\t\t\t\t\t{\n\t\t\t\t\t\tclientX: event.clientX,\n\t\t\t\t\t\tclientY: event.clientY,\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tonZoomPointerMove(event);\n\t\t},\n\t\t[onZoomPointerMove],\n\t);\n\n\tconst handleSlidePointerUp = useCallback(\n\t\t(event: ReactPointerEvent<HTMLDivElement>) => {\n\t\t\tonZoomPointerEnd(event);\n\n\t\t\tconst outsideClosePointer = outsideClosePointerRef.current;\n\n\t\t\tif (\n\t\t\t\t!outsideClosePointer ||\n\t\t\t\toutsideClosePointer.pointerId !== event.pointerId\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst finalizedPointer = updateOutsideClosePointerState(\n\t\t\t\toutsideClosePointer,\n\t\t\t\t{\n\t\t\t\t\tclientX: event.clientX,\n\t\t\t\t\tclientY: event.clientY,\n\t\t\t\t},\n\t\t\t);\n\n\t\t\toutsideClosePointerRef.current = null;\n\n\t\t\tif (shouldCloseFromOutsidePointerState(finalizedPointer)) {\n\t\t\t\tonClose();\n\t\t\t}\n\t\t},\n\t\t[onClose, onZoomPointerEnd],\n\t);\n\n\tconst handleSlidePointerCancel = useCallback(\n\t\t(event: ReactPointerEvent<HTMLDivElement>) => {\n\t\t\toutsideClosePointerRef.current = null;\n\t\t\tonZoomPointerEnd(event);\n\t\t},\n\t\t[onZoomPointerEnd],\n\t);\n\n\tconst handleSlideLoadCapture = useCallback(\n\t\t(event: SyntheticEvent<HTMLDivElement>) => {\n\t\t\tif (event.target instanceof HTMLImageElement) {\n\t\t\t\tupdateCanZoomAvailability();\n\t\t\t}\n\t\t},\n\t\t[updateCanZoomAvailability],\n\t);\n\n\treturn {\n\t\thandleSlidePointerDown,\n\t\thandleSlidePointerMove,\n\t\thandleSlidePointerUp,\n\t\thandleSlidePointerCancel,\n\t\thandleSlideLoadCapture,\n\t};\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useSlideInteractions.mjs","sources":["../../../src/hooks/useSlideInteractions.ts"],"sourcesContent":["import type { PointerEvent as ReactPointerEvent, SyntheticEvent } from \"react\";\nimport { useCallback, useRef } from \"react\";\nimport {\n\tcreateOutsideClosePointerState,\n\tisEventTargetWithinSelector,\n\ttype OutsideClosePointerState,\n\tshouldCloseFromOutsidePointerState,\n\tupdateOutsideClosePointerState,\n} from \"../utils/pointer.js\";\n\ninterface UseSlideInteractionsProps {\n\tonClose: () => void;\n\tonZoomPointerDown: (event: ReactPointerEvent<HTMLDivElement>) => void;\n\tonZoomPointerMove: (event: ReactPointerEvent<HTMLDivElement>) => void;\n\tonZoomPointerEnd: (event: ReactPointerEvent<HTMLDivElement>) => void;\n\tupdateCanZoomAvailability: () => void;\n}\n\ninterface UseSlideInteractionsReturn {\n\thandleSlidePointerDown: (event: ReactPointerEvent<HTMLDivElement>) => void;\n\thandleSlidePointerMove: (event: ReactPointerEvent<HTMLDivElement>) => void;\n\thandleSlidePointerUp: (event: ReactPointerEvent<HTMLDivElement>) => void;\n\thandleSlidePointerCancel: (event: ReactPointerEvent<HTMLDivElement>) => void;\n\thandleSlideLoadCapture: (event: SyntheticEvent<HTMLDivElement>) => void;\n}\n\n/**\n * Combines outside-content close detection with zoom pointer event delegation\n * for a single lightbox slide element.\n *\n * Tracks whether each pointer press originated outside `[data-lightbox-slide-content]`\n * and closes the lightbox on release if the pointer did not drag. Zoom pointer\n * events are forwarded to the provided zoom handlers throughout.\n */\nexport function useSlideInteractions(\n\tprops: UseSlideInteractionsProps,\n): UseSlideInteractionsReturn {\n\tconst {\n\t\tonClose,\n\t\tonZoomPointerDown,\n\t\tonZoomPointerMove,\n\t\tonZoomPointerEnd,\n\t\tupdateCanZoomAvailability,\n\t} = props;\n\n\tconst outsideClosePointerRef = useRef<OutsideClosePointerState | null>(null);\n\n\tconst handleSlidePointerDown = useCallback(\n\t\t(event: ReactPointerEvent<HTMLDivElement>) => {\n\t\t\tconst startedInsideContent = isEventTargetWithinSelector(\n\t\t\t\tevent.target,\n\t\t\t\t\"[data-lightbox-slide-content]\",\n\t\t\t);\n\n\t\t\toutsideClosePointerRef.current = createOutsideClosePointerState({\n\t\t\t\tpointerId: event.pointerId,\n\t\t\t\tclientX: event.clientX,\n\t\t\t\tclientY: event.clientY,\n\t\t\t\tstartedOutsideContent: !startedInsideContent,\n\t\t\t});\n\n\t\t\tonZoomPointerDown(event);\n\t\t},\n\t\t[onZoomPointerDown],\n\t);\n\n\tconst handleSlidePointerMove = useCallback(\n\t\t(event: ReactPointerEvent<HTMLDivElement>) => {\n\t\t\tconst outsideClosePointer = outsideClosePointerRef.current;\n\n\t\t\tif (\n\t\t\t\toutsideClosePointer &&\n\t\t\t\toutsideClosePointer.pointerId === event.pointerId\n\t\t\t) {\n\t\t\t\toutsideClosePointerRef.current = updateOutsideClosePointerState(\n\t\t\t\t\toutsideClosePointer,\n\t\t\t\t\t{\n\t\t\t\t\t\tclientX: event.clientX,\n\t\t\t\t\t\tclientY: event.clientY,\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tonZoomPointerMove(event);\n\t\t},\n\t\t[onZoomPointerMove],\n\t);\n\n\tconst handleSlidePointerUp = useCallback(\n\t\t(event: ReactPointerEvent<HTMLDivElement>) => {\n\t\t\tonZoomPointerEnd(event);\n\n\t\t\tconst outsideClosePointer = outsideClosePointerRef.current;\n\n\t\t\tif (\n\t\t\t\t!outsideClosePointer ||\n\t\t\t\toutsideClosePointer.pointerId !== event.pointerId\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst finalizedPointer = updateOutsideClosePointerState(\n\t\t\t\toutsideClosePointer,\n\t\t\t\t{\n\t\t\t\t\tclientX: event.clientX,\n\t\t\t\t\tclientY: event.clientY,\n\t\t\t\t},\n\t\t\t);\n\n\t\t\toutsideClosePointerRef.current = null;\n\n\t\t\tif (shouldCloseFromOutsidePointerState(finalizedPointer)) {\n\t\t\t\tonClose();\n\t\t\t}\n\t\t},\n\t\t[onClose, onZoomPointerEnd],\n\t);\n\n\tconst handleSlidePointerCancel = useCallback(\n\t\t(event: ReactPointerEvent<HTMLDivElement>) => {\n\t\t\toutsideClosePointerRef.current = null;\n\t\t\tonZoomPointerEnd(event);\n\t\t},\n\t\t[onZoomPointerEnd],\n\t);\n\n\tconst handleSlideLoadCapture = useCallback(\n\t\t(event: SyntheticEvent<HTMLDivElement>) => {\n\t\t\tif (event.target instanceof HTMLImageElement) {\n\t\t\t\tupdateCanZoomAvailability();\n\t\t\t}\n\t\t},\n\t\t[updateCanZoomAvailability],\n\t);\n\n\treturn {\n\t\thandleSlidePointerDown,\n\t\thandleSlidePointerMove,\n\t\thandleSlidePointerUp,\n\t\thandleSlidePointerCancel,\n\t\thandleSlideLoadCapture,\n\t};\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -3,10 +3,11 @@ import useEmblaCarousel from 'embla-carousel-react';
|
|
|
3
3
|
import { useRef, useState, useCallback, useEffect } from 'react';
|
|
4
4
|
|
|
5
5
|
function useThumbnails(props) {
|
|
6
|
-
const { emblaOptions,
|
|
6
|
+
const { emblaOptions, thumbnailsEmblaRef, initialIndex } = props;
|
|
7
7
|
const [emblaRef, emblaApi] = useEmblaCarousel(emblaOptions);
|
|
8
8
|
const viewportRef = useRef(null);
|
|
9
9
|
const containerRef = useRef(null);
|
|
10
|
+
const initialIndexRef = useRef(initialIndex);
|
|
10
11
|
const [hasOverflow, setHasOverflow] = useState(false);
|
|
11
12
|
const setViewportRef = useCallback(
|
|
12
13
|
(node) => {
|
|
@@ -16,10 +17,12 @@ function useThumbnails(props) {
|
|
|
16
17
|
[emblaRef]
|
|
17
18
|
);
|
|
18
19
|
useEffect(() => {
|
|
19
|
-
if (emblaApi) {
|
|
20
|
-
|
|
20
|
+
if (!emblaApi) {
|
|
21
|
+
return;
|
|
21
22
|
}
|
|
22
|
-
|
|
23
|
+
thumbnailsEmblaRef.current = emblaApi;
|
|
24
|
+
emblaApi.scrollTo(initialIndexRef.current);
|
|
25
|
+
}, [emblaApi, thumbnailsEmblaRef]);
|
|
23
26
|
useEffect(() => {
|
|
24
27
|
const updateOverflow = () => {
|
|
25
28
|
const viewport2 = viewportRef.current;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useThumbnails.mjs","sources":["../../../src/hooks/useThumbnails.ts"],"sourcesContent":["import type { EmblaCarouselType, EmblaOptionsType } from \"embla-carousel\";\nimport useEmblaCarousel from \"embla-carousel-react\";\nimport {\n\ttype RefObject,\n\tuseCallback,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n} from \"react\";\n\ninterface
|
|
1
|
+
{"version":3,"file":"useThumbnails.mjs","sources":["../../../src/hooks/useThumbnails.ts"],"sourcesContent":["import type { EmblaCarouselType, EmblaOptionsType } from \"embla-carousel\";\nimport useEmblaCarousel from \"embla-carousel-react\";\nimport {\n\ttype RefObject,\n\tuseCallback,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n} from \"react\";\n\ninterface UseThumbnailsProps {\n\temblaOptions: EmblaOptionsType | undefined;\n\tthumbnailsEmblaRef: RefObject<EmblaCarouselType | null>;\n\tinitialIndex: number;\n}\n\ninterface UseThumbnailsReturn {\n\tsetViewportRef: (node: HTMLDivElement | null) => void;\n\tcontainerRef: RefObject<HTMLDivElement | null>;\n\thasOverflow: boolean;\n}\n\nexport function useThumbnails(props: UseThumbnailsProps): UseThumbnailsReturn {\n\tconst { emblaOptions, thumbnailsEmblaRef, initialIndex } = props;\n\n\tconst [emblaRef, emblaApi] = useEmblaCarousel(emblaOptions);\n\n\tconst viewportRef = useRef<HTMLDivElement | null>(null);\n\tconst containerRef = useRef<HTMLDivElement | null>(null);\n\tconst initialIndexRef = useRef(initialIndex);\n\n\tconst [hasOverflow, setHasOverflow] = useState(false);\n\n\tconst setViewportRef = useCallback(\n\t\t(node: HTMLDivElement | null) => {\n\t\t\tviewportRef.current = node;\n\n\t\t\temblaRef(node);\n\t\t},\n\t\t[emblaRef],\n\t);\n\n\tuseEffect(() => {\n\t\tif (!emblaApi) {\n\t\t\treturn;\n\t\t}\n\n\t\tthumbnailsEmblaRef.current = emblaApi;\n\n\t\temblaApi.scrollTo(initialIndexRef.current);\n\t}, [emblaApi, thumbnailsEmblaRef]);\n\n\tuseEffect(() => {\n\t\tconst updateOverflow = () => {\n\t\t\tconst viewport = viewportRef.current;\n\t\t\tconst container = containerRef.current;\n\n\t\t\tif (!viewport || !container) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetHasOverflow(container.scrollWidth > viewport.clientWidth + 1);\n\t\t};\n\n\t\tupdateOverflow();\n\n\t\tif (typeof ResizeObserver === \"undefined\") {\n\t\t\twindow.addEventListener(\"resize\", updateOverflow);\n\n\t\t\treturn () => window.removeEventListener(\"resize\", updateOverflow);\n\t\t}\n\n\t\tconst observer = new ResizeObserver(updateOverflow);\n\n\t\tconst viewport = viewportRef.current;\n\n\t\tconst container = containerRef.current;\n\n\t\tif (viewport) {\n\t\t\tobserver.observe(viewport);\n\t\t}\n\n\t\tif (container) {\n\t\t\tobserver.observe(container);\n\t\t}\n\n\t\treturn () => observer.disconnect();\n\t}, []);\n\n\treturn {\n\t\tsetViewportRef,\n\t\tcontainerRef,\n\t\thasOverflow,\n\t};\n}\n"],"names":[],"mappings":"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"}
|