{"version":3,"file":"ParallaxImage.CyFEr2Sl.mjs","names":["useRef"],"sources":["https:/framerusercontent.com/modules/E8QMaEbMiymOb21bombc/FSi5FqFh2JKqf1mNPq04/ParallaxImage.js"],"sourcesContent":["// ParallaxImage with configurable image and parallax effect\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useRef}from\"react\";import{addPropertyControls,ControlType}from\"framer\";/**\n * ParallaxImage\n *\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 300\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export default function ParallaxImage(props){const{image={src:\"https://framerusercontent.com/images/GfGkADagM4KEibNcIiRUWlfrR0.jpg\",alt:\"Gradient 1 - Blue\"},parallaxAmount,parallaxCurve,overlayColor,overlayOpacity,borderRadius,shadow,imageFit,aspectRatio,enableParallaxMobile,fallbackImage={src:\"https://framerusercontent.com/images/GfGkADagM4KEibNcIiRUWlfrR0.jpg\",alt:\"Static fallback\"},minParallax,maxParallax,style}=props;const containerRef=useRef(null);const imgRef=useRef(null);// Utility for curve\nfunction applyCurve(t){if(parallaxCurve===\"ease-in\")return t*t;if(parallaxCurve===\"ease-out\")return t*(2-t);if(parallaxCurve===\"ease-in-out\")return t<.5?2*t*t:-1+(4-2*t)*t;if(parallaxCurve===\"cubic-bezier\")return t<.5?4*t*t*t:1-Math.pow(-2*t+2,3)/2// easeInOutCubic\n;if(parallaxCurve===\"step-start\")return t<1?0:1;if(parallaxCurve===\"step-end\")return t<1?1:0;return t// linear\n;}// Mobile detection\nfunction isMobile(){if(typeof window===\"undefined\")return false;return window.matchMedia(\"(max-width: 767px)\").matches;}useEffect(()=>{let animationFrameId=null;let lastY=0;function handleParallax(){if(!containerRef.current||!imgRef.current)return;if(!enableParallaxMobile&&isMobile()){imgRef.current.style.transform=\"none\";return;}const rect=containerRef.current.getBoundingClientRect();const windowHeight=window.innerHeight;let percent=Math.min(1,Math.max(0,(windowHeight-rect.top)/(windowHeight+rect.height)));percent=applyCurve(percent);let targetY=(percent-.5)*parallaxAmount;if(typeof minParallax===\"number\")targetY=Math.max(minParallax,targetY);if(typeof maxParallax===\"number\")targetY=Math.min(maxParallax,targetY);if(Math.abs(targetY-lastY)>.5){imgRef.current.style.transform=`translateY(${targetY}px)`;lastY=targetY;}}function onScroll(){if(animationFrameId)return;animationFrameId=window.requestAnimationFrame(()=>{handleParallax();animationFrameId=null;});}if(typeof window!==\"undefined\"){window.addEventListener(\"scroll\",onScroll,{passive:true});window.addEventListener(\"resize\",onScroll,{passive:true});handleParallax();return()=>{window.removeEventListener(\"scroll\",onScroll);window.removeEventListener(\"resize\",onScroll);if(animationFrameId)window.cancelAnimationFrame(animationFrameId);};}},[parallaxAmount,parallaxCurve,enableParallaxMobile,minParallax,maxParallax]);const showFallback=typeof window!==\"undefined\"&&window.matchMedia&&window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;// Convert aspect ratio string to number if not auto\nlet computedAspectRatio=\"auto\";if(aspectRatio&&aspectRatio!==\"auto\"){const[w,h]=aspectRatio.split(\"/\").map(Number);if(w&&h)computedAspectRatio=(w/h).toString();}return /*#__PURE__*/_jsxs(\"div\",{ref:containerRef,style:{...containerStyle,...style,width:style?.width||\"100%\",height:style?.height||\"100%\",aspectRatio:computedAspectRatio,borderRadius:borderRadius,boxShadow:shadow?\"0 4px 24px rgba(0,0,0,0.12)\":undefined,overflow:\"hidden\",position:\"relative\"},children:[showFallback?/*#__PURE__*/_jsx(\"img\",{src:fallbackImage.src,alt:fallbackImage.alt||\"\",style:{width:\"100%\",height:\"100%\",objectFit:imageFit,objectPosition:\"center\",borderRadius:borderRadius,display:\"block\"},sizes:\"100vw\",srcSet:fallbackImage.srcSet||undefined,draggable:false}):/*#__PURE__*/_jsx(\"img\",{ref:imgRef,src:image.src,alt:image.alt||\"\",style:{width:\"100%\",height:\"100%\",minWidth:0,minHeight:0,maxWidth:\"100%\",maxHeight:\"100%\",display:\"block\",margin:0,padding:0,willChange:\"transform\",transition:\"none\",objectFit:imageFit,objectPosition:\"center\",borderRadius:borderRadius},sizes:\"100vw\",srcSet:image.srcSet||undefined,draggable:false}),overlayOpacity>0&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",top:0,left:0,width:\"100%\",height:\"100%\",background:overlayColor,opacity:overlayOpacity,pointerEvents:\"none\",borderRadius:borderRadius},\"aria-hidden\":\"true\"})]});}addPropertyControls(ParallaxImage,{image:{type:ControlType.ResponsiveImage,title:\"Image\"},parallaxAmount:{type:ControlType.Number,title:\"Parallax Amount\",defaultValue:40,min:0,max:200,step:1,unit:\"px\"},parallaxCurve:{type:ControlType.Enum,title:\"Parallax Curve\",options:[\"linear\",\"ease-in\",\"ease-out\",\"ease-in-out\",\"cubic-bezier\",\"step-start\",\"step-end\"],optionTitles:[\"Linear\",\"Ease In\",\"Ease Out\",\"Ease In Out\",\"Cubic Bezier\",\"Step Start\",\"Step End\"],defaultValue:\"linear\",displaySegmentedControl:false},overlayColor:{type:ControlType.Color,title:\"Overlay Color\",defaultValue:\"#000000\"},overlayOpacity:{type:ControlType.Number,title:\"Overlay Opacity\",defaultValue:0,min:0,max:1,step:.01},borderRadius:{type:ControlType.Number,title:\"Border Radius\",defaultValue:0,min:0,max:64,step:1,unit:\"px\"},shadow:{type:ControlType.Boolean,title:\"Shadow\",defaultValue:false,enabledTitle:\"Show\",disabledTitle:\"Hide\"},imageFit:{type:ControlType.Enum,title:\"Image Fit\",options:[\"cover\",\"contain\"],optionTitles:[\"Cover\",\"Contain\"],defaultValue:\"cover\",displaySegmentedControl:true},aspectRatio:{type:ControlType.Enum,title:\"Aspect Ratio\",options:[\"auto\",\"16/9\",\"4/3\",\"1/1\",\"3/4\",\"9/16\"],optionTitles:[\"Auto\",\"16:9\",\"4:3\",\"1:1\",\"3:4\",\"9:16\"],defaultValue:\"auto\",displaySegmentedControl:false},enableParallaxMobile:{type:ControlType.Boolean,title:\"Parallax on Mobile\",defaultValue:false,enabledTitle:\"Enable\",disabledTitle:\"Disable\"},fallbackImage:{type:ControlType.ResponsiveImage,title:\"Fallback Image\"},minParallax:{type:ControlType.Number,title:\"Min Parallax\",defaultValue:-100,min:-500,max:0,step:1,unit:\"px\"},maxParallax:{type:ControlType.Number,title:\"Max Parallax\",defaultValue:100,min:0,max:500,step:1,unit:\"px\"}});const containerStyle={width:\"100%\",height:\"100%\",minWidth:0,minHeight:0,overflow:\"hidden\",backgroundColor:\"transparent\",position:\"relative\",display:\"block\",aspectRatio:\"auto\"};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ParallaxImage\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"300\",\"framerIntrinsicWidth\":\"400\",\"framerSupportedLayoutHeight\":\"any\",\"framerSupportedLayoutWidth\":\"any\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ParallaxImage.map"],"mappings":"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"}