yet-another-react-lightbox 3.5.4 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. package/README.md +3 -3
  2. package/dist/index.d.ts +240 -4
  3. package/dist/index.js +1368 -4
  4. package/dist/plugins/captions/captions.css +1 -33
  5. package/dist/plugins/captions/captions.css.d.ts +2 -0
  6. package/dist/plugins/captions/index.d.ts +8 -4
  7. package/dist/plugins/captions/index.js +104 -3
  8. package/dist/plugins/counter/counter.css +1 -16
  9. package/dist/plugins/counter/counter.css.d.ts +2 -0
  10. package/dist/plugins/counter/index.d.ts +8 -3
  11. package/dist/plugins/counter/index.js +18 -2
  12. package/dist/plugins/download/index.d.ts +6 -3
  13. package/dist/plugins/download/index.js +90 -3
  14. package/dist/plugins/fullscreen/index.d.ts +8 -4
  15. package/dist/plugins/fullscreen/index.js +128 -3
  16. package/dist/plugins/index.d.ts +9 -9
  17. package/dist/plugins/index.js +9 -9
  18. package/dist/plugins/inline/index.d.ts +8 -3
  19. package/dist/plugins/inline/index.js +26 -2
  20. package/dist/plugins/slideshow/index.d.ts +8 -4
  21. package/dist/plugins/slideshow/index.js +113 -3
  22. package/dist/plugins/thumbnails/index.d.ts +7 -4
  23. package/dist/plugins/thumbnails/index.js +261 -3
  24. package/dist/plugins/thumbnails/thumbnails.css +1 -139
  25. package/dist/plugins/thumbnails/thumbnails.css.d.ts +2 -0
  26. package/dist/plugins/video/index.d.ts +7 -2
  27. package/dist/plugins/video/index.js +109 -2
  28. package/dist/plugins/zoom/index.d.ts +7 -4
  29. package/dist/plugins/zoom/index.js +500 -3
  30. package/dist/styles.css +1 -281
  31. package/dist/styles.css.d.ts +2 -0
  32. package/dist/types.d.ts +125 -47
  33. package/dist/types.js +51 -1
  34. package/package.json +34 -10
  35. package/dist/Lightbox.d.ts +0 -4
  36. package/dist/Lightbox.js +0 -46
  37. package/dist/core/components/IconButton.d.ts +0 -7
  38. package/dist/core/components/IconButton.js +0 -8
  39. package/dist/core/components/Icons.d.ts +0 -29
  40. package/dist/core/components/Icons.js +0 -27
  41. package/dist/core/components/ImageSlide.d.ts +0 -13
  42. package/dist/core/components/ImageSlide.js +0 -68
  43. package/dist/core/components/index.d.ts +0 -3
  44. package/dist/core/components/index.js +0 -3
  45. package/dist/core/config.d.ts +0 -7
  46. package/dist/core/config.js +0 -93
  47. package/dist/core/consts.d.ts +0 -50
  48. package/dist/core/consts.js +0 -49
  49. package/dist/core/contexts/Events.d.ts +0 -17
  50. package/dist/core/contexts/Events.js +0 -29
  51. package/dist/core/contexts/LightboxProps.d.ts +0 -6
  52. package/dist/core/contexts/LightboxProps.js +0 -7
  53. package/dist/core/contexts/LightboxState.d.ts +0 -27
  54. package/dist/core/contexts/LightboxState.js +0 -49
  55. package/dist/core/contexts/Timeouts.d.ts +0 -8
  56. package/dist/core/contexts/Timeouts.js +0 -32
  57. package/dist/core/contexts/index.d.ts +0 -4
  58. package/dist/core/contexts/index.js +0 -4
  59. package/dist/core/hooks/index.d.ts +0 -11
  60. package/dist/core/hooks/index.js +0 -11
  61. package/dist/core/hooks/useAnimation.d.ts +0 -15
  62. package/dist/core/hooks/useAnimation.js +0 -57
  63. package/dist/core/hooks/useContainerRect.d.ts +0 -7
  64. package/dist/core/hooks/useContainerRect.js +0 -36
  65. package/dist/core/hooks/useDelay.d.ts +0 -1
  66. package/dist/core/hooks/useDelay.js +0 -10
  67. package/dist/core/hooks/useEventCallback.d.ts +0 -1
  68. package/dist/core/hooks/useEventCallback.js +0 -9
  69. package/dist/core/hooks/useForkRef.d.ts +0 -3
  70. package/dist/core/hooks/useForkRef.js +0 -17
  71. package/dist/core/hooks/useLayoutEffect.d.ts +0 -2
  72. package/dist/core/hooks/useLayoutEffect.js +0 -3
  73. package/dist/core/hooks/useLoseFocus.d.ts +0 -4
  74. package/dist/core/hooks/useLoseFocus.js +0 -19
  75. package/dist/core/hooks/useMotionPreference.d.ts +0 -1
  76. package/dist/core/hooks/useMotionPreference.js +0 -13
  77. package/dist/core/hooks/useRTL.d.ts +0 -1
  78. package/dist/core/hooks/useRTL.js +0 -9
  79. package/dist/core/hooks/useSensors.d.ts +0 -14
  80. package/dist/core/hooks/useSensors.js +0 -38
  81. package/dist/core/hooks/useThrottle.d.ts +0 -1
  82. package/dist/core/hooks/useThrottle.js +0 -16
  83. package/dist/core/index.d.ts +0 -7
  84. package/dist/core/index.js +0 -7
  85. package/dist/core/modules/Carousel.d.ts +0 -4
  86. package/dist/core/modules/Carousel.js +0 -72
  87. package/dist/core/modules/Controller.d.ts +0 -31
  88. package/dist/core/modules/Controller.js +0 -215
  89. package/dist/core/modules/Navigation.d.ts +0 -13
  90. package/dist/core/modules/Navigation.js +0 -35
  91. package/dist/core/modules/NoScroll.d.ts +0 -4
  92. package/dist/core/modules/NoScroll.js +0 -52
  93. package/dist/core/modules/Portal.d.ts +0 -4
  94. package/dist/core/modules/Portal.js +0 -92
  95. package/dist/core/modules/Root.d.ts +0 -4
  96. package/dist/core/modules/Root.js +0 -7
  97. package/dist/core/modules/Toolbar.d.ts +0 -4
  98. package/dist/core/modules/Toolbar.js +0 -25
  99. package/dist/core/modules/controller/index.d.ts +0 -8
  100. package/dist/core/modules/controller/index.js +0 -9
  101. package/dist/core/modules/controller/usePointerSwipe.d.ts +0 -2
  102. package/dist/core/modules/controller/usePointerSwipe.js +0 -72
  103. package/dist/core/modules/controller/usePreventSwipeNavigation.d.ts +0 -3
  104. package/dist/core/modules/controller/usePreventSwipeNavigation.js +0 -20
  105. package/dist/core/modules/controller/useWheelSwipe.d.ts +0 -3
  106. package/dist/core/modules/controller/useWheelSwipe.js +0 -92
  107. package/dist/core/modules/index.d.ts +0 -7
  108. package/dist/core/modules/index.js +0 -7
  109. package/dist/core/utils.d.ts +0 -36
  110. package/dist/core/utils.js +0 -70
  111. package/dist/plugins/captions/Captions.d.ts +0 -3
  112. package/dist/plugins/captions/Captions.js +0 -25
  113. package/dist/plugins/captions/CaptionsButton.d.ts +0 -2
  114. package/dist/plugins/captions/CaptionsButton.js +0 -16
  115. package/dist/plugins/captions/CaptionsContext.d.ts +0 -5
  116. package/dist/plugins/captions/CaptionsContext.js +0 -16
  117. package/dist/plugins/captions/Description.d.ts +0 -4
  118. package/dist/plugins/captions/Description.js +0 -27
  119. package/dist/plugins/captions/Title.d.ts +0 -4
  120. package/dist/plugins/captions/Title.js +0 -16
  121. package/dist/plugins/captions/props.d.ts +0 -19
  122. package/dist/plugins/captions/props.js +0 -14
  123. package/dist/plugins/captions/utils.d.ts +0 -1
  124. package/dist/plugins/captions/utils.js +0 -2
  125. package/dist/plugins/counter/Counter.d.ts +0 -5
  126. package/dist/plugins/counter/Counter.js +0 -14
  127. package/dist/plugins/download/Download.d.ts +0 -2
  128. package/dist/plugins/download/Download.js +0 -9
  129. package/dist/plugins/download/DownloadButton.d.ts +0 -2
  130. package/dist/plugins/download/DownloadButton.js +0 -19
  131. package/dist/plugins/download/FileSaver.d.ts +0 -1
  132. package/dist/plugins/download/FileSaver.js +0 -60
  133. package/dist/plugins/fullscreen/Fullscreen.d.ts +0 -3
  134. package/dist/plugins/fullscreen/Fullscreen.js +0 -13
  135. package/dist/plugins/fullscreen/FullscreenButton.d.ts +0 -3
  136. package/dist/plugins/fullscreen/FullscreenButton.js +0 -16
  137. package/dist/plugins/fullscreen/FullscreenContext.d.ts +0 -5
  138. package/dist/plugins/fullscreen/FullscreenContext.js +0 -93
  139. package/dist/plugins/fullscreen/props.d.ts +0 -10
  140. package/dist/plugins/fullscreen/props.js +0 -8
  141. package/dist/plugins/inline/Inline.d.ts +0 -3
  142. package/dist/plugins/inline/Inline.js +0 -18
  143. package/dist/plugins/inline/InlineContainer.d.ts +0 -4
  144. package/dist/plugins/inline/InlineContainer.js +0 -5
  145. package/dist/plugins/slideshow/Slideshow.d.ts +0 -3
  146. package/dist/plugins/slideshow/Slideshow.js +0 -13
  147. package/dist/plugins/slideshow/SlideshowButton.d.ts +0 -2
  148. package/dist/plugins/slideshow/SlideshowButton.js +0 -14
  149. package/dist/plugins/slideshow/SlideshowContext.d.ts +0 -5
  150. package/dist/plugins/slideshow/SlideshowContext.js +0 -79
  151. package/dist/plugins/slideshow/props.d.ts +0 -12
  152. package/dist/plugins/slideshow/props.js +0 -9
  153. package/dist/plugins/thumbnails/Thumbnail.d.ts +0 -15
  154. package/dist/plugins/thumbnails/Thumbnail.js +0 -51
  155. package/dist/plugins/thumbnails/Thumbnails.d.ts +0 -3
  156. package/dist/plugins/thumbnails/Thumbnails.js +0 -22
  157. package/dist/plugins/thumbnails/ThumbnailsButton.d.ts +0 -2
  158. package/dist/plugins/thumbnails/ThumbnailsButton.js +0 -16
  159. package/dist/plugins/thumbnails/ThumbnailsContext.d.ts +0 -6
  160. package/dist/plugins/thumbnails/ThumbnailsContext.js +0 -24
  161. package/dist/plugins/thumbnails/ThumbnailsTrack.d.ts +0 -5
  162. package/dist/plugins/thumbnails/ThumbnailsTrack.js +0 -141
  163. package/dist/plugins/thumbnails/props.d.ts +0 -40
  164. package/dist/plugins/thumbnails/props.js +0 -21
  165. package/dist/plugins/thumbnails/utils.d.ts +0 -2
  166. package/dist/plugins/thumbnails/utils.js +0 -4
  167. package/dist/plugins/video/Video.d.ts +0 -3
  168. package/dist/plugins/video/Video.js +0 -21
  169. package/dist/plugins/video/VideoSlide.d.ts +0 -8
  170. package/dist/plugins/video/VideoSlide.js +0 -74
  171. package/dist/plugins/video/props.d.ts +0 -29
  172. package/dist/plugins/video/props.js +0 -13
  173. package/dist/plugins/zoom/ResponsiveImage.d.ts +0 -11
  174. package/dist/plugins/zoom/ResponsiveImage.js +0 -58
  175. package/dist/plugins/zoom/Zoom.d.ts +0 -3
  176. package/dist/plugins/zoom/Zoom.js +0 -18
  177. package/dist/plugins/zoom/ZoomButton.d.ts +0 -8
  178. package/dist/plugins/zoom/ZoomButton.js +0 -27
  179. package/dist/plugins/zoom/ZoomButtonsGroup.d.ts +0 -2
  180. package/dist/plugins/zoom/ZoomButtonsGroup.js +0 -22
  181. package/dist/plugins/zoom/ZoomController.d.ts +0 -12
  182. package/dist/plugins/zoom/ZoomController.js +0 -17
  183. package/dist/plugins/zoom/ZoomToolbarControl.d.ts +0 -2
  184. package/dist/plugins/zoom/ZoomToolbarControl.js +0 -12
  185. package/dist/plugins/zoom/ZoomWrapper.d.ts +0 -5
  186. package/dist/plugins/zoom/ZoomWrapper.js +0 -36
  187. package/dist/plugins/zoom/hooks/index.d.ts +0 -6
  188. package/dist/plugins/zoom/hooks/index.js +0 -6
  189. package/dist/plugins/zoom/hooks/useZoomAnimation.d.ts +0 -2
  190. package/dist/plugins/zoom/hooks/useZoomAnimation.js +0 -39
  191. package/dist/plugins/zoom/hooks/useZoomCallback.d.ts +0 -1
  192. package/dist/plugins/zoom/hooks/useZoomCallback.js +0 -12
  193. package/dist/plugins/zoom/hooks/useZoomImageRect.d.ts +0 -5
  194. package/dist/plugins/zoom/hooks/useZoomImageRect.js +0 -41
  195. package/dist/plugins/zoom/hooks/useZoomProps.d.ts +0 -13
  196. package/dist/plugins/zoom/hooks/useZoomProps.js +0 -6
  197. package/dist/plugins/zoom/hooks/useZoomSensors.d.ts +0 -3
  198. package/dist/plugins/zoom/hooks/useZoomSensors.js +0 -154
  199. package/dist/plugins/zoom/hooks/useZoomState.d.ts +0 -12
  200. package/dist/plugins/zoom/hooks/useZoomState.js +0 -63
  201. package/dist/plugins/zoom/props.d.ts +0 -25
  202. package/dist/plugins/zoom/props.js +0 -15
  203. package/dist/props.d.ts +0 -2
  204. package/dist/props.js +0 -38
