{"version":3,"file":"MotionSlideshow.47VWeU2l.mjs","names":["useState","useRef","useMemo","useCallback","effectiveIndex","fmAnimate","_Fragment"],"sources":["https:/framerusercontent.com/modules/j5u3wOWaYRojIaSVxPFD/A3A1wenGQVpcZZDgD882/MotionSlideshow.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useCallback,useEffect,useLayoutEffect,useMemo,useRef,useState,startTransition}from\"react\";import*as React from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{motion,useInView,useMotionValue,animate as fmAnimate}from\"framer-motion\";/**\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 200\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function MotionSlideshow(props){const{slides,autoplay,intervalMs,loop,showArrows,showDots,padding,slideGap,borderRadius,transition,columns,arrows={enabledColor:\"#FFFFFF\",disabledColor:\"rgba(255,255,255,0.5)\",background:\"#000000\",size:19,radius:0,placement:\"bottom-right\",offsetX:10,offsetY:10,hoverScale:1.1,hoverTransition:{type:\"spring\",duration:.3,stiffness:500,damping:30,mass:.7}},progress={outerColor:\"#000000\",padding:\"14px 21px 14px 21px\",radius:\"0px\",gap:14,activeWidth:40,inactiveWidth:17,barHeight:5,activeColor:\"#FFFFFF\",inactiveColor:\"rgba(255,255,255,0.65)\",dotsTransition:{type:\"spring\",stiffness:260,damping:30,mass:.9},placement:\"bottom-center\",offsetX:0,offsetY:12},scroll={enabled:true,snapping:true,edge:\"center\",fluid:false},fade={enabled:false,size:25,color:\"#000000\",opacity:.12},style}=props;const isStatic=useIsStaticRenderer();const[canHover,setCanHover]=useState(false);const viewportRef=useRef(null);const scrollRef=useRef(null);const clipRef=useRef(null);const isInView=useInView(viewportRef,{amount:.3});// Motion value for transform-based carousel motion (when scroll is disabled)\nconst x=useMotionValue(0);const carouselTransition=useMemo(()=>{const t=transition;return t&&typeof t===\"object\"?t:{type:\"spring\",stiffness:320,damping:36,mass:.8};},[transition]);const slideNodes=useMemo(()=>{const arr=Array.isArray(slides)?slides:[];return arr.filter(item=>item?.image).map((item,i)=>{const src=typeof item.image===\"string\"?item.image:item.image?.src;if(!src)return null;return /*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\",height:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",gap:18},children:[/*#__PURE__*/_jsx(\"img\",{src:src,alt:\"\",style:{height:\"100%\",width:\"auto\",maxWidth:\"82%\",objectFit:\"contain\",display:\"block\"}}),/*#__PURE__*/_jsx(\"div\",{style:{fontSize:10,fontWeight:500,color:\"#111\",whiteSpace:\"nowrap\"},children:item.label})]},i);}).filter(Boolean);},[slides]);const count=slideNodes.length;// Loop rendering/state must not depend on snapping or renderer mode.\n// Interactivity/animation is gated elsewhere via isStatic.\nconst loopEnabled=false;const loopScrollEnabled=!!(loopEnabled&&scroll?.enabled);const loopTransformEnabled=!!(loopEnabled&&!scroll?.enabled);const maxIndex=useMemo(()=>{if(count<=0)return 0;if(loopEnabled)return Math.max(0,count-1);const cols=Math.max(1,columns||1);return Math.max(0,count-cols);},[count,columns,loopEnabled]);const clampIndex=useCallback(n=>{if(count<=0)return 0;if(loopEnabled){const m=(n%count+count)%count;return m;}return Math.max(0,Math.min(maxIndex,n));},[count,loopEnabled,maxIndex]);const positionsCount=useMemo(()=>{// Number of navigable positions (dots/arrow steps)\nreturn loopEnabled?count:maxIndex+1;},[loopEnabled,count,maxIndex]);const prefixCount=useMemo(()=>{if(!loopEnabled)return 0;const cols=Math.max(1,columns||1);return Math.min(cols,count);},[columns,count,loopEnabled]);const[index,setIndex]=useState(0);const[visualIndex,setVisualIndex]=useState(()=>{// Initialize visualIndex to the first real slide position in loop mode\nif(loopEnabled&&count>0){const cols=Math.max(1,columns||1);return Math.min(cols,count);}return 0;});const indexRef=useRef(0);const lastIndexRef=useRef(0);const navDirectionRef=useRef(1);const[viewportWidth,setViewportWidth]=useState(0);const[isProgrammaticScroll,setIsProgrammaticScroll]=useState(false);const isProgrammaticScrollRef=useRef(false);const scrollLockTokenRef=useRef(0);const targetScrollLeftRef=useRef(0);const unlockTimeoutRef=useRef(null);const desiredIndexRef=useRef(0);const isNavigatingRef=useRef(false);const pendingResetRef=useRef(false);const rafRef=useRef(null);const scrollEndTimeoutRef=useRef(null);const scrollEndTokenRef=useRef(0);const scrollEndRafRef=useRef(null);const lastScrollEventTsRef=useRef(0);const visualIndexRef=useRef(0);useEffect(()=>{indexRef.current=index;},[index]);useEffect(()=>{visualIndexRef.current=visualIndex;},[visualIndex]);useEffect(()=>{if(typeof window===\"undefined\")return;const mql=window.matchMedia?window.matchMedia(\"(hover: hover)\"):null;const update=()=>{startTransition(()=>setCanHover(!!mql?.matches));};update();if(mql?.addEventListener)mql.addEventListener(\"change\",update);else if(mql?.addListener)mql.addListener(update);return()=>{if(mql?.removeEventListener)mql.removeEventListener(\"change\",update);else if(mql?.removeListener)mql.removeListener(update);if(rafRef.current!=null)window.cancelAnimationFrame(rafRef.current);if(scrollEndTimeoutRef.current!=null)window.clearTimeout(scrollEndTimeoutRef.current);if(scrollEndRafRef.current!=null)window.cancelAnimationFrame(scrollEndRafRef.current);if(unlockTimeoutRef.current!=null)window.clearTimeout(unlockTimeoutRef.current);};},[]);const getNearestVisualIndex=useCallback(el=>{const children=Array.from(el.children);if(!children.length)return 0;const left=el.scrollLeft;let best=0;let bestDist=Infinity;for(let i=0;i<children.length;i++){const d=Math.abs(children[i].offsetLeft-left);if(d<bestDist){bestDist=d;best=i;}}return best;},[]);const getTransitionDurationMs=useCallback(t=>{const anyT=t;const d=typeof anyT?.duration===\"number\"?anyT.duration:undefined;const ms=Math.max(0,Math.min(2,d??.5))*1e3;return ms;},[]);const deriveLogicalFromVisual=useCallback(visual=>{// Clone-aware logical derivation works for BOTH scroll and transform loop modes\nif(!loopEnabled||count<=0)return clampIndex(visual);const prefixN=prefixCount;const realCount=count;const startReal=prefixN;const endReal=prefixN+realCount-1;if(visual<startReal){// In prefix clone area\nconst offset=startReal-visual;return clampIndex(realCount-offset);}else if(visual>endReal){// In suffix clone area\nconst offset=visual-endReal-1;return clampIndex(offset);}else{// In real slide area\nreturn clampIndex(visual-prefixN);}},[clampIndex,count,loopEnabled,prefixCount]);const updateIndices=useCallback((newVisual,newLogical)=>{// Single source of truth for updating both indices atomically\nvisualIndexRef.current=newVisual;startTransition(()=>setVisualIndex(newVisual));const logical=newLogical!==undefined?newLogical:deriveLogicalFromVisual(newVisual);indexRef.current=logical;startTransition(()=>setIndex(logical));},[deriveLogicalFromVisual]);const animateScrollTo=useCallback((el,targetLeft,onComplete)=>{if(typeof window===\"undefined\")return;// Cancel any in-flight programmatic scroll\nif(rafRef.current!=null){window.cancelAnimationFrame(rafRef.current);rafRef.current=null;}if(scrollEndTimeoutRef.current!=null){window.clearTimeout(scrollEndTimeoutRef.current);scrollEndTimeoutRef.current=null;}if(unlockTimeoutRef.current!=null){window.clearTimeout(unlockTimeoutRef.current);unlockTimeoutRef.current=null;}const token=++scrollLockTokenRef.current;targetScrollLeftRef.current=targetLeft;isProgrammaticScrollRef.current=true;isNavigatingRef.current=true;startTransition(()=>setIsProgrammaticScroll(true));const startLeft=el.scrollLeft;const delta=targetLeft-startLeft;if(!isFinite(delta)||Math.abs(delta)<.5){el.scrollLeft=targetLeft;isProgrammaticScrollRef.current=false;isNavigatingRef.current=false;startTransition(()=>setIsProgrammaticScroll(false));onComplete?.();return;}const durationMs=getTransitionDurationMs(carouselTransition);if(!durationMs){el.scrollLeft=targetLeft;isProgrammaticScrollRef.current=false;isNavigatingRef.current=false;startTransition(()=>setIsProgrammaticScroll(false));onComplete?.();return;}const start=window.performance?.now?window.performance.now():Date.now();const easeInOutCubic=x=>x<.5?4*x*x*x:1-Math.pow(-2*x+2,3)/2;const unlock=()=>{if(scrollLockTokenRef.current!==token)return;isProgrammaticScrollRef.current=false;isNavigatingRef.current=false;startTransition(()=>setIsProgrammaticScroll(false));onComplete?.();};// Safety unlock\nunlockTimeoutRef.current=window.setTimeout(unlock,durationMs+200);const tick=()=>{const now=window.performance?.now?window.performance.now():Date.now();const t=Math.min(1,(now-start)/durationMs);const eased=easeInOutCubic(t);el.scrollLeft=startLeft+delta*eased;if(t<1){rafRef.current=window.requestAnimationFrame(tick);}else{rafRef.current=null;unlock();}};rafRef.current=window.requestAnimationFrame(tick);},[carouselTransition,getTransitionDurationMs]);const instantScrollTo=useCallback((el,targetLeft)=>{if(typeof window===\"undefined\")return;// Cancel any in-flight programmatic scroll\nif(rafRef.current!=null){window.cancelAnimationFrame(rafRef.current);rafRef.current=null;}if(scrollEndTimeoutRef.current!=null){window.clearTimeout(scrollEndTimeoutRef.current);scrollEndTimeoutRef.current=null;}if(unlockTimeoutRef.current!=null){window.clearTimeout(unlockTimeoutRef.current);unlockTimeoutRef.current=null;}const token=++scrollLockTokenRef.current;targetScrollLeftRef.current=targetLeft;isProgrammaticScrollRef.current=true;isNavigatingRef.current=true;startTransition(()=>setIsProgrammaticScroll(true));el.scrollLeft=targetLeft;window.requestAnimationFrame(()=>{if(scrollLockTokenRef.current!==token)return;isProgrammaticScrollRef.current=false;isNavigatingRef.current=false;startTransition(()=>setIsProgrammaticScroll(false));});},[]);const scheduleLoopResetIfNeeded=useCallback(currentVisual=>{if(typeof window===\"undefined\")return;if(!loopEnabled)return;if(count<=0)return;if(pendingResetRef.current)return;const prefixN=prefixCount;const realCount=count;const startReal=prefixN;const endReal=prefixN+realCount-1;const startSuffix=prefixN+realCount;const inPrefix=currentVisual<startReal;const inSuffix=currentVisual>=startSuffix;if(!inPrefix&&!inSuffix)return;pendingResetRef.current=true;// Calculate the matching real slide\nconst logical=inPrefix?clampIndex(realCount-(startReal-currentVisual)):clampIndex(currentVisual-startSuffix);const realVisual=logical+prefixN;// Use requestAnimationFrame to ensure the reset happens after the current frame\nwindow.requestAnimationFrame(()=>{pendingResetRef.current=false;if(loopScrollEnabled&&scrollRef.current){const el=scrollRef.current;const realChild=el.children?.[realVisual];if(!realChild)return;// Instant, invisible reposition back to the matching real slide\nconst token=++scrollLockTokenRef.current;isProgrammaticScrollRef.current=true;startTransition(()=>setIsProgrammaticScroll(true));el.scrollLeft=realChild.offsetLeft;updateIndices(realVisual,logical);window.requestAnimationFrame(()=>{if(scrollLockTokenRef.current!==token)return;isProgrammaticScrollRef.current=false;startTransition(()=>setIsProgrammaticScroll(false));});}else if(loopTransformEnabled){// For transform mode, just update the indices\nupdateIndices(realVisual,logical);}});},[clampIndex,count,loopEnabled,loopScrollEnabled,loopTransformEnabled,prefixCount,updateIndices]);const scrollToVisualIndex=useCallback((targetVisual,onComplete)=>{if(!scrollRef.current)return;const child=scrollRef.current.children?.[targetVisual];if(!child)return;// Update indices immediately\nupdateIndices(targetVisual);animateScrollTo(scrollRef.current,child.offsetLeft,()=>{if(loopScrollEnabled&&scrollRef.current){// Single reset path: check if we landed on a clone and reset if needed\nscheduleLoopResetIfNeeded(targetVisual);}onComplete?.();});},[animateScrollTo,loopScrollEnabled,scheduleLoopResetIfNeeded,updateIndices]);const scrollToIndex=useCallback(nextIndex=>{if(!scrollRef.current)return;desiredIndexRef.current=nextIndex;if(loopScrollEnabled){// In loop+scroll mode, movement is driven by visual indices.\nconst currentLogical=indexRef.current;const targetLogical=clampIndex(nextIndex);let visualTarget=targetLogical+prefixCount;// Boundary transitions must go to the clone first to feel continuous\nif(count>0&&currentLogical===count-1&&targetLogical===0&&navDirectionRef.current===1){visualTarget=prefixCount+count// first suffix clone\n;}if(count>0&&currentLogical===0&&targetLogical===count-1&&navDirectionRef.current===-1){visualTarget=prefixCount-1// last prefix clone\n;}// Update indices immediately\nupdateIndices(visualTarget,targetLogical);const child=scrollRef.current.children?.[visualTarget];if(child){animateScrollTo(scrollRef.current,child.offsetLeft,()=>{// Single reset path: only after scroll ends\nscheduleLoopResetIfNeeded(visualTarget);});}return;}const visualTarget=nextIndex;const child=scrollRef.current.children?.[visualTarget];if(child){// Update indices immediately\nupdateIndices(visualTarget);animateScrollTo(scrollRef.current,child.offsetLeft);return;}if(viewportWidth<=0)return;animateScrollTo(scrollRef.current,visualTarget*(viewportWidth+Math.max(0,slideGap||0)));},[animateScrollTo,clampIndex,count,loopScrollEnabled,prefixCount,scheduleLoopResetIfNeeded,slideGap,updateIndices,viewportWidth]);const scrollToVisual=useCallback(visualTarget=>{if(!scrollRef.current)return;// Update indices immediately\nupdateIndices(visualTarget);const child=scrollRef.current.children?.[visualTarget];if(child){animateScrollTo(scrollRef.current,child.offsetLeft,()=>{if(loopScrollEnabled&&scrollRef.current){// Single reset path: check if we landed on a clone and reset if needed\nscheduleLoopResetIfNeeded(visualTarget);}});}},[animateScrollTo,loopScrollEnabled,scheduleLoopResetIfNeeded,updateIndices]);const trackX=useMemo(()=>{if(scroll?.enabled)return 0;if(viewportWidth<=0)return 0;const gap=Math.max(0,slideGap||0);const cols=Math.max(1,columns||1);const itemW=viewportWidth/cols-gap*(cols-1)/cols;const stride=itemW+gap;// In loop transform mode, use visualIndex instead of logical index (even in static render)\nconst effectiveIndex=loopEnabled?visualIndex:index;return-effectiveIndex*stride;},[columns,index,visualIndex,loopEnabled,scroll?.enabled,slideGap,viewportWidth]);const staticTrackTransform=useMemo(()=>{if(!isStatic)return undefined;if(scroll?.enabled)return undefined;return`translate3d(${trackX}px, 0, 0)`;},[isStatic,scroll?.enabled,trackX]);useEffect(()=>{// When scroll is enabled, rely on native scrolling; keep motion transform reset.\nif(scroll?.enabled){if(isStatic)x.set(0);else{const a=fmAnimate(x,0,{type:\"tween\",duration:.001});return()=>a?.stop?.();}return;}// Transform-based motion when scroll is disabled\nif(isStatic){x.set(trackX);return;}const a=fmAnimate(x,trackX,{...carouselTransition});return()=>{a?.stop?.();};},[trackX,scroll?.enabled,isStatic,x,carouselTransition]);const goTo=useCallback(next=>{const clamped=clampIndex(next);if(loopEnabled){// In loop mode, convert logical to visual\nconst visualTarget=clamped+prefixCount;updateIndices(visualTarget,clamped);}else{updateIndices(clamped,clamped);}if(scroll?.enabled)scrollToIndex(clamped);},[clampIndex,loopEnabled,prefixCount,scroll?.enabled,scrollToIndex,updateIndices]);const goToFromDot=useCallback(next=>{const current=indexRef.current;// Determine direction based on logical indices\nif(loopEnabled&&count>0){// In loop mode, determine the shortest path\nconst forward=(next-current+count)%count;const backward=(current-next+count)%count;navDirectionRef.current=forward<=backward?1:-1;}else{navDirectionRef.current=next>=current?1:-1;}lastIndexRef.current=current;if(loopEnabled){// In loop mode, convert logical dot index to visual index\nconst targetVisual=next+prefixCount;// Update indices immediately\nupdateIndices(targetVisual,next);if(scroll?.enabled&&scrollRef.current){const child=scrollRef.current.children?.[targetVisual];if(child){animateScrollTo(scrollRef.current,child.offsetLeft);}}return;}goTo(next);},[animateScrollTo,count,goTo,loopEnabled,prefixCount,scroll?.enabled,updateIndices]);const next=useCallback(()=>{navDirectionRef.current=1;lastIndexRef.current=indexRef.current;// Both scroll and transform modes use the same visual-index-based loop logic\nif(loopEnabled){const currentVisual=visualIndexRef.current;const nextVisual=currentVisual+1;// Update indices immediately\nconst nextLogical=deriveLogicalFromVisual(nextVisual);updateIndices(nextVisual,nextLogical);if(scroll?.enabled){// Scroll mode: animate scroll position\nif(loopScrollEnabled&&scrollRef.current){const child=scrollRef.current.children?.[nextVisual];if(child){animateScrollTo(scrollRef.current,child.offsetLeft,()=>{scheduleLoopResetIfNeeded(nextVisual);});}}}else{// Transform mode: schedule reset after animation completes\nconst durationMs=getTransitionDurationMs(carouselTransition);window.setTimeout(()=>{scheduleLoopResetIfNeeded(nextVisual);},durationMs);}return;}// Non-loop mode\nif(scroll?.enabled){const nextIndex=clampIndex(indexRef.current+1);scrollToIndex(nextIndex);}else{goTo(indexRef.current+1);}},[animateScrollTo,clampIndex,deriveLogicalFromVisual,goTo,loopEnabled,scheduleLoopResetIfNeeded,scroll?.enabled,scrollToIndex,getTransitionDurationMs,carouselTransition,updateIndices,loopScrollEnabled]);const prev=useCallback(()=>{navDirectionRef.current=-1;lastIndexRef.current=indexRef.current;// Both scroll and transform modes use the same visual-index-based loop logic\nif(loopEnabled){const currentVisual=visualIndexRef.current;const nextVisual=currentVisual-1;// Update indices immediately\nconst nextLogical=deriveLogicalFromVisual(nextVisual);updateIndices(nextVisual,nextLogical);if(scroll?.enabled){// Scroll mode: animate scroll position\nif(loopScrollEnabled&&scrollRef.current){const child=scrollRef.current.children?.[nextVisual];if(child){animateScrollTo(scrollRef.current,child.offsetLeft,()=>{scheduleLoopResetIfNeeded(nextVisual);});}}}else{// Transform mode: schedule reset after animation completes\nconst durationMs=getTransitionDurationMs(carouselTransition);window.setTimeout(()=>{scheduleLoopResetIfNeeded(nextVisual);},durationMs);}return;}// Non-loop mode\nif(scroll?.enabled){const nextIndex=clampIndex(indexRef.current-1);scrollToIndex(nextIndex);}else{goTo(indexRef.current-1);}},[animateScrollTo,clampIndex,deriveLogicalFromVisual,goTo,loopEnabled,scheduleLoopResetIfNeeded,scroll?.enabled,scrollToIndex,getTransitionDurationMs,carouselTransition,updateIndices,loopScrollEnabled]);// Autoplay effect\nuseEffect(()=>{if(isStatic)return;if(!autoplay)return;if(count<=1)return;if(!isInView)return;const interval=Math.max(200,intervalMs||3e3);const timer=window.setInterval(()=>{next();},interval);return()=>{window.clearInterval(timer);};},[autoplay,count,index,intervalMs,isInView,isStatic,next]);useEffect(()=>{// Keep index valid if slide count changes\nif(count<=0){startTransition(()=>setIndex(0));return;}if(!loopEnabled&&index>maxIndex){startTransition(()=>setIndex(maxIndex));}},[count,index,loopEnabled,maxIndex]);useEffect(()=>{if(isStatic)return;if(typeof window===\"undefined\")return;const el=clipRef.current||viewportRef.current;if(!el)return;const update=()=>{// Use the visible viewport width (excludes outer padding)\nconst w=el.clientWidth||el.getBoundingClientRect().width||0;startTransition(()=>setViewportWidth(w));};update();if(typeof ResizeObserver!==\"undefined\"){const ro=new ResizeObserver(()=>update());ro.observe(el);return()=>ro.disconnect();}else{window.addEventListener(\"resize\",update);return()=>window.removeEventListener(\"resize\",update);}},[isStatic]);useLayoutEffect(()=>{// Hard requirement: correct initial visual position must be in place before first paint.\nif(typeof window===\"undefined\")return;if(!loopEnabled)return;if(count<=0)return;const startVisual=prefixCount;const startLogical=0;// Ensure state is synced immediately\nif(visualIndexRef.current!==startVisual||indexRef.current!==startLogical){updateIndices(startVisual,startLogical);}// If scroll is enabled, we must also set scrollLeft before paint.\nif(scroll?.enabled&&scrollRef.current){const el=scrollRef.current;const child=el.children?.[startVisual];if(!child)return;const expected=child.offsetLeft;if(Math.abs(el.scrollLeft-expected)>=1){const token=++scrollLockTokenRef.current;isProgrammaticScrollRef.current=true;startTransition(()=>setIsProgrammaticScroll(true));el.scrollLeft=expected;window.requestAnimationFrame(()=>{if(scrollLockTokenRef.current!==token)return;isProgrammaticScrollRef.current=false;startTransition(()=>setIsProgrammaticScroll(false));});}}},[count,loopEnabled,prefixCount,scroll?.enabled,updateIndices]);const canGoPrev=index>0;const canGoNext=index<maxIndex;const isAutoWidth=style?.width===undefined||style?.width===\"auto\";const isAutoHeight=style?.height===undefined||style?.height===\"auto\";const containerStyle=useMemo(()=>({...style,position:\"relative\",width:\"100%\",height:\"100%\",overflow:\"visible\",padding,borderRadius,boxSizing:\"border-box\",minWidth:isAutoWidth?400:0,minHeight:isAutoHeight?200:0}),[style,padding,borderRadius,isAutoWidth,isAutoHeight]);const slideClipStyle=useMemo(()=>({position:\"relative\",width:\"100%\",height:\"100%\",overflow:\"visible\",borderRadius}),[borderRadius]);const fadeOverlayStyle=useMemo(()=>{const enabled=!!fade?.enabled;const widthPct=Math.max(0,Math.min(50,fade?.size??0));return{enabled,widthPct};},[fade]);const slideWidth=useMemo(()=>{const cols=Math.max(1,columns||1);const gap=Math.max(0,slideGap||0);// When scroll is disabled, the track uses width: max-content, so percentage widths can collapse.\n// Use pixel-based sizing derived from the visible viewport width.\nif(!scroll?.enabled){if(!viewportWidth){const widthPercent=100/cols;return`calc(${widthPercent}% - ${gap*(cols-1)/cols}px)`;}const w=viewportWidth/cols-gap*(cols-1)/cols;return`${Math.max(0,w)}px`;}// Scroll mode can use percentage widths for true responsiveness\nconst widthPercent=100/cols;return`calc(${widthPercent}% - ${gap*(cols-1)/cols}px)`;},[columns,scroll?.enabled,slideGap,viewportWidth]);const trackUsesMaxContent=useMemo(()=>{return!scroll?.enabled&&viewportWidth>0;},[scroll?.enabled,viewportWidth]);const arrowBase=useMemo(()=>({appearance:\"none\",border:\"none\",background:\"transparent\",width:\"auto\",height:\"auto\",borderRadius:0,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",cursor:\"pointer\",userSelect:\"none\",WebkitTapHighlightColor:\"transparent\"}),[]);const arrowIconHoverTransition=useMemo(()=>{const t=arrows?.hoverTransition;return t&&typeof t===\"object\"?t:{type:\"spring\",duration:.3,stiffness:500,damping:30,mass:.7};},[arrows?.hoverTransition]);const arrowGroupStyle=useMemo(()=>({display:\"flex\",gap:0,background:arrows.background,borderRadius:arrows.radius,overflow:\"hidden\",width:\"max-content\",height:\"max-content\"}),[arrows.background,arrows.radius]);const arrowWrap=useMemo(()=>{const isTop=arrows.placement.startsWith(\"top\");const isBottom=arrows.placement.startsWith(\"bottom\");const isLeft=arrows.placement.endsWith(\"left\");const isCenter=arrows.placement.endsWith(\"center\");const isRight=arrows.placement.endsWith(\"right\");const placementStyle={position:\"absolute\",zIndex:3,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",cursor:\"pointer\",userSelect:\"none\",WebkitTapHighlightColor:\"transparent\"};if(isTop)placementStyle.top=arrows.offsetY;if(isBottom)placementStyle.bottom=arrows.offsetY;if(isLeft)placementStyle.left=arrows.offsetX;if(isRight)placementStyle.right=arrows.offsetX;if(isCenter){placementStyle.left=`calc(50% + ${arrows.offsetX}px)`;placementStyle.transform=`translateX(-50%)`;}return placementStyle;},[arrows.offsetX,arrows.offsetY,arrows.placement]);const progressWrap=useMemo(()=>{const isTop=progress.placement.startsWith(\"top\");const isBottom=progress.placement.startsWith(\"bottom\");const isLeft=progress.placement.endsWith(\"left\");const isCenter=progress.placement.endsWith(\"center\");const isRight=progress.placement.endsWith(\"right\");const placementStyle={position:\"absolute\",zIndex:3,display:\"flex\",gap:progress.gap,padding:progress.padding,borderRadius:progress.radius,background:progress.outerColor,alignItems:\"center\"};if(isTop)placementStyle.top=progress.offsetY;if(isBottom)placementStyle.bottom=progress.offsetY;if(isLeft)placementStyle.left=progress.offsetX;if(isRight)placementStyle.right=progress.offsetX;if(isCenter){placementStyle.left=`calc(50% + ${progress.offsetX}px)`;placementStyle.transform=`translateX(-50%)`;}return placementStyle;},[progress.gap,progress.offsetX,progress.offsetY,progress.outerColor,progress.padding,progress.placement,progress.radius]);const renderPlaceholder=count===0;// For infinite looping, we render prefixed and suffixed clones\nconst displaySlides=useMemo(()=>{if(!loopEnabled)return slideNodes;const cols=Math.max(1,columns||1);if(count===0)return slideNodes;const prefix=slideNodes.slice(Math.max(0,count-cols));const suffix=slideNodes.slice(0,Math.min(cols,count));return[...prefix,...slideNodes,...suffix];},[columns,count,loopEnabled,slideNodes]);const dotsTransition=useMemo(()=>{const t=progress?.dotsTransition;return t&&typeof t===\"object\"?t:{type:\"spring\",stiffness:260,damping:30,mass:.9};},[progress]);return /*#__PURE__*/_jsx(\"div\",{ref:viewportRef,style:containerStyle,role:\"region\",\"aria-roledescription\":\"carousel\",\"aria-label\":\"Motion Slideshow\",tabIndex:0,onKeyDown:isStatic?undefined:e=>{if(e.key===\"ArrowLeft\")prev();if(e.key===\"ArrowRight\")next();},children:renderPlaceholder?/*#__PURE__*/_jsx(\"div\",{style:{position:\"relative\",width:\"100%\",height:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",background:\"rgba(0,0,0,0.04)\",border:\"1px dashed rgba(0,0,0,0.18)\",borderRadius:10,color:\"rgba(0,0,0,0.65)\",fontSize:14,userSelect:\"none\",boxSizing:\"border-box\"},children:/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",alignItems:\"center\",justifyContent:\"center\",gap:10,padding:18,textAlign:\"center\",maxWidth:320},children:[/*#__PURE__*/_jsx(\"svg\",{width:\"36\",height:\"36\",viewBox:\"0 0 24 24\",fill:\"none\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M12 2l2.62 6.74 7.25.53-5.56 4.6 1.76 7.02L12 17.9 5.93 20.9l1.76-7.02-5.56-4.6 7.25-.53L12 2z\",fill:\"rgba(136,85,255,0.75)\"})}),/*#__PURE__*/_jsx(\"div\",{style:{fontSize:16,fontWeight:600,color:\"rgba(0,0,0,0.75)\"},children:\"Connect to Content\"}),/*#__PURE__*/_jsx(\"div\",{style:{lineHeight:\"1.35em\"},children:\"Add layers or components to set up the slideshow.\"})]})}):/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(\"div\",{style:slideClipStyle,children:[/*#__PURE__*/_jsx(\"div\",{ref:clipRef,style:{position:\"relative\",width:\"100%\",height:\"100%\",overflow:\"hidden\",borderRadius,...fadeOverlayStyle.enabled&&fadeOverlayStyle.widthPct>0?{WebkitMaskImage:`linear-gradient(to right, rgba(0,0,0,0) 0%, rgba(0,0,0,1) ${fadeOverlayStyle.widthPct}%, rgba(0,0,0,1) ${100-fadeOverlayStyle.widthPct}%, rgba(0,0,0,0) 100%)`,maskImage:`linear-gradient(to right, rgba(0,0,0,0) 0%, rgba(0,0,0,1) ${fadeOverlayStyle.widthPct}%, rgba(0,0,0,1) ${100-fadeOverlayStyle.widthPct}%, rgba(0,0,0,0) 100%)`}:null},children:/*#__PURE__*/_jsx(\"div\",{style:{position:\"relative\",width:\"100%\",height:\"100%\",overflow:\"hidden\",borderRadius},children:/*#__PURE__*/_jsx(motion.div,{ref:scrollRef,style:{position:\"relative\",width:scroll?.enabled?\"100%\":trackUsesMaxContent?\"max-content\":\"100%\",height:\"100%\",minWidth:0,display:\"flex\",flexDirection:\"row\",gap:Math.max(0,slideGap||0),overflowX:scroll?.enabled?\"auto\":\"hidden\",overflowY:\"hidden\",scrollSnapType:isProgrammaticScroll||!(scroll?.enabled&&scroll?.snapping)?undefined:`x ${scroll?.fluid?\"proximity\":\"mandatory\"}`,WebkitOverflowScrolling:\"touch\",scrollbarWidth:\"none\",msOverflowStyle:\"none\",willChange:scroll?.enabled?undefined:\"transform\",...scroll?.enabled?null:isStatic?{transform:staticTrackTransform,x:undefined}:{x}},onScroll:isStatic||!scroll?.enabled?undefined:e=>{const el=e.currentTarget;// During programmatic navigation, ignore scroll events to avoid fighting\nif(isProgrammaticScrollRef.current||isNavigatingRef.current)return;// This path is only for manual user scrolling\nconst rawVisual=getNearestVisualIndex(el);// Only update if actually changed\nif(rawVisual===visualIndexRef.current)return;if(loopEnabled&&count>0){const nextLogical=deriveLogicalFromVisual(rawVisual);if(nextLogical!==indexRef.current){const current=indexRef.current;if(loop){const forward=(nextLogical-current+count)%count;const backward=(current-nextLogical+count)%count;navDirectionRef.current=forward<=backward?1:-1;}else{navDirectionRef.current=nextLogical>=current?1:-1;}lastIndexRef.current=current;}updateIndices(rawVisual,nextLogical);// Single reset path: only after manual scroll ends\nlastScrollEventTsRef.current=window.performance?.now?window.performance.now():Date.now();if(scrollEndRafRef.current==null){const endToken=++scrollEndTokenRef.current;const tick=()=>{if(scrollEndTokenRef.current!==endToken){scrollEndRafRef.current=null;return;}const now=window.performance?.now?window.performance.now():Date.now();const idle=now-(lastScrollEventTsRef.current||0);if(idle<90){scrollEndRafRef.current=window.requestAnimationFrame(tick);return;}scrollEndRafRef.current=null;if(!scrollRef.current)return;const currentVisual=getNearestVisualIndex(scrollRef.current);scheduleLoopResetIfNeeded(currentVisual);};scrollEndRafRef.current=window.requestAnimationFrame(tick);}return;}const nextIndex=clampIndex(rawVisual);if(nextIndex!==indexRef.current){navDirectionRef.current=nextIndex>=indexRef.current?1:-1;lastIndexRef.current=indexRef.current;}updateIndices(rawVisual,nextIndex);},children:displaySlides.map((node,i)=>{const isActive=loopEnabled?i===visualIndex:i===index;return /*#__PURE__*/_jsx(\"div\",{style:{flex:`0 0 ${slideWidth}`,width:slideWidth,height:\"100%\",minWidth:0,position:\"relative\",overflow:\"hidden\",scrollSnapAlign:scroll?.snapping?scroll.edge:undefined,scrollSnapStop:scroll?.snapping&&!scroll?.fluid?\"always\":undefined},\"aria-hidden\":!isActive,children:/*#__PURE__*/_jsx(\"div\",{style:{position:\"relative\",width:\"100%\",height:\"100%\",minWidth:0},children:/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,width:\"100%\",height:\"100%\"},children:/*#__PURE__*/React.isValidElement(node)?/*#__PURE__*/React.cloneElement(node,{style:{...node.props.style||{},width:\"100%\",height:\"100%\",minWidth:0,minHeight:0}}):node})})},i);})})})}),showArrows&&count>1&&/*#__PURE__*/_jsx(\"div\",{style:arrowWrap,\"aria-label\":\"Motion Slideshow arrows\",children:/*#__PURE__*/_jsxs(\"div\",{style:arrowGroupStyle,role:\"group\",\"aria-label\":\"Slide controls\",children:[/*#__PURE__*/_jsx(motion.button,{type:\"button\",\"aria-label\":\"Previous slide\",onClick:isStatic?undefined:prev,disabled:!canGoPrev,style:{...arrowBase,color:canGoPrev?arrows.enabledColor:arrows.disabledColor,cursor:canGoPrev?\"pointer\":\"default\",padding:\"7px 4px 7px 9px\"},initial:false,whileHover:canHover&&canGoPrev?{scale:arrows.hoverScale}:undefined,transition:arrowIconHoverTransition,children:/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",transformOrigin:\"50% 50%\",willChange:\"transform\",pointerEvents:\"none\"},children:/*#__PURE__*/_jsx(\"svg\",{width:arrows.size,height:arrows.size,viewBox:\"3 3 18 18\",fill:\"none\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M15 18l-6-6 6-6\",stroke:\"currentColor\",strokeWidth:\"2.5\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})})})}),/*#__PURE__*/_jsx(motion.button,{type:\"button\",\"aria-label\":\"Next slide\",onClick:isStatic?undefined:next,disabled:!canGoNext,style:{...arrowBase,color:canGoNext?arrows.enabledColor:arrows.disabledColor,cursor:canGoNext?\"pointer\":\"default\",padding:\"7px 9px 7px 4px\"},initial:false,whileHover:canHover&&canGoNext?{scale:arrows.hoverScale}:undefined,transition:arrowIconHoverTransition,children:/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",transformOrigin:\"50% 50%\",willChange:\"transform\",pointerEvents:\"none\"},children:/*#__PURE__*/_jsx(\"svg\",{width:arrows.size,height:arrows.size,viewBox:\"3 3 18 18\",fill:\"none\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M9 6l6 6-6 6\",stroke:\"currentColor\",strokeWidth:\"2.5\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})})})})]})})]}),showDots&&(loopEnabled?count:maxIndex+1)>1&&/*#__PURE__*/_jsx(\"div\",{style:progressWrap,role:\"tablist\",\"aria-label\":\"Slide navigation\",children:Array.from({length:loopEnabled?count:maxIndex+1}).map((_,i)=>{const active=i===index;const deactivating=i===lastIndexRef.current&&!active;// Calculate originX based on direction and loop boundaries\nlet originX=\"0%\";if(active){// When activating, fill in the direction of navigation\noriginX=navDirectionRef.current===1?\"0%\":\"100%\";}else if(deactivating){// When deactivating, empty in the direction of navigation\noriginX=navDirectionRef.current===1?\"100%\":\"0%\";}const w=active?progress.activeWidth:progress.inactiveWidth;return isStatic?/*#__PURE__*/_jsx(\"button\",{type:\"button\",role:\"tab\",\"aria-selected\":active,\"aria-label\":`Go to slide ${i+1}`,onClick:isStatic?undefined:()=>goToFromDot(i),style:{width:w,height:progress.barHeight,borderRadius:0,border:\"none\",padding:0,background:progress.inactiveColor,cursor:\"pointer\",position:\"relative\",overflow:\"hidden\"},children:/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,background:progress.activeColor,width:active?\"100%\":\"0%\"}})},i):/*#__PURE__*/_jsx(motion.button,{type:\"button\",role:\"tab\",\"aria-selected\":active,\"aria-label\":`Go to slide ${i+1}`,onClick:isStatic?undefined:()=>goToFromDot(i),initial:false,animate:{width:w},transition:dotsTransition,style:{height:progress.barHeight,borderRadius:0,border:\"none\",padding:0,cursor:\"pointer\",position:\"relative\",overflow:\"hidden\",background:progress.inactiveColor},children:/*#__PURE__*/_jsx(motion.div,{\"aria-hidden\":\"true\",initial:false,animate:{scaleX:active?1:0},transition:dotsTransition,style:{position:\"absolute\",inset:0,background:progress.activeColor,transformOrigin:`${originX} 50%`}})},i);})})]})});}addPropertyControls(MotionSlideshow,{slides:{type:ControlType.Array,title:\"Slides\",control:{type:ControlType.Object,controls:{image:{type:ControlType.ResponsiveImage,title:\"Image\"},label:{type:ControlType.String,title:\"Label\",defaultValue:\"WEEK 1\"}}},defaultValue:[],maxCount:10},columns:{type:ControlType.Number,title:\"Columns\",defaultValue:1,min:1,max:10,step:1,displayStepper:true},autoplay:{type:ControlType.Boolean,title:\"Autoplay\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},intervalMs:{type:ControlType.Number,title:\"Interval\",defaultValue:3e3,min:200,max:2e4,step:100,unit:\"ms\",hidden:({autoplay})=>!autoplay},loop:{type:ControlType.Boolean,title:\"Loop\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\",hidden:()=>true},showArrows:{type:ControlType.Boolean,title:\"Arrows\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},arrows:{type:ControlType.Object,title:\"Arrows\",hidden:({showArrows})=>!showArrows,controls:{enabledColor:{type:ControlType.Color,title:\"Enabled\",defaultValue:\"#FFFFFF\"},disabledColor:{type:ControlType.Color,title:\"Disabled\",defaultValue:\"rgba(255,255,255,0.5)\"},background:{type:ControlType.Color,title:\"Frame\",defaultValue:\"#000000\"},size:{type:ControlType.Number,title:\"Icon\",defaultValue:19,min:10,max:40,step:1,unit:\"px\"},radius:{type:ControlType.Number,title:\"Radius\",defaultValue:0,min:0,max:999,step:1,unit:\"px\"},placement:{type:ControlType.Enum,title:\"Placement\",options:[\"top-left\",\"top-center\",\"top-right\",\"bottom-left\",\"bottom-center\",\"bottom-right\"],optionTitles:[\"Top Left\",\"Top Center\",\"Top Right\",\"Bottom Left\",\"Bottom Center\",\"Bottom Right\"],defaultValue:\"bottom-right\"},offsetX:{type:ControlType.Number,title:\"X\",defaultValue:10,min:-500,max:500,step:1,unit:\"px\"},offsetY:{type:ControlType.Number,title:\"Y\",defaultValue:10,min:-500,max:500,step:1,unit:\"px\"},hoverScale:{type:ControlType.Number,title:\"Hover Scale\",defaultValue:1.1,min:1,max:1.5,step:.01},hoverTransition:{type:ControlType.Transition,title:\"Hover Transition\",defaultValue:{type:\"spring\",duration:.3,stiffness:500,damping:30,mass:.7}}}},showDots:{type:ControlType.Boolean,title:\"Dots\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},progress:{type:ControlType.Object,title:\"Dots\",hidden:({showDots})=>!showDots,controls:{outerColor:{type:ControlType.Color,title:\"Outer\",defaultValue:\"#000000\"},padding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"14px 21px 14px 21px\"},radius:{type:ControlType.BorderRadius,title:\"Radius\",defaultValue:\"0px\"},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:14,min:0,max:60,step:1,unit:\"px\"},activeWidth:{type:ControlType.Number,title:\"Active W\",defaultValue:40,min:4,max:200,step:1,unit:\"px\"},inactiveWidth:{type:ControlType.Number,title:\"Inactive W\",defaultValue:17,min:4,max:200,step:1,unit:\"px\"},barHeight:{type:ControlType.Number,title:\"Bar H\",defaultValue:5,min:2,max:40,step:1,unit:\"px\"},activeColor:{type:ControlType.Color,title:\"Active\",defaultValue:\"#FFFFFF\"},inactiveColor:{type:ControlType.Color,title:\"Inactive\",defaultValue:\"rgba(255,255,255,0.65)\"},dotsTransition:{type:ControlType.Transition,title:\"Transition\",defaultValue:{type:\"spring\",stiffness:260,damping:30,mass:.9}},placement:{type:ControlType.Enum,title:\"Placement\",options:[\"top-left\",\"top-center\",\"top-right\",\"bottom-left\",\"bottom-center\",\"bottom-right\"],optionTitles:[\"Top Left\",\"Top Center\",\"Top Right\",\"Bottom Left\",\"Bottom Center\",\"Bottom Right\"],defaultValue:\"bottom-center\"},offsetX:{type:ControlType.Number,title:\"X\",defaultValue:0,min:-500,max:500,step:1,unit:\"px\"},offsetY:{type:ControlType.Number,title:\"Y\",defaultValue:12,min:-500,max:500,step:1,unit:\"px\"}}},padding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"0px\"},slideGap:{type:ControlType.Number,title:\"Slide Gap\",defaultValue:0,min:0,max:200,step:1,unit:\"px\"},borderRadius:{type:ControlType.BorderRadius,title:\"Radius\",defaultValue:\"0px\"},fade:{type:ControlType.Object,title:\"Side Fade\",controls:{enabled:{type:ControlType.Boolean,title:\"Fade\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\"},size:{type:ControlType.Number,title:\"Width\",defaultValue:25,min:0,max:50,step:1,unit:\"%\",hidden:fadeProps=>!fadeProps?.enabled}}},scroll:{type:ControlType.Object,title:\"Snapping\",controls:{enabled:{type:ControlType.Boolean,title:\"Enable\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\"},snapping:{type:ControlType.Boolean,title:\"Snapping\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\",hidden:({scroll})=>!scroll?.enabled},edge:{type:ControlType.Enum,title:\"Edge\",options:[\"start\",\"center\",\"end\"],optionTitles:[\"Start\",\"Center\",\"End\"],defaultValue:\"center\",hidden:({scroll})=>!scroll?.enabled||!scroll?.snapping},fluid:{type:ControlType.Boolean,title:\"Fluid\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\",hidden:({scroll})=>!scroll?.enabled||!scroll?.snapping}}},transition:{type:ControlType.Transition,title:\"Transition\",description:\"Built by Matthias \\xd6lschlegel 💪\\n[Explore more components](https://framer.link/FVXAdCH)\",defaultValue:{type:\"spring\",stiffness:320,damping:36,mass:.8}}});MotionSlideshow.displayName=\"Motion Slideshow\";\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"MotionSlideshow\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"fixed\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"400\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerIntrinsicHeight\":\"200\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MotionSlideshow.map"],"mappings":"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"}