{"version":3,"file":"ditherbg.B9TC57Pj.mjs","names":["useRef"],"sources":["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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"}