{"version":3,"file":"ASCII.CeIboxQ9.mjs","names":["React.useRef","React.useMemo","React.useCallback","__esmMin","pe","init_ssg_sandbox_shims","ne","init_npm_react_18_3_1","de","window","init_jsx_runtime","ce","ControlType","init_framer_CaDWdxiz","ASCIIBackground","rest","props","canvasRef","animationRef","frameCount","lastTimestamp","charSet","characters","initCanvas","canvas","ctx","backgroundColor","drawFrame","effectiveDelay","speedFactor","timestamp","cols","fontSize","rows","color","y","x","density","char","handleResize","image","init_ASCII"],"sources":["https:/framerusercontent.com/modules/QAiQrwWURrlYG0orVVxe/WcbRNIv5d6lgSvDfJ8qV/ASCII.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{ControlType}from\"framer\";export default function ASCIIBackground(props){const{characters=\"■□▢▣▤▥▦▧▨▩▪▫▬▭▮▯\",fontSize=12,color=\"#ffffff\",backgroundColor=\"#000000\",speedFactor=100,density=.5,image,...rest}=props;const canvasRef=React.useRef(null);const animationRef=React.useRef(null);const frameCount=React.useRef(0);const lastTimestamp=React.useRef(0);const charSet=React.useMemo(()=>characters.split(\"\"),[characters]);const initCanvas=React.useCallback(()=>{if(!canvasRef.current)return;const canvas=canvasRef.current;const ctx=canvas.getContext(\"2d\");if(!ctx)return;canvas.width=canvas.offsetWidth;canvas.height=canvas.offsetHeight;ctx.fillStyle=backgroundColor;ctx.fillRect(0,0,canvas.width,canvas.height);},[backgroundColor]);const drawFrame=React.useCallback(timestamp=>{if(!canvasRef.current)return;const canvas=canvasRef.current;const ctx=canvas.getContext(\"2d\");if(!ctx)return;const effectiveDelay=1e3/speedFactor;const delta=timestamp-lastTimestamp.current;if(delta<effectiveDelay){animationRef.current=requestAnimationFrame(drawFrame);return;}lastTimestamp.current=timestamp;const cols=Math.floor(canvas.width/fontSize);const rows=Math.floor(canvas.height/fontSize);ctx.fillStyle=backgroundColor;ctx.fillRect(0,0,canvas.width,canvas.height);ctx.fillStyle=color;ctx.font=`${fontSize}px monospace`;frameCount.current+=1;for(let y=0;y<rows;y++){for(let x=0;x<cols;x++){if(Math.random()<density){const char=charSet[(frameCount.current+x+y)%charSet.length];ctx.fillText(char,x*fontSize,y*fontSize);}}}animationRef.current=requestAnimationFrame(drawFrame);},[charSet,color,backgroundColor,fontSize,speedFactor,density]);React.useEffect(()=>{initCanvas();animationRef.current=requestAnimationFrame(drawFrame);return()=>{if(animationRef.current){cancelAnimationFrame(animationRef.current);}};},[initCanvas,drawFrame]);React.useEffect(()=>{const handleResize=()=>initCanvas();window.addEventListener(\"resize\",handleResize);return()=>window.removeEventListener(\"resize\",handleResize);},[initCanvas]);return /*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",width:\"100%\",height:\"100%\",overflow:\"hidden\",WebkitMaskImage:image?`url(${image})`:undefined,WebkitMaskRepeat:\"no-repeat\",WebkitMaskSize:\"cover\",maskImage:image?`url(${image})`:undefined,maskRepeat:\"no-repeat\",maskSize:\"cover\",...rest},children:/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,style:{width:\"100%\",height:\"100%\",display:\"block\"}})});}// Property Controls\nASCIIBackground.propertyControls={characters:{type:ControlType.String,title:\"Characters\",defaultValue:\"■□▢▣▤▥▦▧▨▩▪▫▬▭▮▯\"},fontSize:{type:ControlType.Number,title:\"Font Size\",min:8,max:32,step:1,defaultValue:12},color:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#ffffff\"},backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"#000000\"},speedFactor:{type:ControlType.Number,title:\"Speed\",min:1,max:1e3,step:10,defaultValue:100},density:{type:ControlType.Number,title:\"Density\",min:.1,max:1,step:.1,defaultValue:.5},image:{type:ControlType.Image,title:\"Mask Image\"}};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ASCIIBackground\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ASCII.map"],"mappings":"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"}