{"version":3,"file":"Parallax.BlMmFs2C.mjs","names":["useRef","useState"],"sources":["https:/framerusercontent.com/modules/SZy9Dj2hmxFU3s56qdeU/M2VffTiOVEysslhzIB2f/Parallax.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useEffect,useRef,useState}from\"react\";export function ParallaxImage({image,intensity,borderRadius,uniqueKey,altText}){const containerRef=useRef(null);const imageRef=useRef(null);let animationFrame=useRef(null);const[componentKey]=useState(uniqueKey||`parallax-${Math.random()}`);useEffect(()=>{const handleScroll=()=>{if(!containerRef.current||!imageRef.current)return;const rect=containerRef.current.getBoundingClientRect();const viewportHeight=window.innerHeight;const progress=rect.top/viewportHeight;const moveY=progress*intensity*-6;cancelAnimationFrame(animationFrame.current);animationFrame.current=requestAnimationFrame(()=>{imageRef.current.style.transform=`translateY(${moveY}px)`;});};window.addEventListener(\"scroll\",handleScroll);return()=>{window.removeEventListener(\"scroll\",handleScroll);cancelAnimationFrame(animationFrame.current);};},[intensity]);const isCMSImage=typeof image===\"object\"&&image!==null&&\"url\"in image;const imageSrc=isCMSImage?image.url:image;return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{...containerStyle,borderRadius},children:/*#__PURE__*/_jsx(\"img\",{ref:imageRef,src:imageSrc,alt:altText,style:{...imageStyle,borderRadius}})},componentKey);}const containerStyle={overflow:\"hidden\",position:\"relative\",width:\"100%\",height:\"100%\"};const imageStyle={position:\"absolute\",top:\"0%\",left:\"0\",height:\"105%\",width:\"100%\",objectFit:\"cover\",willChange:\"transform\"};addPropertyControls(ParallaxImage,{image:{type:ControlType.Image,title:\"Select Image\"},altText:{type:ControlType.String,title:\"Alt Text\",defaultValue:\"Parallax Image\"},intensity:{type:ControlType.Number,title:\"Parallax Intensity\",min:5,max:100,step:1,defaultValue:20},borderRadius:{type:ControlType.Number,title:\"Border Radius\",min:0,max:100,step:1,defaultValue:0,displayStepper:true}});\nexport const __FramerMetadata__ = {\"exports\":{\"ParallaxImage\":{\"type\":\"reactComponent\",\"name\":\"ParallaxImage\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Parallax.map"],"mappings":"sMAA4I,SAAgB,EAAc,CAAC,QAAM,YAAU,eAAa,YAAU,WAAS,CAAC,IAAM,EAAaA,EAAO,IAAI,EAAQ,EAASA,EAAO,IAAI,EAAM,EAAeA,EAAO,IAAI,EAAO,CAAC,GAAcC,EAAS,GAAW,YAAY,KAAK,OAAO,GAAG,EAAE,MAAc,CAAC,IAAM,MAAiB,CAAC,GAAG,CAAC,EAAa,SAAS,CAAC,EAAS,QAAQ,OAAO,IAAM,EAAK,EAAa,QAAQ,sBAAsB,EAAQ,EAAe,EAAO,YAAyD,EAA9B,EAAK,IAAI,EAAoC,EAAU,GAAG,qBAAqB,EAAe,OAAO,EAAE,EAAe,QAAQ,0BAA0B,CAAC,EAAS,QAAQ,MAAM,UAAU,cAAc,EAAM,IAAK,CAAC,CAAE,EAAiD,OAA/C,EAAO,iBAAiB,SAAS,CAAY,MAAY,CAAC,EAAO,oBAAoB,SAAS,CAAY,EAAE,qBAAqB,EAAe,OAAO,CAAE,CAAE,EAAE,CAAC,CAAS,CAAC,EAAwE,IAAM,EAA3D,OAAO,GAAQ,UAAU,GAAc,QAAQ,EAAgC,EAAM,IAAI,EAAM,OAAoB,EAAK,MAAM,CAAC,IAAI,EAAa,MAAM,CAAC,GAAG,EAAe,cAAY,EAAE,SAAsB,EAAK,MAAM,CAAC,IAAI,EAAS,IAAI,EAAS,IAAI,EAAQ,MAAM,CAAC,GAAG,EAAW,cAAY,CAAC,CAAC,CAAC,EAAE,CAAY,CAAE,yBAAluC,IAAoD,IAA6C,EAAwoC,EAAe,CAAC,SAAS,SAAS,SAAS,WAAW,MAAM,OAAO,OAAO,MAAM,EAAQ,EAAW,CAAC,SAAS,WAAW,IAAI,KAAK,KAAK,IAAI,OAAO,OAAO,MAAM,OAAO,UAAU,QAAQ,WAAW,WAAW,EAAE,EAAoB,EAAc,CAAC,MAAM,CAAC,KAAK,EAAY,MAAM,MAAM,cAAc,EAAE,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,aAAa,gBAAgB,EAAE,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,qBAAqB,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,aAAa,EAAE,EAAE,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,gBAAgB,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,aAAa,EAAE,eAAe,EAAI,CAAC,CAAC"}