@@ -1,3 +1,113 @@
1
- import { PLUGIN_SLIDESHOW } from "../../core/index.js";
2
- import { Slideshow } from "./Slideshow.js";
3
- export default Slideshow;
1
+ import { makeUseContext, useLightboxState, useTimeouts, useEvents, useController, useEventCallback, cleanup, createIcon, useLightboxProps, useLoseFocus, IconButton, addToolbarButton, createModule } from '../../index.js';
2
+ import * as React from 'react';
3
+ import { SLIDE_STATUS_LOADING, SLIDE_STATUS_PLAYING, ACTIVE_SLIDE_LOADING, ACTIVE_SLIDE_PLAYING, ACTIVE_SLIDE_ERROR, SLIDE_STATUS_ERROR, ACTIVE_SLIDE_COMPLETE, SLIDE_STATUS_COMPLETE, PLUGIN_SLIDESHOW } from '../../types.js';
4
+
5
+ const defaultSlideshowProps = {
6
+ autoplay: false,
7
+ delay: 3000,
8
+ ref: null,
9
+ };
10
+ const resolveSlideshowProps = (slideshow) => ({
11
+ ...defaultSlideshowProps,
12
+ ...slideshow,
13
+ });
14
+
15
+ const SlideshowContext = React.createContext(null);
16
+ const useSlideshow = makeUseContext("useSlideshow", "SlideshowContext", SlideshowContext);
17
+ function SlideshowContextProvider({ slideshow, carousel: { finite }, on, children }) {
18
+ const { autoplay, delay, ref } = resolveSlideshowProps(slideshow);
19
+ const wasPlaying = React.useRef(autoplay);
20
+ const [playing, setPlaying] = React.useState(autoplay);
21
+ const scheduler = React.useRef();
22
+ const slideStatus = React.useRef();
23
+ const { slides, currentIndex } = useLightboxState();
24
+ const { setTimeout, clearTimeout } = useTimeouts();
25
+ const { subscribe } = useEvents();
26
+ const { next } = useController();
27
+ const disabled = slides.length === 0 || (finite && currentIndex === slides.length - 1);
28
+ const play = React.useCallback(() => {
29
+ if (!playing && !disabled) {
30
+ setPlaying(true);
31
+ }
32
+ }, [playing, disabled]);
33
+ const pause = React.useCallback(() => {
34
+ if (playing) {
35
+ setPlaying(false);
36
+ }
37
+ }, [playing]);
38
+ const cancelScheduler = React.useCallback(() => {
39
+ clearTimeout(scheduler.current);
40
+ scheduler.current = undefined;
41
+ }, [clearTimeout]);
42
+ const scheduleNextSlide = useEventCallback(() => {
43
+ cancelScheduler();
44
+ if (!playing ||
45
+ disabled ||
46
+ slideStatus.current === SLIDE_STATUS_LOADING ||
47
+ slideStatus.current === SLIDE_STATUS_PLAYING) {
48
+ return;
49
+ }
50
+ scheduler.current = setTimeout(() => {
51
+ if (playing) {
52
+ slideStatus.current = undefined;
53
+ next();
54
+ }
55
+ }, delay);
56
+ });
57
+ React.useEffect(scheduleNextSlide, [currentIndex, playing, scheduleNextSlide]);
58
+ React.useEffect(() => {
59
+ if (playing && disabled) {
60
+ setPlaying(false);
61
+ }
62
+ }, [currentIndex, playing, disabled]);
63
+ const onSlideshowStart = useEventCallback(() => { var _a; return (_a = on.slideshowStart) === null || _a === void 0 ? void 0 : _a.call(on); });
64
+ const onSlideshowStop = useEventCallback(() => { var _a; return (_a = on.slideshowStop) === null || _a === void 0 ? void 0 : _a.call(on); });
65
+ React.useEffect(() => {
66
+ if (playing) {
67
+ onSlideshowStart();
68
+ }
69
+ else if (wasPlaying.current) {
70
+ onSlideshowStop();
71
+ }
72
+ wasPlaying.current = playing;
73
+ }, [playing, onSlideshowStart, onSlideshowStop]);
74
+ React.useEffect(() => cleanup(cancelScheduler, subscribe(ACTIVE_SLIDE_LOADING, () => {
75
+ slideStatus.current = SLIDE_STATUS_LOADING;
76
+ cancelScheduler();
77
+ }), subscribe(ACTIVE_SLIDE_PLAYING, () => {
78
+ slideStatus.current = SLIDE_STATUS_PLAYING;
79
+ cancelScheduler();
80
+ }), subscribe(ACTIVE_SLIDE_ERROR, () => {
81
+ slideStatus.current = SLIDE_STATUS_ERROR;
82
+ scheduleNextSlide();
83
+ }), subscribe(ACTIVE_SLIDE_COMPLETE, () => {
84
+ slideStatus.current = SLIDE_STATUS_COMPLETE;
85
+ scheduleNextSlide();
86
+ })), [subscribe, cancelScheduler, scheduleNextSlide]);
87
+ const context = React.useMemo(() => ({ playing, disabled, play, pause }), [playing, disabled, play, pause]);
88
+ React.useImperativeHandle(ref, () => context, [context]);
89
+ return React.createElement(SlideshowContext.Provider, { value: context }, children);
90
+ }
91
+
92
+ const PlayIcon = createIcon("Play", React.createElement("path", { d: "M8 5v14l11-7z" }));
93
+ const PauseIcon = createIcon("Pause", React.createElement("path", { d: "M6 19h4V5H6v14zm8-14v14h4V5h-4z" }));
94
+ function SlideshowButton() {
95
+ const { playing, disabled, play, pause } = useSlideshow();
96
+ const { render } = useLightboxProps();
97
+ const focusListeners = useLoseFocus(useController().focus, disabled);
98
+ if (render.buttonSlideshow) {
99
+ return React.createElement(React.Fragment, null, render.buttonSlideshow({ playing, disabled, play, pause }));
100
+ }
101
+ return (React.createElement(IconButton, { label: playing ? "Pause" : "Play", icon: playing ? PauseIcon : PlayIcon, renderIcon: playing ? render.iconSlideshowPause : render.iconSlideshowPlay, onClick: playing ? pause : play, disabled: disabled, ...focusListeners }));
102
+ }
103
+
104
+ function Slideshow({ augment, addModule }) {
105
+ augment(({ slideshow, toolbar, ...restProps }) => ({
106
+ toolbar: addToolbarButton(toolbar, PLUGIN_SLIDESHOW, React.createElement(SlideshowButton, null)),
107
+ slideshow: resolveSlideshowProps(slideshow),
108
+ ...restProps,
109
+ }));
110
+ addModule(createModule(PLUGIN_SLIDESHOW, SlideshowContextProvider));
111
+ }
112
+
113
+ export { Slideshow as default };
@@ -1,6 +1,8 @@
1
- /// <reference types="react" />
2
- import { PLUGIN_THUMBNAILS } from "../../core/index.js";
3
- import { Thumbnails } from "./Thumbnails.js";
1
+ import { PluginProps, PLUGIN_THUMBNAILS } from '../../types.js';
2
+
3
+ /** Thumbnails plugin */
4
+ declare function Thumbnails({ augment, contains, append, addParent }: PluginProps): void;
5
+
4
6
  type Position = "top" | "bottom" | "start" | "end";
