{"version":3,"file":"VideoCarouselLinks.DB-UT4dh.mjs","names":["React.useState","React.useRef","React.useCallback","_Fragment","React.useMemo"],"sources":["https:/framerusercontent.com/modules/etqjNrJEyRDBvukJurNa/xshxWmWU49kZEFbpj67a/VideoCarouselLinks.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{motion,animate,useMotionValue}from\"framer-motion\";const FEEL_PRESETS={smooth:{stiffness:200,damping:40},natural:{stiffness:500,damping:40},snappy:{stiffness:800,damping:55},bouncy:{stiffness:400,damping:15}};const ASPECT_PRESETS={\"9:16\":[9,16],\"1:1\":[1,1],\"4:5\":[4,5],\"16:9\":[16,9],\"4:3\":[4,3]};// Cross-instance audio exclusivity: when one carousel unmutes, all others mute.\nconst SOUND_EVENT=\"vcl-sound-on\";// ─── URL Parsers ──────────────────────────────────────────────────────────────\nfunction getVimeoId(url){if(!url)return null;const m=url.match(/vimeo\\.com\\/(?:video\\/)?(\\d+)/);return m?m[1]:null;}function getYouTubeId(url){if(!url)return null;const m=url.match(/(?:https?:\\/\\/)?(?:www\\.)?(?:youtube\\.com\\/(?:watch\\?v=|embed\\/|shorts\\/|v\\/)|youtu\\.be\\/)([a-zA-Z0-9_-]{11})/);return m?m[1]:null;}function getYouTubeTimestamp(url){if(!url)return 0;const m=url.match(/[?&#]t=(\\d+)/);return m?parseInt(m[1],10):0;}function detectPlatform(url){if(getYouTubeId(url))return\"youtube\";if(getVimeoId(url))return\"vimeo\";return\"unknown\";}function isDirectVideoFile(url){if(!url)return false;return/\\.(mp4|webm|mov)(?:[?#].*)?$/i.test(url);}// ─── Posters (video thumbnails) ───────────────────────────────────────────────\n// Every slide shows its real video thumbnail instantly. The heavy player\n// iframe is only mounted on the active slide, and the poster fades out once\n// playback actually starts — so cards are never black.\n// Cache values: a thumbnail URL, or \"FAILED\" when oEmbed has no thumbnail\n// (private/embed-restricted videos) — then we fall back to vumbnail.com.\nconst vimeoThumbCache={};function useVimeoThumb(id){const cached=id?vimeoThumbCache[id]:undefined;const[state,setState]=React.useState(cached?{url:cached===\"FAILED\"?null:cached,failed:cached===\"FAILED\"}:{url:null,failed:false});React.useEffect(()=>{if(!id)return;const hit=vimeoThumbCache[id];if(hit){setState({url:hit===\"FAILED\"?null:hit,failed:hit===\"FAILED\"});return;}let alive=true;fetch(`https://vimeo.com/api/oembed.json?url=${encodeURIComponent(`https://vimeo.com/${id}`)}`).then(r=>r.ok?r.json():null).then(d=>{const raw=d?.thumbnail_url;const big=raw?raw.replace(/_\\d+x\\d+/,\"_960x540\"):null;vimeoThumbCache[id]=big??\"FAILED\";if(alive)setState({url:big,failed:!big});}).catch(()=>{if(alive)setState({url:null,failed:true});});return()=>{alive=false;};},[id]);return state;}function Poster({platform,ytId,vmId,visible,customSrc}){const vimeo=useVimeoThumb(platform===\"vimeo\"?vmId:null);const[ytFallback,setYtFallback]=React.useState(false);const[imgDead,setImgDead]=React.useState(false);let src=null;if(customSrc){src=customSrc;}else if(platform===\"youtube\"&&ytId){src=`https://i.ytimg.com/vi/${ytId}/${ytFallback?\"hqdefault\":\"maxresdefault\"}.jpg`;}else if(platform===\"vimeo\"&&vmId){src=vimeo.url??(vimeo.failed?`https://vumbnail.com/${vmId}.jpg`:null);}if(imgDead)src=null;return /*#__PURE__*/_jsxs(\"div\",{\"aria-hidden\":\"true\",style:{position:\"absolute\",inset:0,zIndex:2,pointerEvents:\"none\",opacity:visible?1:0,transition:\"opacity 0.35s ease\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,background:\"linear-gradient(145deg, rgba(255,255,255,0.08), rgba(255,255,255,0.02))\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\"},children:/*#__PURE__*/_jsx(\"div\",{style:{width:54,height:54,borderRadius:999,background:\"rgba(255,255,255,0.12)\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\"},children:/*#__PURE__*/_jsx(\"svg\",{width:\"22\",height:\"22\",viewBox:\"0 0 24 24\",fill:\"none\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M8 5.5V18.5L19 12L8 5.5Z\",fill:\"rgba(255,255,255,0.75)\"})})})}),src&&/*#__PURE__*/_jsx(\"img\",{src:src,alt:\"\",draggable:false,onError:()=>{if(platform===\"youtube\"&&!ytFallback)setYtFallback(true);else setImgDead(true);},onLoad:e=>{// YouTube serves a tiny gray placeholder when maxres is missing.\nif(platform===\"youtube\"&&!ytFallback&&e.currentTarget.naturalWidth<=120)setYtFallback(true);},style:{position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",objectFit:\"cover\"}})]});}// ─── Vimeo Player ─────────────────────────────────────────────────────────────\nconst VIMEO_ORIGIN=\"https://player.vimeo.com\";function VimeoPlayer({vimeoId,muted,startTime,onPlaying}){const iframeRef=React.useRef(null);const src=`${VIMEO_ORIGIN}/video/${vimeoId}?autoplay=1&muted=1&loop=0&controls=1&byline=0&title=0&portrait=0&dnt=1&transparent=0&color=ffffff${startTime>0?`#t=${startTime}s`:\"\"}`;const post=React.useCallback((method,value)=>{iframeRef.current?.contentWindow?.postMessage(JSON.stringify({method,value}),VIMEO_ORIGIN);},[]);React.useEffect(()=>{const handler=e=>{// Only accept messages from this slide's own player.\nif(e.origin!==VIMEO_ORIGIN)return;if(e.source!==iframeRef.current?.contentWindow)return;try{const data=typeof e.data===\"string\"?JSON.parse(e.data):e.data;if(data.event===\"ready\"){post(\"addEventListener\",\"ended\");post(\"addEventListener\",\"play\");post(\"addEventListener\",\"error\");post(\"setVolume\",muted?0:1);if(startTime>0)post(\"setCurrentTime\",startTime);post(\"play\");}// \"error\" also reveals the player so its message isn't hidden\n// behind the poster.\nif(data.event===\"play\"||data.event===\"error\")onPlaying();if(data.event===\"ended\"){post(\"setCurrentTime\",startTime||0);post(\"play\");}}catch{}};window.addEventListener(\"message\",handler);return()=>window.removeEventListener(\"message\",handler);},[post,muted,startTime,onPlaying]);// React to the gallery mute toggle.\nReact.useEffect(()=>{post(\"setVolume\",muted?0:1);},[muted,post]);return /*#__PURE__*/_jsx(\"iframe\",{ref:iframeRef,src:src,title:\"Vimeo video player\",allow:\"autoplay; fullscreen; picture-in-picture\",allowFullScreen:true,style:{position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",border:\"none\",display:\"block\"}});}// ─── YouTube Player ───────────────────────────────────────────────────────────\nfunction YouTubePlayer({youtubeId,muted,startTime,privacy,onPlaying}){const iframeRef=React.useRef(null);const ytOrigin=privacy?\"https://www.youtube-nocookie.com\":\"https://www.youtube.com\";const src=`${ytOrigin}/embed/${youtubeId}?autoplay=1&mute=1&controls=1&rel=0&modestbranding=1&playsinline=1&enablejsapi=1${startTime>0?`&start=${startTime}`:\"\"}`;const postYT=React.useCallback((func,args=[])=>{iframeRef.current?.contentWindow?.postMessage(JSON.stringify({event:\"command\",func,args}),ytOrigin);},[ytOrigin]);// Handshake so the YT iframe starts emitting onReady/onStateChange events.\nconst handleIframeLoad=React.useCallback(()=>{iframeRef.current?.contentWindow?.postMessage(JSON.stringify({event:\"listening\",id:youtubeId}),ytOrigin);},[youtubeId,ytOrigin]);React.useEffect(()=>{const handler=e=>{// Only accept messages from this slide's own player.\nif(e.origin!==ytOrigin)return;if(e.source!==iframeRef.current?.contentWindow)return;try{const data=typeof e.data===\"string\"?JSON.parse(e.data):e.data;if(data.event===\"onReady\"){postYT(\"playVideo\");postYT(muted?\"mute\":\"unMute\");}if(data.event===\"onStateChange\"){if(data.info===1)onPlaying();if(data.info===0){postYT(\"seekTo\",[startTime||0,true]);postYT(\"playVideo\");}}// Reveal the player on embed errors so the message isn't\n// hidden behind the poster.\nif(data.event===\"onError\")onPlaying();}catch{}};window.addEventListener(\"message\",handler);return()=>window.removeEventListener(\"message\",handler);},[postYT,muted,startTime,ytOrigin,onPlaying]);// React to the gallery mute toggle.\nReact.useEffect(()=>{postYT(muted?\"mute\":\"unMute\");},[muted,postYT]);return /*#__PURE__*/_jsx(\"iframe\",{ref:iframeRef,src:src,onLoad:handleIframeLoad,title:\"YouTube video player\",allow:\"autoplay; fullscreen; picture-in-picture\",allowFullScreen:true,style:{position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",border:\"none\",display:\"block\"}});}function LocalVideoPlayer({src,muted,startTime,onPlaying}){const videoRef=React.useRef(null);const handleLoadedMetadata=React.useCallback(()=>{if(!videoRef.current)return;if(startTime>0){try{videoRef.current.currentTime=startTime;}catch{}}},[startTime]);return /*#__PURE__*/_jsx(\"video\",{ref:videoRef,src:src,onLoadedMetadata:handleLoadedMetadata,onPlaying:onPlaying,autoPlay:true,muted:muted,playsInline:true,controls:true,loop:true,style:{position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",border:\"none\",display:\"block\",objectFit:\"cover\"}});}function LocalVideoPreview({src,startTime,visible}){const previewRef=React.useRef(null);const[canShowFrame,setCanShowFrame]=React.useState(false);const handleLoadedData=React.useCallback(()=>{if(!previewRef.current)return;if(startTime>0){try{previewRef.current.currentTime=startTime;}catch{}}setCanShowFrame(true);},[startTime]);return /*#__PURE__*/_jsx(\"video\",{ref:previewRef,src:src,preload:\"auto\",muted:true,playsInline:true,\"aria-hidden\":\"true\",onLoadedData:handleLoadedData,style:{position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",display:\"block\",objectFit:\"cover\",pointerEvents:\"none\",opacity:visible&&canShowFrame?1:0,transition:\"opacity 0.35s ease\"}});}// ─── Invalid Slide ────────────────────────────────────────────────────────────\nfunction InvalidSlide({url,backgroundColor,radius}){return /*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\",height:\"100%\",background:backgroundColor||\"#111\",borderRadius:radius,display:\"flex\",flexDirection:\"column\",alignItems:\"center\",justifyContent:\"center\",gap:8,color:\"rgba(255,255,255,0.5)\",fontFamily:\"Inter, sans-serif\",fontSize:13,padding:16,boxSizing:\"border-box\",textAlign:\"center\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontSize:24},\"aria-hidden\":\"true\",children:\"⚠️\"}),/*#__PURE__*/_jsx(\"div\",{style:{fontWeight:600},children:\"Invalid URL\"}),/*#__PURE__*/_jsx(\"div\",{style:{fontSize:11,opacity:.6,maxWidth:200},children:\"Paste a YouTube or Vimeo link\"}),/*#__PURE__*/_jsx(\"div\",{style:{fontSize:10,opacity:.4,wordBreak:\"break-all\",maxWidth:200},children:url})]});}// ─── Slide (poster + on-demand player) ────────────────────────────────────────\nfunction Slide({url,previewImage,mountPlayer,backgroundColor,radius,muted,startTime,privacy}){const platform=detectPlatform(url);const isLocalVideo=platform===\"unknown\"&&isDirectVideoFile(url);const ytId=getYouTubeId(url);const vmId=getVimeoId(url);const urlTimestamp=platform===\"youtube\"?getYouTubeTimestamp(url):0;const effectiveStartTime=urlTimestamp||startTime;const[playing,setPlaying]=React.useState(false);const onPlaying=React.useCallback(()=>setPlaying(true),[]);React.useEffect(()=>{if(!mountPlayer)setPlaying(false);},[mountPlayer]);if(platform===\"unknown\"&&!isLocalVideo){return /*#__PURE__*/_jsx(InvalidSlide,{url:url,backgroundColor:backgroundColor,radius:radius});}return /*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",width:\"100%\",height:\"100%\",background:backgroundColor||\"#000\",overflow:\"hidden\",borderRadius:radius},children:[mountPlayer&&(platform===\"youtube\"&&ytId?/*#__PURE__*/_jsx(YouTubePlayer,{youtubeId:ytId,muted:muted,startTime:effectiveStartTime,privacy:privacy,onPlaying:onPlaying}):vmId?/*#__PURE__*/_jsx(VimeoPlayer,{vimeoId:vmId,muted:muted,startTime:effectiveStartTime,onPlaying:onPlaying}):isLocalVideo?/*#__PURE__*/_jsx(LocalVideoPlayer,{src:url,muted:muted,startTime:effectiveStartTime,onPlaying:onPlaying}):null),isLocalVideo?previewImage?.src?/*#__PURE__*/_jsx(\"img\",{src:previewImage.src,srcSet:previewImage.srcSet,alt:previewImage.alt||\"\",\"aria-hidden\":\"true\",draggable:false,style:{position:\"absolute\",inset:0,zIndex:2,pointerEvents:\"none\",opacity:mountPlayer&&playing?0:1,transition:\"opacity 0.35s ease\",width:\"100%\",height:\"100%\",objectFit:\"cover\"}}):/*#__PURE__*/_jsx(LocalVideoPreview,{src:url,startTime:effectiveStartTime,visible:!(mountPlayer&&playing)}):/*#__PURE__*/_jsx(Poster,{platform:platform,ytId:ytId,vmId:vmId,customSrc:previewImage?.src??null,visible:!(mountPlayer&&playing)})]});}// ─── Sound Icons ──────────────────────────────────────────────────────────────\nfunction SpeakerIcon({muted,color,size}){return /*#__PURE__*/_jsxs(\"svg\",{width:size,height:size,viewBox:\"0 0 24 24\",fill:\"none\",\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"path\",{d:\"M11 5L6.5 8.5H3.5C3.22 8.5 3 8.72 3 9V15C3 15.28 3.22 15.5 3.5 15.5H6.5L11 19V5Z\",fill:color}),muted?/*#__PURE__*/_jsx(\"path\",{d:\"M15 9.5L20 14.5M20 9.5L15 14.5\",stroke:color,strokeWidth:\"1.8\",strokeLinecap:\"round\"}):/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"path\",{d:\"M14.5 9.2C15.4 10 15.9 11 15.9 12C15.9 13 15.4 14 14.5 14.8\",stroke:color,strokeWidth:\"1.8\",strokeLinecap:\"round\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M16.8 7C18.3 8.3 19.2 10.1 19.2 12C19.2 13.9 18.3 15.7 16.8 17\",stroke:color,strokeWidth:\"1.8\",strokeLinecap:\"round\"})]})]});}// ─── Main ─────────────────────────────────────────────────────────────────────\n/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n * @framerIntrinsicWidth 400\n */export default function VideoCarouselLinks(props){const{videos=[],uploadedVideos=[],previewImages=[],aspectRatioPreset,customWidth,customHeight,desktop,mobile,playback,sound,card,dots,motionFeel}=props;const startTime=playback?.startTime??0;const loop=playback?.loop??true;const autoPlay=playback?.autoPlay??false;const interval=playback?.interval??5;const pauseOnHover=playback?.pauseOnHover??true;const privacy=playback?.privacy??true;const backgroundColor=card?.loadingColor??\"#0A0A0A\";const radius=card?.radius??0;// Inside a border, corners must use a smaller radius (outer − border\n// width), otherwise the content corners pull away from the border and\n// leave a visible gap.\nconst borderW=card?.borderShow?card?.borderWidth??2:0;const innerRadius=Math.max(0,radius-borderW);const itemsSafe=React.useMemo(()=>{const allUrls=[...Array.isArray(videos)?videos:[],...Array.isArray(uploadedVideos)?uploadedVideos:[]];const result=[];let renderedIndex=0;allUrls.forEach(value=>{if(typeof value!==\"string\"||value.trim()===\"\")return;result.push({url:value,previewImage:Array.isArray(previewImages)?previewImages[renderedIndex]??null:null});renderedIndex+=1;});return result;},[videos,uploadedVideos,previewImages]);const[ratioW,ratioH]=aspectRatioPreset===\"custom\"?[Math.max(1,customWidth||9),Math.max(1,customHeight||16)]:ASPECT_PRESETS[aspectRatioPreset]??[9,16];const resolvedAspectRatio=`${ratioW} / ${ratioH}`;const isStatic=useIsStaticRenderer();const carouselRef=React.useRef(null);const x=useMotionValue(0);const animating=React.useRef(false);const[width,setWidth]=React.useState(0);const[activeIndex,setActiveIndex]=React.useState(0);const[hovered,setHovered]=React.useState(false);const[inView,setInView]=React.useState(false);const[clickable,setClickable]=React.useState(true);const[pressedArrow,setPressedArrow]=React.useState(null);// ── Global gallery sound state ──\nconst[isMuted,setIsMuted]=React.useState(()=>playback?.startMuted??true);const instanceId=React.useRef(`vcl-${Math.random().toString(36).slice(2)}`).current;// If another carousel instance on the page unmutes, this one mutes itself\n// so two audio tracks never overlap.\nReact.useEffect(()=>{const handler=e=>{const detail=e.detail;if(detail!==instanceId)setIsMuted(true);};window.addEventListener(SOUND_EVENT,handler);return()=>window.removeEventListener(SOUND_EVENT,handler);},[instanceId]);const toggleMute=()=>{setIsMuted(m=>{const next=!m;if(!next)window.dispatchEvent(new CustomEvent(SOUND_EVENT,{detail:instanceId}));return next;});};React.useLayoutEffect(()=>{if(!carouselRef.current)return;const ro=new ResizeObserver(entries=>{const w=entries[0]?.contentRect.width;if(w!=null&&w>0)setWidth(w);});ro.observe(carouselRef.current);return()=>ro.disconnect();},[]);React.useEffect(()=>{if(width===0)return;animating.current=false;x.set(0);},[width]);// A slide counts as \"in view\" when half the carousel is visible — or, for\n// carousels taller than the viewport (9:16 on mobile), when it fills at\n// least half the screen. A pure ratio test would never trigger there.\nReact.useEffect(()=>{if(!carouselRef.current)return;const observer=new IntersectionObserver(([entry])=>{const viewportH=entry.rootBounds?.height??window.innerHeight;setInView(entry.intersectionRatio>=.5||entry.intersectionRect.height>=viewportH*.5);},{threshold:[0,.1,.2,.3,.4,.5,.6,.7,.8,.9,1]});observer.observe(carouselRef.current);return()=>observer.disconnect();},[]);const mobileBreakpoint=mobile?.breakpoint??640;const isMobile=width>0&&width<mobileBreakpoint;// Never show more slots than there are videos — avoids duplicate slides.\nconst requestedCount=Math.max(1,isMobile?mobile?.items??1:desktop?.items??1);const visibleCount=Math.max(1,Math.min(requestedCount,itemsSafe.length));const centerSlot=Math.floor(visibleCount/2);const effectiveGap=isMobile?mobile?.gap??0:desktop?.gap??0;const inactiveScale=desktop?.inactiveScale??.9;const inactiveOpacity=desktop?.inactiveOpacity??.4;const arrows=desktop?.arrows;const itemWidth=width>0?(width-effectiveGap*(visibleCount-1))/visibleCount:9999;const slideHeight=width>0?itemWidth*(ratioH/ratioW):0;const offsetToCenter=width>0?width/2-(centerSlot*(itemWidth+effectiveGap)+itemWidth/2):0;// Visible window plus one pre-mounted buffer slide on each side, so drag\n// gestures reveal real thumbnails. Rendered sorted by video index so\n// persisting slides never move in the DOM.\nconst slots=React.useMemo(()=>{const len=itemsSafe.length;const seen=new Set;const result=[];const push=slot=>{let real=activeIndex+(slot-centerSlot);if(loop)real=(real%len+len)%len;else if(real<0||real>=len)return;if(seen.has(real))return;seen.add(real);result.push({real,slot,url:itemsSafe[real].url,previewImage:itemsSafe[real].previewImage});};for(let s=0;s<visibleCount;s++)push(s);push(-1);push(visibleCount);return result.sort((a,b)=>a.real-b.real);},[activeIndex,visibleCount,centerSlot,itemsSafe,loop]);const feel=FEEL_PRESETS[motionFeel]?motionFeel:\"natural\";const motionOpts={type:\"spring\",stiffness:FEEL_PRESETS[feel].stiffness,damping:FEEL_PRESETS[feel].damping};const slide=delta=>{if(animating.current||delta===0)return;const len=itemsSafe.length;let d=delta;if(!loop){// Clamp at the ends so the track never animates past the last slide.\nconst target=Math.max(0,Math.min(activeIndex+delta,len-1));d=target-activeIndex;if(d===0)return;}animating.current=true;animate(x,-(itemWidth+effectiveGap)*d,{...motionOpts,onComplete:()=>{x.set(0);setActiveIndex(i=>{const next=i+d;return loop?(next%len+len)%len:Math.max(0,Math.min(next,len-1));});animating.current=false;}});};const goNext=()=>slide(1);const goPrev=()=>slide(-1);const canPrev=itemsSafe.length>1&&(loop||activeIndex>0);const canNext=itemsSafe.length>1&&(loop||activeIndex<itemsSafe.length-1);const goTo=index=>{const len=itemsSafe.length;const raw=index-activeIndex;const delta=loop?(raw+Math.round(len/2))%len-Math.round(len/2):raw;slide(delta);};const handleDragEnd=(_,info)=>{// Larger threshold on mobile so tall 9:16 cards don't hijack vertical\n// page scroll; a fast flick (velocity) still advances the carousel.\nconst thresholdRatio=isMobile?.3:.2;const threshold=itemWidth*thresholdRatio;const fastFlick=Math.abs(info.velocity.x)>500;const passed=Math.abs(info.offset.x)>threshold||fastFlick&&Math.abs(info.offset.x)>20;if(passed){setClickable(false);setTimeout(()=>setClickable(true),150);}if(passed&&info.offset.x<0)goNext();if(passed&&info.offset.x>0)goPrev();};// Auto-advance reads goNext through a ref so the interval never captures a\n// stale itemWidth after a resize.\nconst goNextRef=React.useRef(goNext);React.useEffect(()=>{goNextRef.current=goNext;});React.useEffect(()=>{if(!autoPlay||isStatic||!inView||itemsSafe.length<2)return;if(pauseOnHover&&hovered)return;const id=setInterval(()=>goNextRef.current(),interval*1e3);return()=>clearInterval(id);},[autoPlay,pauseOnHover,hovered,interval,isStatic,inView,itemsSafe.length]);if(itemsSafe.length===0){return /*#__PURE__*/_jsxs(\"div\",{ref:carouselRef,style:{width:\"100%\",aspectRatio:resolvedAspectRatio,display:\"flex\",flexDirection:\"column\",alignItems:\"center\",justifyContent:\"center\",background:\"rgba(0,0,0,0.04)\",borderRadius:radius||12,border:\"2px dashed rgba(0,0,0,0.12)\",color:\"rgba(0,0,0,0.4)\",fontFamily:\"Inter, sans-serif\",textAlign:\"center\",padding:32,boxSizing:\"border-box\",gap:12,userSelect:\"none\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontSize:28},\"aria-hidden\":\"true\",children:\"🎬\"}),/*#__PURE__*/_jsx(\"div\",{style:{fontSize:14,fontWeight:600,color:\"rgba(0,0,0,0.7)\"},children:\"No videos yet\"}),/*#__PURE__*/_jsxs(\"div\",{style:{fontSize:12,color:\"rgba(0,0,0,0.4)\",lineHeight:1.8,maxWidth:260},children:[\"Open the right panel → click\",\" \",/*#__PURE__*/_jsx(\"span\",{style:{background:\"rgba(0,0,0,0.07)\",padding:\"1px 6px\",borderRadius:4,fontWeight:500},children:\"＋ Add Video URL\"}),/*#__PURE__*/_jsx(\"br\",{}),\"Paste a YouTube or Vimeo link\"]})]});}const showDots=dots?.show&&itemsSafe.length>1&&!(isMobile&&mobile?.hideDots);// Mobile arrows have their own toggle, independent of the desktop one.\nconst showArrows=width>0&&itemsSafe.length>1&&(isMobile?mobile?.showArrows??false:arrows?.show??true);const arrowOffset=arrows?.offset??10;const arrowSize=arrows?.size??44;// ── Sound button ──\n// Default is top-right: the bottom edge is where YouTube/Vimeo native\n// control bars appear, so the button must stay clear of that zone.\nconst soundShow=sound?.show??true;const soundSize=sound?.size??40;const soundMargin=sound?.margin??12;const soundCorner=sound?.corner??\"top-right\";const soundIsTop=soundCorner.startsWith(\"top\");const soundIsRight=soundCorner.endsWith(\"right\");const soundLeft=soundIsRight?`calc(50% + ${itemWidth/2-soundSize-soundMargin}px)`:`calc(50% - ${itemWidth/2-soundMargin}px)`;return /*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",width:\"100%\"},onMouseEnter:()=>setHovered(true),onMouseLeave:()=>setHovered(false),children:[/*#__PURE__*/_jsxs(\"div\",{ref:carouselRef,style:{position:\"relative\",width:\"100%\",overflow:\"hidden\",height:width>0?slideHeight:undefined,aspectRatio:width>0?undefined:resolvedAspectRatio,visibility:width>0?\"visible\":\"hidden\"},role:\"region\",\"aria-label\":\"Video carousel\",children:[/*#__PURE__*/_jsx(motion.div,{drag:\"x\",dragConstraints:{left:0,right:0},dragElastic:.1,onDragEnd:handleDragEnd,style:{position:\"absolute\",inset:0,x,// Keep vertical page scroll fluid on touch devices\ntouchAction:\"pan-y\"},children:slots.map(({url,previewImage,real,slot})=>{const active=slot===centerSlot;const isBuffer=slot<0||slot>=visibleCount;return /*#__PURE__*/_jsx(motion.div,{\"aria-roledescription\":\"slide\",\"aria-label\":`Slide ${real+1} of ${itemsSafe.length}`,\"aria-current\":active?\"true\":undefined,\"aria-hidden\":isBuffer?\"true\":undefined,onClick:!active&&!isBuffer?()=>{if(clickable)goTo(real);}:undefined,style:{position:\"absolute\",top:0,left:offsetToCenter+slot*(itemWidth+effectiveGap),width:itemWidth,aspectRatio:resolvedAspectRatio,scale:active?1:isMobile?1:inactiveScale,opacity:active?1:isMobile?1:inactiveOpacity,boxSizing:\"border-box\",overflow:\"hidden\",borderRadius:radius,border:card?.borderShow?`${card.borderWidth??2}px solid ${card.borderColor??\"#1A1A1A\"}`:undefined,backgroundColor,transition:\"transform 0.25s ease, opacity 0.25s ease\",pointerEvents:clickable&&!isBuffer?\"auto\":\"none\",cursor:!active&&!isBuffer?\"pointer\":undefined},children:/*#__PURE__*/_jsx(Slide,{url:url,previewImage:previewImage,mountPlayer:active&&inView&&!isStatic,backgroundColor:backgroundColor,radius:innerRadius,muted:isMuted,startTime:startTime,privacy:privacy})},String(real));})}),soundShow&&width>0&&/*#__PURE__*/_jsx(\"button\",{\"aria-label\":isMuted?\"Unmute videos\":\"Mute videos\",\"aria-pressed\":!isMuted,onClick:toggleMute,style:{position:\"absolute\",left:soundLeft,top:soundIsTop?soundMargin:undefined,bottom:soundIsTop?undefined:soundMargin,width:soundSize,height:soundSize,borderRadius:999,background:sound?.background??\"rgba(0,0,0,0.45)\",border:\"none\",cursor:\"pointer\",zIndex:11,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",padding:0,transition:\"background 0.15s ease, transform 0.1s ease\"},children:/*#__PURE__*/_jsx(SpeakerIcon,{muted:isMuted,color:sound?.iconColor??\"#FFFFFF\",size:soundSize*.55})}),showArrows&&/*#__PURE__*/_jsx(_Fragment,{children:[\"left\",\"right\"].map(side=>{const enabled=side===\"left\"?canPrev:canNext;const isPressed=pressedArrow===side&&enabled;const action=side===\"left\"?goPrev:goNext;const chevron=side===\"left\"?\"‹\":\"›\";const iconColor=arrows?.iconColor??\"#FFFFFF\";const arrowBg=arrows?.background??\"rgba(0,0,0,0.35)\";// On mobile the card usually fills the width, so arrows sit\n// inside the card edges instead of outside them.\nconst edgeInset=Math.max(arrowOffset,6);const leftPos=isMobile?side===\"left\"?`${edgeInset}px`:`calc(100% - ${arrowSize+edgeInset}px)`:side===\"left\"?`calc(50% - ${itemWidth/2}px - ${arrowSize+arrowOffset}px)`:`calc(50% + ${itemWidth/2}px + ${arrowOffset}px)`;return /*#__PURE__*/_jsx(\"button\",{\"aria-label\":side===\"left\"?\"Previous slide\":\"Next slide\",disabled:!enabled,onClick:action,onMouseDown:()=>setPressedArrow(side),onMouseUp:()=>setPressedArrow(null),onMouseLeave:()=>setPressedArrow(null),onTouchStart:()=>setPressedArrow(side),onTouchEnd:()=>{setPressedArrow(null);if(enabled)action();},style:{position:\"absolute\",top:\"50%\",left:leftPos,transform:`translateY(-50%) scale(${isPressed?.88:1})`,width:arrowSize,height:arrowSize,borderRadius:999,background:isPressed?`color-mix(in srgb, ${arrowBg} 80%, #000 20%)`:arrowBg,opacity:!enabled?.3:arrows?.fadeIn&&!hovered&&!isMobile?0:1,transition:\"opacity 0.25s ease, transform 0.1s ease, background 0.1s ease\",border:\"none\",cursor:enabled?\"pointer\":\"default\",zIndex:10,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",padding:0},children:/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",style:{color:iconColor,fontSize:arrowSize*.45,lineHeight:1,userSelect:\"none\",display:\"block\"},children:chevron})},side);})})]}),showDots&&/*#__PURE__*/_jsx(\"div\",{\"aria-label\":\"Video slides\",style:{marginTop:dots?.inset??16,display:\"flex\",gap:dots?.gap??8,justifyContent:\"center\",flexWrap:\"wrap\",maxWidth:\"100%\",alignItems:\"center\"},children:itemsSafe.map((_,i)=>{const isActive=i===activeIndex;const dotSize=dots?.size??8;return /*#__PURE__*/_jsx(\"button\",{\"aria-label\":`Go to slide ${i+1}`,\"aria-current\":isActive?\"true\":undefined,onClick:()=>goTo(i),style:{height:dotSize,width:isActive?dotSize*2.5:dotSize,borderRadius:dotSize/2,background:isActive?dots?.activeFill??\"#FFFFFF\":dots?.fill??\"#FFFFFF\",opacity:isActive?1:.4,cursor:\"pointer\",border:\"none\",padding:0,transition:\"width 0.35s cubic-bezier(0.34, 1.56, 0.64, 1), background 0.3s ease, opacity 0.3s ease\",flexShrink:0}},i);})})]});}// ─── Property Controls ────────────────────────────────────────────────────────\naddPropertyControls(VideoCarouselLinks,{previewImages:{type:ControlType.Array,title:\"Preview images\",description:\"Optional still images matched to videos by list order.\",control:{type:ControlType.ResponsiveImage},defaultValue:[]},uploadedVideos:{type:ControlType.Array,title:\"Uploaded videos\",description:\"Upload local video files. They are combined with Video URLs in the carousel.\",control:{type:ControlType.File,allowedFileTypes:[\"mp4\",\"webm\",\"mov\"]},defaultValue:[]},videos:{type:ControlType.Array,title:\"Video URLs\",description:\"Paste YouTube or Vimeo links. Both platforms can be mixed freely.\",control:{type:ControlType.String,placeholder:\"https://youtube.com/watch?v=…\"},defaultValue:[]},aspectRatioPreset:{type:ControlType.Enum,title:\"Aspect Ratio\",options:[\"9:16\",\"1:1\",\"4:5\",\"16:9\",\"4:3\",\"custom\"],optionTitles:[\"9:16 — Vertical\",\"1:1 — Square\",\"4:5 — Portrait\",\"16:9 — Landscape\",\"4:3 — Classic\",\"Custom…\"],defaultValue:\"9:16\"},customWidth:{type:ControlType.Number,title:\"Ratio W\",defaultValue:9,min:1,max:100,step:1,hidden:props=>props.aspectRatioPreset!==\"custom\"},customHeight:{type:ControlType.Number,title:\"Ratio H\",defaultValue:16,min:1,max:100,step:1,hidden:props=>props.aspectRatioPreset!==\"custom\"},desktop:{type:ControlType.Object,title:\"🖥 Desktop\",controls:{items:{type:ControlType.Number,title:\"Videos shown\",defaultValue:1,min:1,max:7,step:1,displayStepper:true,description:\"Capped at the number of videos added.\"},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:30,min:0,max:100,unit:\"px\",hidden:props=>props.items<=1},inactiveScale:{type:ControlType.Number,title:\"Side scale\",defaultValue:.9,min:.5,max:1,step:.01,hidden:props=>props.items<=1},inactiveOpacity:{type:ControlType.Number,title:\"Side opacity\",defaultValue:.4,min:0,max:1,step:.05,hidden:props=>props.items<=1},arrows:{type:ControlType.Object,title:\"Arrows\",controls:{show:{type:ControlType.Boolean,title:\"Show\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\"},iconColor:{type:ControlType.Color,title:\"Icon color\",defaultValue:\"#FFFFFF\",hidden:props=>!props.show},background:{type:ControlType.Color,title:\"Background\",defaultValue:\"rgba(0,0,0,0.35)\",hidden:props=>!props.show},size:{type:ControlType.Number,title:\"Button size\",defaultValue:44,min:24,max:120,unit:\"px\",hidden:props=>!props.show},offset:{type:ControlType.Number,title:\"Offset\",defaultValue:10,min:-100,max:200,unit:\"px\",hidden:props=>!props.show},fadeIn:{type:ControlType.Boolean,title:\"Show on hover\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\",hidden:props=>!props.show}}}}},mobile:{type:ControlType.Object,title:\"📱 Mobile\",controls:{breakpoint:{type:ControlType.Number,title:\"Breakpoint\",defaultValue:640,min:320,max:1024,step:10,unit:\"px\"},items:{type:ControlType.Number,title:\"Videos shown\",defaultValue:1,min:1,max:5,step:1,displayStepper:true},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:12,min:0,max:60,unit:\"px\",hidden:props=>props.items<=1},hideDots:{type:ControlType.Boolean,title:\"Hide dots\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\"},showArrows:{type:ControlType.Boolean,title:\"Show arrows\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\",description:\"Arrows sit inside the card edges on mobile, as an alternative to swiping. Uses the desktop arrow styling.\"}}},playback:{type:ControlType.Object,title:\"▶ Playback\",controls:{startMuted:{type:ControlType.Boolean,title:\"Start muted\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\",description:\"Browsers require muted for autoplay. Visitors can unmute with the sound button.\"},startTime:{type:ControlType.Number,title:\"Start time\",defaultValue:0,min:0,step:1,unit:\"s\",description:\"YouTube URLs with ?t= override this per video.\"},loop:{type:ControlType.Boolean,title:\"Loop carousel\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},autoPlay:{type:ControlType.Boolean,title:\"Auto-advance\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},interval:{type:ControlType.Number,title:\"Interval\",defaultValue:5,min:1,max:30,unit:\"s\",hidden:props=>!props.autoPlay},pauseOnHover:{type:ControlType.Boolean,title:\"Pause on hover\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\",hidden:props=>!props.autoPlay},privacy:{type:ControlType.Boolean,title:\"Privacy mode\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Uses youtube-nocookie.com so YouTube sets no tracking cookies before play. Vimeo always loads with Do Not Track.\"}}},sound:{type:ControlType.Object,title:\"🔊 Sound button\",controls:{show:{type:ControlType.Boolean,title:\"Show\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\"},corner:{type:ControlType.Enum,title:\"Position\",options:[\"top-right\",\"top-left\",\"bottom-right\",\"bottom-left\"],optionTitles:[\"Top right\",\"Top left\",\"Bottom right\",\"Bottom left\"],defaultValue:\"top-right\",description:\"Top corners avoid overlapping the YouTube/Vimeo control bars.\",hidden:props=>!props.show},size:{type:ControlType.Number,title:\"Size\",defaultValue:40,min:24,max:80,unit:\"px\",hidden:props=>!props.show},margin:{type:ControlType.Number,title:\"Margin\",defaultValue:12,min:0,max:60,unit:\"px\",hidden:props=>!props.show},iconColor:{type:ControlType.Color,title:\"Icon color\",defaultValue:\"#FFFFFF\",hidden:props=>!props.show},background:{type:ControlType.Color,title:\"Background\",defaultValue:\"rgba(0,0,0,0.45)\",hidden:props=>!props.show}}},card:{type:ControlType.Object,title:\"Style\",controls:{radius:{type:ControlType.Number,title:\"Corner radius\",defaultValue:0,min:0,max:60,unit:\"px\"},loadingColor:{type:ControlType.Color,title:\"Loading color\",defaultValue:\"#0A0A0A\"},borderShow:{type:ControlType.Boolean,title:\"Border\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\"},borderColor:{type:ControlType.Color,title:\"Border color\",defaultValue:\"#1A1A1A\",hidden:props=>!props.borderShow},borderWidth:{type:ControlType.Number,title:\"Border width\",defaultValue:2,min:1,max:10,unit:\"px\",hidden:props=>!props.borderShow}}},dots:{type:ControlType.Object,title:\"Dots\",controls:{show:{type:ControlType.Boolean,title:\"Show\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\"},activeFill:{type:ControlType.Color,title:\"Active color\",defaultValue:\"#FFFFFF\",hidden:props=>!props.show},fill:{type:ControlType.Color,title:\"Inactive color\",defaultValue:\"#FFFFFF\",hidden:props=>!props.show},size:{type:ControlType.Number,title:\"Dot size\",defaultValue:8,min:4,max:30,unit:\"px\",hidden:props=>!props.show},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:8,min:2,max:40,unit:\"px\",hidden:props=>!props.show},inset:{type:ControlType.Number,title:\"Space below videos\",defaultValue:16,min:0,max:60,unit:\"px\",hidden:props=>!props.show}}},motionFeel:{type:ControlType.Enum,title:\"Motion\",options:[\"smooth\",\"natural\",\"snappy\",\"bouncy\"],optionTitles:[\"😌 Smooth\",\"✨ Natural\",\"⚡ Snappy\",\"🏀 Bouncy\"],defaultValue:\"natural\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"VideoCarouselLinks\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicWidth\":\"400\",\"framerSupportedLayoutHeight\":\"auto\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./VideoCarouselLinks.map"],"mappings":"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"}