{"version":3,"file":"Data_Particles3.D3HTGK5R.mjs","names":["useRef","useState","__esmMin","init_npm_react_18_3_1","window","ce","init_jsx_runtime","c","_e","de","init_ssg_sandbox_shims","useIsStaticRenderer","RenderTarget","init_framer_BWFVvmND","addPropertyControls","ControlType","randomBetween","a","b","parseColor","input","s","hex","m","parts","p","colorFromHue","hue","t","c1","c2","c3","fibonacciSphere","points","phi","i","count","y","radius","theta","x","z","NeuralMass","props","canvasRef","nodesRef","edgesRef","signalsRef","labelsRef","rafRef","frameRef","rotYRef","rotXRef","rootRef","isNearViewport","setIsNearViewport","isInViewport","setIsInViewport","isStaticRenderer","isCanvas","node","io","entry","canvas","ctx","reduce","colorStart","colorMid","colorEnd","core","coreColor","coreStr","lblColor","labelColor","lblTextColor","labelTextColor","lblBorderColor","labelBorderColor","labelList","labels","labelOp","labelOpacity","labelChanceClamped","labelChance","labelHold","labelHoldFrames","COUNT","nodeCount","EDGES_PER_NODE","edgesPerNode","ROT_SPEED","rotationSpeed","SPEED_MULT","signalSpeedMultiplier","MAX_SIGNALS","maxSignals","MASS_SCALE","massScale","DEPTH_INTENSITY","depthIntensity","edgeOrder","edgeDepth","nodeOrder","rgba","r","g","op","resize","dpr","nodes","edgeSet","edges","dists","j","dx","dy","dz","k","key","spawnSignal","e","draw","W","H","cx","cy","RX","RY","RZ","focal","cosY","sinY","cosX","sinX","n","wobble","bx","bz","by","x1","z1","y1","z2","f","showCoreGlow","glowRX","glowRY","glowGrad","oi","na","nb","avgScale","depthOp","grad","scale","baseOp","tailOp","idx","l","text","side","depthMul","drawOp","actBoost","haloR","haloGrad","lbl","visibility","lx","ly","boxW","lr","lg","lb","tr","tg","tb","br","bg","bbl","pillPath","connectorEndX","visible","looping","frame","start","stop","onResize","ro","entries","init_Data_Particles3"],"sources":["https:/framerusercontent.com/modules/6lrHoWzqkL9iitvxVTci/sso03RLnScc706FdvkoI/Data_Particles3.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef,useState}from\"react\";import{addPropertyControls,ControlType,RenderTarget,useIsStaticRenderer}from\"framer\";function randomBetween(a,b){return a+Math.random()*(b-a);}function parseColor(input){if(!input)return{r:56,g:189,b:248};const s=input.trim();if(s.startsWith(\"#\")){let hex=s.slice(1);if(hex.length===3){hex=hex.split(\"\").map(c=>c+c).join(\"\");}if(hex.length>=6){return{r:parseInt(hex.slice(0,2),16),g:parseInt(hex.slice(2,4),16),b:parseInt(hex.slice(4,6),16)};}}const m=s.match(/rgba?\\(([^)]+)\\)/);if(m){const parts=m[1].split(\",\").map(p=>parseFloat(p.trim()));return{r:Math.round(parts[0]||0),g:Math.round(parts[1]||0),b:Math.round(parts[2]||0)};}return{r:56,g:189,b:248};}function colorFromHue(hue,c1,c2,c3){if(hue<.5){const t=hue*2;return[Math.round(c1.r+(c2.r-c1.r)*t),Math.round(c1.g+(c2.g-c1.g)*t),Math.round(c1.b+(c2.b-c1.b)*t)];}else{const t=(hue-.5)*2;return[Math.round(c2.r+(c3.r-c2.r)*t),Math.round(c2.g+(c3.g-c2.g)*t),Math.round(c2.b+(c3.b-c2.b)*t)];}}// Fibonacci sphere distribution — gives even spacing on a sphere\nfunction fibonacciSphere(count){const points=[];const phi=Math.PI*(3-Math.sqrt(5));for(let i=0;i<count;i++){const y=1-i/(count-1)*2;const radius=Math.sqrt(1-y*y);const theta=phi*i;const x=Math.cos(theta)*radius;const z=Math.sin(theta)*radius;points.push({x,y,z});}return points;}/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n * @framerIntrinsicWidth 800\n * @framerIntrinsicHeight 600\n */export default function NeuralMass(props){const{colorStart,colorMid,colorEnd,coreColor,nodeCount,edgesPerNode,rotationSpeed,signalSpeedMultiplier,maxSignals,massScale,depthIntensity,showCoreGlow,background,labels,labelChance,labelColor,labelTextColor,labelBorderColor,labelOpacity,labelHoldFrames}=props;const canvasRef=useRef(null);const nodesRef=useRef([]);const edgesRef=useRef([]);const signalsRef=useRef([]);const labelsRef=useRef([]);const rafRef=useRef(0);const frameRef=useRef(0);const rotYRef=useRef(0);const rotXRef=useRef(0);const rootRef=useRef(null);const[isNearViewport,setIsNearViewport]=useState(false);const[isInViewport,setIsInViewport]=useState(false);const isStaticRenderer=useIsStaticRenderer();const isCanvas=RenderTarget.current()===RenderTarget.canvas;useEffect(()=>{if(isCanvas){setIsNearViewport(true);setIsInViewport(true);return;}if(isStaticRenderer||typeof window===\"undefined\")return;const node=rootRef.current;if(!node)return;if(typeof IntersectionObserver===\"undefined\"){setIsNearViewport(true);setIsInViewport(true);return;}const io=new IntersectionObserver(([entry])=>{if(entry?.isIntersecting){setIsNearViewport(true);setIsInViewport(true);}else{setIsInViewport(false);}},{rootMargin:\"200px 0px 200px 0px\",threshold:.01});io.observe(node);return()=>io.disconnect();},[isCanvas,isStaticRenderer]);useEffect(()=>{if(!isNearViewport&&!isCanvas)return;if(typeof window===\"undefined\")return;const canvas=canvasRef.current;if(!canvas)return;const ctx=canvas.getContext(\"2d\");if(!ctx)return;const reduce=typeof matchMedia!==\"undefined\"&&matchMedia(\"(prefers-reduced-motion: reduce)\").matches;const c1=parseColor(colorStart);const c2=parseColor(colorMid);const c3=parseColor(colorEnd);const core=parseColor(coreColor);const coreStr=`rgba(${core.r},${core.g},${core.b},1)`;const lblColor=parseColor(labelColor);const lblTextColor=parseColor(labelTextColor);const lblBorderColor=parseColor(labelBorderColor);const labelList=labels.split(\",\").map(s=>s.trim()).filter(s=>s.length>0);const labelOp=Math.max(0,Math.min(1,labelOpacity));const labelChanceClamped=Math.max(0,Math.min(1,labelChance));const labelHold=Math.max(10,Math.floor(labelHoldFrames));const COUNT=Math.max(20,Math.floor(nodeCount));const EDGES_PER_NODE=Math.max(1,Math.floor(edgesPerNode));const ROT_SPEED=rotationSpeed;const SPEED_MULT=Math.max(.05,signalSpeedMultiplier);const MAX_SIGNALS=Math.max(0,Math.floor(maxSignals));const MASS_SCALE=Math.max(.1,Math.min(1,massScale));const DEPTH_INTENSITY=Math.max(0,Math.min(1,depthIntensity));// Reused sort scratch — avoids allocating a fresh array of objects\n// every frame (which was a big source of GC churn).\nlet edgeOrder=[];let edgeDepth=new Float64Array(0);let nodeOrder=[];function rgba(hue,op){const[r,g,b]=colorFromHue(hue,c1,c2,c3);return`rgba(${r},${g},${b},${op.toFixed(3)})`;}function resize(){if(!canvas)return;// Cap DPR at 2 — on 3x phones / Retina this roughly halves the\n// number of pixels every fill has to touch, for ~no visual loss.\nconst dpr=Math.min(window.devicePixelRatio||1,2);canvas.width=canvas.offsetWidth*dpr;canvas.height=canvas.offsetHeight*dpr;ctx.setTransform(1,0,0,1,0,0);ctx.scale(dpr,dpr);// build nodes from a Fibonacci sphere with radial jitter\nconst base=fibonacciSphere(COUNT);const nodes=base.map(p=>{// radial jitter so the mass has volume, not just a hollow shell\nconst r=randomBetween(.78,1);return{bx:p.x*r,by:p.y*r,bz:p.z*r,sx:0,sy:0,sz:0,scale:1,radius:randomBetween(1.5,3.2),hue:Math.random(),activation:0,targetActivation:0,pulseRadius:0,pulseOp:0,pulsing:false,nextPulse:60+Math.floor(Math.random()*400),driftPhase:Math.random()*Math.PI*2,driftSpeed:randomBetween(.002,.006)};});nodesRef.current=nodes;nodeOrder=nodes.map((_,i)=>i);// build edges: each node connects to its EDGES_PER_NODE nearest neighbors\n// (in 3D base position). Use a Set to dedupe.\nconst edgeSet=new Set;const edges=[];for(let i=0;i<nodes.length;i++){const dists=[];for(let j=0;j<nodes.length;j++){if(i===j)continue;const dx=nodes[i].bx-nodes[j].bx;const dy=nodes[i].by-nodes[j].by;const dz=nodes[i].bz-nodes[j].bz;dists.push({j,d:Math.sqrt(dx*dx+dy*dy+dz*dz)});}dists.sort((a,b)=>a.d-b.d);for(let k=0;k<EDGES_PER_NODE&&k<dists.length;k++){const j=dists[k].j;const key=i<j?`${i}-${j}`:`${j}-${i}`;if(edgeSet.has(key))continue;edgeSet.add(key);// baseline opacity inversely proportional to length\nconst op=Math.max(.05,.35-dists[k].d*.15);edges.push({a:i<j?i:j,b:i<j?j:i,baseOp:op});}}edgesRef.current=edges;edgeOrder=edges.map((_,i)=>i);edgeDepth=new Float64Array(edges.length);signalsRef.current=[];labelsRef.current=[];}function spawnSignal(){const edges=edgesRef.current;if(edges.length===0)return;const e=Math.floor(Math.random()*edges.length);signalsRef.current.push({edgeIndex:e,direction:Math.random()<.5?1:-1,t:0,speed:randomBetween(.01,.025)*SPEED_MULT,intensity:randomBetween(.7,1),hue:randomBetween(0,1),trail:[]});}function draw(){if(!canvas||!ctx)return;const W=canvas.offsetWidth;const H=canvas.offsetHeight;const cx=W/2;const cy=H/2;// separate X/Y radii so the mass fills the element shape.\n// multiplier sized so the sphere — AFTER perspective — fills the\n// canvas. Perspective shrinks the projected mass by ~focal/(focal+camDist),\n// so we pre-scale the radii to compensate.\nconst RX=W*.5*MASS_SCALE;const RY=H*.5*MASS_SCALE;// depth scale uses the smaller axis so back-points still feel right\nconst RZ=Math.min(RX,RY);// reference radius for things that should stay uniform\n// (perspective math, signal/halo/pulse sizes)\nconst R=Math.min(RX,RY);// perspective: longer focal = flatter / less distortion / mass\n// projects closer to its true size. Camera distance is small\n// so the mass actually fills the canvas.\nconst camDist=1.05;const focal=R*12;frameRef.current++;rotYRef.current+=.0025*ROT_SPEED;rotXRef.current=Math.sin(frameRef.current*8e-4)*.25;ctx.clearRect(0,0,W,H);const cosY=Math.cos(rotYRef.current);const sinY=Math.sin(rotYRef.current);const cosX=Math.cos(rotXRef.current);const sinX=Math.sin(rotXRef.current);// project all nodes\nconst nodes=nodesRef.current;for(const n of nodes){// tangential drift: add tiny offset perpendicular to position\nn.driftPhase+=n.driftSpeed;const wobble=Math.sin(n.driftPhase)*.015;const bx=n.bx+wobble*n.bz;const bz=n.bz-wobble*n.bx;const by=n.by;// rotate around Y\nconst x1=bx*cosY+bz*sinY;const z1=-bx*sinY+bz*cosY;// rotate around X\nconst y1=by*cosX-z1*sinX;const z2=by*sinX+z1*cosX;// perspective project\n// zCam: distance from camera. Camera looks from +Z toward origin,\n// so points with smaller z2 are FARTHER (smaller projection).\nconst zCam=camDist-z2;const f=focal/(focal+zCam*RZ);n.sx=cx+x1*RX*f;n.sy=cy+y1*RY*f;n.sz=z2// for sorting (higher = closer to camera)\n;// depth scale: closer (higher z2) = larger\nn.scale=.55+.45*((z2+1)/2);// update activation decay\nn.activation+=(n.targetActivation-n.activation)*.08;n.targetActivation*=.95;// random pulses\nn.nextPulse--;if(n.nextPulse<=0){n.pulsing=true;n.pulseRadius=n.radius;n.pulseOp=.55;n.nextPulse=180+Math.floor(Math.random()*600);n.hue=(n.hue+randomBetween(-.08,.08)+1)%1;}if(n.pulsing){n.pulseRadius+=1.2;n.pulseOp-=.018;if(n.pulseOp<=0){n.pulsing=false;n.pulseOp=0;}}}// soft core glow behind the mass — gives the \"volumetric\" feeling\nif(showCoreGlow){// glow stretches to ellipse so it matches the mass shape\nconst glowRX=RX*1.2;const glowRY=RY*1.2;ctx.save();ctx.translate(cx,cy);ctx.scale(glowRX/glowRY,1);const glowGrad=ctx.createRadialGradient(0,0,0,0,0,glowRY);glowGrad.addColorStop(0,rgba(.5,.08));glowGrad.addColorStop(.5,rgba(.5,.03));glowGrad.addColorStop(1,rgba(.5,0));ctx.globalAlpha=1;ctx.fillStyle=glowGrad;ctx.beginPath();ctx.arc(0,0,glowRY,0,Math.PI*2);ctx.fill();ctx.restore();}// draw edges (back-to-front for proper depth feel) — sort a reused\n// index array in place instead of allocating new objects per frame.\nconst edges=edgesRef.current;for(let i=0;i<edges.length;i++){const e=edges[i];edgeDepth[i]=(nodes[e.a].sz+nodes[e.b].sz)/2;}edgeOrder.sort((a,b)=>edgeDepth[a]-edgeDepth[b]);for(let oi=0;oi<edgeOrder.length;oi++){const e=edges[edgeOrder[oi]];const na=nodes[e.a];const nb=nodes[e.b];const avgScale=(na.scale+nb.scale)/2;const depthOp=DEPTH_INTENSITY>0?Math.pow(avgScale,1+DEPTH_INTENSITY):avgScale;const op=e.baseOp*depthOp;if(op<.01)continue;const grad=ctx.createLinearGradient(na.sx,na.sy,nb.sx,nb.sy);grad.addColorStop(0,rgba(na.hue,op));grad.addColorStop(1,rgba(nb.hue,op));ctx.globalAlpha=1;ctx.strokeStyle=grad;ctx.lineWidth=.5*avgScale+.2;ctx.beginPath();ctx.moveTo(na.sx,na.sy);ctx.lineTo(nb.sx,nb.sy);ctx.stroke();}// spawn signals\nif(signalsRef.current.length<MAX_SIGNALS&&frameRef.current%12===0&&Math.random()<.8){spawnSignal();}// update + draw signals\nsignalsRef.current=signalsRef.current.filter(s=>{const e=edges[s.edgeIndex];if(!e)return false;const na=s.direction===1?nodes[e.a]:nodes[e.b];const nb=s.direction===1?nodes[e.b]:nodes[e.a];s.t+=s.speed;const x=na.sx+(nb.sx-na.sx)*s.t;const y=na.sy+(nb.sy-na.sy)*s.t;const scale=na.scale+(nb.scale-na.scale)*s.t;s.trail.unshift({x,y,scale,op:s.intensity});if(s.trail.length>14)s.trail.pop();for(let i=0;i<s.trail.length;i++){s.trail[i].op*=.87;}const baseOp=s.intensity*(.4+.6*scale);// trail\nfor(let i=s.trail.length-1;i>=0;i--){const p=s.trail[i];const tailOp=p.op*(1-i/s.trail.length)*baseOp;if(tailOp<.01)continue;ctx.globalAlpha=tailOp*.7;ctx.fillStyle=rgba(s.hue,1);ctx.beginPath();ctx.arc(p.x,p.y,(1.4*(1-i/s.trail.length)+.4)*p.scale,0,Math.PI*2);ctx.fill();}// head with glow\nctx.globalAlpha=baseOp*.3;ctx.fillStyle=rgba(s.hue,1);ctx.beginPath();ctx.arc(x,y,4*scale,0,Math.PI*2);ctx.fill();ctx.globalAlpha=baseOp*.9;ctx.fillStyle=rgba(s.hue,1);ctx.beginPath();ctx.arc(x,y,1.8*scale,0,Math.PI*2);ctx.fill();// hot core\nctx.globalAlpha=baseOp;ctx.fillStyle=coreStr;ctx.beginPath();ctx.arc(x,y,.9*scale,0,Math.PI*2);ctx.fill();if(s.t>=1){nb.targetActivation=Math.min(1,nb.targetActivation+s.intensity*.7);nb.pulsing=true;nb.pulseRadius=nb.radius;nb.pulseOp=.7;nb.hue=(nb.hue+(s.hue-nb.hue)*.3+1)%1;// spawn label only if node is front-facing (scale > 0.7)\nif(labelList.length>0&&nb.scale>.7&&Math.random()<labelChanceClamped){const idx=nodes.indexOf(nb);const already=labelsRef.current.some(l=>l.nodeIndex===idx);if(!already&&idx>=0){const text=labelList[Math.floor(Math.random()*labelList.length)];const side=nb.sx<W/2?1:-1;labelsRef.current.push({nodeIndex:idx,text,offsetX:side*randomBetween(28,50),offsetY:-randomBetween(22,38),op:0,life:labelHold+60,maxLife:labelHold+60});}}return false;}return true;});// draw nodes — sorted back-to-front so closer ones overlay.\n// Reused index array, sorted in place.\nnodeOrder.sort((a,b)=>nodes[a].sz-nodes[b].sz);for(let oi=0;oi<nodeOrder.length;oi++){const n=nodes[nodeOrder[oi]];const depthMul=DEPTH_INTENSITY>0?Math.pow(n.scale,1+DEPTH_INTENSITY*1.5):n.scale;const drawOp=.85*depthMul;const actBoost=1+n.activation*1.5;const r=n.radius*n.scale;// pulse ring\nif(n.pulsing&&n.pulseOp>0){ctx.globalAlpha=n.pulseOp*.6*depthMul;ctx.strokeStyle=rgba(n.hue,1);ctx.lineWidth=.7;ctx.beginPath();ctx.arc(n.sx,n.sy,n.pulseRadius*n.scale,0,Math.PI*2);ctx.stroke();}// halo (stronger if activated)\nconst haloR=(r+4)*actBoost;const haloGrad=ctx.createRadialGradient(n.sx,n.sy,r*.5,n.sx,n.sy,haloR);haloGrad.addColorStop(0,rgba(n.hue,drawOp*.45*actBoost));haloGrad.addColorStop(1,rgba(n.hue,0));ctx.globalAlpha=1;ctx.fillStyle=haloGrad;ctx.beginPath();ctx.arc(n.sx,n.sy,haloR,0,Math.PI*2);ctx.fill();// outer ring\nctx.globalAlpha=drawOp*.3;ctx.strokeStyle=rgba(n.hue,1);ctx.lineWidth=.7;ctx.beginPath();ctx.arc(n.sx,n.sy,r+2,0,Math.PI*2);ctx.stroke();// core\nctx.globalAlpha=drawOp;ctx.fillStyle=rgba(n.hue,1);ctx.beginPath();ctx.arc(n.sx,n.sy,r,0,Math.PI*2);ctx.fill();// hot center on activated\nif(n.activation>.1){ctx.globalAlpha=n.activation*drawOp;ctx.fillStyle=coreStr;ctx.beginPath();ctx.arc(n.sx,n.sy,r*.5,0,Math.PI*2);ctx.fill();}}// labels (clean minimal pills)\nconst labelFont=\"500 11px Archivo, 'Archivo', system-ui, -apple-system, 'Segoe UI', sans-serif\";ctx.font=labelFont;ctx.textBaseline=\"middle\";labelsRef.current=labelsRef.current.filter(lbl=>{const n=nodes[lbl.nodeIndex];if(!n)return false;lbl.life--;const fadeFrames=30;if(lbl.life>lbl.maxLife-fadeFrames){const t=1-(lbl.life-(lbl.maxLife-fadeFrames))/fadeFrames;lbl.op=Math.min(1,t);}else if(lbl.life<fadeFrames){lbl.op=Math.max(0,lbl.life/fadeFrames);}else{lbl.op=1;}if(lbl.life<=0)return false;// hide labels when their node rotates to the back\nconst visibility=n.scale>.65?(n.scale-.65)/.35:0;const a=lbl.op*labelOp*visibility;if(a<.02)return true;const lx=n.sx+lbl.offsetX;const ly=n.sy+lbl.offsetY;const padX=10;const padY=5;const metrics=ctx.measureText(lbl.text);const tw=metrics.width;const th=12;const boxW=tw+padX*2;const boxH=th+padY*2;const bx=lbl.offsetX>0?lx:lx-boxW;const by=ly-boxH/2;const rr=boxH/2;const lr=lblColor.r;const lg=lblColor.g;const lb=lblColor.b;const tr=lblTextColor.r;const tg=lblTextColor.g;const tb=lblTextColor.b;const br=lblBorderColor.r;const bg=lblBorderColor.g;const bbl=lblBorderColor.b;// pill path\nconst pillPath=new Path2D;pillPath.moveTo(bx+rr,by);pillPath.lineTo(bx+boxW-rr,by);pillPath.arc(bx+boxW-rr,by+rr,rr,-Math.PI/2,Math.PI/2);pillPath.lineTo(bx+rr,by+boxH);pillPath.arc(bx+rr,by+rr,rr,Math.PI/2,-Math.PI/2);pillPath.closePath();// connector line — uses border color so it matches the pill outline\nconst connectorEndX=lbl.offsetX>0?bx:bx+boxW;ctx.globalAlpha=a*.35;ctx.strokeStyle=`rgba(${br},${bg},${bbl},1)`;ctx.lineWidth=.5;ctx.beginPath();ctx.moveTo(n.sx,n.sy);ctx.lineTo(connectorEndX,by+boxH/2);ctx.stroke();// solid fill\nctx.globalAlpha=a*.95;ctx.fillStyle=`rgba(${lr},${lg},${lb},1)`;ctx.fill(pillPath);// hairline border\nctx.globalAlpha=a*.5;ctx.strokeStyle=`rgba(${br},${bg},${bbl},1)`;ctx.lineWidth=.5;ctx.stroke(pillPath);// text\nctx.globalAlpha=a;ctx.fillStyle=`rgba(${tr},${tg},${tb},1)`;ctx.fillText(lbl.text,bx+padX,by+boxH/2+.5);return true;});ctx.globalAlpha=1;}// ---------- Frame loop with off-screen + reduced-motion gating ----------\nlet visible=isInViewport||isCanvas;let looping=false;function frame(){draw();// Keep looping only while visible and motion is allowed. Under\n// reduced-motion we render a single static frame and stop.\nif(visible&&!reduce){rafRef.current=requestAnimationFrame(frame);}else{looping=false;}}function start(){if(looping||!visible)return;looping=true;rafRef.current=requestAnimationFrame(frame);}function stop(){looping=false;cancelAnimationFrame(rafRef.current);}const onResize=()=>{resize();// Re-kick the loop (or, under reduced-motion, draw one static frame\n// at the new size).\nstart();};resize();window.addEventListener(\"resize\",onResize);// ResizeObserver catches container size changes that don't fire window resize\n// (e.g. when the parent Framer frame is resized, or breakpoints flip)\nlet ro=null;if(typeof ResizeObserver!==\"undefined\"&&canvas.parentElement){ro=new ResizeObserver(()=>onResize());ro.observe(canvas.parentElement);}// PERF: stop the render loop entirely while scrolled off-screen,\n// and restart it cleanly when it comes back into view.\nlet io=null;if(typeof IntersectionObserver!==\"undefined\"){io=new IntersectionObserver(entries=>{visible=entries[0]?.isIntersecting??true;if(visible)start();else stop();},{rootMargin:\"200px 0px 200px 0px\",threshold:.01});io.observe(canvas);}start();return()=>{window.removeEventListener(\"resize\",onResize);if(ro)ro.disconnect();if(io)io.disconnect();cancelAnimationFrame(rafRef.current);};},[colorStart,colorMid,colorEnd,coreColor,nodeCount,edgesPerNode,rotationSpeed,signalSpeedMultiplier,maxSignals,massScale,depthIntensity,showCoreGlow,isNearViewport,isInViewport,isCanvas,labels,labelChance,labelColor,labelTextColor,labelBorderColor,labelOpacity,labelHoldFrames]);return /*#__PURE__*/_jsx(\"div\",{ref:rootRef,style:{position:\"relative\",width:\"100%\",height:\"100%\",background:background,overflow:\"hidden\",pointerEvents:\"none\"},children:/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,style:{position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",display:\"block\",pointerEvents:\"none\"}})});}NeuralMass.defaultProps={colorStart:\"#F97316\",colorMid:\"#A78BFA\",colorEnd:\"#38BDF8\",coreColor:\"#FFFFFF\",nodeCount:120,edgesPerNode:3,rotationSpeed:1,signalSpeedMultiplier:1,maxSignals:20,massScale:1,depthIntensity:.6,showCoreGlow:false,background:\"transparent\",labels:\"Lead Score: 87, Opportunity: $42K, Account: Acme Corp, Pipeline Stage: 4/6, Forecast: $1.2M, Contact: J. Doe, Activity: +12, MQL → SQL, Renewal: 92%, ARR: $480K, Win Rate: 34%, Touchpoints: 7, NPS: 8.4, Deal Velocity: 18d, Engagement: High\",labelChance:.3,labelColor:\"#0F172A\",labelTextColor:\"#FFFFFF\",labelBorderColor:\"#FFFFFF\",labelOpacity:1,labelHoldFrames:180};addPropertyControls(NeuralMass,{colorStart:{type:ControlType.Color,title:\"Color Start\",defaultValue:\"#F97316\"},colorMid:{type:ControlType.Color,title:\"Color Mid\",defaultValue:\"#A78BFA\"},colorEnd:{type:ControlType.Color,title:\"Color End\",defaultValue:\"#38BDF8\"},coreColor:{type:ControlType.Color,title:\"Hot Core\",defaultValue:\"#FFFFFF\"},background:{type:ControlType.Color,title:\"Background\",defaultValue:\"rgba(0,0,0,0)\"},nodeCount:{type:ControlType.Number,title:\"Node Count\",defaultValue:120,min:20,max:400,step:5},edgesPerNode:{type:ControlType.Number,title:\"Edges / Node\",description:\"How many nearest neighbors each node connects to.\",defaultValue:3,min:1,max:8,step:1},rotationSpeed:{type:ControlType.Number,title:\"Rotation Speed\",defaultValue:1,min:0,max:4,step:.1,displayStepper:true},signalSpeedMultiplier:{type:ControlType.Number,title:\"Signal Speed\",defaultValue:1,min:.1,max:4,step:.1,displayStepper:true},maxSignals:{type:ControlType.Number,title:\"Max Signals\",defaultValue:20,min:0,max:80,step:1},massScale:{type:ControlType.Number,title:\"Mass Scale\",description:\"Size of the cluster relative to canvas.\",defaultValue:1,min:.2,max:1,step:.05},depthIntensity:{type:ControlType.Number,title:\"Depth Intensity\",description:\"How strongly back points fade.\",defaultValue:.6,min:0,max:1,step:.05},showCoreGlow:{type:ControlType.Boolean,title:\"Core Glow\",defaultValue:false},labels:{type:ControlType.String,title:\"Labels\",description:\"Comma-separated. Random pick on each activation.\",defaultValue:\"Lead Score: 87, Opportunity: $42K, Account: Acme Corp, Pipeline Stage: 4/6, Forecast: $1.2M, Contact: J. Doe, Activity: +12, MQL → SQL, Renewal: 92%, ARR: $480K, Win Rate: 34%, Touchpoints: 7, NPS: 8.4, Deal Velocity: 18d, Engagement: High\",displayTextArea:true},labelChance:{type:ControlType.Number,title:\"Label Chance\",defaultValue:.3,min:0,max:1,step:.05},labelColor:{type:ControlType.Color,title:\"Pill Fill\",defaultValue:\"#0F172A\"},labelTextColor:{type:ControlType.Color,title:\"Pill Text\",defaultValue:\"#FFFFFF\"},labelBorderColor:{type:ControlType.Color,title:\"Pill Border\",description:\"Also used for the connector line to the neuron.\",defaultValue:\"#FFFFFF\"},labelOpacity:{type:ControlType.Number,title:\"Label Opacity\",defaultValue:1,min:0,max:1,step:.05},labelHoldFrames:{type:ControlType.Number,title:\"Label Duration\",defaultValue:180,min:30,max:600,step:10}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"NeuralMass\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"800\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"600\",\"framerSupportedLayoutHeight\":\"any\",\"framerSupportedLayoutWidth\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Data_Particles3.map"],"mappings":"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"}