{"version":3,"file":"Matrixbackground.CgRecuAC.mjs","names":["useRef","useState","useCallback"],"sources":["https:/framerusercontent.com/modules/KU8U3WHxkQJD2Gtp14dd/tnJs2Gpl2Eeem5yHGU7J/Matrixbackground.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{useState,useRef,useEffect,useCallback}from\"react\";import{addPropertyControls,ControlType}from\"framer\";const characters=\"01\";/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export default function MatrixBackground(props){const{baseColor=\"#3d5a50\",hoverColor=\"rgba(255, 255, 255, 0.6)\",backgroundColor=\"#080c0a\",fontSize=16,trailDuration=300,waveInterval=5e3,waveSpeed=30,columns=35,rows=15}=props;const containerRef=useRef(null);const[activeTrail,setActiveTrail]=useState(new Map);const trailTimeouts=useRef(new Map);const getRandomChar=useCallback(()=>{return characters[Math.floor(Math.random()*characters.length)];},[]);const[grid,setGrid]=useState([]);useEffect(()=>{const cells=[];for(let r=0;r<rows;r++){for(let c=0;c<columns;c++){cells.push({char:characters[Math.floor(Math.random()*characters.length)],opacity:.15+Math.random()*.4,id:`${r}-${c}`});}}setGrid(cells);},[rows,columns,getRandomChar]);useEffect(()=>{if(columns===0)return;const triggerWave=()=>{for(let c=0;c<columns;c++){setTimeout(()=>{setGrid(prev=>{const next=[...prev];for(let r=0;r<rows;r++){const index=r*columns+c;if(next[index]){next[index]={...next[index],char:getRandomChar()};}}return next;});},c*waveSpeed);}};const initialTimeout=setTimeout(triggerWave,1e3);const interval=setInterval(triggerWave,waveInterval);return()=>{clearTimeout(initialTimeout);clearInterval(interval);};},[columns,rows,waveInterval,waveSpeed,getRandomChar]);useEffect(()=>{const container=containerRef.current;if(!container)return;const handleMouseMove=e=>{const rect=container.getBoundingClientRect();const x=e.clientX-rect.left;const y=e.clientY-rect.top;if(x<0||x>rect.width||y<0||y>rect.height)return;const cellWidth=rect.width/columns;const cellHeight=rect.height/rows;const col=Math.floor(x/cellWidth);const row=Math.floor(y/cellHeight);const id=`${row}-${col}`;const existingTimeout=trailTimeouts.current.get(id);if(existingTimeout)clearTimeout(existingTimeout);setActiveTrail(prev=>{const next=new Map(prev);next.set(id,Date.now());return next;});const timeout=setTimeout(()=>{setActiveTrail(prev=>{const next=new Map(prev);next.delete(id);return next;});trailTimeouts.current.delete(id);},trailDuration);trailTimeouts.current.set(id,timeout);};document.addEventListener(\"mousemove\",handleMouseMove);return()=>document.removeEventListener(\"mousemove\",handleMouseMove);},[columns,rows,trailDuration]);return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{width:\"100%\",height:\"100%\",backgroundColor:backgroundColor,overflow:\"hidden\",fontFamily:\"'SF Mono', 'Fira Code', 'Consolas', monospace\",position:\"relative\"},children:/*#__PURE__*/_jsx(\"div\",{style:{display:\"grid\",gridTemplateColumns:`repeat(${columns}, 1fr)`,gridTemplateRows:`repeat(${rows}, 1fr)`,width:\"100%\",height:\"100%\"},children:grid.map(cell=>{const isActive=activeTrail.has(cell.id);return /*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",alignItems:\"center\",justifyContent:\"center\",fontSize:`${fontSize}px`,color:isActive?hoverColor:baseColor,opacity:isActive?.7:cell.opacity,userSelect:\"none\",transition:`color ${trailDuration}ms ease-out, opacity ${trailDuration}ms ease-out, text-shadow ${trailDuration}ms ease-out`,textShadow:isActive?`0 0 4px rgba(255,255,255,0.3)`:\"none\"},children:cell.char},cell.id);})})});}addPropertyControls(MatrixBackground,{columns:{type:ControlType.Number,title:\"Spalten\",defaultValue:35,min:10,max:60,step:1},rows:{type:ControlType.Number,title:\"Zeilen\",defaultValue:15,min:5,max:30,step:1},baseColor:{type:ControlType.Color,title:\"Basis-Farbe\",defaultValue:\"#3d5a50\"},hoverColor:{type:ControlType.Color,title:\"Hover-Farbe\",defaultValue:\"rgba(255, 255, 255, 0.6)\"},backgroundColor:{type:ControlType.Color,title:\"Hintergrund\",defaultValue:\"#080c0a\"},fontSize:{type:ControlType.Number,title:\"Schriftgr\\xf6\\xdfe\",defaultValue:16,min:10,max:28,step:1},trailDuration:{type:ControlType.Number,title:\"Trail-Dauer (ms)\",defaultValue:300,min:100,max:1e3,step:50},waveInterval:{type:ControlType.Number,title:\"Wave Interval (ms)\",defaultValue:5e3,min:2e3,max:15e3,step:500},waveSpeed:{type:ControlType.Number,title:\"Wave Speed (ms)\",defaultValue:30,min:10,max:100,step:5}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"MatrixBackground\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any\",\"framerSupportedLayoutHeight\":\"any\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Matrixbackground.map"],"mappings":"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"}