{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/izR4CKef6tqJ0FwyCqWV/m60B84xxHf9jEWn6VfJL/ditherbg.js"],
  "sourcesContent": ["import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef}from\"react\";import{addPropertyControls,ControlType}from\"framer\";export default function WarpBackground({speed,primaryColor,secondaryColor}){const canvasRef=useRef(null);let ctx,center,cols,rows,scale,size,step,expands,mx;let dither=[];let length;let animationFrameId;useEffect(()=>{const canvas=canvasRef.current;if(!canvas)return;ctx=canvas.getContext(\"2d\");if(!ctx)return;function init(){canvas.width=window.innerWidth;canvas.height=window.innerHeight;scale=Math.round(Math.min(canvas.width,canvas.height)*.0025)+4;size=scale*4;step=0;expands=true;mx=canvas.width/2;cols=Math.ceil(canvas.width/size);rows=Math.ceil(canvas.height/size);center={x:cols/2,y:rows/2};createDither();animate();}function createDither(){const sequence=[0,10,2,8,5,15,7,13,1,11,3,9,4,14,6,12];const sq=sequence.length/4;dither=[];for(let num of sequence){let row=Math.floor(num/sq);let col=num%sq;ctx.fillStyle=primaryColor;ctx.fillRect(col*scale,row*scale,scale,scale);let pattern=ctx.getImageData(0,0,size,size);for(let repeat=Math.ceil(Math.random()*4);repeat>=0;repeat--){dither.push(pattern);dither.unshift(pattern);}}ctx.clearRect(0,0,canvas.width,canvas.height);length=dither.length;}function draw(img,x,y){if(img&&img.width&&img.height){ctx.putImageData(img,x,y);}}function animate(){ctx.fillStyle=secondaryColor;ctx.fillRect(0,0,canvas.width,canvas.height);for(let i=cols*rows;i>=0;i--){let row=Math.floor(i/cols);let col=i%cols;let distance=Math.hypot(col-center.x,row-center.y);let patternIndex=Math.abs(step+Math.round(distance))%length;let pattern=dither[patternIndex];if(pattern){draw(pattern,col*size,row*size);}}step=expands?step-1:step+1;let frameRate=1e3/(Math.round(mx/window.innerWidth*(speed*10))+2);animationFrameId=setTimeout(animate,frameRate);}function toggleExpansion(){expands=!expands;}function updateMouse(event){mx=event.clientX+1;}function updateTouch(event){event.preventDefault();mx=event.targetTouches[0].clientX+1;}init();window.addEventListener(\"resize\",init);canvas.addEventListener(\"mousedown\",toggleExpansion);canvas.addEventListener(\"mouseup\",toggleExpansion);canvas.addEventListener(\"touchstart\",toggleExpansion);canvas.addEventListener(\"touchend\",toggleExpansion);canvas.addEventListener(\"mousemove\",updateMouse);canvas.addEventListener(\"touchmove\",updateTouch);return()=>{window.removeEventListener(\"resize\",init);canvas.removeEventListener(\"mousedown\",toggleExpansion);canvas.removeEventListener(\"mouseup\",toggleExpansion);canvas.removeEventListener(\"touchstart\",toggleExpansion);canvas.removeEventListener(\"touchend\",toggleExpansion);canvas.removeEventListener(\"mousemove\",updateMouse);canvas.removeEventListener(\"touchmove\",updateTouch);clearTimeout(animationFrameId);};},[speed,primaryColor,secondaryColor]);return /*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,style:{position:\"absolute\",width:\"100%\",height:\"100%\"}});}// **Framer Property Controls**\naddPropertyControls(WarpBackground,{speed:{type:ControlType.Number,min:.5,max:5,step:.1,defaultValue:1,unit:\"x\"},primaryColor:{type:ControlType.Color,defaultValue:\"#676767\",title:\"Primary Color\"},secondaryColor:{type:ControlType.Color,defaultValue:\"#000000\",title:\"Secondary Color\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"WarpBackground\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ditherbg.map"],
  "mappings": "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",
  "names": ["WarpBackground", "speed", "primaryColor", "secondaryColor", "canvasRef", "pe", "ctx", "center", "cols", "rows", "scale", "size", "step", "expands", "mx", "dither", "length", "animationFrameId", "ue", "canvas", "init", "window", "createDither", "animate", "sequence", "sq", "num", "row", "col", "pattern", "repeat", "draw", "img", "x", "y", "i", "distance", "patternIndex", "frameRate", "toggleExpansion", "updateMouse", "event", "updateTouch", "p", "addPropertyControls", "ControlType"]
}
