{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/tA2OTTSzqpq8aABePFC4/xDG5zzops0LH0sxWhTpk/CirclesBackground.js"],
  "sourcesContent": ["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useState,useEffect,useRef}from\"react\";import{motion,useAnimation}from\"framer-motion\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{calculateDistance,checkOverlap,randomNumber}from\"https://framerusercontent.com/modules/Fe9cALFizwxM46iaUqGB/BBmJsVKCXXV72rBqnPVQ/Utils.js\";import{useStore}from\"https://framerusercontent.com/modules/UIoqcAsyyWXi6kXjnTeE/ROgiOu5vBdV58sTX2wbr/Main.js\";const circleCSS=`\n.circle{\n    position:absolute;\n    overflow: visible;\n    aspect-ratio: 1 / 1;\n    border-radius: 100%;\n    pointer-events:none;\n}\n`;const isBrowser=typeof window!==\"undefined\";let originalCircles;function getWindowDimensions(){if(!isBrowser)return{width:0,height:0};const{innerWidth:width,innerHeight:height}=window;return{width,height};}function CircleComponent(props){const controls=useAnimation();const ref=useRef();const[store,setStore]=useStore();const[active,setActive]=useState(false);useEffect(()=>{animatePosition();},[]);const mouseMove=(mouseX,mouseY)=>{if(ref.current){var boundingRect=ref.current.getBoundingClientRect();//console.log(mouseX, mouseY)\nvar triggerArea=200;const distanceFromMouseToCenter=calculateDistance(mouseX,mouseY,boundingRect.left+boundingRect.width/2,boundingRect.top+boundingRect.height/2);if(distanceFromMouseToCenter<triggerArea){if(!active)setActive(true);}else{if(active)reset();return;}}};const reset=()=>{setActive(false);};useEffect(()=>{if(active){controls.start({scale:1.2,transition:{duration:.5,ease:\"easeInOut\"}});}else{controls.start({scale:store.activeCount-1>0?.75:.9,transition:{duration:.5,ease:\"easeInOut\"}});}},[active]);useEffect(()=>{if(store.mouseX===0){setStore({activeCount:0});if(active)reset();return;}mouseMove(store.mouseX,store.mouseY);},[store.mouseX,store.mouseY]);const animatePosition=()=>{const upperLimit=1.3;const lowerLimit=.85;controls.start({scaleX:[randomNumber(lowerLimit,upperLimit),randomNumber(lowerLimit,upperLimit),randomNumber(lowerLimit,upperLimit),randomNumber(lowerLimit,upperLimit),randomNumber(lowerLimit,upperLimit),randomNumber(lowerLimit,upperLimit),randomNumber(lowerLimit,upperLimit),],scaleY:[randomNumber(lowerLimit,upperLimit),randomNumber(lowerLimit,upperLimit),randomNumber(lowerLimit,upperLimit),randomNumber(lowerLimit,upperLimit),randomNumber(lowerLimit,upperLimit),randomNumber(lowerLimit,upperLimit),randomNumber(lowerLimit,upperLimit),],transition:{del:Math.random(),repeat:Infinity,repeatType:\"reverse\",duration:12,ease:\"easeInOut\"}});};return /*#__PURE__*/ _jsx(motion.div,{id:props.circleID,ref:ref,className:\"circle\",layout:true,animate:controls,style:{WebkitFilter:`blur(${props.size*.25}px)`,filter:`blur(${props.size*.25}px)`,width:props.size,height:props.size,backgroundColor:props.color,top:props.y,left:props.x,transition:\"top 0.2s , left 0.2s\"}});}export default function CirclesBackground(props){const{tint,circles,style}=props;//console.log(props.circles)\nconst[windowDimensions,setWindowDimensions]=useState(getWindowDimensions());const[containerWidth,setWidth]=useState(0);const circlesRef=useRef([]);const circleSize=useRef(350);useEffect(()=>{const tempProps={...props};originalCircles=[];props.circles.forEach(el=>{originalCircles.push({...el});});circlesRef.current=[...tempProps.circles];},[props]);useEffect(()=>{const tempProps={...props};originalCircles=[];props.circles.forEach(el=>{originalCircles.push({...el});});circlesRef.current=[...tempProps.circles];if(!isBrowser)return;const dimensions=getWindowDimensions();setWindowDimensions(dimensions);function handleResize(){const dimensions=getWindowDimensions();setWindowDimensions(dimensions);}window.addEventListener(\"resize\",handleResize);return()=>isBrowser?window.removeEventListener(\"resize\",handleResize):null;},[]);useEffect(()=>{if(RenderTarget.current()===RenderTarget.canvas){const tempProps={...props};originalCircles=[];props.circles.forEach(el=>{originalCircles.push({...el});});circlesRef.current=[...tempProps.circles];}let maxX=0;originalCircles.forEach(circ=>{if(circ.x>maxX){maxX=circ.x;}});for(var i=0;i<circlesRef.current.length;i++){circlesRef.current[i]={...originalCircles[i]};if(maxX+circleSize.current<=windowDimensions.width)continue;if(originalCircles[i].x+circleSize.current>windowDimensions.width){circlesRef.current[i].x=originalCircles[i].x+(windowDimensions.width-(originalCircles[i].x+circleSize.current)) // original + offset\n;}for(var j=0;j<circlesRef.current.length;j++){const boxA={x:circlesRef.current[i].x+circleSize.current/2,y:circlesRef.current[i].y+circleSize.current/2,width:circleSize.current/3,height:circleSize.current/3};const boxB={x:circlesRef.current[j].x+circleSize.current/2,y:circlesRef.current[j].y+circleSize.current/2,width:circleSize.current/3,height:circleSize.current/3};const overlap=checkOverlap(boxA,boxB);if(i===j)continue;if(overlap){circlesRef.current[i].y+=overlap.height*3;}}}setWidth(maxX+circleSize.current>windowDimensions.width?windowDimensions.width:maxX+circleSize.current);},[props.circles,windowDimensions,setWindowDimensions]);if(containerWidth===0)return /*#__PURE__*/ _jsx(_Fragment,{});return /*#__PURE__*/ _jsxs(motion.div,{style:{...style,...containerStyle,zIndex:0,position:\"absolute\",left:0,top:0,pointerEvents:\"none\"},children:[/*#__PURE__*/ _jsx(\"style\",{children:circleCSS}),/*#__PURE__*/ _jsx(motion.div,{style:{width:`${containerWidth}px`,height:\"100%\",position:\"absolute\"},children:circlesRef.current.map((circ,index)=>{return /*#__PURE__*/ _jsx(CircleComponent,{size:circleSize.current,circleID:`circle-${index}`,...circ});})})]});};CirclesBackground.defaultProps={tint:\"#09F\",circles:[{color:\"rgb(255, 0, 0)\",x:0,y:0},{color:\"rgb(7, 142, 233)\",x:14,y:237},{color:\"rgb(218, 250, 56)\",x:487,y:0},{color:\"rgb(0, 255, 102)\",x:255,y:0},{color:\"rgb(255, 0, 255)\",x:369,y:231},{color:\"rgb(21, 255, 0)\",x:569,y:271},]};addPropertyControls(CirclesBackground,{circles:{title:\"Circles\",type:ControlType.Array,control:{type:ControlType.Object,controls:{color:{title:\"Color\",type:ControlType.Color},x:{title:\"X\",type:ControlType.Number,max:2e3},y:{title:\"Y\",type:ControlType.Number,max:2e3}}}}});const containerStyle={display:\"flex\",justifyContent:\"center\",alignItems:\"center\"};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CirclesBackground\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],
  "mappings": "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",
  "names": ["circleCSS", "isBrowser", "window", "originalCircles", "getWindowDimensions", "width", "height", "CircleComponent", "props", "controls", "useAnimation", "ref", "pe", "store", "setStore", "useStore", "active", "setActive", "ye", "ue", "animatePosition", "mouseMove", "mouseX", "mouseY", "boundingRect", "triggerArea", "calculateDistance", "reset", "randomNumber", "motion", "CirclesBackground", "tint", "circles", "style", "windowDimensions", "setWindowDimensions", "containerWidth", "setWidth", "circlesRef", "circleSize", "tempProps", "el", "dimensions", "handleResize", "RenderTarget", "maxX", "circ", "i", "j", "boxA", "boxB", "overlap", "checkOverlap", "l", "u", "containerStyle", "index", "addPropertyControls", "ControlType"]
}
