{"version":3,"file":"NativeInfiniteCarousel.DOzAzfP3.mjs","names":["Children","useRef","useCallback","useState","useEffectEvent","startTransition","useSyncExternalStore","useCallback","useState","Children","isValidElement","useId","useRef","_Fragment"],"sources":["https:/ga.jspm.io/npm:use-effect-event@2.0.3/dist/index.js","https:/framerusercontent.com/modules/zvkTOpMSuRzRhLzZZIwG/SoySr8qXfujm3XNgVW27/SlideShow.js","https:/framerusercontent.com/modules/IGDPR6Qou7g3X7V7J1CW/E0utB0dFuLaq7gBz0fCl/NativeInfiniteCarousel.js"],"sourcesContent":["import e from\"react\";const n=e.createContext(!0);function r(){throw new Error(\"A function wrapped in useEffectEvent can't be called during rendering.\")}const t=\"use\"in e?()=>{try{return e.use(n)}catch{return!1}}:()=>!1;function c(n){const c=e.useRef(r);return e.useInsertionEffect((()=>{c.current=n}),[n]),(...e)=>{t()&&r();const n=c.current;return n(...e)}}export{c as useEffectEvent};\n//# sourceMappingURL=index.js.map\n","// ⚠️⚠️⚠️⚠️⚠️\n// Edit these files in https://github.com/framer/FramerCodeComponents\n// ⚠️⚠️⚠️⚠️⚠️\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{resize}from\"@motionone/dom\";import{ControlType,RenderTarget,addPropertyControls,withCSS}from\"framer\";import{LayoutGroup,animate,frame,mix,motion,useInView,useMotionValue,usePageInView,useTransform,wrap}from\"framer-motion\";import{Children,cloneElement,memo,startTransition,useCallback,useEffect,useLayoutEffect,useRef,useState}from\"react\";import{useEffectEvent}from\"use-effect-event\";const slideshowClassName=\"framer-slideshow\";const slideshowAxisXClassName=\"framer-slideshow-axis-x\";const slideshowAxisYClassName=\"framer-slideshow-axis-y\";const slideshowDirectionMultiplierVariable=\"--framer-dir-multiplier\";const slideshowDirectionMultiplier=`var(${slideshowDirectionMultiplierVariable}, -1)`;function SlideshowWithoutCSS(props){/**\n     * Properties\n     */const{slots=[],startFrom,direction,effectsOptions,autoPlayControl,dragControl,widthSizing,heightSizing,alignment,gap,padding,paddingPerSide,paddingTop,paddingRight,paddingBottom,paddingLeft,itemAmount:visibleItemsCount,fadeOptions,intervalControl,transitionControl,arrowOptions,borderRadius,progressOptions,style}=props;const{effectsOpacity,effectsScale,effectsRotate,effectsPerspective,effectsHover,playOffscreen}=effectsOptions;const{fadeContent,overflow,fadeWidth,fadeInset,fadeAlpha}=fadeOptions;const{showMouseControls,arrowSize,arrowRadius,arrowFill,leftArrow,rightArrow,arrowShouldSpace=true,arrowShouldFadeIn=false,arrowPosition,arrowPadding,arrowGap,arrowPaddingTop,arrowPaddingRight,arrowPaddingBottom,arrowPaddingLeft}=arrowOptions;const{showProgressDots,dotSize,dotsInset,dotsRadius,dotsPadding,dotsGap,dotsFill,dotsBackground,dotsActiveOpacity,dotsOpacity,dotsBlur}=progressOptions;const paddingValue=paddingPerSide?`${paddingTop}px ${paddingRight}px ${paddingBottom}px ${paddingLeft}px`:`${padding}px`;/**\n     * Checks\n     */const isCanvas=RenderTarget.current()===RenderTarget.canvas;// Remove empty slots (such as hidden layers)\nconst filteredSlots=slots.filter(Boolean);const totalItemsCount=Children.count(filteredSlots);const hasChildren=totalItemsCount>0;/**\n     * Empty state for Canvas\n     */if(!hasChildren){return /*#__PURE__*/_jsxs(\"section\",{style:placeholderStyles,children:[/*#__PURE__*/_jsx(\"div\",{style:emojiStyles,children:\"⭐️\"}),/*#__PURE__*/_jsx(\"p\",{style:titleStyles,children:\"Connect to Content\"}),/*#__PURE__*/_jsx(\"p\",{style:subtitleStyles,children:\"Add layers or components to make infinite auto-playing slideshows.\"})]});}/**\n     * Refs, State\n     */const parentRef=useRef(null);const parentSizeRef=useRef(null);const parentRefFn=useCallback(node=>{parentRef.current=node;if(parentRef.current)scheduleMeasure();},[]);const[size,setSize]=useState({parent:null,children:null,item:null,itemWidth:null,itemHeight:null,viewportLength:null});const isHorizontal=direction===\"left\"||direction===\"right\";const writingDirection=useWritingDirection();const rtlDirectionModifier=isHorizontal&&writingDirection===\"rtl\"?-1:1;/* For pausing on hover */const[isHovering,setIsHovering]=useState(false);const[shouldPlayOnHover,setShouldPlayOnHover]=useState(autoPlayControl);/* For cursor updates */const[isMouseDown,setIsMouseDown]=useState(false);/* For SSR / initial render */const isInitialized=size?.item!==null&&size?.parent!==null&&writingDirection!==null;/**\n     * Array for children\n     */// Normally, the user would provide like 10 slides (totalItemsCount == 10) and only show one at a\n// time (visibleItemsCount == 1). In these cases, extraCopyCount == 1, and we only render 3 extra\n// duplicates in the live mode or no duplicates at all in the SSR or on Canvas.\n// However, sometimes, the user might things like\n// - provide totalItemsCount = 5, visibleItemsCount = 3, startFrom = 4 → we need one more duplicate to continue the loop\n//   and render two more slides\n// - or: totalItemsCount = 2, visibleItemsCount = 10 → we need three more duplicates to fill the whole view of the slideshow\n// In these cases, we produce extra copies of the children.\nconst extraCopyCount=Math.ceil((startFrom+visibleItemsCount)/totalItemsCount);let dupedChildren=[];let duplicateBy=extraCopyCount*4;if(isCanvas||!isInitialized){duplicateBy=extraCopyCount;}/**\n     * Measure parent and derive item sizes\n     *//* Calculate the new value to animate to */const[currentItem,setCurrentItem]=useState(startFrom+totalItemsCount);/* Animate whenever currentItem changes */useEffect(()=>{if(!size.item||!writingDirection)return;const computedNewPosition=-1*currentItem*((size.item??0)+gap)*(writingDirection===\"rtl\"?-1:1);if(xOrY.get()!==computedNewPosition){animate(xOrY,computedNewPosition,transitionControl);}},[currentItem,size.item,gap,writingDirection]);const measure=()=>{const parentSize=parentSizeRef.current;if(!parentSize)return;const parentWidth=parentSize.width;const parentHeight=parentSize.height;const parentLength=isHorizontal?parentWidth:parentHeight;const visibleItems=Math.max(1,visibleItemsCount);// Given that slides are uniformly sized, we can calculate their size based on the parent’s size.\n// This saves us from the trouble of reading child boxes, which is surprisingly tricky:\n// - offsetWidth/Height is a rounded integer, which leads to\n//   off-by-a-few-px positioning errors when the parent has a fractional width\n// - getBoundingClientRect() returns a fractional width/height, but\n//   with transforms applied (whereas we need a pre-transform one)\nconst itemSize=Math.max(0,(parentLength-gap*(visibleItems-1))/visibleItems);const childrenLength=totalItemsCount*(itemSize+gap);const itemWidth=isHorizontal?itemSize:parentWidth;const itemHeight=isHorizontal?parentHeight:itemSize;const viewportLength=isHorizontal?Math.max(document.documentElement.clientWidth||0,window.innerWidth||0,parentWidth):Math.max(document.documentElement.clientHeight||0,window.innerHeight||0,parentHeight);setSize({parent:parentLength,children:childrenLength,item:itemSize,itemWidth,itemHeight,viewportLength});};const scheduleMeasure=useEffectEvent(()=>{frame.read(measure,false,true);});/* Re-measure when some layout-affecting props change */useLayoutEffect(()=>{scheduleMeasure();},[filteredSlots.length,visibleItemsCount,gap,direction,padding,paddingPerSide,paddingTop,paddingRight,paddingBottom,paddingLeft]);/** Re-measure when the parent is resized */useEffect(()=>{const node=parentRef.current;if(!node)return;return resize(node,({size})=>{// Note: we’re getting the size from the resize observer, which is the only reliable way\n// to get a size that’s 1) not rounded to the nearest integer and 2) not affected by transforms.\n// - offsetWidth/Height is rounded to the nearest integer, which leads to off-by-a-few-px positioning errors: https://framer-team.slack.com/archives/C01B14R6E22/p1777506572882389\n// - getBoundingClientRect() returns a fractional width/height, but with transforms applied,\n//   which breaks everything if the parent has a scale transform applied to it (eg as a part of an effect)\nparentSizeRef.current=size;if(!size.width||!size.height)return;scheduleMeasure();});},[]);/**\n     * Animation, pagination\n     */const childrenSize=isCanvas?0:size?.children;const[isDragging,setIsDragging]=useState(false);/* Check for browser window visibility *//* Otherwise, it will re-play all the item increments */const visibilityRef=useRef(null);const isInView=useInView(visibilityRef);const isVisible=usePageInView()&&isInView;/* The x and y values to start from */const xOrY=useMotionValue(childrenSize);/* Wrapped values for infinite looping *//* Instead of 0 to a negative full duplicated row, we start with an offset */const wrappedXOrY=!isCanvas?useTransform(xOrY,value=>{const resolvedChildrenSize=childrenSize??0;const resolvedValue=value??0;const wrapped=wrap(-resolvedChildrenSize*rtlDirectionModifier,-resolvedChildrenSize*rtlDirectionModifier*2,resolvedValue);return Number.isNaN(wrapped)?0:wrapped;}):useMotionValue(0);/* Convert the current item to a wrapping index for dots */const wrappedIndex=wrap(0,totalItemsCount,currentItem);/**\n     * Page item methods\n     * Switching, deltas, autoplaying\n     *//* Page navigation functions */const setDelta=delta=>{startTransition(()=>setCurrentItem(item=>item+delta));};const setPage=index=>{const currentItemWrapped=wrap(0,totalItemsCount,currentItem);const goto=index-currentItemWrapped;startTransition(()=>setCurrentItem(item=>item+goto));};/* Autoplay: schedule one tick at a time whenever currentItem changes */const autoplayStep=(direction===\"right\"||direction===\"bottom\"?-1:1)*rtlDirectionModifier;const canAutoplay=autoPlayControl&&shouldPlayOnHover&&(playOffscreen||isVisible)&&!isCanvas&&totalItemsCount>1&&!isDragging&&isInitialized;useEffect(()=>{if(!canAutoplay)return;const timeoutId=setTimeout(()=>{setDelta(autoplayStep);},intervalControl*1e3);return()=>clearTimeout(timeoutId);},[canAutoplay,autoplayStep,intervalControl,currentItem]);/**\n     * Drag\n     */const handleDragStart=()=>{startTransition(()=>setIsDragging(true));};const handleDragEnd=(_event,{offset,velocity})=>{startTransition(()=>setIsDragging(false));const offsetXorY=isHorizontal?offset.x:offset.y;const velocityThreshold=200// Based on testing, can be tweaked or could be 0\n;const velocityXorY=isHorizontal?velocity.x:velocity.y;const isHalfOfNext=offsetXorY<-size.item/2;const isHalfOfPrev=offsetXorY>size.item/2;/* In case you drag more than 1 item left or right */const normalizedOffset=Math.abs(offsetXorY);const itemDelta=Math.round(normalizedOffset/size.item);/* Minimum delta is 1 to initiate a page switch *//* For velocity use only */const itemDeltaFromOne=itemDelta===0?1:itemDelta;/* For quick flicks, even with low offsets */if(velocityXorY>velocityThreshold){setDelta(-itemDeltaFromOne*rtlDirectionModifier);}else if(velocityXorY<-velocityThreshold){setDelta(itemDeltaFromOne*rtlDirectionModifier);}else{/* For dragging over half of the current item with 0 velocity */if(isHalfOfNext){setDelta(itemDelta*rtlDirectionModifier);}if(isHalfOfPrev){setDelta(-itemDelta*rtlDirectionModifier);}}};// Static/canvas layout: translate by a deterministic CSS calc so the starting slide is visible\n// without relying on runtime measurements.\nconst staticStartFrom=Math.max(0,Math.min(startFrom??0,Math.max(0,totalItemsCount-1)));const staticPercentOffset=staticStartFrom*100/visibleItemsCount;const staticPixelOffset=staticStartFrom*gap/visibleItemsCount;/* Create copies of our children to create a perfect loop */let childCounter=0;/**\n     * Sizing\n     * */const columnOrRowValue=`calc(${100/visibleItemsCount}% - ${gap}px + ${gap/visibleItemsCount}px)`;// How slides are sized on the cross axis. \n// Fit allows alignment if the slotted item is smaller than the slide bounds.\n// Fill is 100%.\nconst crossAxisSizing=isHorizontal?heightSizing:widthSizing;/**\n     * Nested array to create duplicates of the children for infinite looping\n     * These are wrapped around, and start at a full \"page\" worth of offset\n     * as defined above.\n     */for(let index=0;index<duplicateBy;index++){dupedChildren=dupedChildren.concat(Children.map(filteredSlots,(child,childIndex)=>{const childElement=child;// If fit we capture the child's dimension for canvas rendering.\n// It will be undefined in code gen so the class will set the dimension.\nconst crossAxisSize=crossAxisSizing===\"fit\"?isHorizontal?childElement.props?.height:childElement.props?.width:\"100%\";return /*#__PURE__*/_jsx(Slide,{slideKey:index+childIndex+\"lg\",index:index,width:isHorizontal?visibleItemsCount>1?columnOrRowValue:\"100%\":crossAxisSize,height:!isHorizontal?visibleItemsCount>1?columnOrRowValue:\"100%\":crossAxisSize,size:size,child:child,numChildren:filteredSlots?.length,wrappedXOrY:wrappedXOrY,childCounter:childCounter++,gap:gap,isCanvas:isCanvas,isInitialized:isInitialized,isHorizontal:isHorizontal,effectsOpacity:effectsOpacity,effectsScale:effectsScale,effectsRotate:effectsRotate,writingDirection:writingDirection,rtlDirectionModifier:rtlDirectionModifier,children:index+childIndex},index+childIndex+\"lg\");}));}/**\n     * Fades with masks\n     */const fadeDirection=isHorizontal?\"to right\":\"to bottom\";const fadeWidthStart=fadeWidth/2;const fadeWidthEnd=100-fadeWidth/2;const fadeInsetStart=clamp(fadeInset,0,fadeWidthStart);const fadeInsetEnd=100-fadeInset;const fadeMask=`linear-gradient(${fadeDirection}, rgba(0, 0, 0, ${fadeAlpha}) ${fadeInsetStart}%, rgba(0, 0, 0, 1) ${fadeWidthStart}%, rgba(0, 0, 0, 1) ${fadeWidthEnd}%, rgba(0, 0, 0, ${fadeAlpha}) ${fadeInsetEnd}%)`;/**\n     * Dots\n     */const dots=[];const dotsBlurStyle={};if(showProgressDots){for(let i=0;i<filteredSlots?.length;i++){dots.push(/*#__PURE__*/_jsx(Dot,{dotStyle:{...dotStyle,width:dotSize,height:dotSize,backgroundColor:dotsFill},buttonStyle:baseButtonStyles,selectedOpacity:dotsActiveOpacity,opacity:dotsOpacity,disabled:!isCanvas&&!isInitialized,onClick:()=>setPage(i),wrappedIndex:isCanvas||!isInitialized?staticStartFrom:wrappedIndex,total:totalItemsCount,index:i,gap:dotsGap,padding:dotsPadding,isHorizontal:isHorizontal},i));}if(dotsBlur>0){dotsBlurStyle.backdropFilter=dotsBlurStyle.WebkitBackdropFilter=`blur(${dotsBlur}px)`;}}const dragProps=isInitialized&&dragControl?{drag:isHorizontal?\"x\":\"y\",onDragStart:handleDragStart,onDragEnd:handleDragEnd,dragDirectionLock:true,values:{x:xOrY,y:xOrY},dragMomentum:false}:{};const arrowHasTop=arrowPosition===\"top-left\"||arrowPosition===\"top-mid\"||arrowPosition===\"top-right\";const arrowHasBottom=arrowPosition===\"bottom-left\"||arrowPosition===\"bottom-mid\"||arrowPosition===\"bottom-right\";const arrowHasLeft=arrowPosition===\"top-left\"||arrowPosition===\"bottom-left\";const arrowHasRight=arrowPosition===\"top-right\"||arrowPosition===\"bottom-right\";const arrowHasMid=arrowPosition===\"top-mid\"||arrowPosition===\"bottom-mid\"||arrowPosition===\"auto\";const leftArrowSrc=leftArrow||\"https://framerusercontent.com/images/6tTbkXggWgQCAJ4DO2QEdXXmgM.svg?arrow=left\";const rightArrowSrc=rightArrow||\"https://framerusercontent.com/images/11KSGbIZoRSg4pjdnUoif6MKHI.svg?arrow=right\";return /*#__PURE__*/_jsxs(\"section\",{className:`${slideshowClassName} ${isHorizontal?slideshowAxisXClassName:slideshowAxisYClassName}`,style:{...containerStyle,padding:paddingValue,WebkitMaskImage:fadeContent?fadeMask:undefined,maskImage:fadeContent?fadeMask:undefined,userSelect:\"none\"},onMouseEnter:()=>{setIsHovering(true);if(!effectsHover)setShouldPlayOnHover(false);},onMouseLeave:()=>{setIsHovering(false);if(!effectsHover)setShouldPlayOnHover(true);},onMouseDown:event=>{// Preventdefault fixes the cursor switching to text on drag on safari\nevent.preventDefault();startTransition(()=>setIsMouseDown(true));},onMouseUp:()=>startTransition(()=>setIsMouseDown(false)),ref:visibilityRef,children:[/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",margin:0,padding:\"inherit\",position:\"absolute\",inset:0,overflow:overflow?\"visible\":\"hidden\",borderRadius:borderRadius,userSelect:\"none\",perspective:isCanvas?\"none\":effectsPerspective},children:/*#__PURE__*/_jsx(motion.ul,{ref:parentRefFn,...dragProps,style:{...containerStyle,gap:gap,placeItems:alignment,...isCanvas||!isInitialized?{transform:isHorizontal?`translateX(calc(${slideshowDirectionMultiplier} * (${staticPercentOffset}% + ${staticPixelOffset}px)))`:`translateY(calc(${slideshowDirectionMultiplier} * (${staticPercentOffset}% + ${staticPixelOffset}px)))`}:{x:isHorizontal?wrappedXOrY:0,y:!isHorizontal?wrappedXOrY:0},flexDirection:isHorizontal?\"row\":\"column\",transformStyle:effectsRotate!==0&&!isCanvas?\"preserve-3d\":undefined,cursor:(isCanvas||isInitialized)&&dragControl?isMouseDown?\"grabbing\":\"grab\":\"auto\",userSelect:\"none\",...style},children:dupedChildren})}),/*#__PURE__*/_jsxs(\"fieldset\",{style:{...controlsStyles},\"aria-label\":\"Slideshow pagination controls\",className:\"framer--slideshow-controls\",children:[/*#__PURE__*/_jsxs(motion.div,{style:{position:\"absolute\",display:\"flex\",flexDirection:isHorizontal?\"row\":\"column\",justifyContent:arrowShouldSpace?\"space-between\":\"center\",gap:arrowShouldSpace?\"unset\":arrowGap,opacity:arrowShouldFadeIn||!isCanvas&&!isInitialized?0:1,alignItems:\"center\",inset:arrowPadding,top:arrowShouldSpace?arrowPadding:arrowHasTop?arrowPaddingTop:\"unset\",left:arrowShouldSpace?arrowPadding:arrowHasLeft?arrowPaddingLeft:arrowHasMid?0:\"unset\",right:arrowShouldSpace?arrowPadding:arrowHasRight?arrowPaddingRight:arrowHasMid?0:\"unset\",bottom:arrowShouldSpace?arrowPadding:arrowHasBottom?arrowPaddingBottom:\"unset\"},animate:isCanvas||isInitialized?arrowShouldFadeIn?{opacity:isHovering?1:0}:{opacity:1}:{opacity:0},transition:transitionControl,children:[/*#__PURE__*/_jsx(motion.button,{type:\"button\",style:{...baseButtonStyles,backgroundColor:arrowFill,width:arrowSize,height:arrowSize,borderRadius:arrowRadius,rotate:!isHorizontal?90:0,display:showMouseControls?\"block\":\"none\",pointerEvents:isCanvas||isInitialized?\"auto\":\"none\",cursor:isCanvas||isInitialized?\"pointer\":\"default\"},disabled:!(isCanvas||isInitialized),onClick:()=>setDelta(-1),\"aria-label\":\"Previous\",whileTap:{scale:.9},transition:{duration:.15},children:/*#__PURE__*/_jsx(\"img\",{decoding:\"async\",width:arrowSize,height:arrowSize,src:isHorizontal&&writingDirection===\"rtl\"?rightArrowSrc:leftArrowSrc,alt:\"Back Arrow\"})}),/*#__PURE__*/_jsx(motion.button,{type:\"button\",style:{...baseButtonStyles,backgroundColor:arrowFill,width:arrowSize,height:arrowSize,borderRadius:arrowRadius,rotate:!isHorizontal?90:0,display:showMouseControls?\"block\":\"none\",pointerEvents:isCanvas||isInitialized?\"auto\":\"none\",cursor:isCanvas||isInitialized?\"pointer\":\"default\"},disabled:!(isCanvas||isInitialized),onClick:()=>setDelta(1),\"aria-label\":\"Next\",whileTap:{scale:.9},transition:{duration:.15},children:/*#__PURE__*/_jsx(\"img\",{decoding:\"async\",width:arrowSize,height:arrowSize,src:isHorizontal&&writingDirection===\"rtl\"?leftArrowSrc:rightArrowSrc,alt:\"Next Arrow\"})})]}),dots.length>1?/*#__PURE__*/_jsx(motion.div,{style:{...dotsContainerStyle,left:isHorizontal?\"50%\":dotsInset,top:!isHorizontal?\"50%\":\"unset\",transform:isHorizontal?\"translateX(-50%)\":\"translateY(-50%)\",flexDirection:isHorizontal?\"row\":\"column\",bottom:isHorizontal?dotsInset:\"unset\",borderRadius:dotsRadius,backgroundColor:dotsBackground,userSelect:\"none\",...dotsBlurStyle,// Hard-code opacity to 1 on canvas. In SSR, it will be animated from 0 to 1 in `animate`\nopacity:isCanvas?1:0,pointerEvents:isCanvas||isInitialized?\"auto\":\"none\"},animate:{opacity:isInitialized?1:0},transition:{duration:.35,ease:\"easeOut\"},children:dots}):null]})]});}const Slideshow=withCSS(SlideshowWithoutCSS,[`.${slideshowAxisXClassName} { ${slideshowDirectionMultiplierVariable}: -1; }`,`html[dir=\"rtl\"] .${slideshowAxisXClassName} { ${slideshowDirectionMultiplierVariable}: 1; }`,`.${slideshowAxisYClassName} { ${slideshowDirectionMultiplierVariable}: -1; }`],\"framer-slideshow-component\");/**\n * SLIDESHOW\n * V2.5 (with SSR)\n * By Benjamin, Matt, and Ivan\n *\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 200\n *\n * @framerDisableUnlink\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default Slideshow;/* Default Properties */Slideshow.defaultProps={direction:\"left\",widthSizing:\"fill\",heightSizing:\"fill\",dragControl:false,startFrom:0,itemAmount:1,infinity:true,gap:10,padding:10,autoPlayControl:true,effectsOptions:{effectsOpacity:1,effectsScale:1,effectsRotate:0,effectsPerspective:1200,effectsHover:true,playOffscreen:false},transitionControl:{type:\"spring\",stiffness:200,damping:40},fadeOptions:{fadeContent:false,overflow:false,fadeWidth:25,fadeAlpha:0,fadeInset:0},arrowOptions:{showMouseControls:true,arrowShouldFadeIn:false,arrowShouldSpace:true,arrowFill:\"rgba(0,0,0,0.2)\",arrowSize:40},progressOptions:{showProgressDots:true}};/* Property Controls */addPropertyControls(Slideshow,{slots:{type:ControlType.Array,title:\"Content\",control:{type:ControlType.ComponentInstance}},direction:{type:ControlType.Enum,title:\"Direction\",options:[\"left\",\"right\",\"top\",\"bottom\"],// @ts-expect-error Private property\noptionIcons:[\"direction-left\",\"direction-right\",\"direction-up\",\"direction-down\"],optionTitles:[\"Left\",\"Right\",\"Top\",\"Bottom\"],displaySegmentedControl:true,defaultValue:Slideshow.defaultProps.direction},autoPlayControl:{type:ControlType.Boolean,title:\"Auto Play\",defaultValue:true},intervalControl:{type:ControlType.Number,title:\"Interval\",defaultValue:1.5,min:.5,max:10,step:.1,displayStepper:true,unit:\"s\",hidden:props=>!props.autoPlayControl},dragControl:{type:ControlType.Boolean,title:\"Draggable\",defaultValue:false},startFrom:{type:ControlType.Number,title:\"Current\",min:0,max:10,displayStepper:true,defaultValue:Slideshow.defaultProps.startFrom},effectsOptions:{type:ControlType.Object,title:\"Effects\",controls:{effectsOpacity:{type:ControlType.Number,title:\"Opacity\",defaultValue:Slideshow.defaultProps.effectsOptions.effectsOpacity,min:0,max:1,step:.01,displayStepper:true},effectsScale:{type:ControlType.Number,title:\"Scale\",defaultValue:Slideshow.defaultProps.effectsOptions.effectsScale,min:0,max:1,step:.01,displayStepper:true},effectsPerspective:{type:ControlType.Number,title:\"Perspective\",defaultValue:Slideshow.defaultProps.effectsOptions.effectsPerspective,min:200,max:2e3,step:1},effectsRotate:{type:ControlType.Number,title:\"Rotate\",defaultValue:Slideshow.defaultProps.effectsOptions.effectsRotate,min:-180,max:180,step:1},effectsHover:{type:ControlType.Boolean,title:\"On Hover\",enabledTitle:\"Play\",disabledTitle:\"Pause\",defaultValue:Slideshow.defaultProps.effectsOptions.effectsHover},playOffscreen:{type:ControlType.Boolean,title:\"Offscreen\",enabledTitle:\"Play\",disabledTitle:\"Pause\",defaultValue:Slideshow.defaultProps.effectsOptions.playOffscreen}}},widthSizing:{type:ControlType.Enum,title:\"Width\",options:[\"fill\",\"fit\"],optionTitles:[\"Fill\",\"Fit\"],defaultValue:Slideshow.defaultProps.widthSizing,displaySegmentedControl:true,// Width is the cross axis only for vertical slideshows.\nhidden:props=>props.direction===\"left\"||props.direction===\"right\"},heightSizing:{type:ControlType.Enum,title:\"Height\",options:[\"fill\",\"fit\"],optionTitles:[\"Fill\",\"Fit\"],defaultValue:Slideshow.defaultProps.heightSizing,displaySegmentedControl:true,// Height is the cross axis only for horizontal slideshows.\nhidden:props=>props.direction===\"top\"||props.direction===\"bottom\"},alignment:{type:ControlType.Enum,title:\"Align\",// Only show Align when the cross-axis property for the current\n// direction is set to \"fit\" (otherwise slides fill and there's\n// no room to align).\nhidden:props=>{const isHorizontal=props.direction===\"left\"||props.direction===\"right\";const crossAxisSizing=isHorizontal?props.heightSizing:props.widthSizing;return crossAxisSizing!==\"fit\";},options:[\"flex-start\",\"center\",\"flex-end\"],// @ts-expect-error Private property\noptionIcons:{direction:{right:[\"align-top\",\"align-middle\",\"align-bottom\"],left:[\"align-top\",\"align-middle\",\"align-bottom\"],top:[\"align-left\",\"align-center\",\"align-right\"],bottom:[\"align-left\",\"align-center\",\"align-right\"]}},defaultValue:\"center\",displaySegmentedControl:true},itemAmount:{type:ControlType.Number,title:\"Items\",min:1,max:10,displayStepper:true,defaultValue:Slideshow.defaultProps.itemAmount},gap:{type:ControlType.Number,title:\"Gap\",min:0},padding:{title:\"Padding\",type:ControlType.FusedNumber,toggleKey:\"paddingPerSide\",toggleTitles:[\"Padding\",\"Padding per side\"],defaultValue:0,valueKeys:[\"paddingTop\",\"paddingRight\",\"paddingBottom\",\"paddingLeft\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0},borderRadius:{type:ControlType.Number,title:\"Radius\",min:0,max:500,displayStepper:true,defaultValue:0},transitionControl:{type:ControlType.Transition,defaultValue:Slideshow.defaultProps.transitionControl,title:\"Transition\"},fadeOptions:{type:ControlType.Object,title:\"Clipping\",controls:{fadeContent:{type:ControlType.Boolean,title:\"Fade\",defaultValue:false},overflow:{type:ControlType.Boolean,title:\"Overflow\",enabledTitle:\"Show\",disabledTitle:\"Hide\",defaultValue:false,hidden(props){return props.fadeContent===true;}},fadeWidth:{type:ControlType.Number,title:\"Width\",defaultValue:25,min:0,max:100,unit:\"%\",hidden(props){return props.fadeContent===false;}},fadeInset:{type:ControlType.Number,title:\"Inset\",defaultValue:0,min:0,max:100,unit:\"%\",hidden(props){return props.fadeContent===false;}},fadeAlpha:{type:ControlType.Number,title:\"Opacity\",defaultValue:0,min:0,max:1,step:.05,hidden(props){return props.fadeContent===false;}}}},arrowOptions:{type:ControlType.Object,title:\"Arrows\",controls:{showMouseControls:{type:ControlType.Boolean,title:\"Show\",defaultValue:Slideshow.defaultProps.arrowOptions.showMouseControls},arrowFill:{type:ControlType.Color,title:\"Fill\",hidden:props=>!props.showMouseControls,defaultValue:Slideshow.defaultProps.arrowOptions.arrowFill},leftArrow:{type:ControlType.Image,title:\"Previous\",hidden:props=>!props.showMouseControls},rightArrow:{type:ControlType.Image,title:\"Next\",hidden:props=>!props.showMouseControls},arrowSize:{type:ControlType.Number,title:\"Size\",min:0,max:200,displayStepper:true,defaultValue:Slideshow.defaultProps.arrowOptions.arrowSize,hidden:props=>!props.showMouseControls},arrowRadius:{type:ControlType.Number,title:\"Radius\",min:0,max:500,defaultValue:40,hidden:props=>!props.showMouseControls},arrowShouldFadeIn:{type:ControlType.Boolean,title:\"Fade In\",defaultValue:false,hidden:props=>!props.showMouseControls},arrowShouldSpace:{type:ControlType.Boolean,title:\"Distance\",enabledTitle:\"Space\",disabledTitle:\"Group\",defaultValue:Slideshow.defaultProps.arrowOptions.arrowShouldSpace,hidden:props=>!props.showMouseControls},arrowPosition:{type:ControlType.Enum,title:\"Position\",options:[\"auto\",\"top-left\",\"top-mid\",\"top-right\",\"bottom-left\",\"bottom-mid\",\"bottom-right\"],optionTitles:[\"Center\",\"Top Left\",\"Top Middle\",\"Top Right\",\"Bottom Left\",\"Bottom Middle\",\"Bottom Right\"],hidden:props=>!props.showMouseControls||props.arrowShouldSpace},arrowPadding:{type:ControlType.Number,title:\"Inset\",min:-100,max:100,defaultValue:20,displayStepper:true,hidden:props=>!props.showMouseControls||!props.arrowShouldSpace},arrowPaddingTop:{type:ControlType.Number,title:\"Top\",min:-500,max:500,defaultValue:0,displayStepper:true,hidden:props=>!props.showMouseControls||props.arrowShouldSpace||props.arrowPosition===\"auto\"||props.arrowPosition===\"bottom-mid\"||props.arrowPosition===\"bottom-left\"||props.arrowPosition===\"bottom-right\"},arrowPaddingBottom:{type:ControlType.Number,title:\"Bottom\",min:-500,max:500,defaultValue:0,displayStepper:true,hidden:props=>!props.showMouseControls||props.arrowShouldSpace||props.arrowPosition===\"auto\"||props.arrowPosition===\"top-mid\"||props.arrowPosition===\"top-left\"||props.arrowPosition===\"top-right\"},arrowPaddingRight:{type:ControlType.Number,title:\"Right\",min:-500,max:500,defaultValue:0,displayStepper:true,hidden:props=>!props.showMouseControls||props.arrowShouldSpace||props.arrowPosition===\"auto\"||props.arrowPosition===\"top-left\"||props.arrowPosition===\"top-mid\"||props.arrowPosition===\"bottom-left\"||props.arrowPosition===\"bottom-mid\"},arrowPaddingLeft:{type:ControlType.Number,title:\"Left\",min:-500,max:500,defaultValue:0,displayStepper:true,hidden:props=>!props.showMouseControls||props.arrowShouldSpace||props.arrowPosition===\"auto\"||props.arrowPosition===\"top-right\"||props.arrowPosition===\"top-mid\"||props.arrowPosition===\"bottom-right\"||props.arrowPosition===\"bottom-mid\"},arrowGap:{type:ControlType.Number,title:\"Gap\",min:0,max:100,defaultValue:10,displayStepper:true,hidden:props=>!props.showMouseControls||props.arrowShouldSpace}}},progressOptions:{type:ControlType.Object,title:\"Dots\",controls:{showProgressDots:{type:ControlType.Boolean,title:\"Show\",defaultValue:false},dotSize:{type:ControlType.Number,title:\"Size\",min:1,max:100,defaultValue:10,displayStepper:true,hidden:props=>!props.showProgressDots||props.showScrollbar},dotsInset:{type:ControlType.Number,title:\"Inset\",min:-100,max:100,defaultValue:10,displayStepper:true,hidden:props=>!props.showProgressDots||props.showScrollbar},dotsGap:{type:ControlType.Number,title:\"Gap\",min:0,max:100,defaultValue:10,displayStepper:true,hidden:props=>!props.showProgressDots||props.showScrollbar},dotsPadding:{type:ControlType.Number,title:\"Padding\",min:0,max:100,defaultValue:10,displayStepper:true,hidden:props=>!props.showProgressDots||props.showScrollbar},dotsFill:{type:ControlType.Color,title:\"Fill\",defaultValue:\"#fff\",hidden:props=>!props.showProgressDots||props.showScrollbar},dotsBackground:{type:ControlType.Color,title:\"Backdrop\",defaultValue:\"rgba(0,0,0,0.2)\",hidden:props=>!props.showProgressDots||props.showScrollbar},dotsRadius:{type:ControlType.Number,title:\"Radius\",min:0,max:200,defaultValue:50,hidden:props=>!props.showProgressDots||props.showScrollbar},dotsOpacity:{type:ControlType.Number,title:\"Opacity\",min:0,max:1,defaultValue:.5,step:.1,displayStepper:true,hidden:props=>!props.showProgressDots||props.showScrollbar},dotsActiveOpacity:{type:ControlType.Number,title:\"Current\",min:0,max:1,defaultValue:1,step:.1,displayStepper:true,hidden:props=>!props.showProgressDots||props.showScrollbar},dotsBlur:{type:ControlType.Number,title:\"Blur\",min:0,max:50,defaultValue:0,step:1,hidden:props=>!props.showProgressDots||props.showScrollbar}}}});/* Placeholder Styles */const containerStyle={display:\"flex\",flexDirection:\"row\",width:\"100%\",height:\"100%\",maxWidth:\"100%\",maxHeight:\"100%\",placeItems:\"center\",margin:0,padding:0,listStyleType:\"none\",textIndent:\"none\"};/* Component Styles */const placeholderStyles={display:\"flex\",width:\"100%\",height:\"100%\",placeContent:\"center\",placeItems:\"center\",flexDirection:\"column\",color:\"#96F\",background:\"rgba(136, 85, 255, 0.1)\",fontSize:11,overflow:\"hidden\",padding:\"20px 20px 30px 20px\"};const emojiStyles={fontSize:32,marginBottom:10};const titleStyles={margin:0,marginBottom:10,fontWeight:600,textAlign:\"center\"};const subtitleStyles={margin:0,opacity:.7,maxWidth:180,lineHeight:1.5,textAlign:\"center\"};/* Control Styles */const baseButtonStyles={border:\"none\",display:\"flex\",placeContent:\"center\",placeItems:\"center\",overflow:\"hidden\",background:\"transparent\",cursor:\"pointer\",margin:0,padding:0};const controlsStyles={display:\"flex\",justifyContent:\"space-between\",alignItems:\"center\",position:\"absolute\",pointerEvents:\"none\",userSelect:\"none\",top:0,left:0,right:0,bottom:0,border:0,padding:0,margin:0};/* Clamp function, used for fadeInset */const clamp=(num,min,max)=>Math.min(Math.max(num,min),max);const Slide=/*#__PURE__*/memo(function Component(props){const{slideKey,width,height,child,size,gap,wrappedXOrY,numChildren,childCounter,isCanvas,isInitialized,effectsOpacity,effectsScale,effectsRotate,isHorizontal,index,/** \"ltr\" or \"rtl\" */writingDirection,/** -1 in RTL, 1 in LTR */rtlDirectionModifier}=props;const ref=useRef(null);const itemSize=size?.item??0;const parentSize=size?.parent??0;/**\n     * Unique offsets + scroll range [0, 1, 1, 0]\n     */const childOffset=(itemSize+gap)*childCounter;const scrollRange=// @ivan: this was picked experimentally when fixing semi-working-but-broken RTL\n// implementation in the existing Carousel code. Don’t ask me why these specific values, I’m\n// finding it hard to fully reason about RTL in carousel :/\n(isHorizontal&&writingDirection===\"rtl\"?[itemSize-gap,0,-parentSize+itemSize-gap,-parentSize-gap]:[-itemSize,0,parentSize-itemSize+gap,parentSize]).map(val=>val-childOffset*rtlDirectionModifier);/**\n     * Effects\n     */const rotateY=!isCanvas&&useTransform(wrappedXOrY,scrollRange,// Why flip the rotateY effect when RTL is enabled?\n//\n// Unlike other effects, rotation is vertically symmetrical. Say the user sets a 60 degree rotation.\n// The carousel will look like this:\n//   ) □ ▣ ▤ (\n// where\n// - □ ▣ ▤ are the three slides visible within the carousel,\n// - ) is an out-of-view slide to the left of the viewport,\n// - and ( is an out-of-view slide to the right of the viewport.\n// With 60° rotation, both out-of-view slides look “turned towards” the viewport,\n// which matters for the animation when the slides switch.\n//\n// If a user sets RTL, all items in the carousel will flip around. The carousel, by default, will now look like this:\n//   ( ▤ ▣ □ )\n// Notice how all slides reversed. The slide that was to the left of the viewport: ) – is now to the right of it!\n// And is now turned away from the viewport! So if we don’t flip the rotateY effect, the animation will look off.\nisHorizontal&&writingDirection===\"rtl\"?[effectsRotate,0,0,-effectsRotate]:[-effectsRotate,0,0,effectsRotate]);const rotateX=!isCanvas&&useTransform(wrappedXOrY,scrollRange,[effectsRotate,0,0,-effectsRotate]);const opacity=!isCanvas&&useTransform(wrappedXOrY,scrollRange,[effectsOpacity,1,1,effectsOpacity]);const scale=!isCanvas&&useTransform(wrappedXOrY,scrollRange,[effectsScale,1,1,effectsScale]);const originXorY=!isCanvas&&useTransform(wrappedXOrY,scrollRange,// Just like above, because in RTL, the items are flipped vertically, RTL needs a separate treatment\nisHorizontal&&writingDirection===\"rtl\"?[0,0,1,1]:[1,1,0,0]);const isVisible=!isCanvas&&useTransform(wrappedXOrY,latest=>{// Min and max swap in LTR vs RTL\nconst min=Math.min(scrollRange[1],scrollRange[2]);const max=Math.max(scrollRange[1],scrollRange[2]);return latest>=min&&latest<=max;});useEffect(()=>{if(!isVisible||!isInitialized)return;function manageVisibility(visible){const node=ref?.current;if(!node)return;// for a11y: Manage tabIndex on focusable descendants & aria-hidden on the parent.\nif(visible){node.querySelectorAll(\"button,a\").forEach(el=>{const orig=el.dataset.origTabIndex;if(orig)el.tabIndex=Number(orig);else el.removeAttribute(\"tabIndex\");});}else{node.querySelectorAll(\"button,a\").forEach(el=>{const orig=el.getAttribute(\"tabIndex\");if(orig)el.dataset.origTabIndex=orig;el.tabIndex=-1;});}node.setAttribute(\"aria-hidden\",String(!visible));}manageVisibility(isVisible.get());return isVisible.on(\"change\",visible=>{manageVisibility(visible);});},[isInitialized]);const visibility=isCanvas?\"visible\":useTransform(wrappedXOrY,[scrollRange[0]-size.viewportLength*rtlDirectionModifier,mix(scrollRange[1],scrollRange[2],.5),scrollRange[3]+size.viewportLength*rtlDirectionModifier],[\"hidden\",\"visible\",\"hidden\"]);const key=slideKey+\"child\";return /*#__PURE__*/_jsx(LayoutGroup,{inherit:\"id\",id:key,children:/*#__PURE__*/_jsx(\"li\",{style:{display:\"contents\"},children:/*#__PURE__*/cloneElement(child,{ref,key,style:{...child.props?.style,flexShrink:0,userSelect:\"none\",width,height,...isInitialized?{opacity,scale,originX:isHorizontal?originXorY:.5,originY:!isHorizontal?originXorY:.5,rotateY:isHorizontal?rotateY:0,rotateX:!isHorizontal?rotateX:0,visibility}:{}},layoutId:child.props.layoutId?child.props.layoutId+\"-original-\"+index:undefined})})});});const Dot=/*#__PURE__*/memo(function Dot({selectedOpacity,opacity,total,index,wrappedIndex,dotStyle,buttonStyle,gap,padding,isHorizontal,...props}){/* Check active item *//* Go 0—1—2—3—4—5—0 */const isSelected=wrappedIndex===index;const inlinePadding=gap/2;const top=!isHorizontal&&index!==0?inlinePadding:padding;const bottom=!isHorizontal&&index!==total-1?inlinePadding:padding;// Use logical inline padding so RTL/LTR spacing is correct even if this subtree\n// is rendered under a different `direction` than `documentElement.dir`.\nconst inlineStart=isHorizontal?index===0?padding:inlinePadding:padding;const inlineEnd=isHorizontal?index===total-1?padding:inlinePadding:padding;return /*#__PURE__*/_jsx(\"button\",{\"aria-label\":`Scroll to page ${index+1}`,type:\"button\",...props,style:{...buttonStyle,paddingTop:top,paddingBottom:bottom,paddingInlineStart:inlineStart,paddingInlineEnd:inlineEnd},children:/*#__PURE__*/_jsx(motion.div,{style:{...dotStyle},initial:false,animate:{opacity:isSelected?selectedOpacity:opacity},transition:{duration:.3}})});});/* Dot Styles */const dotsContainerStyle={display:\"flex\",placeContent:\"center\",placeItems:\"center\",overflow:\"hidden\",position:\"absolute\",pointerEvents:\"auto\"};const dotStyle={borderRadius:\"50%\",background:\"white\",cursor:\"pointer\",border:\"none\",placeContent:\"center\",placeItems:\"center\",padding:0};function getWritingDirection(){return window?.document?.documentElement?.dir===\"rtl\"?\"rtl\":\"ltr\";}function useWritingDirection(){const[writingDirection,setWritingDirection]=useState(null);// must be done this way to ensure that there isn't a mismatch with SSG\n// which leads to button images not updating for the real writing direction\nuseEffect(()=>{setWritingDirection(getWritingDirection());// Listen for changes to the writing direction. While uncommon on live sites, this can easily happen\n// on the canvas when switching between locales on the same page.\nreturn onWritingDirectionChange(()=>{setWritingDirection(getWritingDirection());});},[]);return writingDirection;}let observer=null;const callbacks=[];function onWritingDirectionChange(callback){callbacks.push(callback);if(!observer){// A single MutationObserver watching a single attribute on a single element should be reasonably fast:\n// https://news.ycombinator.com/item?id=15274833 (note: Paul Irish)\n// https://stackoverflow.com/a/39332340\nobserver=new MutationObserver(()=>callbacks.forEach(callback=>callback()));observer.observe(document.documentElement,{attributeFilter:[\"dir\"]});}// Return a function to unsubscribe from the callback\nreturn()=>{callbacks.splice(callbacks.indexOf(callback),1);if(callbacks.length===0){observer?.disconnect();observer=null;}};}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Slideshow\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"fixed\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerDisableUnlink\":\"*\",\"framerIntrinsicHeight\":\"200\",\"framerIntrinsicWidth\":\"400\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SlideShow.map","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{Children,cloneElement,forwardRef,isValidElement,useCallback,useEffect,useId,useLayoutEffect,useRef,useState,useSyncExternalStore}from\"react\";import{useIsStaticRenderer}from\"framer\";const emptySnapshot={activeIndex:0,count:0,progress:0};const snapshotsById=new Map;const listenersById=new Map;const phoneCarouselQuery=\"(max-width: 1365px)\";const railsChangedEvent=\"spiro-carousel-rails-changed\";function usePhoneCarouselRuntime(){const isStatic=useIsStaticRenderer();const subscribe=useCallback(listener=>{if(typeof window===\"undefined\")return()=>{};const query=window.matchMedia(phoneCarouselQuery);query.addEventListener(\"change\",listener);return()=>query.removeEventListener(\"change\",listener);},[]);const read=useCallback(()=>{return typeof window!==\"undefined\"&&window.matchMedia(phoneCarouselQuery).matches;},[]);const isPhoneViewport=useSyncExternalStore(subscribe,read,()=>false);return!isStatic&&isPhoneViewport;}function clamp01(value){if(!Number.isFinite(value))return 0;return Math.max(0,Math.min(1,value));}function getSnapshot(carouselId){return snapshotsById.get(carouselId)||emptySnapshot;}function setSnapshot(carouselId,activeIndex,count){const safeCount=Math.max(0,count);const safeIndex=safeCount>0?Math.max(0,Math.min(safeCount-1,activeIndex)):0;const progress=safeCount>1?safeIndex/(safeCount-1):0;const current=getSnapshot(carouselId);if(current.activeIndex===safeIndex&&current.count===safeCount&&current.progress===progress)return;const next={activeIndex:safeIndex,count:safeCount,progress};snapshotsById.set(carouselId,next);listenersById.get(carouselId)?.forEach(listener=>listener());if(typeof window!==\"undefined\"){window.dispatchEvent(new CustomEvent(\"spiro-scroll-indicator\",{detail:{indicatorId:carouselId,progress:clamp01(progress)}}));}}function useCarouselSnapshot(carouselId){const subscribe=useCallback(listener=>{if(!carouselId)return()=>{};const listeners=listenersById.get(carouselId)||new Set;listeners.add(listener);listenersById.set(carouselId,listeners);return()=>{const current=listenersById.get(carouselId);if(!current)return;current.delete(listener);if(current.size===0)listenersById.delete(carouselId);};},[carouselId]);const read=useCallback(()=>carouselId?getSnapshot(carouselId):emptySnapshot,[carouselId]);return useSyncExternalStore(subscribe,read,read);}// ── Rail registry — copy groups and thumbs pair with the nearest rail in the\n// DOM, so the overrides are drop-in reusable per section without shared ids. ──\nconst railElementsById=new Map;function registerRail(carouselId,element){railElementsById.set(carouselId,element);if(typeof window!==\"undefined\"){window.dispatchEvent(new CustomEvent(railsChangedEvent));}}function unregisterRail(carouselId){if(!railElementsById.delete(carouselId))return;snapshotsById.delete(carouselId);if(typeof window!==\"undefined\"){window.dispatchEvent(new CustomEvent(railsChangedEvent));}}function findNearestRailId(fromElement){if(!fromElement)return null;for(let scope=fromElement.parentElement;scope;scope=scope.parentElement){for(const[carouselId,rail]of railElementsById){if(rail.isConnected&&scope.contains(rail))return carouselId;}}return null;}function useNearestCarouselId(elementRef,explicitId,enabled){const[resolvedId,setResolvedId]=useState(null);useEffect(()=>{if(!enabled||explicitId||typeof window===\"undefined\")return;const resolve=()=>setResolvedId(findNearestRailId(elementRef.current));resolve();window.addEventListener(railsChangedEvent,resolve);return()=>window.removeEventListener(railsChangedEvent,resolve);},[elementRef,enabled,explicitId]);return explicitId??resolvedId;}function setMergedRef(ref,value){if(!ref)return;if(typeof ref===\"function\"){ref(value);return;}ref.current=value;}function elementChildren(children){return Children.toArray(children).filter(isValidElement);}function ensureScrollbarStyle(className){if(typeof document===\"undefined\")return;const id=\"native-carousel-style-\"+className;if(document.getElementById(id))return;const style=document.createElement(\"style\");style.id=id;style.textContent=\".\"+className+\"::-webkit-scrollbar { display: none !important; width: 0 !important; height: 0 !important; }\";document.head.appendChild(style);}const warmedImageUrls=new Set;function warmImageUrl(url){if(!url||warmedImageUrls.has(url)||typeof Image===\"undefined\")return;warmedImageUrls.add(url);const preload=new Image;preload.decoding=\"async\";preload.src=url;}// Cards are decoded up front so a swipe never lands on an undecoded image.\nfunction warmSlideMedia(slide){const images=Array.from(slide.querySelectorAll(\"img\"));images.forEach(image=>{image.loading=\"eager\";image.decoding=\"async\";image.setAttribute(\"fetchpriority\",\"high\");if(image.srcset){const preload=new Image;preload.decoding=\"async\";preload.sizes=image.sizes;preload.srcset=image.srcset;preload.src=image.currentSrc||image.src;}else{warmImageUrl(image.currentSrc||image.src);}image.decode?.().catch(()=>{});});const visualNodes=[slide,...Array.from(slide.querySelectorAll(\"*\"))];visualNodes.forEach(node=>{const background=window.getComputedStyle(node).backgroundImage;const matches=background.matchAll(/url\\((?:[\"']?)(.*?)[\"']?\\)/g);for(const match of matches)warmImageUrl(match[1]);});}export function withInfiniteCarouselTrack(Component){return /*#__PURE__*/forwardRef(function InfiniteCarouselTrack(props,forwardedRef){const{carouselId,settleDelay=140,...restProps}=props;const carouselEnabled=usePhoneCarouselRuntime();const reactId=useId().replace(/[^a-zA-Z0-9_-]/g,\"\");const railId=carouselId||\"carousel-\"+reactId;const className=\"framer-native-carousel-\"+reactId;const railRef=useRef(null);const slidesRef=useRef([]);const metricsRef=useRef([]);const railWidthRef=useRef(0);const preparedVideosRef=useRef(new WeakSet);const lastActiveRef=useRef(-1);const runningRef=useRef(false);const settleTimer=useRef(0);const dragRef=useRef(null);const didDragRef=useRef(false);const setRailRef=useCallback(node=>{railRef.current=node;setMergedRef(forwardedRef,node);},[forwardedRef]);// Slides are read from the DOM rather than from React children:\n// canvas cards may be plain frames or component instances, and the\n// rail must treat both the same way.\nconst captureSlides=useCallback(()=>{const rail=railRef.current;if(!rail)return[];const domSlides=Array.from(rail.children).filter(child=>child instanceof HTMLElement);domSlides.forEach((slide,index)=>{slide.dataset.carouselSlide=\"true\";slide.dataset.carouselIndex=String(index);slide.style.flex=\"0 0 auto\";slide.style.scrollSnapAlign=\"center\";slide.style.scrollSnapStop=\"always\";slide.style.cursor=\"grab\";warmSlideMedia(slide);});slidesRef.current=domSlides;// Geometry is measured once here (and on resize) rather than on\n// every scroll event, so scrolling never forces a layout pass.\nrailWidthRef.current=rail.clientWidth;metricsRef.current=domSlides.map(slide=>({left:slide.offsetLeft,width:slide.offsetWidth}));return domSlides;},[]);const leftFor=useCallback(index=>{const metric=metricsRef.current[index];if(!metric)return 0;return metric.left-(railWidthRef.current-metric.width)/2;},[]);const nearestIndex=useCallback(()=>{const rail=railRef.current;const metrics=metricsRef.current;if(!rail||metrics.length===0)return 0;const center=rail.scrollLeft+railWidthRef.current/2;let nearest=0;let distance=Number.POSITIVE_INFINITY;metrics.forEach((metric,index)=>{const slideCenter=metric.left+metric.width/2;const nextDistance=Math.abs(slideCenter-center);if(nextDistance<distance){nearest=index;distance=nextDistance;}});return nearest;},[]);// Playback is owned by the track, not by a per-card override: the\n// track already holds every slide element, so it works whether a\n// card is a plain frame or a component instance (which does not\n// forward a ref for an override to attach to).\nconst syncVideos=useCallback(()=>{const slides=slidesRef.current;if(slides.length===0)return;const activeIndex=lastActiveRef.current;slides.forEach((slide,index)=>{const isActive=index===activeIndex;const isNear=Math.abs(index-activeIndex)<=1;const videos=Array.from(slide.querySelectorAll(\"video\"));videos.forEach(video=>{if(!preparedVideosRef.current.has(video)){preparedVideosRef.current.add(video);video.muted=true;video.playsInline=true;video.setAttribute(\"muted\",\"\");video.setAttribute(\"playsinline\",\"\");}// Neighbours buffer so the next card is ready to play\n// the moment it reaches centre stage.\nif(isNear&&video.preload!==\"auto\"){video.preload=\"auto\";video.setAttribute(\"preload\",\"auto\");if(video.readyState===0&&video.currentSrc){video.load();}}if(isActive){video.play().catch(()=>{});return;}video.pause();try{video.currentTime=0;}catch{}});});},[]);const markActive=useCallback(index=>{if(lastActiveRef.current===index)return;lastActiveRef.current=index;const slides=slidesRef.current;slides.forEach((slide,slideIndex)=>{const isActive=slideIndex===index;const isNear=Math.abs(slideIndex-index)<=1;slide.dataset.carouselActive=isActive?\"true\":\"false\";slide.dataset.carouselNear=isNear?\"true\":\"false\";if(isActive)slide.setAttribute(\"aria-current\",\"true\");else slide.removeAttribute(\"aria-current\");});setSnapshot(railId,index,slides.length);syncVideos();},[railId,syncVideos]);const handleScroll=useCallback(()=>{if(slidesRef.current.length<1)return;markActive(nearestIndex());},[markActive,nearestIndex]);const scrollToIndex=useCallback(index=>{const rail=railRef.current;if(!rail)return;const bounded=Math.max(0,Math.min(slidesRef.current.length-1,index));rail.scrollTo({left:leftFor(bounded),behavior:\"smooth\"});},[leftFor]);const handleKeyDown=useCallback(event=>{if(event.key!==\"ArrowLeft\"&&event.key!==\"ArrowRight\")return;event.preventDefault();const direction=event.key===\"ArrowRight\"?1:-1;scrollToIndex(nearestIndex()+direction);},[nearestIndex,scrollToIndex]);// Touch and pen are left entirely to the browser: iOS Safari must\n// keep ownership of the gesture or the rail stops scrolling at all.\n// Native momentum + scroll-snap already give one card per swipe.\n// The manual drag path exists only for mouse pointers.\nconst handlePointerDown=useCallback(event=>{if(event.pointerType!==\"mouse\")return;if(event.button!==0)return;if(typeof window!==\"undefined\"){window.clearTimeout(settleTimer.current);}didDragRef.current=false;dragRef.current={pointerId:event.pointerId,startX:event.clientX,startY:event.clientY,startScrollLeft:railRef.current?.scrollLeft||0,mode:\"pending\"};},[]);const handlePointerMove=useCallback(event=>{const drag=dragRef.current;const rail=railRef.current;if(!drag||!rail||drag.pointerId!==event.pointerId)return;const dx=event.clientX-drag.startX;const dy=event.clientY-drag.startY;if(drag.mode===\"pending\"){if(Math.max(Math.abs(dx),Math.abs(dy))<7)return;if(Math.abs(dy)>Math.abs(dx)){drag.mode=\"vertical\";return;}drag.mode=\"horizontal\";didDragRef.current=true;rail.style.scrollSnapType=\"none\";try{event.currentTarget.setPointerCapture(event.pointerId);}catch{}}if(drag.mode!==\"horizontal\")return;event.preventDefault();rail.scrollLeft=drag.startScrollLeft-dx;},[]);const finishPointer=useCallback(event=>{const drag=dragRef.current;if(!drag||drag.pointerId!==event.pointerId)return;dragRef.current=null;if(drag.mode!==\"horizontal\")return;try{event.currentTarget.releasePointerCapture(event.pointerId);}catch{}// One card per gesture: step from where the drag began,\n// not from wherever momentum happened to land.\nconst rail=railRef.current;if(rail)rail.style.scrollSnapType=\"x mandatory\";const travelled=(rail?.scrollLeft??0)-drag.startScrollLeft;const startIndex=lastActiveRef.current;if(Math.abs(travelled)<24){scrollToIndex(nearestIndex());return;}scrollToIndex(startIndex+(travelled>0?1:-1));},[nearestIndex,scrollToIndex]);useEffect(()=>{if(!carouselEnabled)return;ensureScrollbarStyle(className);},[carouselEnabled,className]);useLayoutEffect(()=>{if(!carouselEnabled||typeof window===\"undefined\")return;let cancelled=false;const initialize=()=>{if(cancelled)return;const rail=railRef.current;if(!rail)return;// Both breakpoint subtrees mount; only the one that is\n// actually laid out may register and drive its consumers.\nif(rail.offsetWidth===0){if(runningRef.current){runningRef.current=false;unregisterRail(railId);}return;}const slides=captureSlides();if(slides.length<1)return;if(!runningRef.current){runningRef.current=true;registerRail(railId,rail);}lastActiveRef.current=-1;markActive(nearestIndex());syncVideos();};const firstFrame=window.requestAnimationFrame(initialize);const rail=railRef.current;const mutationObserver=rail?new MutationObserver(initialize):null;if(rail&&mutationObserver){mutationObserver.observe(rail,{childList:true});}// Framer's Video component mounts its <video> after the card\n// itself, so playback is re-synced when one appears or loads.\nconst mediaObserver=rail?new MutationObserver(syncVideos):null;if(rail&&mediaObserver){mediaObserver.observe(rail,{childList:true,subtree:true});}if(rail){rail.addEventListener(\"loadedmetadata\",syncVideos,true);}const resizeObserver=rail&&typeof ResizeObserver!==\"undefined\"?new ResizeObserver(initialize):null;if(rail&&resizeObserver)resizeObserver.observe(rail);return()=>{cancelled=true;mutationObserver?.disconnect();mediaObserver?.disconnect();resizeObserver?.disconnect();if(rail){rail.removeEventListener(\"loadedmetadata\",syncVideos,true);rail.querySelectorAll(\"video\").forEach(video=>{video.pause();});}window.cancelAnimationFrame(firstFrame);window.clearTimeout(settleTimer.current);if(runningRef.current){runningRef.current=false;unregisterRail(railId);}};},[captureSlides,carouselEnabled,markActive,nearestIndex,railId,syncVideos]);useEffect(()=>{if(carouselEnabled)return;if(!runningRef.current)return;runningRef.current=false;unregisterRail(railId);},[carouselEnabled,railId]);if(!carouselEnabled){return /*#__PURE__*/_jsx(Component,{...restProps,ref:forwardedRef});}return /*#__PURE__*/_jsx(Component,{...restProps,ref:setRailRef,className:((restProps.className||\"\")+\" \"+className).trim(),role:\"region\",\"aria-roledescription\":\"carousel\",tabIndex:0,onScroll:event=>{restProps.onScroll?.(event);handleScroll();},onClick:event=>{restProps.onClick?.(event);if(didDragRef.current){event.preventDefault();event.stopPropagation();didDragRef.current=false;return;}const target=event.target;const slide=target.closest(\"[data-carousel-slide='true']\");if(!slide)return;const index=Number(slide.dataset.carouselIndex);if(Number.isFinite(index))scrollToIndex(index);},onKeyDown:event=>{restProps.onKeyDown?.(event);handleKeyDown(event);},onPointerDown:event=>{restProps.onPointerDown?.(event);handlePointerDown(event);},onPointerMove:event=>{restProps.onPointerMove?.(event);handlePointerMove(event);},onPointerUp:event=>{restProps.onPointerUp?.(event);finishPointer(event);},onPointerCancel:event=>{restProps.onPointerCancel?.(event);finishPointer(event);},style:{...restProps.style,justifyContent:\"flex-start\",overflowX:\"auto\",overflowY:\"hidden\",WebkitOverflowScrolling:\"touch\",overscrollBehaviorX:\"contain\",overscrollBehaviorY:\"auto\",scrollSnapType:\"x mandatory\",scrollBehavior:\"auto\",scrollbarWidth:\"none\",msOverflowStyle:\"none\",// Must stay permissive: restricting this to pan-y left\n// horizontal gestures with no owner on iOS Safari and\n// locked the rail.\ntouchAction:\"auto\"},children:restProps.children});});}export function withCarouselCopyGroup(Component){return /*#__PURE__*/forwardRef(function CarouselCopyGroup(props,forwardedRef){const{carouselId,...restProps}=props;const carouselEnabled=usePhoneCarouselRuntime();const hostRef=useRef(null);const setHostRef=useCallback(node=>{hostRef.current=node;setMergedRef(forwardedRef,node);},[forwardedRef]);const resolvedId=useNearestCarouselId(hostRef,carouselId,carouselEnabled);const snapshot=useCarouselSnapshot(resolvedId);const copies=elementChildren(restProps.children);const activeIndex=copies.length>0?Math.min(snapshot.activeIndex,copies.length-1):0;const activeCopy=copies[activeIndex];if(!carouselEnabled){return /*#__PURE__*/_jsx(Component,{...restProps,ref:forwardedRef});}return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:\"@keyframes native-carousel-copy-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }\"}),/*#__PURE__*/_jsx(Component,{...restProps,ref:setHostRef,\"aria-live\":\"polite\",children:activeCopy?/*#__PURE__*/cloneElement(activeCopy,{key:\"carousel-copy-\"+activeIndex,style:{...activeCopy.props.style,animation:\"native-carousel-copy-in 220ms ease both\"}}):null})]});});}export function withCarouselThumb(Component){return /*#__PURE__*/forwardRef(function CarouselThumb(props,forwardedRef){const{carouselId,...restProps}=props;const carouselEnabled=usePhoneCarouselRuntime();const thumbRef=useRef(null);const setThumbRef=useCallback(node=>{thumbRef.current=node;setMergedRef(forwardedRef,node);},[forwardedRef]);const resolvedId=useNearestCarouselId(thumbRef,carouselId,carouselEnabled);const snapshot=useCarouselSnapshot(resolvedId);const[travel,setTravel]=useState(0);// Travel is measured, not assumed, so the thumb spans its track for\n// any slide count and any thumb/track width the canvas uses.\nuseEffect(()=>{if(!carouselEnabled)return;const thumb=thumbRef.current;const track=thumb?.parentElement;if(!thumb||!track)return;const measure=()=>setTravel(Math.max(0,track.clientWidth-thumb.clientWidth));measure();if(typeof ResizeObserver===\"undefined\")return;const observer=new ResizeObserver(measure);observer.observe(thumb);observer.observe(track);return()=>observer.disconnect();},[carouselEnabled]);if(!carouselEnabled){return /*#__PURE__*/_jsx(Component,{...restProps,ref:forwardedRef});}return /*#__PURE__*/_jsx(Component,{...restProps,ref:setThumbRef,style:{...restProps.style,transform:\"translateX(\"+clamp01(snapshot.progress)*travel+\"px)\",transition:\"transform 220ms ease\",willChange:\"transform\"}});});}/**\n * @deprecated Playback now lives in `withInfiniteCarouselTrack`, which reaches\n * every card through the rail. This override only attached through a ref, so it\n * was silently inert on cards that are component instances. Kept as a\n * passthrough so the canvas nodes still referencing it keep rendering — safe to\n * leave applied, and safe to remove.\n */export function withCarouselVideoPlayback(Component){return Component;}/** @deprecated Kept only so stale canvas references keep rendering. */export function withNativeInfiniteCarousel(Component){return Component;}\nexport const __FramerMetadata__ = {\"exports\":{\"withCarouselVideoPlayback\":{\"type\":\"reactHoc\",\"name\":\"withCarouselVideoPlayback\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withNativeInfiniteCarousel\":{\"type\":\"reactHoc\",\"name\":\"withNativeInfiniteCarousel\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withCarouselCopyGroup\":{\"type\":\"reactHoc\",\"name\":\"withCarouselCopyGroup\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withInfiniteCarouselTrack\":{\"type\":\"reactHoc\",\"name\":\"withInfiniteCarouselTrack\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withCarouselThumb\":{\"type\":\"reactHoc\",\"name\":\"withCarouselThumb\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./NativeInfiniteCarousel.map"],"mappings":"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"}