{"version":3,"file":"shared-lib.D-EHGXXa.mjs","names":["useMemo","useRef","useState","useCallback"],"sources":["https:/framerusercontent.com/modules/HSD6u5SaseGEpPpar3r6/fEbny2jrUiP65zUsv8Kk/Gradient_Interactive_Grid.js","https:/framerusercontent.com/modules/dZzUGMSyhVehAHP24b6G/mMrCr0GkGbVyJjdtVWqH/siteMetadata.js"],"sourcesContent":["/**\n *  46\n * #46 Dot Grid\n * Decorative dotted grid background with\n * center vignette fade, appear animation, and mouse proximity effect.\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n * @framerIntrinsicWidth 1200\n * @framerIntrinsicHeight 700\n */import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef,useState,useCallback,useMemo,startTransition}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";// ─── Helpers ────────────────────────────────────────────────\n/**\n * Resolve any CSS color to a canvas-compatible hex/rgb string.\n * Canvas 2D's fillStyle silently rejects modern formats (oklch, lab, color-mix,\n * CSS variables, etc.). We use a temporary DOM element + getComputedStyle to let\n * the browser resolve the color, then feed the result to canvas.\n */let _colorProbe=null;const _colorCache=new Map;function hexToRgb(hex){const c=hex.replace(\"#\",\"\");const full=c.length===3?c.split(\"\").map(ch=>ch+ch).join(\"\"):c;const num=parseInt(full,16);return[num>>16&255,num>>8&255,num&255];}function cssColorToRgb(color){if(!color)return[0,0,0];if(color.startsWith(\"#\"))return hexToRgb(color);const match=color.match(/\\d+/g);if(match&&match.length>=3){return[parseInt(match[0]),parseInt(match[1]),parseInt(match[2])];}return[0,0,0];}function lerpColor(a,b,t){return[a[0]+(b[0]-a[0])*t,a[1]+(b[1]-a[1])*t,a[2]+(b[2]-a[2])*t];}function resolveCornerColors(colorCount,colorDirection,c1,c2,c3,c4){if(colorCount===\"1\"){return[c1,c1,c1,c1];}if(colorCount===\"2\"){if(colorDirection===\"horizontal\"){return[c1,c1,c2,c2];}if(colorDirection===\"vertical\"){return[c1,c2,c2,c1];}return[c1,lerpColor(c1,c2,.5),c2,lerpColor(c1,c2,.5)];}return[c1,c2,c3,c4];}function resolveColorForCanvas(cssColor,fallback){if(!cssColor)return fallback;const cached=_colorCache.get(cssColor);if(cached)return cached;// Fast path — canvas context can validate simple formats instantly\nif(/^#[0-9a-f]{3,8}$/i.test(cssColor)||/^rgba?\\(/i.test(cssColor)){_colorCache.set(cssColor,cssColor);return cssColor;}// Slow path — use a DOM element to resolve any CSS color to rgb()\nif(typeof document!==\"undefined\"){if(!_colorProbe){_colorProbe=document.createElement(\"div\");_colorProbe.style.display=\"none\";document.body.appendChild(_colorProbe);}_colorProbe.style.color=\"\";_colorProbe.style.color=cssColor;const resolved=getComputedStyle(_colorProbe).color;if(resolved&&resolved!==\"\"){_colorCache.set(cssColor,resolved);return resolved;}}_colorCache.set(cssColor,fallback);return fallback;}/** Compute normalized stagger value (0–1) for a dot based on appear direction */function computeAppearIndex(row,col,rows,cols,direction,randomSeed){const totalDots=cols*rows;switch(direction){case\"top-left\":return(row*cols+col)/totalDots;case\"top-right\":return(row*cols+(cols-1-col))/totalDots;case\"bottom-left\":return((rows-1-row)*cols+col)/totalDots;case\"bottom-right\":return((rows-1-row)*cols+(cols-1-col))/totalDots;case\"center-out\":{const cx=(cols-1)/2;const cy=(rows-1)/2;const maxDist=Math.sqrt(cx*cx+cy*cy)||1;const dx=col-cx;const dy=row-cy;return Math.sqrt(dx*dx+dy*dy)/maxDist;}case\"edges-in\":{const cx=(cols-1)/2;const cy=(rows-1)/2;const maxDist=Math.sqrt(cx*cx+cy*cy)||1;const dx=col-cx;const dy=row-cy;return 1-Math.sqrt(dx*dx+dy*dy)/maxDist;}case\"random\":{const idx=row*cols+col;return idx<randomSeed.length?randomSeed[idx]:Math.random();}default:return(row*cols+col)/totalDots;}}/** Draw a dot shape into the canvas context at (x, y) with given radius */function drawDot(ctx,shape,x,y,r){switch(shape){case\"square\":ctx.rect(x-r,y-r,r*2,r*2);break;case\"diamond\":ctx.moveTo(x,y-r);ctx.lineTo(x+r,y);ctx.lineTo(x,y+r);ctx.lineTo(x-r,y);ctx.closePath();break;case\"triangle\":ctx.moveTo(x,y-r);ctx.lineTo(x+r*.866,y+r*.5);ctx.lineTo(x-r*.866,y+r*.5);ctx.closePath();break;case\"star\":{const spikes=5;const outerR=r;const innerR=r*.4;for(let i=0;i<spikes*2;i++){const rad=i*Math.PI/spikes-Math.PI/2;const sr=i%2===0?outerR:innerR;if(i===0)ctx.moveTo(x+sr*Math.cos(rad),y+sr*Math.sin(rad));else ctx.lineTo(x+sr*Math.cos(rad),y+sr*Math.sin(rad));}ctx.closePath();break;}case\"plus\":{const arm=r*.35;ctx.moveTo(x-arm,y-r);ctx.lineTo(x+arm,y-r);ctx.lineTo(x+arm,y-arm);ctx.lineTo(x+r,y-arm);ctx.lineTo(x+r,y+arm);ctx.lineTo(x+arm,y+arm);ctx.lineTo(x+arm,y+r);ctx.lineTo(x-arm,y+r);ctx.lineTo(x-arm,y+arm);ctx.lineTo(x-r,y+arm);ctx.lineTo(x-r,y-arm);ctx.lineTo(x-arm,y-arm);ctx.closePath();break;}case\"ring\":ctx.arc(x,y,r,0,Math.PI*2);ctx.moveTo(x+r*.55,y);ctx.arc(x,y,r*.55,0,Math.PI*2,true);break;default:ctx.arc(x,y,r,0,Math.PI*2);break;}}/** SVG path data for a dot shape centered at (cx, cy) with radius r */function dotShapeSVGPath(shape,cx,cy,r){switch(shape){case\"square\":return`M ${cx-r},${cy-r} h ${r*2} v ${r*2} h ${-r*2} Z`;case\"diamond\":return`M ${cx},${cy-r} L ${cx+r},${cy} L ${cx},${cy+r} L ${cx-r},${cy} Z`;case\"triangle\":return`M ${cx},${cy-r} L ${cx+r*.866},${cy+r*.5} L ${cx-r*.866},${cy+r*.5} Z`;case\"star\":{let p=\"\";for(let i=0;i<10;i++){const a=i*Math.PI/5-Math.PI/2;const sr=i%2===0?r:r*.4;p+=`${i===0?\"M\":\"L\"} ${cx+sr*Math.cos(a)},${cy+sr*Math.sin(a)} `;}return p+\"Z\";}case\"plus\":{const a=r*.35;return`M ${cx-a},${cy-r} L ${cx+a},${cy-r} L ${cx+a},${cy-a} L ${cx+r},${cy-a} L ${cx+r},${cy+a} L ${cx+a},${cy+a} L ${cx+a},${cy+r} L ${cx-a},${cy+r} L ${cx-a},${cy+a} L ${cx-r},${cy+a} L ${cx-r},${cy-a} L ${cx-a},${cy-a} Z`;}case\"ring\":return`M ${cx+r},${cy} A ${r},${r} 0 1,1 ${cx-r},${cy} A ${r},${r} 0 1,1 ${cx+r},${cy} Z M ${cx+r*.55},${cy} A ${r*.55},${r*.55} 0 1,0 ${cx-r*.55},${cy} A ${r*.55},${r*.55} 0 1,0 ${cx+r*.55},${cy} Z`;default:return`M ${cx+r},${cy} A ${r},${r} 0 1,1 ${cx-r},${cy} A ${r},${r} 0 1,1 ${cx+r},${cy} Z`;}}/** Apply easing to a 0–1 progress value */function applyEasing(t,easing){switch(easing){case\"linear\":return t;case\"ease-in-out\":return t<.5?2*t*t:1-Math.pow(-2*t+2,2)/2;case\"spring\":return 1-Math.pow(Math.E,-6*t)*Math.cos(6*t);case\"bounce\":{if(t<1/2.75)return 7.5625*t*t;if(t<2/2.75){const t2=t-1.5/2.75;return 7.5625*t2*t2+.75;}if(t<2.5/2.75){const t2=t-2.25/2.75;return 7.5625*t2*t2+.9375;}const t2=t-2.625/2.75;return 7.5625*t2*t2+.984375;}default:return 1-Math.pow(1-t,3);}}/** Resolve fade preset to center position (normalized 0-1) and axis mode */function resolveFadePreset(preset,customX,customY){switch(preset){case\"center\":return{cx:.5,cy:.5,axis:\"radial\"};case\"top\":return{cx:.5,cy:0,axis:\"horizontal\"};case\"bottom\":return{cx:.5,cy:1,axis:\"horizontal\"};case\"left\":return{cx:0,cy:.5,axis:\"vertical\"};case\"right\":return{cx:1,cy:.5,axis:\"vertical\"};case\"custom\":return{cx:customX/100,cy:customY/100,axis:\"radial\"};default:return{cx:.5,cy:.5,axis:\"radial\"};}}/** Compute fade distance for a dot at normalized position (nx, ny) */function computeFadeDistance(nx,ny,cx,cy,axis,r){if(axis===\"horizontal\"){return Math.abs(ny-cy)/r;}if(axis===\"vertical\"){return Math.abs(nx-cx)/r;}const dx=nx-cx;const dy=ny-cy;return Math.sqrt(dx*dx+dy*dy)/r;}function computeLegacyFadeAlpha(nx,ny,shape,x,y,radiusX,radiusY,softness,strength,invert){const fdx=nx-x/100;const fdy=ny-y/100;const rx=radiusX+.001;const ry=radiusY+.001;let d;switch(shape){case\"ellipse\":d=Math.sqrt(fdx*fdx/(rx*rx)+fdy*fdy/(ry*ry));break;case\"ellipse-vertical\":{const vrx=rx*.8;const vry=rx*2.5;d=Math.sqrt(fdx*fdx/(vrx*vrx)+fdy*fdy/(vry*vry));break;}case\"square\":d=Math.max(Math.abs(fdx)/rx,Math.abs(fdy)/ry);break;case\"diamond\":d=Math.abs(fdx)/rx+Math.abs(fdy)/ry;break;case\"horizontal-band\":d=Math.abs(fdy)/rx;break;case\"vertical-band\":d=Math.abs(fdx)/rx;break;default:d=Math.sqrt(fdx*fdx+fdy*fdy)/rx;break;}const spread=.1+softness*1.4;const edge=1-spread;const t=Math.max(0,Math.min(1,(d-edge)/(spread+.001)));const vignette=t*t*(3-2*t);const rawAlpha=vignette*strength;return invert?strength-rawAlpha:rawAlpha;}/** Resolve pulse preset to speed + intensity values */function resolvePulsePreset(preset){switch(preset){case\"gentle\":return{speed:.4,intensity:.5};case\"heartbeat\":return{speed:1.2,intensity:1.5};case\"ocean\":return{speed:.6,intensity:2};case\"fireflies\":return{speed:3,intensity:.8};case\"dramatic\":return{speed:.3,intensity:2.5};case\"nervous\":return{speed:4.5,intensity:.4};default:return null// \"custom\" — use manual values\n;}}// ─── Component ──────────────────────────────────────────────\n/**\n * @framerDisableUnlink\n */export default function DotGrid(props){const{grid={},color:rawColor,backgroundColor:rawBg,gradient={},fade={},mouse={},animation={},pulse={},interaction={},style}=props;const legacyProps=props;const{enabled:gradientEnabled=false,count:gradientCount=\"2\",direction:gradientDirection=\"diagonal\",color1:gradientColor1Raw,color2:gradientColor2Raw,color3:gradientColor3Raw,color4:gradientColor4Raw}=gradient;const gradientColor1=gradientColor1Raw??\"#F97316\";const gradientColor2=gradientColor2Raw??\"#EC4899\";const gradientColor3=gradientColor3Raw??\"#8B5CF6\";const gradientColor4=gradientColor4Raw??\"#3B82F6\";// Legacy gradient path — older instances stored gradient config at the top\n// level before the `gradient` object existed. Null-guard because Framer\n// can pass null during color picker transitions or undo.\nconst legacyColorCount=legacyProps.colorCount??\"4\";const legacyColorDirection=legacyProps.colorDirection??\"diagonal\";const legacyColor1=legacyProps.color1??\"#F97316\";const legacyColor2=legacyProps.color2??\"#EC4899\";const legacyColor3=legacyProps.color3??\"#8B5CF6\";const legacyColor4=legacyProps.color4??\"#3B82F6\";const useLegacyGradient=!gradientEnabled&&rawColor==null&&(legacyProps.color1!=null||legacyProps.color2!=null||legacyProps.color3!=null||legacyProps.color4!=null);const useGradient=gradientEnabled||useLegacyGradient;const color=rawColor??legacyColor1??\"#F97316\";const backgroundColor=rawBg??\"#FAF5F0\";const{dotShape=\"circle\",dotSize=10,gap=28}=grid;const hasExplicitFadePreset=fade.preset!=null;const{preset:fadePreset=\"center\",size:fadeSize=.35,softness:fadeSoftness=.4,invert:fadeInvert=false,x:fadeCustomX=50,y:fadeCustomY=50,radiusX:legacyFadeRadiusX=.35,radiusY:legacyFadeRadiusY=.35,strength:legacyFadeStrength=1,shape:legacyFadeShape=\"circle\"}=fade;const useLegacyFade=!hasExplicitFadePreset&&(fade.shape!=null||fade.radiusX!=null||fade.radiusY!=null||fade.strength!=null);const fadeEnabled=useLegacyFade?legacyFadeStrength>0:fadePreset!==\"none\";const fadeResolved=useMemo(()=>resolveFadePreset(fadePreset,fadeCustomX,fadeCustomY),[fadePreset,fadeCustomX,fadeCustomY]);const{radius:mouseRadius=120,growth:mouseGrowth=1.8}=mouse;const{trigger:appearTrigger=\"mount\",easing:appearEasing=\"ease-out\",duration:appearDuration=1.2,stagger:appearStagger=.6,direction:appearDirection=\"top-left\"}=animation;const{enabled:pulseEnabled=true,preset:pulsePreset=\"custom\",speed:pulseSpeedRaw=1,intensity:pulseIntensityRaw=1}=pulse;const pulseResolved=resolvePulsePreset(pulsePreset);const pulseSpeed=pulseResolved?.speed??pulseSpeedRaw;const pulseIntensity=pulseResolved?.intensity??pulseIntensityRaw;const{style:interactionStyle=\"none\",radius:interactionRadius=200,duration:interactionDuration=.6}=interaction;const canvasRef=useRef(null);const containerRef=useRef(null);const mouseRef=useRef({x:-9999,y:-9999});const mouseActiveRef=useRef(false);const settleFramesRef=useRef(0);const animProgress=useRef(0);const rafRef=useRef(0);const startTimeRef=useRef(0);const mouseScalesRef=useRef(new Float32Array(0));const pulseStartRef=useRef(0);const[isClient,setIsClient]=useState(false);const isStatic=useIsStaticRenderer();const isInViewRef=useRef(appearTrigger===\"mount\");const interactionRef=useRef([]);const pulseSeedRef=useRef(new Float32Array(0));const drawRef=useRef(()=>{});const startAppearRef=useRef(()=>{});useEffect(()=>{startTransition(()=>setIsClient(true));return()=>{};},[]);// IntersectionObserver for \"inView\" trigger\nuseEffect(()=>{if(appearTrigger!==\"inView\"||!isClient)return()=>{};const container=containerRef.current;if(!container)return()=>{};const observer=new IntersectionObserver(([entry])=>{if(entry.isIntersecting){isInViewRef.current=true;startTimeRef.current=performance.now();pulseStartRef.current=startTimeRef.current;startAppearRef.current();observer.disconnect();}},{threshold:.1});observer.observe(container);return()=>observer.disconnect();},[isClient,appearTrigger]);// Reduced motion: disable mouse grow effect\nconst reducedMotionRef=useRef(false);useEffect(()=>{if(typeof window===\"undefined\")return()=>{};const mq=window.matchMedia(\"(prefers-reduced-motion: reduce)\");reducedMotionRef.current=mq.matches;const handler=e=>{reducedMotionRef.current=e.matches;};mq.addEventListener(\"change\",handler);return()=>mq.removeEventListener(\"change\",handler);},[]);// Stable random seed for \"random\" appear direction\nconst randomSeedRef=useRef(new Float32Array(0));const cornerColors=useMemo(()=>gradientEnabled?resolveCornerColors(gradientCount,gradientDirection,cssColorToRgb(gradientColor1),cssColorToRgb(gradientColor2),cssColorToRgb(gradientColor3),cssColorToRgb(gradientColor4)):resolveCornerColors(legacyColorCount,legacyColorDirection,cssColorToRgb(legacyColor1),cssColorToRgb(legacyColor2),cssColorToRgb(legacyColor3),cssColorToRgb(legacyColor4)),[gradientEnabled,gradientCount,gradientDirection,gradientColor1,gradientColor2,gradientColor3,gradientColor4,legacyColorCount,legacyColorDirection,legacyColor1,legacyColor2,legacyColor3,legacyColor4]);const draw=useCallback(()=>{const canvas=canvasRef.current;if(!canvas)return;const ctx=canvas.getContext(\"2d\");if(!ctx)return;const dpr=window.devicePixelRatio||1;// Use offsetWidth/Height — getBoundingClientRect() is affected by\n// ancestor CSS transforms (Framer's canvas zoom), causing dots to\n// render smaller than the actual layout size.\nconst w=canvas.offsetWidth;const h=canvas.offsetHeight;if(canvas.width!==w*dpr||canvas.height!==h*dpr){canvas.width=w*dpr;canvas.height=h*dpr;}ctx.setTransform(dpr,0,0,dpr,0,0);// Clear canvas — background is handled by the container div's CSS\n// backgroundColor, which supports all color formats (oklch, hsl, etc.).\n// Canvas 2D's fillStyle silently rejects modern CSS colors and retains\n// the previous value, causing the wrong color to appear.\nctx.clearRect(0,0,w,h);const spacing=dotSize+gap;const r=dotSize/2;const availW=w-2*r;const availH=h-2*r;const cols=Math.max(1,Math.floor(availW/spacing)+1);const rows=Math.max(1,Math.floor(availH/spacing)+1);const offsetX=r+(availW-(cols-1)*spacing)/2;const offsetY=r+(availH-(rows-1)*spacing)/2;const mx=mouseRef.current.x;const my=mouseRef.current.y;const totalDots=cols*rows;const progress=animProgress.current;const motionReduced=reducedMotionRef.current;const pulseActive=pulseEnabled&&!motionReduced;const pulseElapsed=pulseActive?(performance.now()-pulseStartRef.current)/1e3:0;// Ensure random seed is large enough\nif(appearDirection===\"random\"&&randomSeedRef.current.length<totalDots){const seed=new Float32Array(totalDots);for(let i=0;i<totalDots;i++)seed[i]=Math.random();randomSeedRef.current=seed;}// Ensure per-dot mouse scale array is large enough\nif(mouseScalesRef.current.length<totalDots){const old=mouseScalesRef.current;const arr=new Float32Array(totalDots);// Fill with 1 (no scale), copy existing values\narr.fill(1);arr.set(old.subarray(0,Math.min(old.length,totalDots)));mouseScalesRef.current=arr;}const mouseScales=mouseScalesRef.current;const canvasColor=resolveColorForCanvas(color,\"#000000\");for(let row=0;row<rows;row++){for(let col=0;col<cols;col++){const x=offsetX+col*spacing;const y=offsetY+row*spacing;const dotIdx=row*cols+col;// Normalized position (0-1)\nconst nx=cols>1?col/(cols-1):.5;const ny=rows>1?row/(rows-1):.5;// Vignette fade\nlet alpha=fadeEnabled?0:1;if(fadeEnabled){alpha=useLegacyFade?computeLegacyFadeAlpha(nx,ny,legacyFadeShape,fadeCustomX,fadeCustomY,legacyFadeRadiusX,legacyFadeRadiusY,fadeSoftness,legacyFadeStrength,fadeInvert):(()=>{const d=computeFadeDistance(nx,ny,fadeResolved.cx,fadeResolved.cy,fadeResolved.axis,fadeSize+.001);const spread=.1+fadeSoftness*1.4;const edge=1-spread;const t=Math.max(0,Math.min(1,(d-edge)/(spread+.001)));const vignette=t*t*(3-2*t);return fadeInvert?1-vignette:vignette;})();}if(useGradient){const topColor=lerpColor(cornerColors[0],cornerColors[3],nx);const bottomColor=lerpColor(cornerColors[1],cornerColors[2],nx);const dotColor=lerpColor(topColor,bottomColor,ny);ctx.fillStyle=`rgb(${dotColor[0]|0},${dotColor[1]|0},${dotColor[2]|0})`;}else{ctx.fillStyle=canvasColor;}// Appear animation with directional wave + opacity\nconst appearActive=isInViewRef.current;let scale=1;let appearAlpha=1;if(appearActive){const normalizedIndex=computeAppearIndex(row,col,rows,cols,appearDirection,randomSeedRef.current);const staggerDelay=normalizedIndex*appearStagger;const dotProgress=Math.max(0,Math.min(1,(progress-staggerDelay)/(1-appearStagger+.001)));scale=applyEasing(dotProgress,appearEasing);// Opacity leads scale for a softer entrance\nconst opacityT=Math.min(1,dotProgress*1.5);appearAlpha=opacityT*opacityT*(3-2*opacityT);}else{scale=0;appearAlpha=0;}// Mouse proximity growth (disabled for reduced motion)\nlet targetMouseScale=1;if(!motionReduced&&mx>-999){const mdx=x-mx;const mdy=y-my;const mDist=Math.sqrt(mdx*mdx+mdy*mdy);if(mDist<mouseRadius){const t=1-mDist/mouseRadius;const proximity=t*t*(3-2*t)// smoothstep\n;targetMouseScale=1+proximity*(mouseGrowth-1);}}// Adaptive lerp — snappier approach, gentler return\nconst current=mouseScales[dotIdx];const diff=targetMouseScale-current;const lerpSpeed=Math.abs(diff)<.01?1:diff>0?.16:.09;mouseScales[dotIdx]=current+diff*lerpSpeed;// Click/tap interaction effects\nlet interactionScale=0;const interactions=interactionRef.current;const now=performance.now();for(let k=0;k<interactions.length;k++){const ev=interactions[k];const elapsed=(now-ev.time)/1e3;if(elapsed>interactionDuration)continue;const wave=elapsed/interactionDuration;// Ease-out wave expansion for more natural spread\nconst easedWave=1-(1-wave)*(1-wave);const waveRadius=interactionRadius*easedWave;const dx=x-ev.x;const dy=y-ev.y;const dist=Math.sqrt(dx*dx+dy*dy);const thickness=interactionRadius*.35;const rawProximity=1-Math.min(1,Math.abs(dist-waveRadius)/thickness);// Smoothstep the proximity for softer edges\nconst proximity=rawProximity*rawProximity*(3-2*rawProximity);if(proximity>0){// Cubic fade-out for graceful dissipation\nconst fade=(1-wave)*(1-wave);if(interactionStyle===\"ripple\"){interactionScale+=proximity*fade*2;}else if(interactionStyle===\"repel\"){interactionScale-=proximity*fade*1;}}}// Pulse — preset-specific wave shapes\nlet pulseScale=1;let pulseAlpha=1;if(pulseActive){const t=pulseElapsed;const idx=dotIdx;switch(pulsePreset){case\"gentle\":{// Smooth radial breathing wave from center\nconst dist=Math.sqrt((nx-.5)*(nx-.5)+(ny-.5)*(ny-.5));const wave=Math.sin(t*pulseSpeed*1.5-dist*6);pulseScale=1+wave*.12*pulseIntensity;pulseAlpha=.7+wave*.3*pulseIntensity;break;}case\"heartbeat\":{// Double-beat (lub-dub) pattern\nconst cycle=t*pulseSpeed*.8%1;let beat=0;if(cycle<.12)beat=Math.sin(cycle/.12*Math.PI);else if(cycle>.18&&cycle<.3)beat=Math.sin((cycle-.18)/.12*Math.PI)*.6;// Radial delay from center\nconst dist=Math.sqrt((nx-.5)*(nx-.5)+(ny-.5)*(ny-.5));const delayed=Math.max(0,beat-dist*.8);pulseScale=1+delayed*.35*pulseIntensity;pulseAlpha=.6+delayed*.4*pulseIntensity;break;}case\"ocean\":{// Directional rolling waves (left to right + depth)\nconst wave1=Math.sin(t*pulseSpeed*1.2-nx*8);const wave2=Math.sin(t*pulseSpeed*.7-ny*5+1.3);const combined=wave1*.7+wave2*.3;pulseScale=1+combined*.15*pulseIntensity;pulseAlpha=.5+(combined*.5+.5)*.5*pulseIntensity;break;}case\"fireflies\":{// Random independent twinkle per dot\nif(pulseSeedRef.current.length<totalDots){const seed=new Float32Array(totalDots);for(let i=0;i<totalDots;i++)seed[i]=Math.random();pulseSeedRef.current=seed;}const offset=pulseSeedRef.current[idx]*6.28;const freq=.8+pulseSeedRef.current[idx]*2.2;const raw=Math.sin(t*pulseSpeed*freq+offset);// Sharpen into brief flashes\nconst flash=Math.max(0,raw)**3;pulseScale=1+flash*.5*pulseIntensity;pulseAlpha=.3+flash*.7*pulseIntensity;break;}case\"dramatic\":{// Slow powerful radial expansion from center\nconst dist=Math.sqrt((nx-.5)*(nx-.5)+(ny-.5)*(ny-.5));const wave=Math.sin(t*pulseSpeed*.8-dist*10);const envelope=Math.max(0,wave);pulseScale=1+envelope*.4*pulseIntensity;pulseAlpha=.3+envelope*.7*pulseIntensity;break;}case\"nervous\":{// Fast jittery per-dot noise\nif(pulseSeedRef.current.length<totalDots){const seed=new Float32Array(totalDots);for(let i=0;i<totalDots;i++)seed[i]=Math.random();pulseSeedRef.current=seed;}const s=pulseSeedRef.current[idx];const jitter1=Math.sin(t*pulseSpeed*7+s*50);const jitter2=Math.sin(t*pulseSpeed*11+s*30);const jitter=jitter1*.6+jitter2*.4;pulseScale=1+jitter*.15*pulseIntensity;pulseAlpha=.6+jitter*.25*pulseIntensity;break;}default:{// Custom — layered sine waves for organic feel\nconst phase1=nx*4+ny*3;const phase2=nx*2.3-ny*5.1;const wave1=Math.sin(t*pulseSpeed*2+phase1);const wave2=Math.sin(t*pulseSpeed*1.3+phase2)*.5;const combined=(wave1+wave2)/1.5;pulseScale=1+combined*.18*pulseIntensity;pulseAlpha=.5+(combined*.5+.5)*.5*pulseIntensity;break;}}// Clamp final values\npulseScale=Math.max(.4,Math.min(2.5,pulseScale));pulseAlpha=Math.max(.15,Math.min(1,pulseAlpha));}const finalScale=Math.max(0,scale*mouseScales[dotIdx]*pulseScale+interactionScale);const radius=dotSize/2*finalScale;if(radius<.3)continue;// Combine vignette fade with appear opacity and pulse\nconst finalAlpha=alpha*appearAlpha*pulseAlpha;ctx.globalAlpha=finalAlpha;ctx.beginPath();drawDot(ctx,dotShape,x,y,radius);ctx.fill();}}ctx.globalAlpha=1;},[dotShape,dotSize,gap,color,useGradient,cornerColors,fadeEnabled,useLegacyFade,fadeResolved,fadeSize,fadeSoftness,fadeInvert,fadeCustomX,fadeCustomY,legacyFadeShape,legacyFadeRadiusX,legacyFadeRadiusY,legacyFadeStrength,mouseRadius,mouseGrowth,appearEasing,appearStagger,appearDirection,pulseEnabled,pulsePreset,pulseSpeed,pulseIntensity,interactionStyle,interactionRadius,interactionDuration]);// Keep ref in sync so loops always call the latest draw without re-triggering effects\ndrawRef.current=draw;// Start/restart RAF loop — called on mount and on mouse enter\nconst startLoop=useCallback(()=>{if(rafRef.current)return;settleFramesRef.current=0;const loop=()=>{// Clean up expired interactions\nconst now=performance.now();const ints=interactionRef.current;while(ints.length>0&&(now-ints[0].time)/1e3>interactionDuration+.1){ints.shift();}drawRef.current();const hasActiveInteractions=ints.length>0;if(pulseEnabled||animProgress.current<1||mouseActiveRef.current||hasActiveInteractions){settleFramesRef.current=0;rafRef.current=requestAnimationFrame(loop);}else{// After mouse leaves, run ~25 frames for scales to settle smoothly\nsettleFramesRef.current++;if(settleFramesRef.current<25){rafRef.current=requestAnimationFrame(loop);}else{rafRef.current=0;}}};rafRef.current=requestAnimationFrame(loop);},[interactionDuration,pulseEnabled]);// Animation loop — only runs the appear animation once\nuseEffect(()=>{if(!isClient)return()=>{};const duration=appearDuration*1e3;const appearLoop=()=>{if(!isInViewRef.current){rafRef.current=0;return;}const elapsed=performance.now()-startTimeRef.current;animProgress.current=Math.min(1,elapsed/duration);drawRef.current();if(animProgress.current<1){rafRef.current=requestAnimationFrame(appearLoop);}else{// Appear done — switch to idle-aware loop\nrafRef.current=0;startLoop();}};startAppearRef.current=()=>{if(rafRef.current)return;if(!pulseStartRef.current){pulseStartRef.current=performance.now();}rafRef.current=requestAnimationFrame(appearLoop);};// Animation already completed — just redraw, don't replay\nif(animProgress.current>=1){if(!pulseStartRef.current)pulseStartRef.current=performance.now();drawRef.current();startLoop();return()=>{cancelAnimationFrame(rafRef.current);rafRef.current=0;};}if(appearTrigger===\"mount\"){startTimeRef.current=performance.now();pulseStartRef.current=startTimeRef.current;isInViewRef.current=true;startAppearRef.current();}else if(isInViewRef.current){if(!startTimeRef.current){startTimeRef.current=performance.now();}pulseStartRef.current=startTimeRef.current;startAppearRef.current();}return()=>{cancelAnimationFrame(rafRef.current);rafRef.current=0;startAppearRef.current=()=>{};};},[isClient,appearDuration,appearTrigger,startLoop]);// Redraw when props change while animation loop is idle\nuseEffect(()=>{if(!isClient)return()=>{};if(animProgress.current>=1&&rafRef.current===0){drawRef.current();}return()=>{};},[isClient,draw]);useEffect(()=>{if(!isClient)return()=>{};const container=containerRef.current;if(!container||typeof ResizeObserver===\"undefined\")return()=>{};const observer=new ResizeObserver(()=>{if(rafRef.current===0){drawRef.current();}});observer.observe(container);return()=>observer.disconnect();},[isClient]);// Mouse tracking\nuseEffect(()=>{if(!isClient)return()=>{};const container=containerRef.current;if(!container)return()=>{};const onMove=e=>{const rect=container.getBoundingClientRect();// Scale from visual (transformed) coords to layout coords\nconst scaleX=container.offsetWidth/rect.width;const scaleY=container.offsetHeight/rect.height;mouseRef.current.x=(e.clientX-rect.left)*scaleX;mouseRef.current.y=(e.clientY-rect.top)*scaleY;if(!mouseActiveRef.current){mouseActiveRef.current=true;startLoop();}};const onLeave=()=>{mouseRef.current.x=-9999;mouseRef.current.y=-9999;mouseActiveRef.current=false;// Loop will self-stop after mouse scales settle\n};const onClick=e=>{if(interactionStyle===\"none\")return;const rect=container.getBoundingClientRect();const scaleX=container.offsetWidth/rect.width;const scaleY=container.offsetHeight/rect.height;interactionRef.current.push({x:(e.clientX-rect.left)*scaleX,y:(e.clientY-rect.top)*scaleY,time:performance.now()});startLoop();};container.addEventListener(\"mousemove\",onMove);container.addEventListener(\"mouseleave\",onLeave);container.addEventListener(\"click\",onClick);return()=>{container.removeEventListener(\"mousemove\",onMove);container.removeEventListener(\"mouseleave\",onLeave);container.removeEventListener(\"click\",onClick);};},[isClient,interactionStyle,startLoop]);// Static / SSR fallback — individual SVG dots with fade,\n// matching the canvas draw() logic exactly.\n// When appear animation is enabled, hide the fallback to prevent a\n// flash of fully-visible dots before the canvas takes over.\nconst appearWillAnimate=!isStatic&&appearTrigger!==\"none\";if(isStatic||!isClient){const spacing=dotSize+gap;const r=dotSize/2;// Use actual component dimensions from Framer's style prop so dot\n// sizes match the canvas renderer instead of scaling with a fixed viewBox.\nconst vw=typeof style?.width===\"number\"?style.width:1200;const vh=typeof style?.height===\"number\"?style.height:700;const availW=vw-2*r;const availH=vh-2*r;const cols=Math.max(1,Math.floor(availW/spacing)+1);const rows=Math.max(1,Math.floor(availH/spacing)+1);const offsetX=r+(availW-(cols-1)*spacing)/2;const offsetY=r+(availH-(rows-1)*spacing)/2;const dots=[];for(let row=0;row<rows;row++){for(let col=0;col<cols;col++){const x=offsetX+col*spacing;const y=offsetY+row*spacing;const nx=cols>1?col/(cols-1):.5;const ny=rows>1?row/(rows-1):.5;// Fade alpha (same math as canvas draw)\nlet alpha=fadeEnabled?0:1;if(fadeEnabled){alpha=useLegacyFade?computeLegacyFadeAlpha(nx,ny,legacyFadeShape,fadeCustomX,fadeCustomY,legacyFadeRadiusX,legacyFadeRadiusY,fadeSoftness,legacyFadeStrength,fadeInvert):(()=>{const d=computeFadeDistance(nx,ny,fadeResolved.cx,fadeResolved.cy,fadeResolved.axis,fadeSize+.001);const spread=.1+fadeSoftness*1.4;const edge=1-spread;const t=Math.max(0,Math.min(1,(d-edge)/(spread+.001)));const vignette=t*t*(3-2*t);return fadeInvert?1-vignette:vignette;})();}const fill=useGradient?(()=>{const topColor=lerpColor(cornerColors[0],cornerColors[3],nx);const bottomColor=lerpColor(cornerColors[1],cornerColors[2],nx);const dotColor=lerpColor(topColor,bottomColor,ny);return`rgb(${dotColor[0]|0}, ${dotColor[1]|0}, ${dotColor[2]|0})`;})():color;if(alpha<.01)continue;dots.push(/*#__PURE__*/_jsx(\"path\",{d:dotShapeSVGPath(dotShape,x,y,r),fill:fill,fillOpacity:alpha},`${row}-${col}`));}}return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{...style,width:\"100%\",height:\"100%\",minWidth:200,minHeight:200,backgroundColor,position:\"relative\",overflow:\"hidden\",...appearWillAnimate&&{opacity:0}},children:/*#__PURE__*/_jsx(\"svg\",{style:{position:\"absolute\",inset:0,width:\"100%\",height:\"100%\"},viewBox:`0 0 ${vw} ${vh}`,preserveAspectRatio:\"xMidYMid slice\",children:dots})});}return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{...style,width:\"100%\",height:\"100%\",minWidth:200,minHeight:200,position:\"relative\",overflow:\"hidden\",backgroundColor},children:/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,style:{display:\"block\",width:\"100%\",height:\"100%\"}})});}DotGrid.displayName=\"Dot Grid\";DotGrid.defaultProps={grid:{dotShape:\"circle\",dotSize:10,gap:28},color:\"#F97316\",backgroundColor:\"#FAF5F0\",gradient:{enabled:false,count:\"2\",direction:\"diagonal\",color1:\"#F97316\",color2:\"#EC4899\",color3:\"#8B5CF6\",color4:\"#3B82F6\"},fade:{preset:\"center\",size:.35,softness:.4,invert:false,x:50,y:50},mouse:{radius:120,growth:1.8},animation:{trigger:\"mount\",easing:\"ease-out\",duration:1.2,stagger:.6,direction:\"top-left\"},pulse:{enabled:true,preset:\"custom\",speed:1,intensity:1},interaction:{style:\"none\",radius:200,duration:.6}};addPropertyControls(DotGrid,{grid:{type:ControlType.Object,title:\"Grid\",controls:{dotShape:{type:ControlType.Enum,title:\"Shape\",options:[\"circle\",\"square\",\"diamond\",\"triangle\",\"star\",\"plus\",\"ring\"],optionTitles:[\"Circle\",\"Square\",\"Diamond\",\"Triangle\",\"Star\",\"Plus\",\"Ring\"],defaultValue:\"circle\"},dotSize:{type:ControlType.Number,title:\"Dot Size\",min:2,max:30,step:1,unit:\"px\",defaultValue:10},gap:{type:ControlType.Number,title:\"Gap\",min:4,max:60,step:1,unit:\"px\",defaultValue:28}}},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#F97316\",hidden:props=>props.gradient?.enabled===true},backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"#FAF5F0\"},gradient:{type:ControlType.Object,title:\"Gradient\",controls:{enabled:{type:ControlType.Boolean,title:\"Enabled\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},count:{type:ControlType.Enum,title:\"Colors\",options:[\"2\",\"4\"],optionTitles:[\"2 Colors\",\"4 Colors\"],defaultValue:\"2\"},direction:{type:ControlType.Enum,title:\"Direction\",options:[\"horizontal\",\"vertical\",\"diagonal\"],optionTitles:[\"Horizontal\",\"Vertical\",\"Diagonal\"],defaultValue:\"diagonal\"},color1:{type:ControlType.Color,title:\"Color 1\",defaultValue:\"#F97316\"},color2:{type:ControlType.Color,title:\"Color 2\",defaultValue:\"#EC4899\"},color3:{type:ControlType.Color,title:\"Color 3\",defaultValue:\"#8B5CF6\",hidden:props=>props.gradient?.count!==\"4\"},color4:{type:ControlType.Color,title:\"Color 4\",defaultValue:\"#3B82F6\",hidden:props=>props.gradient?.count!==\"4\"}}},fade:{type:ControlType.Object,title:\"Fade\",controls:{preset:{type:ControlType.Enum,title:\"Preset\",options:[\"none\",\"center\",\"top\",\"bottom\",\"left\",\"right\",\"custom\"],optionTitles:[\"None\",\"Center\",\"Top\",\"Bottom\",\"Left\",\"Right\",\"Custom\"],defaultValue:\"center\"},size:{type:ControlType.Number,title:\"Size\",min:.05,max:.7,step:.01,defaultValue:.35,hidden:props=>props.fade?.preset===\"none\",description:\"Clear area size (smaller = more dots hidden)\"},softness:{type:ControlType.Number,title:\"Softness\",min:0,max:1,step:.05,defaultValue:.4,hidden:props=>props.fade?.preset===\"none\"},invert:{type:ControlType.Boolean,title:\"Invert\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\",hidden:props=>props.fade?.preset===\"none\"},x:{type:ControlType.Number,title:\"X Position\",min:0,max:100,step:1,unit:\"%\",defaultValue:50,hidden:props=>props.fade?.preset!==\"custom\"},y:{type:ControlType.Number,title:\"Y Position\",min:0,max:100,step:1,unit:\"%\",defaultValue:50,hidden:props=>props.fade?.preset!==\"custom\"}}},mouse:{type:ControlType.Object,title:\"Mouse Effect\",controls:{radius:{type:ControlType.Number,title:\"Radius\",min:30,max:400,step:10,unit:\"px\",defaultValue:120,description:\"Area of effect around cursor\"},growth:{type:ControlType.Number,title:\"Growth\",min:1,max:4,step:.1,defaultValue:1.8,description:\"Max scale multiplier for dots near cursor\"}}},animation:{type:ControlType.Object,title:\"Appear Animation\",controls:{trigger:{type:ControlType.Enum,title:\"Trigger\",options:[\"mount\",\"inView\"],optionTitles:[\"On Mount\",\"In View\"],defaultValue:\"mount\"},easing:{type:ControlType.Enum,title:\"Easing\",options:[\"ease-out\",\"ease-in-out\",\"linear\",\"spring\",\"bounce\"],optionTitles:[\"Ease Out\",\"Ease In-Out\",\"Linear\",\"Spring\",\"Bounce\"],defaultValue:\"ease-out\"},duration:{type:ControlType.Number,title:\"Duration\",min:.2,max:4,step:.1,unit:\"s\",defaultValue:1.2},stagger:{type:ControlType.Number,title:\"Stagger\",min:0,max:.9,step:.05,defaultValue:.6,description:\"How much the wave is spread across dots (0 = all at once)\"},direction:{type:ControlType.Enum,title:\"Direction\",options:[\"top-left\",\"top-right\",\"bottom-left\",\"bottom-right\",\"center-out\",\"edges-in\",\"random\"],optionTitles:[\"Top Left\",\"Top Right\",\"Bottom Left\",\"Bottom Right\",\"Center Out\",\"Edges In\",\"Random\"],defaultValue:\"top-left\"}}},pulse:{type:ControlType.Object,title:\"Pulse Animation\",controls:{enabled:{type:ControlType.Boolean,title:\"Enabled\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},preset:{type:ControlType.Enum,title:\"Preset\",options:[\"custom\",\"gentle\",\"heartbeat\",\"ocean\",\"fireflies\",\"dramatic\",\"nervous\"],optionTitles:[\"Custom\",\"Gentle Breathe\",\"Heartbeat\",\"Ocean Waves\",\"Fireflies\",\"Dramatic\",\"Nervous Energy\"],defaultValue:\"custom\",hidden:props=>!props.pulse?.enabled},speed:{type:ControlType.Number,title:\"Speed\",min:.1,max:5,step:.1,defaultValue:1,hidden:props=>!props.pulse?.enabled||props.pulse?.preset!==\"custom\"},intensity:{type:ControlType.Number,title:\"Intensity\",min:.1,max:3,step:.1,defaultValue:1,hidden:props=>!props.pulse?.enabled||props.pulse?.preset!==\"custom\",description:\"Strength of the scale throb and opacity ripple\"}}},interaction:{type:ControlType.Object,title:\"Click Effect\",controls:{style:{type:ControlType.Enum,title:\"Style\",options:[\"none\",\"ripple\",\"repel\"],optionTitles:[\"None\",\"Ripple\",\"Repel\"],defaultValue:\"none\"},radius:{type:ControlType.Number,title:\"Radius\",min:50,max:500,step:10,unit:\"px\",defaultValue:200,hidden:props=>props.interaction?.style===\"none\",description:\"Size of the ripple/repel wave\"},duration:{type:ControlType.Number,title:\"Duration\",min:.2,max:2,step:.1,unit:\"s\",defaultValue:.6,hidden:props=>props.interaction?.style===\"none\",description:\"How long the effect lasts\"}}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"DotGrid\",\"slots\":[],\"annotations\":{\"framerDisableUnlink\":\"\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Gradient_Interactive_Grid.map","// Generated by Framer (bee8ea6)\nexport default function metadata(params,activeLocale){return{description:\"Austrian Students Future Forum\",favicon:\"https://framerusercontent.com/assets/IZpadsrhCpPHS3dDd2YJDCdBds.png\",robots:\"max-image-preview:large\",title:\"ASFF\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}