@mantine-bites/lightbox 1.3.0 → 2.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 +1 -1
- package/dist/cjs/Lightbox.cjs +2 -2
- package/dist/cjs/Lightbox.cjs.map +1 -1
- package/dist/cjs/components/LightboxAutoplayButton.cjs +1 -2
- package/dist/cjs/components/LightboxAutoplayButton.cjs.map +1 -1
- package/dist/cjs/components/LightboxCaption.cjs +14 -17
- package/dist/cjs/components/LightboxCaption.cjs.map +1 -1
- package/dist/cjs/components/LightboxCloseButton.cjs +1 -2
- package/dist/cjs/components/LightboxCloseButton.cjs.map +1 -1
- package/dist/cjs/components/LightboxControls.cjs +43 -61
- package/dist/cjs/components/LightboxControls.cjs.map +1 -1
- package/dist/cjs/components/LightboxCounter.cjs +17 -20
- package/dist/cjs/components/LightboxCounter.cjs.map +1 -1
- package/dist/cjs/components/LightboxFullscreenButton.cjs +1 -2
- package/dist/cjs/components/LightboxFullscreenButton.cjs.map +1 -1
- package/dist/cjs/components/LightboxRoot.cjs +50 -10
- package/dist/cjs/components/LightboxRoot.cjs.map +1 -1
- package/dist/cjs/components/LightboxSlide.cjs +1 -2
- package/dist/cjs/components/LightboxSlide.cjs.map +1 -1
- package/dist/cjs/components/LightboxSlides.cjs +3 -8
- package/dist/cjs/components/LightboxSlides.cjs.map +1 -1
- package/dist/cjs/components/LightboxThumbnail.cjs +23 -26
- package/dist/cjs/components/LightboxThumbnail.cjs.map +1 -1
- package/dist/cjs/components/LightboxThumbnails.cjs +3 -3
- package/dist/cjs/components/LightboxThumbnails.cjs.map +1 -1
- package/dist/cjs/components/LightboxToolbar.cjs +72 -75
- package/dist/cjs/components/LightboxToolbar.cjs.map +1 -1
- package/dist/cjs/components/LightboxZoomButton.cjs +1 -2
- package/dist/cjs/components/LightboxZoomButton.cjs.map +1 -1
- package/dist/cjs/context/LightboxContext.cjs.map +1 -1
- package/dist/cjs/hooks/useZoom.cjs +36 -1
- package/dist/cjs/hooks/useZoom.cjs.map +1 -1
- package/dist/esm/Lightbox.mjs +2 -2
- package/dist/esm/Lightbox.mjs.map +1 -1
- package/dist/esm/components/LightboxAutoplayButton.mjs +1 -2
- package/dist/esm/components/LightboxAutoplayButton.mjs.map +1 -1
- package/dist/esm/components/LightboxCaption.mjs +14 -17
- package/dist/esm/components/LightboxCaption.mjs.map +1 -1
- package/dist/esm/components/LightboxCloseButton.mjs +1 -2
- package/dist/esm/components/LightboxCloseButton.mjs.map +1 -1
- package/dist/esm/components/LightboxControls.mjs +43 -61
- package/dist/esm/components/LightboxControls.mjs.map +1 -1
- package/dist/esm/components/LightboxCounter.mjs +17 -20
- package/dist/esm/components/LightboxCounter.mjs.map +1 -1
- package/dist/esm/components/LightboxFullscreenButton.mjs +1 -2
- package/dist/esm/components/LightboxFullscreenButton.mjs.map +1 -1
- package/dist/esm/components/LightboxRoot.mjs +51 -11
- package/dist/esm/components/LightboxRoot.mjs.map +1 -1
- package/dist/esm/components/LightboxSlide.mjs +1 -2
- package/dist/esm/components/LightboxSlide.mjs.map +1 -1
- package/dist/esm/components/LightboxSlides.mjs +3 -8
- package/dist/esm/components/LightboxSlides.mjs.map +1 -1
- package/dist/esm/components/LightboxThumbnail.mjs +23 -26
- package/dist/esm/components/LightboxThumbnail.mjs.map +1 -1
- package/dist/esm/components/LightboxThumbnails.mjs +3 -3
- package/dist/esm/components/LightboxThumbnails.mjs.map +1 -1
- package/dist/esm/components/LightboxToolbar.mjs +72 -75
- package/dist/esm/components/LightboxToolbar.mjs.map +1 -1
- package/dist/esm/components/LightboxZoomButton.mjs +1 -2
- package/dist/esm/components/LightboxZoomButton.mjs.map +1 -1
- package/dist/esm/context/LightboxContext.mjs.map +1 -1
- package/dist/esm/hooks/useZoom.mjs +36 -1
- package/dist/esm/hooks/useZoom.mjs.map +1 -1
- package/dist/types/Lightbox.d.ts +1 -1
- package/dist/types/Lightbox.d.ts.map +1 -1
- package/dist/types/components/LightboxAutoplayButton.d.ts.map +1 -1
- package/dist/types/components/LightboxCaption.d.ts.map +1 -1
- package/dist/types/components/LightboxCloseButton.d.ts.map +1 -1
- package/dist/types/components/LightboxControls.d.ts.map +1 -1
- package/dist/types/components/LightboxCounter.d.ts.map +1 -1
- package/dist/types/components/LightboxFullscreenButton.d.ts.map +1 -1
- package/dist/types/components/LightboxRoot.d.ts +2 -0
- package/dist/types/components/LightboxRoot.d.ts.map +1 -1
- package/dist/types/components/LightboxSlide.d.ts.map +1 -1
- package/dist/types/components/LightboxSlides.d.ts +0 -2
- package/dist/types/components/LightboxSlides.d.ts.map +1 -1
- package/dist/types/components/LightboxThumbnail.d.ts.map +1 -1
- package/dist/types/components/LightboxThumbnails.d.ts.map +1 -1
- package/dist/types/components/LightboxToolbar.d.ts.map +1 -1
- package/dist/types/components/LightboxZoomButton.d.ts.map +1 -1
- package/dist/types/context/LightboxContext.d.ts +3 -5
- package/dist/types/context/LightboxContext.d.ts.map +1 -1
- package/dist/types/context/LightboxSlideContext.d.ts +1 -4
- package/dist/types/context/LightboxSlideContext.d.ts.map +1 -1
- package/dist/types/context/LightboxThumbnailContext.d.ts +1 -4
- package/dist/types/context/LightboxThumbnailContext.d.ts.map +1 -1
- package/dist/types/hooks/useZoom.d.ts +1 -0
- package/dist/types/hooks/useZoom.d.ts.map +1 -1
- package/package.json +20 -16
- package/dist/cjs/Lightbox.context-value.cjs +0 -47
- package/dist/cjs/Lightbox.context-value.cjs.map +0 -1
- package/dist/cjs/Lightbox.context.cjs +0 -12
- package/dist/cjs/Lightbox.context.cjs.map +0 -1
- package/dist/cjs/Lightbox.defaults.cjs +0 -29
- package/dist/cjs/Lightbox.defaults.cjs.map +0 -1
- package/dist/cjs/Lightbox.module.css.cjs +0 -7
- package/dist/cjs/Lightbox.module.css.cjs.map +0 -1
- package/dist/cjs/LightboxSlide.cjs +0 -93
- package/dist/cjs/LightboxSlide.cjs.map +0 -1
- package/dist/cjs/LightboxSlide.context.cjs +0 -12
- package/dist/cjs/LightboxSlide.context.cjs.map +0 -1
- package/dist/cjs/components/EnterFullscreen.cjs +0 -30
- package/dist/cjs/components/EnterFullscreen.cjs.map +0 -1
- package/dist/cjs/components/ExitFullscreen.cjs +0 -30
- package/dist/cjs/components/ExitFullscreen.cjs.map +0 -1
- package/dist/cjs/components/LightboxCarousel.cjs +0 -29
- package/dist/cjs/components/LightboxCarousel.cjs.map +0 -1
- package/dist/cjs/components/LightboxCarouselSlide.context.cjs +0 -12
- package/dist/cjs/components/LightboxCarouselSlide.context.cjs.map +0 -1
- package/dist/cjs/components/LightboxContent.cjs +0 -38
- package/dist/cjs/components/LightboxContent.cjs.map +0 -1
- package/dist/cjs/components/LightboxOverlay.cjs +0 -40
- package/dist/cjs/components/LightboxOverlay.cjs.map +0 -1
- package/dist/cjs/components/LightboxPreset.cjs +0 -32
- package/dist/cjs/components/LightboxPreset.cjs.map +0 -1
- package/dist/cjs/components/LightboxSlide.context.cjs +0 -12
- package/dist/cjs/components/LightboxSlide.context.cjs.map +0 -1
- package/dist/cjs/components/LightboxThumbnail.context.cjs +0 -12
- package/dist/cjs/components/LightboxThumbnail.context.cjs.map +0 -1
- package/dist/cjs/components/LightboxThumbnailsButton.cjs +0 -41
- package/dist/cjs/components/LightboxThumbnailsButton.cjs.map +0 -1
- package/dist/cjs/components/Pause.cjs +0 -28
- package/dist/cjs/components/Pause.cjs.map +0 -1
- package/dist/cjs/components/Play.cjs +0 -22
- package/dist/cjs/components/Play.cjs.map +0 -1
- package/dist/cjs/components/QuestionMark.cjs +0 -28
- package/dist/cjs/components/QuestionMark.cjs.map +0 -1
- package/dist/cjs/components/ZoomIn.cjs +0 -30
- package/dist/cjs/components/ZoomIn.cjs.map +0 -1
- package/dist/cjs/components/ZoomOut.cjs +0 -29
- package/dist/cjs/components/ZoomOut.cjs.map +0 -1
- package/dist/cjs/components/icons/HideThumbnails.cjs +0 -28
- package/dist/cjs/components/icons/HideThumbnails.cjs.map +0 -1
- package/dist/cjs/components/icons/ShowThumbnails.cjs +0 -28
- package/dist/cjs/components/icons/ShowThumbnails.cjs.map +0 -1
- package/dist/cjs/hooks/useCarouselOptions.cjs +0 -30
- package/dist/cjs/hooks/useCarouselOptions.cjs.map +0 -1
- package/dist/cjs/hooks/useFullscreen.cjs +0 -39
- package/dist/cjs/hooks/useFullscreen.cjs.map +0 -1
- package/dist/cjs/hooks/useKeyboardNavigation.cjs +0 -29
- package/dist/cjs/hooks/useKeyboardNavigation.cjs.map +0 -1
- package/dist/cjs/hooks/useLightbox.cjs +0 -116
- package/dist/cjs/hooks/useLightbox.cjs.map +0 -1
- package/dist/cjs/hooks/useLightboxRootOptions.cjs +0 -20
- package/dist/cjs/hooks/useLightboxRootOptions.cjs.map +0 -1
- package/dist/cjs/hooks/useSlideInteractions.cjs +0 -94
- package/dist/cjs/hooks/useSlideInteractions.cjs.map +0 -1
- package/dist/cjs/hooks/useThumbnails.cjs +0 -61
- package/dist/cjs/hooks/useThumbnails.cjs.map +0 -1
- package/dist/cjs/utils/fullscreen.cjs +0 -41
- package/dist/cjs/utils/fullscreen.cjs.map +0 -1
- package/dist/esm/Lightbox.context-value.mjs +0 -45
- package/dist/esm/Lightbox.context-value.mjs.map +0 -1
- package/dist/esm/Lightbox.context.mjs +0 -9
- package/dist/esm/Lightbox.context.mjs.map +0 -1
- package/dist/esm/Lightbox.defaults.mjs +0 -27
- package/dist/esm/Lightbox.defaults.mjs.map +0 -1
- package/dist/esm/Lightbox.module.css.mjs +0 -5
- package/dist/esm/Lightbox.module.css.mjs.map +0 -1
- package/dist/esm/LightboxSlide.context.mjs +0 -9
- package/dist/esm/LightboxSlide.context.mjs.map +0 -1
- package/dist/esm/LightboxSlide.mjs +0 -91
- package/dist/esm/LightboxSlide.mjs.map +0 -1
- package/dist/esm/components/EnterFullscreen.mjs +0 -28
- package/dist/esm/components/EnterFullscreen.mjs.map +0 -1
- package/dist/esm/components/ExitFullscreen.mjs +0 -28
- package/dist/esm/components/ExitFullscreen.mjs.map +0 -1
- package/dist/esm/components/LightboxCarousel.mjs +0 -27
- package/dist/esm/components/LightboxCarousel.mjs.map +0 -1
- package/dist/esm/components/LightboxCarouselSlide.context.mjs +0 -9
- package/dist/esm/components/LightboxCarouselSlide.context.mjs.map +0 -1
- package/dist/esm/components/LightboxContent.mjs +0 -36
- package/dist/esm/components/LightboxContent.mjs.map +0 -1
- package/dist/esm/components/LightboxOverlay.mjs +0 -38
- package/dist/esm/components/LightboxOverlay.mjs.map +0 -1
- package/dist/esm/components/LightboxPreset.mjs +0 -30
- package/dist/esm/components/LightboxPreset.mjs.map +0 -1
- package/dist/esm/components/LightboxSlide.context.mjs +0 -9
- package/dist/esm/components/LightboxSlide.context.mjs.map +0 -1
- package/dist/esm/components/LightboxThumbnail.context.mjs +0 -9
- package/dist/esm/components/LightboxThumbnail.context.mjs.map +0 -1
- package/dist/esm/components/LightboxThumbnailsButton.mjs +0 -39
- package/dist/esm/components/LightboxThumbnailsButton.mjs.map +0 -1
- package/dist/esm/components/Pause.mjs +0 -26
- package/dist/esm/components/Pause.mjs.map +0 -1
- package/dist/esm/components/Play.mjs +0 -20
- package/dist/esm/components/Play.mjs.map +0 -1
- package/dist/esm/components/QuestionMark.mjs +0 -26
- package/dist/esm/components/QuestionMark.mjs.map +0 -1
- package/dist/esm/components/ZoomIn.mjs +0 -28
- package/dist/esm/components/ZoomIn.mjs.map +0 -1
- package/dist/esm/components/ZoomOut.mjs +0 -27
- package/dist/esm/components/ZoomOut.mjs.map +0 -1
- package/dist/esm/components/icons/HideThumbnails.mjs +0 -26
- package/dist/esm/components/icons/HideThumbnails.mjs.map +0 -1
- package/dist/esm/components/icons/ShowThumbnails.mjs +0 -26
- package/dist/esm/components/icons/ShowThumbnails.mjs.map +0 -1
- package/dist/esm/hooks/useCarouselOptions.mjs +0 -28
- package/dist/esm/hooks/useCarouselOptions.mjs.map +0 -1
- package/dist/esm/hooks/useFullscreen.mjs +0 -37
- package/dist/esm/hooks/useFullscreen.mjs.map +0 -1
- package/dist/esm/hooks/useKeyboardNavigation.mjs +0 -27
- package/dist/esm/hooks/useKeyboardNavigation.mjs.map +0 -1
- package/dist/esm/hooks/useLightbox.mjs +0 -114
- package/dist/esm/hooks/useLightbox.mjs.map +0 -1
- package/dist/esm/hooks/useLightboxRootOptions.mjs +0 -18
- package/dist/esm/hooks/useLightboxRootOptions.mjs.map +0 -1
- package/dist/esm/hooks/useSlideInteractions.mjs +0 -92
- package/dist/esm/hooks/useSlideInteractions.mjs.map +0 -1
- package/dist/esm/hooks/useThumbnails.mjs +0 -59
- package/dist/esm/hooks/useThumbnails.mjs.map +0 -1
- package/dist/esm/utils/fullscreen.mjs +0 -36
- package/dist/esm/utils/fullscreen.mjs.map +0 -1
- package/dist/types/Lightbox.context-value.d.ts +0 -16
- package/dist/types/Lightbox.context-value.d.ts.map +0 -1
- package/dist/types/Lightbox.context.d.ts +0 -39
- package/dist/types/Lightbox.context.d.ts.map +0 -1
- package/dist/types/Lightbox.defaults.d.ts +0 -24
- package/dist/types/Lightbox.defaults.d.ts.map +0 -1
- package/dist/types/Lightbox.story.d.ts +0 -10
- package/dist/types/Lightbox.story.d.ts.map +0 -1
- package/dist/types/Lightbox.test.d.ts +0 -2
- package/dist/types/Lightbox.test.d.ts.map +0 -1
- package/dist/types/LightboxSlide.context.d.ts +0 -8
- package/dist/types/LightboxSlide.context.d.ts.map +0 -1
- package/dist/types/LightboxSlide.d.ts +0 -17
- package/dist/types/LightboxSlide.d.ts.map +0 -1
- package/dist/types/components/EnterFullscreen.d.ts +0 -3
- package/dist/types/components/EnterFullscreen.d.ts.map +0 -1
- package/dist/types/components/ExitFullscreen.d.ts +0 -3
- package/dist/types/components/ExitFullscreen.d.ts.map +0 -1
- package/dist/types/components/LightboxCarousel.d.ts +0 -6
- package/dist/types/components/LightboxCarousel.d.ts.map +0 -1
- package/dist/types/components/LightboxCarouselSlide.context.d.ts +0 -10
- package/dist/types/components/LightboxCarouselSlide.context.d.ts.map +0 -1
- package/dist/types/components/LightboxContent.d.ts +0 -14
- package/dist/types/components/LightboxContent.d.ts.map +0 -1
- package/dist/types/components/LightboxOverlay.d.ts +0 -4
- package/dist/types/components/LightboxOverlay.d.ts.map +0 -1
- package/dist/types/components/LightboxPreset.d.ts +0 -10
- package/dist/types/components/LightboxPreset.d.ts.map +0 -1
- package/dist/types/components/LightboxSlide.context.d.ts +0 -8
- package/dist/types/components/LightboxSlide.context.d.ts.map +0 -1
- package/dist/types/components/LightboxThumbnail.context.d.ts +0 -8
- package/dist/types/components/LightboxThumbnail.context.d.ts.map +0 -1
- package/dist/types/components/LightboxThumbnailsButton.d.ts +0 -17
- package/dist/types/components/LightboxThumbnailsButton.d.ts.map +0 -1
- package/dist/types/components/Pause.d.ts +0 -3
- package/dist/types/components/Pause.d.ts.map +0 -1
- package/dist/types/components/Play.d.ts +0 -3
- package/dist/types/components/Play.d.ts.map +0 -1
- package/dist/types/components/QuestionMark.d.ts +0 -3
- package/dist/types/components/QuestionMark.d.ts.map +0 -1
- package/dist/types/components/ZoomIn.d.ts +0 -3
- package/dist/types/components/ZoomIn.d.ts.map +0 -1
- package/dist/types/components/ZoomOut.d.ts +0 -3
- package/dist/types/components/ZoomOut.d.ts.map +0 -1
- package/dist/types/components/icons/HideThumbnails.d.ts +0 -3
- package/dist/types/components/icons/HideThumbnails.d.ts.map +0 -1
- package/dist/types/components/icons/ShowThumbnails.d.ts +0 -3
- package/dist/types/components/icons/ShowThumbnails.d.ts.map +0 -1
- package/dist/types/hooks/useAutoPlay.test.d.ts +0 -2
- package/dist/types/hooks/useAutoPlay.test.d.ts.map +0 -1
- package/dist/types/hooks/useCarouselOptions.d.ts +0 -20
- package/dist/types/hooks/useCarouselOptions.d.ts.map +0 -1
- package/dist/types/hooks/useFullscreen.d.ts +0 -11
- package/dist/types/hooks/useFullscreen.d.ts.map +0 -1
- package/dist/types/hooks/useKeyboardNavigation.d.ts +0 -10
- package/dist/types/hooks/useKeyboardNavigation.d.ts.map +0 -1
- package/dist/types/hooks/useLightbox.d.ts +0 -30
- package/dist/types/hooks/useLightbox.d.ts.map +0 -1
- package/dist/types/hooks/useLightboxRootOptions.d.ts +0 -12
- package/dist/types/hooks/useLightboxRootOptions.d.ts.map +0 -1
- package/dist/types/hooks/useSlideInteractions.d.ts +0 -26
- package/dist/types/hooks/useSlideInteractions.d.ts.map +0 -1
- package/dist/types/hooks/useThumbnails.d.ts +0 -15
- package/dist/types/hooks/useThumbnails.d.ts.map +0 -1
- package/dist/types/utils/fullscreen.d.ts +0 -21
- package/dist/types/utils/fullscreen.d.ts.map +0 -1
- package/dist/types/utils/zoom.test.d.ts +0 -2
- package/dist/types/utils/zoom.test.d.ts.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useFullscreen.mjs","sources":["../../../src/hooks/useFullscreen.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from \"react\";\nimport {\n\tcanToggleBrowserFullscreen,\n\texitBrowserFullscreenIfActive,\n\tisBrowserFullscreen,\n\ttoggleBrowserFullscreen,\n} from \"../utils/fullscreen.js\";\n\ninterface UseFullscreenInput {\n\topened: boolean;\n}\n\ninterface UseFullscreenOutput {\n\tisFullscreen: boolean;\n\tcanUseFullscreen: boolean;\n\ttoggleFullscreen: () => void;\n}\n\nexport function useFullscreen(props: UseFullscreenInput): UseFullscreenOutput {\n\tconst { opened } = props;\n\n\tconst [isFullscreen, setIsFullscreen] = useState(isBrowserFullscreen);\n\n\tconst canUseFullscreen = canToggleBrowserFullscreen();\n\n\tconst toggleFullscreen = useCallback(async () => {\n\t\tif (!canUseFullscreen) {\n\t\t\treturn;\n\t\t}\n\n\t\tawait toggleBrowserFullscreen();\n\t}, [canUseFullscreen]);\n\n\tuseEffect(() => {\n\t\tconst handleFullscreenChange = () => {\n\t\t\tsetIsFullscreen(isBrowserFullscreen());\n\t\t};\n\n\t\tdocument.addEventListener(\"fullscreenchange\", handleFullscreenChange);\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener(\"fullscreenchange\", handleFullscreenChange);\n\t\t};\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (!opened) {\n\t\t\tvoid exitBrowserFullscreenIfActive();\n\t\t}\n\t}, [opened]);\n\n\treturn {\n\t\tisFullscreen,\n\t\tcanUseFullscreen,\n\t\ttoggleFullscreen,\n\t};\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { useEffect } from 'react';
|
|
3
|
-
|
|
4
|
-
function useKeyboardNavigation(props) {
|
|
5
|
-
const { opened, emblaRef, onClose } = props;
|
|
6
|
-
useEffect(() => {
|
|
7
|
-
if (!opened) {
|
|
8
|
-
return;
|
|
9
|
-
}
|
|
10
|
-
const handleKeyDown = (event) => {
|
|
11
|
-
if (event.key === "Escape") {
|
|
12
|
-
onClose();
|
|
13
|
-
} else if (event.key === "ArrowLeft") {
|
|
14
|
-
emblaRef.current?.scrollPrev();
|
|
15
|
-
} else if (event.key === "ArrowRight") {
|
|
16
|
-
emblaRef.current?.scrollNext();
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
document.addEventListener("keydown", handleKeyDown);
|
|
20
|
-
return () => {
|
|
21
|
-
document.removeEventListener("keydown", handleKeyDown);
|
|
22
|
-
};
|
|
23
|
-
}, [opened, emblaRef, onClose]);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export { useKeyboardNavigation };
|
|
27
|
-
//# sourceMappingURL=useKeyboardNavigation.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useKeyboardNavigation.mjs","sources":["../../../src/hooks/useKeyboardNavigation.ts"],"sourcesContent":["import type { EmblaCarouselType } from \"embla-carousel\";\nimport type { RefObject } from \"react\";\nimport { useEffect } from \"react\";\n\ninterface UseKeyboardNavigationInput {\n\topened: boolean;\n\temblaRef: RefObject<EmblaCarouselType | null>;\n\tonClose: () => void;\n}\n\nexport function useKeyboardNavigation(props: UseKeyboardNavigationInput): void {\n\tconst { opened, emblaRef, onClose } = props;\n\n\tuseEffect(() => {\n\t\tif (!opened) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst handleKeyDown = (event: KeyboardEvent) => {\n\t\t\tif (event.key === \"Escape\") {\n\t\t\t\tonClose();\n\t\t\t} else if (event.key === \"ArrowLeft\") {\n\t\t\t\temblaRef.current?.scrollPrev();\n\t\t\t} else if (event.key === \"ArrowRight\") {\n\t\t\t\temblaRef.current?.scrollNext();\n\t\t\t}\n\t\t};\n\n\t\tdocument.addEventListener(\"keydown\", handleKeyDown);\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener(\"keydown\", handleKeyDown);\n\t\t};\n\t}, [opened, emblaRef, onClose]);\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,CAAqB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,CAAA;AAC7C,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,QAAQ,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA;AAC7C,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;AACN,CAAA,CAAA,CAAA,CAAI,CAAA;AACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAG,CAAC,KAAK,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA;AACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,IAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAK,QAAQ,CAAA,CAAE,CAAA;AAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAE,CAAA;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,MAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAK,WAAW,CAAA,CAAE,CAAA;AAC5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,UAAU,CAAA,CAAE,CAAA;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,MAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAK,YAAY,CAAA,CAAE,CAAA;AAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,UAAU,CAAA,CAAE,CAAA;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA;AACN,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA;AACL,CAAA,CAAA,CAAA,CAAI,QAAQ,CAAC,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,CAAS,CAAA,CAAE,aAAa,CAAC,CAAA;AACvD,CAAA,CAAA,CAAA,CAAI,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,QAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAE,aAAa,CAAC,CAAA;AAC5D,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA;AACL,CAAA,CAAE,CAAC,EAAE,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAC,CAAA;AACjC,CAAA;;"}
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { useFocusTrap, useMergedRef, useFocusReturn, useHotkeys } from '@mantine/hooks';
|
|
3
|
-
import { useMemo, useRef, useState, useCallback } from 'react';
|
|
4
|
-
import { LIGHTBOX_DEFAULT_PROPS } from '../Lightbox.defaults.mjs';
|
|
5
|
-
|
|
6
|
-
function useLightbox(props) {
|
|
7
|
-
const {
|
|
8
|
-
ref,
|
|
9
|
-
opened,
|
|
10
|
-
initialSlide,
|
|
11
|
-
onClose,
|
|
12
|
-
closeOnClickOutside,
|
|
13
|
-
trapFocus,
|
|
14
|
-
returnFocus,
|
|
15
|
-
carouselOptions,
|
|
16
|
-
thumbnailEmblaOptions,
|
|
17
|
-
counterFormatter
|
|
18
|
-
} = props;
|
|
19
|
-
const shouldCloseOnClickOutside = closeOnClickOutside ?? LIGHTBOX_DEFAULT_PROPS.closeOnClickOutside;
|
|
20
|
-
const shouldTrapFocus = trapFocus ?? LIGHTBOX_DEFAULT_PROPS.trapFocus;
|
|
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
|
-
);
|
|
37
|
-
const focusTrapRef = useFocusTrap(opened && shouldTrapFocus);
|
|
38
|
-
const mergedRef = useMergedRef(ref, focusTrapRef);
|
|
39
|
-
useFocusReturn({ opened, shouldReturnFocus });
|
|
40
|
-
const slidesEmblaRef = useRef(null);
|
|
41
|
-
const thumbnailsEmblaRef = useRef(null);
|
|
42
|
-
const [currentIndex, setCurrentIndex] = useState(
|
|
43
|
-
mergedBaseCarouselOptions?.initialSlide ?? 0
|
|
44
|
-
);
|
|
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]);
|
|
60
|
-
const handleEmblaApi = useCallback(
|
|
61
|
-
(embla) => {
|
|
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
|
-
},
|
|
81
|
-
[mergedBaseCarouselOptions]
|
|
82
|
-
);
|
|
83
|
-
const handleThumbnailsEmblaApi = useCallback(
|
|
84
|
-
(embla) => {
|
|
85
|
-
thumbnailsEmblaRef.current = embla;
|
|
86
|
-
embla.scrollTo(currentIndex);
|
|
87
|
-
},
|
|
88
|
-
[currentIndex]
|
|
89
|
-
);
|
|
90
|
-
const handleThumbnailClick = useCallback((index) => {
|
|
91
|
-
slidesEmblaRef.current?.scrollTo(index);
|
|
92
|
-
}, []);
|
|
93
|
-
const handleOutsideClick = useCallback(() => {
|
|
94
|
-
if (!shouldCloseOnClickOutside) {
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
|
-
onClose();
|
|
98
|
-
}, [shouldCloseOnClickOutside, onClose]);
|
|
99
|
-
const mergedCarouselOptions = mergedBaseCarouselOptions;
|
|
100
|
-
return {
|
|
101
|
-
mergedRef,
|
|
102
|
-
currentIndex,
|
|
103
|
-
counterText,
|
|
104
|
-
handleEmblaApi,
|
|
105
|
-
handleThumbnailsEmblaApi,
|
|
106
|
-
handleThumbnailClick,
|
|
107
|
-
handleOutsideClick,
|
|
108
|
-
mergedCarouselOptions,
|
|
109
|
-
mergedThumbnailEmblaOptions
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
export { useLightbox };
|
|
114
|
-
//# sourceMappingURL=useLightbox.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
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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"}
|
|
@@ -1,18 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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,92 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { useRef, useCallback } from 'react';
|
|
3
|
-
import { isEventTargetWithinSelector, createOutsideClosePointerState, updateOutsideClosePointerState, shouldCloseFromOutsidePointerState } from '../utils/pointer.mjs';
|
|
4
|
-
|
|
5
|
-
function useSlideInteractions(props) {
|
|
6
|
-
const {
|
|
7
|
-
onClose,
|
|
8
|
-
onZoomPointerDown,
|
|
9
|
-
onZoomPointerMove,
|
|
10
|
-
onZoomPointerEnd,
|
|
11
|
-
updateCanZoomAvailability
|
|
12
|
-
} = props;
|
|
13
|
-
const outsideClosePointerRef = useRef(null);
|
|
14
|
-
const handleSlidePointerDown = useCallback(
|
|
15
|
-
(event) => {
|
|
16
|
-
const startedInsideContent = isEventTargetWithinSelector(
|
|
17
|
-
event.target,
|
|
18
|
-
"[data-lightbox-slide-content]"
|
|
19
|
-
);
|
|
20
|
-
outsideClosePointerRef.current = createOutsideClosePointerState({
|
|
21
|
-
pointerId: event.pointerId,
|
|
22
|
-
clientX: event.clientX,
|
|
23
|
-
clientY: event.clientY,
|
|
24
|
-
startedOutsideContent: !startedInsideContent
|
|
25
|
-
});
|
|
26
|
-
onZoomPointerDown(event);
|
|
27
|
-
},
|
|
28
|
-
[onZoomPointerDown]
|
|
29
|
-
);
|
|
30
|
-
const handleSlidePointerMove = useCallback(
|
|
31
|
-
(event) => {
|
|
32
|
-
const outsideClosePointer = outsideClosePointerRef.current;
|
|
33
|
-
if (outsideClosePointer && outsideClosePointer.pointerId === event.pointerId) {
|
|
34
|
-
outsideClosePointerRef.current = updateOutsideClosePointerState(
|
|
35
|
-
outsideClosePointer,
|
|
36
|
-
{
|
|
37
|
-
clientX: event.clientX,
|
|
38
|
-
clientY: event.clientY
|
|
39
|
-
}
|
|
40
|
-
);
|
|
41
|
-
}
|
|
42
|
-
onZoomPointerMove(event);
|
|
43
|
-
},
|
|
44
|
-
[onZoomPointerMove]
|
|
45
|
-
);
|
|
46
|
-
const handleSlidePointerUp = useCallback(
|
|
47
|
-
(event) => {
|
|
48
|
-
onZoomPointerEnd(event);
|
|
49
|
-
const outsideClosePointer = outsideClosePointerRef.current;
|
|
50
|
-
if (!outsideClosePointer || outsideClosePointer.pointerId !== event.pointerId) {
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
const finalizedPointer = updateOutsideClosePointerState(
|
|
54
|
-
outsideClosePointer,
|
|
55
|
-
{
|
|
56
|
-
clientX: event.clientX,
|
|
57
|
-
clientY: event.clientY
|
|
58
|
-
}
|
|
59
|
-
);
|
|
60
|
-
outsideClosePointerRef.current = null;
|
|
61
|
-
if (shouldCloseFromOutsidePointerState(finalizedPointer)) {
|
|
62
|
-
onClose();
|
|
63
|
-
}
|
|
64
|
-
},
|
|
65
|
-
[onClose, onZoomPointerEnd]
|
|
66
|
-
);
|
|
67
|
-
const handleSlidePointerCancel = useCallback(
|
|
68
|
-
(event) => {
|
|
69
|
-
outsideClosePointerRef.current = null;
|
|
70
|
-
onZoomPointerEnd(event);
|
|
71
|
-
},
|
|
72
|
-
[onZoomPointerEnd]
|
|
73
|
-
);
|
|
74
|
-
const handleSlideLoadCapture = useCallback(
|
|
75
|
-
(event) => {
|
|
76
|
-
if (event.target instanceof HTMLImageElement) {
|
|
77
|
-
updateCanZoomAvailability();
|
|
78
|
-
}
|
|
79
|
-
},
|
|
80
|
-
[updateCanZoomAvailability]
|
|
81
|
-
);
|
|
82
|
-
return {
|
|
83
|
-
handleSlidePointerDown,
|
|
84
|
-
handleSlidePointerMove,
|
|
85
|
-
handleSlidePointerUp,
|
|
86
|
-
handleSlidePointerCancel,
|
|
87
|
-
handleSlideLoadCapture
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
export { useSlideInteractions };
|
|
92
|
-
//# sourceMappingURL=useSlideInteractions.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
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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"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import useEmblaCarousel from 'embla-carousel-react';
|
|
3
|
-
import { useRef, useState, useCallback, useEffect } from 'react';
|
|
4
|
-
|
|
5
|
-
function useThumbnails(props) {
|
|
6
|
-
const { emblaOptions, thumbnailsEmblaRef, initialIndex } = props;
|
|
7
|
-
const [emblaRef, emblaApi] = useEmblaCarousel(emblaOptions);
|
|
8
|
-
const viewportRef = useRef(null);
|
|
9
|
-
const containerRef = useRef(null);
|
|
10
|
-
const initialIndexRef = useRef(initialIndex);
|
|
11
|
-
const [hasOverflow, setHasOverflow] = useState(false);
|
|
12
|
-
const setViewportRef = useCallback(
|
|
13
|
-
(node) => {
|
|
14
|
-
viewportRef.current = node;
|
|
15
|
-
emblaRef(node);
|
|
16
|
-
},
|
|
17
|
-
[emblaRef]
|
|
18
|
-
);
|
|
19
|
-
useEffect(() => {
|
|
20
|
-
if (!emblaApi) {
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
thumbnailsEmblaRef.current = emblaApi;
|
|
24
|
-
emblaApi.scrollTo(initialIndexRef.current);
|
|
25
|
-
}, [emblaApi, thumbnailsEmblaRef]);
|
|
26
|
-
useEffect(() => {
|
|
27
|
-
const updateOverflow = () => {
|
|
28
|
-
const viewport2 = viewportRef.current;
|
|
29
|
-
const container2 = containerRef.current;
|
|
30
|
-
if (!viewport2 || !container2) {
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
setHasOverflow(container2.scrollWidth > viewport2.clientWidth + 1);
|
|
34
|
-
};
|
|
35
|
-
updateOverflow();
|
|
36
|
-
if (typeof ResizeObserver === "undefined") {
|
|
37
|
-
window.addEventListener("resize", updateOverflow);
|
|
38
|
-
return () => window.removeEventListener("resize", updateOverflow);
|
|
39
|
-
}
|
|
40
|
-
const observer = new ResizeObserver(updateOverflow);
|
|
41
|
-
const viewport = viewportRef.current;
|
|
42
|
-
const container = containerRef.current;
|
|
43
|
-
if (viewport) {
|
|
44
|
-
observer.observe(viewport);
|
|
45
|
-
}
|
|
46
|
-
if (container) {
|
|
47
|
-
observer.observe(container);
|
|
48
|
-
}
|
|
49
|
-
return () => observer.disconnect();
|
|
50
|
-
}, []);
|
|
51
|
-
return {
|
|
52
|
-
setViewportRef,
|
|
53
|
-
containerRef,
|
|
54
|
-
hasOverflow
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
export { useThumbnails };
|
|
59
|
-
//# sourceMappingURL=useThumbnails.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
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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"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
const getBrowserDocument = () => typeof document === "undefined" ? null : document;
|
|
3
|
-
const canToggleBrowserFullscreen = () => {
|
|
4
|
-
const browserDocument = getBrowserDocument();
|
|
5
|
-
return Boolean(
|
|
6
|
-
browserDocument && typeof browserDocument.documentElement.requestFullscreen === "function"
|
|
7
|
-
);
|
|
8
|
-
};
|
|
9
|
-
const isBrowserFullscreen = () => {
|
|
10
|
-
const browserDocument = getBrowserDocument();
|
|
11
|
-
return Boolean(
|
|
12
|
-
browserDocument && browserDocument.fullscreenElement === browserDocument.documentElement
|
|
13
|
-
);
|
|
14
|
-
};
|
|
15
|
-
const toggleBrowserFullscreen = async () => {
|
|
16
|
-
const browserDocument = getBrowserDocument();
|
|
17
|
-
if (!browserDocument || typeof browserDocument.documentElement.requestFullscreen !== "function") {
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
if (browserDocument.fullscreenElement === browserDocument.documentElement) {
|
|
21
|
-
if (typeof browserDocument.exitFullscreen === "function") {
|
|
22
|
-
await browserDocument.exitFullscreen();
|
|
23
|
-
}
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
await browserDocument.documentElement.requestFullscreen();
|
|
27
|
-
};
|
|
28
|
-
const exitBrowserFullscreenIfActive = async () => {
|
|
29
|
-
const browserDocument = getBrowserDocument();
|
|
30
|
-
if (browserDocument && browserDocument.fullscreenElement === browserDocument.documentElement && typeof browserDocument.exitFullscreen === "function") {
|
|
31
|
-
await browserDocument.exitFullscreen();
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
export { canToggleBrowserFullscreen, exitBrowserFullscreenIfActive, isBrowserFullscreen, toggleBrowserFullscreen };
|
|
36
|
-
//# sourceMappingURL=fullscreen.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fullscreen.mjs","sources":["../../../src/utils/fullscreen.ts"],"sourcesContent":["const getBrowserDocument = () =>\n\ttypeof document === \"undefined\" ? null : document;\n\n/**\n * Returns `true` if the browser supports the Fullscreen API and fullscreen\n * can be requested on the document element.\n */\nexport const canToggleBrowserFullscreen = () => {\n\tconst browserDocument = getBrowserDocument();\n\n\treturn Boolean(\n\t\tbrowserDocument &&\n\t\t\ttypeof browserDocument.documentElement.requestFullscreen === \"function\",\n\t);\n};\n\n/**\n * Returns `true` if the document root element is currently in fullscreen mode.\n */\nexport const isBrowserFullscreen = () => {\n\tconst browserDocument = getBrowserDocument();\n\n\treturn Boolean(\n\t\tbrowserDocument &&\n\t\t\tbrowserDocument.fullscreenElement === browserDocument.documentElement,\n\t);\n};\n\n/**\n * Toggles the browser's fullscreen mode on the document root element.\n * Exits fullscreen if it is currently active, otherwise requests it.\n * No-ops in environments where the Fullscreen API is unavailable.\n */\nexport const toggleBrowserFullscreen = async () => {\n\tconst browserDocument = getBrowserDocument();\n\n\tif (\n\t\t!browserDocument ||\n\t\ttypeof browserDocument.documentElement.requestFullscreen !== \"function\"\n\t) {\n\t\treturn;\n\t}\n\n\tif (browserDocument.fullscreenElement === browserDocument.documentElement) {\n\t\tif (typeof browserDocument.exitFullscreen === \"function\") {\n\t\t\tawait browserDocument.exitFullscreen();\n\t\t}\n\n\t\treturn;\n\t}\n\n\tawait browserDocument.documentElement.requestFullscreen();\n};\n\n/**\n * Exits fullscreen only if the document root element currently owns fullscreen.\n * Avoids interfering with other fullscreen targets (e.g. `<video>` elements).\n */\nexport const exitBrowserFullscreenIfActive = async () => {\n\tconst browserDocument = getBrowserDocument();\n\n\tif (\n\t\tbrowserDocument &&\n\t\tbrowserDocument.fullscreenElement === browserDocument.documentElement &&\n\t\ttypeof browserDocument.exitFullscreen === \"function\"\n\t) {\n\t\tawait browserDocument.exitFullscreen();\n\t}\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { GetStylesApi, OverlayProps } from "@mantine/core";
|
|
2
|
-
import type { CSSProperties } from "react";
|
|
3
|
-
import type { UseLightboxOutput } from "./hooks/useLightbox.js";
|
|
4
|
-
import type { LightboxContext } from "./Lightbox.context.js";
|
|
5
|
-
import type { LightboxFactory } from "./Lightbox.js";
|
|
6
|
-
interface BuildLightboxContextValueInput {
|
|
7
|
-
getStyles: GetStylesApi<LightboxFactory>;
|
|
8
|
-
transitionStyles: CSSProperties;
|
|
9
|
-
overlayProps: OverlayProps;
|
|
10
|
-
onClose: () => void;
|
|
11
|
-
withZoom: boolean | undefined;
|
|
12
|
-
lightbox: UseLightboxOutput;
|
|
13
|
-
}
|
|
14
|
-
export declare function buildLightboxContextValue({ getStyles, transitionStyles, overlayProps, onClose, withZoom, lightbox, }: BuildLightboxContextValueInput): LightboxContext;
|
|
15
|
-
export {};
|
|
16
|
-
//# sourceMappingURL=Lightbox.context-value.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Lightbox.context-value.d.ts","sourceRoot":"","sources":["../../src/Lightbox.context-value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD,UAAU,8BAA8B;IACvC,SAAS,EAAE,YAAY,CAAC,eAAe,CAAC,CAAC;IACzC,gBAAgB,EAAE,aAAa,CAAC;IAChC,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,QAAQ,EAAE,iBAAiB,CAAC;CAC5B;AAED,wBAAgB,yBAAyB,CAAC,EACzC,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,QAAQ,GACR,EAAE,8BAA8B,GAAG,eAAe,CAiClD"}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { type GetStylesApi } from "@mantine/core";
|
|
2
|
-
import type { EmblaCarouselType } from "embla-carousel";
|
|
3
|
-
import type { PointerEvent as ReactPointerEvent, RefObject } from "react";
|
|
4
|
-
import type { LightboxFactory } from "./Lightbox.js";
|
|
5
|
-
import type { ZoomOffset } from "./utils/zoom.js";
|
|
6
|
-
export interface LightboxContext {
|
|
7
|
-
getStyles: GetStylesApi<LightboxFactory>;
|
|
8
|
-
opened: boolean;
|
|
9
|
-
currentIndex: number;
|
|
10
|
-
slideCount: number | null;
|
|
11
|
-
slidesEmblaRef: RefObject<EmblaCarouselType | null>;
|
|
12
|
-
thumbnailsEmblaRef: RefObject<EmblaCarouselType | null>;
|
|
13
|
-
setCurrentIndex: (index: number) => void;
|
|
14
|
-
setSlideCount: (count: number | null) => void;
|
|
15
|
-
onClose: () => void;
|
|
16
|
-
onOutsideClick: () => void;
|
|
17
|
-
onThumbnailClick: (index: number) => void;
|
|
18
|
-
onScrollPrev: () => void;
|
|
19
|
-
onScrollNext: () => void;
|
|
20
|
-
orientation: "horizontal" | "vertical";
|
|
21
|
-
withZoom: boolean;
|
|
22
|
-
isZoomed: boolean;
|
|
23
|
-
isZoomedRef: RefObject<boolean>;
|
|
24
|
-
isDraggingZoom: boolean;
|
|
25
|
-
canZoomCurrent: boolean;
|
|
26
|
-
zoomOffset: ZoomOffset;
|
|
27
|
-
zoomScale: number;
|
|
28
|
-
activeZoomContainerRef: RefObject<HTMLDivElement | null>;
|
|
29
|
-
toggleZoom: () => void;
|
|
30
|
-
updateCanZoomAvailability: () => void;
|
|
31
|
-
handleZoomPointerDown: (event: ReactPointerEvent<HTMLDivElement>) => void;
|
|
32
|
-
handleZoomPointerMove: (event: ReactPointerEvent<HTMLDivElement>) => void;
|
|
33
|
-
handleZoomPointerEnd: (event: ReactPointerEvent<HTMLDivElement>) => void;
|
|
34
|
-
}
|
|
35
|
-
export declare const LightboxProvider: ({ children, value }: {
|
|
36
|
-
value: LightboxContext;
|
|
37
|
-
children: React.ReactNode;
|
|
38
|
-
}) => import("react/jsx-runtime").JSX.Element, useLightboxContext: () => LightboxContext;
|
|
39
|
-
//# sourceMappingURL=Lightbox.context.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Lightbox.context.d.ts","sourceRoot":"","sources":["../../src/Lightbox.context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,IAAI,iBAAiB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,WAAW,eAAe;IAC/B,SAAS,EAAE,YAAY,CAAC,eAAe,CAAC,CAAC;IACzC,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,EAAE,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IACpD,kBAAkB,EAAE,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IACxD,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC9C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,WAAW,EAAE,YAAY,GAAG,UAAU,CAAC;IAEvC,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAChC,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACzD,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,yBAAyB,EAAE,MAAM,IAAI,CAAC;IACtC,qBAAqB,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IAC1E,qBAAqB,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IAC1E,oBAAoB,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;CACzE;AAED,eAAO,MAAO,gBAAgB;;;+CAAE,kBAAkB,uBAGhD,CAAC"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
export declare const LIGHTBOX_DEFAULT_PROPS: {
|
|
2
|
-
readonly closeOnClickOutside: true;
|
|
3
|
-
readonly keepMounted: false;
|
|
4
|
-
readonly trapFocus: true;
|
|
5
|
-
readonly lockScroll: true;
|
|
6
|
-
readonly returnFocus: true;
|
|
7
|
-
readonly withinPortal: true;
|
|
8
|
-
readonly controlSize: 36;
|
|
9
|
-
readonly carouselOptions: {};
|
|
10
|
-
readonly thumbnailCarouselOptions: {
|
|
11
|
-
readonly dragFree: true;
|
|
12
|
-
};
|
|
13
|
-
readonly overlayProps: {
|
|
14
|
-
readonly fixed: true;
|
|
15
|
-
readonly backgroundOpacity: 0.9;
|
|
16
|
-
readonly color: "#18181B";
|
|
17
|
-
readonly zIndex: 200;
|
|
18
|
-
};
|
|
19
|
-
readonly transitionProps: {
|
|
20
|
-
readonly transition: "fade";
|
|
21
|
-
readonly duration: 250;
|
|
22
|
-
};
|
|
23
|
-
};
|
|
24
|
-
//# sourceMappingURL=Lightbox.defaults.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Lightbox.defaults.d.ts","sourceRoot":"","sources":["../../src/Lightbox.defaults.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;CAsBzB,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
declare const _default: {
|
|
2
|
-
title: string;
|
|
3
|
-
};
|
|
4
|
-
export default _default;
|
|
5
|
-
export declare const Default: () => import("react/jsx-runtime").JSX.Element;
|
|
6
|
-
export declare const WithLoop: () => import("react/jsx-runtime").JSX.Element;
|
|
7
|
-
export declare const WithCustomCounter: () => import("react/jsx-runtime").JSX.Element;
|
|
8
|
-
export declare const Vertical: () => import("react/jsx-runtime").JSX.Element;
|
|
9
|
-
export declare const WithAutoplay: () => import("react/jsx-runtime").JSX.Element;
|
|
10
|
-
//# sourceMappingURL=Lightbox.story.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Lightbox.story.d.ts","sourceRoot":"","sources":["../../src/Lightbox.story.tsx"],"names":[],"mappings":";;;AAWA,wBAAqC;AAgErC,eAAO,MAAM,OAAO,+CAenB,CAAC;AAEF,eAAO,MAAM,QAAQ,+CAiBpB,CAAC;AAEF,eAAO,MAAM,iBAAiB,+CAe7B,CAAC;AAEF,eAAO,MAAM,QAAQ,+CAepB,CAAC;AAEF,eAAO,MAAM,YAAY,+CAwBxB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Lightbox.test.d.ts","sourceRoot":"","sources":["../../src/Lightbox.test.tsx"],"names":[],"mappings":""}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export interface LightboxSlideContext {
|
|
2
|
-
index: number;
|
|
3
|
-
}
|
|
4
|
-
export declare const LightboxSlideProvider: ({ children, value }: {
|
|
5
|
-
value: LightboxSlideContext;
|
|
6
|
-
children: React.ReactNode;
|
|
7
|
-
}) => import("react/jsx-runtime").JSX.Element, useLightboxSlideContext: () => LightboxSlideContext;
|
|
8
|
-
//# sourceMappingURL=LightboxSlide.context.d.ts.map
|