PageSourceSearch

https://joinhottub.com/_next/static/chunks/8928.0d6cd0397bbb879f.js

js joinhottub.com collected 2026-10-09 22:40:04 UTC 16,558 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8928],{8928:(e,t,n)=>{n.r(t),n.d(t,{MyMapSpace:()=>m});var s=n(4536),r=n(11092),o=n(90625),a=n(14404),i=n(74678),l=n(31519),c=n(38726),d=n(35735);function u(e){switch(e){case"hottub":return"#1f9aab";case"subtub":return"#e0714a";case"soak":return"#33b3a6";case"cabana":case"location":case"business":case"community":return"#c89b62";default:return"#9fb3c8"}}let p={Join:"Join",Follow:"Follow",Connect:"Connect",Attend:"Attend",View:"View"};function m(e){var t;let{space:n,self:m,backHref:h="/me",backLabel:b="Leave"}=e,x=(0,r.useRef)(null),v=(0,r.useRef)(null),w=(0,r.useRef)(null),y=(0,r.useRef)(!1),[g,S]=(0,r.useState)(null),[k,E]=(0,r.useState)(!1),[j,P]=(0,r.useState)(!1),[N,C]=(0,r.useState)(!1),[L,M]=(0,r.useState)(null),F=(0,r.useRef)(null),[I,T]=(0,r.useState)(!1),[_,A]=(0,r.useState)(!1),R=I||_,B=(0,r.useCallback)(()=>{var e,t,n,s,r;let o=document;if(o.fullscreenElement||o.webkitFullscreenElement){null!=(null==(n=o.exitFullscreen)?void 0:n.call(o))||null==(s=o.webkitExitFullscreen)||s.call(o);return}if(_)return void A(!1);let a=x.current,i=null!=(r=null==a||null==(e=a.requestFullscreen)?void 0:e.bind(a))?r:null==a||null==(t=a.webkitRequestFullscreen)?void 0:t.bind(a);i?Promise.resolve(i()).catch(e=>{console.warn("[MyMapSpace] native fullscreen rejected; using immersive fallback.",e),A(!0)}):A(!0)},[_]);(0,r.useEffect)(()=>{let e=()=>{let e=document;T(!!(e.fullscreenElement||e.webkitFullscreenElement))};return document.addEventListener("fullscreenchange",e),document.addEventListener("webkitfullscreenchange",e),()=>{document.removeEventListener("fullscreenchange",e),document.removeEventListener("webkitfullscreenchange",e)}},[]),(0,r.useEffect)(()=>{if(!_)return;let e=document.body.style.overflow;document.body.style.overflow="hidden";let t=e=>{"Escape"===e.key&&A(!1)};return window.addEventListener("keydown",t),()=>{document.body.style.overflow=e,window.removeEventListener("keydown",t)}},[_]);let[z,q]=(0,r.useState)(!1),[D,H]=(0,r.useState)(!1),V=(0,r.useRef)(null),W=(0,r.useCallback)(()=>{q(!1),H(!0),V.current&&(clearTimeout(V.current),V.current=null)},[]),Y=(0,r.useCallback)(()=>{if(g){var e;null==(e=v.current)||e.click();return}q(!0),V.current&&clearTimeout(V.current),V.current=setTimeout(W,5500)},[g,W]);(0,r.useEffect)(()=>()=>{V.current&&clearTimeout(V.current)},[]);let Q=(0,r.useCallback)(()=>{C(e=>{let t=!e;if(y.current=t,t)w.current||(w.current=(0,c.zq)("soak",.05)),w.current.start();else{var n;null==(n=w.current)||n.stop()}return t})},[]);(0,r.useEffect)(()=>{var e,t,s,r,c;let m=x.current;if(!m)return;let h=navigator.xr;(null==h?void 0:h.isSessionSupported)?h.isSessionSupported("immersive-vr").then(S).catch(()=>S(!1)):S(!1);let b=null==(e=(t=window).matchMedia)?void 0:e.call(t,"(prefers-reduced-motion: reduce)").matches,y=m.clientWidth||window.innerWidth,g=m.clientHeight||window.innerHeight,k=(0,d.uw)({host:m,width:y,height:g,onContextLost:()=>E(!0)});if(!k)return void E(!0);let j=a.Z.createButton(k);j.style.display="none",j.style.visibility="hidden",j.style.pointerEvents="none",m.appendChild(j),v.current=j;let N=new o.Q1f("#13233f"),C=new o.Z58;C.background=N,C.fog=new o.jUj(N,9,26);
1let L=new o.ubm(60,y/g,.1,120),I=y<g?10.5:8,T=new o.Pq0(2.6,1,6).normalize();L.position.set(0,1.4,0).addScaledVector(T,I);let _=new i.N(L,k.domElement);_.target.set(0,1.4,0),_.enablePan=!1,_.minDistance=2.4,_.maxDistance=11,_.maxPolarAngle=Math.PI/1.92,_.enableDamping=!0,_.dampingFactor=.08,_.mouseButtons.RIGHT=o.kBv.ROTATE,_.update();let A=new o.dth(0xdfe9ff,1318192,1.05);C.add(A);let R=new o.ZyN(0xfff2e0,.7);R.position.set(3,7,4),C.add(R);let B=[],z=[],q=[],D=e=>(B.push(e),e),H=e=>(z.push(e),e),V=new o.eaF(D(new o.tcD(15,64)),H(new o._4j({color:"#0d1830",roughness:.85,metalness:.1})));V.rotation.x=-Math.PI/2,C.add(V);let W=new o.eaF(D(new o.rKP(8.2,11.5,96)),H(new o.V9B({color:"#26405f",transparent:!0,opacity:.4,side:o.$EB})));W.rotation.x=-Math.PI/2,W.position.y=.02,C.add(W);{let e=new Float32Array(660);for(let t=0;t<220;t++){let n=30+40*Math.random(),s=Math.random()*Math.PI*2,r=Math.PI/2.2*Math.random();e[3*t]=n*Math.sin(r)*Math.cos(s),e[3*t+1]=6+n*Math.cos(r),e[3*t+2]=n*Math.sin(r)*Math.sin(s)}let t=D(new o.LoY);t.setAttribute("position",new o.THS(e,3));let n=H(new o.BH$({color:"#cfe0ff",size:.45,sizeAttenuation:!0,transparent:!0,opacity:.5,depthWrite:!1}));C.add(new o.ONl(t,n))}let Y=function(e){var t,n;let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=null!=(t=s.fg)?t:"#0e1830",a=null!=(n=s.bg)?n:"rgba(247,243,237,0.95)",i="".concat(s.bold?"800":"600"," 40px system-ui, -apple-system, sans-serif"),l=document.createElement("canvas").getContext("2d");l.font=i;let c=Math.ceil(Math.min(l.measureText(e).width,560)+52),d=document.createElement("canvas");d.width=c,d.height=84;let u=d.getContext("2d");u.fillStyle=a,u.beginPath(),u.moveTo(20,0),u.arcTo(c,0,c,84,20),u.arcTo(c,84,0,84,20),u.arcTo(0,84,0,0,20),u.arcTo(0,0,c,0,20),u.closePath(),u.fill(),u.font=i,u.fillStyle=r,u.textAlign="center",u.textBaseline="middle",u.fillText(e,c/2,44,560);let p=new o.GOR(d);p.colorSpace=o.er$,p.anisotropy=4,q.push(p);let m=H(new o.RoJ({map:p,transparent:!0,depthWrite:!1})),f=new o.kxk(m);return f.scale.set(.0042*c,.3528,1),f.renderOrder=10,f},Q=[],O=D(new o.Gu$(1,28,20)),X=function(e,t,n,s){var r,a,i,l;let c=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},d=H(new o._4j({color:n,roughness:.4,metalness:.05,transparent:(null!=(r=c.opacity)?r:1)<1,opacity:null!=(a=c.opacity)?a:1,emissive:new o.Q1f(null!=(i=c.emissive)?i:n),emissiveIntensity:null!=(l=c.emissiveIntensity)?l:.12})),u=new o.eaF(O,d);return u.scale.setScalar(t),u.position.copy(e),u.userData.hitIndex=Q.length,C.add(u),Q.push({obj:u,focus:s,baseColor:new o.Q1f(n),emissive:d}),u},G=new o.Pq0(0,1.5,0),$=(e,t,n)=>{let s=D(new o.LoY().setFromPoints([G,e])),r=H(new o.mrM({color:t,transparent:!0,opacity:n}));C.add(new o.N1A(s,r))},J=H(new o._4j({color:"#ff7a59",roughness:.35,emissive:new o.Q1f("#ff7a59"),emissiveIntensity:.25})),Z=new o.eaF(O,J);Z.scale.setScalar(.34),Z.position.copy(G),C.add(Z);let K=Y("You",{bg:"rgba(255,122,89,0.95)",fg:"#ffffff",bold:!0});K.position.set(0,2,0),C.add(K);let U=new o.Pq0(n.earth.pos.x,n.earth.pos.y,n.earth.pos.z);X(U,.42,"#3b7bd4",{id:"earth",label:n.earth.label,kindLabel:"Earth",isPerson:!1,isFuture:!1,isNextStep:!1,href:n.earth.href,action:"Explore"},{emissive:"#2a5fae",emissiveIntensity:.18}),$(U,"#3b7bd4",.22);let ee=Y("Earth",{bold:!0});for(let e of(ee.position.copy(U).add(new o.Pq0(0,.62,0)),C.add(ee),n.present)){let t=new o.Pq0(e.pos.x,e.pos.y,e.pos.z),n=e.isPerson?(0,l.XH)(null!=(s=e.seed)?s:e.id):u(e.kind),r=e.isPerson?"Someone you may know":f(e.kind);X(t,e.isPerson?.2:.26,n,{id:e.id,label:e.label,sublabel:e.sublabel,kindLabel:r,href:e.isPerson?void 0:e.href,action:e.isPerson?void 0:"View",isPerson:e.isPerson,isFuture:!1,isNextStep:!1}),$(t,n,.16);let a=Y(e.label);a.position.copy(t).add(new o.Pq0(0,e.isPerson?.4:.46,0)),C.add(a)}let et=[];for(let e of n.future){let t=new o.Pq0(e.pos.x,e.pos.y,e.pos.z),s=u(e.kind);if(X(t,e.isNextStep?.34:.24,s,{id:e.id,label:e.label,sublabel:e.sublabel,kindLabel:f(e.kind),why:e.why,action:null!=(c=p[e.action])?c:e.action,href:e.href,sponsoredBy:null==(r=e.sponsored)?void 0:r.by,isPerson:!1,isFuture:!0,isNextStep:e.isNextStep},e.isNextStep?{emissive:"#ffcf6e",emissiveIntensity:.55}:{opacity:.78,emissiveIntensity:.08}),e.isNextStep){let e=H(new o._4j({color:"#ffd98a",emissive:new o.Q1f("#ffcf6e"),emissiveIntensity:.7,roughness:.3})),s=[];for(let n=1;n<=7;n++){let r=n/8,a=new o.Pq0((G.x+t.x)/2,Math.max(G.y,t.y)+.4,(G.z+t.z)/2),i=G.clone().lerp(a,r),l=a.clone().lerp(t,r),c=i.lerp(l,r),d=new o.eaF(O,e);d.scale.setScalar(.07),d.position.copy(c),C.add(d),s.push(d)}if(et.push({meshes:s,mat:e}),n.nextStep){let e=Y(n.nextStep.headline,{bg:"rgba(255,207,110,0.96)",fg:"#5b3a14",bold:!0});e.position.copy(t).add(new o.Pq0(0,.66,0)),C.add(e)}}else{$(t,s,.1);let n=Y(e.label);n.position.copy(t).add(new o.Pq0(0,.42,0)),C.add(n)}if(e.isNextStep){let n=Y(e.label,{bold:!0});n.position.copy(t).add(new o.Pq0(0,.42,0)),C.add(n)}}if(n.stage){let e=Y(n.stage.label,{bg:"rgba(247,243,237,0.85)",fg:"#5b3a14"});e.position.set(0,.18,1.7),e.scale.multiplyScalar(.85),C.add(e)}let en=new o.tBo,es=new o.I9Y,er=e=>{F.current=e,M(e)},eo=0,ea=0,ei=0,el=e=>{eo=e.clientX,ea=e.clientY,ei=performance.now()},ec=e=>{var t,n;if(k.xr.isPresenting||Math.hypot(e.clientX-eo,e.clientY-ea)>8||performance.now()-ei>600)return;let s=k.domElement.getBoundingClientRect();es.set((e.clientX-s.left)/s.width*2-1,-(2*((e.clientY-s.top)/s.height))+1),en.setFromCamera(es,L);let r=en.intersectObjects(Q.map(e=>e.obj),!1)[0];if(!r)return void er(null);er(null!=(n=null==(t=Q[r.object.userData.hitIndex])?void 0:t.focus)?n:null)};k.domElement.addEventListener("pointerdown",el),k.domElement.addEventListener("pointerup",ec),k.domElement.style.cursor="grab";let ed=!1,eu=!1,ep=setTimeout(()=>{ed||(ed=!0,P(!0))},4500),em=()=>{let e=m.clientWidth||window.innerWidth,t=m.clientHeight||window.innerHeight;k.setSize(e,t),L.aspect=e/t,L.updateProjectionMatrix()};window.addEventListener("resize",em);let ef=()=>{Z.visible=!1,K.visible=!1},eh=()=>{Z.visible=!0,K.visible=!0};k.xr.addEventListener("sessionstart",ef),k.xr.addEventListener("sessionend",eh);let eb=new o.zD7,ex=new o.tBo,ev=new o.Pq0,ew=null;return k.setAnimationLoop(()=>{var e,t;let n=eb.getElapsedTime();
1if(b||(Z.scale.setScalar(.34+.012*Math.sin(1.4*n)),et.forEach(e=>{e.meshes.forEach((e,t)=>{e.scale.setScalar(.07+(.5*Math.sin(1.6*n-.5*t)+.5)*.03)})})),k.xr.isPresenting&&Q.length){let e=k.xr.getCamera();e.getWorldDirection(ev),ex.set(e.getWorldPosition(new o.Pq0),ev);let t=ex.intersectObjects(Q.map(e=>e.obj),!1)[0],n=t?t.object.userData.hitIndex:-1,s=n>=0?Q[n].focus.id:null;s!==ew&&(ew=s,er(n>=0?Q[n].focus:null))}let s=null!=(t=null==(e=F.current)?void 0:e.id)?t:null;for(let e of Q){let t=e.focus.id===s?.6:e.focus.isNextStep?.55:e.focus.isFuture?.08:.12;e.emissive.emissiveIntensity=t}k.xr.isPresenting||_.update(),k.render(C,L),eu||(eu=!0,!ed&&eu&&(ed=!0,P(!0)))}),()=>{var e;for(let t of(clearTimeout(ep),window.removeEventListener("resize",em),k.domElement.removeEventListener("pointerdown",el),k.domElement.removeEventListener("pointerup",ec),k.xr.removeEventListener("sessionstart",ef),k.xr.removeEventListener("sessionend",eh),null==(e=w.current)||e.dispose(),w.current=null,_.dispose(),B))t.dispose();for(let e of z)e.dispose();for(let e of q)e.dispose();j.parentNode&&j.parentNode.removeChild(j),(0,d.NP)(k)}},[]);let O={padding:"8px 13px",borderRadius:999,cursor:"pointer",background:"color-mix(in srgb, var(--paper) 92%, transparent)",border:"1px solid var(--surface-2)",boxShadow:"0 4px 14px rgba(12,59,70,0.14)",font:"800 0.82rem/1 var(--font-sans, system-ui)",color:"var(--water-ink)"};return(0,s.jsxs)("div",{ref:x,className:"xr-host".concat(_?" xr-host--immersive":"").concat(R?" xr-host--fs":""),children:[(0,s.jsxs)("div",{className:"xr-loading".concat(j?" is-ready":""),role:"status","aria-hidden":j,children:[(0,s.jsx)("span",{className:"xr-loading__sun","aria-hidden":"true"}),(0,s.jsx)("p",{className:"xr-loading__text",children:"Stepping into your map…"})]}),!_&&(0,s.jsxs)("a",{href:h,className:"xr-leave","aria-label":"Leave the 3D map and go back",style:{position:"absolute",left:12,top:12,zIndex:7,display:"inline-flex",alignItems:"center",gap:6,padding:"8px 13px",borderRadius:999,textDecoration:"none",background:"color-mix(in srgb, var(--paper) 92%, transparent)",border:"1px solid var(--surface-2)",boxShadow:"0 4px 14px rgba(12,59,70,0.14)",font:"800 0.84rem/1 var(--font-sans, system-ui)",color:"var(--water-ink)"},children:["← ",b]}),!_&&(0,s.jsxs)("div",{style:{position:"absolute",left:12,top:54,zIndex:6,maxWidth:280,padding:"7px 12px",borderRadius:14,background:"color-mix(in srgb, var(--paper) 88%, transparent)",border:"1px solid var(--surface-2)",boxShadow:"0 4px 14px rgba(12,59,70,0.12)",color:"var(--water-ink)",pointerEvents:"none"},children:[(0,s.jsx)("div",{style:{font:"800 0.86rem/1.2 var(--font-sans, system-ui)"},children:"Your map"}),n.growthLine&&(0,s.jsx)("div",{style:{marginTop:3,font:"600 0.74rem/1.3 var(--font-sans, system-ui)",opacity:.8},children:n.growthLine})]}),k&&(0,s.jsx)("div",{className:"xr-host__note",children:(0,s.jsxs)("p",{children:["This browser blocked 3D (WebGL). If you’re on ",(0,s.jsx)("strong",{children:"Brave"}),", tap the Shields icon and turn Shields ",(0,s.jsx)("strong",{children:"down for this site"}),", then reload — it works in Safari, Edge, Chrome, and the Quest browser. Your map is always here in 2D too."]})}),!k&&!_&&(0,s.jsxs)("div",{style:{position:"absolute",right:12,bottom:12,zIndex:7,display:"flex",gap:8},children:[(0,s.jsx)("button",{type:"button",style:O,onClick:Q,"aria-pressed":N,children:N?"Sound on":"Sound off"}),(0,s.jsx)("button",{type:"button",style:O,onClick:B,"aria-pressed":R,children:R?"Exit full screen":"Full screen"})]}),!k&&!D&&(0,s.jsx)("button",{type:"button",className:"xr-enter",onClick:Y,"aria-label":g?"Enter VR":"About VR mode",children:"Enter VR"}),z&&(0,s.jsxs)("div",{className:"xr-vrhint",role:"status",children:[(0,s.jsx)("button",{type:"button",className:"xr-vrhint__x",onClick:W,"aria-label":"Close",children:"\xd7"}),(0,s.jsx)("span",{className:"xr-vrhint__sun","aria-hidden":"true"}),(0,s.jsxs)("p",{className:"xr-vrhint__text",children:[(0,s.jsx)("strong",{children:"Step inside in VR."})," Open this on a Meta\xa0Quest or Apple\xa0Vision\xa0Pro to stand inside your map. For now, drag to look around — you’re welcome here either way."]}),(0,s.jsx)("button",{type:"button",className:"xr-vrhint__ok",onClick:W,children:"Got it"})]}),L&&!_&&(0,s.jsxs)("div",{role:"dialog","aria-label":L.label,style:{position:"absolute",left:"50%",bottom:74,transform:"translateX(-50%)",zIndex:8,width:"min(420px, 92vw)",padding:"14px 16px",borderRadius:16,background:"color-mix(in srgb, var(--paper) 95%, transparent)",border:"1px solid var(--surface-2)",boxShadow:"0 10px 30px rgba(12,59,70,0.22)",color:"var(--water-ink)"},children:[(0,s.jsx)("button",{type:"button",onClick:()=>{F.current=null,M(null)},"aria-label":"Close",style:{position:"absolute",right:8,top:6,border:0,background:"transparent",curs
1or:"pointer",font:"700 1.1rem/1 system-ui",color:"var(--water-ink)",opacity:.6},children:"\xd7"}),L.isNextStep&&n.nextStep&&(0,s.jsx)("p",{style:{margin:"0 0 4px",font:"800 0.74rem/1 var(--font-sans, system-ui)",letterSpacing:"0.04em",textTransform:"uppercase",color:"var(--coral-600, #c8552f)"},children:"Your next step"}),L.sponsoredBy&&(0,s.jsxs)("p",{style:{margin:"0 0 4px",font:"700 0.72rem/1 var(--font-sans, system-ui)",opacity:.7},children:["Sponsored \xb7 ",L.sponsoredBy]}),(0,s.jsx)("p",{style:{margin:0,font:"800 1.02rem/1.25 var(--font-sans, system-ui)"},children:L.label}),(0,s.jsx)("p",{style:{margin:"2px 0 0",font:"600 0.8rem/1.3 var(--font-sans, system-ui)",opacity:.72},children:L.sublabel?"".concat(L.kindLabel," \xb7 ").concat(L.sublabel):L.kindLabel}),L.isNextStep&&(null==(t=n.nextStep)?void 0:t.rationale)&&(0,s.jsx)("p",{style:{margin:"8px 0 0",font:"500 0.84rem/1.4 var(--font-sans, system-ui)"},children:n.nextStep.rationale}),!L.isNextStep&&L.why&&(0,s.jsx)("p",{style:{margin:"8px 0 0",font:"500 0.82rem/1.4 var(--font-sans, system-ui)",opacity:.85},children:L.why}),L.isPerson&&(0,s.jsx)("p",{style:{margin:"8px 0 0",font:"500 0.82rem/1.4 var(--font-sans, system-ui)",opacity:.78},children:"Someone you may know through shared Hottub context. People stay close on your map by how often your paths cross — never ranked."}),L.href&&L.action&&(0,s.jsx)("div",{style:{marginTop:12},children:(0,s.jsxs)("a",{href:function(e){let t=e.startsWith("/cabana/")?"/".concat(e.slice(8)):e;return t.includes("?")?"".concat(t,"&from=my-map-3d"):"".concat(t,"?from=my-map-3d")}(L.href),className:"btn btn-primary btn-sm",children:[L.action," ",L.label," →"]})})]})]})}function f(e){switch(e){case"hottub":return"Hottub";case"subtub":return"subTub";case"soak":return"Soak";case"cabana":case"location":case"business":case"community":return"Cabana";default:return"Connection"}}},31519:(e,t,n)=>{n.d(t,{CK:()=>s,VQ:()=>r,XH:()=>o});let s=["#E05A3A","#F1A23A","#4EA1B0","#B8526E","#6B9F6F","#8856A8","#D17A3E","#5A7BC8"];function r(e){let t=()=>s[Math.floor(Math.random()*s.length)],n=t();if(!e)return n;for(let s=0;s<8&&n===e;s++)n=t();return n}function o(e){let t=0;for(let n=0;n<e.length;n++)t=31*t+e.charCodeAt(n)>>>0;return s[t%s.length]}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.