{"version":3,"file":"static/js/3892.9ca9003b.chunk.js","mappings":"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","sources":["../node_modules/yet-another-react-lightbox/dist/index.js","../node_modules/yet-another-react-lightbox/dist/plugins/captions/index.js","../node_modules/yet-another-react-lightbox/dist/plugins/fullscreen/index.js","../node_modules/yet-another-react-lightbox/dist/plugins/slideshow/index.js","../node_modules/yet-another-react-lightbox/dist/plugins/thumbnails/index.js","../node_modules/yet-another-react-lightbox/dist/plugins/video/index.js","../node_modules/yet-another-react-lightbox/dist/plugins/zoom/index.js","../node_modules/yet-another-react-lightbox/dist/types.js"],"sourcesContent":["'use client';\nimport * as React from 'react';\nimport { ACTION_CLOSE, IMAGE_FIT_CONTAIN, MODULE_CONTROLLER, IMAGE_FIT_COVER, UNKNOWN_ACTION_TYPE, ELEMENT_BUTTON, ELEMENT_ICON, EVENT_ON_POINTER_DOWN, EVENT_ON_POINTER_MOVE, EVENT_ON_POINTER_UP, EVENT_ON_POINTER_LEAVE, EVENT_ON_POINTER_CANCEL, EVENT_ON_KEY_DOWN, EVENT_ON_KEY_UP, EVENT_ON_WHEEL, SLIDE_STATUS_LOADING, activeSlideStatus, SLIDE_STATUS_COMPLETE, SLIDE_STATUS_ERROR, SLIDE_STATUS_PLACEHOLDER, ACTION_PREV, ACTION_NEXT, ACTION_SWIPE, VK_ESCAPE, CLASS_FLEX_CENTER, MODULE_CAROUSEL, CLASS_FULLSIZE, VK_ARROW_LEFT, VK_ARROW_RIGHT, MODULE_NAVIGATION, CLASS_NO_SCROLL, CLASS_NO_SCROLL_PADDING, MODULE_NO_SCROLL, MODULE_PORTAL, MODULE_ROOT, MODULE_TOOLBAR } from './types.js';\nimport { createPortal } from 'react-dom';\nexport { ACTIVE_SLIDE_COMPLETE, ACTIVE_SLIDE_ERROR, ACTIVE_SLIDE_LOADING, ACTIVE_SLIDE_PLAYING, PLUGIN_CAPTIONS, PLUGIN_COUNTER, PLUGIN_DOWNLOAD, PLUGIN_FULLSCREEN, PLUGIN_INLINE, PLUGIN_SHARE, PLUGIN_SLIDESHOW, PLUGIN_THUMBNAILS, PLUGIN_ZOOM, SLIDE_STATUS_PLAYING } from './types.js';\n\nconst LightboxDefaultProps = {\n open: false,\n close: () => { },\n index: 0,\n slides: [],\n render: {},\n plugins: [],\n toolbar: { buttons: [ACTION_CLOSE] },\n labels: {},\n animation: {\n fade: 250,\n swipe: 500,\n easing: {\n fade: \"ease\",\n swipe: \"ease-out\",\n navigation: \"ease-in-out\",\n },\n },\n carousel: {\n finite: false,\n preload: 2,\n padding: \"16px\",\n spacing: \"30%\",\n imageFit: IMAGE_FIT_CONTAIN,\n imageProps: {},\n },\n controller: {\n ref: null,\n focus: true,\n aria: false,\n touchAction: \"none\",\n closeOnPullDown: false,\n closeOnBackdropClick: false,\n },\n portal: {},\n on: {},\n styles: {},\n className: \"\",\n};\n\nfunction createModule(name, component) {\n return { name, component };\n}\nfunction createNode(module, children) {\n return { module, children };\n}\nfunction traverseNode(node, target, apply) {\n if (node.module.name === target) {\n return apply(node);\n }\n if (node.children) {\n return [\n createNode(node.module, node.children.flatMap((n) => { var _a; return (_a = traverseNode(n, target, apply)) !== null && _a !== void 0 ? _a : []; })),\n ];\n }\n return [node];\n}\nfunction traverse(nodes, target, apply) {\n return nodes.flatMap((node) => { var _a; return (_a = traverseNode(node, target, apply)) !== null && _a !== void 0 ? _a : []; });\n}\nfunction withPlugins(root, plugins = [], augmentations = []) {\n let config = root;\n const contains = (target) => {\n const nodes = [...config];\n while (nodes.length > 0) {\n const node = nodes.pop();\n if ((node === null || node === void 0 ? void 0 : node.module.name) === target)\n return true;\n if (node === null || node === void 0 ? void 0 : node.children)\n nodes.push(...node.children);\n }\n return false;\n };\n const addParent = (target, module) => {\n if (target === \"\") {\n config = [createNode(module, config)];\n return;\n }\n config = traverse(config, target, (node) => [createNode(module, [node])]);\n };\n const append = (target, module) => {\n config = traverse(config, target, (node) => [createNode(node.module, [createNode(module, node.children)])]);\n };\n const addChild = (target, module, precede) => {\n config = traverse(config, target, (node) => {\n var _a;\n return [\n createNode(node.module, [\n ...(precede ? [createNode(module)] : []),\n ...((_a = node.children) !== null && _a !== void 0 ? _a : []),\n ...(!precede ? [createNode(module)] : []),\n ]),\n ];\n });\n };\n const addSibling = (target, module, precede) => {\n config = traverse(config, target, (node) => [\n ...(precede ? [createNode(module)] : []),\n node,\n ...(!precede ? [createNode(module)] : []),\n ]);\n };\n const addModule = (module) => {\n append(MODULE_CONTROLLER, module);\n };\n const replace = (target, module) => {\n config = traverse(config, target, (node) => [createNode(module, node.children)]);\n };\n const remove = (target) => {\n config = traverse(config, target, (node) => node.children);\n };\n const augment = (augmentation) => {\n augmentations.push(augmentation);\n };\n plugins.forEach((plugin) => {\n plugin({\n contains,\n addParent,\n append,\n addChild,\n addSibling,\n addModule,\n replace,\n remove,\n augment,\n });\n });\n return {\n config,\n augmentation: (props) => augmentations.reduce((acc, augmentation) => augmentation(acc), props),\n };\n}\n\nconst clsx = (...classes) => [...classes].filter((cls) => Boolean(cls)).join(\" \");\nconst cssPrefix$3 = \"yarl__\";\nconst cssClass = (name) => `${cssPrefix$3}${name}`;\nconst cssVar = (name) => `--${cssPrefix$3}${name}`;\nconst composePrefix = (base, prefix) => `${base}${prefix ? `_${prefix}` : \"\"}`;\nconst makeComposePrefix = (base) => (prefix) => composePrefix(base, prefix);\nconst label = (labels, lbl) => (labels && labels[lbl] ? labels[lbl] : lbl);\nconst cleanup = (...cleaners) => () => {\n cleaners.forEach((cleaner) => {\n cleaner();\n });\n};\nconst makeUseContext = (name, contextName, context) => () => {\n const ctx = React.useContext(context);\n if (!ctx) {\n throw new Error(`${name} must be used within a ${contextName}.Provider`);\n }\n return ctx;\n};\nconst hasWindow = () => typeof window !== \"undefined\";\nfunction round(value, decimals = 0) {\n const factor = 10 ** decimals;\n return Math.round((value + Number.EPSILON) * factor) / factor;\n}\nconst isImageSlide = (slide) => slide.type === undefined || slide.type === \"image\";\nconst isImageFitCover = (image, imageFit) => image.imageFit === IMAGE_FIT_COVER || (image.imageFit !== IMAGE_FIT_CONTAIN && imageFit === IMAGE_FIT_COVER);\nfunction parseLengthPercentage(input) {\n if (typeof input === \"number\") {\n return { pixel: input };\n }\n if (typeof input === \"string\") {\n const value = parseInt(input, 10);\n return input.endsWith(\"%\") ? { percent: value } : { pixel: value };\n }\n return { pixel: 0 };\n}\nfunction computeSlideRect(containerRect, padding) {\n const paddingValue = parseLengthPercentage(padding);\n const paddingPixels = paddingValue.percent !== undefined ? (containerRect.width / 100) * paddingValue.percent : paddingValue.pixel;\n return {\n width: Math.max(containerRect.width - 2 * paddingPixels, 0),\n height: Math.max(containerRect.height - 2 * paddingPixels, 0),\n };\n}\nconst devicePixelRatio = () => (hasWindow() ? window === null || window === void 0 ? void 0 : window.devicePixelRatio : undefined) || 1;\nconst getSlideIndex = (index, slidesCount) => slidesCount > 0 ? ((index % slidesCount) + slidesCount) % slidesCount : 0;\nconst hasSlides = (slides) => slides.length > 0;\nconst getSlide = (slides, index) => slides[getSlideIndex(index, slides.length)];\nconst getSlideIfPresent = (slides, index) => hasSlides(slides) ? getSlide(slides, index) : undefined;\nfunction addToolbarButton(toolbar, key, button) {\n if (!button)\n return toolbar;\n const { buttons, ...restToolbar } = toolbar;\n const index = buttons.findIndex((item) => item === key);\n const buttonWithKey = React.isValidElement(button) ? React.cloneElement(button, { key }, null) : button;\n if (index >= 0) {\n const result = [...buttons];\n result.splice(index, 1, buttonWithKey);\n return { buttons: result, ...restToolbar };\n }\n return { buttons: [buttonWithKey, ...buttons], ...restToolbar };\n}\nfunction stopNavigationEventsPropagation() {\n const stopPropagation = (event) => {\n event.stopPropagation();\n };\n return { onPointerDown: stopPropagation, onKeyDown: stopPropagation, onWheel: stopPropagation };\n}\n\nconst EventsContext = React.createContext(null);\nconst useEvents = makeUseContext(\"useEvents\", \"EventsContext\", EventsContext);\nfunction EventsProvider({ children }) {\n const [subscriptions] = React.useState({});\n React.useEffect(() => () => {\n Object.keys(subscriptions).forEach((topic) => delete subscriptions[topic]);\n }, [subscriptions]);\n const context = React.useMemo(() => {\n const unsubscribe = (topic, callback) => {\n var _a;\n (_a = subscriptions[topic]) === null || _a === void 0 ? void 0 : _a.splice(0, subscriptions[topic].length, ...subscriptions[topic].filter((cb) => cb !== callback));\n };\n const subscribe = (topic, callback) => {\n if (!subscriptions[topic]) {\n subscriptions[topic] = [];\n }\n subscriptions[topic].push(callback);\n return () => unsubscribe(topic, callback);\n };\n const publish = (...[topic, event]) => {\n var _a;\n (_a = subscriptions[topic]) === null || _a === void 0 ? void 0 : _a.forEach((callback) => callback(event));\n };\n return { publish, subscribe, unsubscribe };\n }, [subscriptions]);\n return React.createElement(EventsContext.Provider, { value: context }, children);\n}\n\nconst LightboxPropsContext = React.createContext(null);\nconst useLightboxProps = makeUseContext(\"useLightboxProps\", \"LightboxPropsContext\", LightboxPropsContext);\nfunction LightboxPropsProvider({ children, ...props }) {\n return React.createElement(LightboxPropsContext.Provider, { value: props }, children);\n}\n\nconst LightboxStateContext = React.createContext(null);\nconst useLightboxState = makeUseContext(\"useLightboxState\", \"LightboxStateContext\", LightboxStateContext);\nconst LightboxDispatchContext = React.createContext(null);\nconst useLightboxDispatch = makeUseContext(\"useLightboxDispatch\", \"LightboxDispatchContext\", LightboxDispatchContext);\nfunction reducer(state, action) {\n switch (action.type) {\n case \"swipe\": {\n const { slides } = state;\n const increment = (action === null || action === void 0 ? void 0 : action.increment) || 0;\n const globalIndex = state.globalIndex + increment;\n const currentIndex = getSlideIndex(globalIndex, slides.length);\n const currentSlide = getSlideIfPresent(slides, currentIndex);\n const animation = increment || action.duration\n ? {\n increment,\n duration: action.duration,\n easing: action.easing,\n }\n : undefined;\n return { slides, currentIndex, globalIndex, currentSlide, animation };\n }\n case \"update\":\n return {\n slides: action.slides,\n currentIndex: action.index,\n globalIndex: action.index,\n currentSlide: getSlideIfPresent(action.slides, action.index),\n };\n default:\n throw new Error(UNKNOWN_ACTION_TYPE);\n }\n}\nfunction LightboxStateProvider({ slides, index, children }) {\n const [state, dispatch] = React.useReducer(reducer, {\n slides,\n currentIndex: index,\n globalIndex: index,\n currentSlide: getSlideIfPresent(slides, index),\n });\n React.useEffect(() => {\n dispatch({ type: \"update\", slides, index });\n }, [slides, index]);\n const context = React.useMemo(() => ({ ...state, state, dispatch }), [state, dispatch]);\n return (React.createElement(LightboxDispatchContext.Provider, { value: dispatch },\n React.createElement(LightboxStateContext.Provider, { value: context }, children)));\n}\n\nconst TimeoutsContext = React.createContext(null);\nconst useTimeouts = makeUseContext(\"useTimeouts\", \"TimeoutsContext\", TimeoutsContext);\nfunction TimeoutsProvider({ children }) {\n const [timeouts] = React.useState([]);\n React.useEffect(() => () => {\n timeouts.forEach((tid) => window.clearTimeout(tid));\n timeouts.splice(0, timeouts.length);\n }, [timeouts]);\n const context = React.useMemo(() => {\n const removeTimeout = (id) => {\n timeouts.splice(0, timeouts.length, ...timeouts.filter((tid) => tid !== id));\n };\n const setTimeout = (fn, delay) => {\n const id = window.setTimeout(() => {\n removeTimeout(id);\n fn();\n }, delay);\n timeouts.push(id);\n return id;\n };\n const clearTimeout = (id) => {\n if (id !== undefined) {\n removeTimeout(id);\n window.clearTimeout(id);\n }\n };\n return { setTimeout, clearTimeout };\n }, [timeouts]);\n return React.createElement(TimeoutsContext.Provider, { value: context }, children);\n}\n\nconst IconButton = React.forwardRef(function IconButton({ label: label$1, className, icon: Icon, renderIcon, onClick, style, ...rest }, ref) {\n const { styles, labels } = useLightboxProps();\n return (React.createElement(\"button\", { ref: ref, type: \"button\", \"aria-label\": label(labels, label$1), className: clsx(cssClass(ELEMENT_BUTTON), className), onClick: onClick, style: { ...style, ...styles.button }, ...rest }, renderIcon ? renderIcon() : React.createElement(Icon, { className: cssClass(ELEMENT_ICON), style: styles.icon })));\n});\n\nfunction svgIcon(name, children) {\n const icon = (props) => (React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 24 24\", width: \"24\", height: \"24\", \"aria-hidden\": \"true\", focusable: \"false\", ...props }, children));\n icon.displayName = name;\n return icon;\n}\nfunction createIcon(name, glyph) {\n return svgIcon(name, React.createElement(\"g\", { fill: \"currentColor\" },\n React.createElement(\"path\", { d: \"M0 0h24v24H0z\", fill: \"none\" }),\n glyph));\n}\nfunction createIconDisabled(name, glyph) {\n return svgIcon(name, React.createElement(React.Fragment, null,\n React.createElement(\"defs\", null,\n React.createElement(\"mask\", { id: \"strike\" },\n React.createElement(\"path\", { d: \"M0 0h24v24H0z\", fill: \"white\" }),\n React.createElement(\"path\", { d: \"M0 0L24 24\", stroke: \"black\", strokeWidth: 4 }))),\n React.createElement(\"path\", { d: \"M0.70707 2.121320L21.878680 23.292883\", stroke: \"currentColor\", strokeWidth: 2 }),\n React.createElement(\"g\", { fill: \"currentColor\", mask: \"url(#strike)\" },\n React.createElement(\"path\", { d: \"M0 0h24v24H0z\", fill: \"none\" }),\n glyph)));\n}\nconst CloseIcon = createIcon(\"Close\", React.createElement(\"path\", { d: \"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\" }));\nconst PreviousIcon = createIcon(\"Previous\", React.createElement(\"path\", { d: \"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z\" }));\nconst NextIcon = createIcon(\"Next\", React.createElement(\"path\", { d: \"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" }));\nconst LoadingIcon = createIcon(\"Loading\", React.createElement(React.Fragment, null, Array.from({ length: 8 }).map((_, index, array) => (React.createElement(\"line\", { key: index, x1: \"12\", y1: \"6.5\", x2: \"12\", y2: \"1.8\", strokeLinecap: \"round\", strokeWidth: \"2.6\", stroke: \"currentColor\", strokeOpacity: (1 / array.length) * (index + 1), transform: `rotate(${(360 / array.length) * index}, 12, 12)` })))));\nconst ErrorIcon = createIcon(\"Error\", React.createElement(\"path\", { d: \"M21.9,21.9l-8.49-8.49l0,0L3.59,3.59l0,0L2.1,2.1L0.69,3.51L3,5.83V19c0,1.1,0.9,2,2,2h13.17l2.31,2.31L21.9,21.9z M5,18 l3.5-4.5l2.5,3.01L12.17,15l3,3H5z M21,18.17L5.83,3H19c1.1,0,2,0.9,2,2V18.17z\" }));\n\nconst useLayoutEffect = hasWindow() ? React.useLayoutEffect : React.useEffect;\n\nfunction useMotionPreference() {\n const [reduceMotion, setReduceMotion] = React.useState(false);\n React.useEffect(() => {\n var _a, _b;\n const mediaQuery = (_a = window.matchMedia) === null || _a === void 0 ? void 0 : _a.call(window, \"(prefers-reduced-motion: reduce)\");\n setReduceMotion(mediaQuery === null || mediaQuery === void 0 ? void 0 : mediaQuery.matches);\n const listener = (event) => setReduceMotion(event.matches);\n (_b = mediaQuery === null || mediaQuery === void 0 ? void 0 : mediaQuery.addEventListener) === null || _b === void 0 ? void 0 : _b.call(mediaQuery, \"change\", listener);\n return () => { var _a; return (_a = mediaQuery === null || mediaQuery === void 0 ? void 0 : mediaQuery.removeEventListener) === null || _a === void 0 ? void 0 : _a.call(mediaQuery, \"change\", listener); };\n }, []);\n return reduceMotion;\n}\n\nfunction currentTransformation(node) {\n let x = 0;\n let y = 0;\n let z = 0;\n const matrix = window.getComputedStyle(node).transform;\n const matcher = matrix.match(/matrix.*\\((.+)\\)/);\n if (matcher) {\n const values = matcher[1].split(\",\").map((str) => Number.parseInt(str, 10));\n if (values.length === 6) {\n x = values[4];\n y = values[5];\n }\n else if (values.length === 16) {\n x = values[12];\n y = values[13];\n z = values[14];\n }\n }\n return { x, y, z };\n}\nfunction useAnimation(nodeRef, computeAnimation) {\n const snapshot = React.useRef();\n const animation = React.useRef();\n const reduceMotion = useMotionPreference();\n useLayoutEffect(() => {\n var _a, _b, _c;\n if (nodeRef.current && snapshot.current !== undefined && !reduceMotion) {\n const { keyframes, duration, easing, onfinish } = computeAnimation(snapshot.current, nodeRef.current.getBoundingClientRect(), currentTransformation(nodeRef.current)) || {};\n if (keyframes && duration) {\n (_a = animation.current) === null || _a === void 0 ? void 0 : _a.cancel();\n animation.current = undefined;\n try {\n animation.current = (_c = (_b = nodeRef.current).animate) === null || _c === void 0 ? void 0 : _c.call(_b, keyframes, { duration, easing });\n }\n catch (err) {\n console.error(err);\n }\n if (animation.current) {\n animation.current.onfinish = () => {\n animation.current = undefined;\n onfinish === null || onfinish === void 0 ? void 0 : onfinish();\n };\n }\n }\n }\n snapshot.current = undefined;\n });\n return {\n prepareAnimation: (currentSnapshot) => {\n snapshot.current = currentSnapshot;\n },\n isAnimationPlaying: () => { var _a; return ((_a = animation.current) === null || _a === void 0 ? void 0 : _a.playState) === \"running\"; },\n };\n}\n\nfunction useContainerRect() {\n const [containerRect, setContainerRect] = React.useState();\n const containerRef = React.useRef(null);\n const observerRef = React.useRef();\n const setContainerRef = React.useCallback((node) => {\n containerRef.current = node;\n if (observerRef.current) {\n observerRef.current.disconnect();\n observerRef.current = undefined;\n }\n const updateContainerRect = () => {\n if (node) {\n const styles = window.getComputedStyle(node);\n const parse = (value) => parseFloat(value) || 0;\n setContainerRect({\n width: Math.round(node.clientWidth - parse(styles.paddingLeft) - parse(styles.paddingRight)),\n height: Math.round(node.clientHeight - parse(styles.paddingTop) - parse(styles.paddingBottom)),\n });\n }\n else {\n setContainerRect(undefined);\n }\n };\n updateContainerRect();\n if (node && typeof ResizeObserver !== \"undefined\") {\n observerRef.current = new ResizeObserver(updateContainerRect);\n observerRef.current.observe(node);\n }\n }, []);\n return React.useMemo(() => ({\n setContainerRef,\n containerRef,\n containerRect,\n }), [setContainerRef, containerRef, containerRect]);\n}\n\nfunction useDelay() {\n const timeoutId = React.useRef();\n const { setTimeout, clearTimeout } = useTimeouts();\n return React.useCallback((callback, delay) => {\n clearTimeout(timeoutId.current);\n timeoutId.current = setTimeout(callback, delay > 0 ? delay : 0);\n }, [setTimeout, clearTimeout]);\n}\n\nfunction useEventCallback(fn) {\n const ref = React.useRef(fn);\n useLayoutEffect(() => {\n ref.current = fn;\n });\n return React.useCallback((...args) => { var _a; return (_a = ref.current) === null || _a === void 0 ? void 0 : _a.call(ref, ...args); }, []);\n}\n\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n ref(value);\n }\n else if (ref) {\n ref.current = value;\n }\n}\nfunction useForkRef(refA, refB) {\n return React.useMemo(() => refA == null && refB == null\n ? null\n : (refValue) => {\n setRef(refA, refValue);\n setRef(refB, refValue);\n }, [refA, refB]);\n}\n\nfunction useLoseFocus(focus, disabled = false) {\n const focused = React.useRef();\n useLayoutEffect(() => {\n if (disabled && focused.current) {\n focused.current = false;\n focus();\n }\n }, [disabled, focus]);\n const onFocus = React.useCallback(() => {\n focused.current = true;\n }, []);\n const onBlur = React.useCallback(() => {\n focused.current = false;\n }, []);\n return { onFocus, onBlur };\n}\n\nfunction useRTL() {\n const [isRTL, setIsRTL] = React.useState(false);\n useLayoutEffect(() => {\n setIsRTL(window.getComputedStyle(window.document.documentElement).direction === \"rtl\");\n }, []);\n return isRTL;\n}\n\nfunction useSensors() {\n const [subscribers] = React.useState({});\n return React.useMemo(() => {\n const notifySubscribers = (type, event) => {\n var _a;\n (_a = subscribers[type]) === null || _a === void 0 ? void 0 : _a.forEach((listener) => {\n if (!event.isPropagationStopped())\n listener(event);\n });\n };\n return {\n registerSensors: {\n onPointerDown: (event) => notifySubscribers(EVENT_ON_POINTER_DOWN, event),\n onPointerMove: (event) => notifySubscribers(EVENT_ON_POINTER_MOVE, event),\n onPointerUp: (event) => notifySubscribers(EVENT_ON_POINTER_UP, event),\n onPointerLeave: (event) => notifySubscribers(EVENT_ON_POINTER_LEAVE, event),\n onPointerCancel: (event) => notifySubscribers(EVENT_ON_POINTER_CANCEL, event),\n onKeyDown: (event) => notifySubscribers(EVENT_ON_KEY_DOWN, event),\n onKeyUp: (event) => notifySubscribers(EVENT_ON_KEY_UP, event),\n onWheel: (event) => notifySubscribers(EVENT_ON_WHEEL, event),\n },\n subscribeSensors: (type, callback) => {\n if (!subscribers[type]) {\n subscribers[type] = [];\n }\n subscribers[type].unshift(callback);\n return () => {\n const listeners = subscribers[type];\n if (listeners) {\n listeners.splice(0, listeners.length, ...listeners.filter((el) => el !== callback));\n }\n };\n },\n };\n }, [subscribers]);\n}\n\nfunction useThrottle(callback, delay) {\n const lastCallbackTime = React.useRef(0);\n const delayCallback = useDelay();\n const executeCallback = useEventCallback((...args) => {\n lastCallbackTime.current = Date.now();\n callback(args);\n });\n return React.useCallback((...args) => {\n delayCallback(() => {\n executeCallback(args);\n }, delay - (Date.now() - lastCallbackTime.current));\n }, [delay, executeCallback, delayCallback]);\n}\n\nconst slidePrefix = makeComposePrefix(\"slide\");\nconst slideImagePrefix = makeComposePrefix(\"slide_image\");\nfunction ImageSlide({ slide: image, offset, render, rect, imageFit, imageProps, onClick, onLoad, style, }) {\n var _a, _b, _c, _d, _e, _f, _g;\n const [status, setStatus] = React.useState(SLIDE_STATUS_LOADING);\n const { publish } = useEvents();\n const { setTimeout } = useTimeouts();\n const imageRef = React.useRef(null);\n React.useEffect(() => {\n if (offset === 0) {\n publish(activeSlideStatus(status));\n }\n }, [offset, status, publish]);\n const handleLoading = useEventCallback((img) => {\n (\"decode\" in img ? img.decode() : Promise.resolve())\n .catch(() => { })\n .then(() => {\n if (!img.parentNode) {\n return;\n }\n setStatus(SLIDE_STATUS_COMPLETE);\n setTimeout(() => {\n onLoad === null || onLoad === void 0 ? void 0 : onLoad(img);\n }, 0);\n });\n });\n const setImageRef = React.useCallback((img) => {\n imageRef.current = img;\n if (img === null || img === void 0 ? void 0 : img.complete) {\n handleLoading(img);\n }\n }, [handleLoading]);\n const handleOnLoad = React.useCallback((event) => {\n handleLoading(event.currentTarget);\n }, [handleLoading]);\n const onError = React.useCallback(() => {\n setStatus(SLIDE_STATUS_ERROR);\n }, []);\n const cover = isImageFitCover(image, imageFit);\n const nonInfinite = (value, fallback) => (Number.isFinite(value) ? value : fallback);\n const maxWidth = nonInfinite(Math.max(...((_b = (_a = image.srcSet) === null || _a === void 0 ? void 0 : _a.map((x) => x.width)) !== null && _b !== void 0 ? _b : []).concat(image.width ? [image.width] : [])), ((_c = imageRef.current) === null || _c === void 0 ? void 0 : _c.naturalWidth) || 0);\n const maxHeight = nonInfinite(Math.max(...((_e = (_d = image.srcSet) === null || _d === void 0 ? void 0 : _d.map((x) => x.height)) !== null && _e !== void 0 ? _e : []).concat(image.height ? [image.height] : [])), ((_f = imageRef.current) === null || _f === void 0 ? void 0 : _f.naturalHeight) || 0);\n const defaultStyle = maxWidth && maxHeight\n ? {\n maxWidth: `min(${maxWidth}px, 100%)`,\n maxHeight: `min(${maxHeight}px, 100%)`,\n }\n : {\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n };\n const srcSet = (_g = image.srcSet) === null || _g === void 0 ? void 0 : _g.sort((a, b) => a.width - b.width).map((item) => `${item.src} ${item.width}w`).join(\", \");\n const estimateActualWidth = () => rect && !cover && image.width && image.height ? (rect.height / image.height) * image.width : Number.MAX_VALUE;\n const sizes = srcSet && rect && hasWindow() ? `${Math.round(Math.min(estimateActualWidth(), rect.width))}px` : undefined;\n const { style: imagePropsStyle, className: imagePropsClassName, ...restImageProps } = imageProps || {};\n return (React.createElement(React.Fragment, null,\n React.createElement(\"img\", { ref: setImageRef, onLoad: handleOnLoad, onError: onError, onClick: onClick, draggable: false, className: clsx(cssClass(slideImagePrefix()), cover && cssClass(slideImagePrefix(\"cover\")), status !== SLIDE_STATUS_COMPLETE && cssClass(slideImagePrefix(\"loading\")), imagePropsClassName), style: { ...defaultStyle, ...style, ...imagePropsStyle }, ...restImageProps, alt: image.alt, sizes: sizes, srcSet: srcSet, src: image.src }),\n status !== SLIDE_STATUS_COMPLETE && (React.createElement(\"div\", { className: cssClass(slidePrefix(SLIDE_STATUS_PLACEHOLDER)) },\n status === SLIDE_STATUS_LOADING &&\n ((render === null || render === void 0 ? void 0 : render.iconLoading) ? (render.iconLoading()) : (React.createElement(LoadingIcon, { className: clsx(cssClass(ELEMENT_ICON), cssClass(slidePrefix(SLIDE_STATUS_LOADING))) }))),\n status === SLIDE_STATUS_ERROR &&\n ((render === null || render === void 0 ? void 0 : render.iconError) ? (render.iconError()) : (React.createElement(ErrorIcon, { className: clsx(cssClass(ELEMENT_ICON), cssClass(slidePrefix(SLIDE_STATUS_ERROR))) })))))));\n}\n\nvar SwipeState;\n(function (SwipeState) {\n SwipeState[SwipeState[\"NONE\"] = 0] = \"NONE\";\n SwipeState[SwipeState[\"SWIPE\"] = 1] = \"SWIPE\";\n SwipeState[SwipeState[\"PULL_DOWN\"] = 2] = \"PULL_DOWN\";\n SwipeState[SwipeState[\"ANIMATION\"] = 3] = \"ANIMATION\";\n})(SwipeState || (SwipeState = {}));\n\nfunction usePointerEvents(subscribeSensors, onPointerDown, onPointerMove, onPointerUp, disabled) {\n React.useEffect(() => {\n if (disabled)\n return () => { };\n return cleanup(subscribeSensors(EVENT_ON_POINTER_DOWN, onPointerDown), subscribeSensors(EVENT_ON_POINTER_MOVE, onPointerMove), subscribeSensors(EVENT_ON_POINTER_UP, onPointerUp), subscribeSensors(EVENT_ON_POINTER_LEAVE, onPointerUp), subscribeSensors(EVENT_ON_POINTER_CANCEL, onPointerUp));\n }, [subscribeSensors, onPointerDown, onPointerMove, onPointerUp, disabled]);\n}\n\nvar Gesture;\n(function (Gesture) {\n Gesture[Gesture[\"NONE\"] = 0] = \"NONE\";\n Gesture[Gesture[\"SWIPE\"] = 1] = \"SWIPE\";\n Gesture[Gesture[\"PULL_DOWN\"] = 2] = \"PULL_DOWN\";\n})(Gesture || (Gesture = {}));\nconst SWIPE_THRESHOLD = 30;\nfunction usePointerSwipe(subscribeSensors, isSwipeValid, containerWidth, swipeAnimationDuration, onSwipeStart, onSwipeProgress, onSwipeFinish, onSwipeCancel, pullDownEnabled, onPullDownStart, onPullDownProgress, onPullDownFinish, onPullDownCancel) {\n const offset = React.useRef(0);\n const pointers = React.useRef([]);\n const activePointer = React.useRef();\n const startTime = React.useRef(0);\n const gesture = React.useRef(Gesture.NONE);\n const clearPointer = React.useCallback((event) => {\n if (activePointer.current === event.pointerId) {\n activePointer.current = undefined;\n gesture.current = Gesture.NONE;\n }\n const currentPointers = pointers.current;\n currentPointers.splice(0, currentPointers.length, ...currentPointers.filter((p) => p.pointerId !== event.pointerId));\n }, []);\n const addPointer = React.useCallback((event) => {\n clearPointer(event);\n event.persist();\n pointers.current.push(event);\n }, [clearPointer]);\n const onPointerDown = useEventCallback((event) => {\n addPointer(event);\n });\n const onPointerUp = useEventCallback((event) => {\n if (pointers.current.find((x) => x.pointerId === event.pointerId) &&\n activePointer.current === event.pointerId) {\n const duration = Date.now() - startTime.current;\n const currentOffset = offset.current;\n if (gesture.current === Gesture.SWIPE) {\n if (Math.abs(currentOffset) > 0.3 * containerWidth ||\n (Math.abs(currentOffset) > 5 && duration < swipeAnimationDuration)) {\n onSwipeFinish(currentOffset, duration);\n }\n else {\n onSwipeCancel(currentOffset);\n }\n }\n else if (gesture.current === Gesture.PULL_DOWN) {\n if (currentOffset > 2 * SWIPE_THRESHOLD) {\n onPullDownFinish(currentOffset, duration);\n }\n else {\n onPullDownCancel(currentOffset);\n }\n }\n offset.current = 0;\n gesture.current = Gesture.NONE;\n }\n clearPointer(event);\n });\n const onPointerMove = useEventCallback((event) => {\n const pointer = pointers.current.find((p) => p.pointerId === event.pointerId);\n if (pointer) {\n const isCurrentPointer = activePointer.current === event.pointerId;\n if (event.buttons === 0) {\n if (isCurrentPointer && offset.current !== 0) {\n onPointerUp(event);\n }\n else {\n clearPointer(pointer);\n }\n return;\n }\n const deltaX = event.clientX - pointer.clientX;\n const deltaY = event.clientY - pointer.clientY;\n if (activePointer.current === undefined) {\n const startGesture = (newGesture) => {\n addPointer(event);\n activePointer.current = event.pointerId;\n startTime.current = Date.now();\n gesture.current = newGesture;\n };\n if (Math.abs(deltaX) > Math.abs(deltaY) && Math.abs(deltaX) > SWIPE_THRESHOLD && isSwipeValid(deltaX)) {\n startGesture(Gesture.SWIPE);\n onSwipeStart();\n }\n else if (pullDownEnabled && Math.abs(deltaY) > Math.abs(deltaX) && deltaY > SWIPE_THRESHOLD) {\n startGesture(Gesture.PULL_DOWN);\n onPullDownStart();\n }\n }\n else if (isCurrentPointer) {\n if (gesture.current === Gesture.SWIPE) {\n offset.current = deltaX;\n onSwipeProgress(deltaX);\n }\n else if (gesture.current === Gesture.PULL_DOWN) {\n offset.current = deltaY;\n onPullDownProgress(deltaY);\n }\n }\n }\n });\n usePointerEvents(subscribeSensors, onPointerDown, onPointerMove, onPointerUp);\n}\n\nconst WHEEL = \"wheel\";\nfunction preventDefault(event) {\n if (Math.abs(event.deltaX) > Math.abs(event.deltaY) || event.ctrlKey) {\n event.preventDefault();\n }\n}\nfunction usePreventSwipeNavigation() {\n const ref = React.useRef(null);\n return React.useCallback((node) => {\n var _a;\n if (node) {\n node.addEventListener(WHEEL, preventDefault, { passive: false });\n }\n else {\n (_a = ref.current) === null || _a === void 0 ? void 0 : _a.removeEventListener(WHEEL, preventDefault);\n }\n ref.current = node;\n }, []);\n}\n\nfunction useWheelSwipe(swipeState, subscribeSensors, isSwipeValid, containerWidth, swipeAnimationDuration, onSwipeStart, onSwipeProgress, onSwipeFinish, onSwipeCancel) {\n const offset = React.useRef(0);\n const intent = React.useRef(0);\n const intentCleanup = React.useRef();\n const resetCleanup = React.useRef();\n const wheelResidualMomentum = React.useRef(0);\n const startTime = React.useRef(0);\n const { setTimeout, clearTimeout } = useTimeouts();\n const cancelSwipeIntentCleanup = React.useCallback(() => {\n if (intentCleanup.current) {\n clearTimeout(intentCleanup.current);\n intentCleanup.current = undefined;\n }\n }, [clearTimeout]);\n const cancelSwipeResetCleanup = React.useCallback(() => {\n if (resetCleanup.current) {\n clearTimeout(resetCleanup.current);\n resetCleanup.current = undefined;\n }\n }, [clearTimeout]);\n const handleCleanup = useEventCallback(() => {\n if (swipeState !== SwipeState.SWIPE) {\n offset.current = 0;\n startTime.current = 0;\n cancelSwipeIntentCleanup();\n cancelSwipeResetCleanup();\n }\n });\n React.useEffect(handleCleanup, [swipeState, handleCleanup]);\n const handleCancelSwipe = useEventCallback((currentSwipeOffset) => {\n resetCleanup.current = undefined;\n if (offset.current === currentSwipeOffset) {\n onSwipeCancel(offset.current);\n }\n });\n const onWheel = useEventCallback((event) => {\n if (event.ctrlKey) {\n return;\n }\n if (Math.abs(event.deltaY) > Math.abs(event.deltaX)) {\n return;\n }\n if (swipeState === SwipeState.NONE) {\n if (Math.abs(event.deltaX) <= 1.2 * Math.abs(wheelResidualMomentum.current)) {\n wheelResidualMomentum.current = event.deltaX;\n return;\n }\n if (!isSwipeValid(-event.deltaX)) {\n return;\n }\n intent.current += event.deltaX;\n cancelSwipeIntentCleanup();\n if (Math.abs(intent.current) > 30) {\n intent.current = 0;\n wheelResidualMomentum.current = 0;\n startTime.current = Date.now();\n onSwipeStart();\n }\n else {\n const currentSwipeIntent = intent.current;\n intentCleanup.current = setTimeout(() => {\n intentCleanup.current = undefined;\n if (currentSwipeIntent === intent.current) {\n intent.current = 0;\n }\n }, swipeAnimationDuration);\n }\n }\n else if (swipeState === SwipeState.SWIPE) {\n let newSwipeOffset = offset.current - event.deltaX;\n newSwipeOffset = Math.min(Math.abs(newSwipeOffset), containerWidth) * Math.sign(newSwipeOffset);\n offset.current = newSwipeOffset;\n onSwipeProgress(newSwipeOffset);\n cancelSwipeResetCleanup();\n if (Math.abs(newSwipeOffset) > 0.2 * containerWidth) {\n wheelResidualMomentum.current = event.deltaX;\n onSwipeFinish(newSwipeOffset, Date.now() - startTime.current);\n return;\n }\n resetCleanup.current = setTimeout(() => handleCancelSwipe(newSwipeOffset), 2 * swipeAnimationDuration);\n }\n else {\n wheelResidualMomentum.current = event.deltaX;\n }\n });\n React.useEffect(() => subscribeSensors(EVENT_ON_WHEEL, onWheel), [subscribeSensors, onWheel]);\n}\n\nconst cssContainerPrefix = makeComposePrefix(\"container\");\nconst ControllerContext = React.createContext(null);\nconst useController = makeUseContext(\"useController\", \"ControllerContext\", ControllerContext);\nfunction Controller({ children, ...props }) {\n var _a;\n const { carousel, animation, controller, on, styles, render } = props;\n const [toolbarWidth, setToolbarWidth] = React.useState();\n const state = useLightboxState();\n const dispatch = useLightboxDispatch();\n const [swipeState, setSwipeState] = React.useState(SwipeState.NONE);\n const swipeOffset = React.useRef(0);\n const pullDownOffset = React.useRef(0);\n const pullDownOpacity = React.useRef(1);\n const { registerSensors, subscribeSensors } = useSensors();\n const { subscribe, publish } = useEvents();\n const cleanupAnimationIncrement = useDelay();\n const cleanupSwipeOffset = useDelay();\n const cleanupPullDownOffset = useDelay();\n const { containerRef, setContainerRef, containerRect } = useContainerRect();\n const handleContainerRef = useForkRef(usePreventSwipeNavigation(), setContainerRef);\n const carouselRef = React.useRef(null);\n const setCarouselRef = useForkRef(carouselRef, undefined);\n const isRTL = useRTL();\n const rtl = (value) => (isRTL ? -1 : 1) * (typeof value === \"number\" ? value : 1);\n const focus = useEventCallback(() => { var _a; return (_a = containerRef.current) === null || _a === void 0 ? void 0 : _a.focus(); });\n const getLightboxProps = useEventCallback(() => props);\n const getLightboxState = useEventCallback(() => state);\n const prev = React.useCallback((params) => publish(ACTION_PREV, params), [publish]);\n const next = React.useCallback((params) => publish(ACTION_NEXT, params), [publish]);\n const close = React.useCallback(() => publish(ACTION_CLOSE), [publish]);\n const isSwipeValid = (offset) => !(carousel.finite &&\n ((rtl(offset) > 0 && state.currentIndex === 0) ||\n (rtl(offset) < 0 && state.currentIndex === state.slides.length - 1)));\n const setSwipeOffset = (offset) => {\n var _a;\n swipeOffset.current = offset;\n (_a = containerRef.current) === null || _a === void 0 ? void 0 : _a.style.setProperty(cssVar(\"swipe_offset\"), `${Math.round(offset)}px`);\n };\n const pullDownEnabled = controller.closeOnPullDown;\n const setPullDownOffset = (offset) => {\n var _a, _b;\n pullDownOffset.current = offset;\n pullDownOpacity.current = (() => {\n const threshold = 60;\n const minOpacity = 0.5;\n return Math.min(Math.max(round(1 - (offset / threshold) * (1 - minOpacity), 2), minOpacity), 1);\n })();\n (_a = containerRef.current) === null || _a === void 0 ? void 0 : _a.style.setProperty(cssVar(\"pull_down_offset\"), `${Math.round(offset)}px`);\n (_b = containerRef.current) === null || _b === void 0 ? void 0 : _b.style.setProperty(cssVar(\"pull_down_opacity\"), `${pullDownOpacity.current}`);\n };\n const { prepareAnimation: preparePullDownAnimation } = useAnimation(carouselRef, (snapshot, rect, translate) => {\n if (carouselRef.current && containerRect) {\n return {\n keyframes: [\n {\n transform: `translate(0, ${snapshot.rect.y - rect.y + translate.y}px)`,\n opacity: snapshot.opacity,\n },\n { transform: \"translate(0, 0)\", opacity: 1 },\n ],\n duration: snapshot.duration,\n easing: animation.easing.fade,\n };\n }\n return undefined;\n });\n const pullDown = (offset, cancel) => {\n if (pullDownEnabled) {\n setPullDownOffset(offset);\n let duration = 0;\n if (carouselRef.current) {\n duration = animation.fade * (cancel ? 2 : 1);\n preparePullDownAnimation({\n rect: carouselRef.current.getBoundingClientRect(),\n opacity: pullDownOpacity.current,\n duration,\n });\n }\n cleanupPullDownOffset(() => {\n setPullDownOffset(0);\n setSwipeState(SwipeState.NONE);\n }, duration);\n setSwipeState(SwipeState.ANIMATION);\n if (!cancel) {\n close();\n }\n }\n };\n const { prepareAnimation, isAnimationPlaying } = useAnimation(carouselRef, (snapshot, rect, translate) => {\n var _a;\n if (carouselRef.current && containerRect && ((_a = state.animation) === null || _a === void 0 ? void 0 : _a.duration)) {\n const parsedSpacing = parseLengthPercentage(carousel.spacing);\n const spacingValue = (parsedSpacing.percent\n ? (parsedSpacing.percent * containerRect.width) / 100\n : parsedSpacing.pixel) || 0;\n return {\n keyframes: [\n {\n transform: `translate(${rtl(state.globalIndex - snapshot.index) * (containerRect.width + spacingValue) +\n snapshot.rect.x -\n rect.x +\n translate.x}px, 0)`,\n },\n { transform: \"translate(0, 0)\" },\n ],\n duration: state.animation.duration,\n easing: state.animation.easing,\n };\n }\n return undefined;\n });\n const swipe = useEventCallback((action) => {\n var _a, _b;\n const currentSwipeOffset = action.offset || 0;\n const swipeDuration = !currentSwipeOffset ? (_a = animation.navigation) !== null && _a !== void 0 ? _a : animation.swipe : animation.swipe;\n const swipeEasing = !currentSwipeOffset && !isAnimationPlaying() ? animation.easing.navigation : animation.easing.swipe;\n let { direction } = action;\n const count = (_b = action.count) !== null && _b !== void 0 ? _b : 1;\n let newSwipeState = SwipeState.ANIMATION;\n let newSwipeAnimationDuration = swipeDuration * count;\n if (!direction) {\n const containerWidth = containerRect === null || containerRect === void 0 ? void 0 : containerRect.width;\n const elapsedTime = action.duration || 0;\n const expectedTime = containerWidth\n ? (swipeDuration / containerWidth) * Math.abs(currentSwipeOffset)\n : swipeDuration;\n if (count !== 0) {\n if (elapsedTime < expectedTime) {\n newSwipeAnimationDuration =\n (newSwipeAnimationDuration / expectedTime) * Math.max(elapsedTime, expectedTime / 5);\n }\n else if (containerWidth) {\n newSwipeAnimationDuration =\n (swipeDuration / containerWidth) * (containerWidth - Math.abs(currentSwipeOffset));\n }\n direction = rtl(currentSwipeOffset) > 0 ? ACTION_PREV : ACTION_NEXT;\n }\n else {\n newSwipeAnimationDuration = swipeDuration / 2;\n }\n }\n let increment = 0;\n if (direction === ACTION_PREV) {\n if (isSwipeValid(rtl(1))) {\n increment = -count;\n }\n else {\n newSwipeState = SwipeState.NONE;\n newSwipeAnimationDuration = swipeDuration;\n }\n }\n else if (direction === ACTION_NEXT) {\n if (isSwipeValid(rtl(-1))) {\n increment = count;\n }\n else {\n newSwipeState = SwipeState.NONE;\n newSwipeAnimationDuration = swipeDuration;\n }\n }\n newSwipeAnimationDuration = Math.round(newSwipeAnimationDuration);\n cleanupSwipeOffset(() => {\n setSwipeOffset(0);\n setSwipeState(SwipeState.NONE);\n }, newSwipeAnimationDuration);\n if (carouselRef.current) {\n prepareAnimation({\n rect: carouselRef.current.getBoundingClientRect(),\n index: state.globalIndex,\n });\n }\n setSwipeState(newSwipeState);\n publish(ACTION_SWIPE, {\n type: \"swipe\",\n increment,\n duration: newSwipeAnimationDuration,\n easing: swipeEasing,\n });\n });\n React.useEffect(() => {\n var _a, _b;\n if (((_a = state.animation) === null || _a === void 0 ? void 0 : _a.increment) && ((_b = state.animation) === null || _b === void 0 ? void 0 : _b.duration)) {\n cleanupAnimationIncrement(() => dispatch({ type: \"swipe\", increment: 0 }), state.animation.duration);\n }\n }, [state.animation, dispatch, cleanupAnimationIncrement]);\n const swipeParams = [\n subscribeSensors,\n isSwipeValid,\n (containerRect === null || containerRect === void 0 ? void 0 : containerRect.width) || 0,\n animation.swipe,\n () => setSwipeState(SwipeState.SWIPE),\n (offset) => setSwipeOffset(offset),\n (offset, duration) => swipe({ offset, duration, count: 1 }),\n (offset) => swipe({ offset, count: 0 }),\n ];\n const pullDownParams = [\n () => {\n if (pullDownEnabled) {\n setSwipeState(SwipeState.PULL_DOWN);\n }\n },\n (offset) => setPullDownOffset(offset),\n (offset) => pullDown(offset),\n (offset) => pullDown(offset, true),\n ];\n usePointerSwipe(...swipeParams, pullDownEnabled, ...pullDownParams);\n useWheelSwipe(swipeState, ...swipeParams);\n const focusOnMount = useEventCallback(() => {\n var _a;\n if (controller.focus) {\n (_a = containerRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n }\n });\n React.useEffect(focusOnMount, [focusOnMount]);\n const onViewCallback = useEventCallback(() => {\n var _a;\n (_a = on.view) === null || _a === void 0 ? void 0 : _a.call(on, { index: state.currentIndex });\n });\n React.useEffect(onViewCallback, [state.globalIndex, onViewCallback]);\n React.useEffect(() => cleanup(subscribe(ACTION_PREV, (action) => swipe({ direction: ACTION_PREV, ...action })), subscribe(ACTION_NEXT, (action) => swipe({ direction: ACTION_NEXT, ...action })), subscribe(ACTION_SWIPE, (action) => dispatch(action))), [subscribe, swipe, dispatch]);\n React.useEffect(() => subscribeSensors(EVENT_ON_KEY_UP, (event) => {\n if (event.key === VK_ESCAPE) {\n close();\n }\n }), [subscribeSensors, close]);\n const context = React.useMemo(() => ({\n prev,\n next,\n close,\n focus,\n slideRect: containerRect ? computeSlideRect(containerRect, carousel.padding) : { width: 0, height: 0 },\n containerRect: containerRect || { width: 0, height: 0 },\n subscribeSensors,\n containerRef,\n setCarouselRef,\n toolbarWidth,\n setToolbarWidth,\n }), [\n prev,\n next,\n close,\n focus,\n subscribeSensors,\n containerRect,\n containerRef,\n setCarouselRef,\n toolbarWidth,\n setToolbarWidth,\n carousel.padding,\n ]);\n React.useImperativeHandle(controller.ref, () => ({\n prev,\n next,\n close,\n focus,\n getLightboxProps,\n getLightboxState,\n }), [prev, next, close, focus, getLightboxProps, getLightboxState]);\n return (React.createElement(\"div\", { ref: handleContainerRef, className: clsx(cssClass(cssContainerPrefix()), cssClass(CLASS_FLEX_CENTER)), style: {\n ...(swipeState === SwipeState.SWIPE\n ? { [cssVar(\"swipe_offset\")]: `${Math.round(swipeOffset.current)}px` }\n : null),\n ...(swipeState === SwipeState.PULL_DOWN\n ? {\n [cssVar(\"pull_down_offset\")]: `${Math.round(pullDownOffset.current)}px`,\n [cssVar(\"pull_down_opacity\")]: `${pullDownOpacity.current}`,\n }\n : null),\n ...(controller.touchAction !== \"none\"\n ? { [cssVar(\"controller_touch_action\")]: controller.touchAction }\n : null),\n ...styles.container,\n }, ...(controller.aria ? { role: \"presentation\", \"aria-live\": \"polite\" } : null), tabIndex: -1, ...registerSensors }, containerRect && (React.createElement(ControllerContext.Provider, { value: context },\n children, (_a = render.controls) === null || _a === void 0 ? void 0 :\n _a.call(render)))));\n}\nconst ControllerModule = createModule(MODULE_CONTROLLER, Controller);\n\nfunction cssPrefix$2(value) {\n return composePrefix(MODULE_CAROUSEL, value);\n}\nfunction cssSlidePrefix(value) {\n return composePrefix(\"slide\", value);\n}\nfunction CarouselSlide({ slide, offset }) {\n const containerRef = React.useRef(null);\n const { currentIndex } = useLightboxState();\n const { slideRect, close } = useController();\n const { render, carousel: { imageFit, imageProps }, on: { click: onClick }, controller: { closeOnBackdropClick }, styles: { slide: style }, } = useLightboxProps();\n const renderSlide = () => {\n var _a, _b, _c, _d;\n let rendered = (_a = render.slide) === null || _a === void 0 ? void 0 : _a.call(render, { slide, offset, rect: slideRect });\n if (!rendered && isImageSlide(slide)) {\n rendered = (React.createElement(ImageSlide, { slide: slide, offset: offset, render: render, rect: slideRect, imageFit: imageFit, imageProps: imageProps, onClick: offset === 0 ? () => onClick === null || onClick === void 0 ? void 0 : onClick({ index: currentIndex }) : undefined }));\n }\n return rendered ? (React.createElement(React.Fragment, null, (_b = render.slideHeader) === null || _b === void 0 ? void 0 :\n _b.call(render, { slide }),\n ((_c = render.slideContainer) !== null && _c !== void 0 ? _c : (({ children }) => children))({ slide, children: rendered }), (_d = render.slideFooter) === null || _d === void 0 ? void 0 :\n _d.call(render, { slide }))) : null;\n };\n const handleBackdropClick = (event) => {\n const container = containerRef.current;\n const target = event.target instanceof HTMLElement ? event.target : undefined;\n if (closeOnBackdropClick &&\n target &&\n container &&\n (target === container ||\n (Array.from(container.children).find((x) => x === target) &&\n target.classList.contains(cssClass(CLASS_FULLSIZE))))) {\n close();\n }\n };\n return (React.createElement(\"div\", { ref: containerRef, className: clsx(cssClass(cssSlidePrefix()), offset === 0 && cssClass(cssSlidePrefix(\"current\")), cssClass(CLASS_FLEX_CENTER)), onClick: handleBackdropClick, style: style }, renderSlide()));\n}\nfunction Placeholder() {\n const style = useLightboxProps().styles.slide;\n return React.createElement(\"div\", { className: cssClass(\"slide\"), style: style });\n}\nfunction Carousel({ carousel: { finite, preload, padding, spacing } }) {\n const { slides, currentIndex, globalIndex } = useLightboxState();\n const { setCarouselRef } = useController();\n const spacingValue = parseLengthPercentage(spacing);\n const paddingValue = parseLengthPercentage(padding);\n const items = [];\n if ((slides === null || slides === void 0 ? void 0 : slides.length) > 0) {\n for (let i = currentIndex - preload; i < currentIndex; i += 1) {\n const key = globalIndex + i - currentIndex;\n items.push(!finite || i >= 0 ? (React.createElement(CarouselSlide, { key: key, slide: slides[(i + preload * slides.length) % slides.length], offset: i - currentIndex })) : (React.createElement(Placeholder, { key: key })));\n }\n items.push(React.createElement(CarouselSlide, { key: globalIndex, slide: slides[currentIndex], offset: 0 }));\n for (let i = currentIndex + 1; i <= currentIndex + preload; i += 1) {\n const key = globalIndex + i - currentIndex;\n items.push(!finite || i <= slides.length - 1 ? (React.createElement(CarouselSlide, { key: key, slide: slides[i % slides.length], offset: i - currentIndex })) : (React.createElement(Placeholder, { key: key })));\n }\n }\n return (React.createElement(\"div\", { ref: setCarouselRef, className: clsx(cssClass(cssPrefix$2()), items.length > 0 && cssClass(cssPrefix$2(\"with_slides\"))), style: {\n [`${cssVar(cssPrefix$2(\"slides_count\"))}`]: items.length,\n [`${cssVar(cssPrefix$2(\"spacing_px\"))}`]: spacingValue.pixel || 0,\n [`${cssVar(cssPrefix$2(\"spacing_percent\"))}`]: spacingValue.percent || 0,\n [`${cssVar(cssPrefix$2(\"padding_px\"))}`]: paddingValue.pixel || 0,\n [`${cssVar(cssPrefix$2(\"padding_percent\"))}`]: paddingValue.percent || 0,\n } }, items));\n}\nconst CarouselModule = createModule(MODULE_CAROUSEL, Carousel);\n\nfunction NavigationButton({ label, icon, renderIcon, action, onClick, disabled, style }) {\n return (React.createElement(IconButton, { label: label, icon: icon, renderIcon: renderIcon, className: cssClass(`navigation_${action}`), disabled: disabled, onClick: onClick, style: style, ...useLoseFocus(useController().focus, disabled) }));\n}\nfunction Navigation({ carousel: { finite }, animation, render: { buttonPrev, buttonNext, iconPrev, iconNext }, styles, }) {\n var _a;\n const { slides, currentIndex } = useLightboxState();\n const { prev, next, subscribeSensors } = useController();\n const isRTL = useRTL();\n const prevDisabled = slides.length === 0 || (finite && currentIndex === 0);\n const nextDisabled = slides.length === 0 || (finite && currentIndex === slides.length - 1);\n const throttle = ((_a = animation.navigation) !== null && _a !== void 0 ? _a : animation.swipe) / 2;\n const prevThrottled = useThrottle(prev, throttle);\n const nextThrottled = useThrottle(next, throttle);\n const handleKeyDown = useEventCallback((event) => {\n if (event.key === VK_ARROW_LEFT && !(isRTL ? nextDisabled : prevDisabled)) {\n (isRTL ? nextThrottled : prevThrottled)();\n }\n if (event.key === VK_ARROW_RIGHT && !(isRTL ? prevDisabled : nextDisabled)) {\n (isRTL ? prevThrottled : nextThrottled)();\n }\n });\n React.useEffect(() => subscribeSensors(EVENT_ON_KEY_DOWN, handleKeyDown), [subscribeSensors, handleKeyDown]);\n return (React.createElement(React.Fragment, null,\n buttonPrev ? (buttonPrev()) : (React.createElement(NavigationButton, { label: \"Previous\", action: ACTION_PREV, icon: PreviousIcon, renderIcon: iconPrev, style: styles.navigationPrev, disabled: prevDisabled, onClick: prev })),\n buttonNext ? (buttonNext()) : (React.createElement(NavigationButton, { label: \"Next\", action: ACTION_NEXT, icon: NextIcon, renderIcon: iconNext, style: styles.navigationNext, disabled: nextDisabled, onClick: next }))));\n}\nconst NavigationModule = createModule(MODULE_NAVIGATION, Navigation);\n\nconst noScroll = cssClass(CLASS_NO_SCROLL);\nconst noScrollPadding = cssClass(CLASS_NO_SCROLL_PADDING);\nfunction isHTMLElement(element) {\n return \"style\" in element;\n}\nfunction padScrollbar(element, padding, rtl) {\n const styles = window.getComputedStyle(element);\n const property = rtl ? \"padding-left\" : \"padding-right\";\n const computedValue = rtl ? styles.paddingLeft : styles.paddingRight;\n const originalValue = element.style.getPropertyValue(property);\n element.style.setProperty(property, `${(parseInt(computedValue, 10) || 0) + padding}px`);\n return () => {\n if (originalValue) {\n element.style.setProperty(property, originalValue);\n }\n else {\n element.style.removeProperty(property);\n }\n };\n}\nfunction NoScroll({ children }) {\n const rtl = useRTL();\n useLayoutEffect(() => {\n const cleanup = [];\n const { body, documentElement } = document;\n const scrollbar = Math.round(window.innerWidth - documentElement.clientWidth);\n if (scrollbar > 0) {\n cleanup.push(padScrollbar(body, scrollbar, rtl));\n const elements = body.getElementsByTagName(\"*\");\n for (let i = 0; i < elements.length; i += 1) {\n const element = elements[i];\n if (isHTMLElement(element) &&\n window.getComputedStyle(element).getPropertyValue(\"position\") === \"fixed\" &&\n !element.classList.contains(noScrollPadding)) {\n cleanup.push(padScrollbar(element, scrollbar, rtl));\n }\n }\n }\n body.classList.add(noScroll);\n return () => {\n body.classList.remove(noScroll);\n cleanup.forEach((clean) => clean());\n };\n }, [rtl]);\n return React.createElement(React.Fragment, null, children);\n}\nconst NoScrollModule = createModule(MODULE_NO_SCROLL, NoScroll);\n\nfunction cssPrefix$1(value) {\n return composePrefix(MODULE_PORTAL, value);\n}\nfunction setAttribute(element, attribute, value) {\n const previousValue = element.getAttribute(attribute);\n element.setAttribute(attribute, value);\n return () => {\n if (previousValue) {\n element.setAttribute(attribute, previousValue);\n }\n else {\n element.removeAttribute(attribute);\n }\n };\n}\nfunction Portal({ children, animation, styles, className, on, portal, close }) {\n const [mounted, setMounted] = React.useState(false);\n const [visible, setVisible] = React.useState(false);\n const cleanup = React.useRef([]);\n const { setTimeout } = useTimeouts();\n const { subscribe } = useEvents();\n const reduceMotion = useMotionPreference();\n const animationDuration = !reduceMotion ? animation.fade : 0;\n React.useEffect(() => {\n setMounted(true);\n return () => {\n setMounted(false);\n setVisible(false);\n };\n }, []);\n const handleClose = useEventCallback(() => {\n var _a;\n setVisible(false);\n (_a = on.exiting) === null || _a === void 0 ? void 0 : _a.call(on);\n setTimeout(() => {\n var _a;\n (_a = on.exited) === null || _a === void 0 ? void 0 : _a.call(on);\n close();\n }, animationDuration);\n });\n React.useEffect(() => subscribe(ACTION_CLOSE, handleClose), [subscribe, handleClose]);\n const handleEnter = useEventCallback((node) => {\n var _a, _b, _c;\n node.scrollTop;\n setVisible(true);\n (_a = on.entering) === null || _a === void 0 ? void 0 : _a.call(on);\n const elements = (_c = (_b = node.parentNode) === null || _b === void 0 ? void 0 : _b.children) !== null && _c !== void 0 ? _c : [];\n for (let i = 0; i < elements.length; i += 1) {\n const element = elements[i];\n if ([\"TEMPLATE\", \"SCRIPT\", \"STYLE\"].indexOf(element.tagName) === -1 && element !== node) {\n cleanup.current.push(setAttribute(element, \"inert\", \"true\"));\n cleanup.current.push(setAttribute(element, \"aria-hidden\", \"true\"));\n }\n }\n setTimeout(() => {\n var _a;\n (_a = on.entered) === null || _a === void 0 ? void 0 : _a.call(on);\n }, animationDuration);\n });\n const handleExit = useEventCallback(() => {\n cleanup.current.forEach((clean) => clean());\n cleanup.current = [];\n });\n const handleRef = React.useCallback((node) => {\n if (node) {\n handleEnter(node);\n }\n else {\n handleExit();\n }\n }, [handleEnter, handleExit]);\n return mounted\n ? createPortal(React.createElement(\"div\", { ref: handleRef, className: clsx(className, cssClass(\"root\"), cssClass(cssPrefix$1()), cssClass(CLASS_NO_SCROLL_PADDING), visible && cssClass(cssPrefix$1(\"open\"))), role: \"presentation\", \"aria-live\": \"polite\", style: {\n ...(animation.fade !== LightboxDefaultProps.animation.fade\n ? { [cssVar(\"fade_animation_duration\")]: `${animationDuration}ms` }\n : null),\n ...(animation.easing.fade !== LightboxDefaultProps.animation.easing.fade\n ? { [cssVar(\"fade_animation_timing_function\")]: animation.easing.fade }\n : null),\n ...styles.root,\n } }, children), portal.root || document.body)\n : null;\n}\nconst PortalModule = createModule(MODULE_PORTAL, Portal);\n\nfunction Root({ children }) {\n return React.createElement(React.Fragment, null, children);\n}\nconst RootModule = createModule(MODULE_ROOT, Root);\n\nfunction cssPrefix(value) {\n return composePrefix(MODULE_TOOLBAR, value);\n}\nfunction Toolbar({ toolbar: { buttons }, render: { buttonClose, iconClose }, styles }) {\n const { close, setToolbarWidth } = useController();\n const { setContainerRef, containerRect } = useContainerRect();\n useLayoutEffect(() => {\n setToolbarWidth(containerRect === null || containerRect === void 0 ? void 0 : containerRect.width);\n }, [setToolbarWidth, containerRect === null || containerRect === void 0 ? void 0 : containerRect.width]);\n const renderCloseButton = () => {\n if (buttonClose)\n return buttonClose();\n return React.createElement(IconButton, { key: ACTION_CLOSE, label: \"Close\", icon: CloseIcon, renderIcon: iconClose, onClick: close });\n };\n return (React.createElement(\"div\", { ref: setContainerRef, style: styles.toolbar, className: cssClass(cssPrefix()), ...stopNavigationEventsPropagation() }, buttons === null || buttons === void 0 ? void 0 : buttons.map((button) => (button === ACTION_CLOSE ? renderCloseButton() : button))));\n}\nconst ToolbarModule = createModule(MODULE_TOOLBAR, Toolbar);\n\nfunction renderNode(node, props) {\n var _a;\n return React.createElement(node.module.component, { key: node.module.name, ...props }, (_a = node.children) === null || _a === void 0 ? void 0 : _a.map((child) => renderNode(child, props)));\n}\nfunction mergeAnimation(defaultAnimation, animation = {}) {\n const { easing: defaultAnimationEasing, ...restDefaultAnimation } = defaultAnimation;\n const { easing, ...restAnimation } = animation;\n return {\n easing: { ...defaultAnimationEasing, ...easing },\n ...restDefaultAnimation,\n ...restAnimation,\n };\n}\nfunction Lightbox({ carousel, animation, render, toolbar, controller, on, plugins, slides, index, ...restProps }) {\n const { animation: defaultAnimation, carousel: defaultCarousel, render: defaultRender, toolbar: defaultToolbar, controller: defaultController, on: defaultOn, slides: defaultSlides, index: defaultIndex, plugins: defaultPlugins, ...restDefaultProps } = LightboxDefaultProps;\n const { config, augmentation } = withPlugins([\n createNode(PortalModule, [\n createNode(NoScrollModule, [\n createNode(ControllerModule, [\n createNode(CarouselModule),\n createNode(ToolbarModule),\n createNode(NavigationModule),\n ]),\n ]),\n ]),\n ], plugins || defaultPlugins);\n const props = augmentation({\n animation: mergeAnimation(defaultAnimation, animation),\n carousel: { ...defaultCarousel, ...carousel },\n render: { ...defaultRender, ...render },\n toolbar: { ...defaultToolbar, ...toolbar },\n controller: { ...defaultController, ...controller },\n on: { ...defaultOn, ...on },\n ...restDefaultProps,\n ...restProps,\n });\n if (!props.open)\n return null;\n return (React.createElement(LightboxPropsProvider, { ...props },\n React.createElement(LightboxStateProvider, { slides: slides || defaultSlides, index: index || defaultIndex },\n React.createElement(TimeoutsProvider, null,\n React.createElement(EventsProvider, null, renderNode(createNode(RootModule, config), props))))));\n}\n\nexport { ACTION_CLOSE, ACTION_NEXT, ACTION_PREV, ACTION_SWIPE, CLASS_FLEX_CENTER, CLASS_FULLSIZE, CLASS_NO_SCROLL, CLASS_NO_SCROLL_PADDING, Carousel, CarouselModule, CloseIcon, Controller, ControllerContext, ControllerModule, ELEMENT_BUTTON, ELEMENT_ICON, EVENT_ON_KEY_DOWN, EVENT_ON_KEY_UP, EVENT_ON_POINTER_CANCEL, EVENT_ON_POINTER_DOWN, EVENT_ON_POINTER_LEAVE, EVENT_ON_POINTER_MOVE, EVENT_ON_POINTER_UP, EVENT_ON_WHEEL, ErrorIcon, EventsContext, EventsProvider, IMAGE_FIT_CONTAIN, IMAGE_FIT_COVER, IconButton, ImageSlide, Lightbox, LightboxDefaultProps, LightboxDispatchContext, LightboxPropsContext, LightboxPropsProvider, LightboxStateContext, LightboxStateProvider, LoadingIcon, MODULE_CAROUSEL, MODULE_CONTROLLER, MODULE_NAVIGATION, MODULE_NO_SCROLL, MODULE_PORTAL, MODULE_ROOT, MODULE_TOOLBAR, Navigation, NavigationButton, NavigationModule, NextIcon, NoScroll, NoScrollModule, Portal, PortalModule, PreviousIcon, Root, RootModule, SLIDE_STATUS_COMPLETE, SLIDE_STATUS_ERROR, SLIDE_STATUS_LOADING, SLIDE_STATUS_PLACEHOLDER, SwipeState, TimeoutsContext, TimeoutsProvider, Toolbar, ToolbarModule, UNKNOWN_ACTION_TYPE, VK_ARROW_LEFT, VK_ARROW_RIGHT, VK_ESCAPE, activeSlideStatus, addToolbarButton, cleanup, clsx, composePrefix, computeSlideRect, createIcon, createIconDisabled, createModule, createNode, cssClass, cssVar, Lightbox as default, devicePixelRatio, getSlide, getSlideIfPresent, getSlideIndex, hasSlides, hasWindow, isImageFitCover, isImageSlide, label, makeComposePrefix, makeUseContext, parseLengthPercentage, round, setRef, stopNavigationEventsPropagation, useAnimation, useContainerRect, useController, useDelay, useEventCallback, useEvents, useForkRef, useLayoutEffect, useLightboxDispatch, useLightboxProps, useLightboxState, useLoseFocus, useMotionPreference, usePointerEvents, usePointerSwipe, usePreventSwipeNavigation, useRTL, useSensors, useThrottle, useTimeouts, useWheelSwipe, withPlugins };","import { cssClass, useLightboxProps, makeUseContext, useController, clsx, cssVar, createIcon, createIconDisabled, IconButton, addToolbarButton, createModule } from '../../index.js';\nimport * as React from 'react';\nimport { PLUGIN_CAPTIONS } from '../../types.js';\n\nconst cssPrefix = (className) => cssClass(`slide_${className}`);\n\nconst defaultCaptionsProps = {\n descriptionTextAlign: \"start\",\n descriptionMaxLines: 3,\n showToggle: false,\n};\nconst resolveCaptionsProps = (captions) => ({\n ...defaultCaptionsProps,\n ...captions,\n});\nfunction useCaptionsProps() {\n const { captions } = useLightboxProps();\n return resolveCaptionsProps(captions);\n}\n\nconst CaptionsContext = React.createContext(null);\nconst useCaptions = makeUseContext(\"useCaptions\", \"CaptionsContext\", CaptionsContext);\nfunction CaptionsContextProvider({ captions, children }) {\n const { ref } = resolveCaptionsProps(captions);\n const [visible, setVisible] = React.useState(true);\n const context = React.useMemo(() => ({\n visible,\n show: () => setVisible(true),\n hide: () => setVisible(false),\n }), [visible]);\n React.useImperativeHandle(ref, () => context, [context]);\n return React.createElement(CaptionsContext.Provider, { value: context }, children);\n}\n\nfunction Title({ title }) {\n const { toolbarWidth } = useController();\n const { styles } = useLightboxProps();\n const { visible } = useCaptions();\n if (!visible)\n return null;\n return (React.createElement(\"div\", { style: styles.captionsTitleContainer, className: clsx(cssPrefix(\"captions_container\"), cssPrefix(\"title_container\")) },\n React.createElement(\"div\", { className: cssPrefix(\"title\"), style: {\n ...(toolbarWidth ? { [cssVar(\"toolbar_width\")]: `${toolbarWidth}px` } : null),\n ...styles.captionsTitle,\n } }, title)));\n}\n\nfunction Description({ description }) {\n const { descriptionTextAlign, descriptionMaxLines } = useCaptionsProps();\n const { styles } = useLightboxProps();\n const { visible } = useCaptions();\n if (!visible)\n return null;\n return (React.createElement(\"div\", { style: styles.captionsDescriptionContainer, className: clsx(cssPrefix(\"captions_container\"), cssPrefix(\"description_container\")) },\n React.createElement(\"div\", { className: cssPrefix(\"description\"), style: {\n ...(descriptionTextAlign !== defaultCaptionsProps.descriptionTextAlign ||\n descriptionMaxLines !== defaultCaptionsProps.descriptionMaxLines\n ? {\n [cssVar(\"slide_description_text_align\")]: descriptionTextAlign,\n [cssVar(\"slide_description_max_lines\")]: descriptionMaxLines,\n }\n : null),\n ...styles.captionsDescription,\n } }, typeof description === \"string\"\n ? description\n .split(\"\\n\")\n .flatMap((line, index) => [...(index > 0 ? [React.createElement(\"br\", { key: index })] : []), line])\n : description)));\n}\n\nconst captionsIcon = () => (React.createElement(React.Fragment, null,\n React.createElement(\"path\", { strokeWidth: 2, stroke: \"currentColor\", strokeLinejoin: \"round\", fill: \"none\", d: \"M3 5l18 0l0 14l-18 0l0-14z\" }),\n React.createElement(\"path\", { d: \"M7 15h3c.55 0 1-.45 1-1v-1H9.5v.5h-2v-3h2v.5H11v-1c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1zm7 0h3c.55 0 1-.45 1-1v-1h-1.5v.5h-2v-3h2v.5H18v-1c0-.55-.45-1-1-1h-3c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1z\" })));\nconst CaptionsVisible = createIcon(\"CaptionsVisible\", captionsIcon());\nconst CaptionsHidden = createIconDisabled(\"CaptionsVisible\", captionsIcon());\nfunction CaptionsButton() {\n const { visible, show, hide } = useCaptions();\n const { render } = useLightboxProps();\n if (render.buttonCaptions) {\n return React.createElement(React.Fragment, null, render.buttonCaptions({ visible, show, hide }));\n }\n return (React.createElement(IconButton, { label: visible ? \"Hide captions\" : \"Show captions\", icon: visible ? CaptionsVisible : CaptionsHidden, renderIcon: visible ? render.iconCaptionsVisible : render.iconCaptionsHidden, onClick: visible ? hide : show }));\n}\n\nfunction Captions({ augment, addModule }) {\n augment(({ captions: captionsProps, render: { slideFooter: renderFooter, ...restRender }, toolbar, ...restProps }) => {\n const captions = resolveCaptionsProps(captionsProps);\n return {\n render: {\n slideFooter: ({ slide }) => (React.createElement(React.Fragment, null, renderFooter === null || renderFooter === void 0 ? void 0 :\n renderFooter({ slide }),\n slide.title && React.createElement(Title, { title: slide.title }),\n slide.description && React.createElement(Description, { description: slide.description }))),\n ...restRender,\n },\n toolbar: addToolbarButton(toolbar, PLUGIN_CAPTIONS, captions.showToggle ? React.createElement(CaptionsButton, null) : null),\n captions,\n ...restProps,\n };\n });\n addModule(createModule(PLUGIN_CAPTIONS, CaptionsContextProvider));\n}\n\nexport { Captions as default };\n","import { makeUseContext, useLayoutEffect, useEventCallback, clsx, cssClass, createIcon, useLightboxProps, IconButton, addToolbarButton, createModule } from '../../index.js';\nimport * as React from 'react';\nimport { PLUGIN_FULLSCREEN, CLASS_FULLSIZE, PLUGIN_THUMBNAILS, MODULE_CONTROLLER } from '../../types.js';\n\nconst defaultFullscreenProps = {\n auto: false,\n ref: null,\n};\nconst resolveFullscreenProps = (fullscreen) => ({\n ...defaultFullscreenProps,\n ...fullscreen,\n});\n\nconst FullscreenContext = React.createContext(null);\nconst useFullscreen = makeUseContext(\"useFullscreen\", \"FullscreenContext\", FullscreenContext);\nfunction FullscreenContextProvider({ fullscreen: fullscreenProps, children }) {\n const { auto, ref } = resolveFullscreenProps(fullscreenProps);\n const containerRef = React.useRef(null);\n const [fullscreen, setFullscreen] = React.useState(false);\n const [disabled, setDisabled] = React.useState();\n useLayoutEffect(() => {\n var _a, _b, _c, _d;\n setDisabled(!((_d = (_c = (_b = (_a = document.fullscreenEnabled) !== null && _a !== void 0 ? _a : document.webkitFullscreenEnabled) !== null && _b !== void 0 ? _b : document.mozFullScreenEnabled) !== null && _c !== void 0 ? _c : document.msFullscreenEnabled) !== null && _d !== void 0 ? _d : false));\n }, []);\n const getFullscreenElement = React.useCallback(() => {\n var _a, _b, _c;\n return (_c = (_b = (_a = document.fullscreenElement) !== null && _a !== void 0 ? _a : document.webkitFullscreenElement) !== null && _b !== void 0 ? _b : document.mozFullScreenElement) !== null && _c !== void 0 ? _c : document.msFullscreenElement;\n }, []);\n const enter = React.useCallback(() => {\n const container = containerRef.current;\n if (container) {\n try {\n if (container.requestFullscreen) {\n container.requestFullscreen().catch(() => { });\n }\n else if (container.webkitRequestFullscreen) {\n container.webkitRequestFullscreen();\n }\n else if (container.mozRequestFullScreen) {\n container.mozRequestFullScreen();\n }\n else if (container.msRequestFullscreen) {\n container.msRequestFullscreen();\n }\n }\n catch (err) {\n }\n }\n }, []);\n const exit = React.useCallback(() => {\n if (getFullscreenElement()) {\n try {\n if (document.exitFullscreen) {\n document.exitFullscreen().catch(() => { });\n }\n else if (document.webkitExitFullscreen) {\n document.webkitExitFullscreen();\n }\n else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen();\n }\n else if (document.msExitFullscreen) {\n document.msExitFullscreen();\n }\n }\n catch (err) {\n }\n }\n }, [getFullscreenElement]);\n const fullscreenChangeListener = React.useCallback(() => {\n if (getFullscreenElement() === containerRef.current) {\n setFullscreen(true);\n }\n else {\n setFullscreen(false);\n }\n }, [getFullscreenElement]);\n React.useEffect(() => {\n const events = [\"fullscreenchange\", \"webkitfullscreenchange\", \"mozfullscreenchange\", \"MSFullscreenChange\"];\n events.forEach((event) => {\n document.addEventListener(event, fullscreenChangeListener);\n });\n return () => {\n events.forEach((event) => {\n document.removeEventListener(event, fullscreenChangeListener);\n });\n };\n }, [fullscreenChangeListener]);\n const handleAutoFullscreen = useEventCallback(() => { var _a; return (_a = (auto ? enter : null)) === null || _a === void 0 ? void 0 : _a(); });\n React.useEffect(() => {\n handleAutoFullscreen();\n return () => exit();\n }, [handleAutoFullscreen, exit]);\n const context = React.useMemo(() => ({\n fullscreen,\n disabled,\n enter,\n exit,\n }), [fullscreen, disabled, enter, exit]);\n React.useImperativeHandle(ref, () => context, [context]);\n return (React.createElement(\"div\", { ref: containerRef, className: clsx(cssClass(PLUGIN_FULLSCREEN), cssClass(CLASS_FULLSIZE)) },\n React.createElement(FullscreenContext.Provider, { value: context }, children)));\n}\n\nconst EnterFullscreenIcon = createIcon(\"EnterFullscreen\", React.createElement(\"path\", { d: \"M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z\" }));\nconst ExitFullscreenIcon = createIcon(\"ExitFullscreen\", React.createElement(\"path\", { d: \"M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z\" }));\nfunction FullscreenButton() {\n var _a;\n const { fullscreen, disabled, enter, exit } = useFullscreen();\n const { render } = useLightboxProps();\n if (disabled)\n return null;\n if (render.buttonFullscreen) {\n return React.createElement(React.Fragment, null, (_a = render.buttonFullscreen) === null || _a === void 0 ? void 0 : _a.call(render, { fullscreen, disabled, enter, exit }));\n }\n return (React.createElement(IconButton, { disabled: disabled, label: fullscreen ? \"Exit Fullscreen\" : \"Enter Fullscreen\", icon: fullscreen ? ExitFullscreenIcon : EnterFullscreenIcon, renderIcon: fullscreen ? render.iconExitFullscreen : render.iconEnterFullscreen, onClick: fullscreen ? exit : enter }));\n}\n\nfunction Fullscreen({ augment, contains, addParent }) {\n augment(({ fullscreen, toolbar, ...restProps }) => ({\n toolbar: addToolbarButton(toolbar, PLUGIN_FULLSCREEN, React.createElement(FullscreenButton, null)),\n fullscreen: resolveFullscreenProps(fullscreen),\n ...restProps,\n }));\n addParent(contains(PLUGIN_THUMBNAILS) ? PLUGIN_THUMBNAILS : MODULE_CONTROLLER, createModule(PLUGIN_FULLSCREEN, FullscreenContextProvider));\n}\n\nexport { Fullscreen as default };\n","import { makeUseContext, useLightboxState, useTimeouts, useEvents, useController, useEventCallback, cleanup, createIcon, useLightboxProps, useLoseFocus, IconButton, addToolbarButton, createModule } from '../../index.js';\nimport * as React from 'react';\nimport { 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';\n\nconst defaultSlideshowProps = {\n autoplay: false,\n delay: 3000,\n ref: null,\n};\nconst resolveSlideshowProps = (slideshow) => ({\n ...defaultSlideshowProps,\n ...slideshow,\n});\n\nconst SlideshowContext = React.createContext(null);\nconst useSlideshow = makeUseContext(\"useSlideshow\", \"SlideshowContext\", SlideshowContext);\nfunction SlideshowContextProvider({ slideshow, carousel: { finite }, on, children }) {\n const { autoplay, delay, ref } = resolveSlideshowProps(slideshow);\n const wasPlaying = React.useRef(autoplay);\n const [playing, setPlaying] = React.useState(autoplay);\n const scheduler = React.useRef();\n const slideStatus = React.useRef();\n const { slides, currentIndex } = useLightboxState();\n const { setTimeout, clearTimeout } = useTimeouts();\n const { subscribe } = useEvents();\n const { next } = useController();\n const disabled = slides.length === 0 || (finite && currentIndex === slides.length - 1);\n const play = React.useCallback(() => {\n if (!playing && !disabled) {\n setPlaying(true);\n }\n }, [playing, disabled]);\n const pause = React.useCallback(() => {\n if (playing) {\n setPlaying(false);\n }\n }, [playing]);\n const cancelScheduler = React.useCallback(() => {\n clearTimeout(scheduler.current);\n scheduler.current = undefined;\n }, [clearTimeout]);\n const scheduleNextSlide = useEventCallback(() => {\n cancelScheduler();\n if (!playing ||\n disabled ||\n slideStatus.current === SLIDE_STATUS_LOADING ||\n slideStatus.current === SLIDE_STATUS_PLAYING) {\n return;\n }\n scheduler.current = setTimeout(() => {\n if (playing) {\n slideStatus.current = undefined;\n next();\n }\n }, delay);\n });\n React.useEffect(scheduleNextSlide, [currentIndex, playing, scheduleNextSlide]);\n React.useEffect(() => {\n if (playing && disabled) {\n setPlaying(false);\n }\n }, [currentIndex, playing, disabled]);\n const onSlideshowStart = useEventCallback(() => { var _a; return (_a = on.slideshowStart) === null || _a === void 0 ? void 0 : _a.call(on); });\n const onSlideshowStop = useEventCallback(() => { var _a; return (_a = on.slideshowStop) === null || _a === void 0 ? void 0 : _a.call(on); });\n React.useEffect(() => {\n if (playing) {\n onSlideshowStart();\n }\n else if (wasPlaying.current) {\n onSlideshowStop();\n }\n wasPlaying.current = playing;\n }, [playing, onSlideshowStart, onSlideshowStop]);\n React.useEffect(() => cleanup(cancelScheduler, subscribe(ACTIVE_SLIDE_LOADING, () => {\n slideStatus.current = SLIDE_STATUS_LOADING;\n cancelScheduler();\n }), subscribe(ACTIVE_SLIDE_PLAYING, () => {\n slideStatus.current = SLIDE_STATUS_PLAYING;\n cancelScheduler();\n }), subscribe(ACTIVE_SLIDE_ERROR, () => {\n slideStatus.current = SLIDE_STATUS_ERROR;\n scheduleNextSlide();\n }), subscribe(ACTIVE_SLIDE_COMPLETE, () => {\n slideStatus.current = SLIDE_STATUS_COMPLETE;\n scheduleNextSlide();\n })), [subscribe, cancelScheduler, scheduleNextSlide]);\n const context = React.useMemo(() => ({ playing, disabled, play, pause }), [playing, disabled, play, pause]);\n React.useImperativeHandle(ref, () => context, [context]);\n return React.createElement(SlideshowContext.Provider, { value: context }, children);\n}\n\nconst PlayIcon = createIcon(\"Play\", React.createElement(\"path\", { d: \"M8 5v14l11-7z\" }));\nconst PauseIcon = createIcon(\"Pause\", React.createElement(\"path\", { d: \"M6 19h4V5H6v14zm8-14v14h4V5h-4z\" }));\nfunction SlideshowButton() {\n const { playing, disabled, play, pause } = useSlideshow();\n const { render } = useLightboxProps();\n const focusListeners = useLoseFocus(useController().focus, disabled);\n if (render.buttonSlideshow) {\n return React.createElement(React.Fragment, null, render.buttonSlideshow({ playing, disabled, play, pause }));\n }\n 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 }));\n}\n\nfunction Slideshow({ augment, addModule }) {\n augment(({ slideshow, toolbar, ...restProps }) => ({\n toolbar: addToolbarButton(toolbar, PLUGIN_SLIDESHOW, React.createElement(SlideshowButton, null)),\n slideshow: resolveSlideshowProps(slideshow),\n ...restProps,\n }));\n addModule(createModule(PLUGIN_SLIDESHOW, SlideshowContextProvider));\n}\n\nexport { Slideshow as default };\n","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';\nimport * as React from 'react';\nimport { PLUGIN_THUMBNAILS, ELEMENT_ICON, CLASS_FULLSIZE, CLASS_FLEX_CENTER, ACTION_SWIPE, ACTION_NEXT, ACTION_PREV, PLUGIN_FULLSCREEN, MODULE_CONTROLLER } from '../../types.js';\n\nconst defaultThumbnailsProps = {\n ref: null,\n position: \"bottom\",\n width: 120,\n height: 80,\n border: 1,\n borderRadius: 4,\n padding: 4,\n gap: 16,\n imageFit: \"contain\",\n vignette: true,\n};\nconst resolveThumbnailsProps = (thumbnails) => ({\n ...defaultThumbnailsProps,\n ...thumbnails,\n});\nfunction useThumbnailsProps() {\n const { thumbnails } = useLightboxProps();\n return resolveThumbnailsProps(thumbnails);\n}\n\nconst cssPrefix = (value) => composePrefix(PLUGIN_THUMBNAILS, value);\nconst cssThumbnailPrefix = (value) => cssPrefix(composePrefix(\"thumbnail\", value));\n\nconst 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\" }));\nconst 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\" }));\nfunction renderThumbnail({ slide, render, rect, imageFit }) {\n var _a;\n const customThumbnail = (_a = render.thumbnail) === null || _a === void 0 ? void 0 : _a.call(render, { slide, render, rect, imageFit });\n if (customThumbnail) {\n return customThumbnail;\n }\n const thumbnailIconClass = cssClass(cssThumbnailPrefix(ELEMENT_ICON));\n if (!isImageSlide(slide)) {\n if (slide.type === \"video\") {\n return (React.createElement(React.Fragment, null,\n \"poster\" in slide && (React.createElement(\"img\", { alt: \"\", src: slide.poster, className: clsx(cssClass(CLASS_FULLSIZE), cssClass(cssPrefix(\"contain_image\"))) })),\n React.createElement(VideoThumbnailIcon, { className: thumbnailIconClass })));\n }\n }\n else {\n return React.createElement(ImageSlide, { slide: slide, render: render, rect: rect, imageFit: imageFit });\n }\n return React.createElement(UnknownThumbnailIcon, { className: thumbnailIconClass });\n}\nconst activePrefix = makeComposePrefix(\"active\");\nconst fadeInPrefix = makeComposePrefix(\"fadein\");\nconst fadeOutPrefix = makeComposePrefix(\"fadeout\");\nconst placeholderPrefix = makeComposePrefix(\"placeholder\");\nconst DELAY = \"delay\";\nconst DURATION = \"duration\";\nfunction Thumbnail({ slide, onClick, active, fadeIn, fadeOut, placeholder }) {\n const { render, styles } = useLightboxProps();\n const { width, height, imageFit } = useThumbnailsProps();\n const rect = { width, height };\n 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: {\n ...(fadeIn\n ? {\n [cssVar(cssThumbnailPrefix(fadeInPrefix(DURATION)))]: `${fadeIn.duration}ms`,\n [cssVar(cssThumbnailPrefix(fadeInPrefix(DELAY)))]: `${fadeIn.delay}ms`,\n }\n : null),\n ...(fadeOut\n ? {\n [cssVar(cssThumbnailPrefix(fadeOutPrefix(DURATION)))]: `${fadeOut.duration}ms`,\n [cssVar(cssThumbnailPrefix(fadeOutPrefix(DELAY)))]: `${fadeOut.delay}ms`,\n }\n : null),\n ...styles.thumbnail,\n }, onClick: onClick }, slide && renderThumbnail({ slide, render, rect, imageFit })));\n}\n\nfunction isHorizontal(position) {\n return [\"top\", \"bottom\"].includes(position);\n}\nfunction boxSize(thumbnails, dimension, includeGap) {\n return dimension + 2 * (thumbnails.border + thumbnails.padding) + (includeGap ? thumbnails.gap : 0);\n}\nfunction ThumbnailsTrack({ visible, containerRef }) {\n const track = React.useRef(null);\n const { carousel, styles } = useLightboxProps();\n const { slides, globalIndex, animation } = useLightboxState();\n const { publish, subscribe } = useEvents();\n const isRTL = useRTL();\n const thumbnails = useThumbnailsProps();\n const { position, width, height, border, borderRadius, padding, gap, vignette } = thumbnails;\n const index = globalIndex;\n const animationDuration = (animation === null || animation === void 0 ? void 0 : animation.duration) || 0;\n const offset = (animationDuration > 0 && (animation === null || animation === void 0 ? void 0 : animation.increment)) || 0;\n const { prepareAnimation } = useAnimation(track, (snapshot) => ({\n keyframes: isHorizontal(position)\n ? [\n {\n transform: `translateX(${(isRTL ? -1 : 1) * boxSize(thumbnails, width, true) * offset + snapshot}px)`,\n },\n { transform: \"translateX(0)\" },\n ]\n : [\n {\n transform: `translateY(${boxSize(thumbnails, height, true) * offset + snapshot}px)`,\n },\n { transform: \"translateY(0)\" },\n ],\n duration: animationDuration,\n easing: animation === null || animation === void 0 ? void 0 : animation.easing,\n }));\n const handleControllerSwipe = useEventCallback(() => {\n let animationOffset = 0;\n if (containerRef.current && track.current) {\n const containerRect = containerRef.current.getBoundingClientRect();\n const trackRect = track.current.getBoundingClientRect();\n animationOffset = isHorizontal(position)\n ? trackRect.left - containerRect.left - (containerRect.width - trackRect.width) / 2\n : trackRect.top - containerRect.top - (containerRect.height - trackRect.height) / 2;\n }\n prepareAnimation(animationOffset);\n });\n React.useEffect(() => cleanup(subscribe(ACTION_SWIPE, handleControllerSwipe)), [subscribe, handleControllerSwipe]);\n const { finite } = carousel;\n const preload = Math.max(Math.min(carousel.preload, slides.length - 1), 0);\n const items = [];\n if (hasSlides(slides)) {\n if (offset < 0) {\n for (let i = index - preload + offset; i < index - preload; i += 1) {\n items.push({ slide: null, index: i, placeholder: true });\n }\n }\n for (let i = index - preload - (offset > 0 ? offset : 0); i < index; i += 1) {\n if (!(finite && i < 0)) {\n items.push({ slide: getSlide(slides, i), index: i });\n }\n else {\n items.push({ slide: null, index: i, placeholder: true });\n }\n }\n items.push({ slide: getSlide(slides, index), index });\n for (let i = index + 1; i <= index + preload - (offset < 0 ? offset : 0); i += 1) {\n if (!finite || i <= slides.length - 1) {\n items.push({ slide: getSlide(slides, i), index: i });\n }\n else {\n items.push({ slide: null, index: i, placeholder: true });\n }\n }\n if (offset > 0) {\n for (let i = index + preload + 1; i <= index + preload + offset; i += 1) {\n items.push({ slide: null, index: i, placeholder: true });\n }\n }\n }\n const handleClick = (slideIndex) => () => {\n if (slideIndex > index) {\n publish(ACTION_NEXT, { count: slideIndex - index });\n }\n else if (slideIndex < index) {\n publish(ACTION_PREV, { count: index - slideIndex });\n }\n };\n return (React.createElement(\"div\", { className: clsx(cssClass(cssPrefix(\"container\")), cssClass(CLASS_FLEX_CENTER)), style: {\n ...(!visible ? { display: \"none\" } : null),\n ...(width !== defaultThumbnailsProps.width\n ? { [cssVar(cssThumbnailPrefix(\"width\"))]: `${boxSize(thumbnails, width)}px` }\n : null),\n ...(height !== defaultThumbnailsProps.height\n ? { [cssVar(cssThumbnailPrefix(\"height\"))]: `${boxSize(thumbnails, height)}px` }\n : null),\n ...(border !== defaultThumbnailsProps.border\n ? { [cssVar(cssThumbnailPrefix(\"border\"))]: `${border}px` }\n : null),\n ...(borderRadius !== defaultThumbnailsProps.borderRadius\n ? { [cssVar(cssThumbnailPrefix(\"border_radius\"))]: `${borderRadius}px` }\n : null),\n ...(padding !== defaultThumbnailsProps.padding\n ? { [cssVar(cssThumbnailPrefix(\"padding\"))]: `${padding}px` }\n : null),\n ...(gap !== defaultThumbnailsProps.gap ? { [cssVar(cssThumbnailPrefix(\"gap\"))]: `${gap}px` } : null),\n ...styles.thumbnailsContainer,\n } },\n React.createElement(\"nav\", { ref: track, style: styles.thumbnailsTrack, className: clsx(cssClass(cssPrefix(\"track\")), cssClass(CLASS_FLEX_CENTER)) }, items.map(({ slide, index: slideIndex, placeholder }) => {\n const fadeAnimationDuration = animationDuration / Math.abs(offset || 1);\n const fadeIn = (offset > 0 && slideIndex > index + preload - offset && slideIndex <= index + preload) ||\n (offset < 0 && slideIndex < index - preload - offset && slideIndex >= index - preload)\n ? {\n duration: fadeAnimationDuration,\n delay: ((offset > 0\n ? slideIndex - (index + preload - offset)\n : index - preload - offset - slideIndex) -\n 1) *\n fadeAnimationDuration,\n }\n : undefined;\n const fadeOut = (offset > 0 && slideIndex < index - preload) || (offset < 0 && slideIndex > index + preload)\n ? {\n duration: fadeAnimationDuration,\n delay: (offset > 0\n ? offset - (index - preload - slideIndex)\n : -offset - (slideIndex - (index + preload))) * fadeAnimationDuration,\n }\n : undefined;\n return (React.createElement(Thumbnail, { key: slideIndex, slide: slide, active: slideIndex === index, fadeIn: fadeIn, fadeOut: fadeOut, placeholder: Boolean(placeholder), onClick: handleClick(slideIndex) }));\n })),\n vignette && React.createElement(\"div\", { className: cssClass(cssPrefix(\"vignette\")) })));\n}\n\nconst ThumbnailsContext = React.createContext(null);\nconst useThumbnails = makeUseContext(\"useThumbnails\", \"ThumbnailsContext\", ThumbnailsContext);\nfunction ThumbnailsContextProvider({ children, ...props }) {\n const [visible, setVisible] = React.useState(true);\n const containerRef = React.useRef(null);\n const { ref, position } = resolveThumbnailsProps(props.thumbnails);\n const context = React.useMemo(() => ({\n visible,\n show: () => setVisible(true),\n hide: () => setVisible(false),\n }), [visible]);\n React.useImperativeHandle(ref, () => context, [context]);\n return (React.createElement(LightboxPropsProvider, { ...props },\n React.createElement(ThumbnailsContext.Provider, { value: context },\n React.createElement(\"div\", { ref: containerRef, className: clsx(cssClass(cssPrefix()), cssClass(cssPrefix(`${position}`))) },\n [\"start\", \"top\"].includes(position) && (React.createElement(ThumbnailsTrack, { containerRef: containerRef, visible: visible })),\n React.createElement(\"div\", { className: cssClass(cssPrefix(\"wrapper\")) }, children),\n [\"end\", \"bottom\"].includes(position) && (React.createElement(ThumbnailsTrack, { containerRef: containerRef, visible: visible }))))));\n}\n\nconst thumbnailsIcon = () => (React.createElement(React.Fragment, null,\n React.createElement(\"path\", { strokeWidth: 2, stroke: \"currentColor\", strokeLinejoin: \"round\", fill: \"none\", d: \"M3 5l18 0l0 14l-18 0l0-14z\" }),\n React.createElement(\"path\", { d: \"M5 14h4v3h-4zM10 14h4v3h-4zM15 14h4v3h-4z\" })));\nconst ThumbnailsVisible = createIcon(\"ThumbnailsVisible\", thumbnailsIcon());\nconst ThumbnailsHidden = createIconDisabled(\"ThumbnailsHidden\", thumbnailsIcon());\nfunction ThumbnailsButton() {\n const { visible, show, hide } = useThumbnails();\n const { render } = useLightboxProps();\n if (render.buttonThumbnails) {\n return React.createElement(React.Fragment, null, render.buttonThumbnails({ visible, show, hide }));\n }\n return (React.createElement(IconButton, { label: visible ? \"Hide thumbnails\" : \"Show thumbnails\", icon: visible ? ThumbnailsVisible : ThumbnailsHidden, renderIcon: visible ? render.iconThumbnailsVisible : render.iconThumbnailsHidden, onClick: visible ? hide : show }));\n}\n\nfunction Thumbnails({ augment, contains, append, addParent }) {\n augment(({ thumbnails: thumbnailsProps, toolbar, ...restProps }) => {\n const thumbnails = resolveThumbnailsProps(thumbnailsProps);\n return {\n toolbar: addToolbarButton(toolbar, PLUGIN_THUMBNAILS, thumbnails.showToggle ? React.createElement(ThumbnailsButton, null) : null),\n thumbnails,\n ...restProps,\n };\n });\n const module = createModule(PLUGIN_THUMBNAILS, ThumbnailsContextProvider);\n if (contains(PLUGIN_FULLSCREEN)) {\n append(PLUGIN_FULLSCREEN, module);\n }\n else {\n addParent(MODULE_CONTROLLER, module);\n }\n}\n\nexport { Thumbnails as default };\n","import * as React from 'react';\nimport { useLightboxProps, useEvents, useContainerRect, useEventCallback, clsx, cssClass } from '../../index.js';\nimport { ACTIVE_SLIDE_LOADING, CLASS_FLEX_CENTER, ACTIVE_SLIDE_PLAYING, ACTIVE_SLIDE_COMPLETE } from '../../types.js';\n\nconst defaultVideoProps = {\n controls: true,\n playsInline: true,\n};\nconst resolveVideoProps = (video) => ({\n ...defaultVideoProps,\n ...video,\n});\nfunction useVideoProps() {\n const { video } = useLightboxProps();\n return resolveVideoProps(video);\n}\n\nfunction VideoSlide({ slide, offset }) {\n const video = useVideoProps();\n const { publish } = useEvents();\n const { setContainerRef, containerRect } = useContainerRect();\n const videoRef = React.useRef(null);\n React.useEffect(() => {\n if (offset !== 0 && videoRef.current && !videoRef.current.paused) {\n videoRef.current.pause();\n }\n }, [offset]);\n React.useEffect(() => {\n if (offset === 0 && videoRef.current && (slide.autoPlay || video.autoPlay)) {\n publish(ACTIVE_SLIDE_LOADING);\n videoRef.current.play().catch(() => { });\n }\n }, [offset, video.autoPlay, slide.autoPlay, publish]);\n const handleVideoRef = useEventCallback((node) => {\n if (offset === 0 && (video.autoPlay || slide.autoPlay) && node.paused) {\n node.play().catch(() => { });\n }\n });\n const setVideoRef = React.useCallback((node) => {\n videoRef.current = node;\n if (node) {\n handleVideoRef(node);\n }\n }, [handleVideoRef]);\n const { width, height, poster, sources } = slide;\n const scaleWidthAndHeight = () => {\n const scalingProps = {};\n scalingProps.style = { maxWidth: \"100%\", maxHeight: \"100%\" };\n if (width && height && containerRect) {\n const widthBound = width / height > containerRect.width / containerRect.height;\n const elementWidth = widthBound ? containerRect.width : Math.round((containerRect.height / height) * width);\n const elementHeight = !widthBound\n ? containerRect.height\n : Math.round((containerRect.width / width) * height);\n scalingProps.width = elementWidth;\n scalingProps.height = elementHeight;\n scalingProps.style.width = elementWidth;\n scalingProps.style.height = elementHeight;\n }\n return scalingProps;\n };\n const resolveBoolean = (attr) => {\n if (slide[attr] === false)\n return null;\n if (slide[attr] === true)\n return { [attr]: true };\n if (video[attr] === false)\n return null;\n if (video[attr] === true)\n return { [attr]: true };\n return null;\n };\n const resolveString = (attr) => {\n if (video[attr] || slide[attr]) {\n return { [attr]: slide[attr] || video[attr] };\n }\n return null;\n };\n return (React.createElement(React.Fragment, null, sources && (React.createElement(\"div\", { ref: setContainerRef, style: {\n width: \"100%\",\n height: \"100%\",\n ...(width ? { maxWidth: `${width}px` } : null),\n }, className: clsx(cssClass(\"video_container\"), cssClass(CLASS_FLEX_CENTER)) }, containerRect && (React.createElement(\"video\", { ref: setVideoRef, poster: poster, ...scaleWidthAndHeight(), ...resolveBoolean(\"controls\"), ...resolveBoolean(\"playsInline\"), ...resolveBoolean(\"loop\"), ...resolveBoolean(\"muted\"), ...resolveBoolean(\"playsInline\"), ...resolveBoolean(\"disablePictureInPicture\"), ...resolveBoolean(\"disableRemotePlayback\"), ...resolveString(\"controlsList\"), ...resolveString(\"crossOrigin\"), ...resolveString(\"preload\"), onPlay: () => {\n publish(ACTIVE_SLIDE_PLAYING);\n }, onEnded: () => {\n publish(ACTIVE_SLIDE_COMPLETE);\n } }, sources.map(({ src, type }, index) => (React.createElement(\"source\", { key: index, src: src, type: type })))))))));\n}\n\nfunction isVideoSlide(slide) {\n return slide.type === \"video\";\n}\nfunction Video({ augment }) {\n augment(({ render: { slide: renderSlide, ...restRender }, video, ...restProps }) => ({\n render: {\n slide: ({ slide, offset, rect }) => {\n var _a;\n if (isVideoSlide(slide)) {\n return (React.createElement(VideoSlide, { key: (_a = slide.sources) === null || _a === void 0 ? void 0 : _a.map((source) => source.src).join(\" \"), slide: slide, offset: offset }));\n }\n return renderSlide === null || renderSlide === void 0 ? void 0 : renderSlide({ slide, offset, rect });\n },\n ...restRender,\n },\n video: resolveVideoProps(video),\n ...restProps,\n }));\n}\n\nexport { Video as default };\n","import { useLightboxProps, useMotionPreference, useEventCallback, useLayoutEffect, useLightboxState, isImageSlide, isImageFitCover, round, useController, usePointerEvents, cleanup, makeUseContext, createIcon, IconButton, devicePixelRatio, ImageSlide, clsx, cssClass, addToolbarButton, createModule } from '../../index.js';\nimport * as React from 'react';\nimport { EVENT_ON_KEY_DOWN, EVENT_ON_WHEEL, UNKNOWN_ACTION_TYPE, CLASS_FULLSIZE, CLASS_FLEX_CENTER, PLUGIN_ZOOM } from '../../types.js';\n\nconst defaultZoomProps = {\n maxZoomPixelRatio: 1,\n zoomInMultiplier: 2,\n doubleTapDelay: 300,\n doubleClickDelay: 500,\n doubleClickMaxStops: 2,\n keyboardMoveDistance: 50,\n wheelZoomDistanceFactor: 100,\n pinchZoomDistanceFactor: 100,\n scrollToZoom: false,\n};\nconst resolveZoomProps = (zoom) => ({\n ...defaultZoomProps,\n ...zoom,\n});\n\nfunction useZoomAnimation(zoom, offsetX, offsetY, zoomWrapperRef) {\n const zoomAnimation = React.useRef();\n const zoomAnimationStart = React.useRef();\n const { zoom: zoomAnimationDuration } = useLightboxProps().animation;\n const reduceMotion = useMotionPreference();\n const playZoomAnimation = useEventCallback(() => {\n var _a, _b, _c;\n (_a = zoomAnimation.current) === null || _a === void 0 ? void 0 : _a.cancel();\n zoomAnimation.current = undefined;\n if (zoomAnimationStart.current && (zoomWrapperRef === null || zoomWrapperRef === void 0 ? void 0 : zoomWrapperRef.current)) {\n try {\n zoomAnimation.current = (_c = (_b = zoomWrapperRef.current).animate) === null || _c === void 0 ? void 0 : _c.call(_b, [\n { transform: zoomAnimationStart.current },\n { transform: `scale(${zoom}) translateX(${offsetX}px) translateY(${offsetY}px)` },\n ], {\n duration: !reduceMotion ? zoomAnimationDuration !== null && zoomAnimationDuration !== void 0 ? zoomAnimationDuration : 500 : 0,\n easing: zoomAnimation.current ? \"ease-out\" : \"ease-in-out\",\n });\n }\n catch (err) {\n console.error(err);\n }\n zoomAnimationStart.current = undefined;\n if (zoomAnimation.current) {\n zoomAnimation.current.onfinish = () => {\n zoomAnimation.current = undefined;\n };\n }\n }\n });\n useLayoutEffect(playZoomAnimation, [zoom, offsetX, offsetY, playZoomAnimation]);\n return React.useCallback(() => {\n zoomAnimationStart.current = (zoomWrapperRef === null || zoomWrapperRef === void 0 ? void 0 : zoomWrapperRef.current)\n ? window.getComputedStyle(zoomWrapperRef.current).transform\n : undefined;\n }, [zoomWrapperRef]);\n}\n\nfunction useZoomCallback(zoom, disabled) {\n const { on } = useLightboxProps();\n const onZoomCallback = useEventCallback(() => {\n var _a;\n if (!disabled) {\n (_a = on.zoom) === null || _a === void 0 ? void 0 : _a.call(on, { zoom });\n }\n });\n React.useEffect(onZoomCallback, [zoom, onZoomCallback]);\n}\n\nfunction useZoomProps() {\n const { zoom } = useLightboxProps();\n return resolveZoomProps(zoom);\n}\n\nfunction useZoomImageRect(slideRect, imageDimensions) {\n var _a, _b;\n let imageRect = { width: 0, height: 0 };\n let maxImageRect = { width: 0, height: 0 };\n const { slides, currentIndex } = useLightboxState();\n const { imageFit } = useLightboxProps().carousel;\n const { maxZoomPixelRatio } = useZoomProps();\n if (slideRect && currentIndex < slides.length) {\n const slide = { ...slides[currentIndex], ...imageDimensions };\n if (isImageSlide(slide)) {\n const cover = isImageFitCover(slide, imageFit);\n const width = Math.max(...(((_a = slide.srcSet) === null || _a === void 0 ? void 0 : _a.map((x) => x.width)) || []).concat(slide.width ? [slide.width] : []));\n const height = Math.max(...(((_b = slide.srcSet) === null || _b === void 0 ? void 0 : _b.map((x) => x.height)) || []).concat(slide.height ? [slide.height] : []));\n if (width > 0 && height > 0 && slideRect.width > 0 && slideRect.height > 0) {\n maxImageRect = cover\n ? {\n width: Math.round(Math.min(width, (slideRect.width / slideRect.height) * height)),\n height: Math.round(Math.min(height, (slideRect.height / slideRect.width) * width)),\n }\n : { width, height };\n maxImageRect = {\n width: maxImageRect.width * maxZoomPixelRatio,\n height: maxImageRect.height * maxZoomPixelRatio,\n };\n imageRect = cover\n ? {\n width: Math.min(slideRect.width, maxImageRect.width, width),\n height: Math.min(slideRect.height, maxImageRect.height, height),\n }\n : {\n width: Math.round(Math.min(slideRect.width, (slideRect.height / height) * width, width)),\n height: Math.round(Math.min(slideRect.height, (slideRect.width / width) * height, height)),\n };\n }\n }\n }\n const maxZoom = imageRect.width ? Math.max(round(maxImageRect.width / imageRect.width, 5), 1) : 1;\n return { imageRect, maxZoom };\n}\n\nfunction distance(pointerA, pointerB) {\n return ((pointerA.clientX - pointerB.clientX) ** 2 + (pointerA.clientY - pointerB.clientY) ** 2) ** 0.5;\n}\nfunction useZoomSensors(zoom, maxZoom, disabled, changeZoom, changeOffsets, zoomWrapperRef) {\n const activePointers = React.useRef([]);\n const lastPointerDown = React.useRef(0);\n const pinchZoomDistance = React.useRef();\n const { globalIndex } = useLightboxState();\n const { containerRef, subscribeSensors } = useController();\n const { keyboardMoveDistance, zoomInMultiplier, wheelZoomDistanceFactor, scrollToZoom, doubleTapDelay, doubleClickDelay, doubleClickMaxStops, pinchZoomDistanceFactor, } = useZoomProps();\n const translateCoordinates = React.useCallback((event) => {\n if (containerRef.current) {\n const { pageX, pageY } = event;\n const { scrollX, scrollY } = window;\n const { left, top, width, height } = containerRef.current.getBoundingClientRect();\n return [pageX - left - scrollX - width / 2, pageY - top - scrollY - height / 2];\n }\n return [];\n }, [containerRef]);\n const onKeyDown = useEventCallback((event) => {\n const preventDefault = () => {\n event.preventDefault();\n event.stopPropagation();\n };\n if (zoom > 1) {\n const move = (deltaX, deltaY) => {\n preventDefault();\n changeOffsets(deltaX, deltaY);\n };\n if (event.key === \"ArrowDown\") {\n move(0, keyboardMoveDistance);\n }\n else if (event.key === \"ArrowUp\") {\n move(0, -keyboardMoveDistance);\n }\n else if (event.key === \"ArrowLeft\") {\n move(-keyboardMoveDistance, 0);\n }\n else if (event.key === \"ArrowRight\") {\n move(keyboardMoveDistance, 0);\n }\n }\n const handleChangeZoom = (zoomValue) => {\n preventDefault();\n changeZoom(zoomValue);\n };\n const hasMeta = () => event.getModifierState(\"Meta\");\n if (event.key === \"+\" || (event.key === \"=\" && hasMeta())) {\n handleChangeZoom(zoom * zoomInMultiplier);\n }\n else if (event.key === \"-\" || (event.key === \"_\" && hasMeta())) {\n handleChangeZoom(zoom / zoomInMultiplier);\n }\n else if (event.key === \"0\" && hasMeta()) {\n handleChangeZoom(1);\n }\n });\n const onWheel = useEventCallback((event) => {\n if (event.ctrlKey || scrollToZoom) {\n if (Math.abs(event.deltaY) > Math.abs(event.deltaX)) {\n event.stopPropagation();\n changeZoom(zoom * (1 - event.deltaY / wheelZoomDistanceFactor), true, ...translateCoordinates(event));\n return;\n }\n }\n if (zoom > 1) {\n event.stopPropagation();\n if (!scrollToZoom) {\n changeOffsets(event.deltaX, event.deltaY);\n }\n }\n });\n const clearPointer = React.useCallback((event) => {\n const pointers = activePointers.current;\n pointers.splice(0, pointers.length, ...pointers.filter((p) => p.pointerId !== event.pointerId));\n }, []);\n const replacePointer = React.useCallback((event) => {\n clearPointer(event);\n event.persist();\n activePointers.current.push(event);\n }, [clearPointer]);\n const onPointerDown = useEventCallback((event) => {\n var _a;\n const pointers = activePointers.current;\n if (!((_a = zoomWrapperRef === null || zoomWrapperRef === void 0 ? void 0 : zoomWrapperRef.current) === null || _a === void 0 ? void 0 : _a.contains(event.target))) {\n return;\n }\n if (zoom > 1) {\n event.stopPropagation();\n }\n const { timeStamp } = event;\n if (pointers.length === 0 &&\n timeStamp - lastPointerDown.current < (event.pointerType === \"touch\" ? doubleTapDelay : doubleClickDelay)) {\n lastPointerDown.current = 0;\n changeZoom(zoom !== maxZoom ? zoom * Math.max(maxZoom ** (1 / doubleClickMaxStops), zoomInMultiplier) : 1, false, ...translateCoordinates(event));\n }\n else {\n lastPointerDown.current = timeStamp;\n }\n replacePointer(event);\n if (pointers.length === 2) {\n pinchZoomDistance.current = distance(pointers[0], pointers[1]);\n }\n });\n const onPointerMove = useEventCallback((event) => {\n const pointers = activePointers.current;\n const activePointer = pointers.find((p) => p.pointerId === event.pointerId);\n if (pointers.length === 2 && pinchZoomDistance.current) {\n event.stopPropagation();\n replacePointer(event);\n const currentDistance = distance(pointers[0], pointers[1]);\n const delta = currentDistance - pinchZoomDistance.current;\n if (Math.abs(delta) > 0) {\n changeZoom(zoom * (1 + delta / pinchZoomDistanceFactor), true, ...pointers\n .map((x) => translateCoordinates(x))\n .reduce((acc, coordinate) => coordinate.map((x, i) => acc[i] + x / 2)));\n pinchZoomDistance.current = currentDistance;\n }\n return;\n }\n if (zoom > 1) {\n event.stopPropagation();\n if (activePointer) {\n if (pointers.length === 1) {\n changeOffsets((activePointer.clientX - event.clientX) / zoom, (activePointer.clientY - event.clientY) / zoom);\n }\n replacePointer(event);\n }\n }\n });\n const onPointerUp = React.useCallback((event) => {\n const pointers = activePointers.current;\n if (pointers.length === 2 && pointers.find((p) => p.pointerId === event.pointerId)) {\n pinchZoomDistance.current = undefined;\n }\n clearPointer(event);\n }, [clearPointer]);\n const cleanupSensors = React.useCallback(() => {\n const pointers = activePointers.current;\n pointers.splice(0, pointers.length);\n lastPointerDown.current = 0;\n pinchZoomDistance.current = undefined;\n }, []);\n usePointerEvents(subscribeSensors, onPointerDown, onPointerMove, onPointerUp, disabled);\n React.useEffect(cleanupSensors, [globalIndex, cleanupSensors]);\n React.useEffect(() => {\n if (!disabled) {\n return cleanup(cleanupSensors, subscribeSensors(EVENT_ON_KEY_DOWN, onKeyDown), subscribeSensors(EVENT_ON_WHEEL, onWheel));\n }\n return () => { };\n }, [disabled, subscribeSensors, cleanupSensors, onKeyDown, onWheel]);\n}\n\nfunction getCurrentSource(slides, currentIndex) {\n if (currentIndex < slides.length) {\n const slide = slides[currentIndex];\n if (isImageSlide(slide))\n return slide.src;\n }\n return undefined;\n}\nfunction useZoomState(imageRect, maxZoom, zoomWrapperRef) {\n const [zoom, setZoom] = React.useState(1);\n const [offsetX, setOffsetX] = React.useState(0);\n const [offsetY, setOffsetY] = React.useState(0);\n const animate = useZoomAnimation(zoom, offsetX, offsetY, zoomWrapperRef);\n const { slides, currentIndex, globalIndex } = useLightboxState();\n const { containerRect, slideRect } = useController();\n const { zoomInMultiplier } = useZoomProps();\n const currentSource = getCurrentSource(slides, currentIndex);\n const disabled = !currentSource || !(zoomWrapperRef === null || zoomWrapperRef === void 0 ? void 0 : zoomWrapperRef.current);\n useLayoutEffect(() => {\n setZoom(1);\n setOffsetX(0);\n setOffsetY(0);\n }, [globalIndex, currentSource]);\n const changeOffsets = React.useCallback((dx, dy, targetZoom) => {\n const newZoom = targetZoom || zoom;\n const newOffsetX = offsetX - (dx || 0);\n const newOffsetY = offsetY - (dy || 0);\n const maxOffsetX = (imageRect.width * newZoom - slideRect.width) / 2 / newZoom;\n const maxOffsetY = (imageRect.height * newZoom - slideRect.height) / 2 / newZoom;\n setOffsetX(Math.min(Math.abs(newOffsetX), Math.max(maxOffsetX, 0)) * Math.sign(newOffsetX));\n setOffsetY(Math.min(Math.abs(newOffsetY), Math.max(maxOffsetY, 0)) * Math.sign(newOffsetY));\n }, [zoom, offsetX, offsetY, slideRect, imageRect.width, imageRect.height]);\n const changeZoom = React.useCallback((value, rapid, dx, dy) => {\n const newZoom = round(Math.min(Math.max(value + 0.001 < maxZoom ? value : maxZoom, 1), maxZoom), 5);\n if (newZoom === zoom)\n return;\n if (!rapid) {\n animate();\n }\n changeOffsets(dx ? dx * (1 / zoom - 1 / newZoom) : 0, dy ? dy * (1 / zoom - 1 / newZoom) : 0, newZoom);\n setZoom(newZoom);\n }, [zoom, maxZoom, changeOffsets, animate]);\n const handleControllerRectChange = useEventCallback(() => {\n if (zoom > 1) {\n if (zoom > maxZoom) {\n changeZoom(maxZoom, true);\n }\n changeOffsets();\n }\n });\n useLayoutEffect(handleControllerRectChange, [\n containerRect.width,\n containerRect.height,\n handleControllerRectChange,\n ]);\n const zoomIn = React.useCallback(() => changeZoom(zoom * zoomInMultiplier), [zoom, zoomInMultiplier, changeZoom]);\n const zoomOut = React.useCallback(() => changeZoom(zoom / zoomInMultiplier), [zoom, zoomInMultiplier, changeZoom]);\n return { zoom, offsetX, offsetY, disabled, changeOffsets, changeZoom, zoomIn, zoomOut };\n}\n\nconst ZoomControllerContext = React.createContext(null);\nconst useZoom = makeUseContext(\"useZoom\", \"ZoomControllerContext\", ZoomControllerContext);\nfunction ZoomContextProvider({ children }) {\n const [zoomWrapper, setZoomWrapper] = React.useState();\n const { slideRect } = useController();\n const { imageRect, maxZoom } = useZoomImageRect(slideRect, zoomWrapper === null || zoomWrapper === void 0 ? void 0 : zoomWrapper.imageDimensions);\n const { zoom, offsetX, offsetY, disabled, changeZoom, changeOffsets, zoomIn, zoomOut } = useZoomState(imageRect, maxZoom, zoomWrapper === null || zoomWrapper === void 0 ? void 0 : zoomWrapper.zoomWrapperRef);\n useZoomCallback(zoom, disabled);\n useZoomSensors(zoom, maxZoom, disabled, changeZoom, changeOffsets, zoomWrapper === null || zoomWrapper === void 0 ? void 0 : zoomWrapper.zoomWrapperRef);\n const zoomRef = React.useMemo(() => ({ zoom, maxZoom, offsetX, offsetY, disabled, zoomIn, zoomOut }), [zoom, maxZoom, offsetX, offsetY, disabled, zoomIn, zoomOut]);\n React.useImperativeHandle(useZoomProps().ref, () => zoomRef, [zoomRef]);\n const context = React.useMemo(() => ({ ...zoomRef, setZoomWrapper }), [zoomRef, setZoomWrapper]);\n return React.createElement(ZoomControllerContext.Provider, { value: context }, children);\n}\n\nconst ZoomInIcon = createIcon(\"ZoomIn\", React.createElement(React.Fragment, null,\n React.createElement(\"path\", { d: \"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\" }),\n React.createElement(\"path\", { d: \"M12 10h-2v2H9v-2H7V9h2V7h1v2h2v1z\" })));\nconst ZoomOutIcon = createIcon(\"ZoomOut\", React.createElement(\"path\", { d: \"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14zM7 9h5v1H7z\" }));\nconst ZoomButton = React.forwardRef(function ZoomButton({ zoomIn, onLoseFocus }, ref) {\n const wasEnabled = React.useRef(false);\n const wasFocused = React.useRef(false);\n const { zoom, maxZoom, zoomIn: zoomInCallback, zoomOut: zoomOutCallback, disabled: zoomDisabled } = useZoom();\n const { render } = useLightboxProps();\n const disabled = zoomDisabled || (zoomIn ? zoom >= maxZoom : zoom <= 1);\n React.useEffect(() => {\n if (disabled && wasEnabled.current && wasFocused.current) {\n onLoseFocus();\n }\n if (!disabled) {\n wasEnabled.current = true;\n }\n }, [disabled, onLoseFocus]);\n return (React.createElement(IconButton, { ref: ref, disabled: disabled, label: zoomIn ? \"Zoom in\" : \"Zoom out\", icon: zoomIn ? ZoomInIcon : ZoomOutIcon, renderIcon: zoomIn ? render.iconZoomIn : render.iconZoomOut, onClick: zoomIn ? zoomInCallback : zoomOutCallback, onFocus: () => {\n wasFocused.current = true;\n }, onBlur: () => {\n wasFocused.current = false;\n } }));\n});\n\nfunction ZoomButtonsGroup() {\n const zoomInRef = React.useRef(null);\n const zoomOutRef = React.useRef(null);\n const { focus } = useController();\n const focusSibling = React.useCallback((sibling) => {\n var _a, _b;\n if (!((_a = sibling.current) === null || _a === void 0 ? void 0 : _a.disabled)) {\n (_b = sibling.current) === null || _b === void 0 ? void 0 : _b.focus();\n }\n else {\n focus();\n }\n }, [focus]);\n const focusZoomIn = React.useCallback(() => focusSibling(zoomInRef), [focusSibling]);\n const focusZoomOut = React.useCallback(() => focusSibling(zoomOutRef), [focusSibling]);\n return (React.createElement(React.Fragment, null,\n React.createElement(ZoomButton, { zoomIn: true, ref: zoomInRef, onLoseFocus: focusZoomOut }),\n React.createElement(ZoomButton, { ref: zoomOutRef, onLoseFocus: focusZoomIn })));\n}\n\nfunction ZoomToolbarControl() {\n const { render } = useLightboxProps();\n const zoomRef = useZoom();\n if (render.buttonZoom) {\n return React.createElement(React.Fragment, null, render.buttonZoom(zoomRef));\n }\n return React.createElement(ZoomButtonsGroup, null);\n}\n\nfunction isResponsiveImageSlide(slide) {\n var _a;\n return (((_a = slide.srcSet) === null || _a === void 0 ? void 0 : _a.length) || 0) > 0;\n}\nfunction reducer({ current, preload }, { type, source }) {\n switch (type) {\n case \"fetch\":\n if (!current) {\n return { current: source };\n }\n return { current, preload: source };\n case \"done\":\n if (source === preload) {\n return { current: source };\n }\n return { current, preload };\n default:\n throw new Error(UNKNOWN_ACTION_TYPE);\n }\n}\nfunction ResponsiveImage(props) {\n var _a, _b;\n const [{ current, preload }, dispatch] = React.useReducer(reducer, {});\n const { slide: image, rect, imageFit, render } = props;\n const srcSet = image.srcSet.sort((a, b) => a.width - b.width);\n const width = (_a = image.width) !== null && _a !== void 0 ? _a : srcSet[srcSet.length - 1].width;\n const height = (_b = image.height) !== null && _b !== void 0 ? _b : srcSet[srcSet.length - 1].height;\n const cover = isImageFitCover(image, imageFit);\n const maxWidth = Math.max(...srcSet.map((x) => x.width));\n const targetWidth = Math.min((cover ? Math.max : Math.min)(rect.width, width * (rect.height / height)), maxWidth);\n const pixelDensity = devicePixelRatio();\n const handleResize = useEventCallback(() => {\n var _a;\n const targetSource = (_a = srcSet.find((x) => x.width >= targetWidth * pixelDensity)) !== null && _a !== void 0 ? _a : srcSet[srcSet.length - 1];\n if (!current || srcSet.findIndex((x) => x.src === current) < srcSet.findIndex((x) => x === targetSource)) {\n dispatch({ type: \"fetch\", source: targetSource.src });\n }\n });\n useLayoutEffect(handleResize, [rect.width, rect.height, pixelDensity, handleResize]);\n const handlePreload = useEventCallback((currentPreload) => dispatch({ type: \"done\", source: currentPreload }));\n const style = {\n WebkitTransform: \"translateZ(0)\",\n };\n if (!cover) {\n Object.assign(style, rect.width / rect.height < width / height\n ? { width: \"100%\", height: \"auto\" }\n : { width: \"auto\", height: \"100%\" });\n }\n return (React.createElement(React.Fragment, null,\n preload && preload !== current && (React.createElement(ImageSlide, { key: \"preload\", ...props, slide: { ...image, src: preload, srcSet: undefined }, style: { position: \"absolute\", visibility: \"hidden\", ...style }, onLoad: () => handlePreload(preload), render: {\n ...render,\n iconLoading: () => null,\n iconError: () => null,\n } })),\n current && (React.createElement(ImageSlide, { key: \"current\", ...props, slide: { ...image, src: current, srcSet: undefined }, style: style }))));\n}\n\nfunction ZoomWrapper({ render, slide, offset, rect }) {\n var _a;\n const [imageDimensions, setImageDimensions] = React.useState();\n const zoomWrapperRef = React.useRef(null);\n const { zoom, maxZoom, offsetX, offsetY, setZoomWrapper } = useZoom();\n const { carousel, on } = useLightboxProps();\n const { currentIndex } = useLightboxState();\n useLayoutEffect(() => {\n if (offset === 0) {\n setZoomWrapper({ zoomWrapperRef, imageDimensions });\n return () => setZoomWrapper(undefined);\n }\n return () => { };\n }, [offset, imageDimensions, setZoomWrapper]);\n let rendered = (_a = render.slide) === null || _a === void 0 ? void 0 : _a.call(render, { slide, offset, rect, zoom, maxZoom });\n if (!rendered && isImageSlide(slide)) {\n const slideProps = {\n slide,\n offset,\n rect,\n render,\n imageFit: carousel.imageFit,\n imageProps: carousel.imageProps,\n onClick: offset === 0 ? () => { var _a; return (_a = on.click) === null || _a === void 0 ? void 0 : _a.call(on, { index: currentIndex }); } : undefined,\n };\n rendered = isResponsiveImageSlide(slide) ? (React.createElement(ResponsiveImage, { key: slide.src, ...slideProps, slide: slide, rect: offset === 0 ? { width: rect.width * zoom, height: rect.height * zoom } : rect })) : (React.createElement(ImageSlide, { key: slide.src, onLoad: (img) => setImageDimensions({ width: img.naturalWidth, height: img.naturalHeight }), ...slideProps }));\n }\n if (!rendered)\n return null;\n return (React.createElement(\"div\", { ref: zoomWrapperRef, className: clsx(cssClass(CLASS_FULLSIZE), cssClass(CLASS_FLEX_CENTER)), style: offset === 0\n ? { transform: `scale(${zoom}) translateX(${offsetX}px) translateY(${offsetY}px)` }\n : undefined }, rendered));\n}\n\nconst Zoom = ({ augment, addModule }) => {\n augment(({ toolbar, render, zoom, ...restProps }) => ({\n zoom: resolveZoomProps(zoom),\n toolbar: addToolbarButton(toolbar, PLUGIN_ZOOM, React.createElement(ZoomToolbarControl, null)),\n render: {\n ...render,\n slide: (props) => { var _a; return isImageSlide(props.slide) ? React.createElement(ZoomWrapper, { render: render, ...props }) : (_a = render.slide) === null || _a === void 0 ? void 0 : _a.call(render, props); },\n },\n ...restProps,\n }));\n addModule(createModule(PLUGIN_ZOOM, ZoomContextProvider));\n};\n\nexport { Zoom as default };\n","const MODULE_CAROUSEL = \"carousel\";\nconst MODULE_CONTROLLER = \"controller\";\nconst MODULE_NAVIGATION = \"navigation\";\nconst MODULE_NO_SCROLL = \"no-scroll\";\nconst MODULE_PORTAL = \"portal\";\nconst MODULE_ROOT = \"root\";\nconst MODULE_TOOLBAR = \"toolbar\";\nconst PLUGIN_CAPTIONS = \"captions\";\nconst PLUGIN_COUNTER = \"counter\";\nconst PLUGIN_DOWNLOAD = \"download\";\nconst PLUGIN_FULLSCREEN = \"fullscreen\";\nconst PLUGIN_INLINE = \"inline\";\nconst PLUGIN_SHARE = \"share\";\nconst PLUGIN_SLIDESHOW = \"slideshow\";\nconst PLUGIN_THUMBNAILS = \"thumbnails\";\nconst PLUGIN_ZOOM = \"zoom\";\nconst SLIDE_STATUS_LOADING = \"loading\";\nconst SLIDE_STATUS_PLAYING = \"playing\";\nconst SLIDE_STATUS_ERROR = \"error\";\nconst SLIDE_STATUS_COMPLETE = \"complete\";\nconst SLIDE_STATUS_PLACEHOLDER = \"placeholder\";\nconst activeSlideStatus = (status) => `active-slide-${status}`;\nconst ACTIVE_SLIDE_LOADING = activeSlideStatus(SLIDE_STATUS_LOADING);\nconst ACTIVE_SLIDE_PLAYING = activeSlideStatus(SLIDE_STATUS_PLAYING);\nconst ACTIVE_SLIDE_ERROR = activeSlideStatus(SLIDE_STATUS_ERROR);\nconst ACTIVE_SLIDE_COMPLETE = activeSlideStatus(SLIDE_STATUS_COMPLETE);\nconst CLASS_FULLSIZE = \"fullsize\";\nconst CLASS_FLEX_CENTER = \"flex_center\";\nconst CLASS_NO_SCROLL = \"no_scroll\";\nconst CLASS_NO_SCROLL_PADDING = \"no_scroll_padding\";\nconst ACTION_PREV = \"prev\";\nconst ACTION_NEXT = \"next\";\nconst ACTION_SWIPE = \"swipe\";\nconst ACTION_CLOSE = \"close\";\nconst EVENT_ON_POINTER_DOWN = \"onPointerDown\";\nconst EVENT_ON_POINTER_MOVE = \"onPointerMove\";\nconst EVENT_ON_POINTER_UP = \"onPointerUp\";\nconst EVENT_ON_POINTER_LEAVE = \"onPointerLeave\";\nconst EVENT_ON_POINTER_CANCEL = \"onPointerCancel\";\nconst EVENT_ON_KEY_DOWN = \"onKeyDown\";\nconst EVENT_ON_KEY_UP = \"onKeyUp\";\nconst EVENT_ON_WHEEL = \"onWheel\";\nconst VK_ESCAPE = \"Escape\";\nconst VK_ARROW_LEFT = \"ArrowLeft\";\nconst VK_ARROW_RIGHT = \"ArrowRight\";\nconst ELEMENT_BUTTON = \"button\";\nconst ELEMENT_ICON = \"icon\";\nconst IMAGE_FIT_CONTAIN = \"contain\";\nconst IMAGE_FIT_COVER = \"cover\";\nconst UNKNOWN_ACTION_TYPE = \"Unknown action type\";\n\nexport { ACTION_CLOSE, ACTION_NEXT, ACTION_PREV, ACTION_SWIPE, ACTIVE_SLIDE_COMPLETE, ACTIVE_SLIDE_ERROR, ACTIVE_SLIDE_LOADING, ACTIVE_SLIDE_PLAYING, CLASS_FLEX_CENTER, CLASS_FULLSIZE, CLASS_NO_SCROLL, CLASS_NO_SCROLL_PADDING, ELEMENT_BUTTON, ELEMENT_ICON, EVENT_ON_KEY_DOWN, EVENT_ON_KEY_UP, EVENT_ON_POINTER_CANCEL, EVENT_ON_POINTER_DOWN, EVENT_ON_POINTER_LEAVE, EVENT_ON_POINTER_MOVE, EVENT_ON_POINTER_UP, EVENT_ON_WHEEL, IMAGE_FIT_CONTAIN, IMAGE_FIT_COVER, MODULE_CAROUSEL, MODULE_CONTROLLER, MODULE_NAVIGATION, MODULE_NO_SCROLL, MODULE_PORTAL, MODULE_ROOT, MODULE_TOOLBAR, PLUGIN_CAPTIONS, PLUGIN_COUNTER, PLUGIN_DOWNLOAD, PLUGIN_FULLSCREEN, PLUGIN_INLINE, PLUGIN_SHARE, PLUGIN_SLIDESHOW, PLUGIN_THUMBNAILS, PLUGIN_ZOOM, SLIDE_STATUS_COMPLETE, SLIDE_STATUS_ERROR, SLIDE_STATUS_LOADING, SLIDE_STATUS_PLACEHOLDER, SLIDE_STATUS_PLAYING, UNKNOWN_ACTION_TYPE, VK_ARROW_LEFT, VK_ARROW_RIGHT, VK_ESCAPE, activeSlideStatus };\n"],"names":["_excluded","_excluded2","_excluded3","_excluded4","_excluded5","_excluded6","_excluded7","_excluded8","_excluded9","LightboxDefaultProps","open","close","index","slides","render","plugins","toolbar","buttons","ACTION_CLOSE","labels","animation","fade","swipe","easing","navigation","carousel","finite","preload","padding","spacing","imageFit","IMAGE_FIT_CONTAIN","imageProps","controller","ref","focus","aria","touchAction","closeOnPullDown","closeOnBackdropClick","portal","on","styles","className","createModule","name","component","createNode","module","children","traverseNode","node","target","apply","flatMap","n","_a","traverse","nodes","clsx","_len","arguments","length","classes","Array","_key","concat","filter","cls","Boolean","join","cssPrefix$3","cssClass","cssVar","composePrefix","base","prefix","makeComposePrefix","label","lbl","cleanup","_len2","cleaners","_key2","forEach","cleaner","makeUseContext","contextName","context","ctx","React","Error","hasWindow","window","round","value","decimals","undefined","factor","Math","pow","Number","EPSILON","isImageSlide","slide","type","isImageFitCover","image","IMAGE_FIT_COVER","parseLengthPercentage","input","pixel","parseInt","endsWith","percent","computeSlideRect","containerRect","paddingValue","paddingPixels","width","max","height","devicePixelRatio","getSlideIndex","slidesCount","hasSlides","getSlide","getSlideIfPresent","addToolbarButton","key","button","restToolbar","_objectWithoutProperties","findIndex","item","buttonWithKey","result","_toConsumableArray","splice","_objectSpread","EventsContext","useEvents","EventsProvider","_ref","_React$useState","subscriptions","_slicedToArray","Object","keys","topic","unsubscribe","callback","_a2","cb","publish","_len3","_ref2","_key3","event","subscribe","push","Provider","LightboxPropsContext","useLightboxProps","LightboxPropsProvider","_ref3","props","LightboxStateContext","useLightboxState","LightboxDispatchContext","useLightboxDispatch","reducer","state","action","increment","globalIndex","currentIndex","currentSlide","duration","UNKNOWN_ACTION_TYPE","LightboxStateProvider","_ref4","_React$useReducer","_React$useReducer2","dispatch","TimeoutsContext","useTimeouts","TimeoutsProvider","_ref5","_React$useState3","timeouts","tid","clearTimeout","removeTimeout","id","setTimeout","fn","delay","IconButton","_ref6","label$1","Icon","icon","renderIcon","onClick","style","rest","_useLightboxProps","ELEMENT_BUTTON","ELEMENT_ICON","svgIcon","xmlns","viewBox","focusable","displayName","createIcon","glyph","fill","d","createIconDisabled","stroke","strokeWidth","mask","CloseIcon","PreviousIcon","NextIcon","LoadingIcon","from","map","_","array","x1","y1","x2","y2","strokeLinecap","strokeOpacity","transform","ErrorIcon","useLayoutEffect","useMotionPreference","_React$useState5","_React$useState6","reduceMotion","setReduceMotion","_b","mediaQuery","matchMedia","call","matches","listener","addEventListener","removeEventListener","useAnimation","nodeRef","computeAnimation","snapshot","_c","current","_ref7","getBoundingClientRect","x","y","z","matcher","getComputedStyle","match","values","split","str","currentTransformation","keyframes","onfinish","cancel","animate","err","console","error","prepareAnimation","currentSnapshot","isAnimationPlaying","playState","useContainerRect","_React$useState7","_React$useState8","setContainerRect","containerRef","observerRef","setContainerRef","disconnect","updateContainerRect","parse","parseFloat","clientWidth","paddingLeft","paddingRight","clientHeight","paddingTop","paddingBottom","ResizeObserver","observe","useDelay","timeoutId","_useTimeouts","useEventCallback","_a3","_len4","args","_key4","setRef","useForkRef","refA","refB","refValue","useLoseFocus","disabled","focused","onFocus","onBlur","useRTL","_React$useState9","_React$useState10","isRTL","setIsRTL","document","documentElement","direction","useThrottle","lastCallbackTime","delayCallback","executeCallback","Date","now","_len5","_key5","_len6","_key6","SwipeState","Gesture","slidePrefix","slideImagePrefix","ImageSlide","_ref8","_d","_e","_f","_g","offset","rect","onLoad","_React$useState13","SLIDE_STATUS_LOADING","_React$useState14","status","setStatus","imageRef","activeSlideStatus","handleLoading","img","decode","Promise","resolve","catch","then","parentNode","SLIDE_STATUS_COMPLETE","setImageRef","complete","handleOnLoad","currentTarget","onError","SLIDE_STATUS_ERROR","cover","nonInfinite","fallback","isFinite","maxWidth","srcSet","naturalWidth","maxHeight","naturalHeight","defaultStyle","sort","a","b","src","sizes","min","MAX_VALUE","_ref9","imagePropsStyle","imagePropsClassName","restImageProps","draggable","alt","SLIDE_STATUS_PLACEHOLDER","iconLoading","iconError","usePointerEvents","subscribeSensors","onPointerDown","onPointerMove","onPointerUp","EVENT_ON_POINTER_DOWN","EVENT_ON_POINTER_MOVE","EVENT_ON_POINTER_UP","EVENT_ON_POINTER_LEAVE","EVENT_ON_POINTER_CANCEL","SWIPE_THRESHOLD","usePointerSwipe","isSwipeValid","containerWidth","swipeAnimationDuration","onSwipeStart","onSwipeProgress","onSwipeFinish","onSwipeCancel","pullDownEnabled","onPullDownStart","onPullDownProgress","onPullDownFinish","onPullDownCancel","pointers","activePointer","startTime","gesture","NONE","clearPointer","pointerId","currentPointers","p","addPointer","persist","find","currentOffset","SWIPE","abs","PULL_DOWN","pointer","isCurrentPointer","deltaX","clientX","deltaY","clientY","startGesture","newGesture","WHEEL","preventDefault","ctrlKey","useWheelSwipe","swipeState","intent","intentCleanup","resetCleanup","wheelResidualMomentum","_useTimeouts3","cancelSwipeIntentCleanup","cancelSwipeResetCleanup","handleCleanup","handleCancelSwipe","currentSwipeOffset","onWheel","currentSwipeIntent","newSwipeOffset","sign","EVENT_ON_WHEEL","cssContainerPrefix","ControllerContext","useController","ControllerModule","MODULE_CONTROLLER","_ref10","_ref12","_React$useState15","_React$useState16","toolbarWidth","setToolbarWidth","_React$useState17","_React$useState18","setSwipeState","swipeOffset","pullDownOffset","pullDownOpacity","_useSensors","_React$useState11","subscribers","notifySubscribers","isPropagationStopped","registerSensors","onPointerLeave","onPointerCancel","onKeyDown","EVENT_ON_KEY_DOWN","onKeyUp","EVENT_ON_KEY_UP","unshift","listeners","el","useSensors","_useEvents2","cleanupAnimationIncrement","cleanupSwipeOffset","cleanupPullDownOffset","_useContainerRect","handleContainerRef","passive","usePreventSwipeNavigation","carouselRef","setCarouselRef","rtl","getLightboxProps","getLightboxState","prev","params","ACTION_PREV","next","ACTION_NEXT","setSwipeOffset","setProperty","setPullDownOffset","preparePullDownAnimation","translate","opacity","pullDown","ANIMATION","_useAnimation2","parsedSpacing","spacingValue","swipeDuration","swipeEasing","count","newSwipeState","newSwipeAnimationDuration","elapsedTime","expectedTime","ACTION_SWIPE","swipeParams","pullDownParams","focusOnMount","onViewCallback","view","VK_ESCAPE","slideRect","CLASS_FLEX_CENTER","_defineProperty","container","role","tabIndex","controls","cssPrefix$2","MODULE_CAROUSEL","cssSlidePrefix","CarouselSlide","_ref14","_useController","_useLightboxProps2","_useLightboxProps2$ca","click","HTMLElement","classList","contains","CLASS_FULLSIZE","rendered","slideHeader","slideContainer","_ref15","slideFooter","renderSlide","Placeholder","CarouselModule","_ref16","_style","_ref16$carousel","_useLightboxState2","items","i","NavigationButton","_ref17","NavigationModule","MODULE_NAVIGATION","_ref18","_ref18$render","buttonPrev","buttonNext","iconPrev","iconNext","_useLightboxState3","_useController3","prevDisabled","nextDisabled","throttle","prevThrottled","nextThrottled","handleKeyDown","VK_ARROW_LEFT","VK_ARROW_RIGHT","navigationPrev","navigationNext","noScroll","CLASS_NO_SCROLL","noScrollPadding","CLASS_NO_SCROLL_PADDING","isHTMLElement","element","padScrollbar","property","computedValue","originalValue","getPropertyValue","removeProperty","NoScrollModule","MODULE_NO_SCROLL","_ref19","_document","body","scrollbar","innerWidth","elements","getElementsByTagName","add","remove","clean","cssPrefix$1","MODULE_PORTAL","setAttribute","attribute","previousValue","getAttribute","removeAttribute","PortalModule","_ref20","_React$useState19","_React$useState20","mounted","setMounted","_React$useState21","_React$useState22","visible","setVisible","animationDuration","handleClose","exiting","exited","handleEnter","scrollTop","entering","indexOf","tagName","entered","handleExit","handleRef","createPortal","root","RootModule","MODULE_ROOT","_ref23","ToolbarModule","MODULE_TOOLBAR","_ref24","_ref24$render","buttonClose","iconClose","_useController4","_useContainerRect2","stopPropagation","stopNavigationEventsPropagation","renderNode","child","mergeAnimation","defaultAnimation","defaultAnimationEasing","restDefaultAnimation","restAnimation","Lightbox","_ref25","restProps","defaultCarousel","defaultRender","defaultToolbar","defaultController","defaultOn","defaultSlides","defaultIndex","defaultPlugins","restDefaultProps","_withPlugins","augmentations","config","pop","addParent","append","addChild","precede","addSibling","addModule","replace","augment","augmentation","plugin","reduce","acc","withPlugins","cssPrefix","defaultCaptionsProps","descriptionTextAlign","descriptionMaxLines","showToggle","resolveCaptionsProps","captions","CaptionsContext","useCaptions","CaptionsContextProvider","_React$useState2","show","hide","Title","title","captionsTitleContainer","captionsTitle","Description","description","_useCaptionsProps","useCaptionsProps","captionsDescriptionContainer","captionsDescription","line","captionsIcon","strokeLinejoin","CaptionsVisible","CaptionsHidden","CaptionsButton","_useCaptions3","buttonCaptions","iconCaptionsVisible","iconCaptionsHidden","Captions","captionsProps","_ref7$render","renderFooter","restRender","PLUGIN_CAPTIONS","defaultFullscreenProps","auto","resolveFullscreenProps","fullscreen","FullscreenContext","useFullscreen","FullscreenContextProvider","fullscreenProps","_resolveFullscreenPro","setFullscreen","_React$useState4","setDisabled","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","getFullscreenElement","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","enter","requestFullscreen","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","exit","exitFullscreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","fullscreenChangeListener","events","handleAutoFullscreen","PLUGIN_FULLSCREEN","EnterFullscreenIcon","ExitFullscreenIcon","FullscreenButton","_useFullscreen","buttonFullscreen","iconExitFullscreen","iconEnterFullscreen","Fullscreen","PLUGIN_THUMBNAILS","defaultSlideshowProps","autoplay","resolveSlideshowProps","slideshow","SlideshowContext","useSlideshow","SlideshowContextProvider","_resolveSlideshowProp","wasPlaying","playing","setPlaying","scheduler","slideStatus","_useLightboxState","play","pause","cancelScheduler","scheduleNextSlide","SLIDE_STATUS_PLAYING","onSlideshowStart","slideshowStart","onSlideshowStop","slideshowStop","ACTIVE_SLIDE_LOADING","ACTIVE_SLIDE_PLAYING","ACTIVE_SLIDE_ERROR","ACTIVE_SLIDE_COMPLETE","PlayIcon","PauseIcon","SlideshowButton","_useSlideshow","focusListeners","buttonSlideshow","iconSlideshowPause","iconSlideshowPlay","Slideshow","PLUGIN_SLIDESHOW","defaultThumbnailsProps","position","border","borderRadius","gap","vignette","resolveThumbnailsProps","thumbnails","useThumbnailsProps","cssThumbnailPrefix","VideoThumbnailIcon","UnknownThumbnailIcon","activePrefix","fadeInPrefix","fadeOutPrefix","placeholderPrefix","DELAY","DURATION","Thumbnail","active","fadeIn","fadeOut","placeholder","_useThumbnailsProps","thumbnail","customThumbnail","thumbnailIconClass","poster","renderThumbnail","isHorizontal","includes","boxSize","dimension","includeGap","ThumbnailsTrack","track","_useLightboxProps3","_useEvents","handleControllerSwipe","animationOffset","trackRect","left","top","handleClick","slideIndex","display","thumbnailsContainer","thumbnailsTrack","fadeAnimationDuration","ThumbnailsContext","useThumbnails","ThumbnailsContextProvider","_ref13","_resolveThumbnailsPro","thumbnailsIcon","ThumbnailsVisible","ThumbnailsHidden","ThumbnailsButton","_useThumbnails","buttonThumbnails","iconThumbnailsVisible","iconThumbnailsHidden","Thumbnails","thumbnailsProps","defaultVideoProps","playsInline","resolveVideoProps","video","VideoSlide","useVideoProps","videoRef","paused","autoPlay","handleVideoRef","setVideoRef","sources","resolveBoolean","attr","resolveString","scalingProps","widthBound","elementWidth","elementHeight","scaleWidthAndHeight","onPlay","onEnded","Video","isVideoSlide","source","defaultZoomProps","maxZoomPixelRatio","zoomInMultiplier","doubleTapDelay","doubleClickDelay","doubleClickMaxStops","keyboardMoveDistance","wheelZoomDistanceFactor","pinchZoomDistanceFactor","scrollToZoom","resolveZoomProps","zoom","useZoomProps","distance","pointerA","pointerB","useZoomState","imageRect","maxZoom","zoomWrapperRef","setZoom","offsetX","setOffsetX","offsetY","setOffsetY","zoomAnimation","zoomAnimationStart","zoomAnimationDuration","playZoomAnimation","useZoomAnimation","_useController2","currentSource","getCurrentSource","changeOffsets","dx","dy","targetZoom","newZoom","newOffsetX","newOffsetY","maxOffsetX","maxOffsetY","changeZoom","rapid","handleControllerRectChange","zoomIn","zoomOut","ZoomControllerContext","useZoom","ZoomContextProvider","zoomWrapper","setZoomWrapper","_useZoomImageRect","imageDimensions","maxImageRect","useZoomImageRect","_useZoomState","onZoomCallback","useZoomCallback","activePointers","lastPointerDown","pinchZoomDistance","_useZoomProps2","translateCoordinates","pageX","pageY","_window","scrollX","scrollY","_containerRef$current","move","handleChangeZoom","zoomValue","hasMeta","getModifierState","replacePointer","timeStamp","pointerType","currentDistance","delta","coordinate","cleanupSensors","useZoomSensors","zoomRef","ZoomInIcon","ZoomOutIcon","ZoomButton","onLoseFocus","wasEnabled","wasFocused","_useZoom","zoomInCallback","zoomOutCallback","zoomDisabled","iconZoomIn","iconZoomOut","ZoomButtonsGroup","zoomInRef","zoomOutRef","focusSibling","sibling","focusZoomIn","focusZoomOut","ZoomToolbarControl","buttonZoom","ResponsiveImage","_React$useReducer2$","targetWidth","pixelDensity","handleResize","targetSource","handlePreload","currentPreload","WebkitTransform","assign","visibility","ZoomWrapper","setImageDimensions","_useZoom2","_useLightboxProps5","slideProps","isResponsiveImageSlide","Zoom","PLUGIN_ZOOM"],"sourceRoot":""}