{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/ljswqG0QYHnmIrJB2Eoc/tbV63N7DNcj9gFy58nij/Grid_SVG.js"],
  "sourcesContent": ["import{jsx as _jsx,Fragment as _Fragment}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{useRef,useEffect,useMemo}from\"react\";export default function ElasticGrid2D(props){const{enableHover=false,gridSize=8,cellSize=50,elasticStrength=25,animationSpeed=2,liquidEffect=.8,waveAmplitude=15,waveDensity=.3,smoothingFactor=.85,fpsLimit=60}=props;const containerRef=useRef(null);const canvasRef=useRef(null);const contextRef=useRef(null);const mouseRef=useRef({x:0,y:0});const previousMouseRef=useRef({x:0,y:0});const requestIdRef=useRef(null);const isInitializedRef=useRef(false);const timeRef=useRef(0);const lastFrameTimeRef=useRef(0);const gridPointsRef=useRef({horizontal:[],vertical:[]});// Calculate frame delay based on FPS limit\nconst frameDelay=useMemo(()=>1e3/fpsLimit,[fpsLimit]);// Initialize canvas setup\nuseEffect(()=>{if(!containerRef.current||isInitializedRef.current)return;const container=containerRef.current;// Create off-screen canvas for better performance\nconst offscreenCanvas=document.createElement(\"canvas\");container.appendChild(offscreenCanvas);canvasRef.current=offscreenCanvas;// Get context with optimized settings\nconst ctx=offscreenCanvas.getContext(\"2d\",{alpha:false});contextRef.current=ctx;// Set initial mouse position outside the view to avoid initial distortion\nconst rect=container.getBoundingClientRect();previousMouseRef.current={x:rect.width/2,y:rect.height/2};mouseRef.current={...previousMouseRef.current};// Handle resize with debounce\nlet resizeTimeout=null;const handleResize=()=>{if(resizeTimeout)clearTimeout(resizeTimeout);resizeTimeout=setTimeout(()=>{if(!canvasRef.current||!containerRef.current)return;const canvas=canvasRef.current;const container=containerRef.current;const rect=container.getBoundingClientRect();const width=rect.width;const height=rect.height;// Set canvas dimensions with higher resolution\nconst dpr=window.devicePixelRatio||1;canvas.width=width*dpr;canvas.height=height*dpr;canvas.style.width=`${width}px`;canvas.style.height=`${height}px`;// Scale the context\nconst ctx=contextRef.current;ctx.scale(dpr,dpr);// Set background color once to avoid clearing\nctx.fillRect(0,0,width,height);// Initialize grid points\ninitializeGridPoints(width,height);},150);};// Initial sizing\nhandleResize();window.addEventListener(\"resize\",handleResize);// Start animation\nanimateWithThrottle();isInitializedRef.current=true;// Cleanup\nreturn()=>{window.removeEventListener(\"resize\",handleResize);if(resizeTimeout)clearTimeout(resizeTimeout);if(requestIdRef.current){cancelAnimationFrame(requestIdRef.current);}if(canvasRef.current&&containerRef.current){containerRef.current.removeChild(canvasRef.current);}isInitializedRef.current=false;};},[]);// Re-initialize when key props change\nuseEffect(()=>{if(!isInitializedRef.current||!containerRef.current||!canvasRef.current)return;const container=containerRef.current;const rect=container.getBoundingClientRect();initializeGridPoints(rect.width,rect.height);},[gridSize,cellSize]);// Initialize grid points with optimized spatial index\nconst initializeGridPoints=(width,height)=>{const horizontal=[];const vertical=[];// Calculate grid dimensions\nconst gridWidth=gridSize*cellSize;const gridHeight=gridSize*cellSize;// Calculate offsets to center grid\nconst offsetX=(width-gridWidth)/2;const offsetY=(height-gridHeight)/2;// Optimize number of segments based on grid size and view size\nconst segmentCount=Math.min(Math.max(10,gridSize*2),30);// Create horizontal lines with control points\nfor(let i=0;i<=gridSize;i++){const y=i*cellSize+offsetY;const line=[];for(let j=0;j<=segmentCount;j++){const x=j/segmentCount*gridWidth+offsetX;line.push({originalX:x,originalY:y,currentX:x,currentY:y,velocityX:0,velocityY:0,lastUpdated:0});}horizontal.push(line);}// Create vertical lines with control points\nfor(let i=0;i<=gridSize;i++){const x=i*cellSize+offsetX;const line=[];for(let j=0;j<=segmentCount;j++){const y=j/segmentCount*gridHeight+offsetY;line.push({originalX:x,originalY:y,currentX:x,currentY:y,velocityX:0,velocityY:0,lastUpdated:0});}vertical.push(line);}gridPointsRef.current={horizontal,vertical};};// Animation function with throttling for better performance\nconst animateWithThrottle=()=>{if(!contextRef.current||!canvasRef.current)return;const updateAnimation=timestamp=>{// Control frame rate\nif(timestamp-lastFrameTimeRef.current<frameDelay){requestIdRef.current=requestAnimationFrame(updateAnimation);return;}lastFrameTimeRef.current=timestamp;// Update time with consistent step regardless of frame rate\ntimeRef.current+=.01*animationSpeed;// Smooth mouse movement with reduced calculations\nconst mouse=mouseRef.current;const prevMouse=previousMouseRef.current;prevMouse.x+=(mouse.x-prevMouse.x)*smoothingFactor;prevMouse.y+=(mouse.y-prevMouse.y)*smoothingFactor;// Get current dimensions\nconst canvas=canvasRef.current;const ctx=contextRef.current;const width=canvas.width/(window.devicePixelRatio||1);const height=canvas.height/(window.devicePixelRatio||1);// Optimize clearing - only clear the necessary area\nctx.clearRect(0,0,width,height);// Set line style\nctx.strokeStyle=\"#DEDEDE\";ctx.lineWidth=2;// Update grid points more efficiently\nupdateGridPoints(gridPointsRef.current.horizontal,gridPointsRef.current.vertical,prevMouse.x,prevMouse.y,timestamp);// Draw lines with optimized approach\ndrawGridLines(ctx,gridPointsRef.current);// Continue animation loop\nrequestIdRef.current=requestAnimationFrame(updateAnimation);};requestIdRef.current=requestAnimationFrame(updateAnimation);};// Optimized update of grid points with enhanced wave effects\nconst updateGridPoints=(horizontalLines,verticalLines,mouseX,mouseY,timestamp)=>{const time=timeRef.current;// Calculate influence radius\nconst influenceRadius=cellSize*4;// Update horizontal lines\nhorizontalLines.forEach((line,lineIndex)=>{line.forEach((point,pointIndex)=>{// Base wave effect always applied regardless of hover state\nconst wavePhase=time+pointIndex/line.length*2*Math.PI*waveDensity;const baseWaveY=Math.sin(wavePhase)*waveAmplitude;// Add horizontal displacement for more organic feel\nconst horizontalWave=Math.cos(time*.7+pointIndex*.2)*(waveAmplitude*.2);// Mouse influence\nlet mouseInfluenceX=0;let mouseInfluenceY=0;const dx=point.originalX-mouseX;const dy=point.originalY-mouseY;const distance=Math.sqrt(dx*dx+dy*dy);if(distance<influenceRadius){const influence=Math.max(0,1-distance/influenceRadius)*liquidEffect;// Primary influence - vertical displacement on horizontal lines\nmouseInfluenceY=influence*elasticStrength*Math.sign(dy)*(1-distance/influenceRadius);// Secondary influence - horizontal displacement for liquid effect\nmouseInfluenceX=horizontalWave*influence*.8;}// Apply spring physics\nconst springFactor=.1;const dampingFactor=.7;// Target positions with combined effects\nconst targetY=point.originalY+baseWaveY+mouseInfluenceY;const targetX=point.originalX+horizontalWave*.5+mouseInfluenceX;// Update velocity\npoint.velocityX+=(targetX-point.currentX)*springFactor;point.velocityY+=(targetY-point.currentY)*springFactor;point.velocityX*=dampingFactor;point.velocityY*=dampingFactor;// Update position\npoint.currentX+=point.velocityX;point.currentY+=point.velocityY;point.lastUpdated=timestamp;});});// Update vertical lines with similar approach\nverticalLines.forEach((line,lineIndex)=>{line.forEach((point,pointIndex)=>{// Base wave effect always applied\nconst wavePhase=time+pointIndex/line.length*2*Math.PI*waveDensity;const baseWaveX=Math.cos(wavePhase)*waveAmplitude;// Add vertical displacement for more organic feel\nconst verticalWave=Math.sin(time*.7+pointIndex*.2)*(waveAmplitude*.2);// Mouse influence\nlet mouseInfluenceX=0;let mouseInfluenceY=0;const dx=point.originalX-mouseX;const dy=point.originalY-mouseY;const distance=Math.sqrt(dx*dx+dy*dy);if(distance<influenceRadius){const influence=Math.max(0,1-distance/influenceRadius)*liquidEffect;// Primary influence - horizontal displacement on vertical lines\nmouseInfluenceX=influence*elasticStrength*Math.sign(dx)*(1-distance/influenceRadius);// Secondary influence - vertical displacement for liquid effect\nmouseInfluenceY=verticalWave*influence*.8;}// Apply spring physics\nconst springFactor=.1;const dampingFactor=.7;// Target positions with combined effects\nconst targetX=point.originalX+baseWaveX+mouseInfluenceX;const targetY=point.originalY+verticalWave*.5+mouseInfluenceY;// Update velocity\npoint.velocityX+=(targetX-point.currentX)*springFactor;point.velocityY+=(targetY-point.currentY)*springFactor;point.velocityX*=dampingFactor;point.velocityY*=dampingFactor;// Update position\npoint.currentX+=point.velocityX;point.currentY+=point.velocityY;point.lastUpdated=timestamp;});});};// Optimized drawing with path batching\nconst drawGridLines=(ctx,{horizontal,vertical})=>{// Draw horizontal lines with optimized path approach\nhorizontal.forEach(line=>{if(line.length<2)return;ctx.beginPath();ctx.moveTo(line[0].currentX,line[0].currentY);// Use optimized curve drawing - fewer quadratic curves for better performance\nfor(let i=1;i<line.length;i++){if(i%2===0||i===line.length-1){const currentPoint=line[i];const prevPoint=line[i-1];// Calculate midpoint for smoother curves\nconst midX=(prevPoint.currentX+currentPoint.currentX)/2;const midY=(prevPoint.currentY+currentPoint.currentY)/2;ctx.quadraticCurveTo(prevPoint.currentX,prevPoint.currentY,midX,midY);}}ctx.stroke();});// Draw vertical lines with optimized path approach\nvertical.forEach(line=>{if(line.length<2)return;ctx.beginPath();ctx.moveTo(line[0].currentX,line[0].currentY);// Use optimized curve drawing - fewer quadratic curves for better performance\nfor(let i=1;i<line.length;i++){if(i%2===0||i===line.length-1){const currentPoint=line[i];const prevPoint=line[i-1];// Calculate midpoint for smoother curves\nconst midX=(prevPoint.currentX+currentPoint.currentX)/2;const midY=(prevPoint.currentY+currentPoint.currentY)/2;ctx.quadraticCurveTo(prevPoint.currentX,prevPoint.currentY,midX,midY);}}ctx.stroke();});};// Optimized mouse handler with throttling\nconst handleMouseMove=(()=>{let lastMoveTime=0;const moveThrottle=16// ~60fps\n;return e=>{const now=Date.now();if(now-lastMoveTime<moveThrottle)return;lastMoveTime=now;if(!containerRef.current)return;const rect=containerRef.current.getBoundingClientRect();mouseRef.current={x:e.clientX-rect.left,y:e.clientY-rect.top};};})();if(RenderTarget.current()===\"CANVAS\"){return /*#__PURE__*/_jsx(_Fragment,{children:/*#__PURE__*/_jsx(\"h1\",{style:{fontSize:\"24px\",color:\"white\",textAlign:\"center\"},children:\"Effect Will Appear In Preview\"})});}return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{width:\"100%\",height:\"100%\",overflow:\"hidden\",position:\"relative\"},onMouseMove:enableHover?handleMouseMove:undefined});}// Add property controls for Framer\naddPropertyControls(ElasticGrid2D,{enableHover:{type:ControlType.Boolean,defaultValue:false},gridSize:{type:ControlType.Number,title:\"Grid Size\",defaultValue:8,min:2,max:20,step:1},cellSize:{type:ControlType.Number,title:\"Cell Size\",defaultValue:50,min:20,max:100,step:1},elasticStrength:{type:ControlType.Number,title:\"Elastic Strength\",defaultValue:25,min:5,max:50,step:1},animationSpeed:{type:ControlType.Number,title:\"Animation Speed\",defaultValue:2,min:.5,max:5,step:.1},liquidEffect:{type:ControlType.Number,title:\"Liquid Effect\",defaultValue:.8,min:.1,max:50,step:.05},waveAmplitude:{type:ControlType.Number,title:\"Wave Amplitude\",defaultValue:0,min:0,max:30,step:1},waveDensity:{type:ControlType.Number,title:\"Wave Density\",defaultValue:.3,min:.1,max:1,step:.05},smoothingFactor:{type:ControlType.Number,title:\"Smoothing Factor\",defaultValue:.85,min:.5,max:.98,step:.01},fpsLimit:{type:ControlType.Number,title:\"FPS Limit\",defaultValue:60,min:15,max:120,step:5}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ElasticGrid2D\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Grid_SVG.map"],
  "mappings": "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",
  "names": ["ElasticGrid2D", "props", "enableHover", "gridSize", "cellSize", "elasticStrength", "animationSpeed", "liquidEffect", "waveAmplitude", "waveDensity", "smoothingFactor", "fpsLimit", "containerRef", "pe", "canvasRef", "contextRef", "mouseRef", "previousMouseRef", "requestIdRef", "isInitializedRef", "timeRef", "lastFrameTimeRef", "gridPointsRef", "frameDelay", "se", "ue", "container", "offscreenCanvas", "ctx", "rect", "resizeTimeout", "handleResize", "canvas", "width", "height", "dpr", "window", "initializeGridPoints", "animateWithThrottle", "horizontal", "vertical", "gridWidth", "gridHeight", "offsetX", "offsetY", "segmentCount", "i", "y", "line", "j", "x", "updateAnimation", "timestamp", "mouse", "prevMouse", "updateGridPoints", "drawGridLines", "horizontalLines", "verticalLines", "mouseX", "mouseY", "time", "influenceRadius", "lineIndex", "point", "pointIndex", "wavePhase", "baseWaveY", "horizontalWave", "mouseInfluenceX", "mouseInfluenceY", "dx", "dy", "distance", "influence", "springFactor", "dampingFactor", "targetY", "targetX", "baseWaveX", "verticalWave", "currentPoint", "prevPoint", "midX", "midY", "handleMouseMove", "lastMoveTime", "moveThrottle", "e", "now", "RenderTarget", "p", "l", "addPropertyControls", "ControlType"]
}