5
7
  declare module "../../types.js" {
6
8
  interface LightboxProps {
@@ -68,4 +70,5 @@ declare module "../../types.js" {
68
70
  hide: Callback;
69
71
  }
70
72
  }
71
- export default Thumbnails;
73
+
74
+ export { Thumbnails as default };
@@ -1,3 +1,261 @@
1
- import { PLUGIN_THUMBNAILS } from "../../core/index.js";
2
- import { Thumbnails } from "./Thumbnails.js";
3
- export default Thumbnails;
1
+ import { useLightboxProps, composePrefix, createIcon, cssClass, isImageSlide, clsx, ImageSlide, makeComposePrefix, cssVar, useLightboxState, useEvents, useRTL, useAnimation, useEventCallback, cleanup, hasSlides, getSlide, makeUseContext, LightboxPropsProvider, createIconDisabled, IconButton, addToolbarButton, createModule } from '../../index.js';
2
+ import * as React from 'react';
3
+ import { PLUGIN_THUMBNAILS, ELEMENT_ICON, CLASS_FULLSIZE, CLASS_FLEX_CENTER, ACTION_SWIPE, ACTION_NEXT, ACTION_PREV, PLUGIN_FULLSCREEN, MODULE_CONTROLLER } from '../../types.js';
4
+
5
+ const defaultThumbnailsProps = {
6
+ ref: null,
7
+ position: "bottom",
8
+ width: 120,
9
+ height: 80,
10
+ border: 1,
11
+ borderRadius: 4,
12
+ padding: 4,
13
+ gap: 16,
14
+ imageFit: "contain",
15
+ vignette: true,
16
+ };
17
+ const resolveThumbnailsProps = (thumbnails) => ({
18
+ ...defaultThumbnailsProps,
19
+ ...thumbnails,
20
+ });
21
+ function useThumbnailsProps() {
22
+ const { thumbnails } = useLightboxProps();
23
+ return resolveThumbnailsProps(thumbnails);
24
+ }
25
+
26
+ const cssPrefix = (value) => composePrefix(PLUGIN_THUMBNAILS, value);
27
+ const cssThumbnailPrefix = (value) => cssPrefix(composePrefix("thumbnail", value));
28
+
29
+ const VideoThumbnailIcon = createIcon("VideoThumbnail", React.createElement("path", { d: "M10 16.5l6-4.5-6-4.5v9zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z" }));
30
+ const UnknownThumbnailIcon = createIcon("UnknownThumbnail", React.createElement("path", { d: "M23 18V6c0-1.1-.9-2-2-2H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2zM8.5 12.5l2.5 3.01L14.5 11l4.5 6H5l3.5-4.5z" }));
31
+ function renderThumbnail({ slide, render, rect, imageFit }) {
32
+ var _a;
33
+ const customThumbnail = (_a = render.thumbnail) === null || _a === void 0 ? void 0 : _a.call(render, { slide, render, rect, imageFit });
34
+ if (customThumbnail) {
35
+ return customThumbnail;
36
+ }
37
+ const thumbnailIconClass = cssClass(cssThumbnailPrefix(ELEMENT_ICON));
38
+ if (!isImageSlide(slide)) {
39
+ if (slide.type === "video") {
40
+ return (React.createElement(React.Fragment, null,
41
+ "poster" in slide && (React.createElement("img", { alt: "", src: slide.poster, className: clsx(cssClass(CLASS_FULLSIZE), cssClass(cssPrefix("contain_image"))) })),
42
+ React.createElement(VideoThumbnailIcon, { className: thumbnailIconClass })));
43
+ }
44
+ }
45
+ else {
46
+ return React.createElement(ImageSlide, { slide: slide, render: render, rect: rect, imageFit: imageFit });
47
+ }
48
+ return React.createElement(UnknownThumbnailIcon, { className: thumbnailIconClass });
49
+ }
50
+ const activePrefix = makeComposePrefix("active");
51
+ const fadeInPrefix = makeComposePrefix("fadein");
52
+ const fadeOutPrefix = makeComposePrefix("fadeout");
53
+ const placeholderPrefix = makeComposePrefix("placeholder");
54
+ const DELAY = "delay";
55
+ const DURATION = "duration";
56
+ function Thumbnail({ slide, onClick, active, fadeIn, fadeOut, placeholder }) {
57
+ const { render, styles } = useLightboxProps();
58
+ const { width, height, imageFit } = useThumbnailsProps();
59
+ const rect = { width, height };
60
+ return (React.createElement("button", { type: "button", className: clsx(cssClass(CLASS_FLEX_CENTER), cssClass(cssThumbnailPrefix()), active && cssClass(cssThumbnailPrefix(activePrefix())), fadeIn && cssClass(cssThumbnailPrefix(fadeInPrefix())), fadeOut && cssClass(cssThumbnailPrefix(fadeOutPrefix())), placeholder && cssClass(cssThumbnailPrefix(placeholderPrefix()))), style: {
61
+ ...(fadeIn
62
+ ? {
63
+ [cssVar(cssThumbnailPrefix(fadeInPrefix(DURATION)))]: `${fadeIn.duration}ms`,
64
+ [cssVar(cssThumbnailPrefix(fadeInPrefix(DELAY)))]: `${fadeIn.delay}ms`,
65
+ }
66
+ : null),
67
+ ...(fadeOut
68
+ ? {
69
+ [cssVar(cssThumbnailPrefix(fadeOutPrefix(DURATION)))]: `${fadeOut.duration}ms`,
70
+ [cssVar(cssThumbnailPrefix(fadeOutPrefix(DELAY)))]: `${fadeOut.delay}ms`,
71
+ }
72
+ : null),
73
+ ...styles.thumbnail,
74
+ }, onClick: onClick }, slide && renderThumbnail({ slide, render, rect, imageFit })));
75
+ }
76
+
77
+ function isHorizontal(position) {
78
+ return ["top", "bottom"].includes(position);
79
+ }
80
+ function boxSize(thumbnails, dimension, includeGap) {
81
+ return dimension + 2 * (thumbnails.border + thumbnails.padding) + (includeGap ? thumbnails.gap : 0);
82
+ }
83
+ function ThumbnailsTrack({ visible, containerRef }) {
84
+ const track = React.useRef(null);
85
+ const { carousel, styles } = useLightboxProps();
86
+ const { slides, globalIndex, animation } = useLightboxState();
87
+ const { publish, subscribe } = useEvents();
88
+ const isRTL = useRTL();
89
+ const thumbnails = useThumbnailsProps();
90
+ const { position, width, height, border, borderRadius, padding, gap, vignette } = thumbnails;
91
+ const index = globalIndex;
92
+ const animationDuration = (animation === null || animation === void 0 ? void 0 : animation.duration) || 0;
93
+ const offset = (animationDuration > 0 && (animation === null || animation === void 0 ? void 0 : animation.increment)) || 0;
94
+ const { prepareAnimation } = useAnimation(track, (snapshot) => ({
95
+ keyframes: isHorizontal(position)
96
+ ? [
97
+ {
98
+ transform: `translateX(${(isRTL ? -1 : 1) * boxSize(thumbnails, width, true) * offset + snapshot}px)`,
99
+ },
100
+ { transform: "translateX(0)" },
101
+ ]
102
+ : [
103
+ {
104
+ transform: `translateY(${boxSize(thumbnails, height, true) * offset + snapshot}px)`,
105
+ },
106
+ { transform: "translateY(0)" },
107
+ ],
108
+ duration: animationDuration,
109
+ easing: animation === null || animation === void 0 ? void 0 : animation.easing,
110
+ }));
111
+ const handleControllerSwipe = useEventCallback(() => {
112
+ let animationOffset = 0;
113
+ if (containerRef.current && track.current) {
114
+ const containerRect = containerRef.current.getBoundingClientRect();
115
+ const trackRect = track.current.getBoundingClientRect();
116
+ animationOffset = isHorizontal(position)
117
+ ? trackRect.left - containerRect.left - (containerRect.width - trackRect.width) / 2
118
+ : trackRect.top - containerRect.top - (containerRect.height - trackRect.height) / 2;
119
+ }
120
+ prepareAnimation(animationOffset);
121
+ });
122
+ React.useEffect(() => cleanup(subscribe(ACTION_SWIPE, handleControllerSwipe)), [subscribe, handleControllerSwipe]);
123
+ const { finite } = carousel;
124
+ const preload = Math.max(Math.min(carousel.preload, slides.length - 1), 0);
125
+ const items = [];
126
+ if (hasSlides(slides)) {
127
+ if (offset < 0) {
128
+ for (let i = index - preload + offset; i < index - preload; i += 1) {
129
+ items.push({ slide: null, index: i, placeholder: true });
130
+ }
131
+ }
132
+ for (let i = index - preload - (offset > 0 ? offset : 0); i < index; i += 1) {
133
+ if (!(finite && i < 0)) {
134
+ items.push({ slide: getSlide(slides, i), index: i });
135
+ }
136
+ else {
137
+ items.push({ slide: null, index: i, placeholder: true });
138
+ }
139
+ }
140
+ items.push({ slide: getSlide(slides, index), index });
141
+ for (let i = index + 1; i <= index + preload - (offset < 0 ? offset : 0); i += 1) {
142
+ if (!finite || i <= slides.length - 1) {
143
+ items.push({ slide: getSlide(slides, i), index: i });
144
+ }
145
+ else {
146
+ items.push({ slide: null, index: i, placeholder: true });
147
+ }
148
+ }
149
+ if (offset > 0) {
150
+ for (let i = index + preload + 1; i <= index + preload + offset; i += 1) {
151
+ items.push({ slide: null, index: i, placeholder: true });
152
+ }
153
+ }
154
+ }
155
+ const handleClick = (slideIndex) => () => {
156
+ if (slideIndex > index) {
157
+ publish(ACTION_NEXT, { count: slideIndex - index });
158
+ }
159
+ else if (slideIndex < index) {
160
+ publish(ACTION_PREV, { count: index - slideIndex });
161
+ }
162
+ };
163
+ return (React.createElement("div", { className: clsx(cssClass(cssPrefix("container")), cssClass(CLASS_FLEX_CENTER)), style: {
164
+ ...(!visible ? { display: "none" } : null),
165
+ ...(width !== defaultThumbnailsProps.width
166
+ ? { [cssVar(cssThumbnailPrefix("width"))]: `${boxSize(thumbnails, width)}px` }
167
+ : null),
168
+ ...(height !== defaultThumbnailsProps.height
169
+ ? { [cssVar(cssThumbnailPrefix("height"))]: `${boxSize(thumbnails, height)}px` }
170
+ : null),
171
+ ...(border !== defaultThumbnailsProps.border
172
+ ? { [cssVar(cssThumbnailPrefix("border"))]: `${border}px` }
173
+ : null),
174
+ ...(borderRadius !== defaultThumbnailsProps.borderRadius
175
+ ? { [cssVar(cssThumbnailPrefix("border_radius"))]: `${borderRadius}px` }
176
+ : null),
177
+ ...(padding !== defaultThumbnailsProps.padding
178
+ ? { [cssVar(cssThumbnailPrefix("padding"))]: `${padding}px` }
179
+ : null),
180
+ ...(gap !== defaultThumbnailsProps.gap ? { [cssVar(cssThumbnailPrefix("gap"))]: `${gap}px` } : null),
181
+ ...styles.thumbnailsContainer,
182
+ } },
183
+ React.createElement("nav", { ref: track, style: styles.thumbnailsTrack, className: clsx(cssClass(cssPrefix("track")), cssClass(CLASS_FLEX_CENTER)) }, items.map(({ slide, index: slideIndex, placeholder }) => {
184
+ const fadeAnimationDuration = animationDuration / Math.abs(offset || 1);
185
+ const fadeIn = (offset > 0 && slideIndex > index + preload - offset && slideIndex <= index + preload) ||
186
+ (offset < 0 && slideIndex < index - preload - offset && slideIndex >= index - preload)
187
+ ? {
188
+ duration: fadeAnimationDuration,
189
+ delay: ((offset > 0
190
+ ? slideIndex - (index + preload - offset)
191
+ : index - preload - offset - slideIndex) -
192
+ 1) *
193
+ fadeAnimationDuration,
194
+ }
195
+ : undefined;
196
+ const fadeOut = (offset > 0 && slideIndex < index - preload) || (offset < 0 && slideIndex > index + preload)
197
+ ? {
198
+ duration: fadeAnimationDuration,
199
+ delay: (offset > 0
200
+ ? offset - (index - preload - slideIndex)
201
+ : -offset - (slideIndex - (index + preload))) * fadeAnimationDuration,
202
+ }
203
+ : undefined;
204
+ return (React.createElement(Thumbnail, { key: slideIndex, slide: slide, active: slideIndex === index, fadeIn: fadeIn, fadeOut: fadeOut, placeholder: Boolean(placeholder), onClick: handleClick(slideIndex) }));
205
+ })),
206
+ vignette && React.createElement("div", { className: cssClass(cssPrefix("vignette")) })));
207
+ }
208
+
209
+ const ThumbnailsContext = React.createContext(null);
210
+ const useThumbnails = makeUseContext("useThumbnails", "ThumbnailsContext", ThumbnailsContext);
211
+ function ThumbnailsContextProvider({ children, ...props }) {
212
+ const [visible, setVisible] = React.useState(true);
213
+ const containerRef = React.useRef(null);
214
+ const { ref, position } = resolveThumbnailsProps(props.thumbnails);
215
+ const context = React.useMemo(() => ({
216
+ visible,
217
+ show: () => setVisible(true),
218
+ hide: () => setVisible(false),
219
+ }), [visible]);
220
+ React.useImperativeHandle(ref, () => context, [context]);
221
+ return (React.createElement(LightboxPropsProvider, { ...props },
222
+ React.createElement(ThumbnailsContext.Provider, { value: context },
223
+ React.createElement("div", { ref: containerRef, className: clsx(cssClass(cssPrefix()), cssClass(cssPrefix(`${position}`))) },
224
+ ["start", "top"].includes(position) && (React.createElement(ThumbnailsTrack, { containerRef: containerRef, visible: visible })),
225
+ React.createElement("div", { className: cssClass(cssPrefix("wrapper")) }, children),
226
+ ["end", "bottom"].includes(position) && (React.createElement(ThumbnailsTrack, { containerRef: containerRef, visible: visible }))))));
227
+ }
228
+
229
+ const thumbnailsIcon = () => (React.createElement(React.Fragment, null,
230
+ React.createElement("path", { strokeWidth: 2, stroke: "currentColor", strokeLinejoin: "round", fill: "none", d: "M3 5l18 0l0 14l-18 0l0-14z" }),
231
+ React.createElement("path", { d: "M5 14h4v3h-4zM10 14h4v3h-4zM15 14h4v3h-4z" })));
232
+ const ThumbnailsVisible = createIcon("ThumbnailsVisible", thumbnailsIcon());
233
+ const ThumbnailsHidden = createIconDisabled("ThumbnailsHidden", thumbnailsIcon());
234
+ function ThumbnailsButton() {
235
+ const { visible, show, hide } = useThumbnails();
236
+ const { render } = useLightboxProps();
237
+ if (render.buttonThumbnails) {
238
+ return React.createElement(React.Fragment, null, render.buttonThumbnails({ visible, show, hide }));
239
+ }
240
+ return (React.createElement(IconButton, { label: visible ? "Hide thumbnails" : "Show thumbnails", icon: visible ? ThumbnailsVisible : ThumbnailsHidden, renderIcon: visible ? render.iconThumbnailsVisible : render.iconThumbnailsHidden, onClick: visible ? hide : show }));
241
+ }
242
+
243
+ function Thumbnails({ augment, contains, append, addParent }) {
244
+ augment(({ thumbnails: thumbnailsProps, toolbar, ...restProps }) => {
245
+ const thumbnails = resolveThumbnailsProps(thumbnailsProps);
246
+ return {
247
+ toolbar: addToolbarButton(toolbar, PLUGIN_THUMBNAILS, thumbnails.showToggle ? React.createElement(ThumbnailsButton, null) : null),
248
+ thumbnails,
249
+ ...restProps,
250
+ };
251
+ });
252
+ const module = createModule(PLUGIN_THUMBNAILS, ThumbnailsContextProvider);
253
+ if (contains(PLUGIN_FULLSCREEN)) {
254
+ append(PLUGIN_FULLSCREEN, module);
255
+ }
256
+ else {
257
+ addParent(MODULE_CONTROLLER, module);
258
+ }
259
+ }
260
+
261
+ export { Thumbnails as default };
@@ -1,139 +1 @@
1
- .yarl__thumbnails {
2
- display: flex;
3
- height: 100%;
4
- }
5
- .yarl__thumbnails_top, .yarl__thumbnails_bottom {
6
- flex-direction: column;
7
- }
8
- .yarl__thumbnails_start .yarl__thumbnails_track, .yarl__thumbnails_end .yarl__thumbnails_track {
9
- flex-direction: column;
10
- }
11
- .yarl__thumbnails_wrapper {
12
- flex: 1;
13
- position: relative;
14
- }
15
- .yarl__thumbnails_container {
16
- flex: 0 0 auto;
17
- background-color: var(--yarl__thumbnails_container_background_color, var(--yarl__color_backdrop, #000));
18
- padding: var(--yarl__thumbnails_container_padding, 16px);
19
- position: relative;
20
- overflow: hidden;
21
- -webkit-user-select: none;
22
- -moz-user-select: none;
23
- user-select: none;
24
- -webkit-touch-callout: none;
25
- }
26
- .yarl__thumbnails_vignette {
27
- position: absolute;
28
- pointer-events: none;
29
- --yarl__thumbnails_vignette_size: 12%;
30
- }
31
- @media (min-width: 1200px) {
32
- .yarl__thumbnails_vignette {
33
- --yarl__thumbnails_vignette_size: 8%;
34
- }
35
- }
36
- @media (min-width: 2000px) {
37
- .yarl__thumbnails_vignette {
38
- --yarl__thumbnails_vignette_size: 5%;
39
- }
40
- }
41
- .yarl__thumbnails_top .yarl__thumbnails_vignette, .yarl__thumbnails_bottom .yarl__thumbnails_vignette {
42
- height: 100%;
43
- left: 0;
44
- right: 0;
45
- background: linear-gradient(to right, var(--yarl__color_backdrop, #000) 0px, transparent var(--yarl__thumbnails_vignette_size, 12%) calc(100% - var(--yarl__thumbnails_vignette_size, 12%)), var(--yarl__color_backdrop, #000) 100%);
46
- }
47
- .yarl__thumbnails_start .yarl__thumbnails_vignette, .yarl__thumbnails_end .yarl__thumbnails_vignette {
48
- width: 100%;
49
- top: 0;
50
- bottom: 0;
51
- background: linear-gradient(to bottom, var(--yarl__color_backdrop, #000) 0px, transparent var(--yarl__thumbnails_vignette_size, 12%) calc(100% - var(--yarl__thumbnails_vignette_size, 12%)), var(--yarl__color_backdrop, #000) 100%);
52
- }
53
- .yarl__thumbnails_track {
54
- gap: var(--yarl__thumbnails_thumbnail_gap, 16px);
55
- }
56
- .yarl__thumbnails_thumbnail {
57
- flex: 0 0 auto;
58
- cursor: pointer;
59
- -webkit-appearance: none;
60
- -moz-appearance: none;
61
- appearance: none;
62
- background: var(--yarl__thumbnails_thumbnail_background, #000);
63
- border: var(--yarl__thumbnails_thumbnail_border, 1px solid var(--yarl__color_button, rgba(255, 255, 255, 0.8)));
64
- border-radius: var(--yarl__thumbnails_thumbnail_border_radius, 4px);
65
- -webkit-tap-highlight-color: transparent;
66
- position: relative;
67
- overflow: hidden;
68
- padding: var(--yarl__thumbnails_thumbnail_padding, 4px);
69
- width: var(--yarl__thumbnails_thumbnail_width, 120px);
70
- height: var(--yarl__thumbnails_thumbnail_height, 80px);
71
- box-sizing: content-box;
72
- }
73
- .yarl__thumbnails_thumbnail_active {
74
- border-color: var(--yarl__thumbnails_thumbnail_active_border_color, var(--yarl__color_button_active, #fff));
75
- }
76
- .yarl__thumbnails_thumbnail_fadein {
77
- opacity: 0;
78
- -webkit-animation: yarl__thumbnails_thumbnail_fadein var(--yarl__thumbnails_thumbnail_fadein_duration, 0.5s) ease-in-out var(--yarl__thumbnails_thumbnail_fadein_delay, 0s) forwards;
79
- animation: yarl__thumbnails_thumbnail_fadein var(--yarl__thumbnails_thumbnail_fadein_duration, 0.5s) ease-in-out var(--yarl__thumbnails_thumbnail_fadein_delay, 0s) forwards;
80
- }
81
- .yarl__thumbnails_thumbnail_fadeout {
82
- -webkit-animation: yarl__thumbnails_thumbnail_fadeout var(--yarl__thumbnails_thumbnail_fadeout_duration, 0.5s) ease-in-out var(--yarl__thumbnails_thumbnail_fadeout_delay, 0s) forwards;
83
- animation: yarl__thumbnails_thumbnail_fadeout var(--yarl__thumbnails_thumbnail_fadeout_duration, 0.5s) ease-in-out var(--yarl__thumbnails_thumbnail_fadeout_delay, 0s) forwards;
84
- cursor: unset;
85
- }
86
- .yarl__thumbnails_thumbnail_placeholder {
87
- visibility: hidden;
88
- cursor: unset;
89
- }
90
- .yarl__thumbnails_thumbnail_icon {
91
- color: var(--yarl__thumbnails_thumbnail_icon_color, var(--yarl__color_button, rgba(255, 255, 255, 0.8)));
92
- -webkit-filter: var(--yarl__thumbnails_thumbnail_icon_filter, drop-shadow(2px 2px 2px rgba(0, 0, 0, 0.8)));
93
- filter: var(--yarl__thumbnails_thumbnail_icon_filter, drop-shadow(2px 2px 2px rgba(0, 0, 0, 0.8)));
94
- position: absolute;
95
- top: 50%;
96
- left: 50%;
97
- -webkit-transform: translateX(-50%) translateY(-50%);
98
- transform: translateX(-50%) translateY(-50%);
99
- width: var(--yarl__thumbnails_thumbnail_icon_size, 32px);
100
- height: var(--yarl__thumbnails_thumbnail_icon_size, 32px);
101
- }
102
- .yarl__thumbnails_contain_image {
103
- -o-object-fit: contain;
104
- object-fit: contain;
105
- }
106
-
107
- @-webkit-keyframes yarl__thumbnails_thumbnail_fadein {
108
- from {
109
- opacity: 0;
110
- }
111
- to {
112
- opacity: 1;
113
- }
114
- }
115
-
116
- @keyframes yarl__thumbnails_thumbnail_fadein {
117
- from {
118
- opacity: 0;
119
- }
120
- to {
121
- opacity: 1;
122
- }
123
- }
124
- @-webkit-keyframes yarl__thumbnails_thumbnail_fadeout {
125
- from {
126
- opacity: 1;
127
- }
128
- to {
129
- opacity: 0;
130
- }
131
- }
132
- @keyframes yarl__thumbnails_thumbnail_fadeout {
133
- from {
134
- opacity: 1;
135
- }
136
- to {
137
- opacity: 0;
138
- }
139
- }
1
+ .yarl__thumbnails{display:flex;height:100%}.yarl__thumbnails_bottom,.yarl__thumbnails_end .yarl__thumbnails_track,.yarl__thumbnails_start .yarl__thumbnails_track,.yarl__thumbnails_top{flex-direction:column}.yarl__thumbnails_wrapper{flex:1;position:relative}.yarl__thumbnails_container{-webkit-touch-callout:none;background-color:var(--yarl__thumbnails_container_background_color,var(--yarl__color_backdrop,#000));flex:0 0 auto;overflow:hidden;padding:var(--yarl__thumbnails_container_padding,16px);position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.yarl__thumbnails_vignette{--yarl__thumbnails_vignette_size:12%;pointer-events:none;position:absolute}@media (min-width:1200px){.yarl__thumbnails_vignette{--yarl__thumbnails_vignette_size:8%}}@media (min-width:2000px){.yarl__thumbnails_vignette{--yarl__thumbnails_vignette_size:5%}}.yarl__thumbnails_bottom .yarl__thumbnails_vignette,.yarl__thumbnails_top .yarl__thumbnails_vignette{background:linear-gradient(to right,var(--yarl__color_backdrop,#000) 0,transparent var(--yarl__thumbnails_vignette_size,12%) calc(100% - var(--yarl__thumbnails_vignette_size, 12%)),var(--yarl__color_backdrop,#000) 100%);height:100%;left:0;right:0}.yarl__thumbnails_end .yarl__thumbnails_vignette,.yarl__thumbnails_start .yarl__thumbnails_vignette{background:linear-gradient(to bottom,var(--yarl__color_backdrop,#000) 0,transparent var(--yarl__thumbnails_vignette_size,12%) calc(100% - var(--yarl__thumbnails_vignette_size, 12%)),var(--yarl__color_backdrop,#000) 100%);bottom:0;top:0;width:100%}.yarl__thumbnails_track{gap:var(--yarl__thumbnails_thumbnail_gap,16px)}.yarl__thumbnails_thumbnail{-webkit-tap-highlight-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--yarl__thumbnails_thumbnail_background,#000);border:var(--yarl__thumbnails_thumbnail_border,1px solid var(--yarl__color_button,hsla(0,0%,100%,.8)));border-radius:var(--yarl__thumbnails_thumbnail_border_radius,4px);box-sizing:content-box;cursor:pointer;flex:0 0 auto;height:var(--yarl__thumbnails_thumbnail_height,80px);overflow:hidden;padding:var(--yarl__thumbnails_thumbnail_padding,4px);position:relative;width:var(--yarl__thumbnails_thumbnail_width,120px)}.yarl__thumbnails_thumbnail_active{border-color:var(--yarl__thumbnails_thumbnail_active_border_color,var(--yarl__color_button_active,#fff))}.yarl__thumbnails_thumbnail_fadein{-webkit-animation:yarl__thumbnails_thumbnail_fadein var(--yarl__thumbnails_thumbnail_fadein_duration,.5s) ease-in-out var(--yarl__thumbnails_thumbnail_fadein_delay,0s) forwards;animation:yarl__thumbnails_thumbnail_fadein var(--yarl__thumbnails_thumbnail_fadein_duration,.5s) ease-in-out var(--yarl__thumbnails_thumbnail_fadein_delay,0s) forwards;opacity:0}.yarl__thumbnails_thumbnail_fadeout{-webkit-animation:yarl__thumbnails_thumbnail_fadeout var(--yarl__thumbnails_thumbnail_fadeout_duration,.5s) ease-in-out var(--yarl__thumbnails_thumbnail_fadeout_delay,0s) forwards;animation:yarl__thumbnails_thumbnail_fadeout var(--yarl__thumbnails_thumbnail_fadeout_duration,.5s) ease-in-out var(--yarl__thumbnails_thumbnail_fadeout_delay,0s) forwards;cursor:unset}.yarl__thumbnails_thumbnail_placeholder{cursor:unset;visibility:hidden}.yarl__thumbnails_thumbnail_icon{color:var(--yarl__thumbnails_thumbnail_icon_color,var(--yarl__color_button,hsla(0,0%,100%,.8)));-webkit-filter:var(--yarl__thumbnails_thumbnail_icon_filter,drop-shadow(2px 2px 2px rgba(0,0,0,.8)));filter:var(--yarl__thumbnails_thumbnail_icon_filter,drop-shadow(2px 2px 2px rgba(0,0,0,.8)));height:var(--yarl__thumbnails_thumbnail_icon_size,32px);left:50%;position:absolute;top:50%;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:var(--yarl__thumbnails_thumbnail_icon_size,32px)}.yarl__thumbnails_contain_image{-o-object-fit:contain;object-fit:contain}@-webkit-keyframes yarl__thumbnails_thumbnail_fadein{0%{opacity:0}to{opacity:1}}@keyframes yarl__thumbnails_thumbnail_fadein{0%{opacity:0}to{opacity:1}}@-webkit-keyframes yarl__thumbnails_thumbnail_fadeout{0%{opacity:1}to{opacity:0}}@keyframes yarl__thumbnails_thumbnail_fadeout{0%{opacity:1}to{opacity:0}}
@@ -0,0 +1,2 @@
1
+ declare const styles: unknown;
2
+ export default styles;
@@ -1,4 +1,8 @@
1
- import { Video } from "./Video.js";
1
+ import { PluginProps } from '../../types.js';
2
+
3
+ /** Video plugin */
4
+ declare function Video({ augment }: PluginProps): void;
5
+
2
6
  declare module "../../types.js" {
3
7
  interface SlideTypes {
4
8
  /** video slide type */
@@ -45,4 +49,5 @@ declare module "../../types.js" {
45
49
  video?: Pick<SlideVideo, "autoPlay" | "controls" | "controlsList" | "crossOrigin" | "preload" | "loop" | "muted" | "playsInline" | "disablePictureInPicture" | "disableRemotePlayback">;
46
50
  }
47
51
  }
48
- export default Video;
52
+
53
+ export { Video as default };