{"version":3,"file":"shared-lib.wpTa6EcY.mjs","names":["useRef","useState"],"sources":["https:/framerusercontent.com/modules/HfBBfAcbzydIS0dwvMhK/VVsqGoM0vNYG9swu9dHi/EyeFollower.js","https:/framerusercontent.com/modules/cCos99VXlyWm9anhePPR/ajX3ZNSPWHkRSs8bf1HH/siteMetadata.js"],"sourcesContent":["// Eye component where each eye follows the mouse cursor in a natural way\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useState,useRef,startTransition}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";/**\n * Eye Follow Component\n *\n * @framerIntrinsicWidth 200\n * @framerIntrinsicHeight 100\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function EyeFollower(props){const{eyeColor=\"#FFFFFF\",pupilColor=\"#000000\",eyeSize=80,pupilSize=30,spacing=20,followSpeed=.1,maxRotation=15,blinkInterval=3e3}=props;const containerRef=useRef(null);const[leftPupilPos,setLeftPupilPos]=useState({x:0,y:0});const[rightPupilPos,setRightPupilPos]=useState({x:0,y:0});const[isBlinking,setIsBlinking]=useState(false);const isStatic=useIsStaticRenderer();// Blink animation effect\nuseEffect(()=>{if(isStatic||typeof window===\"undefined\")return;const blinkDuration=150;const blink=()=>{startTransition(()=>setIsBlinking(true));setTimeout(()=>{startTransition(()=>setIsBlinking(false));},blinkDuration);};const interval=setInterval(blink,blinkInterval);return()=>clearInterval(interval);},[blinkInterval,isStatic]);useEffect(()=>{if(isStatic||typeof window===\"undefined\")return;const handleMouseMove=e=>{if(!containerRef.current)return;const container=containerRef.current;const rect=container.getBoundingClientRect();const containerCenterX=rect.left+rect.width/2;const containerCenterY=rect.top+rect.height/2;// Calculate positions for left eye\nconst leftEyeX=containerCenterX-(eyeSize/2+spacing/2);const leftEyeY=containerCenterY;// Calculate positions for right eye\nconst rightEyeX=containerCenterX+(eyeSize/2+spacing/2);const rightEyeY=containerCenterY;// Calculate angle and distance for left eye\nconst leftAngle=Math.atan2(e.clientY-leftEyeY,e.clientX-leftEyeX);const leftDistance=Math.sqrt(Math.pow(e.clientX-leftEyeX,2)+Math.pow(e.clientY-leftEyeY,2));// Calculate angle and distance for right eye\nconst rightAngle=Math.atan2(e.clientY-rightEyeY,e.clientX-rightEyeX);const rightDistance=Math.sqrt(Math.pow(e.clientX-rightEyeX,2)+Math.pow(e.clientY-rightEyeY,2));// Calculate max movement based on eye and pupil size\nconst maxMove=(eyeSize-pupilSize)/2-5;// Calculate new positions with smooth following\nconst leftTargetX=Math.cos(leftAngle)*Math.min(leftDistance*followSpeed,maxMove);const leftTargetY=Math.sin(leftAngle)*Math.min(leftDistance*followSpeed,maxMove);const rightTargetX=Math.cos(rightAngle)*Math.min(rightDistance*followSpeed,maxMove);const rightTargetY=Math.sin(rightAngle)*Math.min(rightDistance*followSpeed,maxMove);startTransition(()=>{setLeftPupilPos({x:leftTargetX,y:leftTargetY});setRightPupilPos({x:rightTargetX,y:rightTargetY});});};window.addEventListener(\"mousemove\",handleMouseMove);return()=>window.removeEventListener(\"mousemove\",handleMouseMove);},[eyeSize,pupilSize,spacing,followSpeed,isStatic]);const eyeStyle={width:eyeSize,height:eyeSize,borderRadius:\"50%\",backgroundColor:eyeColor,position:\"relative\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",boxShadow:\"inset 0 2px 8px rgba(0,0,0,0.1)\"};const pupilStyle={width:pupilSize,height:pupilSize,borderRadius:\"50%\",backgroundColor:pupilColor,position:\"absolute\",transition:\"transform 0.1s ease-out\",boxShadow:\"0 2px 4px rgba(0,0,0,0.2)\"};const eyelidTopStyle={position:\"absolute\",top:0,left:0,width:\"100%\",height:isBlinking?\"50%\":\"0%\",backgroundColor:\"#181818\",transition:\"height 0.15s ease-in-out\",zIndex:10,boxShadow:\"0 2px 4px rgba(0,0,0,0.1)\"};const eyelidBottomStyle={position:\"absolute\",bottom:0,left:0,width:\"100%\",height:isBlinking?\"50%\":\"0%\",backgroundColor:\"#181818\",transition:\"height 0.15s ease-in-out\",zIndex:10,boxShadow:\"0 -2px 4px rgba(0,0,0,0.1)\"};return /*#__PURE__*/_jsxs(\"div\",{ref:containerRef,style:{...props.style,position:\"relative\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",gap:spacing},children:[/*#__PURE__*/_jsxs(\"div\",{style:eyeStyle,children:[/*#__PURE__*/_jsx(\"div\",{style:{...pupilStyle,transform:`translate(${leftPupilPos.x}px, ${leftPupilPos.y}px)`}}),/*#__PURE__*/_jsx(\"div\",{style:eyelidTopStyle}),/*#__PURE__*/_jsx(\"div\",{style:eyelidBottomStyle})]}),/*#__PURE__*/_jsxs(\"div\",{style:eyeStyle,children:[/*#__PURE__*/_jsx(\"div\",{style:{...pupilStyle,transform:`translate(${rightPupilPos.x}px, ${rightPupilPos.y}px)`}}),/*#__PURE__*/_jsx(\"div\",{style:eyelidTopStyle}),/*#__PURE__*/_jsx(\"div\",{style:eyelidBottomStyle})]})]});}addPropertyControls(EyeFollower,{eyeColor:{type:ControlType.Color,title:\"Eye Color\",defaultValue:\"#FFFFFF\"},pupilColor:{type:ControlType.Color,title:\"Pupil Color\",defaultValue:\"#000000\"},eyeSize:{type:ControlType.Number,title:\"Eye Size\",defaultValue:50,min:40,max:200,step:1,unit:\"px\"},pupilSize:{type:ControlType.Number,title:\"Pupil Size\",defaultValue:18,min:10,max:100,step:1,unit:\"px\"},spacing:{type:ControlType.Number,title:\"Eye Spacing\",defaultValue:20,min:0,max:100,step:1,unit:\"px\"},followSpeed:{type:ControlType.Number,title:\"Follow Speed\",defaultValue:.1,min:.05,max:.5,step:.01},blinkInterval:{type:ControlType.Number,title:\"Blink Interval\",defaultValue:3e3,min:1e3,max:1e4,step:100,unit:\"ms\"},maxRotation:{type:ControlType.Number,title:\"Max Rotation\",defaultValue:15,min:5,max:30,step:1,unit:\"deg\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"EyeFollower\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"200\",\"framerIntrinsicHeight\":\"100\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./EyeFollower.map","// Generated by Framer (b6e2e7c)\nexport default function metadata(params,activeLocale){return{description:\"Bart Ocieczek is a Digital Designer & No-code Developer focused on creating digital experiences.\\n\",favicon:\"https://framerusercontent.com/assets/jrqeLKawlQw0DkFBIDGa6tTEnsQ.jpg\",robots:\"max-image-preview:large\",socialImage:\"https://framerusercontent.com/assets/fLqxUJ36JBiGBg2e9D242Qm3fk.jpg\",title:\"Bart Ocieczek - Digital Designer & No-code Developer\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}