{"version":3,"file":"CarouselSlider.CAOzMCil.mjs","names":["React.useState","React.useRef"],"sources":["https:/framerusercontent.com/modules/JoZwH9zQx3tJ2q3oj331/K2UTfZFh6s1h0xPMoBml/CarouselSlider.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{motion}from\"framer-motion\";import{addPropertyControls,ControlType}from\"framer\";import{RenderTarget}from\"framer\";// Styled loading container based on PixelatedImageHover component\nconst LoadingContainer=({isLoading})=>{return /*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",top:0,left:0,width:\"100%\",height:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",zIndex:5,transition:\"opacity 0.3s ease, visibility 0.3s ease\",opacity:isLoading?1:0,visibility:isLoading?\"visible\":\"hidden\"},children:/*#__PURE__*/_jsx(\"img\",{src:\"https://framerusercontent.com/images/JNUgg30rpy6aXXroiU7fB506g.gif\",loading:\"lazy\",alt:\"Loading\",style:{width:\"50px\",height:\"50px\"}})});};/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerIntrinsicWidth 800\n * @framerIntrinsicHeight 450\n * @framerDisableUnlink\n */export function CarouselSlider({numberOfSlides,slide1,slide2,slide3,slide4,slide5,slide6,prevArrowImage,nextArrowImage,arrowSize,showArrows,arrowHover,arrowHoverOpacity,autoplay,autoplaySpeed,arrowContainerBackgroundColor,arrowsPosition,transition,disableLazyLoading,pauseOnHover,loadingDelay}){// Convert numberOfSlides to a number if it's not already\nconst slideCount=Number(numberOfSlides)||2;const isOnFramerCanvas=RenderTarget.hasRestrictions();// Only respect autoplay setting when not on Framer canvas\nconst shouldAutoplay=autoplay&&!isOnFramerCanvas;const[currentIndex,setCurrentIndex]=React.useState(0);const[isTransitioning,setIsTransitioning]=React.useState(true);const[hoveredArrow,setHoveredArrow]=React.useState(null);const[isTabActive,setIsTabActive]=React.useState(true);const[isHovering,setIsHovering]=React.useState(false);// New loading state\nconst[isLoading,setIsLoading]=React.useState(true);const containerRef=React.useRef(null);const lastTransitionTimeRef=React.useRef(Date.now());const intervalRef=React.useRef(null);const slides=[slide1,slide2,slide3,slide4,slide5,slide6];const displayedSlides=slides.slice(0,slideCount);const fullSlideSet=[...displayedSlides,displayedSlides[0]];// Loading delay effect\nReact.useEffect(()=>{// Set a timeout for the specified delay (1 second = 1000ms)\nconst timer=setTimeout(()=>{setIsLoading(false);},loadingDelay);// Clean up the timer if component unmounts\nreturn()=>clearTimeout(timer);},[loadingDelay]);// Set up visibility detection\nReact.useEffect(()=>{const handleVisibilityChange=()=>{const isVisible=document.visibilityState===\"visible\";setIsTabActive(isVisible);if(isVisible){// Reset the last transition time when tab becomes visible again\nlastTransitionTimeRef.current=Date.now();}};document.addEventListener(\"visibilitychange\",handleVisibilityChange);return()=>{document.removeEventListener(\"visibilitychange\",handleVisibilityChange);};},[]);// Set up and manage autoplay\nReact.useEffect(()=>{// Clear any existing interval when dependencies change\nif(intervalRef.current){clearInterval(intervalRef.current);intervalRef.current=null;}// Only create a new interval if autoplay is enabled AND the tab is active\n// AND (pauseOnHover is disabled OR mouse is not hovering over the carousel)\n// AND we're not in the loading state\nif(shouldAutoplay&&isTabActive&&(!pauseOnHover||!isHovering)&&!isLoading){intervalRef.current=setInterval(()=>{const now=Date.now();const timeSinceLastTransition=now-lastTransitionTimeRef.current;// Only proceed if enough time has passed\nif(timeSinceLastTransition>=autoplaySpeed*1e3*.8){lastTransitionTimeRef.current=now;if(currentIndex===slideCount-1){handleNext();}else if(currentIndex===slideCount){setIsTransitioning(false);setCurrentIndex(0);requestAnimationFrame(()=>{setIsTransitioning(true);setCurrentIndex(1);});}else{handleNext();}}},autoplaySpeed*1e3);}// Clean up function\nreturn()=>{if(intervalRef.current){clearInterval(intervalRef.current);intervalRef.current=null;}};},[currentIndex,shouldAutoplay,autoplaySpeed,slideCount,isTabActive,isHovering,pauseOnHover,isLoading]);const handleNext=()=>{lastTransitionTimeRef.current=Date.now();if(currentIndex===slideCount-1){// Normal forward movement from last visible slide to clone of first slide\nsetIsTransitioning(true);setCurrentIndex(slideCount);// After transition completes, silently reset to the actual first slide\nsetTimeout(()=>{setIsTransitioning(false);setCurrentIndex(0);},500)// This should match the duration of the transition\n;}else if(currentIndex===slideCount){// Already at clone slide, go to real first slide without animation\nsetIsTransitioning(false);setCurrentIndex(0);// Then immediately go to second slide with animation\nrequestAnimationFrame(()=>{setIsTransitioning(true);setCurrentIndex(1);});}else{// Normal forward movement\nsetIsTransitioning(true);setCurrentIndex(prev=>prev+1);}};const handlePrev=()=>{lastTransitionTimeRef.current=Date.now();if(currentIndex===0){// When on first slide, silently go to the clone slide\nsetIsTransitioning(false);setCurrentIndex(slideCount);// Then go to the last slide with animation\nrequestAnimationFrame(()=>{setIsTransitioning(true);setCurrentIndex(slideCount-1);});}else{// Normal backward movement\nsetIsTransitioning(true);setCurrentIndex(prev=>prev-1);}};const handleDragEnd=(event,info)=>{const dragDistance=info.offset.x;const threshold=50// Minimum drag distance to trigger slide change\n;lastTransitionTimeRef.current=Date.now();if(dragDistance>threshold){if(currentIndex===0){setIsTransitioning(false);setCurrentIndex(slideCount);requestAnimationFrame(()=>{setIsTransitioning(true);setCurrentIndex(slideCount-1);});}else{handlePrev();}}else if(dragDistance<-threshold){if(currentIndex===slideCount){setIsTransitioning(false);setCurrentIndex(0);requestAnimationFrame(()=>{setIsTransitioning(true);setCurrentIndex(1);});}else{handleNext();}}};// Mouse enter and leave handlers for pause on hover\nconst handleMouseEnter=()=>{setIsHovering(true);};const handleMouseLeave=()=>{setIsHovering(false);};// Safe clone element helper function\nconst safeCloneElement=(element,props,...children)=>{if(!/*#__PURE__*/React.isValidElement(element)){return element;}// Ensure props exists and is an object\nconst safeProps=typeof props===\"object\"&&props!==null?props:{};return /*#__PURE__*/React.cloneElement(element,safeProps,...children);};// Helper function to recursively apply lazy loading to all images in a component tree\nconst applyLazyLoadingToImages=element=>{// If not enabled, return original element\nif(disableLazyLoading){return element;}// Base case: not a valid element\nif(!/*#__PURE__*/React.isValidElement(element)){return element;}// Check if element is an image\nif(element.type===\"img\"){const imgProps={loading:\"lazy\"};// Only spread if props exists and is an object\nif(typeof element.props===\"object\"&&element.props!==null){Object.assign(imgProps,element.props);}return safeCloneElement(element,imgProps);}// If element has children, process them recursively\nif(!element.props){return element;}const{children}=element.props;if(children){// Handle single child\nif(/*#__PURE__*/React.isValidElement(children)){const newChild=applyLazyLoadingToImages(children);return safeCloneElement(element,element.props,newChild);}// Handle array of children\nif(Array.isArray(children)){const newChildren=React.Children.map(children,child=>applyLazyLoadingToImages(child));return safeCloneElement(element,element.props,newChildren);}}// Return unchanged element if no image found or no children\nreturn element;};// Process all slides with lazy loading\nconst processedSlides=fullSlideSet.map(slide=>{return applyLazyLoadingToImages(slide);});// Apply direct styling to slides - MODIFIED FOR PROPER SCALING\nReact.useEffect(()=>{if(!containerRef.current)return;const applyStyles=()=>{try{// Find all slides and make the containers fill their allocated space\nconst slideContainers=containerRef.current.querySelectorAll(\"[aria-hidden]\");slideContainers.forEach(container=>{// Apply styles to slide container only\ncontainer.style.width=`${100/(slideCount+1)}%`;container.style.height=\"100%\";container.style.position=\"relative\";container.style.overflow=\"hidden\";// Get all direct children of the slide container\nconst directChildren=container.children;for(let i=0;i<directChildren.length;i++){const child=directChildren[i];// Apply container-filling styles only to the immediate child\n// This ensures the slide fills its container but maintains internal proportions\nchild.style.width=\"100%\";child.style.height=\"100%\";// For image elements specifically that need object-fit\nif(child.tagName===\"IMG\"){child.style.objectFit=\"cover\";child.style.objectPosition=\"center top\";// Add lazy loading attribute if enabled\nif(!disableLazyLoading){child.loading=\"lazy\";}}// Recursively apply lazy loading to nested images\nif(!disableLazyLoading){const applyLazyLoadingToDOMImages=element=>{if(element.tagName===\"IMG\"){element.loading=\"lazy\";}Array.from(element.children).forEach(applyLazyLoadingToDOMImages);};applyLazyLoadingToDOMImages(child);}}});}catch(e){console.error(\"Style application error:\",e);}};// Apply styles immediately\napplyStyles();// And also after a short delay to catch any delayed renders\nconst timeoutId=setTimeout(applyStyles,100);return()=>clearTimeout(timeoutId);},[slideCount,disableLazyLoading]);return /*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",width:\"100%\",height:\"100%\",overflow:\"hidden\"},ref:containerRef,onMouseEnter:handleMouseEnter,onMouseLeave:handleMouseLeave,children:[/*#__PURE__*/_jsx(LoadingContainer,{isLoading:isLoading}),/*#__PURE__*/_jsx(motion.div,{style:{display:\"flex\",width:`${(slideCount+1)*100}%`,height:\"100%\",position:\"absolute\",top:0,left:`-${currentIndex*100}%`,// Apply reduced opacity during loading\nopacity:isLoading?0:1,transition:\"opacity 0.3s ease\"},animate:{left:`-${currentIndex*100}%`},transition:isTransitioning?transition:{duration:0},drag:\"x\",dragConstraints:{left:0,right:0},dragElastic:0,onDragEnd:handleDragEnd,children:processedSlides.map((slide,index)=>/*#__PURE__*/_jsx(\"div\",{style:{width:`${100/(slideCount+1)}%`,height:\"100%\",position:\"relative\",overflow:\"hidden\"},\"aria-hidden\":currentIndex!==index?\"true\":\"false\",children:/*#__PURE__*/React.isValidElement(slide)?safeCloneElement(slide,{style:{...typeof slide.props?.style===\"object\"?slide.props.style:{},width:\"100%\",height:\"100%\"}}):slide},index))}),showArrows&&!isLoading&&/*#__PURE__*/_jsxs(\"div\",{style:{position:\"absolute\",top:arrowsPosition.startsWith(\"top\")?\"0\":\"auto\",bottom:arrowsPosition.startsWith(\"bottom\")?\"0\":\"auto\",left:arrowsPosition.endsWith(\"Left\")?\"0\":\"auto\",right:arrowsPosition.endsWith(\"Right\")?\"0\":\"auto\",display:\"flex\",justifyContent:\"space-between\",padding:0,margin:0,zIndex:4,backgroundColor:arrowContainerBackgroundColor},children:[/*#__PURE__*/_jsx(motion.button,{style:{...arrowStyle(arrowSize),display:\"flex\",alignItems:\"center\",justifyContent:\"center\"},animate:{opacity:arrowHover&&hoveredArrow===\"prev\"?arrowHoverOpacity:1},transition:transition,onClick:handlePrev,onMouseEnter:()=>setHoveredArrow(\"prev\"),onMouseLeave:()=>setHoveredArrow(null),\"aria-label\":\"Previous Slide\",children:prevArrowImage&&/*#__PURE__*/_jsx(\"img\",{src:prevArrowImage,alt:\"Previous\",style:{...arrowIconStyle,width:arrowSize,height:arrowSize},loading:!disableLazyLoading?\"lazy\":undefined})}),/*#__PURE__*/_jsx(motion.button,{style:{...arrowStyle(arrowSize),borderRadius:\"50%\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\"},animate:{opacity:arrowHover&&hoveredArrow===\"next\"?arrowHoverOpacity:1},transition:transition,onClick:handleNext,onMouseEnter:()=>setHoveredArrow(\"next\"),onMouseLeave:()=>setHoveredArrow(null),\"aria-label\":\"Next Slide\",children:nextArrowImage&&/*#__PURE__*/_jsx(\"img\",{src:nextArrowImage,alt:\"Next\",style:{...arrowIconStyle,width:arrowSize,height:arrowSize},loading:!disableLazyLoading?\"lazy\":undefined})})]})]});}const arrowIconStyle={objectFit:\"contain\"};const arrowStyle=arrowSize=>({backgroundSize:\"contain\",backgroundRepeat:\"no-repeat\",backgroundColor:\"transparent\",border:\"none\",cursor:\"pointer\",width:arrowSize,height:arrowSize,padding:0,margin:0});// Helper function to properly convert CMS values to numerical slide count\nfunction convertToSlideNumber(value){// Handle cases where the value is already a number\nif(typeof value===\"number\"){return Math.min(Math.max(2,value),6)// Clamp between 2 and 6\n;}// Handle string cases (from CMS)\nif(typeof value===\"string\"){// Try to convert to number directly\nconst numValue=Number(value);if(!isNaN(numValue)){return Math.min(Math.max(2,numValue),6)// Clamp between 2 and 6\n;}// Handle text values like \"two\", \"three\", etc.\nconst textToNumber={two:2,three:3,four:4,five:5,six:6,// Add variants\n\"2\":2,\"3\":3,\"4\":4,\"5\":5,\"6\":6};const result=textToNumber[value.toLowerCase()];return result!==undefined?result:2// Default to 2 if not found\n;}// Default fallback\nreturn 2;}CarouselSlider.defaultProps={numberOfSlides:2,autoplay:true,autoplaySpeed:2.5,arrowSize:100,showArrows:true,arrowHover:true,arrowHoverOpacity:.75,arrowContainerBackgroundColor:\"#0F0F0F\",arrowsPosition:\"bottomLeft\",prevArrowImage:\"https://framerusercontent.com/images/wicQw5jTxAEQ5DFceLDFHTaibM.svg\",nextArrowImage:\"https://framerusercontent.com/images/dU2MsNL7R8wUl9CizEni3RAQLo.svg\",transition:{type:\"spring\",stiffness:800,damping:60},disableLazyLoading:false,pauseOnHover:true,loadingDelay:1e3};addPropertyControls(CarouselSlider,{numberOfSlides:{type:ControlType.Number,title:\"Number of Slides\",defaultValue:2,min:2,max:6,step:1,displayStepper:true,description:\"Try to maintain aspect ratio between Carousel and Slides\"},slide1:{type:ControlType.ComponentInstance,title:\"First Slide\"},slide2:{type:ControlType.ComponentInstance,title:\"Second Slide\"},slide3:{type:ControlType.ComponentInstance,title:\"Third Slide\",hidden:props=>convertToSlideNumber(props.numberOfSlides)<3},slide4:{type:ControlType.ComponentInstance,title:\"Fourth Slide\",hidden:props=>convertToSlideNumber(props.numberOfSlides)<4},slide5:{type:ControlType.ComponentInstance,title:\"Fifth Slide\",hidden:props=>convertToSlideNumber(props.numberOfSlides)<5},slide6:{type:ControlType.ComponentInstance,title:\"Sixth Slide\",hidden:props=>convertToSlideNumber(props.numberOfSlides)<6},showArrows:{type:ControlType.Boolean,title:\"Show Arrows\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\"},arrowContainerBackgroundColor:{type:ControlType.Color,title:\"Arrows Background\",hidden:props=>!props.showArrows},arrowsPosition:{type:ControlType.Enum,title:\"Arrows Position\",options:[\"topLeft\",\"topRight\",\"bottomLeft\",\"bottomRight\"],optionTitles:[\"Top Left\",\"Top Right\",\"Bottom Left\",\"Bottom Right\"],defaultValue:\"bottomLeft\",hidden:props=>!props.showArrows},prevArrowImage:{type:ControlType.Image,title:\"Previous Arrow\",description:\"SVG recommended\",hidden:props=>!props.showArrows},nextArrowImage:{type:ControlType.Image,title:\"Next Arrow\",description:\"SVG recommended\",hidden:props=>!props.showArrows},arrowSize:{type:ControlType.Number,title:\"Arrow Size\",defaultValue:100,min:10,max:200,step:1,displayStepper:true,hidden:props=>!props.showArrows},arrowHover:{type:ControlType.Boolean,title:\"Arrow Hover\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\",hidden:props=>!props.showArrows},arrowHoverOpacity:{type:ControlType.Number,title:\"Arrow Hover Opacity\",defaultValue:1,min:.1,max:1,step:.1,displayStepper:true,hidden:props=>!props.showArrows||!props.arrowHover},autoplay:{type:ControlType.Boolean,title:\"Autoplay\",defaultValue:true},autoplaySpeed:{type:ControlType.Number,title:\"Autoplay Speed\",defaultValue:2.5,min:.1,max:10,step:.1,unit:\"s\",displayStepper:true,hidden:props=>!props.autoplay},pauseOnHover:{type:ControlType.Boolean,title:\"Pause On Hover\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\",hidden:props=>!props.autoplay},disableLazyLoading:{type:ControlType.Boolean,title:\"Disable Lazy Loading\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\",description:\"Only enable this for images above the fold (LCP)\"},loadingDelay:{type:ControlType.Number,title:\"Loading Delay\",defaultValue:300,min:0,max:5e3,step:100,unit:\"ms\",displayStepper:true,description:\"Delay before hiding the loading spinner\",hidden:props=>true},transition:{type:ControlType.Transition,title:\"Transition\",defaultValue:{type:\"spring\",stiffness:800,damping:60},description:\"Discover more Framer resources at [Pixco](https://pixcodrops.com/resources)\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"CarouselSlider\":{\"type\":\"reactComponent\",\"name\":\"CarouselSlider\",\"slots\":[],\"annotations\":{\"framerDisableUnlink\":\"\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicWidth\":\"800\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"450\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CarouselSlider.map"],"mappings":"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"}