{"version":3,"file":"Pretext.D7BPjnqh.mjs","names":["p","THREE.BufferGeometry","THREE.BufferAttribute","THREE.Mesh","THREE.Vector3","THREE.CanvasTexture","THREE.LinearFilter","THREE.Color","useRef","THREE.WebGLRenderer","THREE.Scene","THREE.PerspectiveCamera","THREE.Group","THREE.Vector2","THREE.Clock","THREE.Box3","THREE.PlaneGeometry","THREE.InstancedBufferGeometry","THREE.InstancedBufferAttribute","THREE.DynamicDrawUsage","THREE.ShaderMaterial","THREE.DoubleSide","THREE.TorusKnotGeometry","THREE.Raycaster","THREE.Plane"],"sources":["https:/framerusercontent.com/modules/NWbCrXDNFGYZuO3mluba/qyIUUz1h3acfwDOSMawV/Pretext.js"],"sourcesContent":["/**\n * PretextAnimation.tsx\n * Framer Code Component — 3D Text Particle Animation\n * Supported formats: .obj, .stl (Built-in parsers, highly optimized)\n */function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}import{jsx as _jsx}from\"react/jsx-runtime\";import{useRef,useEffect}from\"react\";import{addPropertyControls,ControlType}from\"framer\";import*as THREE from\"three\";/* ═══════════════════════════════════════════════════════════════\nGLSL shaders\n═══════════════════════════════════════════════════════════════ */const VERT=/* glsl */`\nattribute vec3  offset;\nattribute float charIdx;\nattribute float pScale;\nattribute vec3  pColor;\nvarying vec2  vUv;\nvarying float vCharIdx;\nvarying vec3  vColor;\nvoid main() {\nvUv      = uv;\nvCharIdx = charIdx;\nvColor   = pColor;\nvec4 wOff = modelMatrix * vec4(offset, 1.0);\nvec3 camR = vec3(viewMatrix[0][0], viewMatrix[1][0], viewMatrix[2][0]);\nvec3 camU = vec3(viewMatrix[0][1], viewMatrix[1][1], viewMatrix[2][1]);\nvec3 wPos = wOff.xyz + camR * position.x * pScale + camU * position.y * pScale;\ngl_Position = projectionMatrix * viewMatrix * vec4(wPos, 1.0);\n}\n`;const FRAG=/* glsl */`\nuniform sampler2D atlas;\nuniform float    gridSz;\nvarying vec2  vUv;\nvarying float vCharIdx;\nvarying vec3  vColor;\nvoid main() {\nfloat col = mod(vCharIdx, gridSz);\nfloat row = floor(vCharIdx / gridSz);\nvec2 aUV  = (vec2(col, row) + vec2(vUv.x, 1.0 - vUv.y)) / gridSz;\nvec4 t    = texture2D(atlas, aUV);\nif (t.a < 0.08) discard;\ngl_FragColor = vec4(vColor * t.rgb, t.a);\n}\n`;/* ═══════════════════════════════════════════════════════════════\nInline SurfaceSampler\n═══════════════════════════════════════════════════════════════ */class SurfaceSampler{build(){const a=new THREE.Vector3,b=new THREE.Vector3,c=new THREE.Vector3;let total=0;for(let f=0;f<this.fc;f++){const i0=this.ix?this.ix.getX(f*3):f*3;const i1=this.ix?this.ix.getX(f*3+1):f*3+1;const i2=this.ix?this.ix.getX(f*3+2):f*3+2;a.fromBufferAttribute(this.pa,i0);b.fromBufferAttribute(this.pa,i1);c.fromBufferAttribute(this.pa,i2);total+=b.clone().sub(a).cross(c.clone().sub(a)).length()*.5;this.cdf[f]=total;}if(total>0)for(let f=0;f<this.fc;f++)this.cdf[f]/=total;return this;}sample(tgt,nrm){const r=Math.random();let lo=0,hi=this.fc-1;while(lo<hi){const m=lo+hi>>1;if(this.cdf[m]<r)lo=m+1;else hi=m;}const f=lo;const i0=this.ix?this.ix.getX(f*3):f*3;const i1=this.ix?this.ix.getX(f*3+1):f*3+1;const i2=this.ix?this.ix.getX(f*3+2):f*3+2;const a=new THREE.Vector3().fromBufferAttribute(this.pa,i0);const b=new THREE.Vector3().fromBufferAttribute(this.pa,i1);const c=new THREE.Vector3().fromBufferAttribute(this.pa,i2);let u=Math.random(),v=Math.random();if(u+v>1){u=1-u;v=1-v;}const w=1-u-v;tgt.set(a.x*w+b.x*u+c.x*v,a.y*w+b.y*u+c.y*v,a.z*w+b.z*u+c.z*v);if(nrm){if(this.na){const na=new THREE.Vector3().fromBufferAttribute(this.na,i0);const nb=new THREE.Vector3().fromBufferAttribute(this.na,i1);const nc=new THREE.Vector3().fromBufferAttribute(this.na,i2);nrm.set(na.x*w+nb.x*u+nc.x*v,na.y*w+nb.y*u+nc.y*v,na.z*w+nb.z*u+nc.z*v).normalize();}else{nrm.copy(b.sub(a).cross(c.sub(a))).normalize();}}return this;}constructor(m){_define_property(this,\"pa\",void 0);_define_property(this,\"na\",void 0);_define_property(this,\"ix\",void 0);_define_property(this,\"fc\",void 0);_define_property(this,\"cdf\",void 0);const g=m.geometry;this.pa=g.getAttribute(\"position\");this.na=g.getAttribute(\"normal\")??null;this.ix=g.index;this.fc=this.ix?this.ix.count/3:this.pa.count/3;this.cdf=new Float32Array(this.fc);}}/* ═══════════════════════════════════════════════════════════════\nInline OBJ & STL parsers\n═══════════════════════════════════════════════════════════════ */function parseOBJ(text){const V=[],N=[],fP=[],fN=[];for(const raw of text.split(\"\\n\")){const p=raw.trim().split(/\\s+/);if(p[0]===\"v\"&&p.length>=4)V.push([+p[1],+p[2],+p[3]]);if(p[0]===\"vn\"&&p.length>=4)N.push([+p[1],+p[2],+p[3]]);if(p[0]===\"f\"){const vi=[],ni=[];for(let i=1;i<p.length;i++){const s=p[i].split(\"/\");vi.push(parseInt(s[0])-1);if(s[2])ni.push(parseInt(s[2])-1);}for(let i=1;i<vi.length-1;i++){fP.push(vi[0],vi[i],vi[i+1]);if(ni.length>=vi.length)fN.push(ni[0],ni[i],ni[i+1]);}}}const pa=new Float32Array(fP.length*3),na=new Float32Array(fP.length*3);for(let i=0;i<fP.length;i++){const v=V[fP[i]];if(v){pa[i*3]=v[0];pa[i*3+1]=v[1];pa[i*3+2]=v[2];}if(fN.length&&N[fN[i]]){const n=N[fN[i]];na[i*3]=n[0];na[i*3+1]=n[1];na[i*3+2]=n[2];}}const g=new THREE.BufferGeometry;g.setAttribute(\"position\",new THREE.BufferAttribute(pa,3));g.setAttribute(\"normal\",new THREE.BufferAttribute(na,3));if(!fN.length)g.computeVertexNormals();return[new THREE.Mesh(g)];}function parseSTL(buf){const dv=new DataView(buf),tc=dv.getUint32(80,true);const pos=new Float32Array(tc*9),nrm=new Float32Array(tc*9);let off=84;for(let t=0;t<tc;t++){const nx=dv.getFloat32(off,true);off+=4;const ny=dv.getFloat32(off,true);off+=4;const nz=dv.getFloat32(off,true);off+=4;for(let v=0;v<3;v++){pos[t*9+v*3]=dv.getFloat32(off,true);off+=4;pos[t*9+v*3+1]=dv.getFloat32(off,true);off+=4;pos[t*9+v*3+2]=dv.getFloat32(off,true);off+=4;nrm[t*9+v*3]=nx;nrm[t*9+v*3+1]=ny;nrm[t*9+v*3+2]=nz;}off+=2;}const g=new THREE.BufferGeometry;g.setAttribute(\"position\",new THREE.BufferAttribute(pos,3));g.setAttribute(\"normal\",new THREE.BufferAttribute(nrm,3));return new THREE.Mesh(g);}/* ═══════════════════════════════════════════════════════════════\nModel format detection + loading\n═══════════════════════════════════════════════════════════════ */async function loadModel(url){let buf;try{const r=await fetch(url);buf=await r.arrayBuffer();}catch(e){console.warn(\"[Pretext] fetch failed:\",e);return[];}const text=new TextDecoder().decode(buf);if(/^v\\s/m.test(text))return parseOBJ(text);if(/^solid\\s/i.test(text.trimStart())&&/facet normal/i.test(text))return[parseSTL(buf)];if(buf.byteLength>84){try{return[parseSTL(buf)];}catch{}}console.warn(\"[Pretext] Unknown format. Please upload .obj or .stl\");return[];}function fastSurfaceSample(meshes,count){const out=new Float32Array(count*3);if(meshes.length===0)return out;const sp=new SurfaceSampler(meshes[0]).build();const tp=new THREE.Vector3;for(let i=0;i<count;i++){sp.sample(tp);out[i*3]=tp.x;out[i*3+1]=tp.y;out[i*3+2]=tp.z;}return out;}function buildAtlas(text,fontFamily){const chars=[...new Set(text.split(\"\"))];const grid=Math.ceil(Math.sqrt(chars.length));const cell=80;const size=grid*cell;const cvs=document.createElement(\"canvas\");cvs.width=cvs.height=size;const ctx=cvs.getContext(\"2d\");ctx.clearRect(0,0,size,size);ctx.font=`bold ${cell*.72}px \"${fontFamily}\", Arial, sans-serif`;ctx.textAlign=\"center\";ctx.textBaseline=\"middle\";ctx.fillStyle=\"#fff\";chars.forEach((ch,i)=>{ctx.fillText(ch,i%grid*cell+cell/2,Math.floor(i/grid)*cell+cell/2);});const tex=new THREE.CanvasTexture(cvs);tex.minFilter=THREE.LinearFilter;tex.magFilter=THREE.LinearFilter;tex.flipY=false;const map=new Map;chars.forEach((ch,i)=>map.set(ch,i));return{texture:tex,gridSize:grid,charMap:map};}/* ═══════════════════════════════════════════════════════════════\nPer-particle colour — radial gradient from geometric centroid\n═══════════════════════════════════════════════════════════════ */function computeColors(pos,n,type,solid,gs,ge,ga){const out=new Float32Array(n*3);if(type===\"solid\"){const c=new THREE.Color(solid);for(let i=0;i<n;i++){out[i*3]=c.r;out[i*3+1]=c.g;out[i*3+2]=c.b;}return out;}const c1=new THREE.Color(gs),c2=new THREE.Color(ge);if(type===\"linearGradient\"){const rad=ga*Math.PI/180,dx=Math.cos(rad),dy=Math.sin(rad);let lo=Infinity,hi=-Infinity;for(let i=0;i<n;i++){const d=pos[i*3]*dx+pos[i*3+1]*dy;if(d<lo)lo=d;if(d>hi)hi=d;}const sp=hi-lo||1;for(let i=0;i<n;i++){const t=(pos[i*3]*dx+pos[i*3+1]*dy-lo)/sp;out[i*3]=c1.r+(c2.r-c1.r)*t;out[i*3+1]=c1.g+(c2.g-c1.g)*t;out[i*3+2]=c1.b+(c2.b-c1.b)*t;}return out;}let ccx=0,ccy=0,ccz=0;for(let i=0;i<n;i++){ccx+=pos[i*3];ccy+=pos[i*3+1];ccz+=pos[i*3+2];}ccx/=n;ccy/=n;ccz/=n;let md=0;for(let i=0;i<n;i++){const dx=pos[i*3]-ccx,dy=pos[i*3+1]-ccy,dz=pos[i*3+2]-ccz;const d=Math.sqrt(dx*dx+dy*dy+dz*dz);if(d>md)md=d;}md=md||1;for(let i=0;i<n;i++){const dx=pos[i*3]-ccx,dy=pos[i*3+1]-ccy,dz=pos[i*3+2]-ccz;const t=Math.sqrt(dx*dx+dy*dy+dz*dz)/md;out[i*3]=c1.r+(c2.r-c1.r)*t;out[i*3+1]=c1.g+(c2.g-c1.g)*t;out[i*3+2]=c1.b+(c2.b-c1.b)*t;}return out;}/* ═══════════════════════════════════════════════════════════════\nComponent\n═══════════════════════════════════════════════════════════════ */function PretextAnimation(props){const cRef=useRef(null);const sRef=useRef(null);const pRef=useRef(props);pRef.current=props;useEffect(()=>{const wrapperEl=cRef.current;if(!wrapperEl)return;/* ═══════════════════════════════════════════════════════════════\n        The Canvas Bleed Fix\n        Creates an invisible arena 2x the size of the Framer component \n        so particles have room to explode without hitting a hard edge.\n        ═══════════════════════════════════════════════════════════════ */const bleedFactor=2;const canvasContainer=document.createElement(\"div\");canvasContainer.style.position=\"absolute\";canvasContainer.style.width=`${bleedFactor*100}%`;canvasContainer.style.height=`${bleedFactor*100}%`;canvasContainer.style.top=`-${(bleedFactor-1)*50}%`;canvasContainer.style.left=`-${(bleedFactor-1)*50}%`;// Crucial: Prevents the oversized invisible bleed area from blocking\n// cursor interactions with other elements on your website.\ncanvasContainer.style.pointerEvents=\"none\";wrapperEl.appendChild(canvasContainer);const w=(wrapperEl.clientWidth||props.width||600)*bleedFactor;const h=(wrapperEl.clientHeight||props.height||400)*bleedFactor;const renderer=new THREE.WebGLRenderer({antialias:true,alpha:true});renderer.setPixelRatio(Math.min(window.devicePixelRatio,2));renderer.setSize(w,h);// Background color is now handled by the React <div> wrapper\nrenderer.setClearColor(0,0);canvasContainer.appendChild(renderer.domElement);renderer.domElement.style.display=\"block\";const scene=new THREE.Scene;const camera=new THREE.PerspectiveCamera(50,w/h,.01,500);// Mathematically push the camera back by the exact bleedFactor.\n// This guarantees the 3D text looks exactly the same size it did before.\ncamera.position.z=4.5*bleedFactor;const group=new THREE.Group;const offsetGroup=new THREE.Group;group.add(offsetGroup);scene.add(group);const S={renderer,scene,camera,group,offsetGroup,pmesh:null,n:0,orig:new Float32Array(0),curr:new Float32Array(0),vel:new Float32Array(0),offA:null,colA:null,activeEffect:\"none\",effectT:0,boom:false,boomBouncePhase:0,clickTime:0,clickPos:new THREE.Vector3,aid:0,mNDC:new THREE.Vector2(9999,9999),hover:false,clock:new THREE.Clock,dead:false};sRef.current=S;function build(meshes){if(S.dead)return;const p=pRef.current;const n=p.particleCount;const tmp=new THREE.Group;meshes.forEach(m=>tmp.add(m.clone()));const box=new THREE.Box3().setFromObject(tmp);const sz=box.getSize(new THREE.Vector3);const ctr=box.getCenter(new THREE.Vector3);const dim=Math.max(sz.x,sz.y,sz.z)||1;const sc=2/dim;const normed=meshes.map(m=>{const g=m.geometry.clone();g.translate(-ctr.x,-ctr.y,-ctr.z);g.scale(sc,sc,sc);return new THREE.Mesh(g);});const sorted=fastSurfaceSample(normed,n);const ff=typeof p.fontFamily===\"string\"?p.fontFamily:p.fontFamily?.family??\"Arial\";const{texture,gridSize,charMap}=buildAtlas(p.text,ff);const indices=Array.from({length:n},(_,i)=>i);if(p.textArrangement===\"leftToRight\"){indices.sort((a,b)=>{const yDiff=sorted[b*3+1]-sorted[a*3+1];return Math.abs(yDiff)>.1?yDiff:sorted[a*3]-sorted[b*3];});}else if(p.textArrangement===\"topToBottom\"){indices.sort((a,b)=>{const xDiff=sorted[a*3]-sorted[b*3];return Math.abs(xDiff)>.1?xDiff:sorted[b*3+1]-sorted[a*3+1];});}else if(p.textArrangement===\"diagonal\"){indices.sort((a,b)=>{const projA=sorted[a*3]-sorted[a*3+1];const projB=sorted[b*3]-sorted[b*3+1];return projA-projB;});}else if(p.textArrangement===\"gibberish\"){for(let i=indices.length-1;i>0;i--){const j=Math.floor(Math.random()*(i+1));[indices[i],indices[j]]=[indices[j],indices[i]];}}const charIdx=new Float32Array(n);const scales=new Float32Array(n);for(let i=0;i<n;i++){const originalPosIndex=indices[i];charIdx[originalPosIndex]=charMap.get(p.text[i%p.text.length])??0;scales[i]=p.charSize*(.85+Math.random()*.3);}const colors=computeColors(sorted,n,p.colorType,p.solidColor,p.gradientStartColor,p.gradientEndColor,p.gradientAngle);const base=new THREE.PlaneGeometry(1,1);const geo=new THREE.InstancedBufferGeometry;geo.index=base.index;geo.setAttribute(\"position\",base.getAttribute(\"position\"));geo.setAttribute(\"uv\",base.getAttribute(\"uv\"));const offA=new THREE.InstancedBufferAttribute(sorted.slice(),3);offA.setUsage(THREE.DynamicDrawUsage);geo.setAttribute(\"offset\",offA);geo.setAttribute(\"charIdx\",new THREE.InstancedBufferAttribute(charIdx,1));geo.setAttribute(\"pScale\",new THREE.InstancedBufferAttribute(scales,1));const colA=new THREE.InstancedBufferAttribute(colors,3);colA.setUsage(THREE.DynamicDrawUsage);geo.setAttribute(\"pColor\",colA);geo.instanceCount=n;const mat=new THREE.ShaderMaterial({vertexShader:VERT,fragmentShader:FRAG,uniforms:{atlas:{value:texture},gridSz:{value:gridSize}},transparent:true,depthTest:true,depthWrite:false,side:THREE.DoubleSide});if(S.pmesh){S.offsetGroup.remove(S.pmesh);S.pmesh.geometry.dispose();S.pmesh.material.dispose();}const mesh=new THREE.Mesh(geo,mat);S.offsetGroup.add(mesh);S.pmesh=mesh;S.n=n;S.orig=sorted.slice();S.curr=sorted.slice();S.vel=new Float32Array(n*3);S.offA=offA;S.colA=colA;}(async()=>{const url=pRef.current.modelFile;if(url){try{const meshes=await loadModel(url);if(meshes.length){build(meshes);return;}}catch(e){console.warn(\"[Pretext] load error:\",e);}}build([new THREE.Mesh(new THREE.TorusKnotGeometry(1,.35,200,32))]);})();const rc=new THREE.Raycaster;const pn=new THREE.Vector3;const ip=new THREE.Plane;const hp=new THREE.Vector3;const _modelCenter=new THREE.Vector3;function tick(){if(S.dead)return;S.aid=requestAnimationFrame(tick);const p=pRef.current;const dt=Math.min(S.clock.getDelta(),.05);const time=S.clock.getElapsedTime();const spd=p.rotationSpeed*dt;if(p.rotationAxis===\"X\")group.rotation.x+=spd;else if(p.rotationAxis===\"Y\")group.rotation.y+=spd;else group.rotation.z+=spd;const objT=p.objectTransform;S.offsetGroup.rotation.x=(objT?.rotationX??0)*Math.PI/180;S.offsetGroup.rotation.y=(objT?.rotationY??0)*Math.PI/180;S.offsetGroup.rotation.z=(objT?.rotationZ??0)*Math.PI/180;S.offsetGroup.scale.set(p.scale,p.scale,p.scale);if(S.n>0&&S.offA){const pos=S.curr,orig=S.orig,vel=S.vel,cnt=S.n;const damp=.7+p.bounciness*.28;const sk=S.activeEffect===\"explode\"?.005:S.boomBouncePhase>0?.12:.065;let doR=false,lx=0,ly=0,lz=0;if(S.hover&&S.activeEffect!==\"explode\"){group.updateMatrixWorld(true);rc.setFromCamera(S.mNDC,camera);camera.getWorldDirection(pn);S.offsetGroup.getWorldPosition(_modelCenter);ip.setFromNormalAndCoplanarPoint(pn,_modelCenter);if(rc.ray.intersectPlane(ip,hp)){const lm=hp.clone();S.offsetGroup.worldToLocal(lm);lx=lm.x;ly=lm.y;lz=lm.z;doR=true;}}let effectEase=0;if(S.activeEffect!==\"none\"){S.effectT-=dt;if(S.effectT<=0){S.activeEffect=\"none\";}else{const maxD=p[`${S.activeEffect}Duration`]||1;effectEase=S.effectT/maxD;}}const rR=p.repelRadius,rR2=rR*rR,rS=p.repelStrength;const maxDist=p.explodeSpread;const elapsed=time-S.clickTime;const cx=S.clickPos.x,cy=S.clickPos.y,cz=S.clickPos.z;for(let i=0;i<cnt;i++){const i3=i*3;let tx=orig[i3],ty=orig[i3+1],tz=orig[i3+2];if(S.activeEffect!==\"none\"&&S.activeEffect!==\"explode\"){const dx=tx-cx,dy=ty-cy,dz=tz-cz;const dist=Math.sqrt(dx*dx+dy*dy+dz*dz)||.001;if(S.activeEffect===\"ripple\"){const gap=.4;if(dist>gap&&dist<p.rippleSpread){const waveLen=1/Math.max(p.rippleFrequency*.15,.1);const waveFront=elapsed*p.rippleSpeed*.5;const packetWidth=waveLen*3.5;const behind=waveFront-(dist-gap);if(behind>0&&behind<packetWidth){const windowT=behind/packetWidth;const envelope=Math.sin(windowT*Math.PI);const rings=Math.sin(behind/waveLen*Math.PI*2);const distFade=Math.pow(Math.max(0,1-dist/p.rippleSpread),.6);const s=rings*envelope*p.rippleAmplitude*distFade*effectEase;tx+=dx/dist*s;ty+=dy/dist*s;tz+=dz/dist*s;}}}else if(S.activeEffect===\"shockwave\"){const currentRadius=elapsed*p.shockwaveSpeed;const distFromRing=Math.abs(dist-currentRadius);const s=Math.exp(-(distFromRing*distFromRing)*p.shockwaveThickness)*p.shockwaveAmplitude*effectEase;tx+=dx/dist*s;ty+=dy/dist*s;tz+=dz/dist*s;}else if(S.activeEffect===\"blackhole\"){const horizon=p.blackholeRadius;if(dist<horizon){const t=1-dist/horizon;const pull=t*t*effectEase*p.blackholeStrength;const shrink=Math.max(0,1-pull);const angle=elapsed*p.blackholeStrength*12*t;const cosA=Math.cos(angle);const sinA=Math.sin(angle);const rx=dx*shrink;const ry=dy*shrink;tx=cx+rx*cosA-ry*sinA;ty=cy+rx*sinA+ry*cosA;tz=cz+dz*Math.max(0,1-pull*1.5);}}}vel[i3]+=(tx-pos[i3])*sk;vel[i3+1]+=(ty-pos[i3+1])*sk;vel[i3+2]+=(tz-pos[i3+2])*sk;if(doR){const dx=pos[i3]-lx,dy=pos[i3+1]-ly,dz=pos[i3+2]-lz;const d2=dx*dx+dy*dy+dz*dz;if(d2<rR2&&d2>1e-4){const d=Math.sqrt(d2);const iv=1/d;const rings=Math.sin(d*18-time*6);const rings2=Math.sin(d*9-time*4)*.3;const falloff=(1-d/rR)*(1-d/rR);const force=rS*falloff*(.4+.4*rings+.2*rings2);vel[i3]+=dx*iv*force;vel[i3+1]+=dy*iv*force;vel[i3+2]+=dz*iv*force;}}vel[i3]*=damp;vel[i3+1]*=damp;vel[i3+2]*=damp;pos[i3]+=vel[i3];pos[i3+1]+=vel[i3+1];pos[i3+2]+=vel[i3+2];if(S.activeEffect===\"explode\"||maxDist<99){const dx=pos[i3]-orig[i3],dy=pos[i3+1]-orig[i3+1],dz=pos[i3+2]-orig[i3+2];const dist=Math.sqrt(dx*dx+dy*dy+dz*dz);if(dist>maxDist){const inv=maxDist/dist;pos[i3]=orig[i3]+dx*inv;pos[i3+1]=orig[i3+1]+dy*inv;pos[i3+2]=orig[i3+2]+dz*inv;vel[i3]*=.3;vel[i3+1]*=.3;vel[i3+2]*=.3;}}}S.offA.array.set(pos);S.offA.needsUpdate=true;}renderer.render(scene,camera);}tick();function onMove(e){const r=canvasContainer.getBoundingClientRect();S.mNDC.x=(e.clientX-r.left)/r.width*2-1;S.mNDC.y=-((e.clientY-r.top)/r.height)*2+1;S.hover=true;}function onLeave(){S.hover=false;S.mNDC.set(9999,9999);}function onClick(){if(!S.n)return;const p=pRef.current;group.updateMatrixWorld(true);rc.setFromCamera(S.mNDC,camera);const invMat=S.offsetGroup.matrixWorld.clone().invert();const localRay=rc.ray.clone().applyMatrix4(invMat);let closestDist=Infinity;let ex=0,ey=0,ez=0;const orig=S.orig;for(let i=0;i<S.n;i++){const pt=new THREE.Vector3(orig[i*3],orig[i*3+1],orig[i*3+2]);const d=localRay.distanceSqToPoint(pt);if(d<closestDist){closestDist=d;ex=pt.x;ey=pt.y;ez=pt.z;}}S.clickPos.set(ex,ey,ez);S.activeEffect=p.clickEffect;S.clickTime=S.clock.getElapsedTime();if(p.clickEffect===\"explode\")S.effectT=p.explodeDuration;else if(p.clickEffect===\"ripple\")S.effectT=p.rippleDuration;else if(p.clickEffect===\"shockwave\")S.effectT=p.shockwaveDuration;else if(p.clickEffect===\"blackhole\")S.effectT=p.blackholeDuration;if(p.clickEffect===\"explode\"){const pos=S.curr,vel=S.vel,cnt=S.n;for(let i=0;i<cnt;i++){const i3=i*3;let dx=pos[i3]-ex+(Math.random()-.5)*.1;let dy=pos[i3+1]-ey+(Math.random()-.5)*.1;let dz=pos[i3+2]-ez+(Math.random()-.5)*.1;const l=Math.sqrt(dx*dx+dy*dy+dz*dz)||.001;const f=p.explodeForce*(.5+Math.random()*.8);vel[i3]+=dx/l*f;vel[i3+1]+=dy/l*f;vel[i3+2]+=dz/l*f;}}}wrapperEl.addEventListener(\"mousemove\",onMove);wrapperEl.addEventListener(\"mouseleave\",onLeave);wrapperEl.addEventListener(\"click\",onClick);const ro=new ResizeObserver(es=>{const{width:rw,height:rh}=es[0].contentRect;if(rw>0&&rh>0){const fw=rw*bleedFactor;const fh=rh*bleedFactor;camera.aspect=fw/fh;camera.updateProjectionMatrix();renderer.setSize(fw,fh);}});ro.observe(wrapperEl);return()=>{S.dead=true;cancelAnimationFrame(S.aid);wrapperEl.removeEventListener(\"mousemove\",onMove);wrapperEl.removeEventListener(\"mouseleave\",onLeave);wrapperEl.removeEventListener(\"click\",onClick);ro.disconnect();if(S.pmesh){S.pmesh.geometry.dispose();S.pmesh.material.dispose();}renderer.dispose();if(wrapperEl.contains(canvasContainer))wrapperEl.removeChild(canvasContainer);sRef.current=null;};},[props.modelFile,props.particleCount,props.text,props.textArrangement,props.charSize,props.fontFamily]);useEffect(()=>{const S=sRef.current;if(!S?.colA||!S.n)return;const c=computeColors(S.orig,S.n,props.colorType,props.solidColor,props.gradientStartColor,props.gradientEndColor,props.gradientAngle);S.colA.array.set(c);S.colA.needsUpdate=true;},[props.colorType,props.solidColor,props.gradientStartColor,props.gradientEndColor,props.gradientAngle]);return /*#__PURE__*/_jsx(\"div\",{ref:cRef,style:{width:\"100%\",height:\"100%\",position:\"relative\",overflow:\"visible\",cursor:\"pointer\",backgroundColor:props.bgColor===\"transparent\"||props.bgColor===\"\"?\"transparent\":props.bgColor}});}/* ═══════════════════════════════════════════════════════════════\nProperty Controls\n═══════════════════════════════════════════════════════════════ */addPropertyControls(PretextAnimation,{text:{type:ControlType.String,title:\"Text\",defaultValue:\"jijo.fyi - Product & Web Consultant \",displayTextArea:true},fontFamily:{type:ControlType.Font,title:\"Font\",defaultFontFamily:\"Arial\"},textArrangement:{type:ControlType.Enum,title:\"Arrangement\",options:[\"leftToRight\",\"topToBottom\",\"diagonal\",\"gibberish\"],optionTitles:[\"Left to Right\",\"Top to Bottom\",\"Diagonal 45\\xb0\",\"Gibberish\"],defaultValue:\"leftToRight\"},rotationSpeed:{type:ControlType.Number,title:\"Rotation Speed\",defaultValue:.5,min:-5,max:5,step:.05},rotationAxis:{type:ControlType.Enum,title:\"Rotation Axis\",options:[\"X\",\"Y\",\"Z\"],optionTitles:[\"X Axis\",\"Y Axis\",\"Z Axis\"],defaultValue:\"Y\"},colorType:{type:ControlType.Enum,title:\"Color Mode\",options:[\"solid\",\"linearGradient\",\"radialGradient\"],optionTitles:[\"Solid\",\"Linear Gradient\",\"Radial Gradient\"],defaultValue:\"solid\"},solidColor:{type:ControlType.Color,title:\"Color\",defaultValue:\"#ffffff\",hidden:p=>p.colorType!==\"solid\"},gradientStartColor:{type:ControlType.Color,title:\"Gradient Start\",defaultValue:\"#ff6b6b\",hidden:p=>p.colorType===\"solid\"},gradientEndColor:{type:ControlType.Color,title:\"Gradient End\",defaultValue:\"#4ecdc4\",hidden:p=>p.colorType===\"solid\"},gradientAngle:{type:ControlType.Number,title:\"Gradient Angle\",defaultValue:0,min:0,max:360,step:1,unit:\"deg\",hidden:p=>p.colorType!==\"linearGradient\"},modelFile:{type:ControlType.File,title:\"3D Model\",allowedFileTypes:[\"obj\",\"stl\"]},objectTransform:{type:ControlType.Object,title:\"Object\",controls:{rotationX:{type:ControlType.Number,title:\"Rotate X\",defaultValue:0,min:-180,max:180,step:1,unit:\"\\xb0\",displayStepper:true},rotationY:{type:ControlType.Number,title:\"Rotate Y\",defaultValue:0,min:-180,max:180,step:1,unit:\"\\xb0\",displayStepper:true},rotationZ:{type:ControlType.Number,title:\"Rotate Z\",defaultValue:0,min:-180,max:180,step:1,unit:\"\\xb0\",displayStepper:true}}},particleCount:{type:ControlType.Number,title:\"Particle Count\",defaultValue:3e3,min:200,max:15e3,step:100},charSize:{type:ControlType.Number,title:\"Char Size\",defaultValue:.08,min:.01,max:.5,step:.005},scale:{type:ControlType.Number,title:\"Scale\",defaultValue:1,min:.01,max:10,step:.01},bgColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"transparent\"},bounciness:{type:ControlType.Number,title:\"Bounciness\",defaultValue:.35,min:0,max:1,step:.01,displayStepper:true},/* Repel ─────────────────────────────────────────────────────── */repelRadius:{type:ControlType.Number,title:\"Repel Radius\",defaultValue:1.5,min:.1,max:5,step:.1},repelStrength:{type:ControlType.Number,title:\"Repel Strength\",defaultValue:.25,min:.01,max:2,step:.01},/* Click Effects ─────────────────────────────────────────────── */clickEffect:{type:ControlType.Enum,title:\"Click Effect\",options:[\"explode\",\"ripple\",\"shockwave\",\"blackhole\"],optionTitles:[\"Explode\",\"Ripple (Multiple Rings)\",\"Shockwave (Single Pulse)\",\"Blackhole (Z-Axis Suction)\"],defaultValue:\"explode\"},/* Explode Props */explodeForce:{type:ControlType.Number,title:\"Force\",defaultValue:1.5,min:.2,max:10,step:.1,hidden:p=>p.clickEffect!==\"explode\"},explodeSpread:{type:ControlType.Number,title:\"Spread Radius\",defaultValue:1.5,min:.2,max:8,step:.1,hidden:p=>p.clickEffect!==\"explode\"},explodeDuration:{type:ControlType.Number,title:\"Duration\",defaultValue:2,min:.5,max:10,step:.1,unit:\"s\",hidden:p=>p.clickEffect!==\"explode\"},/* Ripple Props */rippleAmplitude:{type:ControlType.Number,title:\"Amplitude\",defaultValue:.5,min:.1,max:3,step:.1,hidden:p=>p.clickEffect!==\"ripple\"},rippleFrequency:{type:ControlType.Number,title:\"Frequency\",defaultValue:8,min:.5,max:20,step:.5,hidden:p=>p.clickEffect!==\"ripple\"},rippleSpeed:{type:ControlType.Number,title:\"Speed\",defaultValue:12,min:1,max:30,step:.5,hidden:p=>p.clickEffect!==\"ripple\"},rippleSpread:{type:ControlType.Number,title:\"Spread Radius\",defaultValue:4,min:.5,max:10,step:.5,hidden:p=>p.clickEffect!==\"ripple\"},rippleDuration:{type:ControlType.Number,title:\"Duration\",defaultValue:2.5,min:.5,max:10,step:.1,unit:\"s\",hidden:p=>p.clickEffect!==\"ripple\"},/* Shockwave Props */shockwaveAmplitude:{type:ControlType.Number,title:\"Amplitude\",defaultValue:.8,min:.1,max:3,step:.1,hidden:p=>p.clickEffect!==\"shockwave\"},shockwaveSpeed:{type:ControlType.Number,title:\"Speed\",defaultValue:5,min:.5,max:15,step:.5,hidden:p=>p.clickEffect!==\"shockwave\"},shockwaveThickness:{type:ControlType.Number,title:\"Thickness\",defaultValue:3,min:.1,max:10,step:.1,hidden:p=>p.clickEffect!==\"shockwave\"},shockwaveDuration:{type:ControlType.Number,title:\"Duration\",defaultValue:2,min:.5,max:10,step:.1,unit:\"s\",hidden:p=>p.clickEffect!==\"shockwave\"},/* Blackhole Props */blackholeStrength:{type:ControlType.Number,title:\"Blackhole Pull\",defaultValue:2,min:.1,max:10,step:.1,hidden:p=>p.clickEffect!==\"blackhole\"},blackholeRadius:{type:ControlType.Number,title:\"Event Horizon\",defaultValue:5,min:1,max:20,step:.5,hidden:p=>p.clickEffect!==\"blackhole\"},blackholeDuration:{type:ControlType.Number,title:\"Duration\",defaultValue:3,min:.5,max:10,step:.1,unit:\"s\",hidden:p=>p.clickEffect!==\"blackhole\"}});export default PretextAnimation;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"PretextAnimation\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Pretext.map"],"mappings":"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"}