{"version":3,"file":"shared-lib.B8xkcfdu.mjs","names":["React.useRef","React.useCallback","starCount","spread","starSize","bgColor","starColor","trail","focal","fadeInRange","speed","twinkle"],"sources":["https:/framerusercontent.com/modules/fWAX9Odm1SaTQoZmKanD/ZS8v59ppZMXHY1Oyrtco/Starsfield.js","https:/framerusercontent.com/modules/8nUK0xp29LucjQeQSuXo/C1IVHxahW3v4NJhcmV5N/siteMetadata.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";/** Clamp to [0,1] */function saturate(t){return t<0?0:t>1?1:t;}/** Smoothstep with explicit 0..1 remap, numerically stable */function smooth01(t){// cubic Hermite: 3t^2 - 2t^3\nreturn t*t*(3-2*t);}/** Parse CSS color to RGBA components */function parseColor(input){const c=(input||\"#000000\").trim().toLowerCase();if(c[0]===\"#\"){const h=c.slice(1);if(h.length===3||h.length===4){const r=parseInt(h[0]+h[0],16);const g=parseInt(h[1]+h[1],16);const b=parseInt(h[2]+h[2],16);const a=h.length===4?parseInt(h[3]+h[3],16)/255:1;return{r,g,b,a};}if(h.length===6||h.length===8){const r=parseInt(h.slice(0,2),16);const g=parseInt(h.slice(2,4),16);const b=parseInt(h.slice(4,6),16);const a=h.length===8?parseInt(h.slice(6,8),16)/255:1;return{r,g,b,a};}}const m=c.match(/rgba?\\(\\s*([\\d.]+)\\s*,\\s*([\\d.]+)\\s*,\\s*([\\d.]+)(?:\\s*,\\s*([\\d.]+)\\s*)?\\)/);if(m){const r=Math.max(0,Math.min(255,Number(m[1])));const g=Math.max(0,Math.min(255,Number(m[2])));const b=Math.max(0,Math.min(255,Number(m[3])));const a=m[4]!==undefined?Math.max(0,Math.min(1,Number(m[4]))):1;return{r,g,b,a};}return{r:0,g:0,b:0,a:1};}export default function Starsfield(props){const{starCount=300,speed=.2,spread=2,focal=.6,twinkle=.3,trail=.3,starSize=.5,bgColor=\"#000000\",starColor=\"#FFFFFF\",fadeInRange=.3}=props;const canvasRef=React.useRef(null);const starsRef=React.useRef([]);const rafRef=React.useRef(null);// Single settings object avoids stale closures\nconst settingsRef=React.useRef({starCount,speed,spread,focal,twinkle,trail,starSize,bgColor,starColor,fadeInRange});settingsRef.current={starCount,speed,spread,focal,twinkle,trail,starSize,bgColor,starColor,fadeInRange};// Fit canvas to parent with DPR\nconst resize=React.useCallback(()=>{const canvas=canvasRef.current;if(!canvas)return;const parent=canvas.parentElement;if(!parent)return;const w=Math.max(1,parent.clientWidth);const h=Math.max(1,parent.clientHeight);const dpr=Math.min(window.devicePixelRatio||1,2);canvas.width=Math.floor(w*dpr);canvas.height=Math.floor(h*dpr);canvas.style.width=w+\"px\";canvas.style.height=h+\"px\";const ctx=canvas.getContext(\"2d\");if(ctx){ctx.resetTransform?.();ctx.setTransform(dpr,0,0,dpr,0,0);}},[]);// Initialize star field\nconst initStars=React.useCallback(()=>{const{starCount,spread,starSize}=settingsRef.current;const arr=new Array(starCount).fill(0).map(()=>({x:(Math.random()*2-1)*spread,y:(Math.random()*2-1)*spread,z:Math.random(),px:null,py:null,phase:Math.random()*Math.PI*2,twinkle:.5+Math.random()*1.5,size:starSize*(.6+Math.random()*.8)}));starsRef.current=arr;},[]);// Respawn a star at the far plane\nconst respawn=(s,spread,starSize)=>{s.x=(Math.random()*2-1)*spread;s.y=(Math.random()*2-1)*spread;s.z=1;s.px=null// no hard trail segment on spawn\n;s.py=null;s.phase=Math.random()*Math.PI*2;s.twinkle=.5+Math.random()*1.5;s.size=starSize*(.6+Math.random()*.8);};React.useEffect(()=>{resize();initStars();let last=performance.now();const loop=()=>{const now=performance.now();const dt=Math.min(.05,(now-last)/1e3);last=now;const canvas=canvasRef.current;if(!canvas)return;const ctx=canvas.getContext(\"2d\");if(!ctx)return;const w=canvas.clientWidth;const h=canvas.clientHeight;const cx=w/2;const cy=h/2;const{speed,spread,focal,twinkle,trail,starSize,bgColor,starColor,fadeInRange}=settingsRef.current;const bg=parseColor(bgColor);const sc=parseColor(starColor);// Trail clear with alpha to keep motion streaks\nctx.globalCompositeOperation=\"source-over\";const clearA=(1-Math.min(.98,Math.max(0,trail)))*bg.a;ctx.fillStyle=`rgba(${bg.r},${bg.g},${bg.b},${clearA})`;ctx.fillRect(0,0,w,h);// Additive blend for stars\nctx.globalCompositeOperation=\"lighter\";const f=Math.min(w,h)*focal;// Precompute fade edges in depth\n// z goes from 1 (far) -> 0 (near). We fade from 0 at z=1 up to 1 at z<=1 - fadeInRange.\nconst edgeFar=1;const edgeNear=Math.max(.01,1-Math.max(.05,Math.min(1,fadeInRange)));for(let i=0;i<starsRef.current.length;i++){const s=starsRef.current[i];// Advance in depth space\ns.z-=dt*speed*.7;if(s.z<=.02){respawn(s,spread,starSize);}const invz=1/s.z;const x2d=s.x*f*invz+cx;const y2d=s.y*f*invz+cy;// Cull outside frame with margin\nif(x2d<-20||x2d>w+20||y2d<-20||y2d>h+20){respawn(s,spread,starSize);continue;}// Twinkle factor\nconst tw=Math.max(0,Math.min(1,.65+twinkle*.35*Math.sin(s.phase+now*.0015*s.twinkle)));// Size scales with proximity\nconst size=Math.max(.3,s.size*invz*.9);// Base alpha from star color + twinkle\nconst baseAlpha=Math.min(1,(.15+tw*.9)*sc.a);// Depth-based fade-in:\n// Map z in [edgeFar..edgeNear] -> t in [0..1], then smooth\nconst tRaw=(edgeFar-s.z)/(edgeFar-edgeNear);const appear=smooth01(saturate(tRaw));// Final alpha\nconst alpha=baseAlpha*appear;// Trail line\nif(s.px!==null&&s.py!==null&&alpha>.001){ctx.lineWidth=Math.min(3,size);ctx.strokeStyle=`rgba(${sc.r},${sc.g},${sc.b},${alpha})`;ctx.beginPath();ctx.moveTo(x2d,y2d);const k=Math.min(1.5,.6+speed*.6);const tx=s.px+(x2d-s.px)*k;const ty=s.py+(y2d-s.py)*k;ctx.lineTo(tx,ty);ctx.stroke();}// Star disk\nif(alpha>.001){ctx.fillStyle=`rgba(${sc.r},${sc.g},${sc.b},${alpha})`;ctx.beginPath();ctx.arc(x2d,y2d,size*.5,0,Math.PI*2);ctx.fill();}s.px=x2d;s.py=y2d;}rafRef.current=requestAnimationFrame(loop);};rafRef.current=requestAnimationFrame(loop);const onResize=()=>resize();window.addEventListener(\"resize\",onResize);return()=>{if(rafRef.current)cancelAnimationFrame(rafRef.current);window.removeEventListener(\"resize\",onResize);};},[initStars,resize]);React.useEffect(()=>{initStars();},[starCount,initStars]);return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",background:bgColor,overflow:\"hidden\"},children:/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef})});}addPropertyControls(Starsfield,{starCount:{type:ControlType.Number,title:\"Stars\",min:50,max:4e3,step:50,defaultValue:350},speed:{type:ControlType.Number,title:\"Speed\",min:.1,max:3,step:.05,defaultValue:.3},spread:{type:ControlType.Number,title:\"Spread\",min:1,max:5,step:.1,defaultValue:2},focal:{type:ControlType.Number,title:\"Focal\",min:.4,max:1.6,step:.05,defaultValue:.8},twinkle:{type:ControlType.Number,title:\"Twinkle\",min:0,max:1,step:.01,defaultValue:.7},trail:{type:ControlType.Number,title:\"Trail\",min:0,max:.98,step:.01,defaultValue:.15},starSize:{type:ControlType.Number,title:\"Size\",min:.3,max:3,step:.1,defaultValue:.5},fadeInRange:{type:ControlType.Number,title:\"Fade-In Range\",min:.05,max:1,step:.01,defaultValue:.3},bgColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"#000000\"},starColor:{type:ControlType.Color,title:\"Stars\",defaultValue:\"#FFFFFF\"}});Starsfield.defaultProps={height:800,width:1e3};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Starsfield\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Starsfield.map","// Generated by Framer (69f3b1e)\nexport default function metadata(params,activeLocale){return{description:\"Turn cold prospects into loyal clients and make your brand stand out without paid ads or guesswork. Experience consistent, measurable results with strategies tailored to your growth goals.\",favicon:\"https://framerusercontent.com/assets/Y5W1PwWeAZVFPeHfxseq8XeJw4w.png\",robots:\"max-image-preview:large\",title:\"Jaya Lohar | Client Acquisition\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"sMAAgJ,SAAS,EAAS,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAiE,SAAS,EAAS,EAAE,CAC7Q,OAAO,EAAE,GAAG,EAAE,EAAE,GAA6C,SAAS,EAAW,EAAM,CAAC,IAAM,GAAG,GAAO,WAAW,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,IAAI,CAAC,IAAM,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,SAAS,GAAG,EAAE,SAAS,EAAkJ,MAAM,CAAC,EAA9I,SAAS,EAAE,GAAG,EAAE,GAAG,GAAG,CAA0H,EAAjH,SAAS,EAAE,GAAG,EAAE,GAAG,GAAG,CAA6F,EAApF,SAAS,EAAE,GAAG,EAAE,GAAG,GAAG,CAAgE,EAAvD,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,IAAI,EAAiB,CAAE,GAAG,EAAE,SAAS,GAAG,EAAE,SAAS,EAA8J,MAAM,CAAC,EAA1J,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,CAAmI,EAA1H,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,CAAmG,EAA1F,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,CAAmE,EAA1D,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAiB,CAAG,IAAM,EAAE,EAAE,MAAM,4EAA4E,CAAqO,OAAjO,EAAsN,CAAC,EAA5M,KAAK,IAAI,EAAE,KAAK,IAAI,IAAI,OAAO,EAAE,GAAG,CAAC,CAAC,CAAwK,EAA/J,KAAK,IAAI,EAAE,KAAK,IAAI,IAAI,OAAO,EAAE,GAAG,CAAC,CAAC,CAA2H,EAAlH,KAAK,IAAI,EAAE,KAAK,IAAI,IAAI,OAAO,EAAE,GAAG,CAAC,CAAC,CAA8E,EAArE,EAAE,KAAK,IAAA,GAA+C,EAArC,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAkB,CAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,SAAwB,EAAW,EAAM,CAAC,GAAK,CAAC,YAAU,IAAI,QAAM,GAAG,SAAO,EAAE,QAAM,GAAG,UAAQ,GAAG,QAAM,GAAG,WAAS,GAAG,UAAQ,UAAU,YAAU,UAAU,cAAY,IAAI,EAAY,EAAUA,EAAa,KAAK,CAAO,EAASA,EAAa,EAAE,CAAC,CAAO,EAAOA,EAAa,KAAK,CAChqC,EAAYA,EAAa,CAAC,YAAU,QAAM,SAAO,QAAM,UAAQ,QAAM,WAAS,UAAQ,YAAU,cAAY,CAAC,CAAC,EAAY,QAAQ,CAAC,YAAU,QAAM,SAAO,QAAM,UAAQ,QAAM,WAAS,UAAQ,YAAU,cAAY,CAC3N,IAAM,EAAOC,MAAsB,CAAC,IAAM,EAAO,EAAU,QAAQ,GAAG,CAAC,EAAO,OAAO,IAAM,EAAO,EAAO,cAAc,GAAG,CAAC,EAAO,OAAO,IAAM,EAAE,KAAK,IAAI,EAAE,EAAO,YAAY,CAAO,EAAE,KAAK,IAAI,EAAE,EAAO,aAAa,CAAO,EAAI,KAAK,IAAI,EAAO,kBAAkB,EAAE,EAAE,CAAC,EAAO,MAAM,KAAK,MAAM,EAAE,EAAI,CAAC,EAAO,OAAO,KAAK,MAAM,EAAE,EAAI,CAAC,EAAO,MAAM,MAAM,EAAE,KAAK,EAAO,MAAM,OAAO,EAAE,KAAK,IAAM,EAAI,EAAO,WAAW,KAAK,CAAI,IAAK,EAAI,kBAAkB,CAAC,EAAI,aAAa,EAAI,EAAE,EAAE,EAAI,EAAE,EAAE,GAAI,EAAE,CAAC,CAChe,EAAUA,MAAsB,CAAC,GAAK,CAAC,UAAA,EAAU,OAAA,EAAO,SAAA,GAAU,EAAY,QAAqP,EAAS,QAAxO,MAAMC,EAAU,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,GAAG,KAAK,QAAQ,CAAC,EAAE,GAAGC,EAAO,GAAG,KAAK,QAAQ,CAAC,EAAE,GAAGA,EAAO,EAAE,KAAK,QAAQ,CAAC,GAAG,KAAK,GAAG,KAAK,MAAM,KAAK,QAAQ,CAAC,KAAK,GAAG,EAAE,QAAQ,GAAG,KAAK,QAAQ,CAAC,IAAI,KAAKC,GAAU,GAAG,KAAK,QAAQ,CAAC,IAAI,EAAE,EAAwB,EAAE,CAAC,CAC7V,GAAS,EAAE,EAAO,IAAW,CAAC,EAAE,GAAG,KAAK,QAAQ,CAAC,EAAE,GAAGD,EAAO,EAAE,GAAG,KAAK,QAAQ,CAAC,EAAE,GAAGA,EAAO,EAAE,EAAE,EAAE,EAAE,GAAG,KAC5G,EAAE,GAAG,KAAK,EAAE,MAAM,KAAK,QAAQ,CAAC,KAAK,GAAG,EAAE,EAAE,QAAQ,GAAG,KAAK,QAAQ,CAAC,IAAI,EAAE,KAAKC,GAAU,GAAG,KAAK,QAAQ,CAAC,KAc+Y,OAdzY,MAAoB,CAAC,GAAQ,CAAC,GAAW,CAAC,IAAI,EAAK,YAAY,KAAK,CAAO,MAAS,CAAC,IAAM,EAAI,YAAY,KAAK,CAAO,EAAG,KAAK,IAAI,KAAK,EAAI,GAAM,IAAI,CAAC,EAAK,EAAI,IAAM,EAAO,EAAU,QAAQ,GAAG,CAAC,EAAO,OAAO,IAAM,EAAI,EAAO,WAAW,KAAK,CAAC,GAAG,CAAC,EAAI,OAAO,IAAM,EAAE,EAAO,YAAkB,EAAE,EAAO,aAAmB,EAAG,EAAE,EAAQ,EAAG,EAAE,EAAO,CAAC,MAAA,EAAM,OAAA,EAAO,MAAA,EAAM,QAAA,EAAQ,MAAA,EAAM,SAAA,EAAS,QAAA,EAAQ,UAAA,EAAU,YAAA,GAAa,EAAY,QAAc,EAAG,EAAWC,EAAQ,CAAO,EAAG,EAAWC,EAAU,CACnmB,EAAI,yBAAyB,cAAc,IAAM,GAAQ,EAAE,KAAK,IAAI,IAAI,KAAK,IAAI,EAAEC,EAAM,CAAC,EAAE,EAAG,EAAE,EAAI,UAAU,QAAQ,EAAG,EAAE,GAAG,EAAG,EAAE,GAAG,EAAG,EAAE,GAAG,EAAO,GAAG,EAAI,SAAS,EAAE,EAAE,EAAE,EAAE,CAC9K,EAAI,yBAAyB,UAAU,IAAM,EAAE,KAAK,IAAI,EAAE,EAAE,CAACC,EAEvC,EAAS,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,KAAK,IAAI,EAAEC,EAAY,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,EAAS,QAAQ,OAAO,IAAI,CAAC,IAAM,EAAE,EAAS,QAAQ,GACzJ,EAAE,GAAG,EAAGC,EAAM,GAAM,EAAE,GAAG,KAAK,EAAQ,EAAEP,EAAOC,EAAS,CAAE,IAAM,EAAK,EAAE,EAAE,EAAQ,EAAI,EAAE,EAAE,EAAE,EAAK,EAAS,EAAI,EAAE,EAAE,EAAE,EAAK,EACxH,GAAG,EAAI,KAAK,EAAI,EAAE,IAAI,EAAI,KAAK,EAAI,EAAE,GAAG,CAAC,EAAQ,EAAED,EAAOC,EAAS,CAAC,SACpE,IAAM,EAAG,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,IAAIO,EAAQ,IAAI,KAAK,IAAI,EAAE,MAAM,EAAI,MAAM,EAAE,QAAQ,CAAC,CAAC,CAChF,EAAK,KAAK,IAAI,GAAG,EAAE,KAAK,EAAK,GAAG,CAIhC,EAHU,KAAK,IAAI,GAAG,IAAI,EAAG,IAAI,EAAG,EAAE,CAEa,EAAS,GAAtD,EAAQ,EAAE,IAAI,EAAQ,GAA8C,CAAC,CAEjF,GAAG,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,EAAM,KAAK,CAAC,EAAI,UAAU,KAAK,IAAI,EAAE,EAAK,CAAC,EAAI,YAAY,QAAQ,EAAG,EAAE,GAAG,EAAG,EAAE,GAAG,EAAG,EAAE,GAAG,EAAM,GAAG,EAAI,WAAW,CAAC,EAAI,OAAO,EAAI,EAAI,CAAC,IAAM,EAAE,KAAK,IAAI,IAAI,GAAGD,EAAM,GAAG,CAAO,EAAG,EAAE,IAAI,EAAI,EAAE,IAAI,EAAQ,EAAG,EAAE,IAAI,EAAI,EAAE,IAAI,EAAE,EAAI,OAAO,EAAG,EAAG,CAAC,EAAI,QAAQ,CACxR,EAAM,OAAM,EAAI,UAAU,QAAQ,EAAG,EAAE,GAAG,EAAG,EAAE,GAAG,EAAG,EAAE,GAAG,EAAM,GAAG,EAAI,WAAW,CAAC,EAAI,IAAI,EAAI,EAAI,EAAK,GAAG,EAAE,KAAK,GAAG,EAAE,CAAC,EAAI,MAAM,EAAE,EAAE,GAAG,EAAI,EAAE,GAAG,EAAK,EAAO,QAAQ,sBAAsB,EAAK,EAAG,EAAO,QAAQ,sBAAsB,EAAK,CAAC,IAAM,MAAa,GAAQ,CAA4C,OAA3C,EAAO,iBAAiB,SAAS,EAAS,KAAW,CAAI,EAAO,SAAQ,qBAAqB,EAAO,QAAQ,CAAC,EAAO,oBAAoB,SAAS,EAAS,GAAK,CAAC,EAAU,EAAO,CAAC,CAAC,MAAoB,CAAC,GAAW,EAAG,CAAC,EAAU,EAAU,CAAC,CAAqB,EAAK,MAAM,CAAC,MAAM,CAAC,MAAM,OAAO,OAAO,OAAO,WAAW,EAAQ,SAAS,SAAS,CAAC,SAAsB,EAAK,SAAS,CAAC,IAAI,EAAU,CAAC,CAAC,CAAC,sBApB9mB,IAA4B,IAAoD,CAoBgiB,EAAoB,EAAW,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,IAAI,GAAG,IAAI,IAAI,KAAK,GAAG,aAAa,IAAI,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,IAAI,GAAG,IAAI,EAAE,KAAK,IAAI,aAAa,GAAG,CAAC,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,IAAI,EAAE,IAAI,EAAE,KAAK,GAAG,aAAa,EAAE,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,IAAI,GAAG,IAAI,IAAI,KAAK,IAAI,aAAa,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,aAAa,GAAG,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,IAAI,EAAE,IAAI,IAAI,KAAK,IAAI,aAAa,IAAI,CAAC,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,IAAI,GAAG,IAAI,EAAE,KAAK,GAAG,aAAa,GAAG,CAAC,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,gBAAgB,IAAI,IAAI,IAAI,EAAE,KAAK,IAAI,aAAa,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,UAAU,CAAC,UAAU,CAAC,KAAK,EAAY,MAAM,MAAM,QAAQ,aAAa,UAAU,CAAC,CAAC,CAAC,EAAW,aAAa,CAAC,OAAO,IAAI,MAAM,IAAI,ICnB1jD,SAAwB,EAAS,EAAO,EAAa,CAAC,MAAM,CAAC,YAAY,+LAA+L,QAAQ,uEAAuE,OAAO,0BAA0B,MAAM,kCAAkC"}