{"version":3,"file":"HoverImage.CSPOihcK.mjs","names":["React.useState","React.useRef"],"sources":["https:/framerusercontent.com/modules/o7e0QmyF0U3zOa18CByY/I8B2AoKH9xjV3mkWDSPq/HoverImage.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";import{motion,AnimatePresence}from\"framer-motion\";const MOVEMENT_STRENGTH=.05;const MAX_OFFSET=20;function clamp(value,limit){return Math.max(-limit,Math.min(limit,value));}function HoverImage(props){const{image}=props;const[isHovering,setIsHovering]=React.useState(false);const[offset,setOffset]=React.useState({x:0,y:0});const containerRef=React.useRef(null);React.useEffect(()=>{const container=containerRef.current;if(!container)return;const wrapper=container.parentElement;const titleEl=(wrapper?.previousElementSibling)||(wrapper?.nextElementSibling);if(!titleEl){console.warn(\"HoverImage: couldn't find a neighboring title element\");return;}const handleEnter=()=>setIsHovering(true);const handleLeave=()=>{setIsHovering(false);setOffset({x:0,y:0});};const handleMove=e=>{const rect=titleEl.getBoundingClientRect();const relX=e.clientX-(rect.left+rect.width/2);const relY=e.clientY-(rect.top+rect.height/2);setOffset({x:clamp(relX*MOVEMENT_STRENGTH,MAX_OFFSET),y:clamp(relY*MOVEMENT_STRENGTH,MAX_OFFSET)});};titleEl.addEventListener(\"mouseenter\",handleEnter);titleEl.addEventListener(\"mouseleave\",handleLeave);titleEl.addEventListener(\"mousemove\",handleMove);return()=>{titleEl.removeEventListener(\"mouseenter\",handleEnter);titleEl.removeEventListener(\"mouseleave\",handleLeave);titleEl.removeEventListener(\"mousemove\",handleMove);};},[]);return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{position:\"relative\",width:\"100%\",height:\"100%\"},children:/*#__PURE__*/_jsx(AnimatePresence,{children:isHovering&&image&&/*#__PURE__*/_jsx(motion.img,{src:image,initial:{opacity:0,x:offset.x,y:offset.y},animate:{opacity:1,x:offset.x,y:offset.y},exit:{opacity:0},transition:{opacity:{duration:0},x:{ease:\"linear\",duration:.3},y:{ease:\"linear\",duration:.3}},style:{position:\"fixed\",left:\"40%\",top:0,width:\"50%\",height:\"100%\",objectFit:\"contain\",pointerEvents:\"none\",scale:\"0.8\"}},\"hover-image\")})});}addPropertyControls(HoverImage,{image:{type:ControlType.Image,title:\"Image\"}});export default HoverImage;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"HoverImage\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./HoverImage.map"],"mappings":"2OAA6N,SAAS,EAAM,EAAM,EAAM,CAAC,OAAO,KAAK,IAAI,CAAC,EAAM,KAAK,IAAI,EAAM,CAAK,CAAC,CAAE,CAAC,SAAS,EAAW,EAAM,CAAC,GAAK,CAAC,SAAO,EAAW,CAAC,EAAW,GAAeA,EAAe,EAAK,EAAO,CAAC,EAAO,GAAWA,EAAe,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAQ,EAAaC,EAAa,IAAI,EAAy9B,OAAv9B,MAAoB,CAAC,IAAM,EAAU,EAAa,QAAQ,GAAG,CAAC,EAAU,OAAO,IAAM,EAAQ,EAAU,cAAoB,EAAS,GAAS,wBAA0B,GAAS,mBAAoB,GAAG,CAAC,EAAQ,CAAC,QAAQ,KAAK,uDAAuD,EAAE,MAAO,CAAC,IAAM,MAAgB,EAAc,EAAI,EAAQ,MAAgB,CAAC,EAAc,EAAK,EAAE,EAAU,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,EAAQ,EAAW,GAAG,CAAC,IAAM,EAAK,EAAQ,sBAAsB,EAAQ,EAAK,EAAE,SAAS,EAAK,KAAK,EAAK,MAAM,GAAS,EAAK,EAAE,SAAS,EAAK,IAAI,EAAK,OAAO,GAAG,EAAU,CAAC,EAAE,EAAM,EAAK,EAAkB,CAAU,EAAE,EAAE,EAAM,EAAK,EAAkB,CAAU,CAAC,CAAC,CAAE,EAAyJ,OAAvJ,EAAQ,iBAAiB,aAAa,CAAW,EAAE,EAAQ,iBAAiB,aAAa,CAAW,EAAE,EAAQ,iBAAiB,YAAY,CAAU,MAAY,CAAC,EAAQ,oBAAoB,aAAa,CAAW,EAAE,EAAQ,oBAAoB,aAAa,CAAW,EAAE,EAAQ,oBAAoB,YAAY,CAAU,CAAE,CAAE,EAAE,CAAC,CAAC,EAAsB,EAAK,MAAM,CAAC,IAAI,EAAa,MAAM,CAAC,SAAS,WAAW,MAAM,OAAO,OAAO,MAAM,EAAE,SAAsB,EAAK,EAAgB,CAAC,SAAS,GAAY,GAAoB,EAAK,EAAO,IAAI,CAAC,IAAI,EAAM,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAO,EAAE,EAAE,EAAO,CAAC,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAO,EAAE,EAAE,EAAO,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,SAAS,SAAS,EAAE,EAAE,EAAE,CAAC,KAAK,SAAS,SAAS,EAAE,CAAC,EAAE,MAAM,CAAC,SAAS,QAAQ,KAAK,MAAM,IAAI,EAAE,MAAM,MAAM,OAAO,OAAO,UAAU,UAAU,cAAc,OAAO,MAAM,KAAK,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAE,qBAAz7D,IAA4B,IAAoD,IAAkD,EAAO,EAAkB,IAAU,EAAW,GAA0wD,EAAoB,EAAW,CAAC,MAAM,CAAC,KAAK,EAAY,MAAM,MAAM,OAAO,CAAC,CAAC"}