@zipkito/gallery 1.1.5 → 1.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +37 -13
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +37 -13
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.d.mts
CHANGED
|
@@ -113,6 +113,7 @@ interface ImageSliderSlots {
|
|
|
113
113
|
slideItem?: ElementType;
|
|
114
114
|
slideContent?: ElementType;
|
|
115
115
|
imageWrapper?: ElementType;
|
|
116
|
+
iframeWrapper?: ElementType;
|
|
116
117
|
slideImage?: ElementType;
|
|
117
118
|
textWrapper?: ElementType;
|
|
118
119
|
slideTitle?: ElementType;
|
|
@@ -129,6 +130,7 @@ interface ImageSliderSlotProps {
|
|
|
129
130
|
slideItem?: ComponentPropsWithoutRef<"div">;
|
|
130
131
|
slideContent?: ComponentPropsWithoutRef<"div">;
|
|
131
132
|
imageWrapper?: ComponentPropsWithoutRef<"div">;
|
|
133
|
+
iframeWrapper?: ComponentPropsWithoutRef<"div">;
|
|
132
134
|
slideImage?: ComponentPropsWithoutRef<"img">;
|
|
133
135
|
textWrapper?: ComponentPropsWithoutRef<"div">;
|
|
134
136
|
slideTitle?: ComponentPropsWithoutRef<"h3">;
|
package/dist/index.d.ts
CHANGED
|
@@ -113,6 +113,7 @@ interface ImageSliderSlots {
|
|
|
113
113
|
slideItem?: ElementType;
|
|
114
114
|
slideContent?: ElementType;
|
|
115
115
|
imageWrapper?: ElementType;
|
|
116
|
+
iframeWrapper?: ElementType;
|
|
116
117
|
slideImage?: ElementType;
|
|
117
118
|
textWrapper?: ElementType;
|
|
118
119
|
slideTitle?: ElementType;
|
|
@@ -129,6 +130,7 @@ interface ImageSliderSlotProps {
|
|
|
129
130
|
slideItem?: ComponentPropsWithoutRef<"div">;
|
|
130
131
|
slideContent?: ComponentPropsWithoutRef<"div">;
|
|
131
132
|
imageWrapper?: ComponentPropsWithoutRef<"div">;
|
|
133
|
+
iframeWrapper?: ComponentPropsWithoutRef<"div">;
|
|
132
134
|
slideImage?: ComponentPropsWithoutRef<"img">;
|
|
133
135
|
textWrapper?: ComponentPropsWithoutRef<"div">;
|
|
134
136
|
slideTitle?: ComponentPropsWithoutRef<"h3">;
|
package/dist/index.js
CHANGED
|
@@ -214,15 +214,12 @@ var ImageSliderSliderWrapper = (0, import_styles2.styled)("div", {
|
|
|
214
214
|
height: "100%",
|
|
215
215
|
maxWidth: "100%",
|
|
216
216
|
maxHeight: "100%",
|
|
217
|
-
boxSizing: "border-box"
|
|
218
|
-
"@media (max-width: 768px)": {
|
|
219
|
-
minHeight: 0,
|
|
220
|
-
minWidth: 0
|
|
221
|
-
}
|
|
217
|
+
boxSizing: "border-box"
|
|
222
218
|
}));
|
|
223
219
|
var ImageSliderSlidesWrapper = (0, import_styles2.styled)("div", {
|
|
224
220
|
name: "ImageSlider",
|
|
225
|
-
slot: "SlidesWrapper"
|
|
221
|
+
slot: "SlidesWrapper",
|
|
222
|
+
shouldForwardProp: (propName) => !propName.startsWith("$")
|
|
226
223
|
})(({ $currentSlide, $transitionDuration }) => ({
|
|
227
224
|
display: "flex",
|
|
228
225
|
width: "100%",
|
|
@@ -235,7 +232,8 @@ var ImageSliderSlidesWrapper = (0, import_styles2.styled)("div", {
|
|
|
235
232
|
}));
|
|
236
233
|
var ImageSliderSlideItem = (0, import_styles2.styled)("div", {
|
|
237
234
|
name: "ImageSlider",
|
|
238
|
-
slot: "SlideItem"
|
|
235
|
+
slot: "SlideItem",
|
|
236
|
+
shouldForwardProp: (propName) => !propName.startsWith("$")
|
|
239
237
|
})(({ $isActive }) => ({
|
|
240
238
|
minWidth: "100%",
|
|
241
239
|
width: "100%",
|
|
@@ -404,18 +402,35 @@ var ImageSliderSlideDescription = (0, import_styles2.styled)("p", {
|
|
|
404
402
|
lineHeight: "1.4"
|
|
405
403
|
}
|
|
406
404
|
}));
|
|
405
|
+
var ImageSliderIframeWrapper = (0, import_styles2.styled)("div", {
|
|
406
|
+
name: "ImageSlider",
|
|
407
|
+
slot: "IframeWrapper"
|
|
408
|
+
})(() => ({
|
|
409
|
+
flex: "1 1 auto",
|
|
410
|
+
minHeight: "0",
|
|
411
|
+
minWidth: "0",
|
|
412
|
+
display: "flex",
|
|
413
|
+
alignItems: "center",
|
|
414
|
+
justifyContent: "center",
|
|
415
|
+
width: "100%",
|
|
416
|
+
maxWidth: "100%",
|
|
417
|
+
maxHeight: "100%",
|
|
418
|
+
overflow: "hidden",
|
|
419
|
+
position: "relative"
|
|
420
|
+
}));
|
|
407
421
|
var ImageSliderSlideIframe = (0, import_styles2.styled)("iframe", {
|
|
408
422
|
name: "ImageSlider",
|
|
409
423
|
slot: "SlideIframe"
|
|
410
424
|
})(() => ({
|
|
411
425
|
width: "100%",
|
|
412
426
|
height: "100%",
|
|
413
|
-
|
|
427
|
+
maxWidth: "100%",
|
|
428
|
+
maxHeight: "100%",
|
|
414
429
|
display: "block",
|
|
415
|
-
|
|
416
|
-
borderRadius: "10px",
|
|
430
|
+
position: "relative",
|
|
417
431
|
border: 0,
|
|
418
|
-
|
|
432
|
+
background: "transparent",
|
|
433
|
+
borderRadius: 10
|
|
419
434
|
}));
|
|
420
435
|
var ImageSliderSlideEmbed = (0, import_styles2.styled)("embed", {
|
|
421
436
|
name: "ImageSlider",
|
|
@@ -494,7 +509,8 @@ var ImageSliderControlsDotsWrapper = (0, import_styles3.styled)("div", {
|
|
|
494
509
|
}));
|
|
495
510
|
var ImageSliderControlsDot = (0, import_styles3.styled)("div", {
|
|
496
511
|
name: "ImageSliderControls",
|
|
497
|
-
slot: "Dot"
|
|
512
|
+
slot: "Dot",
|
|
513
|
+
shouldForwardProp: (propName) => !propName.startsWith("$")
|
|
498
514
|
})(({ $active }) => ({
|
|
499
515
|
width: $active ? "12px" : "8px",
|
|
500
516
|
height: $active ? "12px" : "8px",
|
|
@@ -682,6 +698,7 @@ var ImageSlider = (props) => {
|
|
|
682
698
|
const SlideDescription = slots.slideDescription ?? ImageSliderSlideDescription;
|
|
683
699
|
const SlideEmbed = slots.slideEmbed ?? ImageSliderSlideEmbed;
|
|
684
700
|
const SlideIframe = slots.slideIframe ?? ImageSliderSlideIframe;
|
|
701
|
+
const IframeWrapper = slots.iframeWrapper ?? ImageSliderIframeWrapper;
|
|
685
702
|
const SlideLink = slots.slideLink ?? ImageSliderSlideLink;
|
|
686
703
|
const EmptyControls = slots.emptyControls ?? (({ height, mt }) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_material4.Box, { height, mt }));
|
|
687
704
|
const rootProps = (0, import_react4.useMemo)(
|
|
@@ -768,6 +785,13 @@ var ImageSlider = (props) => {
|
|
|
768
785
|
}),
|
|
769
786
|
[slotProps.slideIframe, sx]
|
|
770
787
|
);
|
|
788
|
+
const iframeWrapperProps = (0, import_react4.useMemo)(
|
|
789
|
+
() => ({
|
|
790
|
+
...slotProps.iframeWrapper,
|
|
791
|
+
sx: (0, import_shared3.getSlotSx)("iframeWrapper", sx)
|
|
792
|
+
}),
|
|
793
|
+
[slotProps.iframeWrapper, sx]
|
|
794
|
+
);
|
|
771
795
|
const slideLinkProps = (0, import_react4.useMemo)(
|
|
772
796
|
() => ({
|
|
773
797
|
...slotProps.slideLink,
|
|
@@ -791,7 +815,7 @@ var ImageSlider = (props) => {
|
|
|
791
815
|
$currentSlide: currentSlide,
|
|
792
816
|
$transitionDuration: transitionDuration,
|
|
793
817
|
children: memoizedSlides.map((slide, idx) => /* @__PURE__ */ (0, import_react5.createElement)(SlideItem, { ...slideItemProps, key: idx, $isActive: idx === currentSlide }, /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(SlideContent, { ...slideContentProps, children: slide.type === "Iframe" ? /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [
|
|
794
|
-
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
818
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(IframeWrapper, { ...iframeWrapperProps, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
795
819
|
SlideIframe,
|
|
796
820
|
{
|
|
797
821
|
src: slide.iframe ?? slide.file ?? "",
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/MDXGallery/MDXGallery.tsx","../src/MDXGallery/MDXGallery.styled.ts","../src/SlideGallery/SlideGallery.tsx","../src/ImageSlider/ImageSlider.tsx","../src/ImageSlider/ImageSlider.styled.ts","../src/ImageSlider/components/ImageSliderControls/ImageSliderControls.tsx","../src/ImageSlider/components/ImageSliderControls/ImageSliderControls.styled.ts","../src/ImageSlider/components/ArrowButton/ArrowButton.tsx","../src/SlideGallery/SlideGallery.styled.ts","../src/IframeGallery/IframeGallery.tsx","../src/IframeGallery/IframeGallery.styled.ts","../src/types/galleries.ts"],"sourcesContent":["// components\nexport { MDXGallery } from \"./MDXGallery\";\nexport { SlideGallery } from \"./SlideGallery\";\nexport { IframeGallery } from \"./IframeGallery\";\n\n// types\nexport * from \"./types\";\n","import * as runtime from \"react/jsx-runtime\";\nimport { compile, run } from \"@mdx-js/mdx\";\nimport { getSlotSx, Overlay } from \"@zipkito/shared\";\nimport { Container as MuiContainer } from \"@mui/material\";\nimport { memo, useEffect, useMemo, useState, type FC } from \"react\";\n\nimport type { MDXGalleryProps } from \"./MDXGallery.types\";\nimport { MDXGalleryErrorMessage, MDXGalleryLoadingMessage, MDXGalleryRoot } from \"./MDXGallery.styled\";\n\ntype LoadStatus = \"idle\" | \"loading\" | \"error\" | \"ready\";\n\nexport const MDXGallery = memo((props: MDXGalleryProps) => {\n const { gallery, mdxContext, actions, slots = {}, slotProps = {}, overlayProps = {}, sx } = props;\n\n const [Content, setContent] = useState<FC | null>(null);\n const [status, setStatus] = useState<LoadStatus>(\"idle\");\n const [error, setError] = useState<string | null>(null);\n\n useEffect(() => {\n if (!gallery.visible || !gallery.file) {\n setStatus(\"idle\");\n setContent(null);\n setError(null);\n return;\n }\n\n let cancelled = false;\n\n const load = async () => {\n try {\n setStatus(\"loading\");\n setError(null);\n\n const source = await mdxContext.loadSource(gallery.file!);\n\n const compiled = await compile(source, {\n outputFormat: \"function-body\",\n providerImportSource: \"@mdx-js/react\",\n });\n\n const evaluated = await run(String(compiled), {\n ...runtime,\n\n useMDXComponents: () => mdxContext.components ?? {},\n });\n\n if (!cancelled && typeof evaluated.default === \"function\") {\n setContent(() => evaluated.default as FC);\n setStatus(\"ready\");\n }\n } catch (err: unknown) {\n if (!cancelled) {\n setError(err instanceof Error ? err.message : \"Failed to load MDX\");\n setStatus(\"error\");\n }\n }\n };\n\n load();\n return () => {\n cancelled = true;\n };\n }, [gallery.file, gallery.visible, mdxContext]);\n\n if (!gallery.visible) return null;\n\n const Root = slots.root ?? MDXGalleryRoot;\n const Container = slots.container ?? MuiContainer;\n const LoadingMessage = slots.loadingMessage ?? MDXGalleryLoadingMessage;\n const ErrorMessage = slots.errorMessage ?? MDXGalleryErrorMessage;\n\n const rootProps = useMemo(\n () => ({\n ...slotProps.root,\n sx: getSlotSx(\"root\", sx),\n }),\n [slotProps.root, sx]\n );\n\n const containerProps = useMemo(\n () => ({\n ...slotProps.container,\n sx: getSlotSx(\"container\", sx),\n }),\n [slotProps.container, sx]\n );\n\n const loadingMessageProps = useMemo(\n () => ({\n ...slotProps.loadingMessage,\n sx: getSlotSx(\"loadingMessage\", sx),\n }),\n [slotProps.loadingMessage, sx]\n );\n\n const errorMessageProps = useMemo(\n () => ({\n ...slotProps.errorMessage,\n sx: getSlotSx(\"errorMessage\", sx),\n }),\n [slotProps.errorMessage, sx]\n );\n\n return (\n <Overlay visible={gallery.visible} {...overlayProps}>\n <Root {...rootProps}>\n <Container maxWidth=\"xl\" {...containerProps}>\n {status === \"loading\" && (\n <LoadingMessage variant=\"subh2\" {...loadingMessageProps}>\n Loading content...\n </LoadingMessage>\n )}\n\n {status === \"error\" && (\n <ErrorMessage variant=\"subh2\" {...errorMessageProps}>\n Error loading content: {error}\n </ErrorMessage>\n )}\n\n {status === \"ready\" && Content && <Content />}\n </Container>\n </Root>\n {actions}\n </Overlay>\n );\n});\n\nMDXGallery.displayName = \"MDXGallery\";\n","import { styled } from \"@mui/material/styles\";\nimport type { StyledComponent } from \"@emotion/styled\";\nimport { Typography, type TypographyProps } from \"@mui/material\";\n\nexport const MDXGalleryRoot: StyledComponent<{}, {}, {}> = styled(\"div\", {\n name: \"MDXGallery\",\n slot: \"Root\",\n})(({ theme }) => ({\n height: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n padding: \"24px\",\n background: \"radial-gradient(circle at top, rgba(255, 255, 255, 0.08), transparent 45%)\",\n scrollbarGutter: \"stable\",\n scrollbarColor: `${theme.palette.primary.main} rgba(255, 255, 255, 0.3)`,\n scrollbarWidth: \"thin\",\n position: \"relative\",\n overflowX: \"hidden\",\n overflowY: \"auto\",\n}));\n\nexport const MDXGalleryLoadingMessage: StyledComponent<TypographyProps, {}, {}> = styled(Typography, {\n name: \"MDXGallery\",\n slot: \"LoadingMessage\",\n})(() => ({\n textAlign: \"center\",\n padding: \"40px\",\n color: \"#666\",\n}));\n\nexport const MDXGalleryErrorMessage: StyledComponent<TypographyProps, {}, {}> = styled(Typography, {\n name: \"MDXGallery\",\n slot: \"ErrorMessage\",\n})(() => ({\n textAlign: \"center\",\n padding: \"40px\",\n color: \"#d32f2f\",\n}));\n","import { memo, useMemo } from \"react\";\nimport { getSlotSx, Overlay } from \"@zipkito/shared\";\n\nimport { ImageSlider } from \"../ImageSlider\";\nimport { SlideGalleryRoot } from \"./SlideGallery.styled\";\nimport type { SlideGalleryProps } from \"./SlideGallery.types\";\n\nexport const SlideGallery = memo((props: SlideGalleryProps) => {\n const { gallery, actions, slots = {}, slotProps = {}, imageSliderProps, controlsProps, overlayProps, sx } = props;\n\n const slides = useMemo(\n () =>\n gallery.slides.map((slide, idx) => ({\n ...slide,\n alt: slide.title ?? `Slide ${idx + 1}`,\n })),\n [gallery.slides]\n );\n\n if (!gallery.visible || slides.length === 0) return null;\n\n const Root = slots.root ?? SlideGalleryRoot;\n\n const rootProps = useMemo(\n () => ({\n ...slotProps.root,\n sx: getSlotSx(\"root\", sx),\n }),\n [slotProps.root, sx]\n );\n\n return (\n <Overlay visible={gallery.visible} {...overlayProps}>\n <Root {...rootProps}>\n <ImageSlider slides={slides} {...imageSliderProps} controlsProps={controlsProps} />\n </Root>\n {actions}\n </Overlay>\n );\n});\n\nSlideGallery.displayName = \"SlideGallery\";\n","import { Box } from \"@mui/material\";\nimport { ExternalLink } from \"lucide-react\";\nimport { getSlotSx } from \"@zipkito/shared\";\nimport { useState, useRef, useCallback, useMemo, useEffect } from \"react\";\n\nimport {\n ImageSliderSlideLink,\n ImageSliderSlideEmbed,\n ImageSliderSlideIframe,\n ImageSliderSlideDescription,\n ImageSliderSlideImage,\n ImageSliderSlideTitle,\n ImageSliderTextWrapper,\n ImageSliderImageWrapper,\n ImageSliderSlideItem,\n ImageSliderRoot,\n ImageSliderSlidesWrapper,\n ImageSliderSliderWrapper,\n ImageSliderSlideContent,\n} from \"./ImageSlider.styled\";\nimport type { ImageSliderProps } from \"./ImageSlider.types\";\nimport { ImageSliderControls } from \"./components/ImageSliderControls\";\n\nexport const ImageSlider = (props: ImageSliderProps) => {\n const {\n loop = false,\n showDots = true,\n showArrows = true,\n slides,\n className,\n transitionDuration = 500,\n onSlideChange,\n slots = {},\n slotProps = {},\n controlsProps = {},\n sx,\n } = props;\n\n const isTransitioningRef = useRef(false);\n const slidesWrapperRef = useRef<HTMLDivElement>(null);\n\n const [, forceUpdate] = useState(0);\n const [currentSlide, setCurrentSlide] = useState(0);\n\n const slidesCount = slides.length;\n\n const canGoNext = loop || currentSlide < slidesCount - 1;\n const canGoPrev = loop || currentSlide > 0;\n\n const goToSlide = useCallback(\n (index: number) => {\n if (isTransitioningRef.current || index === currentSlide || slidesCount === 0) return;\n\n let newIndex = index;\n\n if (loop) {\n if (index < 0) newIndex = slidesCount - 1;\n if (index >= slidesCount) newIndex = 0;\n }\n\n if (newIndex < 0 || newIndex >= slidesCount) return;\n\n isTransitioningRef.current = true;\n setCurrentSlide(newIndex);\n onSlideChange?.(newIndex);\n\n setTimeout(() => {\n isTransitioningRef.current = false;\n }, transitionDuration);\n },\n [currentSlide, slidesCount, transitionDuration, onSlideChange, loop]\n );\n\n const next = useCallback(() => goToSlide(currentSlide + 1), [currentSlide, goToSlide]);\n const prev = useCallback(() => goToSlide(currentSlide - 1), [currentSlide, goToSlide]);\n\n useEffect(() => {\n const handleResize = () => forceUpdate((prev) => prev + 1);\n window.addEventListener(\"resize\", handleResize);\n return () => window.removeEventListener(\"resize\", handleResize);\n }, []);\n\n useEffect(() => {\n const onKey = (e: KeyboardEvent) => {\n if (e.key === \"ArrowLeft\") prev();\n if (e.key === \"ArrowRight\") next();\n };\n window.addEventListener(\"keydown\", onKey);\n return () => window.removeEventListener(\"keydown\", onKey);\n }, [prev, next]);\n\n useEffect(() => {\n const wrapper = slidesWrapperRef.current;\n if (!wrapper) return;\n\n let startX: number | null = null;\n\n const onTouchStart = (e: TouchEvent) => {\n startX = e.touches[0].clientX;\n };\n const onTouchEnd = (e: TouchEvent) => {\n if (startX === null) return;\n const deltaX = e.changedTouches[0].clientX - startX;\n if (Math.abs(deltaX) > 50) {\n if (deltaX > 0) prev();\n else next();\n }\n startX = null;\n };\n wrapper.addEventListener(\"touchstart\", onTouchStart);\n wrapper.addEventListener(\"touchend\", onTouchEnd);\n return () => {\n wrapper.removeEventListener(\"touchstart\", onTouchStart);\n wrapper.removeEventListener(\"touchend\", onTouchEnd);\n };\n }, [prev, next]);\n\n const memoizedSlides = useMemo(() => slides, [slides]);\n\n if (slidesCount === 0) return null;\n\n const Root = slots.root ?? ImageSliderRoot;\n const SliderWrapper = slots.sliderWrapper ?? ImageSliderSliderWrapper;\n const SlidesWrapper = slots.slidesWrapper ?? ImageSliderSlidesWrapper;\n const SlideItem = slots.slideItem ?? ImageSliderSlideItem;\n const SlideContent = slots.slideContent ?? ImageSliderSlideContent;\n const ImageWrapper = slots.imageWrapper ?? ImageSliderImageWrapper;\n const SlideImage = slots.slideImage ?? ImageSliderSlideImage;\n const TextWrapper = slots.textWrapper ?? ImageSliderTextWrapper;\n const SlideTitle = slots.slideTitle ?? ImageSliderSlideTitle;\n const SlideDescription = slots.slideDescription ?? ImageSliderSlideDescription;\n const SlideEmbed = slots.slideEmbed ?? ImageSliderSlideEmbed;\n const SlideIframe = slots.slideIframe ?? ImageSliderSlideIframe;\n const SlideLink = slots.slideLink ?? ImageSliderSlideLink;\n const EmptyControls =\n slots.emptyControls ?? (({ height, mt }: { height: number; mt: number }) => <Box height={height} mt={mt} />);\n\n const rootProps = useMemo(\n () => ({\n ...slotProps.root,\n sx: getSlotSx(\"root\", sx),\n }),\n [slotProps.root, sx]\n );\n\n const sliderWrapperProps = useMemo(\n () => ({\n ...slotProps.sliderWrapper,\n sx: getSlotSx(\"sliderWrapper\", sx),\n }),\n [slotProps.sliderWrapper, sx]\n );\n\n const slidesWrapperProps = useMemo(\n () => ({\n ...slotProps.slidesWrapper,\n sx: getSlotSx(\"slidesWrapper\", sx),\n }),\n [slotProps.slidesWrapper, sx]\n );\n\n const slideItemProps = useMemo(\n () => ({\n ...slotProps.slideItem,\n sx: getSlotSx(\"slideItem\", sx),\n }),\n [slotProps.slideItem, sx]\n );\n\n const slideContentProps = useMemo(\n () => ({\n ...slotProps.slideContent,\n sx: getSlotSx(\"slideContent\", sx),\n }),\n [slotProps.slideContent, sx]\n );\n\n const imageWrapperProps = useMemo(\n () => ({\n ...slotProps.imageWrapper,\n sx: getSlotSx(\"imageWrapper\", sx),\n }),\n [slotProps.imageWrapper, sx]\n );\n\n const slideImageProps = useMemo(\n () => ({\n ...slotProps.slideImage,\n sx: getSlotSx(\"slideImage\", sx),\n }),\n [slotProps.slideImage, sx]\n );\n\n const textWrapperProps = useMemo(\n () => ({\n ...slotProps.textWrapper,\n sx: getSlotSx(\"textWrapper\", sx),\n }),\n [slotProps.textWrapper, sx]\n );\n\n const slideTitleProps = useMemo(\n () => ({\n ...slotProps.slideTitle,\n sx: getSlotSx(\"slideTitle\", sx),\n }),\n [slotProps.slideTitle, sx]\n );\n\n const slideDescriptionProps = useMemo(\n () => ({\n ...slotProps.slideDescription,\n sx: getSlotSx(\"slideDescription\", sx),\n }),\n [slotProps.slideDescription, sx]\n );\n\n const slideEmbedProps = useMemo(\n () => ({\n ...slotProps.slideEmbed,\n sx: getSlotSx(\"slideEmbed\", sx),\n }),\n [slotProps.slideEmbed, sx]\n );\n\n const slideIframeProps = useMemo(\n () => ({\n ...slotProps.slideIframe,\n sx: getSlotSx(\"slideIframe\", sx),\n }),\n [slotProps.slideIframe, sx]\n );\n\n const slideLinkProps = useMemo(\n () => ({\n ...slotProps.slideLink,\n sx: getSlotSx(\"slideLink\", sx),\n }),\n [slotProps.slideLink, sx]\n );\n\n const emptyControlsProps = useMemo(\n () => ({\n ...slotProps.emptyControls,\n sx: getSlotSx(\"emptyControls\", sx),\n }),\n [slotProps.emptyControls, sx]\n );\n\n return (\n <Root className={className} {...rootProps}>\n <SliderWrapper {...sliderWrapperProps}>\n <SlidesWrapper\n {...slidesWrapperProps}\n ref={slidesWrapperRef}\n $currentSlide={currentSlide}\n $transitionDuration={transitionDuration}\n >\n {memoizedSlides.map((slide, idx) => (\n <SlideItem {...slideItemProps} key={idx} $isActive={idx === currentSlide}>\n <SlideContent {...slideContentProps}>\n {slide.type === \"Iframe\" ? (\n <>\n <ImageWrapper {...imageWrapperProps}>\n <SlideIframe\n src={slide.iframe ?? slide.file ?? \"\"}\n title={slide.title ?? slide.alt}\n loading=\"lazy\"\n {...slideIframeProps}\n />\n </ImageWrapper>\n {(slide.title || slide.description) && (\n <TextWrapper {...textWrapperProps}>\n {slide.title && <SlideTitle {...slideTitleProps}>{slide.title}</SlideTitle>}\n {slide.description && (\n <SlideDescription {...slideDescriptionProps}>{slide.description}</SlideDescription>\n )}\n </TextWrapper>\n )}\n </>\n ) : slide.type === \"PDF\" ? (\n <>\n <SlideEmbed src={slide.file} {...slideEmbedProps} />\n <SlideLink href={slide.file} target=\"_blank\" rel=\"noopener noreferrer\" {...slideLinkProps}>\n <ExternalLink size={24} color=\"#ffffff\" />\n <p>Open file in the new tab</p>\n </SlideLink>\n </>\n ) : (\n <>\n <ImageWrapper {...imageWrapperProps}>\n <SlideImage\n src={slide.image}\n alt={slide.alt}\n loading={idx === 0 ? \"eager\" : \"lazy\"}\n draggable={false}\n tabIndex={idx === currentSlide ? 0 : -1}\n {...slideImageProps}\n />\n </ImageWrapper>\n {(slide.title || slide.description) && (\n <TextWrapper {...textWrapperProps}>\n {slide.title && <SlideTitle {...slideTitleProps}>{slide.title}</SlideTitle>}\n {slide.description && (\n <SlideDescription {...slideDescriptionProps}>{slide.description}</SlideDescription>\n )}\n </TextWrapper>\n )}\n </>\n )}\n </SlideContent>\n </SlideItem>\n ))}\n </SlidesWrapper>\n </SliderWrapper>\n\n {slidesCount > 1 ? (\n <ImageSliderControls\n showArrows={showArrows}\n showDots={showDots}\n memoizedSlides={memoizedSlides}\n currentSlide={currentSlide}\n goToSlide={goToSlide}\n canGoPrev={canGoPrev}\n canGoNext={canGoNext}\n prev={prev}\n next={next}\n {...controlsProps}\n />\n ) : (\n <EmptyControls height={55} mt={2} {...emptyControlsProps} />\n )}\n </Root>\n );\n};\n\nImageSlider.displayName = \"ImageSlider\";\n","import { styled } from \"@mui/material/styles\";\nimport type { StyledComponent } from \"@emotion/styled\";\n\nexport const ImageSliderRoot: StyledComponent<{}, {}, {}> = styled(\"div\", {\n name: \"ImageSlider\",\n slot: \"Root\",\n})(() => ({\n width: \"100%\",\n height: \"100%\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n flex: 1,\n minHeight: 0,\n position: \"relative\",\n overflow: \"hidden\",\n boxSizing: \"border-box\",\n}));\n\nexport const ImageSliderSliderWrapper: StyledComponent<{}, {}, {}> = styled(\"div\", {\n name: \"ImageSlider\",\n slot: \"SliderWrapper\",\n})(() => ({\n flex: \"1 1 auto\",\n minHeight: 0,\n minWidth: 0,\n display: \"flex\",\n position: \"relative\",\n overflow: \"hidden\",\n width: \"100%\",\n height: \"100%\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n boxSizing: \"border-box\",\n\n \"@media (max-width: 768px)\": {\n minHeight: 0,\n minWidth: 0,\n },\n}));\n\nexport const ImageSliderSlidesWrapper: StyledComponent<{ $currentSlide: number; $transitionDuration: number }, {}, {}> =\n styled(\"div\", {\n name: \"ImageSlider\",\n slot: \"SlidesWrapper\",\n })<{ $currentSlide: number; $transitionDuration: number }>(({ $currentSlide, $transitionDuration }) => ({\n display: \"flex\",\n width: \"100%\",\n height: \"100%\",\n maxHeight: \"100%\",\n transform: `translateX(-${$currentSlide * 100}%)`,\n transition: `transform ${$transitionDuration}ms cubic-bezier(0.4, 0, 0.2, 1)`,\n willChange: \"transform\",\n position: \"relative\",\n }));\n\nexport const ImageSliderSlideItem: StyledComponent<{ $isActive: boolean }, {}, {}> = styled(\"div\", {\n name: \"ImageSlider\",\n slot: \"SlideItem\",\n})<{ $isActive: boolean }>(({ $isActive }) => ({\n minWidth: \"100%\",\n width: \"100%\",\n height: \"100%\",\n maxHeight: \"100%\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n opacity: $isActive ? 1 : 0.7,\n transition: \"opacity 0.3s\",\n padding: \"0\",\n overflow: \"hidden\",\n position: \"relative\",\n boxSizing: \"border-box\",\n\n \"@media (max-width: 768px)\": {\n padding: \"0\",\n },\n}));\n\nexport const ImageSliderSlideContent: StyledComponent<{}, {}, {}> = styled(\"div\", {\n name: \"ImageSlider\",\n slot: \"SlideContent\",\n})(() => ({\n width: \"100%\",\n height: \"100%\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: \"16px\",\n boxSizing: \"border-box\",\n overflowY: \"auto\",\n overflowX: \"hidden\",\n position: \"relative\",\n\n \"&::-webkit-scrollbar\": {\n width: \"6px\",\n },\n\n \"&::-webkit-scrollbar-track\": {\n background: \"transparent\",\n },\n\n \"&::-webkit-scrollbar-thumb\": {\n background: \"rgba(255, 255, 255, 0.3)\",\n borderRadius: \"3px\",\n\n \"&:hover\": {\n background: \"rgba(255, 255, 255, 0.5)\",\n },\n },\n}));\n\nexport const ImageSliderImageWrapper: StyledComponent<{}, {}, {}> = styled(\"div\", {\n name: \"ImageSlider\",\n slot: \"ImageWrapper\",\n})(() => ({\n flex: \"1 1 auto\",\n minHeight: \"0\",\n minWidth: \"0\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"100%\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n overflow: \"hidden\",\n position: \"relative\",\n}));\n\nexport const ImageSliderSlideImage: StyledComponent<{}, {}, {}> = styled(\"img\", {\n name: \"ImageSlider\",\n slot: \"SlideImage\",\n})(() => ({\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n width: \"100%\",\n height: \"100%\",\n objectFit: \"contain\",\n userSelect: \"none\",\n pointerEvents: \"none\",\n display: \"block\",\n position: \"relative\",\n\n \"@media (max-width: 768px)\": {\n maxWidth: \"95%\",\n maxHeight: \"95%\",\n },\n\n \"@media (max-width: 480px)\": {\n maxWidth: \"90%\",\n maxHeight: \"90%\",\n },\n\n \"@media (orientation: landscape) and (max-height: 600px)\": {\n maxHeight: \"85%\",\n },\n}));\n\nexport const ImageSliderTextWrapper: StyledComponent<{}, {}, {}> = styled(\"div\", {\n name: \"ImageSlider\",\n slot: \"TextWrapper\",\n})(() => ({\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n width: \"100%\",\n maxWidth: \"800px\",\n flexShrink: 0,\n gap: \"8px\",\n padding: \"0 16px\",\n boxSizing: \"border-box\",\n minWidth: \"0\",\n\n \"@media (max-width: 768px)\": {\n maxWidth: \"100%\",\n padding: \"0 8px\",\n gap: \"6px\",\n },\n\n \"@media (max-width: 480px)\": {\n padding: \"0 4px\",\n gap: \"4px\",\n },\n\n \"@media (orientation: landscape) and (max-height: 600px)\": {\n gap: \"4px\",\n padding: \"0 8px\",\n },\n}));\n\nexport const ImageSliderSlideTitle: StyledComponent<{}, {}, {}> = styled(\"h3\", {\n name: \"ImageSlider\",\n slot: \"SlideTitle\",\n})(() => ({\n fontWeight: 700,\n fontSize: \"clamp(20px, 4vw, 32px)\",\n lineHeight: \"1.4\",\n textAlign: \"center\",\n letterSpacing: \"0.01em\",\n color: \"#ffffff\",\n margin: 0,\n wordWrap: \"break-word\",\n overflowWrap: \"break-word\",\n\n \"@media (max-width: 768px)\": {\n fontSize: \"clamp(18px, 4.5vw, 24px)\",\n },\n\n \"@media (max-width: 480px)\": {\n fontSize: \"clamp(16px, 5vw, 20px)\",\n },\n\n \"@media (orientation: landscape) and (max-height: 600px)\": {\n fontSize: \"clamp(16px, 3vw, 22px)\",\n },\n}));\n\nexport const ImageSliderSlideDescription: StyledComponent<{}, {}, {}> = styled(\"p\", {\n name: \"ImageSlider\",\n slot: \"SlideDescription\",\n})(() => ({\n fontWeight: 400,\n fontSize: \"clamp(14px, 2.5vw, 16px)\",\n lineHeight: \"1.6\",\n textAlign: \"center\",\n color: \"#ffffff\",\n maxWidth: \"100%\",\n margin: 0,\n wordWrap: \"break-word\",\n overflowWrap: \"break-word\",\n\n \"@media (max-width: 768px)\": {\n fontSize: \"clamp(13px, 3vw, 15px)\",\n lineHeight: \"1.5\",\n },\n\n \"@media (max-width: 480px)\": {\n fontSize: \"clamp(12px, 3.5vw, 14px)\",\n },\n\n \"@media (orientation: landscape) and (max-height: 600px)\": {\n fontSize: \"clamp(12px, 2vw, 14px)\",\n lineHeight: \"1.4\",\n },\n}));\n\nexport const ImageSliderSlideIframe: StyledComponent<{}, {}, {}> = styled(\"iframe\", {\n name: \"ImageSlider\",\n slot: \"SlideIframe\",\n})(() => ({\n width: \"100%\",\n height: \"100%\",\n minHeight: \"400px\",\n display: \"block\",\n margin: \"0 auto\",\n borderRadius: \"10px\",\n border: 0,\n backgroundColor: \"transparent\",\n}));\n\nexport const ImageSliderSlideEmbed: StyledComponent<{}, {}, {}> = styled(\"embed\", {\n name: \"ImageSlider\",\n slot: \"SlideEmbed\",\n})(() => ({\n width: \"100%\",\n height: \"100%\",\n display: \"block\",\n margin: \"0 auto\",\n borderRadius: \"10px\",\n\n \"@media (max-width: 640px), (max-width: 900px) and (orientation: landscape)\": {\n display: \"none\",\n },\n}));\n\nexport const ImageSliderSlideLink: StyledComponent<{}, {}, {}> = styled(\"a\", {\n name: \"ImageSlider\",\n slot: \"SlideLink\",\n})(() => ({\n display: \"none\",\n backgroundColor: \"#00263E\",\n border: `2px solid #00263E`,\n color: \"#ffffff\",\n padding: \"8px 16px\",\n borderRadius: \"8px\",\n columnGap: \"12px\",\n flexFlow: \"row nowrap\",\n alignItems: \"center\",\n fontWeight: 400,\n fontSize: \"clamp(14px, 2.5vw, 16px)\",\n lineHeight: \"1.6\",\n\n \"@media (max-width: 640px), (max-width: 900px) and (orientation: landscape)\": {\n display: \"flex\",\n },\n\n \"& path\": {\n stroke: \"#ffffff\",\n },\n}));\n","import { memo, useMemo } from \"react\";\nimport { getSlotSx } from \"@zipkito/shared\";\nimport { ArrowLeftIcon, ArrowRightIcon } from \"lucide-react\";\n\nimport {\n ImageSliderControlsDot,\n ImageSliderControlsDotsWrapper,\n ImageSliderControlsRoot,\n} from \"./ImageSliderControls.styled\";\nimport { ArrowButton } from \"../ArrowButton\";\nimport type { ImageSliderControlsProps } from \"./ImageSliderControls.types\";\n\nexport const ImageSliderControls = memo((props: ImageSliderControlsProps) => {\n const {\n showArrows,\n showDots,\n memoizedSlides,\n currentSlide,\n canGoPrev,\n canGoNext,\n prev,\n next,\n goToSlide,\n slots = {},\n slotProps = {},\n sx,\n } = props;\n\n const Root = slots.root ?? ImageSliderControlsRoot;\n const DotsWrapper = slots.dotsWrapper ?? ImageSliderControlsDotsWrapper;\n const Dot = slots.dot ?? ImageSliderControlsDot;\n const LeftArrow = slots.leftArrow;\n const RightArrow = slots.rightArrow;\n\n const rootProps = useMemo(\n () => ({\n ...slotProps.root,\n sx: getSlotSx(\"root\", sx),\n }),\n [slotProps.root, sx]\n );\n\n const dotsWrapperProps = useMemo(\n () => ({\n ...slotProps.dotsWrapper,\n sx: getSlotSx(\"dotsWrapper\", sx),\n }),\n [slotProps.dotsWrapper, sx]\n );\n\n const dotProps = useMemo(\n () => ({\n ...slotProps.dot,\n sx: getSlotSx(\"dot\", sx),\n }),\n [slotProps.dot, sx]\n );\n\n const leftArrowProps = useMemo(\n () => ({\n ...slotProps.leftArrow,\n sx: getSlotSx(\"leftArrow\", sx),\n }),\n [slotProps.leftArrow, sx]\n );\n\n const rightArrowProps = useMemo(\n () => ({\n ...slotProps.rightArrow,\n sx: getSlotSx(\"rightArrow\", sx),\n }),\n [slotProps.rightArrow, sx]\n );\n\n return (\n <Root {...rootProps}>\n {showArrows && LeftArrow ? (\n <LeftArrow disabled={!canGoPrev} onClick={prev} {...leftArrowProps} />\n ) : (\n <ArrowButton disabled={!canGoPrev} onClick={prev} {...leftArrowProps}>\n <ArrowLeftIcon size={24} />\n </ArrowButton>\n )}\n\n {showDots && (\n <DotsWrapper {...dotsWrapperProps}>\n {memoizedSlides.map((_, i) => (\n <Dot\n key={i}\n $active={i === currentSlide}\n onClick={() => goToSlide(i)}\n role=\"button\"\n onKeyDown={(e: KeyboardEvent) => e.key === \"Enter\" || (e.key === \" \" && goToSlide(i))}\n {...dotProps}\n />\n ))}\n </DotsWrapper>\n )}\n\n {showArrows && RightArrow ? (\n <RightArrow disabled={!canGoNext} onClick={next} {...rightArrowProps} />\n ) : (\n <ArrowButton disabled={!canGoNext} onClick={next} {...rightArrowProps}>\n <ArrowRightIcon size={24} />\n </ArrowButton>\n )}\n </Root>\n );\n});\n\nImageSliderControls.displayName = \"ImageSliderControls\";\n","import { styled } from \"@mui/material/styles\";\nimport type { StyledComponent } from \"@emotion/styled\";\n\nexport const ImageSliderControlsRoot: StyledComponent<{}, {}, {}> = styled(\"div\", {\n name: \"ImageSliderControls\",\n slot: \"Root\",\n})(() => ({\n width: \"100%\",\n height: \"55px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: \"16px\",\n marginTop: \"16px\",\n flexShrink: 0,\n padding: \"0 8px\",\n\n \"@media (max-width: 768px)\": {\n gap: \"12px\",\n marginTop: \"12px\",\n },\n\n \"@media (max-width: 480px)\": {\n gap: \"8px\",\n marginTop: \"8px\",\n },\n}));\n\nexport const ImageSliderControlsDotsWrapper: StyledComponent<{}, {}, {}> = styled(\"div\", {\n name: \"ImageSliderControls\",\n slot: \"DotsWrapper\",\n})(() => ({\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: \"10px\",\n}));\n\nexport const ImageSliderControlsDot: StyledComponent<{ $active: boolean }, {}, {}> = styled(\"div\", {\n name: \"ImageSliderControls\",\n slot: \"Dot\",\n})<{ $active: boolean }>(({ $active }) => ({\n width: $active ? \"12px\" : \"8px\",\n height: $active ? \"12px\" : \"8px\",\n background: $active ? \"#fff\" : \"#5b5b5b\",\n borderRadius: \"50%\",\n cursor: \"pointer\",\n transition: \"0.2s\",\n outline: \"none\",\n \"&:focus\": { boxShadow: \"0 0 0 2px #fff\" },\n}));\n","import { IconButton } from \"@mui/material\";\nimport { ComponentProps, memo } from \"react\";\n\nexport const ArrowButton = memo(({ children, ...props }: ComponentProps<typeof IconButton>) => (\n <IconButton {...props} color=\"default\">\n {children}\n </IconButton>\n));\n\nArrowButton.displayName = \"ArrowButton\";\n","import { styled } from \"@mui/material/styles\";\nimport type { StyledComponent } from \"@emotion/styled\";\n\nexport const SlideGalleryRoot: StyledComponent<{}, {}, {}> = styled(\"div\", {\n name: \"SlideGallery\",\n slot: \"Root\",\n})(() => ({\n flex: 1,\n minHeight: 0,\n display: \"flex\",\n width: \"100%\",\n padding: \"16px\",\n borderRadius: \"16px\",\n}));\n","import { memo, useMemo } from \"react\";\nimport { Overlay } from \"@zipkito/shared\";\n\nimport { IframeGalleryFrame } from \"./IframeGallery.styled\";\nimport type { IframeGalleryProps } from \"./IframeGallery.types\";\n\nexport const IframeGallery = memo((props: IframeGalleryProps) => {\n const { gallery, actions, slots = {}, slotProps = {}, overlayProps = {}, sx } = props;\n\n const src = useMemo(() => gallery?.path, [gallery?.path]);\n\n if (!gallery.visible || !src) return null;\n\n const Frame = slots.frame ?? IframeGalleryFrame;\n\n return (\n <Overlay visible={gallery.visible} {...overlayProps}>\n <Frame src={src} sx={sx} loading=\"lazy\" {...slotProps.frame} />\n {actions}\n </Overlay>\n );\n});\n\nIframeGallery.displayName = \"IframeGallery\";\n","import { styled } from \"@mui/material/styles\";\nimport type { StyledComponent } from \"@emotion/styled\";\n\nexport const IframeGalleryFrame: StyledComponent<{}, {}, {}> = styled(\"iframe\", {\n name: \"IframeGallery\",\n slot: \"Frame\",\n})(() => ({\n border: 0,\n width: \"100%\",\n height: \"100%\",\n display: \"block\",\n background: \"transparent\",\n borderRadius: 16,\n boxShadow: \"0 12px 30px rgba(0, 0, 0, 0.25)\",\n}));\n","import { SlideGallerySlide } from \"./slides\";\n\nexport const GALLERY_TYPE = {\n Slide: \"slide\",\n MDX: \"mdx\",\n Iframe: \"iframe\",\n} as const;\n\nexport interface WithVisibility {\n visible: boolean;\n originalIndex: number;\n type: (typeof GALLERY_TYPE)[keyof typeof GALLERY_TYPE];\n}\n\nexport interface MDXGalleryType extends WithVisibility {\n file?: string;\n}\n\nexport interface SlideGalleryType extends WithVisibility {\n slides: SlideGallerySlide[];\n}\n\nexport interface IframeGalleryType extends WithVisibility {\n path?: string;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,cAAyB;AACzB,iBAA6B;AAC7B,oBAAmC;AACnC,IAAAA,mBAA0C;AAC1C,mBAA4D;;;ACJ5D,oBAAuB;AAEvB,sBAAiD;AAE1C,IAAM,qBAA8C,sBAAO,OAAO;AAAA,EACvE,MAAM;AAAA,EACN,MAAM;AACR,CAAC,EAAE,CAAC,EAAE,MAAM,OAAO;AAAA,EACjB,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,iBAAiB;AAAA,EACjB,gBAAgB,GAAG,MAAM,QAAQ,QAAQ,IAAI;AAAA,EAC7C,gBAAgB;AAAA,EAChB,UAAU;AAAA,EACV,WAAW;AAAA,EACX,WAAW;AACb,EAAE;AAEK,IAAM,+BAAqE,sBAAO,4BAAY;AAAA,EACnG,MAAM;AAAA,EACN,MAAM;AACR,CAAC,EAAE,OAAO;AAAA,EACR,WAAW;AAAA,EACX,SAAS;AAAA,EACT,OAAO;AACT,EAAE;AAEK,IAAM,6BAAmE,sBAAO,4BAAY;AAAA,EACjG,MAAM;AAAA,EACN,MAAM;AACR,CAAC,EAAE,OAAO;AAAA,EACR,WAAW;AAAA,EACX,SAAS;AAAA,EACT,OAAO;AACT,EAAE;;;ADsEU;AAjGL,IAAM,iBAAa,mBAAK,CAAC,UAA2B;AACzD,QAAM,EAAE,SAAS,YAAY,SAAS,QAAQ,CAAC,GAAG,YAAY,CAAC,GAAG,eAAe,CAAC,GAAG,GAAG,IAAI;AAE5F,QAAM,CAAC,SAAS,UAAU,QAAI,uBAAoB,IAAI;AACtD,QAAM,CAAC,QAAQ,SAAS,QAAI,uBAAqB,MAAM;AACvD,QAAM,CAAC,OAAO,QAAQ,QAAI,uBAAwB,IAAI;AAEtD,8BAAU,MAAM;AACd,QAAI,CAAC,QAAQ,WAAW,CAAC,QAAQ,MAAM;AACrC,gBAAU,MAAM;AAChB,iBAAW,IAAI;AACf,eAAS,IAAI;AACb;AAAA,IACF;AAEA,QAAI,YAAY;AAEhB,UAAM,OAAO,YAAY;AACvB,UAAI;AACF,kBAAU,SAAS;AACnB,iBAAS,IAAI;AAEb,cAAM,SAAS,MAAM,WAAW,WAAW,QAAQ,IAAK;AAExD,cAAM,WAAW,UAAM,oBAAQ,QAAQ;AAAA,UACrC,cAAc;AAAA,UACd,sBAAsB;AAAA,QACxB,CAAC;AAED,cAAM,YAAY,UAAM,gBAAI,OAAO,QAAQ,GAAG;AAAA,UAC5C,GAAG;AAAA,UAEH,kBAAkB,MAAM,WAAW,cAAc,CAAC;AAAA,QACpD,CAAC;AAED,YAAI,CAAC,aAAa,OAAO,UAAU,YAAY,YAAY;AACzD,qBAAW,MAAM,UAAU,OAAa;AACxC,oBAAU,OAAO;AAAA,QACnB;AAAA,MACF,SAAS,KAAc;AACrB,YAAI,CAAC,WAAW;AACd,mBAAS,eAAe,QAAQ,IAAI,UAAU,oBAAoB;AAClE,oBAAU,OAAO;AAAA,QACnB;AAAA,MACF;AAAA,IACF;AAEA,SAAK;AACL,WAAO,MAAM;AACX,kBAAY;AAAA,IACd;AAAA,EACF,GAAG,CAAC,QAAQ,MAAM,QAAQ,SAAS,UAAU,CAAC;AAE9C,MAAI,CAAC,QAAQ,QAAS,QAAO;AAE7B,QAAM,OAAO,MAAM,QAAQ;AAC3B,QAAM,YAAY,MAAM,aAAa,iBAAAC;AACrC,QAAM,iBAAiB,MAAM,kBAAkB;AAC/C,QAAM,eAAe,MAAM,gBAAgB;AAE3C,QAAM,gBAAY;AAAA,IAChB,OAAO;AAAA,MACL,GAAG,UAAU;AAAA,MACb,QAAI,yBAAU,QAAQ,EAAE;AAAA,IAC1B;AAAA,IACA,CAAC,UAAU,MAAM,EAAE;AAAA,EACrB;AAEA,QAAM,qBAAiB;AAAA,IACrB,OAAO;AAAA,MACL,GAAG,UAAU;AAAA,MACb,QAAI,yBAAU,aAAa,EAAE;AAAA,IAC/B;AAAA,IACA,CAAC,UAAU,WAAW,EAAE;AAAA,EAC1B;AAEA,QAAM,0BAAsB;AAAA,IAC1B,OAAO;AAAA,MACL,GAAG,UAAU;AAAA,MACb,QAAI,yBAAU,kBAAkB,EAAE;AAAA,IACpC;AAAA,IACA,CAAC,UAAU,gBAAgB,EAAE;AAAA,EAC/B;AAEA,QAAM,wBAAoB;AAAA,IACxB,OAAO;AAAA,MACL,GAAG,UAAU;AAAA,MACb,QAAI,yBAAU,gBAAgB,EAAE;AAAA,IAClC;AAAA,IACA,CAAC,UAAU,cAAc,EAAE;AAAA,EAC7B;AAEA,SACE,6CAAC,yBAAQ,SAAS,QAAQ,SAAU,GAAG,cACrC;AAAA,gDAAC,QAAM,GAAG,WACR,uDAAC,aAAU,UAAS,MAAM,GAAG,gBAC1B;AAAA,iBAAW,aACV,4CAAC,kBAAe,SAAQ,SAAS,GAAG,qBAAqB,gCAEzD;AAAA,MAGD,WAAW,WACV,6CAAC,gBAAa,SAAQ,SAAS,GAAG,mBAAmB;AAAA;AAAA,QAC3B;AAAA,SAC1B;AAAA,MAGD,WAAW,WAAW,WAAW,4CAAC,WAAQ;AAAA,OAC7C,GACF;AAAA,IACC;AAAA,KACH;AAEJ,CAAC;AAED,WAAW,cAAc;;;AE/HzB,IAAAC,gBAA8B;AAC9B,IAAAC,iBAAmC;;;ACDnC,IAAAC,mBAAoB;AACpB,IAAAC,uBAA6B;AAC7B,IAAAC,iBAA0B;AAC1B,IAAAC,gBAAkE;;;ACHlE,IAAAC,iBAAuB;AAGhB,IAAM,sBAA+C,uBAAO,OAAO;AAAA,EACxE,MAAM;AAAA,EACN,MAAM;AACR,CAAC,EAAE,OAAO;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,WAAW;AAAA,EACX,SAAS;AAAA,EACT,eAAe;AAAA,EACf,MAAM;AAAA,EACN,WAAW;AAAA,EACX,UAAU;AAAA,EACV,UAAU;AAAA,EACV,WAAW;AACb,EAAE;AAEK,IAAM,+BAAwD,uBAAO,OAAO;AAAA,EACjF,MAAM;AAAA,EACN,MAAM;AACR,CAAC,EAAE,OAAO;AAAA,EACR,MAAM;AAAA,EACN,WAAW;AAAA,EACX,UAAU;AAAA,EACV,SAAS;AAAA,EACT,UAAU;AAAA,EACV,UAAU;AAAA,EACV,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,WAAW;AAAA,EACX,WAAW;AAAA,EAEX,6BAA6B;AAAA,IAC3B,WAAW;AAAA,IACX,UAAU;AAAA,EACZ;AACF,EAAE;AAEK,IAAM,+BACX,uBAAO,OAAO;AAAA,EACZ,MAAM;AAAA,EACN,MAAM;AACR,CAAC,EAA0D,CAAC,EAAE,eAAe,oBAAoB,OAAO;AAAA,EACtG,SAAS;AAAA,EACT,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,WAAW,eAAe,gBAAgB,GAAG;AAAA,EAC7C,YAAY,aAAa,mBAAmB;AAAA,EAC5C,YAAY;AAAA,EACZ,UAAU;AACZ,EAAE;AAEG,IAAM,2BAAwE,uBAAO,OAAO;AAAA,EACjG,MAAM;AAAA,EACN,MAAM;AACR,CAAC,EAA0B,CAAC,EAAE,UAAU,OAAO;AAAA,EAC7C,UAAU;AAAA,EACV,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,SAAS,YAAY,IAAI;AAAA,EACzB,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,UAAU;AAAA,EACV,UAAU;AAAA,EACV,WAAW;AAAA,EAEX,6BAA6B;AAAA,IAC3B,SAAS;AAAA,EACX;AACF,EAAE;AAEK,IAAM,8BAAuD,uBAAO,OAAO;AAAA,EAChF,MAAM;AAAA,EACN,MAAM;AACR,CAAC,EAAE,OAAO;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,WAAW;AAAA,EACX,SAAS;AAAA,EACT,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,KAAK;AAAA,EACL,WAAW;AAAA,EACX,WAAW;AAAA,EACX,WAAW;AAAA,EACX,UAAU;AAAA,EAEV,wBAAwB;AAAA,IACtB,OAAO;AAAA,EACT;AAAA,EAEA,8BAA8B;AAAA,IAC5B,YAAY;AAAA,EACd;AAAA,EAEA,8BAA8B;AAAA,IAC5B,YAAY;AAAA,IACZ,cAAc;AAAA,IAEd,WAAW;AAAA,MACT,YAAY;AAAA,IACd;AAAA,EACF;AACF,EAAE;AAEK,IAAM,8BAAuD,uBAAO,OAAO;AAAA,EAChF,MAAM;AAAA,EACN,MAAM;AACR,CAAC,EAAE,OAAO;AAAA,EACR,MAAM;AAAA,EACN,WAAW;AAAA,EACX,UAAU;AAAA,EACV,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,OAAO;AAAA,EACP,UAAU;AAAA,EACV,WAAW;AAAA,EACX,UAAU;AAAA,EACV,UAAU;AACZ,EAAE;AAEK,IAAM,4BAAqD,uBAAO,OAAO;AAAA,EAC9E,MAAM;AAAA,EACN,MAAM;AACR,CAAC,EAAE,OAAO;AAAA,EACR,UAAU;AAAA,EACV,WAAW;AAAA,EACX,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,SAAS;AAAA,EACT,UAAU;AAAA,EAEV,6BAA6B;AAAA,IAC3B,UAAU;AAAA,IACV,WAAW;AAAA,EACb;AAAA,EAEA,6BAA6B;AAAA,IAC3B,UAAU;AAAA,IACV,WAAW;AAAA,EACb;AAAA,EAEA,2DAA2D;AAAA,IACzD,WAAW;AAAA,EACb;AACF,EAAE;AAEK,IAAM,6BAAsD,uBAAO,OAAO;AAAA,EAC/E,MAAM;AAAA,EACN,MAAM;AACR,CAAC,EAAE,OAAO;AAAA,EACR,SAAS;AAAA,EACT,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,OAAO;AAAA,EACP,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,KAAK;AAAA,EACL,SAAS;AAAA,EACT,WAAW;AAAA,EACX,UAAU;AAAA,EAEV,6BAA6B;AAAA,IAC3B,UAAU;AAAA,IACV,SAAS;AAAA,IACT,KAAK;AAAA,EACP;AAAA,EAEA,6BAA6B;AAAA,IAC3B,SAAS;AAAA,IACT,KAAK;AAAA,EACP;AAAA,EAEA,2DAA2D;AAAA,IACzD,KAAK;AAAA,IACL,SAAS;AAAA,EACX;AACF,EAAE;AAEK,IAAM,4BAAqD,uBAAO,MAAM;AAAA,EAC7E,MAAM;AAAA,EACN,MAAM;AACR,CAAC,EAAE,OAAO;AAAA,EACR,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,eAAe;AAAA,EACf,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,cAAc;AAAA,EAEd,6BAA6B;AAAA,IAC3B,UAAU;AAAA,EACZ;AAAA,EAEA,6BAA6B;AAAA,IAC3B,UAAU;AAAA,EACZ;AAAA,EAEA,2DAA2D;AAAA,IACzD,UAAU;AAAA,EACZ;AACF,EAAE;AAEK,IAAM,kCAA2D,uBAAO,KAAK;AAAA,EAClF,MAAM;AAAA,EACN,MAAM;AACR,CAAC,EAAE,OAAO;AAAA,EACR,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,OAAO;AAAA,EACP,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,cAAc;AAAA,EAEd,6BAA6B;AAAA,IAC3B,UAAU;AAAA,IACV,YAAY;AAAA,EACd;AAAA,EAEA,6BAA6B;AAAA,IAC3B,UAAU;AAAA,EACZ;AAAA,EAEA,2DAA2D;AAAA,IACzD,UAAU;AAAA,IACV,YAAY;AAAA,EACd;AACF,EAAE;AAEK,IAAM,6BAAsD,uBAAO,UAAU;AAAA,EAClF,MAAM;AAAA,EACN,MAAM;AACR,CAAC,EAAE,OAAO;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,iBAAiB;AACnB,EAAE;AAEK,IAAM,4BAAqD,uBAAO,SAAS;AAAA,EAChF,MAAM;AAAA,EACN,MAAM;AACR,CAAC,EAAE,OAAO;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,cAAc;AAAA,EAEd,8EAA8E;AAAA,IAC5E,SAAS;AAAA,EACX;AACF,EAAE;AAEK,IAAM,2BAAoD,uBAAO,KAAK;AAAA,EAC3E,MAAM;AAAA,EACN,MAAM;AACR,CAAC,EAAE,OAAO;AAAA,EACR,SAAS;AAAA,EACT,iBAAiB;AAAA,EACjB,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,SAAS;AAAA,EACT,cAAc;AAAA,EACd,WAAW;AAAA,EACX,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,YAAY;AAAA,EAEZ,8EAA8E;AAAA,IAC5E,SAAS;AAAA,EACX;AAAA,EAEA,UAAU;AAAA,IACR,QAAQ;AAAA,EACV;AACF,EAAE;;;ACjTF,IAAAC,gBAA8B;AAC9B,IAAAC,iBAA0B;AAC1B,0BAA8C;;;ACF9C,IAAAC,iBAAuB;AAGhB,IAAM,8BAAuD,uBAAO,OAAO;AAAA,EAChF,MAAM;AAAA,EACN,MAAM;AACR,CAAC,EAAE,OAAO;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,KAAK;AAAA,EACL,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,SAAS;AAAA,EAET,6BAA6B;AAAA,IAC3B,KAAK;AAAA,IACL,WAAW;AAAA,EACb;AAAA,EAEA,6BAA6B;AAAA,IAC3B,KAAK;AAAA,IACL,WAAW;AAAA,EACb;AACF,EAAE;AAEK,IAAM,qCAA8D,uBAAO,OAAO;AAAA,EACvF,MAAM;AAAA,EACN,MAAM;AACR,CAAC,EAAE,OAAO;AAAA,EACR,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,KAAK;AACP,EAAE;AAEK,IAAM,6BAAwE,uBAAO,OAAO;AAAA,EACjG,MAAM;AAAA,EACN,MAAM;AACR,CAAC,EAAwB,CAAC,EAAE,QAAQ,OAAO;AAAA,EACzC,OAAO,UAAU,SAAS;AAAA,EAC1B,QAAQ,UAAU,SAAS;AAAA,EAC3B,YAAY,UAAU,SAAS;AAAA,EAC/B,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,WAAW,EAAE,WAAW,iBAAiB;AAC3C,EAAE;;;AClDF,IAAAC,mBAA2B;AAC3B,IAAAC,gBAAqC;AAGnC,IAAAC,sBAAA;AADK,IAAM,kBAAc,oBAAK,CAAC,EAAE,UAAU,GAAG,MAAM,MACpD,6CAAC,+BAAY,GAAG,OAAO,OAAM,WAC1B,UACH,CACD;AAED,YAAY,cAAc;;;AFkEtB,IAAAC,sBAAA;AA/DG,IAAM,0BAAsB,oBAAK,CAAC,UAAoC;AAC3E,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ,CAAC;AAAA,IACT,YAAY,CAAC;AAAA,IACb;AAAA,EACF,IAAI;AAEJ,QAAM,OAAO,MAAM,QAAQ;AAC3B,QAAM,cAAc,MAAM,eAAe;AACzC,QAAM,MAAM,MAAM,OAAO;AACzB,QAAM,YAAY,MAAM;AACxB,QAAM,aAAa,MAAM;AAEzB,QAAM,gBAAY;AAAA,IAChB,OAAO;AAAA,MACL,GAAG,UAAU;AAAA,MACb,QAAI,0BAAU,QAAQ,EAAE;AAAA,IAC1B;AAAA,IACA,CAAC,UAAU,MAAM,EAAE;AAAA,EACrB;AAEA,QAAM,uBAAmB;AAAA,IACvB,OAAO;AAAA,MACL,GAAG,UAAU;AAAA,MACb,QAAI,0BAAU,eAAe,EAAE;AAAA,IACjC;AAAA,IACA,CAAC,UAAU,aAAa,EAAE;AAAA,EAC5B;AAEA,QAAM,eAAW;AAAA,IACf,OAAO;AAAA,MACL,GAAG,UAAU;AAAA,MACb,QAAI,0BAAU,OAAO,EAAE;AAAA,IACzB;AAAA,IACA,CAAC,UAAU,KAAK,EAAE;AAAA,EACpB;AAEA,QAAM,qBAAiB;AAAA,IACrB,OAAO;AAAA,MACL,GAAG,UAAU;AAAA,MACb,QAAI,0BAAU,aAAa,EAAE;AAAA,IAC/B;AAAA,IACA,CAAC,UAAU,WAAW,EAAE;AAAA,EAC1B;AAEA,QAAM,sBAAkB;AAAA,IACtB,OAAO;AAAA,MACL,GAAG,UAAU;AAAA,MACb,QAAI,0BAAU,cAAc,EAAE;AAAA,IAChC;AAAA,IACA,CAAC,UAAU,YAAY,EAAE;AAAA,EAC3B;AAEA,SACE,8CAAC,QAAM,GAAG,WACP;AAAA,kBAAc,YACb,6CAAC,aAAU,UAAU,CAAC,WAAW,SAAS,MAAO,GAAG,gBAAgB,IAEpE,6CAAC,eAAY,UAAU,CAAC,WAAW,SAAS,MAAO,GAAG,gBACpD,uDAAC,qCAAc,MAAM,IAAI,GAC3B;AAAA,IAGD,YACC,6CAAC,eAAa,GAAG,kBACd,yBAAe,IAAI,CAAC,GAAG,MACtB;AAAA,MAAC;AAAA;AAAA,QAEC,SAAS,MAAM;AAAA,QACf,SAAS,MAAM,UAAU,CAAC;AAAA,QAC1B,MAAK;AAAA,QACL,WAAW,CAAC,MAAqB,EAAE,QAAQ,WAAY,EAAE,QAAQ,OAAO,UAAU,CAAC;AAAA,QAClF,GAAG;AAAA;AAAA,MALC;AAAA,IAMP,CACD,GACH;AAAA,IAGD,cAAc,aACb,6CAAC,cAAW,UAAU,CAAC,WAAW,SAAS,MAAO,GAAG,iBAAiB,IAEtE,6CAAC,eAAY,UAAU,CAAC,WAAW,SAAS,MAAO,GAAG,iBACpD,uDAAC,sCAAe,MAAM,IAAI,GAC5B;AAAA,KAEJ;AAEJ,CAAC;AAED,oBAAoB,cAAc;;;AFyB8C,IAAAC,sBAAA;AA4HpE,IAAAC,gBAAA;AA5OL,IAAM,cAAc,CAAC,UAA4B;AACtD,QAAM;AAAA,IACJ,OAAO;AAAA,IACP,WAAW;AAAA,IACX,aAAa;AAAA,IACb;AAAA,IACA;AAAA,IACA,qBAAqB;AAAA,IACrB;AAAA,IACA,QAAQ,CAAC;AAAA,IACT,YAAY,CAAC;AAAA,IACb,gBAAgB,CAAC;AAAA,IACjB;AAAA,EACF,IAAI;AAEJ,QAAM,yBAAqB,sBAAO,KAAK;AACvC,QAAM,uBAAmB,sBAAuB,IAAI;AAEpD,QAAM,CAAC,EAAE,WAAW,QAAI,wBAAS,CAAC;AAClC,QAAM,CAAC,cAAc,eAAe,QAAI,wBAAS,CAAC;AAElD,QAAM,cAAc,OAAO;AAE3B,QAAM,YAAY,QAAQ,eAAe,cAAc;AACvD,QAAM,YAAY,QAAQ,eAAe;AAEzC,QAAM,gBAAY;AAAA,IAChB,CAAC,UAAkB;AACjB,UAAI,mBAAmB,WAAW,UAAU,gBAAgB,gBAAgB,EAAG;AAE/E,UAAI,WAAW;AAEf,UAAI,MAAM;AACR,YAAI,QAAQ,EAAG,YAAW,cAAc;AACxC,YAAI,SAAS,YAAa,YAAW;AAAA,MACvC;AAEA,UAAI,WAAW,KAAK,YAAY,YAAa;AAE7C,yBAAmB,UAAU;AAC7B,sBAAgB,QAAQ;AACxB,sBAAgB,QAAQ;AAExB,iBAAW,MAAM;AACf,2BAAmB,UAAU;AAAA,MAC/B,GAAG,kBAAkB;AAAA,IACvB;AAAA,IACA,CAAC,cAAc,aAAa,oBAAoB,eAAe,IAAI;AAAA,EACrE;AAEA,QAAM,WAAO,2BAAY,MAAM,UAAU,eAAe,CAAC,GAAG,CAAC,cAAc,SAAS,CAAC;AACrF,QAAM,WAAO,2BAAY,MAAM,UAAU,eAAe,CAAC,GAAG,CAAC,cAAc,SAAS,CAAC;AAErF,+BAAU,MAAM;AACd,UAAM,eAAe,MAAM,YAAY,CAACC,UAASA,QAAO,CAAC;AACzD,WAAO,iBAAiB,UAAU,YAAY;AAC9C,WAAO,MAAM,OAAO,oBAAoB,UAAU,YAAY;AAAA,EAChE,GAAG,CAAC,CAAC;AAEL,+BAAU,MAAM;AACd,UAAM,QAAQ,CAAC,MAAqB;AAClC,UAAI,EAAE,QAAQ,YAAa,MAAK;AAChC,UAAI,EAAE,QAAQ,aAAc,MAAK;AAAA,IACnC;AACA,WAAO,iBAAiB,WAAW,KAAK;AACxC,WAAO,MAAM,OAAO,oBAAoB,WAAW,KAAK;AAAA,EAC1D,GAAG,CAAC,MAAM,IAAI,CAAC;AAEf,+BAAU,MAAM;AACd,UAAM,UAAU,iBAAiB;AACjC,QAAI,CAAC,QAAS;AAEd,QAAI,SAAwB;AAE5B,UAAM,eAAe,CAAC,MAAkB;AACtC,eAAS,EAAE,QAAQ,CAAC,EAAE;AAAA,IACxB;AACA,UAAM,aAAa,CAAC,MAAkB;AACpC,UAAI,WAAW,KAAM;AACrB,YAAM,SAAS,EAAE,eAAe,CAAC,EAAE,UAAU;AAC7C,UAAI,KAAK,IAAI,MAAM,IAAI,IAAI;AACzB,YAAI,SAAS,EAAG,MAAK;AAAA,YAChB,MAAK;AAAA,MACZ;AACA,eAAS;AAAA,IACX;AACA,YAAQ,iBAAiB,cAAc,YAAY;AACnD,YAAQ,iBAAiB,YAAY,UAAU;AAC/C,WAAO,MAAM;AACX,cAAQ,oBAAoB,cAAc,YAAY;AACtD,cAAQ,oBAAoB,YAAY,UAAU;AAAA,IACpD;AAAA,EACF,GAAG,CAAC,MAAM,IAAI,CAAC;AAEf,QAAM,qBAAiB,uBAAQ,MAAM,QAAQ,CAAC,MAAM,CAAC;AAErD,MAAI,gBAAgB,EAAG,QAAO;AAE9B,QAAM,OAAO,MAAM,QAAQ;AAC3B,QAAM,gBAAgB,MAAM,iBAAiB;AAC7C,QAAM,gBAAgB,MAAM,iBAAiB;AAC7C,QAAM,YAAY,MAAM,aAAa;AACrC,QAAM,eAAe,MAAM,gBAAgB;AAC3C,QAAM,eAAe,MAAM,gBAAgB;AAC3C,QAAM,aAAa,MAAM,cAAc;AACvC,QAAM,cAAc,MAAM,eAAe;AACzC,QAAM,aAAa,MAAM,cAAc;AACvC,QAAM,mBAAmB,MAAM,oBAAoB;AACnD,QAAM,aAAa,MAAM,cAAc;AACvC,QAAM,cAAc,MAAM,eAAe;AACzC,QAAM,YAAY,MAAM,aAAa;AACrC,QAAM,gBACJ,MAAM,kBAAkB,CAAC,EAAE,QAAQ,GAAG,MAAsC,6CAAC,wBAAI,QAAgB,IAAQ;AAE3G,QAAM,gBAAY;AAAA,IAChB,OAAO;AAAA,MACL,GAAG,UAAU;AAAA,MACb,QAAI,0BAAU,QAAQ,EAAE;AAAA,IAC1B;AAAA,IACA,CAAC,UAAU,MAAM,EAAE;AAAA,EACrB;AAEA,QAAM,yBAAqB;AAAA,IACzB,OAAO;AAAA,MACL,GAAG,UAAU;AAAA,MACb,QAAI,0BAAU,iBAAiB,EAAE;AAAA,IACnC;AAAA,IACA,CAAC,UAAU,eAAe,EAAE;AAAA,EAC9B;AAEA,QAAM,yBAAqB;AAAA,IACzB,OAAO;AAAA,MACL,GAAG,UAAU;AAAA,MACb,QAAI,0BAAU,iBAAiB,EAAE;AAAA,IACnC;AAAA,IACA,CAAC,UAAU,eAAe,EAAE;AAAA,EAC9B;AAEA,QAAM,qBAAiB;AAAA,IACrB,OAAO;AAAA,MACL,GAAG,UAAU;AAAA,MACb,QAAI,0BAAU,aAAa,EAAE;AAAA,IAC/B;AAAA,IACA,CAAC,UAAU,WAAW,EAAE;AAAA,EAC1B;AAEA,QAAM,wBAAoB;AAAA,IACxB,OAAO;AAAA,MACL,GAAG,UAAU;AAAA,MACb,QAAI,0BAAU,gBAAgB,EAAE;AAAA,IAClC;AAAA,IACA,CAAC,UAAU,cAAc,EAAE;AAAA,EAC7B;AAEA,QAAM,wBAAoB;AAAA,IACxB,OAAO;AAAA,MACL,GAAG,UAAU;AAAA,MACb,QAAI,0BAAU,gBAAgB,EAAE;AAAA,IAClC;AAAA,IACA,CAAC,UAAU,cAAc,EAAE;AAAA,EAC7B;AAEA,QAAM,sBAAkB;AAAA,IACtB,OAAO;AAAA,MACL,GAAG,UAAU;AAAA,MACb,QAAI,0BAAU,cAAc,EAAE;AAAA,IAChC;AAAA,IACA,CAAC,UAAU,YAAY,EAAE;AAAA,EAC3B;AAEA,QAAM,uBAAmB;AAAA,IACvB,OAAO;AAAA,MACL,GAAG,UAAU;AAAA,MACb,QAAI,0BAAU,eAAe,EAAE;AAAA,IACjC;AAAA,IACA,CAAC,UAAU,aAAa,EAAE;AAAA,EAC5B;AAEA,QAAM,sBAAkB;AAAA,IACtB,OAAO;AAAA,MACL,GAAG,UAAU;AAAA,MACb,QAAI,0BAAU,cAAc,EAAE;AAAA,IAChC;AAAA,IACA,CAAC,UAAU,YAAY,EAAE;AAAA,EAC3B;AAEA,QAAM,4BAAwB;AAAA,IAC5B,OAAO;AAAA,MACL,GAAG,UAAU;AAAA,MACb,QAAI,0BAAU,oBAAoB,EAAE;AAAA,IACtC;AAAA,IACA,CAAC,UAAU,kBAAkB,EAAE;AAAA,EACjC;AAEA,QAAM,sBAAkB;AAAA,IACtB,OAAO;AAAA,MACL,GAAG,UAAU;AAAA,MACb,QAAI,0BAAU,cAAc,EAAE;AAAA,IAChC;AAAA,IACA,CAAC,UAAU,YAAY,EAAE;AAAA,EAC3B;AAEA,QAAM,uBAAmB;AAAA,IACvB,OAAO;AAAA,MACL,GAAG,UAAU;AAAA,MACb,QAAI,0BAAU,eAAe,EAAE;AAAA,IACjC;AAAA,IACA,CAAC,UAAU,aAAa,EAAE;AAAA,EAC5B;AAEA,QAAM,qBAAiB;AAAA,IACrB,OAAO;AAAA,MACL,GAAG,UAAU;AAAA,MACb,QAAI,0BAAU,aAAa,EAAE;AAAA,IAC/B;AAAA,IACA,CAAC,UAAU,WAAW,EAAE;AAAA,EAC1B;AAEA,QAAM,yBAAqB;AAAA,IACzB,OAAO;AAAA,MACL,GAAG,UAAU;AAAA,MACb,QAAI,0BAAU,iBAAiB,EAAE;AAAA,IACnC;AAAA,IACA,CAAC,UAAU,eAAe,EAAE;AAAA,EAC9B;AAEA,SACE,8CAAC,QAAK,WAAuB,GAAG,WAC9B;AAAA,iDAAC,iBAAe,GAAG,oBACjB;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACJ,KAAK;AAAA,QACL,eAAe;AAAA,QACf,qBAAqB;AAAA,QAEpB,yBAAe,IAAI,CAAC,OAAO,QAC1B,iDAAC,aAAW,GAAG,gBAAgB,KAAK,KAAK,WAAW,QAAQ,gBAC1D,6CAAC,gBAAc,GAAG,mBACf,gBAAM,SAAS,WACd,8EACE;AAAA,uDAAC,gBAAc,GAAG,mBAChB;AAAA,YAAC;AAAA;AAAA,cACC,KAAK,MAAM,UAAU,MAAM,QAAQ;AAAA,cACnC,OAAO,MAAM,SAAS,MAAM;AAAA,cAC5B,SAAQ;AAAA,cACP,GAAG;AAAA;AAAA,UACN,GACF;AAAA,WACE,MAAM,SAAS,MAAM,gBACrB,8CAAC,eAAa,GAAG,kBACd;AAAA,kBAAM,SAAS,6CAAC,cAAY,GAAG,iBAAkB,gBAAM,OAAM;AAAA,YAC7D,MAAM,eACL,6CAAC,oBAAkB,GAAG,uBAAwB,gBAAM,aAAY;AAAA,aAEpE;AAAA,WAEJ,IACE,MAAM,SAAS,QACjB,8EACE;AAAA,uDAAC,cAAW,KAAK,MAAM,MAAO,GAAG,iBAAiB;AAAA,UAClD,8CAAC,aAAU,MAAM,MAAM,MAAM,QAAO,UAAS,KAAI,uBAAuB,GAAG,gBACzE;AAAA,yDAAC,qCAAa,MAAM,IAAI,OAAM,WAAU;AAAA,YACxC,6CAAC,OAAE,sCAAwB;AAAA,aAC7B;AAAA,WACF,IAEA,8EACE;AAAA,uDAAC,gBAAc,GAAG,mBAChB;AAAA,YAAC;AAAA;AAAA,cACC,KAAK,MAAM;AAAA,cACX,KAAK,MAAM;AAAA,cACX,SAAS,QAAQ,IAAI,UAAU;AAAA,cAC/B,WAAW;AAAA,cACX,UAAU,QAAQ,eAAe,IAAI;AAAA,cACpC,GAAG;AAAA;AAAA,UACN,GACF;AAAA,WACE,MAAM,SAAS,MAAM,gBACrB,8CAAC,eAAa,GAAG,kBACd;AAAA,kBAAM,SAAS,6CAAC,cAAY,GAAG,iBAAkB,gBAAM,OAAM;AAAA,YAC7D,MAAM,eACL,6CAAC,oBAAkB,GAAG,uBAAwB,gBAAM,aAAY;AAAA,aAEpE;AAAA,WAEJ,GAEJ,CACF,CACD;AAAA;AAAA,IACH,GACF;AAAA,IAEC,cAAc,IACb;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACC,GAAG;AAAA;AAAA,IACN,IAEA,6CAAC,iBAAc,QAAQ,IAAI,IAAI,GAAI,GAAG,oBAAoB;AAAA,KAE9D;AAEJ;AAEA,YAAY,cAAc;;;AKhV1B,IAAAC,iBAAuB;AAGhB,IAAM,uBAAgD,uBAAO,OAAO;AAAA,EACzE,MAAM;AAAA,EACN,MAAM;AACR,CAAC,EAAE,OAAO;AAAA,EACR,MAAM;AAAA,EACN,WAAW;AAAA,EACX,SAAS;AAAA,EACT,OAAO;AAAA,EACP,SAAS;AAAA,EACT,cAAc;AAChB,EAAE;;;ANmBE,IAAAC,sBAAA;AAzBG,IAAM,mBAAe,oBAAK,CAAC,UAA6B;AAC7D,QAAM,EAAE,SAAS,SAAS,QAAQ,CAAC,GAAG,YAAY,CAAC,GAAG,kBAAkB,eAAe,cAAc,GAAG,IAAI;AAE5G,QAAM,aAAS;AAAA,IACb,MACE,QAAQ,OAAO,IAAI,CAAC,OAAO,SAAS;AAAA,MAClC,GAAG;AAAA,MACH,KAAK,MAAM,SAAS,SAAS,MAAM,CAAC;AAAA,IACtC,EAAE;AAAA,IACJ,CAAC,QAAQ,MAAM;AAAA,EACjB;AAEA,MAAI,CAAC,QAAQ,WAAW,OAAO,WAAW,EAAG,QAAO;AAEpD,QAAM,OAAO,MAAM,QAAQ;AAE3B,QAAM,gBAAY;AAAA,IAChB,OAAO;AAAA,MACL,GAAG,UAAU;AAAA,MACb,QAAI,0BAAU,QAAQ,EAAE;AAAA,IAC1B;AAAA,IACA,CAAC,UAAU,MAAM,EAAE;AAAA,EACrB;AAEA,SACE,8CAAC,0BAAQ,SAAS,QAAQ,SAAU,GAAG,cACrC;AAAA,iDAAC,QAAM,GAAG,WACR,uDAAC,eAAY,QAAiB,GAAG,kBAAkB,eAA8B,GACnF;AAAA,IACC;AAAA,KACH;AAEJ,CAAC;AAED,aAAa,cAAc;;;AOzC3B,IAAAC,gBAA8B;AAC9B,IAAAC,iBAAwB;;;ACDxB,IAAAC,iBAAuB;AAGhB,IAAM,yBAAkD,uBAAO,UAAU;AAAA,EAC9E,MAAM;AAAA,EACN,MAAM;AACR,CAAC,EAAE,OAAO;AAAA,EACR,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,WAAW;AACb,EAAE;;;ADEE,IAAAC,sBAAA;AAVG,IAAM,oBAAgB,oBAAK,CAAC,UAA8B;AAC/D,QAAM,EAAE,SAAS,SAAS,QAAQ,CAAC,GAAG,YAAY,CAAC,GAAG,eAAe,CAAC,GAAG,GAAG,IAAI;AAEhF,QAAM,UAAM,uBAAQ,MAAM,SAAS,MAAM,CAAC,SAAS,IAAI,CAAC;AAExD,MAAI,CAAC,QAAQ,WAAW,CAAC,IAAK,QAAO;AAErC,QAAM,QAAQ,MAAM,SAAS;AAE7B,SACE,8CAAC,0BAAQ,SAAS,QAAQ,SAAU,GAAG,cACrC;AAAA,iDAAC,SAAM,KAAU,IAAQ,SAAQ,QAAQ,GAAG,UAAU,OAAO;AAAA,IAC5D;AAAA,KACH;AAEJ,CAAC;AAED,cAAc,cAAc;;;AErBrB,IAAM,eAAe;AAAA,EAC1B,OAAO;AAAA,EACP,KAAK;AAAA,EACL,QAAQ;AACV;","names":["import_material","MuiContainer","import_react","import_shared","import_material","import_lucide_react","import_shared","import_react","import_styles","import_react","import_shared","import_styles","import_material","import_react","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_react","prev","import_styles","import_jsx_runtime","import_react","import_shared","import_styles","import_jsx_runtime"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/MDXGallery/MDXGallery.tsx","../src/MDXGallery/MDXGallery.styled.ts","../src/SlideGallery/SlideGallery.tsx","../src/ImageSlider/ImageSlider.tsx","../src/ImageSlider/ImageSlider.styled.ts","../src/ImageSlider/components/ImageSliderControls/ImageSliderControls.tsx","../src/ImageSlider/components/ImageSliderControls/ImageSliderControls.styled.ts","../src/ImageSlider/components/ArrowButton/ArrowButton.tsx","../src/SlideGallery/SlideGallery.styled.ts","../src/IframeGallery/IframeGallery.tsx","../src/IframeGallery/IframeGallery.styled.ts","../src/types/galleries.ts"],"sourcesContent":["// components\nexport { MDXGallery } from \"./MDXGallery\";\nexport { SlideGallery } from \"./SlideGallery\";\nexport { IframeGallery } from \"./IframeGallery\";\n\n// types\nexport * from \"./types\";\n","import * as runtime from \"react/jsx-runtime\";\nimport { compile, run } from \"@mdx-js/mdx\";\nimport { getSlotSx, Overlay } from \"@zipkito/shared\";\nimport { Container as MuiContainer } from \"@mui/material\";\nimport { memo, useEffect, useMemo, useState, type FC } from \"react\";\n\nimport type { MDXGalleryProps } from \"./MDXGallery.types\";\nimport { MDXGalleryErrorMessage, MDXGalleryLoadingMessage, MDXGalleryRoot } from \"./MDXGallery.styled\";\n\ntype LoadStatus = \"idle\" | \"loading\" | \"error\" | \"ready\";\n\nexport const MDXGallery = memo((props: MDXGalleryProps) => {\n const { gallery, mdxContext, actions, slots = {}, slotProps = {}, overlayProps = {}, sx } = props;\n\n const [Content, setContent] = useState<FC | null>(null);\n const [status, setStatus] = useState<LoadStatus>(\"idle\");\n const [error, setError] = useState<string | null>(null);\n\n useEffect(() => {\n if (!gallery.visible || !gallery.file) {\n setStatus(\"idle\");\n setContent(null);\n setError(null);\n return;\n }\n\n let cancelled = false;\n\n const load = async () => {\n try {\n setStatus(\"loading\");\n setError(null);\n\n const source = await mdxContext.loadSource(gallery.file!);\n\n const compiled = await compile(source, {\n outputFormat: \"function-body\",\n providerImportSource: \"@mdx-js/react\",\n });\n\n const evaluated = await run(String(compiled), {\n ...runtime,\n\n useMDXComponents: () => mdxContext.components ?? {},\n });\n\n if (!cancelled && typeof evaluated.default === \"function\") {\n setContent(() => evaluated.default as FC);\n setStatus(\"ready\");\n }\n } catch (err: unknown) {\n if (!cancelled) {\n setError(err instanceof Error ? err.message : \"Failed to load MDX\");\n setStatus(\"error\");\n }\n }\n };\n\n load();\n return () => {\n cancelled = true;\n };\n }, [gallery.file, gallery.visible, mdxContext]);\n\n if (!gallery.visible) return null;\n\n const Root = slots.root ?? MDXGalleryRoot;\n const Container = slots.container ?? MuiContainer;\n const LoadingMessage = slots.loadingMessage ?? MDXGalleryLoadingMessage;\n const ErrorMessage = slots.errorMessage ?? MDXGalleryErrorMessage;\n\n const rootProps = useMemo(\n () => ({\n ...slotProps.root,\n sx: getSlotSx(\"root\", sx),\n }),\n [slotProps.root, sx]\n );\n\n const containerProps = useMemo(\n () => ({\n ...slotProps.container,\n sx: getSlotSx(\"container\", sx),\n }),\n [slotProps.container, sx]\n );\n\n const loadingMessageProps = useMemo(\n () => ({\n ...slotProps.loadingMessage,\n sx: getSlotSx(\"loadingMessage\", sx),\n }),\n [slotProps.loadingMessage, sx]\n );\n\n const errorMessageProps = useMemo(\n () => ({\n ...slotProps.errorMessage,\n sx: getSlotSx(\"errorMessage\", sx),\n }),\n [slotProps.errorMessage, sx]\n );\n\n return (\n <Overlay visible={gallery.visible} {...overlayProps}>\n <Root {...rootProps}>\n <Container maxWidth=\"xl\" {...containerProps}>\n {status === \"loading\" && (\n <LoadingMessage variant=\"subh2\" {...loadingMessageProps}>\n Loading content...\n </LoadingMessage>\n )}\n\n {status === \"error\" && (\n <ErrorMessage variant=\"subh2\" {...errorMessageProps}>\n Error loading content: {error}\n </ErrorMessage>\n )}\n\n {status === \"ready\" && Content && <Content />}\n </Container>\n </Root>\n {actions}\n </Overlay>\n );\n});\n\nMDXGallery.displayName = \"MDXGallery\";\n","import { styled } from \"@mui/material/styles\";\nimport type { StyledComponent } from \"@emotion/styled\";\nimport { Typography, type TypographyProps } from \"@mui/material\";\n\nexport const MDXGalleryRoot: StyledComponent<{}, {}, {}> = styled(\"div\", {\n name: \"MDXGallery\",\n slot: \"Root\",\n})(({ theme }) => ({\n height: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n padding: \"24px\",\n background: \"radial-gradient(circle at top, rgba(255, 255, 255, 0.08), transparent 45%)\",\n scrollbarGutter: \"stable\",\n scrollbarColor: `${theme.palette.primary.main} rgba(255, 255, 255, 0.3)`,\n scrollbarWidth: \"thin\",\n position: \"relative\",\n overflowX: \"hidden\",\n overflowY: \"auto\",\n}));\n\nexport const MDXGalleryLoadingMessage: StyledComponent<TypographyProps, {}, {}> = styled(Typography, {\n name: \"MDXGallery\",\n slot: \"LoadingMessage\",\n})(() => ({\n textAlign: \"center\",\n padding: \"40px\",\n color: \"#666\",\n}));\n\nexport const MDXGalleryErrorMessage: StyledComponent<TypographyProps, {}, {}> = styled(Typography, {\n name: \"MDXGallery\",\n slot: \"ErrorMessage\",\n})(() => ({\n textAlign: \"center\",\n padding: \"40px\",\n color: \"#d32f2f\",\n}));\n","import { memo, useMemo } from \"react\";\nimport { getSlotSx, Overlay } from \"@zipkito/shared\";\n\nimport { ImageSlider } from \"../ImageSlider\";\nimport { SlideGalleryRoot } from \"./SlideGallery.styled\";\nimport type { SlideGalleryProps } from \"./SlideGallery.types\";\n\nexport const SlideGallery = memo((props: SlideGalleryProps) => {\n const { gallery, actions, slots = {}, slotProps = {}, imageSliderProps, controlsProps, overlayProps, sx } = props;\n\n const slides = useMemo(\n () =>\n gallery.slides.map((slide, idx) => ({\n ...slide,\n alt: slide.title ?? `Slide ${idx + 1}`,\n })),\n [gallery.slides]\n );\n\n if (!gallery.visible || slides.length === 0) return null;\n\n const Root = slots.root ?? SlideGalleryRoot;\n\n const rootProps = useMemo(\n () => ({\n ...slotProps.root,\n sx: getSlotSx(\"root\", sx),\n }),\n [slotProps.root, sx]\n );\n\n return (\n <Overlay visible={gallery.visible} {...overlayProps}>\n <Root {...rootProps}>\n <ImageSlider slides={slides} {...imageSliderProps} controlsProps={controlsProps} />\n </Root>\n {actions}\n </Overlay>\n );\n});\n\nSlideGallery.displayName = \"SlideGallery\";\n","import { Box } from \"@mui/material\";\nimport { ExternalLink } from \"lucide-react\";\nimport { getSlotSx } from \"@zipkito/shared\";\nimport { useState, useRef, useCallback, useMemo, useEffect } from \"react\";\n\nimport {\n ImageSliderSlideLink,\n ImageSliderSlideEmbed,\n ImageSliderSlideIframe,\n ImageSliderIframeWrapper,\n ImageSliderSlideDescription,\n ImageSliderSlideImage,\n ImageSliderSlideTitle,\n ImageSliderTextWrapper,\n ImageSliderImageWrapper,\n ImageSliderSlideItem,\n ImageSliderRoot,\n ImageSliderSlidesWrapper,\n ImageSliderSliderWrapper,\n ImageSliderSlideContent,\n} from \"./ImageSlider.styled\";\nimport type { ImageSliderProps } from \"./ImageSlider.types\";\nimport { ImageSliderControls } from \"./components/ImageSliderControls\";\n\nexport const ImageSlider = (props: ImageSliderProps) => {\n const {\n loop = false,\n showDots = true,\n showArrows = true,\n slides,\n className,\n transitionDuration = 500,\n onSlideChange,\n slots = {},\n slotProps = {},\n controlsProps = {},\n sx,\n } = props;\n\n const isTransitioningRef = useRef(false);\n const slidesWrapperRef = useRef<HTMLDivElement>(null);\n\n const [, forceUpdate] = useState(0);\n const [currentSlide, setCurrentSlide] = useState(0);\n\n const slidesCount = slides.length;\n\n const canGoNext = loop || currentSlide < slidesCount - 1;\n const canGoPrev = loop || currentSlide > 0;\n\n const goToSlide = useCallback(\n (index: number) => {\n if (isTransitioningRef.current || index === currentSlide || slidesCount === 0) return;\n\n let newIndex = index;\n\n if (loop) {\n if (index < 0) newIndex = slidesCount - 1;\n if (index >= slidesCount) newIndex = 0;\n }\n\n if (newIndex < 0 || newIndex >= slidesCount) return;\n\n isTransitioningRef.current = true;\n setCurrentSlide(newIndex);\n onSlideChange?.(newIndex);\n\n setTimeout(() => {\n isTransitioningRef.current = false;\n }, transitionDuration);\n },\n [currentSlide, slidesCount, transitionDuration, onSlideChange, loop]\n );\n\n const next = useCallback(() => goToSlide(currentSlide + 1), [currentSlide, goToSlide]);\n const prev = useCallback(() => goToSlide(currentSlide - 1), [currentSlide, goToSlide]);\n\n useEffect(() => {\n const handleResize = () => forceUpdate((prev) => prev + 1);\n window.addEventListener(\"resize\", handleResize);\n return () => window.removeEventListener(\"resize\", handleResize);\n }, []);\n\n useEffect(() => {\n const onKey = (e: KeyboardEvent) => {\n if (e.key === \"ArrowLeft\") prev();\n if (e.key === \"ArrowRight\") next();\n };\n window.addEventListener(\"keydown\", onKey);\n return () => window.removeEventListener(\"keydown\", onKey);\n }, [prev, next]);\n\n useEffect(() => {\n const wrapper = slidesWrapperRef.current;\n if (!wrapper) return;\n\n let startX: number | null = null;\n\n const onTouchStart = (e: TouchEvent) => {\n startX = e.touches[0].clientX;\n };\n const onTouchEnd = (e: TouchEvent) => {\n if (startX === null) return;\n const deltaX = e.changedTouches[0].clientX - startX;\n if (Math.abs(deltaX) > 50) {\n if (deltaX > 0) prev();\n else next();\n }\n startX = null;\n };\n wrapper.addEventListener(\"touchstart\", onTouchStart);\n wrapper.addEventListener(\"touchend\", onTouchEnd);\n return () => {\n wrapper.removeEventListener(\"touchstart\", onTouchStart);\n wrapper.removeEventListener(\"touchend\", onTouchEnd);\n };\n }, [prev, next]);\n\n const memoizedSlides = useMemo(() => slides, [slides]);\n\n if (slidesCount === 0) return null;\n\n const Root = slots.root ?? ImageSliderRoot;\n const SliderWrapper = slots.sliderWrapper ?? ImageSliderSliderWrapper;\n const SlidesWrapper = slots.slidesWrapper ?? ImageSliderSlidesWrapper;\n const SlideItem = slots.slideItem ?? ImageSliderSlideItem;\n const SlideContent = slots.slideContent ?? ImageSliderSlideContent;\n const ImageWrapper = slots.imageWrapper ?? ImageSliderImageWrapper;\n const SlideImage = slots.slideImage ?? ImageSliderSlideImage;\n const TextWrapper = slots.textWrapper ?? ImageSliderTextWrapper;\n const SlideTitle = slots.slideTitle ?? ImageSliderSlideTitle;\n const SlideDescription = slots.slideDescription ?? ImageSliderSlideDescription;\n const SlideEmbed = slots.slideEmbed ?? ImageSliderSlideEmbed;\n const SlideIframe = slots.slideIframe ?? ImageSliderSlideIframe;\n const IframeWrapper = slots.iframeWrapper ?? ImageSliderIframeWrapper;\n const SlideLink = slots.slideLink ?? ImageSliderSlideLink;\n const EmptyControls =\n slots.emptyControls ?? (({ height, mt }: { height: number; mt: number }) => <Box height={height} mt={mt} />);\n\n const rootProps = useMemo(\n () => ({\n ...slotProps.root,\n sx: getSlotSx(\"root\", sx),\n }),\n [slotProps.root, sx]\n );\n\n const sliderWrapperProps = useMemo(\n () => ({\n ...slotProps.sliderWrapper,\n sx: getSlotSx(\"sliderWrapper\", sx),\n }),\n [slotProps.sliderWrapper, sx]\n );\n\n const slidesWrapperProps = useMemo(\n () => ({\n ...slotProps.slidesWrapper,\n sx: getSlotSx(\"slidesWrapper\", sx),\n }),\n [slotProps.slidesWrapper, sx]\n );\n\n const slideItemProps = useMemo(\n () => ({\n ...slotProps.slideItem,\n sx: getSlotSx(\"slideItem\", sx),\n }),\n [slotProps.slideItem, sx]\n );\n\n const slideContentProps = useMemo(\n () => ({\n ...slotProps.slideContent,\n sx: getSlotSx(\"slideContent\", sx),\n }),\n [slotProps.slideContent, sx]\n );\n\n const imageWrapperProps = useMemo(\n () => ({\n ...slotProps.imageWrapper,\n sx: getSlotSx(\"imageWrapper\", sx),\n }),\n [slotProps.imageWrapper, sx]\n );\n\n const slideImageProps = useMemo(\n () => ({\n ...slotProps.slideImage,\n sx: getSlotSx(\"slideImage\", sx),\n }),\n [slotProps.slideImage, sx]\n );\n\n const textWrapperProps = useMemo(\n () => ({\n ...slotProps.textWrapper,\n sx: getSlotSx(\"textWrapper\", sx),\n }),\n [slotProps.textWrapper, sx]\n );\n\n const slideTitleProps = useMemo(\n () => ({\n ...slotProps.slideTitle,\n sx: getSlotSx(\"slideTitle\", sx),\n }),\n [slotProps.slideTitle, sx]\n );\n\n const slideDescriptionProps = useMemo(\n () => ({\n ...slotProps.slideDescription,\n sx: getSlotSx(\"slideDescription\", sx),\n }),\n [slotProps.slideDescription, sx]\n );\n\n const slideEmbedProps = useMemo(\n () => ({\n ...slotProps.slideEmbed,\n sx: getSlotSx(\"slideEmbed\", sx),\n }),\n [slotProps.slideEmbed, sx]\n );\n\n const slideIframeProps = useMemo(\n () => ({\n ...slotProps.slideIframe,\n sx: getSlotSx(\"slideIframe\", sx),\n }),\n [slotProps.slideIframe, sx]\n );\n\n const iframeWrapperProps = useMemo(\n () => ({\n ...slotProps.iframeWrapper,\n sx: getSlotSx(\"iframeWrapper\", sx),\n }),\n [slotProps.iframeWrapper, sx]\n );\n\n const slideLinkProps = useMemo(\n () => ({\n ...slotProps.slideLink,\n sx: getSlotSx(\"slideLink\", sx),\n }),\n [slotProps.slideLink, sx]\n );\n\n const emptyControlsProps = useMemo(\n () => ({\n ...slotProps.emptyControls,\n sx: getSlotSx(\"emptyControls\", sx),\n }),\n [slotProps.emptyControls, sx]\n );\n\n return (\n <Root className={className} {...rootProps}>\n <SliderWrapper {...sliderWrapperProps}>\n <SlidesWrapper\n {...slidesWrapperProps}\n ref={slidesWrapperRef}\n $currentSlide={currentSlide}\n $transitionDuration={transitionDuration}\n >\n {memoizedSlides.map((slide, idx) => (\n <SlideItem {...slideItemProps} key={idx} $isActive={idx === currentSlide}>\n <SlideContent {...slideContentProps}>\n {slide.type === \"Iframe\" ? (\n <>\n <IframeWrapper {...iframeWrapperProps}>\n <SlideIframe\n src={slide.iframe ?? slide.file ?? \"\"}\n title={slide.title ?? slide.alt}\n loading=\"lazy\"\n {...slideIframeProps}\n />\n </IframeWrapper>\n {(slide.title || slide.description) && (\n <TextWrapper {...textWrapperProps}>\n {slide.title && <SlideTitle {...slideTitleProps}>{slide.title}</SlideTitle>}\n {slide.description && (\n <SlideDescription {...slideDescriptionProps}>{slide.description}</SlideDescription>\n )}\n </TextWrapper>\n )}\n </>\n ) : slide.type === \"PDF\" ? (\n <>\n <SlideEmbed src={slide.file} {...slideEmbedProps} />\n <SlideLink href={slide.file} target=\"_blank\" rel=\"noopener noreferrer\" {...slideLinkProps}>\n <ExternalLink size={24} color=\"#ffffff\" />\n <p>Open file in the new tab</p>\n </SlideLink>\n </>\n ) : (\n <>\n <ImageWrapper {...imageWrapperProps}>\n <SlideImage\n src={slide.image}\n alt={slide.alt}\n loading={idx === 0 ? \"eager\" : \"lazy\"}\n draggable={false}\n tabIndex={idx === currentSlide ? 0 : -1}\n {...slideImageProps}\n />\n </ImageWrapper>\n {(slide.title || slide.description) && (\n <TextWrapper {...textWrapperProps}>\n {slide.title && <SlideTitle {...slideTitleProps}>{slide.title}</SlideTitle>}\n {slide.description && (\n <SlideDescription {...slideDescriptionProps}>{slide.description}</SlideDescription>\n )}\n </TextWrapper>\n )}\n </>\n )}\n </SlideContent>\n </SlideItem>\n ))}\n </SlidesWrapper>\n </SliderWrapper>\n\n {slidesCount > 1 ? (\n <ImageSliderControls\n showArrows={showArrows}\n showDots={showDots}\n memoizedSlides={memoizedSlides}\n currentSlide={currentSlide}\n goToSlide={goToSlide}\n canGoPrev={canGoPrev}\n canGoNext={canGoNext}\n prev={prev}\n next={next}\n {...controlsProps}\n />\n ) : (\n <EmptyControls height={55} mt={2} {...emptyControlsProps} />\n )}\n </Root>\n );\n};\n\nImageSlider.displayName = \"ImageSlider\";\n","import { styled } from \"@mui/material/styles\";\nimport type { StyledComponent } from \"@emotion/styled\";\n\nexport const ImageSliderRoot: StyledComponent<{}, {}, {}> = styled(\"div\", {\n name: \"ImageSlider\",\n slot: \"Root\",\n})(() => ({\n width: \"100%\",\n height: \"100%\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n flex: 1,\n minHeight: 0,\n position: \"relative\",\n overflow: \"hidden\",\n boxSizing: \"border-box\",\n}));\n\nexport const ImageSliderSliderWrapper: StyledComponent<{}, {}, {}> = styled(\"div\", {\n name: \"ImageSlider\",\n slot: \"SliderWrapper\",\n})(() => ({\n flex: \"1 1 auto\",\n minHeight: 0,\n minWidth: 0,\n display: \"flex\",\n position: \"relative\",\n overflow: \"hidden\",\n width: \"100%\",\n height: \"100%\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n boxSizing: \"border-box\",\n}));\n\nexport const ImageSliderSlidesWrapper: StyledComponent<{ $currentSlide: number; $transitionDuration: number }, {}, {}> =\n styled(\"div\", {\n name: \"ImageSlider\",\n slot: \"SlidesWrapper\",\n shouldForwardProp: (propName: string) => !propName.startsWith(\"$\"),\n })<{ $currentSlide: number; $transitionDuration: number }>(({ $currentSlide, $transitionDuration }) => ({\n display: \"flex\",\n width: \"100%\",\n height: \"100%\",\n maxHeight: \"100%\",\n transform: `translateX(-${$currentSlide * 100}%)`,\n transition: `transform ${$transitionDuration}ms cubic-bezier(0.4, 0, 0.2, 1)`,\n willChange: \"transform\",\n position: \"relative\",\n }));\n\nexport const ImageSliderSlideItem: StyledComponent<{ $isActive: boolean }, {}, {}> = styled(\"div\", {\n name: \"ImageSlider\",\n slot: \"SlideItem\",\n shouldForwardProp: (propName: string) => !propName.startsWith(\"$\"),\n})<{ $isActive: boolean }>(({ $isActive }) => ({\n minWidth: \"100%\",\n width: \"100%\",\n height: \"100%\",\n maxHeight: \"100%\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n opacity: $isActive ? 1 : 0.7,\n transition: \"opacity 0.3s\",\n padding: \"0\",\n overflow: \"hidden\",\n position: \"relative\",\n boxSizing: \"border-box\",\n\n \"@media (max-width: 768px)\": {\n padding: \"0\",\n },\n}));\n\nexport const ImageSliderSlideContent: StyledComponent<{}, {}, {}> = styled(\"div\", {\n name: \"ImageSlider\",\n slot: \"SlideContent\",\n})(() => ({\n width: \"100%\",\n height: \"100%\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: \"16px\",\n boxSizing: \"border-box\",\n overflowY: \"auto\",\n overflowX: \"hidden\",\n position: \"relative\",\n\n \"&::-webkit-scrollbar\": {\n width: \"6px\",\n },\n\n \"&::-webkit-scrollbar-track\": {\n background: \"transparent\",\n },\n\n \"&::-webkit-scrollbar-thumb\": {\n background: \"rgba(255, 255, 255, 0.3)\",\n borderRadius: \"3px\",\n\n \"&:hover\": {\n background: \"rgba(255, 255, 255, 0.5)\",\n },\n },\n}));\n\nexport const ImageSliderImageWrapper: StyledComponent<{}, {}, {}> = styled(\"div\", {\n name: \"ImageSlider\",\n slot: \"ImageWrapper\",\n})(() => ({\n flex: \"1 1 auto\",\n minHeight: \"0\",\n minWidth: \"0\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"100%\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n overflow: \"hidden\",\n position: \"relative\",\n}));\n\nexport const ImageSliderSlideImage: StyledComponent<{}, {}, {}> = styled(\"img\", {\n name: \"ImageSlider\",\n slot: \"SlideImage\",\n})(() => ({\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n width: \"100%\",\n height: \"100%\",\n objectFit: \"contain\",\n userSelect: \"none\",\n pointerEvents: \"none\",\n display: \"block\",\n position: \"relative\",\n\n \"@media (max-width: 768px)\": {\n maxWidth: \"95%\",\n maxHeight: \"95%\",\n },\n\n \"@media (max-width: 480px)\": {\n maxWidth: \"90%\",\n maxHeight: \"90%\",\n },\n\n \"@media (orientation: landscape) and (max-height: 600px)\": {\n maxHeight: \"85%\",\n },\n}));\n\nexport const ImageSliderTextWrapper: StyledComponent<{}, {}, {}> = styled(\"div\", {\n name: \"ImageSlider\",\n slot: \"TextWrapper\",\n})(() => ({\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n width: \"100%\",\n maxWidth: \"800px\",\n flexShrink: 0,\n gap: \"8px\",\n padding: \"0 16px\",\n boxSizing: \"border-box\",\n minWidth: \"0\",\n\n \"@media (max-width: 768px)\": {\n maxWidth: \"100%\",\n padding: \"0 8px\",\n gap: \"6px\",\n },\n\n \"@media (max-width: 480px)\": {\n padding: \"0 4px\",\n gap: \"4px\",\n },\n\n \"@media (orientation: landscape) and (max-height: 600px)\": {\n gap: \"4px\",\n padding: \"0 8px\",\n },\n}));\n\nexport const ImageSliderSlideTitle: StyledComponent<{}, {}, {}> = styled(\"h3\", {\n name: \"ImageSlider\",\n slot: \"SlideTitle\",\n})(() => ({\n fontWeight: 700,\n fontSize: \"clamp(20px, 4vw, 32px)\",\n lineHeight: \"1.4\",\n textAlign: \"center\",\n letterSpacing: \"0.01em\",\n color: \"#ffffff\",\n margin: 0,\n wordWrap: \"break-word\",\n overflowWrap: \"break-word\",\n\n \"@media (max-width: 768px)\": {\n fontSize: \"clamp(18px, 4.5vw, 24px)\",\n },\n\n \"@media (max-width: 480px)\": {\n fontSize: \"clamp(16px, 5vw, 20px)\",\n },\n\n \"@media (orientation: landscape) and (max-height: 600px)\": {\n fontSize: \"clamp(16px, 3vw, 22px)\",\n },\n}));\n\nexport const ImageSliderSlideDescription: StyledComponent<{}, {}, {}> = styled(\"p\", {\n name: \"ImageSlider\",\n slot: \"SlideDescription\",\n})(() => ({\n fontWeight: 400,\n fontSize: \"clamp(14px, 2.5vw, 16px)\",\n lineHeight: \"1.6\",\n textAlign: \"center\",\n color: \"#ffffff\",\n maxWidth: \"100%\",\n margin: 0,\n wordWrap: \"break-word\",\n overflowWrap: \"break-word\",\n\n \"@media (max-width: 768px)\": {\n fontSize: \"clamp(13px, 3vw, 15px)\",\n lineHeight: \"1.5\",\n },\n\n \"@media (max-width: 480px)\": {\n fontSize: \"clamp(12px, 3.5vw, 14px)\",\n },\n\n \"@media (orientation: landscape) and (max-height: 600px)\": {\n fontSize: \"clamp(12px, 2vw, 14px)\",\n lineHeight: \"1.4\",\n },\n}));\n\nexport const ImageSliderIframeWrapper: StyledComponent<{}, {}, {}> = styled(\"div\", {\n name: \"ImageSlider\",\n slot: \"IframeWrapper\",\n})(() => ({\n flex: \"1 1 auto\",\n minHeight: \"0\",\n minWidth: \"0\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"100%\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n overflow: \"hidden\",\n position: \"relative\",\n}));\n\nexport const ImageSliderSlideIframe: StyledComponent<{}, {}, {}> = styled(\"iframe\", {\n name: \"ImageSlider\",\n slot: \"SlideIframe\",\n})(() => ({\n width: \"100%\",\n height: \"100%\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n display: \"block\",\n position: \"relative\",\n border: 0,\n background: \"transparent\",\n borderRadius: 10,\n}));\n\nexport const ImageSliderSlideEmbed: StyledComponent<{}, {}, {}> = styled(\"embed\", {\n name: \"ImageSlider\",\n slot: \"SlideEmbed\",\n})(() => ({\n width: \"100%\",\n height: \"100%\",\n display: \"block\",\n margin: \"0 auto\",\n borderRadius: \"10px\",\n\n \"@media (max-width: 640px), (max-width: 900px) and (orientation: landscape)\": {\n display: \"none\",\n },\n}));\n\nexport const ImageSliderSlideLink: StyledComponent<{}, {}, {}> = styled(\"a\", {\n name: \"ImageSlider\",\n slot: \"SlideLink\",\n})(() => ({\n display: \"none\",\n backgroundColor: \"#00263E\",\n border: `2px solid #00263E`,\n color: \"#ffffff\",\n padding: \"8px 16px\",\n borderRadius: \"8px\",\n columnGap: \"12px\",\n flexFlow: \"row nowrap\",\n alignItems: \"center\",\n fontWeight: 400,\n fontSize: \"clamp(14px, 2.5vw, 16px)\",\n lineHeight: \"1.6\",\n\n \"@media (max-width: 640px), (max-width: 900px) and (orientation: landscape)\": {\n display: \"flex\",\n },\n\n \"& path\": {\n stroke: \"#ffffff\",\n },\n}));\n","import { memo, useMemo } from \"react\";\nimport { getSlotSx } from \"@zipkito/shared\";\nimport { ArrowLeftIcon, ArrowRightIcon } from \"lucide-react\";\n\nimport {\n ImageSliderControlsDot,\n ImageSliderControlsDotsWrapper,\n ImageSliderControlsRoot,\n} from \"./ImageSliderControls.styled\";\nimport { ArrowButton } from \"../ArrowButton\";\nimport type { ImageSliderControlsProps } from \"./ImageSliderControls.types\";\n\nexport const ImageSliderControls = memo((props: ImageSliderControlsProps) => {\n const {\n showArrows,\n showDots,\n memoizedSlides,\n currentSlide,\n canGoPrev,\n canGoNext,\n prev,\n next,\n goToSlide,\n slots = {},\n slotProps = {},\n sx,\n } = props;\n\n const Root = slots.root ?? ImageSliderControlsRoot;\n const DotsWrapper = slots.dotsWrapper ?? ImageSliderControlsDotsWrapper;\n const Dot = slots.dot ?? ImageSliderControlsDot;\n const LeftArrow = slots.leftArrow;\n const RightArrow = slots.rightArrow;\n\n const rootProps = useMemo(\n () => ({\n ...slotProps.root,\n sx: getSlotSx(\"root\", sx),\n }),\n [slotProps.root, sx]\n );\n\n const dotsWrapperProps = useMemo(\n () => ({\n ...slotProps.dotsWrapper,\n sx: getSlotSx(\"dotsWrapper\", sx),\n }),\n [slotProps.dotsWrapper, sx]\n );\n\n const dotProps = useMemo(\n () => ({\n ...slotProps.dot,\n sx: getSlotSx(\"dot\", sx),\n }),\n [slotProps.dot, sx]\n );\n\n const leftArrowProps = useMemo(\n () => ({\n ...slotProps.leftArrow,\n sx: getSlotSx(\"leftArrow\", sx),\n }),\n [slotProps.leftArrow, sx]\n );\n\n const rightArrowProps = useMemo(\n () => ({\n ...slotProps.rightArrow,\n sx: getSlotSx(\"rightArrow\", sx),\n }),\n [slotProps.rightArrow, sx]\n );\n\n return (\n <Root {...rootProps}>\n {showArrows && LeftArrow ? (\n <LeftArrow disabled={!canGoPrev} onClick={prev} {...leftArrowProps} />\n ) : (\n <ArrowButton disabled={!canGoPrev} onClick={prev} {...leftArrowProps}>\n <ArrowLeftIcon size={24} />\n </ArrowButton>\n )}\n\n {showDots && (\n <DotsWrapper {...dotsWrapperProps}>\n {memoizedSlides.map((_, i) => (\n <Dot\n key={i}\n $active={i === currentSlide}\n onClick={() => goToSlide(i)}\n role=\"button\"\n onKeyDown={(e: KeyboardEvent) => e.key === \"Enter\" || (e.key === \" \" && goToSlide(i))}\n {...dotProps}\n />\n ))}\n </DotsWrapper>\n )}\n\n {showArrows && RightArrow ? (\n <RightArrow disabled={!canGoNext} onClick={next} {...rightArrowProps} />\n ) : (\n <ArrowButton disabled={!canGoNext} onClick={next} {...rightArrowProps}>\n <ArrowRightIcon size={24} />\n </ArrowButton>\n )}\n </Root>\n );\n});\n\nImageSliderControls.displayName = \"ImageSliderControls\";\n","import { styled } from \"@mui/material/styles\";\nimport type { StyledComponent } from \"@emotion/styled\";\n\nexport const ImageSliderControlsRoot: StyledComponent<{}, {}, {}> = styled(\"div\", {\n name: \"ImageSliderControls\",\n slot: \"Root\",\n})(() => ({\n width: \"100%\",\n height: \"55px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: \"16px\",\n marginTop: \"16px\",\n flexShrink: 0,\n padding: \"0 8px\",\n\n \"@media (max-width: 768px)\": {\n gap: \"12px\",\n marginTop: \"12px\",\n },\n\n \"@media (max-width: 480px)\": {\n gap: \"8px\",\n marginTop: \"8px\",\n },\n}));\n\nexport const ImageSliderControlsDotsWrapper: StyledComponent<{}, {}, {}> = styled(\"div\", {\n name: \"ImageSliderControls\",\n slot: \"DotsWrapper\",\n})(() => ({\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: \"10px\",\n}));\n\nexport const ImageSliderControlsDot: StyledComponent<{ $active: boolean }, {}, {}> = styled(\"div\", {\n name: \"ImageSliderControls\",\n slot: \"Dot\",\n shouldForwardProp: (propName: string) => !propName.startsWith(\"$\"),\n})<{ $active: boolean }>(({ $active }) => ({\n width: $active ? \"12px\" : \"8px\",\n height: $active ? \"12px\" : \"8px\",\n background: $active ? \"#fff\" : \"#5b5b5b\",\n borderRadius: \"50%\",\n cursor: \"pointer\",\n transition: \"0.2s\",\n outline: \"none\",\n \"&:focus\": { boxShadow: \"0 0 0 2px #fff\" },\n}));\n","import { IconButton } from \"@mui/material\";\nimport { ComponentProps, memo } from \"react\";\n\nexport const ArrowButton = memo(({ children, ...props }: ComponentProps<typeof IconButton>) => (\n <IconButton {...props} color=\"default\">\n {children}\n </IconButton>\n));\n\nArrowButton.displayName = \"ArrowButton\";\n","import { styled } from \"@mui/material/styles\";\nimport type { StyledComponent } from \"@emotion/styled\";\n\nexport const SlideGalleryRoot: StyledComponent<{}, {}, {}> = styled(\"div\", {\n name: \"SlideGallery\",\n slot: \"Root\",\n})(() => ({\n flex: 1,\n minHeight: 0,\n display: \"flex\",\n width: \"100%\",\n padding: \"16px\",\n borderRadius: \"16px\",\n}));\n","import { memo, useMemo } from \"react\";\nimport { Overlay } from \"@zipkito/shared\";\n\nimport { IframeGalleryFrame } from \"./IframeGallery.styled\";\nimport type { IframeGalleryProps } from \"./IframeGallery.types\";\n\nexport const IframeGallery = memo((props: IframeGalleryProps) => {\n const { gallery, actions, slots = {}, slotProps = {}, overlayProps = {}, sx } = props;\n\n const src = useMemo(() => gallery?.path, [gallery?.path]);\n\n if (!gallery.visible || !src) return null;\n\n const Frame = slots.frame ?? IframeGalleryFrame;\n\n return (\n <Overlay visible={gallery.visible} {...overlayProps}>\n <Frame src={src} sx={sx} loading=\"lazy\" {...slotProps.frame} />\n {actions}\n </Overlay>\n );\n});\n\nIframeGallery.displayName = \"IframeGallery\";\n","import { styled } from \"@mui/material/styles\";\nimport type { StyledComponent } from \"@emotion/styled\";\n\nexport const IframeGalleryFrame: StyledComponent<{}, {}, {}> = styled(\"iframe\", {\n name: \"IframeGallery\",\n slot: \"Frame\",\n})(() => ({\n border: 0,\n width: \"100%\",\n height: \"100%\",\n display: \"block\",\n background: \"transparent\",\n borderRadius: 16,\n boxShadow: \"0 12px 30px rgba(0, 0, 0, 0.25)\",\n}));\n","import { SlideGallerySlide } from \"./slides\";\n\nexport const GALLERY_TYPE = {\n Slide: \"slide\",\n MDX: \"mdx\",\n Iframe: \"iframe\",\n} as const;\n\nexport interface WithVisibility {\n visible: boolean;\n originalIndex: number;\n type: (typeof GALLERY_TYPE)[keyof typeof GALLERY_TYPE];\n}\n\nexport interface MDXGalleryType extends WithVisibility {\n file?: string;\n}\n\nexport interface SlideGalleryType extends WithVisibility {\n slides: SlideGallerySlide[];\n}\n\nexport interface IframeGalleryType extends WithVisibility {\n path?: string;\n}\n"],"mappings":"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","names":["import_material","MuiContainer","import_react","import_shared","import_material","import_lucide_react","import_shared","import_react","import_styles","import_react","import_shared","import_styles","import_material","import_react","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_react","prev","import_styles","import_jsx_runtime","import_react","import_shared","import_styles","import_jsx_runtime"]}
|
package/dist/index.mjs
CHANGED
|
@@ -175,15 +175,12 @@ var ImageSliderSliderWrapper = styled2("div", {
|
|
|
175
175
|
height: "100%",
|
|
176
176
|
maxWidth: "100%",
|
|
177
177
|
maxHeight: "100%",
|
|
178
|
-
boxSizing: "border-box"
|
|
179
|
-
"@media (max-width: 768px)": {
|
|
180
|
-
minHeight: 0,
|
|
181
|
-
minWidth: 0
|
|
182
|
-
}
|
|
178
|
+
boxSizing: "border-box"
|
|
183
179
|
}));
|
|
184
180
|
var ImageSliderSlidesWrapper = styled2("div", {
|
|
185
181
|
name: "ImageSlider",
|
|
186
|
-
slot: "SlidesWrapper"
|
|
182
|
+
slot: "SlidesWrapper",
|
|
183
|
+
shouldForwardProp: (propName) => !propName.startsWith("$")
|
|
187
184
|
})(({ $currentSlide, $transitionDuration }) => ({
|
|
188
185
|
display: "flex",
|
|
189
186
|
width: "100%",
|
|
@@ -196,7 +193,8 @@ var ImageSliderSlidesWrapper = styled2("div", {
|
|
|
196
193
|
}));
|
|
197
194
|
var ImageSliderSlideItem = styled2("div", {
|
|
198
195
|
name: "ImageSlider",
|
|
199
|
-
slot: "SlideItem"
|
|
196
|
+
slot: "SlideItem",
|
|
197
|
+
shouldForwardProp: (propName) => !propName.startsWith("$")
|
|
200
198
|
})(({ $isActive }) => ({
|
|
201
199
|
minWidth: "100%",
|
|
202
200
|
width: "100%",
|
|
@@ -365,18 +363,35 @@ var ImageSliderSlideDescription = styled2("p", {
|
|
|
365
363
|
lineHeight: "1.4"
|
|
366
364
|
}
|
|
367
365
|
}));
|
|
366
|
+
var ImageSliderIframeWrapper = styled2("div", {
|
|
367
|
+
name: "ImageSlider",
|
|
368
|
+
slot: "IframeWrapper"
|
|
369
|
+
})(() => ({
|
|
370
|
+
flex: "1 1 auto",
|
|
371
|
+
minHeight: "0",
|
|
372
|
+
minWidth: "0",
|
|
373
|
+
display: "flex",
|
|
374
|
+
alignItems: "center",
|
|
375
|
+
justifyContent: "center",
|
|
376
|
+
width: "100%",
|
|
377
|
+
maxWidth: "100%",
|
|
378
|
+
maxHeight: "100%",
|
|
379
|
+
overflow: "hidden",
|
|
380
|
+
position: "relative"
|
|
381
|
+
}));
|
|
368
382
|
var ImageSliderSlideIframe = styled2("iframe", {
|
|
369
383
|
name: "ImageSlider",
|
|
370
384
|
slot: "SlideIframe"
|
|
371
385
|
})(() => ({
|
|
372
386
|
width: "100%",
|
|
373
387
|
height: "100%",
|
|
374
|
-
|
|
388
|
+
maxWidth: "100%",
|
|
389
|
+
maxHeight: "100%",
|
|
375
390
|
display: "block",
|
|
376
|
-
|
|
377
|
-
borderRadius: "10px",
|
|
391
|
+
position: "relative",
|
|
378
392
|
border: 0,
|
|
379
|
-
|
|
393
|
+
background: "transparent",
|
|
394
|
+
borderRadius: 10
|
|
380
395
|
}));
|
|
381
396
|
var ImageSliderSlideEmbed = styled2("embed", {
|
|
382
397
|
name: "ImageSlider",
|
|
@@ -455,7 +470,8 @@ var ImageSliderControlsDotsWrapper = styled3("div", {
|
|
|
455
470
|
}));
|
|
456
471
|
var ImageSliderControlsDot = styled3("div", {
|
|
457
472
|
name: "ImageSliderControls",
|
|
458
|
-
slot: "Dot"
|
|
473
|
+
slot: "Dot",
|
|
474
|
+
shouldForwardProp: (propName) => !propName.startsWith("$")
|
|
459
475
|
})(({ $active }) => ({
|
|
460
476
|
width: $active ? "12px" : "8px",
|
|
461
477
|
height: $active ? "12px" : "8px",
|
|
@@ -643,6 +659,7 @@ var ImageSlider = (props) => {
|
|
|
643
659
|
const SlideDescription = slots.slideDescription ?? ImageSliderSlideDescription;
|
|
644
660
|
const SlideEmbed = slots.slideEmbed ?? ImageSliderSlideEmbed;
|
|
645
661
|
const SlideIframe = slots.slideIframe ?? ImageSliderSlideIframe;
|
|
662
|
+
const IframeWrapper = slots.iframeWrapper ?? ImageSliderIframeWrapper;
|
|
646
663
|
const SlideLink = slots.slideLink ?? ImageSliderSlideLink;
|
|
647
664
|
const EmptyControls = slots.emptyControls ?? (({ height, mt }) => /* @__PURE__ */ jsx4(Box, { height, mt }));
|
|
648
665
|
const rootProps = useMemo3(
|
|
@@ -729,6 +746,13 @@ var ImageSlider = (props) => {
|
|
|
729
746
|
}),
|
|
730
747
|
[slotProps.slideIframe, sx]
|
|
731
748
|
);
|
|
749
|
+
const iframeWrapperProps = useMemo3(
|
|
750
|
+
() => ({
|
|
751
|
+
...slotProps.iframeWrapper,
|
|
752
|
+
sx: getSlotSx3("iframeWrapper", sx)
|
|
753
|
+
}),
|
|
754
|
+
[slotProps.iframeWrapper, sx]
|
|
755
|
+
);
|
|
732
756
|
const slideLinkProps = useMemo3(
|
|
733
757
|
() => ({
|
|
734
758
|
...slotProps.slideLink,
|
|
@@ -752,7 +776,7 @@ var ImageSlider = (props) => {
|
|
|
752
776
|
$currentSlide: currentSlide,
|
|
753
777
|
$transitionDuration: transitionDuration,
|
|
754
778
|
children: memoizedSlides.map((slide, idx) => /* @__PURE__ */ createElement(SlideItem, { ...slideItemProps, key: idx, $isActive: idx === currentSlide }, /* @__PURE__ */ jsx4(SlideContent, { ...slideContentProps, children: slide.type === "Iframe" ? /* @__PURE__ */ jsxs3(Fragment, { children: [
|
|
755
|
-
/* @__PURE__ */ jsx4(
|
|
779
|
+
/* @__PURE__ */ jsx4(IframeWrapper, { ...iframeWrapperProps, children: /* @__PURE__ */ jsx4(
|
|
756
780
|
SlideIframe,
|
|
757
781
|
{
|
|
758
782
|
src: slide.iframe ?? slide.file ?? "",
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/MDXGallery/MDXGallery.tsx","../src/MDXGallery/MDXGallery.styled.ts","../src/SlideGallery/SlideGallery.tsx","../src/ImageSlider/ImageSlider.tsx","../src/ImageSlider/ImageSlider.styled.ts","../src/ImageSlider/components/ImageSliderControls/ImageSliderControls.tsx","../src/ImageSlider/components/ImageSliderControls/ImageSliderControls.styled.ts","../src/ImageSlider/components/ArrowButton/ArrowButton.tsx","../src/SlideGallery/SlideGallery.styled.ts","../src/IframeGallery/IframeGallery.tsx","../src/IframeGallery/IframeGallery.styled.ts","../src/types/galleries.ts"],"sourcesContent":["import * as runtime from \"react/jsx-runtime\";\nimport { compile, run } from \"@mdx-js/mdx\";\nimport { getSlotSx, Overlay } from \"@zipkito/shared\";\nimport { Container as MuiContainer } from \"@mui/material\";\nimport { memo, useEffect, useMemo, useState, type FC } from \"react\";\n\nimport type { MDXGalleryProps } from \"./MDXGallery.types\";\nimport { MDXGalleryErrorMessage, MDXGalleryLoadingMessage, MDXGalleryRoot } from \"./MDXGallery.styled\";\n\ntype LoadStatus = \"idle\" | \"loading\" | \"error\" | \"ready\";\n\nexport const MDXGallery = memo((props: MDXGalleryProps) => {\n const { gallery, mdxContext, actions, slots = {}, slotProps = {}, overlayProps = {}, sx } = props;\n\n const [Content, setContent] = useState<FC | null>(null);\n const [status, setStatus] = useState<LoadStatus>(\"idle\");\n const [error, setError] = useState<string | null>(null);\n\n useEffect(() => {\n if (!gallery.visible || !gallery.file) {\n setStatus(\"idle\");\n setContent(null);\n setError(null);\n return;\n }\n\n let cancelled = false;\n\n const load = async () => {\n try {\n setStatus(\"loading\");\n setError(null);\n\n const source = await mdxContext.loadSource(gallery.file!);\n\n const compiled = await compile(source, {\n outputFormat: \"function-body\",\n providerImportSource: \"@mdx-js/react\",\n });\n\n const evaluated = await run(String(compiled), {\n ...runtime,\n\n useMDXComponents: () => mdxContext.components ?? {},\n });\n\n if (!cancelled && typeof evaluated.default === \"function\") {\n setContent(() => evaluated.default as FC);\n setStatus(\"ready\");\n }\n } catch (err: unknown) {\n if (!cancelled) {\n setError(err instanceof Error ? err.message : \"Failed to load MDX\");\n setStatus(\"error\");\n }\n }\n };\n\n load();\n return () => {\n cancelled = true;\n };\n }, [gallery.file, gallery.visible, mdxContext]);\n\n if (!gallery.visible) return null;\n\n const Root = slots.root ?? MDXGalleryRoot;\n const Container = slots.container ?? MuiContainer;\n const LoadingMessage = slots.loadingMessage ?? MDXGalleryLoadingMessage;\n const ErrorMessage = slots.errorMessage ?? MDXGalleryErrorMessage;\n\n const rootProps = useMemo(\n () => ({\n ...slotProps.root,\n sx: getSlotSx(\"root\", sx),\n }),\n [slotProps.root, sx]\n );\n\n const containerProps = useMemo(\n () => ({\n ...slotProps.container,\n sx: getSlotSx(\"container\", sx),\n }),\n [slotProps.container, sx]\n );\n\n const loadingMessageProps = useMemo(\n () => ({\n ...slotProps.loadingMessage,\n sx: getSlotSx(\"loadingMessage\", sx),\n }),\n [slotProps.loadingMessage, sx]\n );\n\n const errorMessageProps = useMemo(\n () => ({\n ...slotProps.errorMessage,\n sx: getSlotSx(\"errorMessage\", sx),\n }),\n [slotProps.errorMessage, sx]\n );\n\n return (\n <Overlay visible={gallery.visible} {...overlayProps}>\n <Root {...rootProps}>\n <Container maxWidth=\"xl\" {...containerProps}>\n {status === \"loading\" && (\n <LoadingMessage variant=\"subh2\" {...loadingMessageProps}>\n Loading content...\n </LoadingMessage>\n )}\n\n {status === \"error\" && (\n <ErrorMessage variant=\"subh2\" {...errorMessageProps}>\n Error loading content: {error}\n </ErrorMessage>\n )}\n\n {status === \"ready\" && Content && <Content />}\n </Container>\n </Root>\n {actions}\n </Overlay>\n );\n});\n\nMDXGallery.displayName = \"MDXGallery\";\n","import { styled } from \"@mui/material/styles\";\nimport type { StyledComponent } from \"@emotion/styled\";\nimport { Typography, type TypographyProps } from \"@mui/material\";\n\nexport const MDXGalleryRoot: StyledComponent<{}, {}, {}> = styled(\"div\", {\n name: \"MDXGallery\",\n slot: \"Root\",\n})(({ theme }) => ({\n height: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n padding: \"24px\",\n background: \"radial-gradient(circle at top, rgba(255, 255, 255, 0.08), transparent 45%)\",\n scrollbarGutter: \"stable\",\n scrollbarColor: `${theme.palette.primary.main} rgba(255, 255, 255, 0.3)`,\n scrollbarWidth: \"thin\",\n position: \"relative\",\n overflowX: \"hidden\",\n overflowY: \"auto\",\n}));\n\nexport const MDXGalleryLoadingMessage: StyledComponent<TypographyProps, {}, {}> = styled(Typography, {\n name: \"MDXGallery\",\n slot: \"LoadingMessage\",\n})(() => ({\n textAlign: \"center\",\n padding: \"40px\",\n color: \"#666\",\n}));\n\nexport const MDXGalleryErrorMessage: StyledComponent<TypographyProps, {}, {}> = styled(Typography, {\n name: \"MDXGallery\",\n slot: \"ErrorMessage\",\n})(() => ({\n textAlign: \"center\",\n padding: \"40px\",\n color: \"#d32f2f\",\n}));\n","import { memo, useMemo } from \"react\";\nimport { getSlotSx, Overlay } from \"@zipkito/shared\";\n\nimport { ImageSlider } from \"../ImageSlider\";\nimport { SlideGalleryRoot } from \"./SlideGallery.styled\";\nimport type { SlideGalleryProps } from \"./SlideGallery.types\";\n\nexport const SlideGallery = memo((props: SlideGalleryProps) => {\n const { gallery, actions, slots = {}, slotProps = {}, imageSliderProps, controlsProps, overlayProps, sx } = props;\n\n const slides = useMemo(\n () =>\n gallery.slides.map((slide, idx) => ({\n ...slide,\n alt: slide.title ?? `Slide ${idx + 1}`,\n })),\n [gallery.slides]\n );\n\n if (!gallery.visible || slides.length === 0) return null;\n\n const Root = slots.root ?? SlideGalleryRoot;\n\n const rootProps = useMemo(\n () => ({\n ...slotProps.root,\n sx: getSlotSx(\"root\", sx),\n }),\n [slotProps.root, sx]\n );\n\n return (\n <Overlay visible={gallery.visible} {...overlayProps}>\n <Root {...rootProps}>\n <ImageSlider slides={slides} {...imageSliderProps} controlsProps={controlsProps} />\n </Root>\n {actions}\n </Overlay>\n );\n});\n\nSlideGallery.displayName = \"SlideGallery\";\n","import { Box } from \"@mui/material\";\nimport { ExternalLink } from \"lucide-react\";\nimport { getSlotSx } from \"@zipkito/shared\";\nimport { useState, useRef, useCallback, useMemo, useEffect } from \"react\";\n\nimport {\n ImageSliderSlideLink,\n ImageSliderSlideEmbed,\n ImageSliderSlideIframe,\n ImageSliderSlideDescription,\n ImageSliderSlideImage,\n ImageSliderSlideTitle,\n ImageSliderTextWrapper,\n ImageSliderImageWrapper,\n ImageSliderSlideItem,\n ImageSliderRoot,\n ImageSliderSlidesWrapper,\n ImageSliderSliderWrapper,\n ImageSliderSlideContent,\n} from \"./ImageSlider.styled\";\nimport type { ImageSliderProps } from \"./ImageSlider.types\";\nimport { ImageSliderControls } from \"./components/ImageSliderControls\";\n\nexport const ImageSlider = (props: ImageSliderProps) => {\n const {\n loop = false,\n showDots = true,\n showArrows = true,\n slides,\n className,\n transitionDuration = 500,\n onSlideChange,\n slots = {},\n slotProps = {},\n controlsProps = {},\n sx,\n } = props;\n\n const isTransitioningRef = useRef(false);\n const slidesWrapperRef = useRef<HTMLDivElement>(null);\n\n const [, forceUpdate] = useState(0);\n const [currentSlide, setCurrentSlide] = useState(0);\n\n const slidesCount = slides.length;\n\n const canGoNext = loop || currentSlide < slidesCount - 1;\n const canGoPrev = loop || currentSlide > 0;\n\n const goToSlide = useCallback(\n (index: number) => {\n if (isTransitioningRef.current || index === currentSlide || slidesCount === 0) return;\n\n let newIndex = index;\n\n if (loop) {\n if (index < 0) newIndex = slidesCount - 1;\n if (index >= slidesCount) newIndex = 0;\n }\n\n if (newIndex < 0 || newIndex >= slidesCount) return;\n\n isTransitioningRef.current = true;\n setCurrentSlide(newIndex);\n onSlideChange?.(newIndex);\n\n setTimeout(() => {\n isTransitioningRef.current = false;\n }, transitionDuration);\n },\n [currentSlide, slidesCount, transitionDuration, onSlideChange, loop]\n );\n\n const next = useCallback(() => goToSlide(currentSlide + 1), [currentSlide, goToSlide]);\n const prev = useCallback(() => goToSlide(currentSlide - 1), [currentSlide, goToSlide]);\n\n useEffect(() => {\n const handleResize = () => forceUpdate((prev) => prev + 1);\n window.addEventListener(\"resize\", handleResize);\n return () => window.removeEventListener(\"resize\", handleResize);\n }, []);\n\n useEffect(() => {\n const onKey = (e: KeyboardEvent) => {\n if (e.key === \"ArrowLeft\") prev();\n if (e.key === \"ArrowRight\") next();\n };\n window.addEventListener(\"keydown\", onKey);\n return () => window.removeEventListener(\"keydown\", onKey);\n }, [prev, next]);\n\n useEffect(() => {\n const wrapper = slidesWrapperRef.current;\n if (!wrapper) return;\n\n let startX: number | null = null;\n\n const onTouchStart = (e: TouchEvent) => {\n startX = e.touches[0].clientX;\n };\n const onTouchEnd = (e: TouchEvent) => {\n if (startX === null) return;\n const deltaX = e.changedTouches[0].clientX - startX;\n if (Math.abs(deltaX) > 50) {\n if (deltaX > 0) prev();\n else next();\n }\n startX = null;\n };\n wrapper.addEventListener(\"touchstart\", onTouchStart);\n wrapper.addEventListener(\"touchend\", onTouchEnd);\n return () => {\n wrapper.removeEventListener(\"touchstart\", onTouchStart);\n wrapper.removeEventListener(\"touchend\", onTouchEnd);\n };\n }, [prev, next]);\n\n const memoizedSlides = useMemo(() => slides, [slides]);\n\n if (slidesCount === 0) return null;\n\n const Root = slots.root ?? ImageSliderRoot;\n const SliderWrapper = slots.sliderWrapper ?? ImageSliderSliderWrapper;\n const SlidesWrapper = slots.slidesWrapper ?? ImageSliderSlidesWrapper;\n const SlideItem = slots.slideItem ?? ImageSliderSlideItem;\n const SlideContent = slots.slideContent ?? ImageSliderSlideContent;\n const ImageWrapper = slots.imageWrapper ?? ImageSliderImageWrapper;\n const SlideImage = slots.slideImage ?? ImageSliderSlideImage;\n const TextWrapper = slots.textWrapper ?? ImageSliderTextWrapper;\n const SlideTitle = slots.slideTitle ?? ImageSliderSlideTitle;\n const SlideDescription = slots.slideDescription ?? ImageSliderSlideDescription;\n const SlideEmbed = slots.slideEmbed ?? ImageSliderSlideEmbed;\n const SlideIframe = slots.slideIframe ?? ImageSliderSlideIframe;\n const SlideLink = slots.slideLink ?? ImageSliderSlideLink;\n const EmptyControls =\n slots.emptyControls ?? (({ height, mt }: { height: number; mt: number }) => <Box height={height} mt={mt} />);\n\n const rootProps = useMemo(\n () => ({\n ...slotProps.root,\n sx: getSlotSx(\"root\", sx),\n }),\n [slotProps.root, sx]\n );\n\n const sliderWrapperProps = useMemo(\n () => ({\n ...slotProps.sliderWrapper,\n sx: getSlotSx(\"sliderWrapper\", sx),\n }),\n [slotProps.sliderWrapper, sx]\n );\n\n const slidesWrapperProps = useMemo(\n () => ({\n ...slotProps.slidesWrapper,\n sx: getSlotSx(\"slidesWrapper\", sx),\n }),\n [slotProps.slidesWrapper, sx]\n );\n\n const slideItemProps = useMemo(\n () => ({\n ...slotProps.slideItem,\n sx: getSlotSx(\"slideItem\", sx),\n }),\n [slotProps.slideItem, sx]\n );\n\n const slideContentProps = useMemo(\n () => ({\n ...slotProps.slideContent,\n sx: getSlotSx(\"slideContent\", sx),\n }),\n [slotProps.slideContent, sx]\n );\n\n const imageWrapperProps = useMemo(\n () => ({\n ...slotProps.imageWrapper,\n sx: getSlotSx(\"imageWrapper\", sx),\n }),\n [slotProps.imageWrapper, sx]\n );\n\n const slideImageProps = useMemo(\n () => ({\n ...slotProps.slideImage,\n sx: getSlotSx(\"slideImage\", sx),\n }),\n [slotProps.slideImage, sx]\n );\n\n const textWrapperProps = useMemo(\n () => ({\n ...slotProps.textWrapper,\n sx: getSlotSx(\"textWrapper\", sx),\n }),\n [slotProps.textWrapper, sx]\n );\n\n const slideTitleProps = useMemo(\n () => ({\n ...slotProps.slideTitle,\n sx: getSlotSx(\"slideTitle\", sx),\n }),\n [slotProps.slideTitle, sx]\n );\n\n const slideDescriptionProps = useMemo(\n () => ({\n ...slotProps.slideDescription,\n sx: getSlotSx(\"slideDescription\", sx),\n }),\n [slotProps.slideDescription, sx]\n );\n\n const slideEmbedProps = useMemo(\n () => ({\n ...slotProps.slideEmbed,\n sx: getSlotSx(\"slideEmbed\", sx),\n }),\n [slotProps.slideEmbed, sx]\n );\n\n const slideIframeProps = useMemo(\n () => ({\n ...slotProps.slideIframe,\n sx: getSlotSx(\"slideIframe\", sx),\n }),\n [slotProps.slideIframe, sx]\n );\n\n const slideLinkProps = useMemo(\n () => ({\n ...slotProps.slideLink,\n sx: getSlotSx(\"slideLink\", sx),\n }),\n [slotProps.slideLink, sx]\n );\n\n const emptyControlsProps = useMemo(\n () => ({\n ...slotProps.emptyControls,\n sx: getSlotSx(\"emptyControls\", sx),\n }),\n [slotProps.emptyControls, sx]\n );\n\n return (\n <Root className={className} {...rootProps}>\n <SliderWrapper {...sliderWrapperProps}>\n <SlidesWrapper\n {...slidesWrapperProps}\n ref={slidesWrapperRef}\n $currentSlide={currentSlide}\n $transitionDuration={transitionDuration}\n >\n {memoizedSlides.map((slide, idx) => (\n <SlideItem {...slideItemProps} key={idx} $isActive={idx === currentSlide}>\n <SlideContent {...slideContentProps}>\n {slide.type === \"Iframe\" ? (\n <>\n <ImageWrapper {...imageWrapperProps}>\n <SlideIframe\n src={slide.iframe ?? slide.file ?? \"\"}\n title={slide.title ?? slide.alt}\n loading=\"lazy\"\n {...slideIframeProps}\n />\n </ImageWrapper>\n {(slide.title || slide.description) && (\n <TextWrapper {...textWrapperProps}>\n {slide.title && <SlideTitle {...slideTitleProps}>{slide.title}</SlideTitle>}\n {slide.description && (\n <SlideDescription {...slideDescriptionProps}>{slide.description}</SlideDescription>\n )}\n </TextWrapper>\n )}\n </>\n ) : slide.type === \"PDF\" ? (\n <>\n <SlideEmbed src={slide.file} {...slideEmbedProps} />\n <SlideLink href={slide.file} target=\"_blank\" rel=\"noopener noreferrer\" {...slideLinkProps}>\n <ExternalLink size={24} color=\"#ffffff\" />\n <p>Open file in the new tab</p>\n </SlideLink>\n </>\n ) : (\n <>\n <ImageWrapper {...imageWrapperProps}>\n <SlideImage\n src={slide.image}\n alt={slide.alt}\n loading={idx === 0 ? \"eager\" : \"lazy\"}\n draggable={false}\n tabIndex={idx === currentSlide ? 0 : -1}\n {...slideImageProps}\n />\n </ImageWrapper>\n {(slide.title || slide.description) && (\n <TextWrapper {...textWrapperProps}>\n {slide.title && <SlideTitle {...slideTitleProps}>{slide.title}</SlideTitle>}\n {slide.description && (\n <SlideDescription {...slideDescriptionProps}>{slide.description}</SlideDescription>\n )}\n </TextWrapper>\n )}\n </>\n )}\n </SlideContent>\n </SlideItem>\n ))}\n </SlidesWrapper>\n </SliderWrapper>\n\n {slidesCount > 1 ? (\n <ImageSliderControls\n showArrows={showArrows}\n showDots={showDots}\n memoizedSlides={memoizedSlides}\n currentSlide={currentSlide}\n goToSlide={goToSlide}\n canGoPrev={canGoPrev}\n canGoNext={canGoNext}\n prev={prev}\n next={next}\n {...controlsProps}\n />\n ) : (\n <EmptyControls height={55} mt={2} {...emptyControlsProps} />\n )}\n </Root>\n );\n};\n\nImageSlider.displayName = \"ImageSlider\";\n","import { styled } from \"@mui/material/styles\";\nimport type { StyledComponent } from \"@emotion/styled\";\n\nexport const ImageSliderRoot: StyledComponent<{}, {}, {}> = styled(\"div\", {\n name: \"ImageSlider\",\n slot: \"Root\",\n})(() => ({\n width: \"100%\",\n height: \"100%\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n flex: 1,\n minHeight: 0,\n position: \"relative\",\n overflow: \"hidden\",\n boxSizing: \"border-box\",\n}));\n\nexport const ImageSliderSliderWrapper: StyledComponent<{}, {}, {}> = styled(\"div\", {\n name: \"ImageSlider\",\n slot: \"SliderWrapper\",\n})(() => ({\n flex: \"1 1 auto\",\n minHeight: 0,\n minWidth: 0,\n display: \"flex\",\n position: \"relative\",\n overflow: \"hidden\",\n width: \"100%\",\n height: \"100%\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n boxSizing: \"border-box\",\n\n \"@media (max-width: 768px)\": {\n minHeight: 0,\n minWidth: 0,\n },\n}));\n\nexport const ImageSliderSlidesWrapper: StyledComponent<{ $currentSlide: number; $transitionDuration: number }, {}, {}> =\n styled(\"div\", {\n name: \"ImageSlider\",\n slot: \"SlidesWrapper\",\n })<{ $currentSlide: number; $transitionDuration: number }>(({ $currentSlide, $transitionDuration }) => ({\n display: \"flex\",\n width: \"100%\",\n height: \"100%\",\n maxHeight: \"100%\",\n transform: `translateX(-${$currentSlide * 100}%)`,\n transition: `transform ${$transitionDuration}ms cubic-bezier(0.4, 0, 0.2, 1)`,\n willChange: \"transform\",\n position: \"relative\",\n }));\n\nexport const ImageSliderSlideItem: StyledComponent<{ $isActive: boolean }, {}, {}> = styled(\"div\", {\n name: \"ImageSlider\",\n slot: \"SlideItem\",\n})<{ $isActive: boolean }>(({ $isActive }) => ({\n minWidth: \"100%\",\n width: \"100%\",\n height: \"100%\",\n maxHeight: \"100%\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n opacity: $isActive ? 1 : 0.7,\n transition: \"opacity 0.3s\",\n padding: \"0\",\n overflow: \"hidden\",\n position: \"relative\",\n boxSizing: \"border-box\",\n\n \"@media (max-width: 768px)\": {\n padding: \"0\",\n },\n}));\n\nexport const ImageSliderSlideContent: StyledComponent<{}, {}, {}> = styled(\"div\", {\n name: \"ImageSlider\",\n slot: \"SlideContent\",\n})(() => ({\n width: \"100%\",\n height: \"100%\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: \"16px\",\n boxSizing: \"border-box\",\n overflowY: \"auto\",\n overflowX: \"hidden\",\n position: \"relative\",\n\n \"&::-webkit-scrollbar\": {\n width: \"6px\",\n },\n\n \"&::-webkit-scrollbar-track\": {\n background: \"transparent\",\n },\n\n \"&::-webkit-scrollbar-thumb\": {\n background: \"rgba(255, 255, 255, 0.3)\",\n borderRadius: \"3px\",\n\n \"&:hover\": {\n background: \"rgba(255, 255, 255, 0.5)\",\n },\n },\n}));\n\nexport const ImageSliderImageWrapper: StyledComponent<{}, {}, {}> = styled(\"div\", {\n name: \"ImageSlider\",\n slot: \"ImageWrapper\",\n})(() => ({\n flex: \"1 1 auto\",\n minHeight: \"0\",\n minWidth: \"0\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"100%\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n overflow: \"hidden\",\n position: \"relative\",\n}));\n\nexport const ImageSliderSlideImage: StyledComponent<{}, {}, {}> = styled(\"img\", {\n name: \"ImageSlider\",\n slot: \"SlideImage\",\n})(() => ({\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n width: \"100%\",\n height: \"100%\",\n objectFit: \"contain\",\n userSelect: \"none\",\n pointerEvents: \"none\",\n display: \"block\",\n position: \"relative\",\n\n \"@media (max-width: 768px)\": {\n maxWidth: \"95%\",\n maxHeight: \"95%\",\n },\n\n \"@media (max-width: 480px)\": {\n maxWidth: \"90%\",\n maxHeight: \"90%\",\n },\n\n \"@media (orientation: landscape) and (max-height: 600px)\": {\n maxHeight: \"85%\",\n },\n}));\n\nexport const ImageSliderTextWrapper: StyledComponent<{}, {}, {}> = styled(\"div\", {\n name: \"ImageSlider\",\n slot: \"TextWrapper\",\n})(() => ({\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n width: \"100%\",\n maxWidth: \"800px\",\n flexShrink: 0,\n gap: \"8px\",\n padding: \"0 16px\",\n boxSizing: \"border-box\",\n minWidth: \"0\",\n\n \"@media (max-width: 768px)\": {\n maxWidth: \"100%\",\n padding: \"0 8px\",\n gap: \"6px\",\n },\n\n \"@media (max-width: 480px)\": {\n padding: \"0 4px\",\n gap: \"4px\",\n },\n\n \"@media (orientation: landscape) and (max-height: 600px)\": {\n gap: \"4px\",\n padding: \"0 8px\",\n },\n}));\n\nexport const ImageSliderSlideTitle: StyledComponent<{}, {}, {}> = styled(\"h3\", {\n name: \"ImageSlider\",\n slot: \"SlideTitle\",\n})(() => ({\n fontWeight: 700,\n fontSize: \"clamp(20px, 4vw, 32px)\",\n lineHeight: \"1.4\",\n textAlign: \"center\",\n letterSpacing: \"0.01em\",\n color: \"#ffffff\",\n margin: 0,\n wordWrap: \"break-word\",\n overflowWrap: \"break-word\",\n\n \"@media (max-width: 768px)\": {\n fontSize: \"clamp(18px, 4.5vw, 24px)\",\n },\n\n \"@media (max-width: 480px)\": {\n fontSize: \"clamp(16px, 5vw, 20px)\",\n },\n\n \"@media (orientation: landscape) and (max-height: 600px)\": {\n fontSize: \"clamp(16px, 3vw, 22px)\",\n },\n}));\n\nexport const ImageSliderSlideDescription: StyledComponent<{}, {}, {}> = styled(\"p\", {\n name: \"ImageSlider\",\n slot: \"SlideDescription\",\n})(() => ({\n fontWeight: 400,\n fontSize: \"clamp(14px, 2.5vw, 16px)\",\n lineHeight: \"1.6\",\n textAlign: \"center\",\n color: \"#ffffff\",\n maxWidth: \"100%\",\n margin: 0,\n wordWrap: \"break-word\",\n overflowWrap: \"break-word\",\n\n \"@media (max-width: 768px)\": {\n fontSize: \"clamp(13px, 3vw, 15px)\",\n lineHeight: \"1.5\",\n },\n\n \"@media (max-width: 480px)\": {\n fontSize: \"clamp(12px, 3.5vw, 14px)\",\n },\n\n \"@media (orientation: landscape) and (max-height: 600px)\": {\n fontSize: \"clamp(12px, 2vw, 14px)\",\n lineHeight: \"1.4\",\n },\n}));\n\nexport const ImageSliderSlideIframe: StyledComponent<{}, {}, {}> = styled(\"iframe\", {\n name: \"ImageSlider\",\n slot: \"SlideIframe\",\n})(() => ({\n width: \"100%\",\n height: \"100%\",\n minHeight: \"400px\",\n display: \"block\",\n margin: \"0 auto\",\n borderRadius: \"10px\",\n border: 0,\n backgroundColor: \"transparent\",\n}));\n\nexport const ImageSliderSlideEmbed: StyledComponent<{}, {}, {}> = styled(\"embed\", {\n name: \"ImageSlider\",\n slot: \"SlideEmbed\",\n})(() => ({\n width: \"100%\",\n height: \"100%\",\n display: \"block\",\n margin: \"0 auto\",\n borderRadius: \"10px\",\n\n \"@media (max-width: 640px), (max-width: 900px) and (orientation: landscape)\": {\n display: \"none\",\n },\n}));\n\nexport const ImageSliderSlideLink: StyledComponent<{}, {}, {}> = styled(\"a\", {\n name: \"ImageSlider\",\n slot: \"SlideLink\",\n})(() => ({\n display: \"none\",\n backgroundColor: \"#00263E\",\n border: `2px solid #00263E`,\n color: \"#ffffff\",\n padding: \"8px 16px\",\n borderRadius: \"8px\",\n columnGap: \"12px\",\n flexFlow: \"row nowrap\",\n alignItems: \"center\",\n fontWeight: 400,\n fontSize: \"clamp(14px, 2.5vw, 16px)\",\n lineHeight: \"1.6\",\n\n \"@media (max-width: 640px), (max-width: 900px) and (orientation: landscape)\": {\n display: \"flex\",\n },\n\n \"& path\": {\n stroke: \"#ffffff\",\n },\n}));\n","import { memo, useMemo } from \"react\";\nimport { getSlotSx } from \"@zipkito/shared\";\nimport { ArrowLeftIcon, ArrowRightIcon } from \"lucide-react\";\n\nimport {\n ImageSliderControlsDot,\n ImageSliderControlsDotsWrapper,\n ImageSliderControlsRoot,\n} from \"./ImageSliderControls.styled\";\nimport { ArrowButton } from \"../ArrowButton\";\nimport type { ImageSliderControlsProps } from \"./ImageSliderControls.types\";\n\nexport const ImageSliderControls = memo((props: ImageSliderControlsProps) => {\n const {\n showArrows,\n showDots,\n memoizedSlides,\n currentSlide,\n canGoPrev,\n canGoNext,\n prev,\n next,\n goToSlide,\n slots = {},\n slotProps = {},\n sx,\n } = props;\n\n const Root = slots.root ?? ImageSliderControlsRoot;\n const DotsWrapper = slots.dotsWrapper ?? ImageSliderControlsDotsWrapper;\n const Dot = slots.dot ?? ImageSliderControlsDot;\n const LeftArrow = slots.leftArrow;\n const RightArrow = slots.rightArrow;\n\n const rootProps = useMemo(\n () => ({\n ...slotProps.root,\n sx: getSlotSx(\"root\", sx),\n }),\n [slotProps.root, sx]\n );\n\n const dotsWrapperProps = useMemo(\n () => ({\n ...slotProps.dotsWrapper,\n sx: getSlotSx(\"dotsWrapper\", sx),\n }),\n [slotProps.dotsWrapper, sx]\n );\n\n const dotProps = useMemo(\n () => ({\n ...slotProps.dot,\n sx: getSlotSx(\"dot\", sx),\n }),\n [slotProps.dot, sx]\n );\n\n const leftArrowProps = useMemo(\n () => ({\n ...slotProps.leftArrow,\n sx: getSlotSx(\"leftArrow\", sx),\n }),\n [slotProps.leftArrow, sx]\n );\n\n const rightArrowProps = useMemo(\n () => ({\n ...slotProps.rightArrow,\n sx: getSlotSx(\"rightArrow\", sx),\n }),\n [slotProps.rightArrow, sx]\n );\n\n return (\n <Root {...rootProps}>\n {showArrows && LeftArrow ? (\n <LeftArrow disabled={!canGoPrev} onClick={prev} {...leftArrowProps} />\n ) : (\n <ArrowButton disabled={!canGoPrev} onClick={prev} {...leftArrowProps}>\n <ArrowLeftIcon size={24} />\n </ArrowButton>\n )}\n\n {showDots && (\n <DotsWrapper {...dotsWrapperProps}>\n {memoizedSlides.map((_, i) => (\n <Dot\n key={i}\n $active={i === currentSlide}\n onClick={() => goToSlide(i)}\n role=\"button\"\n onKeyDown={(e: KeyboardEvent) => e.key === \"Enter\" || (e.key === \" \" && goToSlide(i))}\n {...dotProps}\n />\n ))}\n </DotsWrapper>\n )}\n\n {showArrows && RightArrow ? (\n <RightArrow disabled={!canGoNext} onClick={next} {...rightArrowProps} />\n ) : (\n <ArrowButton disabled={!canGoNext} onClick={next} {...rightArrowProps}>\n <ArrowRightIcon size={24} />\n </ArrowButton>\n )}\n </Root>\n );\n});\n\nImageSliderControls.displayName = \"ImageSliderControls\";\n","import { styled } from \"@mui/material/styles\";\nimport type { StyledComponent } from \"@emotion/styled\";\n\nexport const ImageSliderControlsRoot: StyledComponent<{}, {}, {}> = styled(\"div\", {\n name: \"ImageSliderControls\",\n slot: \"Root\",\n})(() => ({\n width: \"100%\",\n height: \"55px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: \"16px\",\n marginTop: \"16px\",\n flexShrink: 0,\n padding: \"0 8px\",\n\n \"@media (max-width: 768px)\": {\n gap: \"12px\",\n marginTop: \"12px\",\n },\n\n \"@media (max-width: 480px)\": {\n gap: \"8px\",\n marginTop: \"8px\",\n },\n}));\n\nexport const ImageSliderControlsDotsWrapper: StyledComponent<{}, {}, {}> = styled(\"div\", {\n name: \"ImageSliderControls\",\n slot: \"DotsWrapper\",\n})(() => ({\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: \"10px\",\n}));\n\nexport const ImageSliderControlsDot: StyledComponent<{ $active: boolean }, {}, {}> = styled(\"div\", {\n name: \"ImageSliderControls\",\n slot: \"Dot\",\n})<{ $active: boolean }>(({ $active }) => ({\n width: $active ? \"12px\" : \"8px\",\n height: $active ? \"12px\" : \"8px\",\n background: $active ? \"#fff\" : \"#5b5b5b\",\n borderRadius: \"50%\",\n cursor: \"pointer\",\n transition: \"0.2s\",\n outline: \"none\",\n \"&:focus\": { boxShadow: \"0 0 0 2px #fff\" },\n}));\n","import { IconButton } from \"@mui/material\";\nimport { ComponentProps, memo } from \"react\";\n\nexport const ArrowButton = memo(({ children, ...props }: ComponentProps<typeof IconButton>) => (\n <IconButton {...props} color=\"default\">\n {children}\n </IconButton>\n));\n\nArrowButton.displayName = \"ArrowButton\";\n","import { styled } from \"@mui/material/styles\";\nimport type { StyledComponent } from \"@emotion/styled\";\n\nexport const SlideGalleryRoot: StyledComponent<{}, {}, {}> = styled(\"div\", {\n name: \"SlideGallery\",\n slot: \"Root\",\n})(() => ({\n flex: 1,\n minHeight: 0,\n display: \"flex\",\n width: \"100%\",\n padding: \"16px\",\n borderRadius: \"16px\",\n}));\n","import { memo, useMemo } from \"react\";\nimport { Overlay } from \"@zipkito/shared\";\n\nimport { IframeGalleryFrame } from \"./IframeGallery.styled\";\nimport type { IframeGalleryProps } from \"./IframeGallery.types\";\n\nexport const IframeGallery = memo((props: IframeGalleryProps) => {\n const { gallery, actions, slots = {}, slotProps = {}, overlayProps = {}, sx } = props;\n\n const src = useMemo(() => gallery?.path, [gallery?.path]);\n\n if (!gallery.visible || !src) return null;\n\n const Frame = slots.frame ?? IframeGalleryFrame;\n\n return (\n <Overlay visible={gallery.visible} {...overlayProps}>\n <Frame src={src} sx={sx} loading=\"lazy\" {...slotProps.frame} />\n {actions}\n </Overlay>\n );\n});\n\nIframeGallery.displayName = \"IframeGallery\";\n","import { styled } from \"@mui/material/styles\";\nimport type { StyledComponent } from \"@emotion/styled\";\n\nexport const IframeGalleryFrame: StyledComponent<{}, {}, {}> = styled(\"iframe\", {\n name: \"IframeGallery\",\n slot: \"Frame\",\n})(() => ({\n border: 0,\n width: \"100%\",\n height: \"100%\",\n display: \"block\",\n background: \"transparent\",\n borderRadius: 16,\n boxShadow: \"0 12px 30px rgba(0, 0, 0, 0.25)\",\n}));\n","import { SlideGallerySlide } from \"./slides\";\n\nexport const GALLERY_TYPE = {\n Slide: \"slide\",\n MDX: \"mdx\",\n Iframe: \"iframe\",\n} as const;\n\nexport interface WithVisibility {\n visible: boolean;\n originalIndex: number;\n type: (typeof GALLERY_TYPE)[keyof typeof GALLERY_TYPE];\n}\n\nexport interface MDXGalleryType extends WithVisibility {\n file?: string;\n}\n\nexport interface SlideGalleryType extends WithVisibility {\n slides: SlideGallerySlide[];\n}\n\nexport interface IframeGalleryType extends WithVisibility {\n path?: string;\n}\n"],"mappings":"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","names":["memo","useMemo","getSlotSx","Overlay","getSlotSx","useState","useMemo","useEffect","styled","memo","useMemo","getSlotSx","styled","memo","jsx","jsx","jsxs","memo","useMemo","getSlotSx","jsx","jsxs","useState","useEffect","prev","useMemo","getSlotSx","styled","jsx","jsxs","memo","useMemo","getSlotSx","Overlay","memo","useMemo","Overlay","styled","jsx","jsxs","memo","useMemo","Overlay"]}
|
|
1
|
+
{"version":3,"sources":["../src/MDXGallery/MDXGallery.tsx","../src/MDXGallery/MDXGallery.styled.ts","../src/SlideGallery/SlideGallery.tsx","../src/ImageSlider/ImageSlider.tsx","../src/ImageSlider/ImageSlider.styled.ts","../src/ImageSlider/components/ImageSliderControls/ImageSliderControls.tsx","../src/ImageSlider/components/ImageSliderControls/ImageSliderControls.styled.ts","../src/ImageSlider/components/ArrowButton/ArrowButton.tsx","../src/SlideGallery/SlideGallery.styled.ts","../src/IframeGallery/IframeGallery.tsx","../src/IframeGallery/IframeGallery.styled.ts","../src/types/galleries.ts"],"sourcesContent":["import * as runtime from \"react/jsx-runtime\";\nimport { compile, run } from \"@mdx-js/mdx\";\nimport { getSlotSx, Overlay } from \"@zipkito/shared\";\nimport { Container as MuiContainer } from \"@mui/material\";\nimport { memo, useEffect, useMemo, useState, type FC } from \"react\";\n\nimport type { MDXGalleryProps } from \"./MDXGallery.types\";\nimport { MDXGalleryErrorMessage, MDXGalleryLoadingMessage, MDXGalleryRoot } from \"./MDXGallery.styled\";\n\ntype LoadStatus = \"idle\" | \"loading\" | \"error\" | \"ready\";\n\nexport const MDXGallery = memo((props: MDXGalleryProps) => {\n const { gallery, mdxContext, actions, slots = {}, slotProps = {}, overlayProps = {}, sx } = props;\n\n const [Content, setContent] = useState<FC | null>(null);\n const [status, setStatus] = useState<LoadStatus>(\"idle\");\n const [error, setError] = useState<string | null>(null);\n\n useEffect(() => {\n if (!gallery.visible || !gallery.file) {\n setStatus(\"idle\");\n setContent(null);\n setError(null);\n return;\n }\n\n let cancelled = false;\n\n const load = async () => {\n try {\n setStatus(\"loading\");\n setError(null);\n\n const source = await mdxContext.loadSource(gallery.file!);\n\n const compiled = await compile(source, {\n outputFormat: \"function-body\",\n providerImportSource: \"@mdx-js/react\",\n });\n\n const evaluated = await run(String(compiled), {\n ...runtime,\n\n useMDXComponents: () => mdxContext.components ?? {},\n });\n\n if (!cancelled && typeof evaluated.default === \"function\") {\n setContent(() => evaluated.default as FC);\n setStatus(\"ready\");\n }\n } catch (err: unknown) {\n if (!cancelled) {\n setError(err instanceof Error ? err.message : \"Failed to load MDX\");\n setStatus(\"error\");\n }\n }\n };\n\n load();\n return () => {\n cancelled = true;\n };\n }, [gallery.file, gallery.visible, mdxContext]);\n\n if (!gallery.visible) return null;\n\n const Root = slots.root ?? MDXGalleryRoot;\n const Container = slots.container ?? MuiContainer;\n const LoadingMessage = slots.loadingMessage ?? MDXGalleryLoadingMessage;\n const ErrorMessage = slots.errorMessage ?? MDXGalleryErrorMessage;\n\n const rootProps = useMemo(\n () => ({\n ...slotProps.root,\n sx: getSlotSx(\"root\", sx),\n }),\n [slotProps.root, sx]\n );\n\n const containerProps = useMemo(\n () => ({\n ...slotProps.container,\n sx: getSlotSx(\"container\", sx),\n }),\n [slotProps.container, sx]\n );\n\n const loadingMessageProps = useMemo(\n () => ({\n ...slotProps.loadingMessage,\n sx: getSlotSx(\"loadingMessage\", sx),\n }),\n [slotProps.loadingMessage, sx]\n );\n\n const errorMessageProps = useMemo(\n () => ({\n ...slotProps.errorMessage,\n sx: getSlotSx(\"errorMessage\", sx),\n }),\n [slotProps.errorMessage, sx]\n );\n\n return (\n <Overlay visible={gallery.visible} {...overlayProps}>\n <Root {...rootProps}>\n <Container maxWidth=\"xl\" {...containerProps}>\n {status === \"loading\" && (\n <LoadingMessage variant=\"subh2\" {...loadingMessageProps}>\n Loading content...\n </LoadingMessage>\n )}\n\n {status === \"error\" && (\n <ErrorMessage variant=\"subh2\" {...errorMessageProps}>\n Error loading content: {error}\n </ErrorMessage>\n )}\n\n {status === \"ready\" && Content && <Content />}\n </Container>\n </Root>\n {actions}\n </Overlay>\n );\n});\n\nMDXGallery.displayName = \"MDXGallery\";\n","import { styled } from \"@mui/material/styles\";\nimport type { StyledComponent } from \"@emotion/styled\";\nimport { Typography, type TypographyProps } from \"@mui/material\";\n\nexport const MDXGalleryRoot: StyledComponent<{}, {}, {}> = styled(\"div\", {\n name: \"MDXGallery\",\n slot: \"Root\",\n})(({ theme }) => ({\n height: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n padding: \"24px\",\n background: \"radial-gradient(circle at top, rgba(255, 255, 255, 0.08), transparent 45%)\",\n scrollbarGutter: \"stable\",\n scrollbarColor: `${theme.palette.primary.main} rgba(255, 255, 255, 0.3)`,\n scrollbarWidth: \"thin\",\n position: \"relative\",\n overflowX: \"hidden\",\n overflowY: \"auto\",\n}));\n\nexport const MDXGalleryLoadingMessage: StyledComponent<TypographyProps, {}, {}> = styled(Typography, {\n name: \"MDXGallery\",\n slot: \"LoadingMessage\",\n})(() => ({\n textAlign: \"center\",\n padding: \"40px\",\n color: \"#666\",\n}));\n\nexport const MDXGalleryErrorMessage: StyledComponent<TypographyProps, {}, {}> = styled(Typography, {\n name: \"MDXGallery\",\n slot: \"ErrorMessage\",\n})(() => ({\n textAlign: \"center\",\n padding: \"40px\",\n color: \"#d32f2f\",\n}));\n","import { memo, useMemo } from \"react\";\nimport { getSlotSx, Overlay } from \"@zipkito/shared\";\n\nimport { ImageSlider } from \"../ImageSlider\";\nimport { SlideGalleryRoot } from \"./SlideGallery.styled\";\nimport type { SlideGalleryProps } from \"./SlideGallery.types\";\n\nexport const SlideGallery = memo((props: SlideGalleryProps) => {\n const { gallery, actions, slots = {}, slotProps = {}, imageSliderProps, controlsProps, overlayProps, sx } = props;\n\n const slides = useMemo(\n () =>\n gallery.slides.map((slide, idx) => ({\n ...slide,\n alt: slide.title ?? `Slide ${idx + 1}`,\n })),\n [gallery.slides]\n );\n\n if (!gallery.visible || slides.length === 0) return null;\n\n const Root = slots.root ?? SlideGalleryRoot;\n\n const rootProps = useMemo(\n () => ({\n ...slotProps.root,\n sx: getSlotSx(\"root\", sx),\n }),\n [slotProps.root, sx]\n );\n\n return (\n <Overlay visible={gallery.visible} {...overlayProps}>\n <Root {...rootProps}>\n <ImageSlider slides={slides} {...imageSliderProps} controlsProps={controlsProps} />\n </Root>\n {actions}\n </Overlay>\n );\n});\n\nSlideGallery.displayName = \"SlideGallery\";\n","import { Box } from \"@mui/material\";\nimport { ExternalLink } from \"lucide-react\";\nimport { getSlotSx } from \"@zipkito/shared\";\nimport { useState, useRef, useCallback, useMemo, useEffect } from \"react\";\n\nimport {\n ImageSliderSlideLink,\n ImageSliderSlideEmbed,\n ImageSliderSlideIframe,\n ImageSliderIframeWrapper,\n ImageSliderSlideDescription,\n ImageSliderSlideImage,\n ImageSliderSlideTitle,\n ImageSliderTextWrapper,\n ImageSliderImageWrapper,\n ImageSliderSlideItem,\n ImageSliderRoot,\n ImageSliderSlidesWrapper,\n ImageSliderSliderWrapper,\n ImageSliderSlideContent,\n} from \"./ImageSlider.styled\";\nimport type { ImageSliderProps } from \"./ImageSlider.types\";\nimport { ImageSliderControls } from \"./components/ImageSliderControls\";\n\nexport const ImageSlider = (props: ImageSliderProps) => {\n const {\n loop = false,\n showDots = true,\n showArrows = true,\n slides,\n className,\n transitionDuration = 500,\n onSlideChange,\n slots = {},\n slotProps = {},\n controlsProps = {},\n sx,\n } = props;\n\n const isTransitioningRef = useRef(false);\n const slidesWrapperRef = useRef<HTMLDivElement>(null);\n\n const [, forceUpdate] = useState(0);\n const [currentSlide, setCurrentSlide] = useState(0);\n\n const slidesCount = slides.length;\n\n const canGoNext = loop || currentSlide < slidesCount - 1;\n const canGoPrev = loop || currentSlide > 0;\n\n const goToSlide = useCallback(\n (index: number) => {\n if (isTransitioningRef.current || index === currentSlide || slidesCount === 0) return;\n\n let newIndex = index;\n\n if (loop) {\n if (index < 0) newIndex = slidesCount - 1;\n if (index >= slidesCount) newIndex = 0;\n }\n\n if (newIndex < 0 || newIndex >= slidesCount) return;\n\n isTransitioningRef.current = true;\n setCurrentSlide(newIndex);\n onSlideChange?.(newIndex);\n\n setTimeout(() => {\n isTransitioningRef.current = false;\n }, transitionDuration);\n },\n [currentSlide, slidesCount, transitionDuration, onSlideChange, loop]\n );\n\n const next = useCallback(() => goToSlide(currentSlide + 1), [currentSlide, goToSlide]);\n const prev = useCallback(() => goToSlide(currentSlide - 1), [currentSlide, goToSlide]);\n\n useEffect(() => {\n const handleResize = () => forceUpdate((prev) => prev + 1);\n window.addEventListener(\"resize\", handleResize);\n return () => window.removeEventListener(\"resize\", handleResize);\n }, []);\n\n useEffect(() => {\n const onKey = (e: KeyboardEvent) => {\n if (e.key === \"ArrowLeft\") prev();\n if (e.key === \"ArrowRight\") next();\n };\n window.addEventListener(\"keydown\", onKey);\n return () => window.removeEventListener(\"keydown\", onKey);\n }, [prev, next]);\n\n useEffect(() => {\n const wrapper = slidesWrapperRef.current;\n if (!wrapper) return;\n\n let startX: number | null = null;\n\n const onTouchStart = (e: TouchEvent) => {\n startX = e.touches[0].clientX;\n };\n const onTouchEnd = (e: TouchEvent) => {\n if (startX === null) return;\n const deltaX = e.changedTouches[0].clientX - startX;\n if (Math.abs(deltaX) > 50) {\n if (deltaX > 0) prev();\n else next();\n }\n startX = null;\n };\n wrapper.addEventListener(\"touchstart\", onTouchStart);\n wrapper.addEventListener(\"touchend\", onTouchEnd);\n return () => {\n wrapper.removeEventListener(\"touchstart\", onTouchStart);\n wrapper.removeEventListener(\"touchend\", onTouchEnd);\n };\n }, [prev, next]);\n\n const memoizedSlides = useMemo(() => slides, [slides]);\n\n if (slidesCount === 0) return null;\n\n const Root = slots.root ?? ImageSliderRoot;\n const SliderWrapper = slots.sliderWrapper ?? ImageSliderSliderWrapper;\n const SlidesWrapper = slots.slidesWrapper ?? ImageSliderSlidesWrapper;\n const SlideItem = slots.slideItem ?? ImageSliderSlideItem;\n const SlideContent = slots.slideContent ?? ImageSliderSlideContent;\n const ImageWrapper = slots.imageWrapper ?? ImageSliderImageWrapper;\n const SlideImage = slots.slideImage ?? ImageSliderSlideImage;\n const TextWrapper = slots.textWrapper ?? ImageSliderTextWrapper;\n const SlideTitle = slots.slideTitle ?? ImageSliderSlideTitle;\n const SlideDescription = slots.slideDescription ?? ImageSliderSlideDescription;\n const SlideEmbed = slots.slideEmbed ?? ImageSliderSlideEmbed;\n const SlideIframe = slots.slideIframe ?? ImageSliderSlideIframe;\n const IframeWrapper = slots.iframeWrapper ?? ImageSliderIframeWrapper;\n const SlideLink = slots.slideLink ?? ImageSliderSlideLink;\n const EmptyControls =\n slots.emptyControls ?? (({ height, mt }: { height: number; mt: number }) => <Box height={height} mt={mt} />);\n\n const rootProps = useMemo(\n () => ({\n ...slotProps.root,\n sx: getSlotSx(\"root\", sx),\n }),\n [slotProps.root, sx]\n );\n\n const sliderWrapperProps = useMemo(\n () => ({\n ...slotProps.sliderWrapper,\n sx: getSlotSx(\"sliderWrapper\", sx),\n }),\n [slotProps.sliderWrapper, sx]\n );\n\n const slidesWrapperProps = useMemo(\n () => ({\n ...slotProps.slidesWrapper,\n sx: getSlotSx(\"slidesWrapper\", sx),\n }),\n [slotProps.slidesWrapper, sx]\n );\n\n const slideItemProps = useMemo(\n () => ({\n ...slotProps.slideItem,\n sx: getSlotSx(\"slideItem\", sx),\n }),\n [slotProps.slideItem, sx]\n );\n\n const slideContentProps = useMemo(\n () => ({\n ...slotProps.slideContent,\n sx: getSlotSx(\"slideContent\", sx),\n }),\n [slotProps.slideContent, sx]\n );\n\n const imageWrapperProps = useMemo(\n () => ({\n ...slotProps.imageWrapper,\n sx: getSlotSx(\"imageWrapper\", sx),\n }),\n [slotProps.imageWrapper, sx]\n );\n\n const slideImageProps = useMemo(\n () => ({\n ...slotProps.slideImage,\n sx: getSlotSx(\"slideImage\", sx),\n }),\n [slotProps.slideImage, sx]\n );\n\n const textWrapperProps = useMemo(\n () => ({\n ...slotProps.textWrapper,\n sx: getSlotSx(\"textWrapper\", sx),\n }),\n [slotProps.textWrapper, sx]\n );\n\n const slideTitleProps = useMemo(\n () => ({\n ...slotProps.slideTitle,\n sx: getSlotSx(\"slideTitle\", sx),\n }),\n [slotProps.slideTitle, sx]\n );\n\n const slideDescriptionProps = useMemo(\n () => ({\n ...slotProps.slideDescription,\n sx: getSlotSx(\"slideDescription\", sx),\n }),\n [slotProps.slideDescription, sx]\n );\n\n const slideEmbedProps = useMemo(\n () => ({\n ...slotProps.slideEmbed,\n sx: getSlotSx(\"slideEmbed\", sx),\n }),\n [slotProps.slideEmbed, sx]\n );\n\n const slideIframeProps = useMemo(\n () => ({\n ...slotProps.slideIframe,\n sx: getSlotSx(\"slideIframe\", sx),\n }),\n [slotProps.slideIframe, sx]\n );\n\n const iframeWrapperProps = useMemo(\n () => ({\n ...slotProps.iframeWrapper,\n sx: getSlotSx(\"iframeWrapper\", sx),\n }),\n [slotProps.iframeWrapper, sx]\n );\n\n const slideLinkProps = useMemo(\n () => ({\n ...slotProps.slideLink,\n sx: getSlotSx(\"slideLink\", sx),\n }),\n [slotProps.slideLink, sx]\n );\n\n const emptyControlsProps = useMemo(\n () => ({\n ...slotProps.emptyControls,\n sx: getSlotSx(\"emptyControls\", sx),\n }),\n [slotProps.emptyControls, sx]\n );\n\n return (\n <Root className={className} {...rootProps}>\n <SliderWrapper {...sliderWrapperProps}>\n <SlidesWrapper\n {...slidesWrapperProps}\n ref={slidesWrapperRef}\n $currentSlide={currentSlide}\n $transitionDuration={transitionDuration}\n >\n {memoizedSlides.map((slide, idx) => (\n <SlideItem {...slideItemProps} key={idx} $isActive={idx === currentSlide}>\n <SlideContent {...slideContentProps}>\n {slide.type === \"Iframe\" ? (\n <>\n <IframeWrapper {...iframeWrapperProps}>\n <SlideIframe\n src={slide.iframe ?? slide.file ?? \"\"}\n title={slide.title ?? slide.alt}\n loading=\"lazy\"\n {...slideIframeProps}\n />\n </IframeWrapper>\n {(slide.title || slide.description) && (\n <TextWrapper {...textWrapperProps}>\n {slide.title && <SlideTitle {...slideTitleProps}>{slide.title}</SlideTitle>}\n {slide.description && (\n <SlideDescription {...slideDescriptionProps}>{slide.description}</SlideDescription>\n )}\n </TextWrapper>\n )}\n </>\n ) : slide.type === \"PDF\" ? (\n <>\n <SlideEmbed src={slide.file} {...slideEmbedProps} />\n <SlideLink href={slide.file} target=\"_blank\" rel=\"noopener noreferrer\" {...slideLinkProps}>\n <ExternalLink size={24} color=\"#ffffff\" />\n <p>Open file in the new tab</p>\n </SlideLink>\n </>\n ) : (\n <>\n <ImageWrapper {...imageWrapperProps}>\n <SlideImage\n src={slide.image}\n alt={slide.alt}\n loading={idx === 0 ? \"eager\" : \"lazy\"}\n draggable={false}\n tabIndex={idx === currentSlide ? 0 : -1}\n {...slideImageProps}\n />\n </ImageWrapper>\n {(slide.title || slide.description) && (\n <TextWrapper {...textWrapperProps}>\n {slide.title && <SlideTitle {...slideTitleProps}>{slide.title}</SlideTitle>}\n {slide.description && (\n <SlideDescription {...slideDescriptionProps}>{slide.description}</SlideDescription>\n )}\n </TextWrapper>\n )}\n </>\n )}\n </SlideContent>\n </SlideItem>\n ))}\n </SlidesWrapper>\n </SliderWrapper>\n\n {slidesCount > 1 ? (\n <ImageSliderControls\n showArrows={showArrows}\n showDots={showDots}\n memoizedSlides={memoizedSlides}\n currentSlide={currentSlide}\n goToSlide={goToSlide}\n canGoPrev={canGoPrev}\n canGoNext={canGoNext}\n prev={prev}\n next={next}\n {...controlsProps}\n />\n ) : (\n <EmptyControls height={55} mt={2} {...emptyControlsProps} />\n )}\n </Root>\n );\n};\n\nImageSlider.displayName = \"ImageSlider\";\n","import { styled } from \"@mui/material/styles\";\nimport type { StyledComponent } from \"@emotion/styled\";\n\nexport const ImageSliderRoot: StyledComponent<{}, {}, {}> = styled(\"div\", {\n name: \"ImageSlider\",\n slot: \"Root\",\n})(() => ({\n width: \"100%\",\n height: \"100%\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n flex: 1,\n minHeight: 0,\n position: \"relative\",\n overflow: \"hidden\",\n boxSizing: \"border-box\",\n}));\n\nexport const ImageSliderSliderWrapper: StyledComponent<{}, {}, {}> = styled(\"div\", {\n name: \"ImageSlider\",\n slot: \"SliderWrapper\",\n})(() => ({\n flex: \"1 1 auto\",\n minHeight: 0,\n minWidth: 0,\n display: \"flex\",\n position: \"relative\",\n overflow: \"hidden\",\n width: \"100%\",\n height: \"100%\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n boxSizing: \"border-box\",\n}));\n\nexport const ImageSliderSlidesWrapper: StyledComponent<{ $currentSlide: number; $transitionDuration: number }, {}, {}> =\n styled(\"div\", {\n name: \"ImageSlider\",\n slot: \"SlidesWrapper\",\n shouldForwardProp: (propName: string) => !propName.startsWith(\"$\"),\n })<{ $currentSlide: number; $transitionDuration: number }>(({ $currentSlide, $transitionDuration }) => ({\n display: \"flex\",\n width: \"100%\",\n height: \"100%\",\n maxHeight: \"100%\",\n transform: `translateX(-${$currentSlide * 100}%)`,\n transition: `transform ${$transitionDuration}ms cubic-bezier(0.4, 0, 0.2, 1)`,\n willChange: \"transform\",\n position: \"relative\",\n }));\n\nexport const ImageSliderSlideItem: StyledComponent<{ $isActive: boolean }, {}, {}> = styled(\"div\", {\n name: \"ImageSlider\",\n slot: \"SlideItem\",\n shouldForwardProp: (propName: string) => !propName.startsWith(\"$\"),\n})<{ $isActive: boolean }>(({ $isActive }) => ({\n minWidth: \"100%\",\n width: \"100%\",\n height: \"100%\",\n maxHeight: \"100%\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n opacity: $isActive ? 1 : 0.7,\n transition: \"opacity 0.3s\",\n padding: \"0\",\n overflow: \"hidden\",\n position: \"relative\",\n boxSizing: \"border-box\",\n\n \"@media (max-width: 768px)\": {\n padding: \"0\",\n },\n}));\n\nexport const ImageSliderSlideContent: StyledComponent<{}, {}, {}> = styled(\"div\", {\n name: \"ImageSlider\",\n slot: \"SlideContent\",\n})(() => ({\n width: \"100%\",\n height: \"100%\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: \"16px\",\n boxSizing: \"border-box\",\n overflowY: \"auto\",\n overflowX: \"hidden\",\n position: \"relative\",\n\n \"&::-webkit-scrollbar\": {\n width: \"6px\",\n },\n\n \"&::-webkit-scrollbar-track\": {\n background: \"transparent\",\n },\n\n \"&::-webkit-scrollbar-thumb\": {\n background: \"rgba(255, 255, 255, 0.3)\",\n borderRadius: \"3px\",\n\n \"&:hover\": {\n background: \"rgba(255, 255, 255, 0.5)\",\n },\n },\n}));\n\nexport const ImageSliderImageWrapper: StyledComponent<{}, {}, {}> = styled(\"div\", {\n name: \"ImageSlider\",\n slot: \"ImageWrapper\",\n})(() => ({\n flex: \"1 1 auto\",\n minHeight: \"0\",\n minWidth: \"0\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"100%\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n overflow: \"hidden\",\n position: \"relative\",\n}));\n\nexport const ImageSliderSlideImage: StyledComponent<{}, {}, {}> = styled(\"img\", {\n name: \"ImageSlider\",\n slot: \"SlideImage\",\n})(() => ({\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n width: \"100%\",\n height: \"100%\",\n objectFit: \"contain\",\n userSelect: \"none\",\n pointerEvents: \"none\",\n display: \"block\",\n position: \"relative\",\n\n \"@media (max-width: 768px)\": {\n maxWidth: \"95%\",\n maxHeight: \"95%\",\n },\n\n \"@media (max-width: 480px)\": {\n maxWidth: \"90%\",\n maxHeight: \"90%\",\n },\n\n \"@media (orientation: landscape) and (max-height: 600px)\": {\n maxHeight: \"85%\",\n },\n}));\n\nexport const ImageSliderTextWrapper: StyledComponent<{}, {}, {}> = styled(\"div\", {\n name: \"ImageSlider\",\n slot: \"TextWrapper\",\n})(() => ({\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n width: \"100%\",\n maxWidth: \"800px\",\n flexShrink: 0,\n gap: \"8px\",\n padding: \"0 16px\",\n boxSizing: \"border-box\",\n minWidth: \"0\",\n\n \"@media (max-width: 768px)\": {\n maxWidth: \"100%\",\n padding: \"0 8px\",\n gap: \"6px\",\n },\n\n \"@media (max-width: 480px)\": {\n padding: \"0 4px\",\n gap: \"4px\",\n },\n\n \"@media (orientation: landscape) and (max-height: 600px)\": {\n gap: \"4px\",\n padding: \"0 8px\",\n },\n}));\n\nexport const ImageSliderSlideTitle: StyledComponent<{}, {}, {}> = styled(\"h3\", {\n name: \"ImageSlider\",\n slot: \"SlideTitle\",\n})(() => ({\n fontWeight: 700,\n fontSize: \"clamp(20px, 4vw, 32px)\",\n lineHeight: \"1.4\",\n textAlign: \"center\",\n letterSpacing: \"0.01em\",\n color: \"#ffffff\",\n margin: 0,\n wordWrap: \"break-word\",\n overflowWrap: \"break-word\",\n\n \"@media (max-width: 768px)\": {\n fontSize: \"clamp(18px, 4.5vw, 24px)\",\n },\n\n \"@media (max-width: 480px)\": {\n fontSize: \"clamp(16px, 5vw, 20px)\",\n },\n\n \"@media (orientation: landscape) and (max-height: 600px)\": {\n fontSize: \"clamp(16px, 3vw, 22px)\",\n },\n}));\n\nexport const ImageSliderSlideDescription: StyledComponent<{}, {}, {}> = styled(\"p\", {\n name: \"ImageSlider\",\n slot: \"SlideDescription\",\n})(() => ({\n fontWeight: 400,\n fontSize: \"clamp(14px, 2.5vw, 16px)\",\n lineHeight: \"1.6\",\n textAlign: \"center\",\n color: \"#ffffff\",\n maxWidth: \"100%\",\n margin: 0,\n wordWrap: \"break-word\",\n overflowWrap: \"break-word\",\n\n \"@media (max-width: 768px)\": {\n fontSize: \"clamp(13px, 3vw, 15px)\",\n lineHeight: \"1.5\",\n },\n\n \"@media (max-width: 480px)\": {\n fontSize: \"clamp(12px, 3.5vw, 14px)\",\n },\n\n \"@media (orientation: landscape) and (max-height: 600px)\": {\n fontSize: \"clamp(12px, 2vw, 14px)\",\n lineHeight: \"1.4\",\n },\n}));\n\nexport const ImageSliderIframeWrapper: StyledComponent<{}, {}, {}> = styled(\"div\", {\n name: \"ImageSlider\",\n slot: \"IframeWrapper\",\n})(() => ({\n flex: \"1 1 auto\",\n minHeight: \"0\",\n minWidth: \"0\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"100%\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n overflow: \"hidden\",\n position: \"relative\",\n}));\n\nexport const ImageSliderSlideIframe: StyledComponent<{}, {}, {}> = styled(\"iframe\", {\n name: \"ImageSlider\",\n slot: \"SlideIframe\",\n})(() => ({\n width: \"100%\",\n height: \"100%\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n display: \"block\",\n position: \"relative\",\n border: 0,\n background: \"transparent\",\n borderRadius: 10,\n}));\n\nexport const ImageSliderSlideEmbed: StyledComponent<{}, {}, {}> = styled(\"embed\", {\n name: \"ImageSlider\",\n slot: \"SlideEmbed\",\n})(() => ({\n width: \"100%\",\n height: \"100%\",\n display: \"block\",\n margin: \"0 auto\",\n borderRadius: \"10px\",\n\n \"@media (max-width: 640px), (max-width: 900px) and (orientation: landscape)\": {\n display: \"none\",\n },\n}));\n\nexport const ImageSliderSlideLink: StyledComponent<{}, {}, {}> = styled(\"a\", {\n name: \"ImageSlider\",\n slot: \"SlideLink\",\n})(() => ({\n display: \"none\",\n backgroundColor: \"#00263E\",\n border: `2px solid #00263E`,\n color: \"#ffffff\",\n padding: \"8px 16px\",\n borderRadius: \"8px\",\n columnGap: \"12px\",\n flexFlow: \"row nowrap\",\n alignItems: \"center\",\n fontWeight: 400,\n fontSize: \"clamp(14px, 2.5vw, 16px)\",\n lineHeight: \"1.6\",\n\n \"@media (max-width: 640px), (max-width: 900px) and (orientation: landscape)\": {\n display: \"flex\",\n },\n\n \"& path\": {\n stroke: \"#ffffff\",\n },\n}));\n","import { memo, useMemo } from \"react\";\nimport { getSlotSx } from \"@zipkito/shared\";\nimport { ArrowLeftIcon, ArrowRightIcon } from \"lucide-react\";\n\nimport {\n ImageSliderControlsDot,\n ImageSliderControlsDotsWrapper,\n ImageSliderControlsRoot,\n} from \"./ImageSliderControls.styled\";\nimport { ArrowButton } from \"../ArrowButton\";\nimport type { ImageSliderControlsProps } from \"./ImageSliderControls.types\";\n\nexport const ImageSliderControls = memo((props: ImageSliderControlsProps) => {\n const {\n showArrows,\n showDots,\n memoizedSlides,\n currentSlide,\n canGoPrev,\n canGoNext,\n prev,\n next,\n goToSlide,\n slots = {},\n slotProps = {},\n sx,\n } = props;\n\n const Root = slots.root ?? ImageSliderControlsRoot;\n const DotsWrapper = slots.dotsWrapper ?? ImageSliderControlsDotsWrapper;\n const Dot = slots.dot ?? ImageSliderControlsDot;\n const LeftArrow = slots.leftArrow;\n const RightArrow = slots.rightArrow;\n\n const rootProps = useMemo(\n () => ({\n ...slotProps.root,\n sx: getSlotSx(\"root\", sx),\n }),\n [slotProps.root, sx]\n );\n\n const dotsWrapperProps = useMemo(\n () => ({\n ...slotProps.dotsWrapper,\n sx: getSlotSx(\"dotsWrapper\", sx),\n }),\n [slotProps.dotsWrapper, sx]\n );\n\n const dotProps = useMemo(\n () => ({\n ...slotProps.dot,\n sx: getSlotSx(\"dot\", sx),\n }),\n [slotProps.dot, sx]\n );\n\n const leftArrowProps = useMemo(\n () => ({\n ...slotProps.leftArrow,\n sx: getSlotSx(\"leftArrow\", sx),\n }),\n [slotProps.leftArrow, sx]\n );\n\n const rightArrowProps = useMemo(\n () => ({\n ...slotProps.rightArrow,\n sx: getSlotSx(\"rightArrow\", sx),\n }),\n [slotProps.rightArrow, sx]\n );\n\n return (\n <Root {...rootProps}>\n {showArrows && LeftArrow ? (\n <LeftArrow disabled={!canGoPrev} onClick={prev} {...leftArrowProps} />\n ) : (\n <ArrowButton disabled={!canGoPrev} onClick={prev} {...leftArrowProps}>\n <ArrowLeftIcon size={24} />\n </ArrowButton>\n )}\n\n {showDots && (\n <DotsWrapper {...dotsWrapperProps}>\n {memoizedSlides.map((_, i) => (\n <Dot\n key={i}\n $active={i === currentSlide}\n onClick={() => goToSlide(i)}\n role=\"button\"\n onKeyDown={(e: KeyboardEvent) => e.key === \"Enter\" || (e.key === \" \" && goToSlide(i))}\n {...dotProps}\n />\n ))}\n </DotsWrapper>\n )}\n\n {showArrows && RightArrow ? (\n <RightArrow disabled={!canGoNext} onClick={next} {...rightArrowProps} />\n ) : (\n <ArrowButton disabled={!canGoNext} onClick={next} {...rightArrowProps}>\n <ArrowRightIcon size={24} />\n </ArrowButton>\n )}\n </Root>\n );\n});\n\nImageSliderControls.displayName = \"ImageSliderControls\";\n","import { styled } from \"@mui/material/styles\";\nimport type { StyledComponent } from \"@emotion/styled\";\n\nexport const ImageSliderControlsRoot: StyledComponent<{}, {}, {}> = styled(\"div\", {\n name: \"ImageSliderControls\",\n slot: \"Root\",\n})(() => ({\n width: \"100%\",\n height: \"55px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: \"16px\",\n marginTop: \"16px\",\n flexShrink: 0,\n padding: \"0 8px\",\n\n \"@media (max-width: 768px)\": {\n gap: \"12px\",\n marginTop: \"12px\",\n },\n\n \"@media (max-width: 480px)\": {\n gap: \"8px\",\n marginTop: \"8px\",\n },\n}));\n\nexport const ImageSliderControlsDotsWrapper: StyledComponent<{}, {}, {}> = styled(\"div\", {\n name: \"ImageSliderControls\",\n slot: \"DotsWrapper\",\n})(() => ({\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: \"10px\",\n}));\n\nexport const ImageSliderControlsDot: StyledComponent<{ $active: boolean }, {}, {}> = styled(\"div\", {\n name: \"ImageSliderControls\",\n slot: \"Dot\",\n shouldForwardProp: (propName: string) => !propName.startsWith(\"$\"),\n})<{ $active: boolean }>(({ $active }) => ({\n width: $active ? \"12px\" : \"8px\",\n height: $active ? \"12px\" : \"8px\",\n background: $active ? \"#fff\" : \"#5b5b5b\",\n borderRadius: \"50%\",\n cursor: \"pointer\",\n transition: \"0.2s\",\n outline: \"none\",\n \"&:focus\": { boxShadow: \"0 0 0 2px #fff\" },\n}));\n","import { IconButton } from \"@mui/material\";\nimport { ComponentProps, memo } from \"react\";\n\nexport const ArrowButton = memo(({ children, ...props }: ComponentProps<typeof IconButton>) => (\n <IconButton {...props} color=\"default\">\n {children}\n </IconButton>\n));\n\nArrowButton.displayName = \"ArrowButton\";\n","import { styled } from \"@mui/material/styles\";\nimport type { StyledComponent } from \"@emotion/styled\";\n\nexport const SlideGalleryRoot: StyledComponent<{}, {}, {}> = styled(\"div\", {\n name: \"SlideGallery\",\n slot: \"Root\",\n})(() => ({\n flex: 1,\n minHeight: 0,\n display: \"flex\",\n width: \"100%\",\n padding: \"16px\",\n borderRadius: \"16px\",\n}));\n","import { memo, useMemo } from \"react\";\nimport { Overlay } from \"@zipkito/shared\";\n\nimport { IframeGalleryFrame } from \"./IframeGallery.styled\";\nimport type { IframeGalleryProps } from \"./IframeGallery.types\";\n\nexport const IframeGallery = memo((props: IframeGalleryProps) => {\n const { gallery, actions, slots = {}, slotProps = {}, overlayProps = {}, sx } = props;\n\n const src = useMemo(() => gallery?.path, [gallery?.path]);\n\n if (!gallery.visible || !src) return null;\n\n const Frame = slots.frame ?? IframeGalleryFrame;\n\n return (\n <Overlay visible={gallery.visible} {...overlayProps}>\n <Frame src={src} sx={sx} loading=\"lazy\" {...slotProps.frame} />\n {actions}\n </Overlay>\n );\n});\n\nIframeGallery.displayName = \"IframeGallery\";\n","import { styled } from \"@mui/material/styles\";\nimport type { StyledComponent } from \"@emotion/styled\";\n\nexport const IframeGalleryFrame: StyledComponent<{}, {}, {}> = styled(\"iframe\", {\n name: \"IframeGallery\",\n slot: \"Frame\",\n})(() => ({\n border: 0,\n width: \"100%\",\n height: \"100%\",\n display: \"block\",\n background: \"transparent\",\n borderRadius: 16,\n boxShadow: \"0 12px 30px rgba(0, 0, 0, 0.25)\",\n}));\n","import { SlideGallerySlide } from \"./slides\";\n\nexport const GALLERY_TYPE = {\n Slide: \"slide\",\n MDX: \"mdx\",\n Iframe: \"iframe\",\n} as const;\n\nexport interface WithVisibility {\n visible: boolean;\n originalIndex: number;\n type: (typeof GALLERY_TYPE)[keyof typeof GALLERY_TYPE];\n}\n\nexport interface MDXGalleryType extends WithVisibility {\n file?: string;\n}\n\nexport interface SlideGalleryType extends WithVisibility {\n slides: SlideGallerySlide[];\n}\n\nexport interface IframeGalleryType extends WithVisibility {\n path?: string;\n}\n"],"mappings":"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","names":["memo","useMemo","getSlotSx","Overlay","getSlotSx","useState","useMemo","useEffect","styled","memo","useMemo","getSlotSx","styled","memo","jsx","jsx","jsxs","memo","useMemo","getSlotSx","jsx","jsxs","useState","useEffect","prev","useMemo","getSlotSx","styled","jsx","jsxs","memo","useMemo","getSlotSx","Overlay","memo","useMemo","Overlay","styled","jsx","jsxs","memo","useMemo","Overlay"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zipkito/gallery",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.7",
|
|
4
4
|
"description": "Reusable gallery components (iframe, slide, mdx) for DGE projects",
|
|
5
5
|
"private": false,
|
|
6
6
|
"sideEffects": false,
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"lucide-react": "^0.560.0",
|
|
25
25
|
"react": ">=18",
|
|
26
26
|
"react-dom": ">=18",
|
|
27
|
-
"@zipkito/shared": "^0.2.
|
|
27
|
+
"@zipkito/shared": "^0.2.2",
|
|
28
28
|
"@emotion/styled": ">=11"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|