{"version":3,"file":"GradientMotionBackground.CLfmIPxI.mjs","names":["useRef","useState","useMemo"],"sources":["https:/framerusercontent.com/modules/lo7pZNQfFp1xfb0Esqap/0XzNSaACkRVeYaCYXGIe/GradientMotionBackground.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useMemo,useRef,useEffect,useState}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";/**\n * ============================================================\n * GRADIENT MOTION BACKGROUND\n * ------------------------------------------------------------\n * Generates soft, blurred, animated gradient \"blob\" backgrounds\n * (aurora / mesh-gradient style). Shapes are absolutely positioned\n * blurred divs (radial gradients) that drift, pulse, rotate,\n * wave, or orbit around the frame using CSS transforms driven by\n * requestAnimationFrame — no external animation libraries.\n *\n * STATIC RENDERING:\n * On the Framer canvas and during image/PDF export, React runs\n * in a \"static\" context — there's no user interaction and no\n * screen refresh loop watching it. Continuous rAF loops there\n * just burn CPU in the editor and can capture a mid-transition\n * frame during export, causing visual artifacts. We detect this\n * with useIsStaticRenderer() and fall back to a single frozen\n * frame (tick = 0, no rAF loop, no animated grain) whenever it's\n * true — only Preview and the published site actually animate.\n * ============================================================\n */// ------------------------------------------------------------\n// Deterministic seeded PRNG (mulberry32) so \"Seed\" always\n// reproduces the same starting composition.\n// ------------------------------------------------------------\nfunction mulberry32(seed){let a=seed;return function(){a|=0;a=a+1831565813|0;let t=Math.imul(a^a>>>15,1|a);t=t+Math.imul(t^t>>>7,61|t)^t;return((t^t>>>14)>>>0)/4294967296;};}// ------------------------------------------------------------\n// Builds a tileable film-grain noise texture as an SVG data URI\n// using feTurbulence. Generated once per size/seed and reused —\n// cheap to render, no canvas or per-frame pixel work required.\n// ------------------------------------------------------------\nfunction buildGrainDataUri(tileSize,grainSeed){const freq=.9// fixed fractal frequency; tileSize controls apparent grain scale\n;const svg=`<svg xmlns='http://www.w3.org/2000/svg' width='${tileSize}' height='${tileSize}'>\n        <filter id='n'>\n            <feTurbulence type='fractalNoise' baseFrequency='${freq}' numOctaves='2' seed='${grainSeed}' stitchTiles='stitch' result='noise'/>\n            <feColorMatrix in='noise' type='matrix' values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 1 0'/>\n        </filter>\n        <rect width='100%' height='100%' filter='url(#n)'/>\n    </svg>`;return`url(\"data:image/svg+xml;utf8,${encodeURIComponent(svg)}\")`;}// ------------------------------------------------------------\n// Easing helpers for the animation loop\n// ------------------------------------------------------------\nfunction ease(t,type){if(type===\"linear\")return t;if(type===\"sine\")return(Math.sin((t-.25)*Math.PI*2)+1)/2;// ease-in-out (smoothstep-ish, looping)\nconst p=(Math.sin((t-.25)*Math.PI*2)+1)/2;return p*p*(3-2*p);}export default function GradientMotionBackground(props){const{// Colors\ncolorStops,baseBackground,blendMode,opacity,contrast,// Shape\nshapeStyle,blobCount,blurAmount,sizeMin,sizeMax,sizeRandomness,// Motion\nanimate,speed,motionStyle,motionRange,direction,randomDirection,easeType,seed,// Randomness\npositionJitter,sizeVariation,randomColorPerShape,// Grain\ngrainEnabled,grainAmount,grainSize,grainBlendMode,grainAnimate}=props;// --------------------------------------------------------\n// Static renderer detection (Framer canvas + export).\n// Everything below that drives continuous motion must be\n// gated behind `!isStatic`, not just the raw `animate` prop.\n// --------------------------------------------------------\nconst isStatic=useIsStaticRenderer();const effectiveAnimate=animate&&!isStatic;const effectiveGrainAnimate=grainAnimate&&!isStatic;const containerRef=useRef(null);const[tick,setTick]=useState(0);const startTimeRef=useRef(null);const rafRef=useRef(null);// --------------------------------------------------------\n// Build the blob composition deterministically from seed.\n// Regenerates only when seed / count / colors / size / jitter change.\n// --------------------------------------------------------\nconst blobs=useMemo(()=>{const rand=mulberry32(Math.floor(seed*1e5)+1);const colors=colorStops&&colorStops.length>0?colorStops:[\"#22c55e\"];const count=Math.max(1,Math.min(10,blobCount));const list=[];for(let i=0;i<count;i++){const baseX=(i+.5)/count*100;const baseY=30+rand()*40;const jitterX=(rand()-.5)*2*positionJitter;const jitterY=(rand()-.5)*2*positionJitter;const sizeBase=sizeMin+rand()*(sizeMax-sizeMin);const sizeJitter=sizeRandomness?sizeBase*(1+(rand()-.5)*2*(sizeVariation/100)):sizeBase;const color=randomColorPerShape?colors[Math.floor(rand()*colors.length)]:colors[i%colors.length];const dirAngle=randomDirection?rand()*Math.PI*2:direction/180*Math.PI;list.push({id:i,xPct:Math.min(100,Math.max(0,baseX+jitterX)),yPct:Math.min(100,Math.max(0,baseY+jitterY)),sizePct:Math.max(10,sizeJitter),color,rotation:rand()*360,phase:rand(),dirX:Math.cos(dirAngle),dirY:Math.sin(dirAngle)});}return list;},[seed,blobCount,JSON.stringify(colorStops),sizeMin,sizeMax,sizeRandomness,sizeVariation,positionJitter,randomDirection,direction,randomColorPerShape]);// --------------------------------------------------------\n// Grain texture — regenerated only when size/seed change.\n// For animated grain we cycle through a handful of pre-seeded\n// tiles rather than rebuilding SVG every frame (keeps it cheap).\n// In a static context we only ever build/use a single frame.\n// --------------------------------------------------------\nconst grainFrameCount=6;const grainTextures=useMemo(()=>{if(!grainEnabled)return[];const count=effectiveGrainAnimate?grainFrameCount:1;const arr=[];for(let i=0;i<count;i++){arr.push(buildGrainDataUri(grainSize,seed*13+i*97+1));}return arr;},[grainEnabled,grainSize,effectiveGrainAnimate,seed]);const grainFrameIndex=effectiveGrainAnimate&&grainTextures.length>1?Math.floor(tick*12)%grainTextures.length:0;// --------------------------------------------------------\n// Animation loop (rAF). Uses CSS transforms only — never\n// touches layout properties — to stay performant.\n// Never runs when isStatic is true: canvas/export gets one\n// frozen frame (tick stays 0) instead of a live rAF loop.\n// --------------------------------------------------------\nuseEffect(()=>{if(!effectiveAnimate){setTick(0);return;}let mounted=true;const loop=t=>{if(!mounted)return;if(startTimeRef.current===null)startTimeRef.current=t;const elapsed=(t-startTimeRef.current)/1e3;setTick(elapsed*(speed/100));rafRef.current=requestAnimationFrame(loop);};rafRef.current=requestAnimationFrame(loop);return()=>{mounted=false;if(rafRef.current)cancelAnimationFrame(rafRef.current);startTimeRef.current=null;};},[effectiveAnimate,speed]);// --------------------------------------------------------\n// Per-blob transform for the current motion style/time.\n// --------------------------------------------------------\nfunction getTransform(b){if(!effectiveAnimate)return\"translate(-50%, -50%)\";const loopT=(tick+b.phase*6)%6/6// 6s base loop, phase-offset\n;const e=ease(loopT,easeType);const swing=Math.sin(e*Math.PI*2);const range=motionRange;let tx=0;let ty=0;let rot=0;let scale=1;switch(motionStyle){case\"Drift\":tx=b.dirX*range*swing;ty=b.dirY*range*swing;break;case\"Pulse\":scale=1+range/100*(.5+.5*swing)*.5;break;case\"Rotate\":rot=e*360;break;case\"Wave Flow\":tx=Math.sin(e*Math.PI*2+b.id)*range;ty=Math.cos(e*Math.PI*4+b.id)*(range/2);break;case\"Orbit\":tx=Math.cos(e*Math.PI*2)*range;ty=Math.sin(e*Math.PI*2)*range;break;}return`translate(-50%, -50%) translate(${tx}px, ${ty}px) rotate(${rot}deg) scale(${scale})`;}const shapeBorderRadius={Blob:\"50% 45% 55% 50% / 50% 55% 45% 50%\",\"Radial Glow\":\"50%\",Wave:\"60% 40% 30% 70% / 60% 30% 70% 40%\",Mesh:\"40%\",\"Diagonal Streak\":\"10% 90% 10% 90% / 90% 10% 90% 10%\"};return /*#__PURE__*/_jsxs(\"div\",{ref:containerRef,style:{position:\"relative\",width:\"100%\",height:\"100%\",overflow:\"hidden\",background:baseBackground,filter:`contrast(${contrast}%)`},children:[/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,opacity:opacity/100},children:blobs.map(b=>{const isStreak=shapeStyle===\"Diagonal Streak\";return /*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:`${b.xPct}%`,top:`${b.yPct}%`,width:isStreak?`${b.sizePct*2.2}%`:`${b.sizePct}%`,height:isStreak?`${b.sizePct*.6}%`:`${b.sizePct}%`,background:shapeStyle===\"Radial Glow\"?`radial-gradient(circle, ${b.color} 0%, transparent 70%)`:b.color,borderRadius:shapeBorderRadius[shapeStyle]||\"50%\",filter:`blur(${blurAmount}px)`,mixBlendMode:blendMode,transform:`${getTransform(b)} rotate(${b.rotation}deg)`,transition:effectiveAnimate?\"none\":\"transform 0.3s ease\",willChange:\"transform\"}},b.id);})}),grainEnabled&&grainTextures.length>0&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,backgroundImage:grainTextures[grainFrameIndex],backgroundRepeat:\"repeat\",backgroundSize:`${grainSize}px ${grainSize}px`,opacity:grainAmount/100,mixBlendMode:grainBlendMode,pointerEvents:\"none\"}})]});}// ------------------------------------------------------------\n// Defaults: dark near-black base, 3 vivid green blobs, heavy\n// blur, screen blend, slow drift — resembles a neon aurora glow.\n// ------------------------------------------------------------\nGradientMotionBackground.defaultProps={colorStops:[\"#22c55e\",\"#16a34a\",\"#4ade80\"],baseBackground:\"#050805\",blendMode:\"screen\",opacity:100,contrast:110,shapeStyle:\"Blob\",blobCount:3,blurAmount:120,sizeMin:60,sizeMax:90,sizeRandomness:true,animate:true,speed:40,motionStyle:\"Drift\",motionRange:60,direction:45,randomDirection:true,easeType:\"ease-in-out\",seed:7,positionJitter:15,sizeVariation:25,randomColorPerShape:false,grainEnabled:false,grainAmount:15,grainSize:120,grainBlendMode:\"overlay\",grainAnimate:false};addPropertyControls(GradientMotionBackground,{// --- Colors ---\ncolorStops:{type:ControlType.Array,title:\"Colors\",control:{type:ControlType.Color},defaultValue:[\"#22c55e\",\"#16a34a\",\"#4ade80\"],maxCount:5},baseBackground:{type:ControlType.Color,title:\"Background\",defaultValue:\"#050805\"},blendMode:{type:ControlType.Enum,title:\"Blend Mode\",options:[\"normal\",\"screen\",\"lighten\",\"overlay\",\"soft-light\",\"difference\"],optionTitles:[\"Normal\",\"Screen\",\"Lighten\",\"Overlay\",\"Soft Light\",\"Difference\"],defaultValue:\"screen\"},opacity:{type:ControlType.Number,title:\"Opacity\",min:0,max:100,step:1,unit:\"%\",defaultValue:100},contrast:{type:ControlType.Number,title:\"Contrast / Glow\",min:50,max:200,step:1,unit:\"%\",defaultValue:110},// --- Shape ---\nshapeStyle:{type:ControlType.Enum,title:\"Shape Style\",options:[\"Blob\",\"Radial Glow\",\"Wave\",\"Mesh\",\"Diagonal Streak\"],defaultValue:\"Blob\"},blobCount:{type:ControlType.Number,title:\"Shape Count\",min:1,max:10,step:1,defaultValue:3},blurAmount:{type:ControlType.Number,title:\"Blur\",min:0,max:250,step:1,unit:\"px\",defaultValue:120},sizeMin:{type:ControlType.Number,title:\"Size Min\",min:5,max:150,step:1,unit:\"%\",defaultValue:60},sizeMax:{type:ControlType.Number,title:\"Size Max\",min:5,max:200,step:1,unit:\"%\",defaultValue:90},sizeRandomness:{type:ControlType.Boolean,title:\"Size Random\",defaultValue:true},// --- Motion ---\nanimate:{type:ControlType.Boolean,title:\"Animate\",defaultValue:true},speed:{type:ControlType.Number,title:\"Speed\",min:1,max:200,step:1,defaultValue:40,hidden:props=>!props.animate},motionStyle:{type:ControlType.Enum,title:\"Motion Style\",options:[\"Drift\",\"Pulse\",\"Rotate\",\"Wave Flow\",\"Orbit\"],defaultValue:\"Drift\",hidden:props=>!props.animate},motionRange:{type:ControlType.Number,title:\"Motion Range\",min:0,max:300,step:1,unit:\"px\",defaultValue:60,hidden:props=>!props.animate},direction:{type:ControlType.Number,title:\"Direction\",min:0,max:360,step:1,unit:\"\\xb0\",defaultValue:45,hidden:props=>!props.animate||props.randomDirection},randomDirection:{type:ControlType.Boolean,title:\"Random Direction\",defaultValue:true,hidden:props=>!props.animate},easeType:{type:ControlType.Enum,title:\"Ease\",options:[\"linear\",\"ease-in-out\",\"sine\"],optionTitles:[\"Linear\",\"Ease In-Out\",\"Sine\"],defaultValue:\"ease-in-out\",hidden:props=>!props.animate},seed:{type:ControlType.Number,title:\"Seed\",min:0,max:999,step:1,defaultValue:7},// --- Randomness ---\npositionJitter:{type:ControlType.Number,title:\"Position Jitter\",min:0,max:50,step:1,unit:\"%\",defaultValue:15},sizeVariation:{type:ControlType.Number,title:\"Size Variation\",min:0,max:100,step:1,unit:\"%\",defaultValue:25,hidden:props=>!props.sizeRandomness},randomColorPerShape:{type:ControlType.Boolean,title:\"Random Color Per Shape\",defaultValue:false},// --- Grain ---\ngrainEnabled:{type:ControlType.Boolean,title:\"Grain\",defaultValue:false},grainAmount:{type:ControlType.Number,title:\"Grain Amount\",min:0,max:100,step:1,unit:\"%\",defaultValue:15,hidden:props=>!props.grainEnabled},grainSize:{type:ControlType.Number,title:\"Grain Size\",min:30,max:400,step:1,unit:\"px\",defaultValue:120,hidden:props=>!props.grainEnabled},grainBlendMode:{type:ControlType.Enum,title:\"Grain Blend\",options:[\"overlay\",\"soft-light\",\"screen\",\"multiply\",\"normal\"],optionTitles:[\"Overlay\",\"Soft Light\",\"Screen\",\"Multiply\",\"Normal\"],defaultValue:\"overlay\",hidden:props=>!props.grainEnabled},grainAnimate:{type:ControlType.Boolean,title:\"Animate Grain\",defaultValue:false,hidden:props=>!props.grainEnabled}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"GradientMotionBackground\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./GradientMotionBackground.map"],"mappings":"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"}