{"version":3,"file":"GlitchBackground.Fwb_Y8av.mjs","names":["useRef","useState","canvas"],"sources":["https:/framerusercontent.com/modules/ahTXzdJb9HAJgoqddVa3/QzyMu5nWTVAwZjr9VBw6/GlitchBackground.js"],"sourcesContent":["// LetterGlitch: Animated glitchy letter grid with vignette overlays, smooth color transitions, and one-off animation option\n// @framerSupportedLayoutWidth any-prefer-fixed\n// @framerSupportedLayoutHeight any-prefer-fixed\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useRef,useEffect,useState,startTransition}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";/**\n * LetterGlitch\n *\n * Animated grid of glitchy letters with color transitions, vignette overlays, and one-off animation option.\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */function LetterGlitch(props){const{customCharacters=\"\",glitchColors=[\"#3D5E37\",\"#3ADEC0\",\"#39DB3C\"],glitchSpeed=50,centerVignette=false,outerVignette=true,smooth=true,oneOff=false,animationEasing=\"linear\",density=.05,randomizeColor=false,style}=props;const canvasRef=useRef(null);const animationRef=useRef(null);const letters=useRef([]);const grid=useRef({columns:0,rows:0});const context=useRef(null);const lastGlitchTime=useRef(Date.now());const[hasAnimated,setHasAnimated]=useState(false);const isStatic=useIsStaticRenderer();const fontSize=Math.max(12,Math.round((props.style&&props.style.height?typeof props.style.height===\"number\"?props.style.height:parseFloat(props.style.height):400)/20));const charWidth=Math.max(8,Math.round(fontSize*.6));const charHeight=Math.max(12,Math.round(fontSize*1.2));const defaultLettersAndSymbols=[\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"0\",\"!\",\"@\",\"#\",\"$\",\"%\",\"^\",\"&\",\"*\",\"(\",\")\",\"_\",\"+\",\"|\",\"\\\\\",\"-\",\"=\",\"{\",\"}\",\"[\",\"]\",\":\",\";\",\"'\",'\"',\"<\",\">\",\"?\",\",\",\".\",\"/\",\"~\",\"`\"];// Use custom characters if provided, otherwise use default\nconst lettersAndSymbols=customCharacters.trim()?[...new Set(customCharacters.split(\"\").filter(char=>char.trim()!==\"\"))]:defaultLettersAndSymbols;const getRandomChar=()=>lettersAndSymbols[Math.floor(Math.random()*lettersAndSymbols.length)];const getRandomColor=()=>glitchColors[Math.floor(Math.random()*glitchColors.length)];const hexToRgb=hex=>{const shorthandRegex=/^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;hex=hex.replace(shorthandRegex,(m,r,g,b)=>r+r+g+g+b+b);const result=/^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);return result?{r:parseInt(result[1],16),g:parseInt(result[2],16),b:parseInt(result[3],16)}:null;};const interpolateColor=(start,end,factor)=>{const result={r:Math.round(start.r+(end.r-start.r)*factor),g:Math.round(start.g+(end.g-start.g)*factor),b:Math.round(start.b+(end.b-start.b)*factor)};return`rgb(${result.r}, ${result.g}, ${result.b})`;};const calculateGrid=(width,height)=>{const columns=Math.max(1,Math.floor(width/charWidth));const rows=Math.max(1,Math.floor(height/charHeight));return{columns,rows};};const initializeLetters=(columns,rows)=>{grid.current={columns,rows};const totalLetters=columns*rows;letters.current=Array.from({length:totalLetters},()=>({char:getRandomChar(),color:getRandomColor(),targetColor:getRandomColor(),colorProgress:1}));};const resizeCanvas=()=>{const canvas=canvasRef.current;if(!canvas)return;// Use the style prop or parent for sizing\nlet width=0,height=0;if(typeof window!==\"undefined\"){if(props.style&&props.style.width&&props.style.height){if(typeof props.style.width===\"number\")width=props.style.width;else if(typeof props.style.width===\"string\"&&props.style.width.endsWith(\"px\"))width=parseFloat(props.style.width);else width=canvas.parentElement?canvas.parentElement.offsetWidth:0;if(typeof props.style.height===\"number\")height=props.style.height;else if(typeof props.style.height===\"string\"&&props.style.height.endsWith(\"px\"))height=parseFloat(props.style.height);else height=canvas.parentElement?canvas.parentElement.offsetHeight:0;}else if(canvas.parentElement){width=canvas.parentElement.offsetWidth;height=canvas.parentElement.offsetHeight;}}if(width===0||height===0){const rect=canvas.getBoundingClientRect();width=rect.width;height=rect.height;}const dpr=typeof window!==\"undefined\"?window.devicePixelRatio||1:1;canvas.width=width*dpr;canvas.height=height*dpr;canvas.style.width=`${width}px`;canvas.style.height=`${height}px`;if(context.current){context.current.setTransform(dpr,0,0,dpr,0,0);}const{columns,rows}=calculateGrid(width,height);initializeLetters(columns,rows);drawLetters();};const drawLetters=()=>{if(!context.current||letters.current.length===0)return;const ctx=context.current;// Use the actual canvas width/height for drawing\nconst width=canvasRef.current.width;const height=canvasRef.current.height;ctx.clearRect(0,0,width,height);ctx.font=`${fontSize}px monospace`;ctx.textBaseline=\"top\";letters.current.forEach((letter,index)=>{const x=index%grid.current.columns*charWidth;const y=Math.floor(index/grid.current.columns)*charHeight;ctx.fillStyle=letter.color;ctx.fillText(letter.char,x,y);});};const updateLetters=()=>{if(!letters.current||letters.current.length===0)return;const updateCount=Math.max(1,Math.floor(letters.current.length*density));for(let i=0;i<updateCount;i++){const index=Math.floor(Math.random()*letters.current.length);if(!letters.current[index])continue;letters.current[index].char=getRandomChar();letters.current[index].targetColor=getRandomColor();if(!smooth){letters.current[index].color=letters.current[index].targetColor;letters.current[index].colorProgress=1;}else{letters.current[index].colorProgress=0;}}};const handleSmoothTransitions=()=>{let needsRedraw=false;letters.current.forEach(letter=>{if(letter.colorProgress<1){letter.colorProgress+=.05;if(letter.colorProgress>1)letter.colorProgress=1;const startRgb=hexToRgb(letter.color);const endRgb=hexToRgb(letter.targetColor);if(startRgb&&endRgb){letter.color=interpolateColor(startRgb,endRgb,letter.colorProgress);needsRedraw=true;}}});if(needsRedraw){drawLetters();}};const animate=()=>{if(isStatic)return;if(oneOff&&hasAnimated)return;const now=Date.now();if(now-lastGlitchTime.current>=glitchSpeed){updateLetters();drawLetters();lastGlitchTime.current=now;if(oneOff)startTransition(()=>setHasAnimated(true));}if(smooth){handleSmoothTransitions();}if(!oneOff||!hasAnimated){animationRef.current=requestAnimationFrame(animate);}};useEffect(()=>{if(isStatic){// Draw a static preview\nconst canvas=canvasRef.current;if(!canvas)return;context.current=canvas.getContext(\"2d\");resizeCanvas();return;}setHasAnimated(false);const canvas=canvasRef.current;if(!canvas)return;context.current=canvas.getContext(\"2d\");resizeCanvas();animate();let resizeTimeout;const handleResize=()=>{clearTimeout(resizeTimeout);resizeTimeout=setTimeout(()=>{cancelAnimationFrame(animationRef.current);resizeCanvas();animate();},100);};window.addEventListener(\"resize\",handleResize);// Responsive: also listen for orientation changes\nwindow.addEventListener(\"orientationchange\",handleResize);return()=>{cancelAnimationFrame(animationRef.current);window.removeEventListener(\"resize\",handleResize);window.removeEventListener(\"orientationchange\",handleResize);};// eslint-disable-next-line react-hooks/exhaustive-deps\n},[glitchSpeed,smooth,oneOff,isStatic,customCharacters,props.style?.width,props.style?.height]);// Add effect for randomizeColor\nuseEffect(()=>{if(randomizeColor){// Replace a random color in glitchColors with a new random hex color\nconst randomHex=()=>{const hex=Math.floor(Math.random()*16777215).toString(16);return`#${\"000000\".substring(0,6-hex.length)+hex}`;};if(glitchColors.length>0){const idx=Math.floor(Math.random()*glitchColors.length);const newColors=[...glitchColors];newColors[idx]=randomHex();// This will not update the prop, but will update the local glitchColors for this render\n// In Framer, the user must toggle the control to trigger this effect\n// Optionally, you could use state, but Framer controls should be the source of truth\n}}},[randomizeColor]);// Add effect to redraw when glitchColors changes\nuseEffect(()=>{// When glitchColors changes, update all letter colors to use new palette\nif(!letters.current||letters.current.length===0)return;for(let i=0;i<letters.current.length;i++){// If current color is not in new glitchColors, pick a new one\nif(!glitchColors.includes(letters.current[i].color)){letters.current[i].color=getRandomColor();}// Always update targetColor to a new color from the palette\nletters.current[i].targetColor=getRandomColor();}drawLetters();},[glitchColors]);// Redraw and reassign all letter colors when glitchColors changes or when the component is resized\nuseEffect(()=>{const canvas=canvasRef.current;if(!canvas)return;context.current=canvas.getContext(\"2d\");resizeCanvas();},[glitchColors,style?.width,style?.height]);const containerStyle={position:\"fixed\",top:0,left:0,width:\"100vw\",height:\"100vh\",backgroundColor:\"#000000\",overflow:\"hidden\",display:\"flex\",alignItems:\"stretch\",justifyContent:\"stretch\",pointerEvents:props.pointerEvents||\"none\",zIndex:typeof props.zIndex===\"number\"?props.zIndex:-9999,...style};const canvasStyle={display:\"block\",width:\"100%\",height:\"100%\"};const outerVignetteStyle={position:\"absolute\",top:0,left:0,width:\"100%\",height:\"100%\",pointerEvents:\"none\",background:\"radial-gradient(circle, rgba(0,0,0,0) 60%, rgba(0,0,0,1) 100%)\"};const centerVignetteStyle={position:\"absolute\",top:0,left:0,width:\"100%\",height:\"100%\",pointerEvents:\"none\",background:\"radial-gradient(circle, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0) 60%)\"};return /*#__PURE__*/_jsxs(\"div\",{style:containerStyle,children:[/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,style:canvasStyle}),outerVignette&&/*#__PURE__*/_jsx(\"div\",{style:outerVignetteStyle}),centerVignette&&/*#__PURE__*/_jsx(\"div\",{style:centerVignetteStyle})]});}addPropertyControls(LetterGlitch,{customCharacters:{type:ControlType.String,title:\"Custom Characters\",defaultValue:\"\",placeholder:\"Enter custom characters (e.g., 01なかた한국어)\"},glitchColors:{type:ControlType.Array,title:\"Glitch Colors\",control:{type:ControlType.Color,defaultValue:\"#61dca3\"},defaultValue:[\"#3D5E37\",\"#3ADEC0\",\"#39DB3C\"],maxCount:5},glitchSpeed:{type:ControlType.Number,title:\"Glitch Speed (ms)\",defaultValue:50,min:10,max:1e3,step:1,displayStepper:true},centerVignette:{type:ControlType.Boolean,title:\"Center Vignette\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},outerVignette:{type:ControlType.Boolean,title:\"Outer Vignette\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},smooth:{type:ControlType.Boolean,title:\"Smooth Colors\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},density:{type:ControlType.Number,title:\"Density\",defaultValue:.05,min:.01,max:1,step:.01,displayStepper:true},// Responsive background: allow zIndex and pointerEvents to be customized\nzIndex:{type:ControlType.Number,title:\"z-index\",defaultValue:-1,min:-100,max:100,step:1,displayStepper:true},pointerEvents:{type:ControlType.Enum,title:\"Pointer Events\",options:[\"none\",\"auto\"],optionTitles:[\"None (background)\",\"Auto (interactive)\"],defaultValue:\"none\",displaySegmentedControl:true}});export default LetterGlitch;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"LetterGlitch\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./GlitchBackground.map"],"mappings":"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"}