@zipkito/gallery 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of @zipkito/gallery might be problematic. Click here for more details.

@@ -0,0 +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, 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 </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 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 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 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 !== \"PDF\" ? (\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 <>\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 </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 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":["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"]}