{"version":3,"file":"RetreatMedia.DlmpENK8.mjs","names":["useRef","useState","useMemo","useCallback"],"sources":["https:/framerusercontent.com/modules/8WmPUu8S0S6gAQs9OuPd/IqxtWygdefhREg2NDf03/RetreatMedia.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useCallback,useEffect,useMemo,useRef,useState,startTransition}from\"react\";import{addPropertyControls,ControlType}from\"framer\";function getYouTubeEmbedURL(input){if(!input||!input.trim())return null;try{const parsed=new URL(input.trim());const host=parsed.hostname.toLowerCase();const isYouTubeHost=host===\"youtube.com\"||host===\"www.youtube.com\"||host===\"m.youtube.com\"||host===\"youtu.be\"||host.endsWith(\".youtube.com\");if(!isYouTubeHost)return null;let videoId=\"\";if(host===\"youtu.be\"){videoId=parsed.pathname.replace(\"/\",\"\").trim();}else{videoId=parsed.searchParams.get(\"v\")?.trim()??\"\";if(!videoId&&parsed.pathname.startsWith(\"/embed/\")){videoId=parsed.pathname.replace(\"/embed/\",\"\").trim();}if(!videoId&&parsed.pathname.startsWith(\"/shorts/\")){videoId=parsed.pathname.replace(\"/shorts/\",\"\").trim();}}if(!videoId)return null;return`https://www.youtube-nocookie.com/embed/${encodeURIComponent(videoId)}?rel=0`;}catch(error){return null;}}/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function RetreatMedia(props){const{mode,youtubeURL,videoFile=\"\",images=[],background,style}=props;const viewportRef=useRef(null);const[containerWidth,setContainerWidth]=useState(1200);const[currentIndex,setCurrentIndex]=useState(0);const embedURL=useMemo(()=>getYouTubeEmbedURL(youtubeURL),[youtubeURL]);const hasVideoFile=useMemo(()=>Boolean(videoFile&&videoFile.trim().length>0),[videoFile]);const normalizedImages=useMemo(()=>{return images.map((item,index)=>{if(typeof item===\"string\"){return{src:item,alt:`Retreat gallery image ${index+1}`};}return{src:item?.src??\"\",srcSet:item?.srcSet,alt:item?.alt||`Retreat gallery image ${index+1}`};}).filter(item=>Boolean(item.src));},[images]);const visibleCount=useMemo(()=>{if(containerWidth<700)return 1;if(containerWidth<1024)return 2;return 4;},[containerWidth]);const galleryItems=useMemo(()=>{if(normalizedImages.length>0)return normalizedImages;return Array.from({length:6}).map((_,index)=>({placeholder:true,number:index+1}));},[normalizedImages]);const totalItems=galleryItems.length;const gap=16;const itemWidth=useMemo(()=>{const totalGap=gap*Math.max(visibleCount-1,0);const width=(containerWidth-totalGap)/visibleCount;return Math.max(140,width);},[containerWidth,visibleCount]);const scrollByOne=useCallback(direction=>{const viewport=viewportRef.current;if(!viewport)return;viewport.scrollBy({left:direction*(itemWidth+gap),behavior:\"smooth\"});},[itemWidth]);const onPrev=useCallback(()=>{scrollByOne(-1);},[scrollByOne]);const onNext=useCallback(()=>{scrollByOne(1);},[scrollByOne]);const onScroll=useCallback(()=>{const viewport=viewportRef.current;if(!viewport)return;const step=itemWidth+gap;if(step<=0)return;const nextIndex=Math.round(viewport.scrollLeft/step);const clamped=Math.max(0,Math.min(totalItems-1,nextIndex));startTransition(()=>setCurrentIndex(clamped));},[gap,itemWidth,totalItems]);useEffect(()=>{if(typeof window===\"undefined\")return;const target=viewportRef.current;if(!target)return;const updateWidth=width=>{startTransition(()=>setContainerWidth(width));};if(typeof ResizeObserver!==\"undefined\"){const observer=new ResizeObserver(entries=>{const entry=entries[0];if(!entry)return;updateWidth(entry.contentRect.width);});observer.observe(target);return()=>observer.disconnect();}updateWidth(target.clientWidth||window.innerWidth||1200);return;},[]);useEffect(()=>{const maxIndex=Math.max(0,totalItems-1);if(currentIndex>maxIndex){startTransition(()=>setCurrentIndex(maxIndex));}},[currentIndex,totalItems]);return /*#__PURE__*/_jsx(\"section\",{style:{position:\"relative\",width:\"100%\",height:\"100%\",background,color:\"#29241E\",fontFamily:\"General Sans, sans-serif\",boxSizing:\"border-box\",...style},\"aria-label\":\"Retreat media\",children:mode===\"video\"?/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",overflow:\"hidden\",borderRadius:16},children:embedURL?/*#__PURE__*/_jsx(\"iframe\",{title:\"Retreat film\",src:embedURL,style:{width:\"100%\",height:\"100%\",border:\"none\",borderRadius:16},allow:\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\",referrerPolicy:\"strict-origin-when-cross-origin\",allowFullScreen:true}):hasVideoFile?/*#__PURE__*/_jsx(\"video\",{src:videoFile,controls:true,style:{width:\"100%\",height:\"100%\",objectFit:\"cover\",borderRadius:16}}):/*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\",height:\"100%\",display:\"flex\",flexDirection:\"column\",alignItems:\"center\",justifyContent:\"center\",textAlign:\"center\",padding:24,gap:14},children:[/*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":true,style:{width:88,height:88,borderRadius:\"50%\",border:\"2px solid #B7522B\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\"},children:/*#__PURE__*/_jsx(\"svg\",{width:\"30\",height:\"30\",viewBox:\"0 0 24 24\",fill:\"none\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M8 6V18L18 12L8 6Z\",stroke:\"#B7522B\",strokeWidth:\"1.8\",strokeLinejoin:\"round\"})})}),/*#__PURE__*/_jsx(\"p\",{style:{margin:0,fontSize:24,fontWeight:500,lineHeight:1.1},children:\"Retreat film\"}),/*#__PURE__*/_jsx(\"p\",{style:{margin:0,fontSize:16,lineHeight:1.45,maxWidth:520},children:\"Add your YouTube link or upload a video in the right sidebar.\"})]})}):/*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\",height:\"100%\",display:\"flex\",flexDirection:\"column\",justifyContent:\"space-between\",gap:16,padding:4,boxSizing:\"border-box\"},children:[/*#__PURE__*/_jsx(\"div\",{ref:viewportRef,onScroll:onScroll,style:{flex:1,overflowX:\"auto\",overflowY:\"hidden\",WebkitOverflowScrolling:\"touch\",scrollSnapType:\"x mandatory\",scrollbarWidth:\"none\",msOverflowStyle:\"none\"},children:/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",gap,height:\"100%\",alignItems:\"stretch\",width:\"max-content\",paddingBottom:2},children:galleryItems.map((item,index)=>{const isPlaceholder=\"placeholder\"in item;return /*#__PURE__*/_jsx(\"div\",{style:{width:itemWidth,minWidth:itemWidth,height:\"100%\",borderRadius:16,overflow:\"hidden\",background:isPlaceholder?\"#DDD1C1\":\"#DCCFBF\",scrollSnapAlign:\"start\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",position:\"relative\"},children:isPlaceholder?/*#__PURE__*/_jsx(\"span\",{style:{fontSize:30,color:\"#B09D88\",fontWeight:500},children:item.number}):/*#__PURE__*/_jsx(\"img\",{src:item.src,srcSet:item.srcSet,alt:item.alt||\"\",style:{width:\"100%\",height:\"100%\",objectFit:\"cover\",display:\"block\"}})},`retreat-item-${index}`);})})}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",justifyContent:\"space-between\",gap:12},children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:onPrev,\"aria-label\":\"Previous image\",style:{width:38,height:38,borderRadius:\"50%\",border:\"1px solid #B7522B\",background:\"transparent\",color:\"#B7522B\",cursor:\"pointer\",display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\"},children:/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":true,children:\"←\"})}),/*#__PURE__*/_jsxs(\"p\",{style:{margin:0,fontSize:14,lineHeight:1,fontWeight:500,minWidth:64,textAlign:\"center\"},children:[Math.min(currentIndex+1,totalItems),\" of \",totalItems]}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:onNext,\"aria-label\":\"Next image\",style:{width:38,height:38,borderRadius:\"50%\",border:\"1px solid #B7522B\",background:\"transparent\",color:\"#B7522B\",cursor:\"pointer\",display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\"},children:/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":true,children:\"→\"})})]})]})});}addPropertyControls(RetreatMedia,{mode:{type:ControlType.Enum,title:\"Mode\",options:[\"video\",\"gallery\"],optionTitles:[\"Video\",\"Gallery\"],defaultValue:\"video\",displaySegmentedControl:true},youtubeURL:{type:ControlType.String,title:\"YouTube URL\",defaultValue:\"\",placeholder:\"https://youtube.com/watch?v=...\"},videoFile:{type:ControlType.File,title:\"Video File\",allowedFileTypes:[\"mp4\"]},images:{type:ControlType.Array,title:\"Images\",maxCount:12,defaultValue:[],control:{type:ControlType.ResponsiveImage}},background:{type:ControlType.Color,title:\"Background\",defaultValue:\"#E9DFD0\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"RetreatMedia\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./RetreatMedia.map"],"mappings":"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"}