1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[212],{21212:function(e,t,r){r.r(t),r.d(t,{default:function(){return gl}});var n,a,o=r(57437),s=r(85853),i=r(3852),u=r(96531),l=r(14119),c=r(20021),d=r(19253),p=r(92373),g=r(87961),h=r(2265),m=r(60230),f=r(76505),v=r(22409);function _templateObject(){let e=(0,m._)(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 1;\n background: transparent;\n pointer-events: none;\n"]);return _templateObject=function(){return e},e}let x=v.ZP.svg.withConfig({displayName:"index.style__CanvasMaskSvgStyle",componentId:"sc-24813f97-0"})(_templateObject());var ui_CanvasMask=e=>{let{field:t,onClick:r,children:n,sheet:a,...m}=e,f=(0,h.useRef)(),v=(0,h.useRef)(),[y,R]=(0,h.useState)(!1),w=(0,u.w)(e=>e.currentScene),b=(0,u.w)(e=>e.maskActive),_=(0,u.w)(e=>e.canvasMaskElement);(0,h.useEffect)(()=>{R(w===c.Y.INTRO)},[w]),(0,h.useEffect)(()=>{R(b)},[b]);let j=(0,d.Mi)(a,"IntroScene"),S=(0,h.useRef)(0),M=(0,h.useRef)(0),T=(0,h.useRef)(0),E=(0,h.useRef)(0),P=(0,h.useRef)(1),C=(0,h.useRef)({x:0,y:0}),k=(0,d.l7)(j,"Mask",{bounds:p.types.compound({x:p.types.number(0,{nudgeMultiplier:.01,range:[0,1]}),y:p.types.number(0,{nudgeMultiplier:.01,range:[0,1]})})});(0,d.GT)(k,e=>{f.current&&(C.current.x=e.bounds.x,C.current.y=e.bounds.y,G())});let G=(0,h.useCallback)(()=>{if(!f.current)return;let e=window.innerWidth,t=window.innerHeight,r=(e-T.current)/2,n=(t-E.current)/2;f.current.setAttribute("x",r),f.current.setAttribute("y",n),f.current.setAttribute("width",T.current),f.current.setAttribute("height",E.current),v.current&&(v.current.setAttribute("x",r),v.current.setAttribute("y",n),v.current.setAttribute("width",T.current),v.current.setAttribute("height",E.current),S.current=_.clientWidth,M.current=_.clientHeight,T.current=(0,i.hZ)(C.current.x,0,1,S.current*P.current,window.innerWidth),E.current=(0,i.hZ)(C.current.y,0,1,M.current,window.innerHeight))},[C,_,P]);(0,s.w)(()=>{G()},0,[]);let I=(0,l.o)(e=>e.loaderComplete);return(0,h.useEffect)(()=>{I&&g.p8.fromTo(P,{current:.75},{current:1,duration:1.85,ease:"power4.out",delay:2.75,onUpdate:()=>{G()}})},[I,P,G]),(0,o.jsx)(o.Fragment,{children:y&&(0,o.jsx)(o.Fragment,{children:(0,o.jsx)(x,{viewBox:"0 0 0 0",children:(0,o.jsxs)("defs",{children:[(0,o.jsx)("clipPath",{id:"canvas-mask",children:(0,o.jsx)("rect",{ref:f,rx:"5",stroke:"red"})}),(0,o.jsxs)("mask",{id:"canvas-mask-invert",children:[(0,o.jsx)("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:"white"}),(0,o.jsx)("rect",{ref:v,rx:"5",fill:"black"})]})]})})})})},y=r(78999),R=r(70875),w=r(7075),b=r(34894),_=r(37633),j=r(25250);function index_style_templateObject(){let e=(0,m._)(["\n position: fixed;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n"]);return index_style_templateObject=function(){return e},e}function _templateObject1(){let e=(0,m._)(["\n svg {\n transform: scale(",");\n\n transition: transform 0.8s ",";\n }\n"]);return _templateObject1=function(){return e},e}function _templateObject2(){let e=(0,m._)(["\n background-color: ",";\n padding: 0.8rem 1.6rem;\n width: max-content;\n position: absolute;\n bottom: 0;\n left: 50%;\n transform: translateX(-50%) translateY(",") scale(",");\n border-radius: ",";\n opacity: ",";\n\n transition:\n opacity 0.4s ",",\n transform 0.4s ",";\n"]);return _templateObject2=function(){return e},e}let S=v.ZP.div.withConfig({displayName:"index.style__QRCursorStyle",componentId:"sc-5bc1b3a3-0"})(index_style_templateObject()),M=v.ZP.div.withConfig({displayName:"index.style__QRInner",componentId:"sc-5bc1b3a3-1"})(_templateObject1(),e=>{let{$hover:t}=e;return t?2.5:1},_._.outExpo),T=v.ZP.div.withConfig({displayName:"index.style__QRCTA",componentId:"sc-5bc1b3a3-2"})(_templateObject2(),b.O.canary,e=>{let{$hover:t}=e;return t?"11rem":"2em"},e=>{let{$hover:t}=e;return t?1:.5},(0,f.hO)(999),e=>e.$hover&&!e.$hidden?1:0,_._.out,_._.out),E=(0,h.forwardRef)((e,t)=>{let r=(0,h.useRef)(),n=(0,h.useRef)(),a=(0,h.useRef)({speed:.2,pos:{x:0,y:0},lerped:{x:0,y:0},velocity:{x:0,y:0}});return(0,h.useEffect)(()=>{let t=window.matchMedia("(max-width: ".concat(R.A.$tabletL,"px)"));if(t.matches){g.p8.set(r.current,{opacity:0}
1);return}g.p8.to(r.current,{duration:.5,opacity:e.active?1:0,ease:"none"})},[e.active]),(0,h.useImperativeHandle)(t,()=>({setMouseCoords(e,t){a.current.pos.x=e,a.current.pos.y=t}}),[]),(0,h.useEffect)(()=>{let animate=()=>{e=requestAnimationFrame(animate);let t=a.current;t.velocity.x=t.pos.x-t.lerped.x,t.velocity.y=t.pos.y-t.lerped.y,t.lerped.x+=t.velocity.x*t.speed,t.lerped.y+=t.velocity.y*t.speed,g.p8.set(r.current,{x:t.lerped.x,y:t.lerped.y})},e=requestAnimationFrame(animate);return()=>{cancelAnimationFrame(e)}},[]),(0,o.jsx)(o.Fragment,{children:(0,o.jsx)(y._.In,{children:(0,o.jsx)("div",{ref:r,style:{position:"absolute",top:0,left:0,width:"8rem",height:"8rem"},children:(0,o.jsx)("div",{style:{top:0,left:0,width:"100%",height:"100%",backgroundColor:"rgba(255, 0, 0, 0)",display:"flex",justifyContent:"center",alignItems:"center",transform:"translate(-50%, -50%)"},children:(0,o.jsxs)(M,{$hover:e.hover,children:[(0,o.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"228",height:"228",viewBox:"0 0 228 228",fill:"none",children:(0,o.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M0 199.47H6V214C6 218.418 9.58172 222 14 222H28.5299V228H14C6.26801 228 0 221.732 0 214V199.47ZM0 28.5299H6V14C6 9.58172 9.58172 6 14 6H28.5299V0H14C6.26801 0 0 6.26801 0 14V28.5299ZM199.47 0V6H214C218.418 6 222 9.58172 222 14V28.5299H228V14C228 6.26801 221.732 0 214 0H199.47ZM228 199.47H222V214C222 218.418 218.418 222 214 222H199.47V228H214C221.732 228 228 221.732 228 214V199.47Z",fill:"#FAD148"})}),(0,o.jsx)(T,{ref:n,$hover:e.hover,$hidden:e.hideCaption,children:(0,o.jsx)(w.YS,{children:"Click to scan"})})]})})})})})});E.displayName="QRCursorR3f";let QRCursor=e=>{let{field:t,onClick:r,children:n,...a}=e,s=(0,h.useRef)();return(0,o.jsx)(S,{ref:s,children:(0,o.jsx)(y._.Out,{})})};function SceneActions_index_style_templateObject(){let e=(0,m._)(["\n position: absolute;\n display: flex;\n justify-content: center;\n gap: ",";\n bottom: ",";\n left: 0;\n width: 100%;\n color: gray;\n z-index: 100;\n pointer-events: auto;\n"]);return SceneActions_index_style_templateObject=function(){return e},e}QRCursor.displayName="QRCursor";let P=v.ZP.div.withConfig({displayName:"index.style__ActionsStyle",componentId:"sc-b89300bf-0"})(SceneActions_index_style_templateObject(),(0,f.hO)(5),(0,f.uZ)(40,120));var ui_SceneActions=e=>{let{field:t,onClick:r,children:n,...a}=e,s=(0,u.w)(e=>e.setCurrentScene),i=(0,u.w)(e=>e.currentScene),l=(0,h.useRef)();return(0,h.useEffect)(()=>{l.current.value=i},[i]),(0,o.jsx)(P,{ref:l,onChange:e=>{e.preventDefault(),s(e.target.value)},children:(0,o.jsx)(y.N.Out,{})})},C=r(45872),k=r(25669),G=r(47832),I=r(16154),A=r(84100),V=r(13669),L=r(76375);let O=new Worker("/image-worker.js");async function loadImage(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"none";return new Promise((r,n)=>{O.addEventListener("message",t=>{if(t.data.src!==e)return;let n=new L.Texture(t.data.bitmap);n.needsUpdate=!0,r(n)}),O.postMessage({src:e,imageOrientation:t})})}var B=r(42860);function useTextureWorker(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"none",{gl:r}=(0,B.D)(),[n,a]=(0,h.useState)(null),o=(0,V._)(e=>e.addTotalAssets),s=(0,V._)(e=>e.addLoadedAssets);return(0,h.useEffect)(()=>{o(),loadImage(e,t).then(e=>{r.initTexture(e),a(e),s()}).catch(e=>{console.error("Failed to load texture",e),o(-1)})},[e,r,t,o,s]),n}let Y="/assets",U=(0,h.forwardRef)((e,t)=>{let getTexturePath=(e,t)=>"uv"===t?"".concat(Y,"/uv-test.png"):"".concat(Y,"/").concat(e,".").concat(t);!function(){let e=(0,V._)(e=>e.totalAssets),t=(0,V._)(e=>e.loadedAssets),r=(0,V._)(e=>e.setLoadedProgress);(0,h.useEffect)(()=>{let n=e>0?t/e:0;r(n)},[t,e,r])}();let r=useTextureWorker(getTexturePath("models/polestar/shadow","webp"),"flipY"),n=useTextureWorker(getTexturePath("models/convertible/shadow","webp"),"flipY"),a=useTextureWorker(getTexturePath("models/suv/shadow","webp"),"flipY"),s=useTextureWorker(getTexturePath("headlights","png")),i=useTextureWorker(getTexturePath("backlights","png")),u=(0,V._)(e=>e.setConvertableShadow),l=(0,V._)(e=>e.setPolestarShadow),c=(0,V._)(e=>e.setSUVShadow),d=(0,V._)(e=>e.setHeadLightsMap),p=(0,V._)(e=>e.setBackLightsMap),g=(0,V._)(e=>e.setIntroAssetsLoaded);(0,h.useEffect)(()=>
1{l(r)},[r,l]),(0,h.useEffect)(()=>{u(n)},[n,u]),(0,h.useEffect)(()=>{c(a)},[a,c]),(0,h.useEffect)(()=>{d(s)},[s,d]),(0,h.useEffect)(()=>{p(i)},[i,p]),(0,h.useEffect)(()=>{r&&n&&a&&s&&i&&setTimeout(()=>{g(!0)},200)},[g,r,n,a,s,i]);let m=useTextureWorker(getTexturePath("arrow","png")),f=(0,V._)(e=>e.setArrowMap);(0,h.useEffect)(()=>{f(m)},[m,f]);let v=(0,h.useMemo)(()=>({road:getTexturePath("models/garage-01/images/".concat(e.device,"/Road"),"webp"),buildings:getTexturePath("models/garage-01/images/".concat(e.device,"/Garage"),"webp"),gate:getTexturePath("models/garage-01/images/".concat(e.device,"/Gate"),"webp"),signs:getTexturePath("models/garage-01/images/".concat(e.device,"/Signs"),"webp"),pavement:getTexturePath("models/garage-01/images/".concat(e.device,"/Pavements"),"webp"),dynamicSign:e.signOne,driveInSign:e.driveIn,driveOutSign:e.driveOut}),[e.device,e.signOne,e.driveIn,e.driveOut]),x=useTextureWorker(v.road),y=useTextureWorker(v.buildings),R=useTextureWorker(v.gate),w=useTextureWorker(v.signs),b=useTextureWorker(v.pavement),_=useTextureWorker(v.dynamicSign),j=useTextureWorker(v.driveInSign),S=useTextureWorker(v.driveOutSign),M=(0,V._)(e=>e.setGarage01RoadMap),T=(0,V._)(e=>e.setGarage01buildingsMap),E=(0,V._)(e=>e.setGarage01gateMap),P=(0,V._)(e=>e.setGarage01SignsMap),C=(0,V._)(e=>e.setGarage01PavementMap),k=(0,V._)(e=>e.setGarage01DynamicSignMap),G=(0,V._)(e=>e.setGarage01DriveInSignMap),I=(0,V._)(e=>e.setGarage01DriveOutSignMap);(0,h.useEffect)(()=>{M(x)},[x,M]),(0,h.useEffect)(()=>{T(y)},[y,T]),(0,h.useEffect)(()=>{E(R)},[R,E]),(0,h.useEffect)(()=>{P(w)},[w,P]),(0,h.useEffect)(()=>{C(b)},[b,C]),(0,h.useEffect)(()=>{k(_)},[_,k]),(0,h.useEffect)(()=>{G(j)},[j,G]),(0,h.useEffect)(()=>{I(S)},[S,I]);let A=useTextureWorker(getTexturePath("models/qr/images/".concat(e.device,"/Garage"),"webp")),L=(0,V._)(e=>e.setQRMap),O=useTextureWorker(getTexturePath("models/qr/images/".concat(e.device,"/Sign"),"webp")),B=(0,V._)(e=>e.setQRSignMap);(0,h.useEffect)(()=>{L(A)},[A,L]),(0,h.useEffect)(()=>{B(O)},[O,B]);let U=(0,h.useMemo)(()=>({road:getTexturePath("models/garage-02/images/".concat(e.device,"/Road"),"webp"),buildings:getTexturePath("models/garage-02/images/".concat(e.device,"/Garage"),"webp"),signs:getTexturePath("models/garage-02/images/".concat(e.device,"/Signs"),"webp"),dynamicSign:e.signTwo,outsideSign:e.outsideSign,insideSign:e.insideSign}),[e.device,e.signTwo,e.outsideSign,e.insideSign]),N=useTextureWorker(U.road),z=useTextureWorker(U.buildings),W=useTextureWorker(U.signs),D=useTextureWorker(U.dynamicSign),Q=useTextureWorker(U.outsideSign),F=useTextureWorker(U.insideSign),H=(0,V._)(e=>e.setGarage02RoadMap),q=(0,V._)(e=>e.setGarage02buildingsMap),Z=(0,V._)(e=>e.setGarage02SignsMap),$=(0,V._)(e=>e.setGarage02DynamicSignMap),K=(0,V._)(e=>e.setGarage02OutsideSignMap),X=(0,V._)(e=>e.setGarage02InsideSignMap);return(0,h.useEffect)(()=>{H(N)},[N,H]),(0,h.useEffect)(()=>{q(z)},[z,q]),(0,h.useEffect)(()=>{Z(W)},[W,Z]),(0,h.useEffect)(()=>{$(D)},[D,$]),(0,h.useEffect)(()=>{K(Q)},[Q,K]),(0,h.useEffect)(()=>{X(F)},[F,X]),(0,o.jsx)(o.Fragment,{})});U.displayName="Assets";let N={ADD:"Additive",AVERAGE:"Average",COLOR_BURN:"ColorBurn",COLOR_DODGE:"ColorDodge",DARKEN:"Darken",DIFFERENCE:"Difference",DIVIDE:"Divide",EXCLUSION:"Exclusion",HARD_LIGHT:"HardLight",HUE:"Hue",LIGHTEN:"Lighten",LINEAR_BURN:"LinearBurn",LINEAR_DODGE:"LinearDodge",LINEAR_LIGHT:"LinearLight",MULTIPLY:"Multiply",NEGATION:"Negation",NORMAL:"Normal",OVERLAY:"Overlay",PHOENIX:"Phoenix",PIN_LIGHT:"PinLight",REFLECT:"Reflect",SATURATION:"Saturation",SCREEN:"Screen",SOFT_LIGHT:"SoftLight",SUBTRACT:"Subtract",VIVID_LIGHT:"VividLight"};var z=r(48467),W=r(64974),D=r(80030),Q=r(21222),F=r(24972),H=r(60217);r(77393);var q=r(92518);let BlurMaterial=class BlurMaterial extends L.RawShaderMaterial{constructor(e=new L.Vector2(.5,.5)){super({glslVersion:L.GLSL3,uniforms:{tMap:{value:null},uBlurAmount:{value:1},uDirection:{value:e},uResolution:{value:new L.Vector2}},vertexShader:"\n in vec3 position;\n in vec2 uv;\n \n out vec2 vUv;\n \n void main() {\n vUv = uv;
1\n gl_Position = vec4(position, 1.0);\n }\n ",fragmentShader:"\n precision highp float;\n \n uniform sampler2D tMap;\n uniform float uBlurAmount;\n uniform vec2 uDirection;\n uniform vec2 uResolution;\n \n in vec2 vUv;\n \n out vec4 FragColor;\n \n ".concat("\nvec4 blur(sampler2D image, vec2 uv, vec2 resolution, vec2 direction) {\n vec4 sum = vec4(0.0);\n\n vec2 texcoord = 1.0 / resolution;\n\n sum += texture(image, uv - 4.0 * texcoord * direction) * 0.051;\n sum += texture(image, uv - 3.0 * texcoord * direction) * 0.0918;\n sum += texture(image, uv - 2.0 * texcoord * direction) * 0.12245;\n sum += texture(image, uv - 1.0 * texcoord * direction) * 0.1531;\n sum += texture(image, uv) * 0.1633;\n sum += texture(image, uv + 1.0 * texcoord * direction) * 0.1531;\n sum += texture(image, uv + 2.0 * texcoord * direction) * 0.12245;\n sum += texture(image, uv + 3.0 * texcoord * direction) * 0.0918;\n sum += texture(image, uv + 4.0 * texcoord * direction) * 0.051;\n\n return sum;\n}\n","\n \n void main() {\n FragColor = blur(tMap, vUv, uResolution, uBlurAmount * uDirection);\n }\n "),blending:L.NoBlending,depthTest:!1,depthWrite:!1})}};let BlurPassImpl=class BlurPassImpl extends q.Qm{update(e,t,r){super.update(e,t,r),this.hBlurMaterial.uniforms.tMap.value=t.texture,this.screen.material=this.hBlurMaterial,e.setRenderTarget(this.renderTargetBlurA),e.render(this.screen,this.screenCamera),this.vBlurMaterial.uniforms.tMap.value=this.renderTargetBlurA.texture,this.screen.material=this.vBlurMaterial,e.setRenderTarget(this.renderTargetBlurB),e.render(this.screen,this.screenCamera),this.uniforms.get("tMap").value=this.renderTargetBlurB.texture}setSize(e,t){let r=this.resolution;r.setBaseSize(e,t),e=Math.round(e*this.blurResolutionScale),t=Math.round(t*this.blurResolutionScale),this.renderTargetBlurA.setSize(e,t),this.renderTargetBlurB.setSize(e,t),this.hBlurMaterial.uniforms.uResolution.value.set(e,t),this.vBlurMaterial.uniforms.uResolution.value.set(e,t)}constructor(e){super("BlurPass","\nuniform sampler2D tMap;\nvoid mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {\n outputColor = texture(tMap, uv);\n}\n",{uniforms:new Map([["tMap",new L.Uniform(null)],["uResolution",new L.Uniform(new L.Vector2)],["uDirection",new L.Uniform(new L.Vector2(.5,.5))],["uStrength",new L.Uniform(2.5)]])});let t=new L.Vector2(1,0),r=new L.Vector2(0,1),n=function(){let e=new L.BufferGeometry;return e.setAttribute("position",new L.Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3)),e.setAttribute("uv",new L.Float32BufferAttribute([0,2,0,0,2,0],2)),e}();this.screenCamera=new L.OrthographicCamera(-1,1,1,-1,0,1),this.screen=new L.Mesh(n),this.screen.frustumCulled=!1,this.blurAmount=4,this.blurResolutionScale=.5,this.renderTargetBlurA=new L.WebGLRenderTarget(1,1,{depthBuffer:!1}),this.renderTargetBlurB=new L.WebGLRenderTarget(1,1,{depthBuffer:!1}),this.hBlurMaterial=new BlurMaterial(t),this.hBlurMaterial.uniforms.uBlurAmount.value=this.blurAmount,this.vBlurMaterial=new BlurMaterial(r),this.vBlurMaterial.uniforms.uBlurAmount.value=this.blurAmount;let a=this.resolution=new q.GV(this,q.GV.AUTO_SIZE,q.GV.AUTO_SIZE,.5);a.addEventListener("change",e=>this.setSize(a.baseWidth,a.baseHeight)),this.gl=e}};let Z=(0,h.forwardRef)((e,t)=>{let{param:r}=e,{gl:n,size:a}=(0,B.D)(),s=(0,h.useMemo)(()=>new BlurPassImpl(n),[n,a]);return(0,o.jsx)("primitive",{ref:t,object:s,dispose:null})});Z.displayName="BlurPass";var $="\nvec3 adjustBrightness(vec3 color, float value) {\n return color + value;\n}\n",K=r(38946);let X="\n ".concat($,"\n ").concat(K.Z,"\n \n uniform sampler2D tIntro;\n\n uniform sampler2D tGarage01Take01;\n uniform sampler2D tGarage01Take02;\n\n uniform sampler2D tQr;\n uniform sampler2D tQrOverlay;\n uniform sampler2D tGarage02Take01;\n uniform sampler2D tGarage02Take02;\n uniform sampler2D tReceiptPanel;\n\n uniform vec3 uRevealIntro;\n uniform vec3 uRevealGarage01Take01;\n uniform vec3 uRevealGarage01Take02;\n uniform vec3 uRevealReceiptPanel;\n uniform vec3 uRevealQR;\n uniform vec3 uRevealQROverlay;\n uniform vec3 uRevealGarage02Take01;\n uniform vec3 uRevealGarage02Take02;\n uniform float uReveal;\n\n vec3 reveal(vec3 fromTex, vec3 toTex, vec3 reveal, vec2 uv) {\n float revealDirection = reveal.z >= 0.5 ? uv.y : 1. - uv.y;\n float revealEdgeOffset = mix(-reveal.y, reveal.y, reveal.x);\n return mix(fromTex, toTex, 1. - smoothstep(reveal.x - reveal.y + revealEdgeOffset, reveal.x + reveal.y + revealEdgeOffset, revealDirection));\n }\n\n vec4 scaleUvTexture(sampler2D tex, vec2 uv, float scale) {\n vec2 scaledUv = uv;\n\n // scale from center\n scaledUv -= 0.5;\n scaledUv *= scale;\n scaledUv += 0.5;\n\n return texture(tex, scaledUv);\n }\n\n void mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {\n vec3 mixed = vec3(0.0);\n\n vec4 intro = scaleUvTexture(tIntro, uv, uRevealIntro.y);\n vec4 garage01take01 = scaleUvTexture(tGarage01Take01, uv, uRevealGarage01Take01.y);\n vec4 garage01take02 = scaleUvTexture(tGarage01Take02, uv, uRevealGarage01Take02.y);\n vec4 receiptPanel = scaleUvTexture(tReceiptPanel, uv, uRevealReceiptPanel.y);\n\n vec4 qr = scaleUvTexture(tQr, uv, uRevealQR.y);\n vec4 qrOverlay = scaleUvTexture(tQrOverlay, uv, uRevealQROverlay.y);\n vec4 garage02take01 = scaleUvTexture(tGarage02Take01, uv, uRevealGarage02Take01.y);\n vec4 garage02take02 = scaleUvTexture(tGarage02Take02, uv, uRevealGarage02Take02.y);\n\n vec3 black = vec3(0.035);\n\n mixed = mix(black.rgb, intro.rgb, uRevealIntro.x);\n mixed = mix(mixed.rgb, garage01take01.rgb, uRevealGarage01Take01.x);\n mixed = mix(mixed.rgb, qr.rgb, uRevealQR.x);\n mixed = mix(mixed.rgb, qrOverlay.rgb, uRevealQROverlay.x);\n mixed = mix(mixed.rgb, garage01take02.rgb, uRevealGarage01Take02.x);\n mixed = mix(mixed.rgb, receiptPanel.rgb, uRevealReceiptPanel.x);\n mixed = mix(mixed.rgb, garage02take01.rgb, uRevealGarage02Take01.x);\n mixed = mix(mixed.rgb, garage02take02.rgb, uRevealGarage02Take02.x);\n\n mixed = mix(vec3(1.), mixed.rgb, uReveal);\n\n mixed = max(mixed, black);\n vec4 color = vec4(mixed, 1.0);\n\n color.rgb = adjustContrast(color.rgb, 1.06);\n \n outputColor = color;\n }\n");let SceneTransition=class SceneTransition extends q.Qm{constructor(){super("SceneTransition",X,{uniforms:new Map([["tIntro",new L.Uniform(null)],["tGarage01Take01",new L.Uniform(null)],["tGarage01Take02",new L.Uniform(null)],["tReceiptPanel",new L.Uniform(null)],["tQr",new L.Uniform(null)],["tQrOverlay",new L.Uniform(null)],["tGarage02Take01",new L.Uniform(null)],["tGarage02Take02",new L.Uniform(null)],["uRevealIntro",new L.Uniform(new L.Vector3(0,.05,0))],["uRevealGarage01Take01",new L.Uniform(new L.Vector3(0,.05,0))],["uRevealGarage01Take02",new L.Uniform(new L.Vector3(0,.05,0))],["uRevealReceiptPanel",new L.Uniform(new L.Vector3(0,.05,0))],["uRevealQR",new L.Uniform(new L.Vector3(0,.05,0))],["uRevealQROverlay",new L.Uniform(new L.Vector3(0,.05,0))],["uRevealGarage02Take01",new L.Uniform(new L.Vector3(0,.05,0))],["uRevealGarage02Take02",new L.Uniform(new L.Vector3(0,.05,0))],["uReveal",new L.Uniform(0)]])})}};let J=L.MathUtils.generateUUID();var ee=(0,h.forwardRef)(function(e,t){let{pass:r}=e;(0,B.D)(e=>e.gl),(0,B.D)(e=>e.size);let n=(0,h.useMemo)(()=>new SceneTransition(r),[r]);return(0,o.jsx)("primitive",{ref:t,object:n})});let et=(0,h.memo)(e=>{let{sheet:t}=e,r=(0,B.D)(e=>e.gl),n=(0,B.D)(e=>e.size),[a,s]=(0,h.useState)(c.Y.INTRO),i=(0,d.Mi)(t,"Global"),[l,m]=(0,h.useState)(q.YQ.SCREEN),[f,v]=(0,h.useState)(.25),[x,y]=(0,h.useState)(.05),[R,w]=(0,h.useState)(.5),[b,_]=(0,h.useState)(0),[j,S]=(0,h.useState)(0),M=(0,h.useRef)(),T=(0,h.useRef)(),E=(0,d.l7)(i,"Post Processing",{noise:{blendMode:p.types.stringLiteral(q.YQ.SCREEN,{...N}),opacity:p.types.number(f,{nudgeMultiplier:.01,range:[0,1]})},vignette:{offset:p.types.number(x,{nudgeMultiplier:.01,range:[0,1]}),darkness:p.types.number(R,{nudgeMultiplier:.01,range:[0,1]})},brightness:p.types.number(b,{nudgeMultiplier:.01,range:[-1,1]}),contrast:p.types.number(j,{nudgeMultiplier:.01,range:[-1,1]})});(0,d.GT)(E,e=>{e.noise.blendMode!==l&&m(q.YQ[e.noise.blendMode]),e.noise.opacity!==f&&v(e.noise.opacity),e.vignette.offset!==x&&y(e.vignette.offset),e.vignette.darkness!==R&&w(e.vignette.darkness),e.brightness!==b&&_(e.brightness),e.contrast!==j&&S(e.contrast)},[r,n]);
1let P=(0,u.w)(e=>e.sceneIntro),C=(0,u.w)(e=>e.sceneGarage01Take01),k=(0,u.w)(e=>e.sceneGarage01Take02),G=(0,u.w)(e=>e.sceneReceiptPanel),I=(0,u.w)(e=>e.sceneQr),A=(0,u.w)(e=>e.sceneQrOverlay),L=(0,u.w)(e=>e.sceneGarage02Take01),O=(0,u.w)(e=>e.sceneGarage02Take02),Y=(0,V._)(e=>e.introAssetsLoaded);(0,h.useEffect)(()=>{g.p8.to(M.current.uniforms.get("uReveal"),{value:1,duration:1,delay:.5,ease:"none"})},[Y]),(0,h.useEffect)(()=>{P.current&&(M.current.uniforms.get("tIntro").value=P.current.texture),C.current&&(M.current.uniforms.get("tGarage01Take01").value=C.current.texture),k.current&&(M.current.uniforms.get("tGarage01Take02").value=k.current.texture),G.current&&(M.current.uniforms.get("tReceiptPanel").value=G.current.texture),I.current&&(M.current.uniforms.get("tQr").value=I.current.texture),A.current&&(M.current.uniforms.get("tQrOverlay").value=A.current.texture),L.current&&(M.current.uniforms.get("tGarage02Take01").value=L.current.texture),O.current&&(M.current.uniforms.get("tGarage02Take02").value=O.current.texture)},[P,C,k,G,L,O,I,A,r,n]);let U=(0,u.w)(e=>e.currentScene),Z=(0,u.w)(e=>e.setEndSceneReveal),$=(0,h.useRef)();function revealScene(e){let t=a===e;s(e),$.current&&$.current.kill(),$.current=g.p8.timeline({onComplete:()=>{Z(e)}});let r=[{id:c.Y.INTRO,scene:"uRevealIntro"},{id:c.Y.GARAGE_01_TAKE_01,scene:"uRevealGarage01Take01"},{id:c.Y.GARAGE_01_TAKE_02,scene:"uRevealGarage01Take02"},{id:c.Y.RECEIPT_PANEL,scene:"uRevealReceiptPanel"},{id:c.Y.QR,scene:"uRevealQR"},{id:c.Y.QR_OVERLAY,scene:"uRevealQROverlay"},{id:c.Y.GARAGE_02_TAKE_01,scene:"uRevealGarage02Take01"},{id:c.Y.GARAGE_02_TAKE_02,scene:"uRevealGarage02Take02"}];r.forEach(r=>{let n=e===c.Y.QR_OVERLAY&&r.id===c.Y.QR||e===c.Y.RECEIPT_PANEL&&r.id===c.Y.GARAGE_01_TAKE_02,a=e===c.Y.QR_OVERLAY||e===c.Y.RECEIPT_PANEL;$.current.to(M.current.uniforms.get(r.scene).value,{x:r.id===e||n?1:0,duration:t?0:1.2,delay:e!==r.id||a?0:1.2,ease:"linear"},"0"),$.current.to(M.current.uniforms.get(r.scene).value,{y:r.id===e||n?1:.9,duration:t?0:1.2,delay:e!==r.id||a?0:1.2,ease:r.id===e||n?"power3.out":"power3.in"},"0")})}return(0,h.useLayoutEffect)(()=>{switch(U){case c.Y.INTRO:revealScene(c.Y.INTRO);break;case c.Y.GARAGE_01_TAKE_01:revealScene(c.Y.GARAGE_01_TAKE_01);break;case c.Y.GARAGE_01_TAKE_02:revealScene(c.Y.GARAGE_01_TAKE_02);break;case c.Y.RECEIPT_PANEL:revealScene(c.Y.RECEIPT_PANEL);break;case c.Y.QR:revealScene(c.Y.QR);break;case c.Y.QR_OVERLAY:revealScene(c.Y.QR_OVERLAY);break;case c.Y.GARAGE_02_TAKE_01:revealScene(c.Y.GARAGE_02_TAKE_01);break;case c.Y.GARAGE_02_TAKE_02:revealScene(c.Y.GARAGE_02_TAKE_02)}},[U,r,n]),(0,o.jsxs)(z.x,{multisampling:0,disableNormalPass:!1,stencilBuffer:!1,children:[(0,o.jsx)(ee,{ref:M},J),(0,o.jsx)(W.V,{offset:[25e-7,25e-7]}),(0,o.jsx)(D.F,{brightness:b,contrast:j}),(0,o.jsx)(Q.s,{eskil:!1,offset:x,darkness:R}),(0,o.jsx)(F.g,{ref:T}),(0,o.jsx)(H.d,{kernelSize:q.DD.HUGE,resolutionX:256,resolutionY:256,intensity:.0015,luminanceThreshold:.95,luminanceSmoothing:.05})]})});et.displayName="Post";var er=r(89339),en=r(28437),ea=r(26993),eo=r(93873),es=r(5214),ei=r(48844),eu=r(78342);let el="/assets/models/convertible/body-black.glb",ec="/assets/models/convertible/body-color.glb",ed="/assets/models/convertible/lights.glb",ep=(0,h.forwardRef)((e,t)=>{let{sheet:r,...n}=e,{nodes:a}=(0,ei.L)(ed),s=(0,h.useRef)(),i=(0,h.useRef)(),u=(0,h.useRef)(),l=(0,h.useRef)(),c=(0,h.useRef)(),d=(0,h.useRef)(),p=(0,h.useRef)(),g=(0,h.useRef)(),m=(0,h.useRef)(),f=(0,h.useRef)();(0,es.z)(r,s,[i,u,l,c],t),(0,eo._)(t,p,g,m,f,[i,u,l,c],3);let v=(0,V._)(e=>e.convertibleShadow),x=(0,V._)(e=>e.headLightsMap),y=(0,V._)(e=>e.backLightsMap);return(0,er.G)(v,d),(0,er.G)(x,m),(0,er.G)(y,f),(0,o.jsx)("group",{...n,children:(0,o.jsx)("group",{ref:s,dispose:null,children:(0,o.jsxs)("group",{position:[-1.1,0,0],children:[(0,o.jsxs)("mesh",{position:[2,0,-.05],rotation:[-Math.PI/2,0,0],children:[(0,o.jsx)("planeGeometry",{args:[10.6868*8.03,7.70772*8.03]}),(0,o.jsx)("meshStandardMaterial",{ref:d,transparent:!0,opacity:.975,depthWrite:!1})]}),(0,o.jsxs)("mesh",{position:[65,0,0],rotation:[-Math.PI/2,0,-Math.PI],children:[(0,o.jsx)("planeGeometry",{args:[10.6868*8.03,10.6868*8.03]}),(0,o.jsx)("meshStandardMaterial",{ref:f,transparent:!0,opacity:.25,blending:2,depthWrite:!1})]}),(0,o.jsxs)("mesh",{position:[-55,0,0],rotation:[-Math.PI/2,0,0],children:[(0,o.jsx)("planeGeometry",{args:[10.6868*9.03,10.6868*9.03]}),(0,o.jsx)("meshStandardMaterial",{ref:m,transparent:!0,opacity:.25,blending:2,depthWrite:!1})]}),(0,o.jsxs)("group",{position:[2,-.1,0],children:[(0,o.jsxs)("group",{position:[-2,0,-.5],rotation:[0,Math.PI/2,0],children:[(0,o.jsx)(ConvertibleBlack,{}),(0,o.jsx)(ConvertibleColor,{}),(0,o.jsx)("mesh",{geometry:a.Back.geometry,position:[0,0,.01],children:(0,o.jsx)("meshStandardMaterial",{ref:g,color:[255,0,0],emissive:[255,0,0],emissiveIntensity:1,transparent:!0,opacity:0}
1)}),(0,o.jsx)("mesh",{geometry:a.Front.geometry,position:[0,0,-.05],children:(0,o.jsx)("meshStandardMaterial",{ref:p,emissive:[255,255,255],emissiveIntensity:0,transparent:!0,opacity:0})})]}),(0,o.jsx)(eu.A,{ref:i,position:[-17.6703,3.90838,7.511]}),(0,o.jsx)(eu.A,{ref:l,position:[12.1486,3.90838,7.511]}),(0,o.jsx)(eu.A,{ref:u,position:[-17.6703,3.90838,-8.4511],rotation:[0,Math.PI,0]}),(0,o.jsx)(eu.A,{ref:c,position:[12.1486,3.90838,-8.4511],rotation:[0,Math.PI,0]})]})]})})})});function ConvertibleBlack(e){let{nodes:t,materials:r}=(0,ei.L)(el);return(0,ea.a)(r),(0,o.jsx)("group",{...e,dispose:null,children:(0,o.jsx)("mesh",{castShadow:!0,receiveShadow:!0,geometry:t.RT_Blackout.geometry,material:r.PaletteMaterial001})})}function ConvertibleColor(e){let{nodes:t,materials:r}=(0,ei.L)(ec),n=(0,h.useRef)();return(0,ea.a)(r),(0,en.h)(n,c.Y.CONVERTIBLE),(0,o.jsx)("group",{...e,dispose:null,children:(0,o.jsx)("mesh",{ref:n,geometry:t.RT_Paint_ColorChange.geometry,material:r.Body})})}ep.displayName="Convertible",ei.L.preload(ec),ei.L.preload(el),ei.L.preload(ed);var eg=r(48394);let eh="/assets/models/suv/body-black.glb",em="/assets/models/suv/body-color.glb",ef="/assets/models/suv/lights.glb",ev=(0,h.forwardRef)((e,t)=>{let{sheet:r,...n}=e,{nodes:a}=(0,ei.L)(ef),s=(0,h.useRef)(),i=(0,h.useRef)(),u=(0,h.useRef)(),l=(0,h.useRef)(),c=(0,h.useRef)(),d=(0,h.useRef)(),p=(0,h.useRef)(),g=(0,h.useRef)(),m=(0,h.useRef)(),f=(0,h.useRef)(),v=(0,V._)(e=>e.suvShadow);(0,er.G)(v,d);let x=(0,V._)(e=>e.headLightsMap);(0,er.G)(x,m);let y=(0,V._)(e=>e.backLightsMap);return(0,er.G)(y,f),(0,es.z)(r,s,[i,u,l,c]),(0,eo._)(t,p,g,m,f,[i,u,l,c],3),(0,o.jsx)("group",{...n,dispose:null,children:(0,o.jsxs)("group",{ref:s,children:[(0,o.jsxs)("mesh",{position:[1.5,0,-0],rotation:[-Math.PI/2,0,0],children:[(0,o.jsx)("planeGeometry",{args:[10.6868*8.05,7.70772*8.05]}),(0,o.jsx)("meshStandardMaterial",{ref:d,transparent:!0,opacity:.975,depthWrite:!1})]}),(0,o.jsxs)("mesh",{position:[65,0,0],rotation:[-Math.PI/2,0,-Math.PI],children:[(0,o.jsx)("planeGeometry",{args:[10.6868*8.03,10.6868*8.03]}),(0,o.jsx)("meshStandardMaterial",{ref:f,transparent:!0,opacity:.25,blending:2,depthWrite:!1})]}),(0,o.jsxs)("mesh",{position:[-55,0,0],rotation:[-Math.PI/2,0,0],children:[(0,o.jsx)("planeGeometry",{args:[10.6868*9.03,10.6868*9.03]}),(0,o.jsx)("meshStandardMaterial",{ref:m,transparent:!0,opacity:.25,blending:2,depthWrite:!1})]}),(0,o.jsxs)("group",{position:[0,3,0],children:[(0,o.jsxs)("group",{position:[0,-3,-1.5],children:[(0,o.jsx)(SuvBodyBlack,{}),(0,o.jsx)(SuvBodyColor,{}),(0,o.jsx)("mesh",{position:[.05,0,0],geometry:a.SUV1Body001.geometry,children:(0,o.jsx)("meshStandardMaterial",{ref:g,color:[255,0,0],emissive:[255,0,0],emissiveIntensity:1,transparent:!0,opacity:0})}),(0,o.jsx)("mesh",{position:[-.05,0,0],geometry:a.SUV1Body013.geometry,children:(0,o.jsx)("meshStandardMaterial",{ref:p,emissive:[255,255,255],emissiveIntensity:0,transparent:!0,opacity:0})})]}),(0,o.jsx)(eu.A,{ref:i,position:[-14.85,.5,7.8]}),(0,o.jsx)(eu.A,{ref:u,position:[-14.85,.5,-7.8],rotation:[0,Math.PI,0]}),(0,o.jsx)(eu.A,{ref:l,position:[14.35,.5,7.8]}),(0,o.jsx)(eu.A,{ref:c,position:[14.35,.5,-7.8],rotation:[0,Math.PI,0]})]})]})})});function SuvBodyBlack(e){let{nodes:t,materials:r}=(0,ei.L)(eh);return(0,ea.a)(r),(0,o.jsxs)("group",{...e,dispose:null,children:[(0,o.jsx)("mesh",{geometry:t.SUV1Body004.geometry,material:r["Dark Body.003"]}),(0,o.jsx)("mesh",{geometry:t.SUV1Body012.geometry,material:r["Rear Lights.004"]}),(0,o.jsx)("mesh",{geometry:t.SUV1Body020.geometry,material:r["Windows.004"]})]})}function SuvBodyColor(e){let{nodes:t,materials:r}=(0,ei.L)(em),n=(0,h.useRef)();return(0,ea.a)(r),(0,en.h)(n,c.Y.SUV),(0,o.jsx)("group",{...e,dispose:null,children:(0,o.jsx)("mesh",{ref:n,geometry:t.SUV1Body019.geometry,material:r["Body.002"]})})}function CarTrack(e){let{sheet:t,roadPoints:r}=e,n=(0,h.useRef)(),a=(0,h.useRef)(),s=(0,h.useRef)(),i=(0,h.useRef)(),l=(0,h.useRef)(),g=(0,d.l7)(t,"Car Track",{progress:p.types.number(0,{range:[0,1],nudgeMultiplier:.01})});!function(e,t,r,n){let a=(0,d.l7)(e,"Car Lights",{lightFront:p.types.boolean(!1),lightBack:p.types.boolean(!1)});(0,d.GT)(a,e=>
1{[t,r,n].forEach(t=>{void 0!==t.current&&null!==t.current&&(e.lightFront?t.current.setFrontLightsOpacity(1):t.current.setFrontLightsOpacity(0),e.lightBack?t.current.setBackLightsOpacity(1):t.current.setBackLightsOpacity(0))})},[t,r,n])}(t,s,i,l),(0,d.GT)(g,e=>{if(e.progress<1&&e.progress>0){let t=n.current.getPointAt(e.progress);a.current.position.copy(t);let r=n.current.getTangentAt(e.progress);a.current.rotation.y=Math.PI-Math.atan2(r.z,r.x)}});let m=(0,u.w)(e=>e.carType);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("catmullRomCurve3",{ref:n,points:r,segments:100,tension:.01}),(0,o.jsxs)("group",{ref:a,children:[m===c.Y.POLESTAR&&(0,o.jsx)(eg.W,{ref:s,sheet:t,envMap:!0}),m===c.Y.CONVERTIBLE&&(0,o.jsx)(ep,{ref:i,sheet:t,envMap:!0}),m===c.Y.SUV&&(0,o.jsx)(ev,{ref:l,sheet:t,envMap:!0})]})]})}ev.displayName="Suv",ei.L.preload(eh),ei.L.preload(em),ei.L.preload(ef);var ex=r(60307);let ey=(0,h.forwardRef)((e,t)=>(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("directionalLight",{ref:t,...e}),(0,o.jsx)("ambientLight",{intensity:.65})]}));ey.displayName="Lights";var eR=r(98499),ew=r(89642);let eb=(0,h.forwardRef)((e,t)=>{let{active:r=!0,debugMessage:n="",position:a={x:0,y:175,z:500},zoom:s=13,center:u={x:0,y:0,z:0},panning:l={x:20,y:20},sheet:c=null}=e,g=(0,h.useRef)(a),m=(0,h.useRef)(u),f=(0,h.useRef)(l),v=(0,h.useRef)({x:0,y:0}),x=(0,C.a)("(max-width: 1024px)"),y=(0,C.a)("(any-hover: none)"),R={nudgeMultiplier:.01,range:[-1e3,1e3]},w=(0,d.l7)(c,"Camera",{zoom:p.types.number(s,{nudgeMultiplier:.01,range:[0,100]}),mobileZoom:p.types.number(s,{nudgeMultiplier:.01,range:[0,100]}),center:p.types.compound({x:p.types.number(u.x,R),y:p.types.number(u.y,R),z:p.types.number(u.z,R)}),mobileCenter:p.types.compound({x:p.types.number(u.x,R),y:p.types.number(u.y,R),z:p.types.number(u.z,R)}),position:p.types.compound({x:p.types.number(a.x,R),y:p.types.number(a.y,R),z:p.types.number(a.z,R)}),mobilePosition:p.types.compound({x:p.types.number(a.x,R),y:p.types.number(a.y,R),z:p.types.number(a.z,R)}),mousePanning:p.types.compound({x:p.types.number(l.x,R),y:p.types.number(l.y,R)})});return(0,d.GT)(w,e=>{t.current.zoom=x?e.mobileZoom:e.zoom,g.current.x=x?e.mobilePosition.x:e.position.x,g.current.y=x?e.mobilePosition.y:e.position.y,g.current.z=x?e.mobilePosition.z:e.position.z,m.current.x=x?e.mobileCenter.x:e.center.x,m.current.y=x?e.mobileCenter.y:e.center.y,m.current.z=x?e.mobileCenter.z:e.center.z,f.current.x=e.mousePanning.x,f.current.y=e.mousePanning.y,t.current.updateProjectionMatrix()}),(0,B.F)((e,n)=>{if(!r)return;let{mouse:a}=e;t.current.position.z=g.current.z,y?(v.current.x=0,v.current.y=0):(v.current.x=(0,i.u1)(v.current.x,a.x*f.current.x,3,n),v.current.y=(0,i.u1)(v.current.y,a.y*f.current.y,3,n)),t.current.position.x=g.current.x+v.current.x,t.current.position.y=g.current.y+v.current.y,t.current.lookAt(m.current.x,m.current.y,m.current.z)}),(0,o.jsx)(ew.i,{far:2e3,ref:t,makeDefault:!0,manual:!0,zoom:s})});eb.displayName="OrthoRig";let PulseMaterialImpl=class PulseMaterialImpl extends L.MeshBasicMaterial{onBeforeCompile(e){e.uniforms.uTime=this._time,e.vertexShader="\n varying vec2 vUv;\n ".concat(e.vertexShader,"\n "),e.vertexShader=e.vertexShader.replace("#include <project_vertex>","\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n "),e.fragmentShader="\n uniform float uTime;\n varying vec2 vUv;\n ".concat("\nfloat vignette(vec2 coords, float vignin, float vignout, float vignfade, float fstop) {\n float dist = distance(coords.xy, vec2(0.5, 0.5));\n dist = smoothstep(vignout + (fstop / vignfade), vignin + (fstop / vignfade), dist);\n return clamp(dist, 0.0, 1.0);\n}\n","\n ").concat(e.fragmentShader,"\n "),e.fragmentShader=e.fragmentShader.replace("#include <opaque_fragment>","\n vec2 pulseUv = vUv;\n\n pulseUv.xy -= 0.5;\n pulseUv *= 15.;\n pulseUv.xy += 0.5;\n\n float lineThickness = 1.;\n float distanceFromCenter = distance(vUv, vec2(0.5));\n float distanceFromLine = distance(pulseUv, vec2(0.5));\n float phase = distanceFromLine - 0.5 - uTime * .5;\n float pulse = 1. - step(lineThickness * (0.5 - distanceFromCenter * 1.25), abs(mod(phase, 1.0) - 0.5)); // Sharp transition at each unit interval\n \n float vignetteF = vignette(vUv, 0.01, .25, 2.0, .4);\n\n gl_FragColor = vec4( outgoingLight, diffuseColor.a * pulse * vignetteF );\n ")}get time(){return this._time.value}set time(e){this._time.value=e}constructor(e){super(e),this.setValues(e),this._time={value:0}}};let e_=(0,h.forwardRef)((e,t)=>{let{...r}=e,[n]=(0,h.useState)(()=>new PulseMaterialImpl);return(0,o.jsx)("primitive",{object:n,ref:t,attach:"material",...r})});e_.displayName="PulseMaterial";let ej=(0,h.forwardRef)((e,t)=>{let r=(0,h.useRef)(),n=(0,h.useRef)(),a=(0,h.useRef)(),s=(0,h.useRef)(),i=(0,h.useRef)(),u=(0,V._)(e=>e.arrowMap);(0,h.useEffect)(()=>
1{null!==u&&(u.colorSpace=L.SRGBColorSpace,u.needsUpdate=!0,i.current.material.alphaMap=u,i.current.material.needsUpdate=!0)},[u,i]);let l=(0,d.l7)(e.sheet,"PulseIcon",{scale:p.types.number(1,{nudgeMultiplier:.01,range:[0,1]})});return(0,d.GT)(l,e=>{r.current.scale.set(e.scale,e.scale,e.scale)}),(0,h.useImperativeHandle)(t,()=>({scaleUp(){g.p8.to(n.current.scale,{x:1.1,y:1.1,z:1.1,duration:.5,ease:"power2.out"})},scaleDown(){g.p8.to(n.current.scale,{x:1,y:1,z:1,duration:.5,ease:"power2.out"})}}),[]),(0,B.F)((e,t)=>{s.current.time=s.current.time+t}),(0,o.jsx)("group",{...e,children:(0,o.jsxs)("group",{ref:r,children:[(0,o.jsxs)("mesh",{ref:n,children:[(0,o.jsx)("circleGeometry",{args:[6,32]}),(0,o.jsx)("meshBasicMaterial",{color:"#6c5fd3"})]}),(0,o.jsxs)("mesh",{ref:i,position:[0,0,.001],rotation:[0,0,Math.PI],children:[(0,o.jsx)("planeGeometry",{args:[6,6]}),(0,o.jsx)("meshBasicMaterial",{color:"white",transparent:!0})]}),(0,o.jsxs)("mesh",{ref:a,position:[0,0,-.001],children:[(0,o.jsx)("circleGeometry",{args:[12,32]}),(0,o.jsx)(e_,{ref:s,color:"white",blending:2})]})]})})});ej.displayName="PulseIcon";var eS=r(1559);let eM=(0,h.forwardRef)((e,t)=>{let{priority:r=1,camera:n,children:a,active:s=!0,debug:i=!1,debugMessage:u="View is rendering"}=e,{gl:l}=(0,B.D)(),c=(0,eS.R)(),[d]=(0,h.useState)(()=>new L.Scene);return(0,B.F)(()=>{s&&(l.setRenderTarget(c),l.clear(),l.render(d,n.current),l.setRenderTarget(null))},r),(0,o.jsx)("primitive",{ref:t,object:c,children:(0,B.h)(a,d,{events:{priority:r+1}})})});function useSceneManager(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1e3,n=(0,h.useRef)(),a=(0,u.w)(e=>e.currentScene),o=(0,u.w)(e=>e.lastScene);(0,h.useEffect)(()=>{a===c.Y.INTRO&&(n.current=setTimeout(()=>{t(!1)},200))},[]),(0,h.useEffect)(()=>{a===e&&(n.current&&clearTimeout(n.current),t(!0))},[a,e,t]),(0,h.useEffect)(()=>{o===e&&(n.current=setTimeout(()=>{t(!1)},r))},[o,e,t,r])}eM.displayName="View";var eT=r(31095);function useTextureParams(e,t){let r=(0,d.l7)(e,"Texture",{saturation:p.types.number(1.5,{nudgeMultiplier:.01,range:[0,2]}),brightness:p.types.number(0,{nudgeMultiplier:.01,range:[0,1]}),contrast:p.types.number(1,{nudgeMultiplier:.01,range:[0,3]}),exposure:p.types.number(0,{nudgeMultiplier:.01,range:[-1,1]}),clayRevealRadius:p.types.number(0,{nudgeMultiplier:1,range:[0,300]}),clayRevealBlur:p.types.number(0,{nudgeMultiplier:.01,range:[0,2]})});(0,d.GT)(r,e=>{t.forEach(t=>{e.saturation&&(t.current.saturation=e.saturation),e.brightness&&(t.current.brightness=e.brightness),e.contrast&&(t.current.contrast=e.contrast),e.exposure&&(t.current.exposure=e.exposure),t.current.clayRevealRadius=e.clayRevealRadius,t.current.clayRevealBlur=e.clayRevealBlur})})}var eE="\nvec3 adjustExposure(vec3 color, float value) {\n return (1.0 + value) * color;\n}\n",eP=r(87706);let SceneMaterialImpl=class SceneMaterialImpl extends L.MeshBasicMaterial{onBeforeCompile(e){e.uniforms.uSaturation=this._saturation,e.uniforms.uBrightness=this._brightness,e.uniforms.uContrast=this._contrast,e.uniforms.uExposure=this._exposure,e.uniforms.uResolution=this._resolution,e.uniforms.uClayRevealRadius=this._clayRevealRadius,e.uniforms.uClayRevealBlur=this._clayRevealBlur,e.fragmentShader="\n uniform float uSaturation;\n uniform float uBrightness;\n uniform float uContrast;\n uniform float uExposure;\n uniform vec2 uResolution;\n uniform float uClayRevealRadius;\n uniform float uClayRevealBlur;\n\n float circle(in vec2 _st, in float _radius, in float _blur) {\n vec2 dist = _st - vec2(0.5);\n // Increase the soft edge width by modifying the 0.01 factor\n float edgeWidth = _radius * _blur; // Increase this for a softer edge\n return 1.0 - smoothstep(_radius - edgeWidth, _radius + edgeWidth, dot(dist, dist) * 200.0);\n }\n\n\n ".concat(eP.Z,"\n ").concat($,"\n ").concat(K.Z,"\n ").concat(eE,"\n ").concat(e.fragmentShader,"\n "),e.fragmentShader=e.fragmentShader.replace("#include <opaque_fragment>","\n outgoingLight.rgb = adjustSaturation(outgoingLight, uSaturation);\n outgoingLight.rgb = adjustBrightness(outgoingLight, uBrightness);\n outgoingLight.rgb = adjustExposure(outgoingLight, 0.3 + uExposure);\n outgoingLight.rgb = adjustContrast(outgoingLight, uContrast);\n\n outgoingLight = clamp( outgoingLight, 0.0, 1.0 );\n\n // create gradient map between 2 colors\n vec3 color1 = vec3(0.3);\n vec3 color2 = vec3(0.7);\n\n // get screen space gradient\n vec2 screenSpace = gl_FragCoord.xy / uResolution.xy;\n\n // create 1:1 aspect ratio\n screenSpace.x -= 0.5;\n screenSpace.x *= uResolution.x / uResolution.y;\n screenSpace.x += 0.5;
1\n\n\n // create cicrle mask\n float mask = circle(screenSpace, uClayRevealRadius, uClayRevealBlur);\n float gradient = smoothstep(0.0, 1.0, outgoingLight.r);\n vec3 gradientColor = mix(color1, color2, gradient);\n\n outgoingLight.rgb = mix(outgoingLight.rgb, gradientColor.rgb, 1. - mask);\n \n gl_FragColor = vec4( outgoingLight.rgb, diffuseColor.a );\n ")}get saturation(){return this._saturation.value}set saturation(e){this._saturation.value=e}get clayRevealRadius(){return this._clayRevealRadius.value}set clayRevealRadius(e){this._clayRevealRadius.value=e}get clayRevealBlur(){return this._clayRevealBlur.value}set clayRevealBlur(e){this._clayRevealBlur.value=e}get brightness(){return this._brightness.value}set brightness(e){this._brightness.value=e}get resolution(){return this._resolution.value}set resolution(e){this._resolution.value=e}get contrast(){return this._contrast.value}set contrast(e){this._contrast.value=e}get exposure(){return this._exposure.value}set exposure(e){this._exposure.value=e}constructor(e){super(e),this.setValues(e),this._saturation={value:0},this._brightness={value:0},this._contrast={value:1},this._exposure={value:0},this._resolution={value:{x:innerWidth,y:innerHeight}},this._clayRevealRadius={value:200},this._clayRevealBlur={value:.5}}};let eC=(0,h.forwardRef)((e,t)=>{let{...r}=e,[n]=(0,h.useState)(()=>new SceneMaterialImpl);return(0,B.F)(e=>{let{size:t,viewport:r}=e;n.resolution={x:t.width*r.dpr,y:t.height*r.dpr}}),(0,o.jsx)("primitive",{object:n,ref:t,attach:"material",...r})});eC.displayName="SceneMaterial";let SceneMaterialExtend2_SceneMaterialImpl=class SceneMaterialExtend2_SceneMaterialImpl extends L.MeshPhongMaterial{onBeforeCompile(e){e.uniforms.uSaturation=this._saturation,e.uniforms.uBrightness=this._brightness,e.uniforms.uContrast=this._contrast,e.uniforms.uExposure=this._exposure,e.uniforms.uResolution=this._resolution,e.uniforms.uClayRevealRadius=this._clayRevealRadius,e.uniforms.uClayRevealBlur=this._clayRevealBlur,e.fragmentShader="\n uniform float uSaturation;\n uniform float uBrightness;\n uniform float uContrast;\n uniform float uExposure;\n uniform vec2 uResolution;\n uniform float uClayRevealRadius;\n uniform float uClayRevealBlur;\n\n float circle(in vec2 _st, in float _radius, in float _blur) {\n vec2 dist = _st - vec2(0.5);\n // Increase the soft edge width by modifying the 0.01 factor\n float edgeWidth = _radius * _blur; // Increase this for a softer edge\n return 1.0 - smoothstep(_radius - edgeWidth, _radius + edgeWidth, dot(dist, dist) * 200.0);\n }\n\n\n ".concat(eP.Z,"\n ").concat($,"\n ").concat(K.Z,"\n ").concat(eE,"\n ").concat(e.fragmentShader,"\n "),e.fragmentShader=e.fragmentShader.replace("#include <opaque_fragment>","\n outgoingLight.rgb = adjustSaturation(outgoingLight, uSaturation);\n outgoingLight.rgb = adjustBrightness(outgoingLight, uBrightness);\n outgoingLight.rgb = adjustExposure(outgoingLight, 0.3 + uExposure);\n outgoingLight.rgb = adjustContrast(outgoingLight, uContrast);\n\n outgoingLight = clamp( outgoingLight, 0.0, 1.0 );\n\n // create gradient map between 2 colors\n vec3 color1 = vec3(0.3);\n vec3 color2 = vec3(0.7);\n\n // get screen space gradient\n vec2 screenSpace = gl_FragCoord.xy / uResolution.xy;\n\n // create 1:1 aspect ratio\n screenSpace.x -= 0.5;\n screenSpace.x *= uResolution.x / uResolution.y;\n screenSpace.x += 0.5;\n\n\n // create cicrle mask\n float mask = circle(screenSpace, uClayRevealRadius, uClayRevealBlur);\n float gradient = smoothstep(0.0, 1.0, outgoingLight.r);\n vec3 gradientColor = mix(color1, color2, gradient);\n\n outgoingLight.rgb = mix(outgoingLight.rgb, gradientColor.rgb, 1. - mask);\n \n gl_FragColor = vec4( outgoingLight.rgb, diffuseColor.a );\n ")}get saturation(){return this._saturation.value}set saturation(e){this._saturation.value=e}get clayRevealRadius(){return this._clayRevealRadius.value}set clayRevealRadius(e){this._clayRevealRadius.value=e}get clayRevealBlur(){return this._clayRevealBlur.value}set clayRevealBlur(e){this._clayRevealBlur.value=e}get brightness(){return this._brightness.value}set brightness(e){this._brightness.value=e}get resolution(){return this._resolution.value}set resolution(e){this._resolution.value=e}get contrast(){return this._contrast.value}set contrast(e){this._contrast.value=e}get exposure(){return this._exposure.value}set exposure(e){this._exposure.value=e}constructor(e){super(e),this.setValues(e),this._saturation={value:0},this._brightness={value:0},this._contrast={value:1},this._exposure={value:0},this._resolution={value:{x:innerWidth,y:innerHeight}},this._clayRevealRadius={value:200},this._clayRevealBlur={value:.5}}};let ek=(0,h.forwardRef)((e,t)=>{let{...r}=e,[n]=(0,h.useState)(()=>new SceneMaterialExtend2_SceneMaterialImpl);return(0,B.F)(e=>{let{size:t,viewport:r}=e;n.resolution={x:t.width*r.dpr,y:t.height*r.dpr}}),(0,o.jsx)("primitive",{object:n,ref:t,attach:"material",...r})});ek.displayName="SceneMaterial2";let eG="/assets/models/garage-01",eI="".concat(eG,"/01.gltf"),eA="".concat(eG,"/Gate.glb");function GarageModel(e){let{sheet:t}=e,{nodes:r}=(0,ei.L)(eI),n=(0,h.useRef)(),a=(0,h.useRef)(),s=(0,h.useRef)(),i=(0,h.useRef)(),u=(0,h.useRef)(),l=(0,h.useRef)(),c=(0,h.useRef)();
1useTextureParams(t,[n,a,s,i,u,l,c]);let d=(0,V._)(e=>e.garage01RoadMap),p=(0,V._)(e=>e.garage01BuildingsMap),g=(0,V._)(e=>e.garage01SignsMap),m=(0,V._)(e=>e.garage01PavementMap),f=(0,V._)(e=>e.garage01DynamicSignMap),v=(0,V._)(e=>e.garage01DriveInSignMap),x=(0,V._)(e=>e.garage01DriveOutSignMap);return(0,er.G)(d,n),(0,er.G)(p,s),(0,er.G)(g,i),(0,er.G)(m,a),(0,er.G)(f,u),(0,er.G)(v,l),(0,er.G)(x,c),(0,o.jsxs)("group",{dispose:null,children:[(0,o.jsx)(Gate1,{sheet:t}),(0,o.jsx)(Gate2,{sheet:t}),(0,o.jsx)("mesh",{geometry:r.Road.geometry,children:(0,o.jsx)(eC,{ref:n})}),(0,o.jsx)("mesh",{geometry:r.Pavements.geometry,children:(0,o.jsx)(eC,{ref:a})}),(0,o.jsx)("mesh",{geometry:r.Garage.geometry,children:(0,o.jsx)(eC,{ref:s})}),(0,o.jsx)("mesh",{geometry:r.Signs.geometry,children:(0,o.jsx)(eC,{ref:i})}),(0,o.jsxs)("mesh",{position:[100.55,11,20.1],children:[(0,o.jsx)("planeGeometry",{args:[11.5,16.5]}),(0,o.jsx)(eC,{ref:u})]}),(0,o.jsxs)("mesh",{position:[36,12.1,-25.1],rotation:[0,Math.PI/2,0],children:[(0,o.jsx)("planeGeometry",{args:[11.5,16.5]}),(0,o.jsx)(eC,{ref:l})]}),(0,o.jsxs)("mesh",{position:[35.7,12.1,-25.1],rotation:[0,-Math.PI/2,0],children:[(0,o.jsx)("planeGeometry",{args:[11.5,16.5]}),(0,o.jsx)(eC,{ref:c})]})]})}function Gate1(e){let{sheet:t,...r}=e,n=(0,h.useRef)(),{nodes:a,materials:s}=(0,ei.L)(eA),i=(0,h.useRef)();useTextureParams(t,[i]);let u=(0,V._)(e=>e.garage01GateMap);(0,er.G)(u,i);let l=(0,d.l7)(t,"Gate",{gateRotation:p.types.number(0,{nudgeMultiplier:.01,range:[0,1]})});return(0,d.GT)(l,e=>{n.current.rotation.z=e.gateRotation*Math.PI*.4}),(0,o.jsx)("group",{position:[-16.5,-4,0],children:(0,o.jsx)("group",{...r,ref:n,position:[57.25,16.5,-55],dispose:null,children:(0,o.jsxs)("group",{position:[16.5,4,0],children:[(0,o.jsx)("mesh",{castShadow:!0,receiveShadow:!0,geometry:a.Main_Arm.geometry,position:a.Main_Arm.position,children:(0,o.jsx)(ek,{ref:i})}),(0,o.jsx)("mesh",{castShadow:!0,receiveShadow:!0,geometry:a.Arm_End.geometry,position:a.Arm_End.position,material:s.Mat})]})})})}function Gate2(e){let{sheet:t,...r}=e,n=(0,h.useRef)(),{nodes:a,materials:s}=(0,ei.L)(eA),i=(0,h.useRef)();useTextureParams(t,[i]);let u=(0,V._)(e=>e.garage01GateMap);(0,er.G)(u,i);let l=(0,d.l7)(t,"Gate2",{gateRotation:p.types.number(0,{nudgeMultiplier:.01,range:[0,1]})});return(0,d.GT)(l,e=>{n.current.rotation.z=e.gateRotation*Math.PI*.4}),(0,o.jsx)("group",{position:[-16.5,-4,0],children:(0,o.jsx)("group",{...r,ref:n,position:[49.25,16.5,-55],rotation:[0,Math.PI,0],dispose:null,children:(0,o.jsxs)("group",{position:[16.5,4,0],children:[(0,o.jsx)("mesh",{castShadow:!0,receiveShadow:!0,geometry:a.Main_Arm.geometry,position:a.Main_Arm.position,children:(0,o.jsx)(ek,{ref:i})}),(0,o.jsx)("mesh",{castShadow:!0,receiveShadow:!0,geometry:a.Arm_End.geometry,position:a.Arm_End.position,material:s.Mat})]})})})}function Take01(e){let{sheet:t}=e,[r,n]=(0,h.useState)(!0),a=(0,B.D)(e=>e.gl),s=(0,B.D)(e=>e.size),i=(0,h.useRef)(),p=(0,h.useRef)(),g=(0,h.useRef)(),m=(0,l.o)(e=>e.setStep),f=(0,l.o)(e=>e.step),v=(0,d.Mi)(t,"GarageScene01"),x=(0,u.w)(e=>e.setSceneGarage01Take01),y=(0,u.w)(e=>e.currentScene),w=(0,u.w)(e=>e.playTake01),b=(0,u.w)(e=>e.setPlayTake01);(0,u.w)(e=>e.playTake02),(0,u.w)(e=>e.setPlayTake02);let _=(0,u.w)(e=>e.currentSceneAction);return(0,h.useEffect)(()=>{x(p)},[a,s,x]),(0,h.useEffect)(()=>{y===c.Y.GARAGE_01_TAKE_01&1===f?(v.sequence.pause(),v.sequence.position=0,v.sequence.play({range:[0,2]}),1!==f&&m(1)):b(!1)},[y,v,f]),useSceneManager(c.Y.GARAGE_01_TAKE_01,n),(0,h.useEffect)(()=>{w&&(v.sequence.play(),m(2))},[w,v,m,f]),(0,h.useEffect)(()=>{_===c.Y.GARAGE_01_TAKE_01_OUTRO&&v.sequence.play({range:[4.5,6]})},[_,v]),(0,o.jsxs)(eM,{ref:p,camera:g,active:r,children:[(0,o.jsx)(eb,{active:r,ref:g,center:{x:0,y:-10,z:0},sheet:v}),(0,o.jsx)(ey,{position:[-40,100,0]}),(0,o.jsx)(ex.I,{environmentRotation:[.35,-1,0]}),(0,o.jsx)(eR._,{children:(0,o.jsxs)("group",{rotation:[0,-(35.264*Math.PI)/180,0],position:[-30,-10,0],children:[(0,o.jsx)(GarageModel,{sheet:v}),r&&window.innerWidth>=R.A.$tabletL&&(0,o.jsx)(ej,{sheet:v,ref:i,onPointerOver:()=>{document.body.style.cursor="pointer",i.current.scaleUp()},onPointerLeave:()=>{document.body.style.cursor="default",i.current.scaleDown()},onClick:()=>{v.sequence.play(),m(2)},position:[60,0,30],rotation:[-Math.PI/2,0,0]}),(0,o.jsx)("group",{position:[-240,0,40],children:(0,o.jsx)(CarTrack,{sheet:v,roadPoints:[new L.Vector3(-45,0,62.58815002441406),new L.Vector3(-31.810379028320313,0,62.58815002441406),new L.Vector3(-16.6927433013916,0,62.73340606689453),new L.Vector3(-1.5751093626022339,0,62.87886428833008),new L.Vector3(13.542522430419922,0,63.02448272705078),new L.Vector3(28.66015625,0,63.16987228393555),new L.Vector3(43.77779769897461,0,63.314613342285156),new L.Vector3(58.89543914794922,0,63.459136962890625),new L.Vector3(74.01306915283203,0,63.60549545288086),new L.Vector3(89.13066864013672,0,63.75422286987305),new L.Vector3(104.24829864501953,0,63.900184631347656),new L.Vector3(119.36604309082031,0,64.03345489501953),new L.Vector3(134.4839
1630126953,0,64.14568328857422),new L.Vector3(149.60202026367188,0,64.23735809326172),new L.Vector3(164.7201385498047,0,64.3193588256836),new L.Vector3(179.83816528320313,0,64.41344451904297),new L.Vector3(194.95606994628906,0,64.52891540527344),new L.Vector3(210.07420349121094,0,64.6008071899414),new L.Vector3(225.19088745117188,0,64.38176727294922),new L.Vector3(240.27261352539063,0,63.35765838623047),new L.Vector3(255.16372680664063,0,60.78050231933594),new L.Vector3(269.444091796875,0,55.85744094848633),new L.Vector3(282.1956787109375,0,47.781951904296875),new L.Vector3(292.0958557128906,0,36.395042419433594),new L.Vector3(298.3148193359375,0,22.635141372680664),new L.Vector3(301.190673828125,0,7.796070098876953),new L.Vector3(301.7334,0,-7.306373596191406),new L.Vector3(301.7334,0,-22.423954010009766),new L.Vector3(301.7334,0,-37.541778564453125),new L.Vector3(301.7334,0,-52.659969329833984),new L.Vector3(301.7334,0,-67.77720642089844),new L.Vector3(301.7334,0,-82.89342498779297),new L.Vector3(301.7334,0,-98.01069641113281),new L.Vector3(301.7334,0,-113.12885284423828),new L.Vector3(301.7334,0,-128.2470703125),new L.Vector3(301.7334,0,-143.36526489257813),new L.Vector3(301.7334,0,-158.48345947265625),new L.Vector3(301.7334,0,-173.60165405273438),new L.Vector3(301.7334,0,-188.7198486328125),new L.Vector3(301.7334,0,-203.83804321289063),new L.Vector3(301.7334,0,-218.95623779296875)]})})]})})]})}function Take02(e){let{sheet:t}=e,[r,n]=(0,h.useState)(!0),a=(0,B.D)(e=>e.gl),s=(0,B.D)(e=>e.size),i=(0,h.useRef)(),p=(0,h.useRef)(),g=(0,h.useRef)(),m=(0,l.o)(e=>e.setStep),f=(0,l.o)(e=>e.step),v=(0,d.Mi)(t,"GarageScene01-Take02"),x=(0,u.w)(e=>e.setSceneGarage01Take02),y=(0,u.w)(e=>e.currentScene),w=(0,u.w)(e=>e.playTake03),b=(0,u.w)(e=>e.setPlayTake03);return useSceneManager(c.Y.GARAGE_01_TAKE_02,n),(0,h.useEffect)(()=>{x(p)},[a,s,x]),(0,h.useEffect)(()=>{if(y===c.Y.RECEIPT_PANEL);else if(y===c.Y.GARAGE_01_TAKE_02){if(v.sequence.pause(),v.sequence.position=0,v.sequence.play({range:[0,2]}),5===f)return;m(5)}else b(!1)},[y,v]),(0,h.useEffect)(()=>{let e;return w&&(v.sequence.play({range:[2,6]}),m(6)),()=>clearTimeout(e)},[w,v,m]),(0,o.jsxs)(eM,{ref:p,camera:g,active:r,children:[(0,o.jsx)(eb,{active:r,ref:g,center:{x:0,y:-10,z:0},sheet:v}),(0,o.jsx)(ey,{position:[-40,100,0]}),(0,o.jsx)(ex.I,{environmentRotation:[.35,-1,0]}),(0,o.jsx)(eR._,{children:(0,o.jsxs)("group",{rotation:[0,-(35.264*Math.PI)/180,0],position:[-30,-10,0],children:[(0,o.jsx)(GarageModel,{sheet:v}),r&&window.innerWidth>=R.A.$tabletL&&(0,o.jsx)(ej,{sheet:v,ref:i,onPointerOver:()=>{document.body.style.cursor="pointer",i.current.scaleUp()},onPointerLeave:()=>{document.body.style.cursor="default",i.current.scaleDown()},onClick:()=>{v.sequence.play({range:[2,6]}),m(6)},position:[10,-.001,10],rotation:[-Math.PI/2,0,Math.PI]}),(0,o.jsx)(CarTrack,{sheet:v,roadPoints:[new L.Vector3(5,0,-160),new L.Vector3(5,0,30),new L.Vector3(-25,0,85),new L.Vector3(-65,0,110),new L.Vector3(-90,0,110),new L.Vector3(-280,0,110)]})]})})]})}ei.L.preload(eI),ei.L.preload(eA);let eV="".concat("/assets/models/garage-02","/garage-02.gltf");function GarageModel_GarageModel(e){let{sheet:t}=e,{nodes:r}=(0,ei.L)(eV),n=(0,h.useRef)(),a=(0,h.useRef)(),s=(0,h.useRef)(),i=(0,h.useRef)(),u=(0,h.useRef)(),l=(0,h.useRef)();useTextureParams(t,[n,a,s,i,u,l]);let c=(0,V._)(e=>e.garage02RoadMap),d=(0,V._)(e=>e.garage02BuildingsMap),p=(0,V._)(e=>e.garage02SignsMap),g=(0,V._)(e=>e.garage02DynamicSignMap),m=(0,V._)(e=>e.garage02OutsideSignMap),f=(0,V._)(e=>e.garage02InsideSignMap);return(0,er.G)(c,n),(0,er.G)(d,a),(0,er.G)(p,s),(0,er.G)(g,i),(0,er.G)(m,u),(0,er.G)(f,l),(0,o.jsxs)("group",{dispose:null,children:[(0,o.jsx)("mesh",{geometry:r.Road.geometry,children:(0,o.jsx)(eC,{ref:n})}),(0,o.jsx)("mesh",{geometry:r.Garage.geometry,children:(0,o.jsx)(eC,{ref:a})}),(0,o.jsx)("mesh",{geometry:r.Signs.geometry,children:(0,o.jsx)(eC,{ref:s})}),(0,o.jsxs)("mesh",{position:[44.15,12.45,93],rotation:[0,Math.PI/2,0],children:[(0,o.jsx)("planeGeometry",{args:[11.5,16.5]}),(0,o.jsx)(eC,{ref:i})]}),(0,o.jsxs)("mesh",{position:[39.85,16.45,-40],rotation:[0,Math.PI/2,0],children:[(0,o.jsx)("planeGeometry",{args:[9,13.4]}),(0,o.jsx)(eC,{ref:u})]}),(0,o.jsxs)("mesh",{position:[19.05,16.7,-33.99],rotation:[0,0,0],children:[(0,o.jsx)("planeGeometry",{args:[17.7,19.4]}),(0,o.jsx)(eC,{ref:l})]})]})}function Take01_Take01(e){let{sheet:t}=e,[r,n]=(0,h.useState)(!0),a=(0,B.D)(e=>e.gl),s=(0,B.D)(e=>e.size),i=(0,h.useRef)(),p=(0,h.useRef)(),g=(0,l.o)(e=>e.setStep),m=(0,l.o)(e=>e.step),f=(0,d.Mi)(t,"GarageScene02"),v=(0,u.w)(e=>e.setSceneGarage02Take01),x=(0,u.w)(e=>e.currentScene),y=(0,h.useRef)(),w=(0,u.w)(e=>
1e.playScene2Take1),b=(0,u.w)(e=>e.setPlayScene2Take1);return useSceneManager(c.Y.GARAGE_02_TAKE_01,n),(0,h.useEffect)(()=>{w&&(f.sequence.play({range:[2,5]}),g(8))},[w,f,g]),(0,h.useEffect)(()=>{v(i)},[a,s,v]),(0,h.useEffect)(()=>{x===c.Y.GARAGE_02_TAKE_01?(f.sequence.pause(),f.sequence.position=0,f.sequence.play({range:[0,2]}),7!==m&&g(7)):b(!1)},[x,f]),(0,o.jsxs)(eM,{ref:i,camera:p,active:r,children:[(0,o.jsx)(eb,{active:r,ref:p,sheet:f}),(0,o.jsx)(ey,{position:[10,100,30]}),(0,o.jsx)(ex.I,{}),(0,o.jsx)(eR._,{children:(0,o.jsxs)("group",{onPointerOver:()=>{},rotation:[0,-(45.264*Math.PI)/180,0],position:[-15,-5,0],children:[(0,o.jsx)(GarageModel_GarageModel,{sheet:f}),(0,o.jsxs)("group",{position:[200,.01,-90],children:[r&&window.innerWidth>=R.A.$tabletL&&(0,o.jsx)(ej,{sheet:f,ref:y,onPointerOver:()=>{document.body.style.cursor="pointer",y.current.scaleUp()},onPointerLeave:()=>{document.body.style.cursor="default",y.current.scaleDown()},onClick:()=>{f.sequence.play({range:[2,5]}),g(8)},position:[-160,-.001,90],rotation:[-Math.PI/2,0,Math.PI/2]}),(0,o.jsx)("group",{position:[75,0,0],children:(0,o.jsx)(CarTrack,{sheet:f,roadPoints:[new L.Vector3(0,0,90),new L.Vector3(-60,
10,90),new L.Vector3(-180,0,90),new L.Vector3(-420,0,90)]})})]})]})})]})}function Take02_Take02(e){let{sheet:t}=e,[r,n]=(0,h.useState)(!0),a=(0,B.D)(e=>e.gl),s=(0,B.D)(e=>e.size),i=(0,h.useRef)(),p=(0,h.useRef)(),g=(0,l.o)(e=>e.setStep),m=(0,l.o)(e=>e.step),f=(0,d.Mi)(t,"GarageScene02-Take02"),v=(0,u.w)(e=>e.setSceneGarage02Take02),x=(0,u.w)(e=>e.currentScene),y=(0,u.w)(e=>e.playScene2Take2),w=(0,u.w)(e=>e.setPlayScene2Take2);useSceneManager(c.Y.GARAGE_02_TAKE_02,n),(0,h.useEffect)(()=>{y&&(f.sequence.play({range:[2,7.82]}),g(10))},[y,f,g]);let b=(0,h.useRef)();return(0,h.useEffect)(()=>{v(i)},[a,s,v]),(0,h.useEffect)(()=>{x===c.Y.GARAGE_02_TAKE_02?(f.sequence.pause(),f.sequence.position=0,f.sequence.play({range:[0,2]}),9!==m&&g(9)):w(!1)},[x,f]),(0,o.jsxs)(eM,{ref:i,camera:p,active:r,children:[(0,o.jsx)(eb,{active:r,ref:p,sheet:f}),(0,o.jsx)(ey,{position:[10,100,30]}),(0,o.jsx)(ex.I,{}),(0,o.jsx)(eR._,{children:(0,o.jsxs)("group",{onPointerOver:()=>{},rotation:[0,-(45.264*Math.PI)/180,0],position:[-15,-5,0],children:[(0,o.jsx)(GarageModel_GarageModel,{sheet:f}),(0,o.jsxs)("group",{position:[200,.01,-90],children:[r&&window.innerWidth>=R.A.$tabletL&&(0,o.jsx)(ej,{sheet:f,ref:b,onPointerOver:()=>{document.body.style.cursor="pointer",b.current.scaleUp()},onPointerLeave:()=>{document.body.style.cursor="default",b.current.scaleDown()},onClick:()=>{f.sequence.play({range:[2,7.82]}),g(10)},position:[-160,-.001,145],rotation:[-Math.PI/2,0,-Math.PI/2]}),(0,o.jsx)("group",{position:[-320,0,80],children:(0,o.jsx)(CarTrack,{sheet:f,roadPoints:[new L.Vector3(-45,0,62.58815002441406),new L.Vector3(-31.810379028320313,0,62.58815002441406),new L.Vector3(-16.6927433013916,0,62.73340606689453),new L.Vector3(-1.5751093626022339,0,62.87886428833008),new L.Vector3(13.542522430419922,0,63.02448272705078),new L.Vector3(28.66015625,0,63.16987228393555),new L.Vector3(43.77779769897461,0,63.314613342285156),new L.Vector3(58.89543914794922,0,63.459136962890625),new L.Vector3(74.01306915283203,0,63.60549545288086),new L.Vector3(89.13066864013672,0,63.75422286987305),new L.Vector3(104.24829864501953,0,63.900184631347656),new L.Vector3(119.36604309082031,0,64.03345489501953),new L.Vector3(134.4839630126953,0,64.14568328857422),new L.Vector3(149.60202026367188,0,64.23735809326172),new L.Vector3(164.7201385498047,0,64.3193588256836),new L.Vector3(179.83816528320313,0,64.41344451904297),new L.Vector3(194.95606994628906,0,64.52891540527344),new L.Vector3(210.07420349121094,0,64.6008071899414),new L.Vector3(225.19088745117188,0,64.38176727294922),new L.Vector3(240.27261352539063,0,63.35765838623047),new L.Vector3(255.16372680664063,0,60.78050231933594),new L.Vector3(269.444091796875,0,55.85744094848633),new L.Vector3(282.1956787109375,0,47.781951904296875),new L.Vector3(292.0958557128906,0,36.395042419433594),new L.Vector3(298.3148193359375,0,22.635141372680664),new L.Vector3(301.190673828125,0,7.796070098876953),new L.Vector3(301.95233154296875,0,-7.306373596191406),new L.Vector3(301.8725891113281,0,-22.423954010009766),new L.Vector3(301.7481689453125,0,-37.541778564453125),new L.Vector3(301.73345947265625,0,-52.659969329833984),new L.Vector3(301.6610107421875,0,-67.77720642089844),new L.Vector3(301.5279541015625,0,-82.89342498779297),new L.Vector3(301.43841552734375,0,-98.01069641113281),new L.Vector3(301.405517578125,0,-113.12885284423828),new L.Vector3(301.3766784667969,0,-128.2470703125),new L.Vector3(301.33154296875,0,-143.36526489257813)]})})]})]})})]})}ei.L.preload(eV);var eL=r(28009),eO=r(47355),eB=r(30868);function IntroEnv(e){let{sheet:t}=e;(0,h.useRef)();let r=(0,h.useRef)(),n=(0,h.useRef)([{color:"white",form:"rect",intensity:4,rotation:[0,Math.PI/2,0],position:[5,1,-1],scale:[200,.1,1]},{color:"white",form:"rect",intensity:1,rotation:[0,0,0],position:[-10,10,30],scale:[10,10,10]},{color:"white",form:"rect",intensity:1e3,rotation:[0,0,0],position:[-10,0,5],scale:[.5,.5,1e3]},{color:"white",form:"ring",intensity:4,rotation:[0,0,0],position:[-15,40,-18],scale:[10,10,10]},{color:"white",form:"ring",intensity:5,rotation:[0,0,0],position:[15,4,-18],scale:[10,10,10]},{color:"white",form:"ring",intensity:3,rotation:[0,-Math.PI/2,Math.PI/2],position:[10,40,-18],scale:[10,10,10]}]),a={nudgeMultiplier:.01,range:[-200,200]},s=(0,d.l7)(t,"Env",{lights:p.types.compound({intensity:p.types.number(1,a),position:p.types.compound({x:p.types.number(0,a),y:p.types.number(50,a),z:p.types.number(0,a)})})});return(0,d.GT)(s,e=>{r.current&&(r.current.intensity=e.lights.intensity,r.current.position.set(e.lights.position.x,e.lights.position.y,e.lights.position.z))}),(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("color",{attach:"background",args:["white"]}),(0,o.jsx)(ey,{ref:r,position:[0,50,0]}),(0,o.jsxs)(eL.qA,{frames:10,environmentIntensity:.5,resolution:128,children:[(0,o.jsx)("color",{attach:"background",args:["black"]}),(0,o.jsxs)("mesh",{scale:300,children:[(0,o.jsx)("sphereGeometry",{args:[1,64,64]}),(0,o.jsx)(eB.ud,{side:L.BackSide,children:(0,o.jsx)(eB.Il,{color:"#787777",alpha:1,mode:"normal"})})]}),(0,o.jsxs)("mesh",{position:[0,-100,0],rotation:[-Math.PI/2,0,0],children:[(0,o.jsx)("planeGeometry",{args:[1e4,1e3]}),(0,o.jsx)("meshBasicMaterial",{color:"#a8a5a5"})]}),(0,o.jsx)(eR._,{children:(0,o.jsx)("group",{scale:[2,2,2],children:n.current.map((e,r)=>(0,h.createElement)(LightformerWrapper,{sheet:t,...e,key:r,index:r}))})})]})]})}let LightformerWrapper=e=>{let{sheet:t,index:r,...n}=e,a=(0,h.useRef)(),[s,i]=(0,h.useState)(n.form),[u,l]=(0,h.useState)(n.color),[c,g]=(0,h.useState)(n.intensity),[m,f]=(0,h.useState)(n.position),[v,x]=(0,h.useState)(n.rotation),[y,R]=(0,h.useState)(n.scale),w={nudgeMultiplier:.01,range:[-200,200]},b={nudgeMultiplier:.01,range:[-Math.PI,Math.PI]},_=(0,d.l7)(t,"lightFormers ".concat(r),{lightForm:p.types.stringLiteral("rect",{rect:"rect",ring:"ring"}),lightIntensity:p.types.number(n.intensity,{nudgeMultiplier:.01,range:[0,1e3]}),lightColor:p.types.rgba({r:255,g:255,b:255,a:1}),lightPosition:p.types.compound({x:p.types.number(n.position[0],w),y:p.types.number(n.position[1],w),z:p.types.number(n.position[2],w)}),lightRotation:p.types.compound({x:p.types.number(n.rotation[0],b),y:p.types.number(n.rotation[1],b),z:p.types.number(n.rotation[2],b)}),lightScale:p.types.compound({x:p.types.number(n.scale[0],w),y:p.types.number(n.scale[1],w),z:p.types.number(n.scale[2],w)})});return(0,d.GT)(_,e=>{a.current.scale.set(e.lightScale.x,e.lightScale.y,e.lightScale.z),a.current.position.set(e.lightPosition.x,e.lightPosition.y,e.lightPosition.z),a.current.rotation.set(e.lightRotation.x,e.lightRotation.y,e.lightRotation.z),a.current.material.color.setRGB(e.lightColor.r,e.lightColor.g,e.lightColor.b),a.current.material.color.multiplyScalar(c)}),(0,o.jsx)(eO.D,{ref:a,form:s,color:u,position:m,intensity:c,scale:y,rotation:v})};var eY=r(41559),eU=r(19801),eN=r(87424),ez=r(49287);
1function CarSceneButton_index_style_templateObject(){let e=(0,m._)(["\n display: none;\n position: absolute;\n top: ",";\n left: 50%;\n transform: translateX(-50%);\n "," {\n width: 17rem;\n }\n\n @media (min-width: 1025px) and (any-hover: hover) {\n display: block;\n }\n"]);return CarSceneButton_index_style_templateObject=function(){return e},e}let eW=v.ZP.div.withConfig({displayName:"index.style__CarSceneButtonWrapper",componentId:"sc-e473cb0a-0"})(CarSceneButton_index_style_templateObject(),(0,f.uZ)(80,150,R.A.$tabletL,R.A.$deskXL),ez.BQ);var ui_CarSceneButton=e=>{let{animate:t,disabled:r,cta:n}=e,{setStep:a,selectedPath:s}=(0,l.o)();return(0,o.jsx)(eW,{children:(0,o.jsx)(eN.Z,{forceAnimate:t,animate:!1,IconRight:eU.Z,onClick:()=>{"signUp"===s?a(1):a(7)},disabled:r,children:n})})};function ColorSelector_index_style_templateObject(){let e=(0,m._)(["\n width: ",";\n height: ",";\n background-color: rgb(",", ",", ",");\n border-radius: 50%;\n border: ",";\n transform-origin: center;\n position: relative;\n\n &:before {\n content: '';\n position: absolute;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n border: "," solid ",";\n opacity: ",";\n transition:\n opacity 0.3s ",",\n transform 0.3s ",";\n transform: scale(",");\n }\n\n &:hover {\n @media (min-width: 1024px) or (hover: hover) {\n &:before {\n opacity: ",";\n transform: scale(1.32);\n }\n }\n }\n"]);return ColorSelector_index_style_templateObject=function(){return e},e}function index_style_templateObject1(){let e=(0,m._)(["\n position: absolute;\n top: ",";\n left: 50%;\n transform: translateX(-50%);\n transform-origin: center;\n transform: scale(0.5);\n opacity: 0;\n display: ",";\n\n flex-direction: row;\n justify-content: center;\n align-items: center;\n gap: ",";\n\n @media (max-width: 1024px) or (hover: none) {\n display: ",";\n }\n"]);return index_style_templateObject1=function(){return e},e}let eD=v.ZP.div.withConfig({displayName:"index.style__ColorSelectorItemStyle",componentId:"sc-d758871d-0"})(ColorSelector_index_style_templateObject(),(0,f.hO)(32),(0,f.hO)(32),e=>e.color[0],e=>e.color[1],e=>e.color[2],e=>e.$showBorder?"".concat((0,f.hO)(1)," solid ").concat(b.O.darkGrey):"none",(0,f.hO)(2),b.O.purple,e=>e.$active?1:0,_._.inOutQuint,_._.inOutQuint,e=>e.$active?1.32:.9,e=>e.$active?1:.5),eQ=v.ZP.div.withConfig({displayName:"index.style__ColorSelectorContainer",componentId:"sc-d758871d-1"})(index_style_templateObject1(),(0,f.hO)(30),e=>{let{$desktop:t}=e;return t?"flex":"none"},(0,f.hO)(11),e=>{let{$desktop:t}=e;return t?"none":"flex"}),eF=(0,h.forwardRef)((e,t)=>{let{carType:r=c.Y.POLESTAR,onPointerMove:n,desktop:a}=e;return(0,o.jsxs)(eQ,{ref:t,onPointerMove:n,$desktop:a,children:[(0,o.jsx)(ColorSelectorItem,{carType:r,color:[255,255,255],showBorder:!0}),(0,o.jsx)(ColorSelectorItem,{carType:r,color:[13,13,13,0]}),(0,o.jsx)(ColorSelectorItem,{carType:r,color:[134,134,141]}),(0,o.jsx)(ColorSelectorItem,{carType:r,color:[95,89,255]}),(0,o.jsx)(ColorSelectorItem,{carType:r,color:[15,143,77]}),(0,o.jsx)(ColorSelectorItem,{carType:r,color:[255,102,82]})]})});eF.displayName="ColorSelector";let ColorSelectorItem=e=>{let{...t}=e,r=(0,u.w)(e=>e.setSuvColor),n=(0,u.w)(e=>e.setConvertibleColor),a=(0,u.w)(e=>e.setPolestarColor),s=(0,u.w)(e=>e.suvColor),i=(0,u.w)(e=>e.convertibleColor),l=(0,u.w)(e=>e.polestarColor),setCarColor=(e,t)=>{e===c.Y.SUV&&r(t),e===c.Y.CONVERTIBLE&&n(t),e===c.Y.POLESTAR&&a(t)};return(0,o.jsx)(eD,{color:t.color,onClick:e=>{e.preventDefault(),setCarColor(t.carType,t.color)},$showBorder:t.showBorder,$active:t.carType===c.Y.SUV?JSON.stringify(t.color)===JSON.stringify(s):t.carType===c.Y.CONVERTIBLE?JSON.stringify(t.color)===JSON.stringify(i):JSON.stringify(t.color)===JSON.stringify(l)})};var eH=r(73849),eq=r(80396),eZ=r(68143),e$=r.n(eZ);function IntroScene(e){let{sheet:t,cta:r}=e,[n,a]=(0,h.useState)(!1),[s,m]=(0,h.useState)(!1),{size:f,viewport:v,gl:x}=(0,B.D)(),y=(0,h.useRef)(),R=(0,h.useRef)(!1),w=(0,h.useRef)(0),b=(0,h.useRef)(0),_=(0,h.useRef)(),j=(0,h.useRef)(),S=(0,h.useRef)(),M=(0,h.useRef)(),T=(0,h.useRef)(),E=(0,h.useRef)(),P=(0,h.useRef)(),k=(0,h.useRef)(),G=(0,h.useRef)(!1),I=(0,h.useRef)(),A=(0,C.a)("(max-width: 1024px) or (any-hover: none)"),V=(0,d.Mi)(t,"IntroScene"),L=(0,u.w)(e=>e.setIntroScene),O=(0,u.w)(e=>e.currentScene),Y=(0,l.o)(e=>e.startAgain),U=(0,l.o)(e=>e.setStartAgain),N=(0,u.w)(e=>
1e.setCarType),z=(0,u.w)(e=>e.carType),W=(0,u.w)(e=>e.setIntroCar);(0,u.w)(e=>e.introCar);let handleMouseDown=e=>{G.current&&(R.current=!0,w.current=e.touches?e.touches[0].clientX:e.clientX)},handleMouseMove=e=>{if(G.current&&R.current){let t=e.touches?e.touches[0].clientX:e.clientX,r=t-w.current;b.current+=.2*r,b.current=(0,i.uZ)(b.current,-30,30),w.current=t,b.current<-10?(W(c.Y.SUV),N(c.Y.SUV)):b.current>10?(W(c.Y.CONVERTIBLE),N(c.Y.CONVERTIBLE)):(W(c.Y.POLESTAR),N(c.Y.POLESTAR)),g.ZP.to(y.current.position,{x:b.current,duration:1.2,ease:"power3"})}},handleMouseUp=()=>{if(!G.current)return;R.current=!1;let e=[0,-30,30].reduce((e,t)=>Math.abs(t-b.current)<Math.abs(e-b.current)?t:e);e<-10?(W(c.Y.SUV),N(c.Y.SUV)):e>10?(W(c.Y.CONVERTIBLE),N(c.Y.CONVERTIBLE)):(W(c.Y.POLESTAR),N(c.Y.POLESTAR)),g.ZP.to(y.current.position,{x:e,duration:1.2,ease:"power3"})};(0,h.useEffect)(()=>{G.current=A&&s;let checkDesktop=()=>{A||(b.current=0,y.current.position.x=0)};checkDesktop();let e=e$()(checkDesktop,500);return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}},[A,s]),(0,h.useEffect)(()=>(window.addEventListener("mousedown",handleMouseDown),window.addEventListener("mousemove",handleMouseMove),window.addEventListener("mouseup",handleMouseUp),window.addEventListener("touchstart",handleMouseDown),window.addEventListener("touchmove",handleMouseMove),window.addEventListener("touchend",handleMouseUp),()=>{window.removeEventListener("mousedown",handleMouseDown),window.removeEventListener("mousemove",handleMouseMove),window.removeEventListener("mouseup",handleMouseUp),window.removeEventListener("touchstart",handleMouseDown),window.removeEventListener("touchmove",handleMouseMove),window.removeEventListener("touchend",handleMouseUp)}),[]),(0,h.useEffect)(()=>{O===c.Y.INTRO&&Y&&(V.sequence.pause(),V.sequence.position=0,U(!1))},[V,O,Y,U]),(0,h.useEffect)(()=>{L(_)},[x,f,L]),(0,h.useEffect)(()=>{O!==c.Y.INTRO&&(m(!1),a(!1))},[O]),useSceneManager(c.Y.INTRO,a);let D=(0,u.w)(e=>e.setMaskActive),Q=(0,l.o)(e=>e.hideIntro),F=(0,l.o)(e=>e.setStep);(0,h.useEffect)(()=>{Q&&(V.sequence.pause(),V.sequence.position=0,V.sequence.play().then(()=>D(!1)))},[Q,V.sequence,D,F]);let H={nudgeMultiplier:.01,range:[-200,200]},q=(0,d.l7)(V,"Cars",{carPos1:p.types.compound({x:p.types.number(0,H),y:p.types.number(0,H),z:p.types.number(0,H)}),carPos2:p.types.compound({x:p.types.number(0,H),y:p.types.number(0,H),z:p.types.number(30,H)}),carPos3:p.types.compound({x:p.types.number(0,H),y:p.types.number(0,H),z:p.types.number(-30,H)}),clickAble:p.types.boolean(!1)});return(0,d.GT)(q,e=>{E.current&&(E.current&&E.current.position.set(e.carPos1.x,e.carPos1.y,e.carPos1.z),P.current&&P.current.position.set(e.carPos2.x,e.carPos2.y,e.carPos2.z),k.current&&k.current.position.set(e.carPos3.x,e.carPos3.y,e.carPos3.z),S.current&&S.current.rotateWheels(.25*e.carPos1.x),M.current&&M.current.rotateWheels(.25*e.carPos2.x),T.current&&T.current.rotateWheels(.25*e.carPos3.x),e.clickAble!==s&&m(e.clickAble))}),(0,h.useEffect)(()=>{A&&Q&&(g.ZP.set(I.current,{xPercent:-50}),g.ZP.to(I.current,{scale:1,xPercent:-50,opacity:1,duration:1.2,ease:"power4.out",delay:3}))},[A,Q,n]),(0,o.jsxs)(eM,{ref:_,camera:j,active:n,children:[(0,o.jsx)(IntroEnv,{sheet:V}),(0,o.jsx)(eY.v,{ref:j,position:{x:0,y:182,z:29},center:{x:0,y:0,z:0},sheet:V}),(0,o.jsxs)(eH.u,{children:[(0,o.jsx)("group",{ref:y,onPointerOver:()=>{},children:(0,o.jsxs)("group",{position:[0,0,15],rotation:[0,Math.PI/2,0],children:[(0,o.jsx)(eK,{ref:E,position:[0,0,0],color:"hotpink",carType:c.Y.POLESTAR,height:15,active:s&&n,carRef:S,cta:r,children:(0,o.jsx)(eg.W,{ref:S,sheet:V})}),(0,o.jsx)(eK,{ref:P,carRef:M,position:[0,0,30],rotation:[0,0,0],height:18,color:"yellow",carType:c.Y.SUV,active:s&&n,cta:r,children:(0,o.jsx)(ev,{ref:M,sheet:V})}),(0,o.jsx)(eK,{ref:k,position:[0,0,-30],rotation:[0,0,0],height:15,color:"blue",carType:c.Y.CONVERTIBLE,active:s&&n,carRef:T,cta:r,children:(0,o.jsx)(ep,{ref:T,sheet:V})})]})}),n&&(0,o.jsx)(eq.V,{scale:1,position:[0,0,55],rotation:[0,Math.PI/2,0],children:(0,o.jsx)(eF,{ref:I,carType:z})})]})]})}r(12410);let eK=(0,h.forwardRef)((e,t)=>{let r=(0,h.useRef)();(0,h.useRef)();let n=(0,h.useRef)(!1),a=(0,h.useRef)(!1),s=(0,u.w)(e=>e.introCar),i=(0,u.w)(e=>e.carType),d=(0,u.w)(e=>e.setCarType),p=(0,u.w)(e=>e.setIntroCar),m=(0,u.w)(e=>e.currentScene),f=(0,h.useRef)(),v=(0,u.w)(e=>e.endSceneReveal),x=(0,u.w)(e=>e.setSuvColor),y=(0,u.w)(e=>
1e.setConvertibleColor),R=(0,u.w)(e=>e.setPolestarColor),[w,b]=(0,h.useState)(!1),{hideIntro:_,loaderComplete:j}=(0,l.o)(),S=(0,C.a)("(max-width: 1024px) or (any-hover: none)");(0,h.useEffect)(()=>{e.active&&setTimeout(()=>{b(!0)},100)},[e.active]),(0,h.useEffect)(()=>{if(S)return;let t=s===e.carType;a.current=t,t?activate():(deactivate(),animateOut())},[s,S]),(0,h.useEffect)(()=>{(S||_)&&(i===e.carType?activate():(deactivate(),animateOut()))},[e.carType,i,S,_]),(0,h.useEffect)(()=>{m!==c.Y.INTRO&&animateOut()},[m]),(0,h.useEffect)(()=>{j&&!1===S&&deactivate()},[j,S]),(0,h.useEffect)(()=>{S&&e.carRef.current.rotateWheels&&e.active&&v===c.Y.INTRO&&(e.carType===i?g.ZP.to(r.current.position,{x:-7.5,duration:1.2,ease:"power4.out",onUpdate:()=>{e.carRef.current.rotateWheels&&e.carRef.current.rotateWheels(.25*r.current.position.x)}}):g.ZP.to(r.current.position,{x:0,duration:1.2,ease:"power4.out",onUpdate:()=>{e.carRef.current.rotateWheels&&e.carRef.current.rotateWheels(.25*r.current.position.x)}}))},[S,e,v,i]);let onPointerOver=t=>{t&&t.stopPropagation(),!a.current&&!n.current&&e.carRef.current.rotateWheels&&e.active&&v===c.Y.INTRO&&(S||(n.current=!0,document.body.style.cursor="pointer",g.ZP.to(r.current.position,{x:-7.5,duration:1.2,ease:"power4.out",onUpdate:()=>{e.carRef.current.rotateWheels&&e.carRef.current.rotateWheels(.25*r.current.position.x)}}),p(e.carType),d(e.carType)))},activate=()=>{e.carRef.current.setFrontLightsOpacity&&e.carRef.current.setFrontLightsOpacity(1),g.ZP.to(f.current,{scale:1,xPercent:-50,opacity:1,duration:1.2,ease:"power4.out"})},deactivate=()=>{e.carRef.current.setFrontLightsOpacity&&e.carRef.current.setFrontLightsOpacity(0),e.carType===c.Y.SUV&&x(),e.carType===c.Y.CONVERTIBLE&&y(),e.carType===c.Y.POLESTAR&&R(),f.current&&g.ZP.to(f.current,{scale:.5,xPercent:-50,opacity:0,duration:1.2,ease:"power4.out"})},animateOut=()=>{document.body.style.cursor="default",n.current=!1,!a.current&&e.carRef.current.rotateWheels&&g.ZP.to(r.current.position,{x:0,duration:1.2,ease:"power4.out",onUpdate:()=>{e.carRef.current.rotateWheels&&e.carRef.current.rotateWheels(.25*r.current.position.x)}})};return(0,o.jsxs)("group",{ref:t,...e,children:[e.active&&(0,o.jsxs)("group",{children:[(0,o.jsxs)("mesh",{position:[0,7,0],onClick:t=>{t.stopPropagation(),S||(p(e.carType),d(e.carType))},onPointerOver:onPointerOver,onPointerOut:e=>{e&&e.stopPropagation(),animateOut()},children:[(0,o.jsx)("boxGeometry",{args:[55,1.2*e.height||15,22.5]}),(0,o.jsx)("meshStandardMaterial",{color:e.color,opacity:0,transparent:!0,depthWrite:!1})]}),(0,o.jsxs)(eq.V,{scale:1,rotation:[0,0,0],position:[-35,0,0],children:[!S&&(0,o.jsx)(eF,{ref:f,onPointerMove:onPointerOver,carType:e.carType,desktop:!0}),(0,o.jsx)(ui_CarSceneButton,{cta:e.cta,animate:i===e.carType&&w&&v===c.Y.INTRO,disabled:i!==e.carType||!w})]})]}),(0,o.jsx)("group",{ref:r,children:e.children})]})});eK.displayName="ClickBox";let eX=(0,h.forwardRef)((e,t)=>{let{priority:r=1,camera:n,blurAmount:a=0,children:i,active:u=!0,debug:l=!1,debugMessage:c="View is rendering"}=e,{gl:d}=(0,B.D)(),p=(0,eS.R)(),[m]=(0,h.useState)(()=>new L.Scene),f=new L.Vector2(1,0),v=new L.Vector2(0,1),x=function(){let e=new L.BufferGeometry;return e.setAttribute("position",new L.Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3)),e.setAttribute("uv",new L.Float32BufferAttribute([0,2,0,0,2,0],2)),e}(),y=(0,h.useRef)(new L.OrthographicCamera(-1,1,1,-1,0,1)),R=(0,h.useRef)(new L.Mesh(x));(0,h.useEffect)(()=>{R.current.frustumCulled=!1},[R]);let w=(0,h.useRef)(1),b=(0,eS.R)(),_=(0,eS.R)(),j=(0,h.useRef)(new BlurMaterial(f)),S=(0,h.useRef)(new BlurMaterial(v));return(0,h.useEffect)(()=>{g.p8.to(j.current.uniforms.uBlurAmount,{value:a,duration:.5,ease:"none"}),g.p8.to(S.current.uniforms.uBlurAmount,{value:a,duration:.5,ease:"none"})},[j,S,a]),(0,B.F)(()=>{u&&(d.setRenderTarget(p),d.clear(),d.render(m,n.current),d.setRenderTarget(null),j.current.uniforms.tMap.value=p.texture,R.current.material=j.current,d.setRenderTarget(b),d.render(R.current,y.current),S.current.uniforms.tMap.value=b.texture,R.current.material=S.current,d.setRenderTarget(_),d.render(R.current,y.current))},r),(0,s.w)(()=>{let e=Math.round(window.innerWidth*w.current),t=Math.round(window.innerHeight*w.current);b.setSize(e,t),_.setSize(e,t),j.current.uniforms.uResolution.value.set(e,t),S.current.uniforms.uResolution.value.set(e,t)},0,[]),(0,o.jsx)("primitive",{ref:t,object:_,children:(0,B.h)(i,m,{events:{priority:r+1}})})});eX.displayName="BlurView";var eJ=r(34040);let e0=new L.Vector3,e1=new L.Vector3,e2=new L.Vector3,e3=new L.Vector2;function defaultCalculatePosition(e,t,r){let n=e0.setFromMatrixPosition(e.matrixWorld);n.project(t);let a=r.width/2,o=r.height/2;return[n.x*a+a,-(n.y*o)+o]}let epsilon=e=>1e-10>Math.abs(e)?0:e;function getCSSMatrix(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",n="matrix3d(";for(let r=0;16!==r;r++)n+=epsilon(t[r]*e.elements[r])+(15!==r?",":")");return r+n}let e5=(n=[1,-1,1,1,1,-1,1,1,1,-1,1,1,1,-1,1,1],e=>getCSSMatrix(e,n)),e4=(a=e=>[1/e,1/e,1/e,1,-1/e,-1/e,-1/e,-1,1/e,1/e,1/e,1,1,1,1,1],(e,t)=>getCSSMatrix(e,a(t),"translate(-50%,-50%)")),e8=h.forwardRef((e,t)=>
1{let{children:r,eps:n=.001,style:a,className:s,prepend:i,center:u,fullscreen:l,portal:c,distanceFactor:d,sprite:p=!1,transform:g=!1,occlude:m,onOcclude:f,castShadow:v,receiveShadow:x,material:y,geometry:R,zIndexRange:w=[16777271,0],calculatePosition:b=defaultCalculatePosition,as:_="div",wrapperClass:j,pointerEvents:S="auto",...M}=e,{gl:T,camera:E,scene:P,size:C,raycaster:k,events:G,viewport:I}=(0,B.D)(),[A]=h.useState(()=>document.createElement(_)),V=h.useRef(),O=h.useRef(null),Y=h.useRef(0),U=h.useRef([0,0]),N=h.useRef(null),z=h.useRef(null),W=(null==c?void 0:c.current)||G.connected||T.domElement.parentNode,D=h.useRef(null),Q=h.useRef(!1),F=h.useMemo(()=>{var e;return m&&"blending"!==m||Array.isArray(m)&&m.length&&(e=m[0])&&"object"==typeof e&&"current"in e},[m]);h.useLayoutEffect(()=>{let e=T.domElement;m&&"blending"===m?(e.style.position="absolute",e.style.pointerEvents="none"):(e.style.position=null,e.style.pointerEvents=null)},[m]),h.useLayoutEffect(()=>{if(O.current){let e=V.current=eJ.createRoot(A);if(P.updateMatrixWorld(),g)A.style.cssText="position:absolute;top:0;left:0;pointer-events:none;overflow:hidden;";else{let e=b(O.current,E,C);A.style.cssText="position:absolute;top:0;left:0;transform:translate3d(".concat(e[0],"px,").concat(e[1],"px,0);transform-origin:0 0;")}return W&&(i?W.prepend(A):W.appendChild(A)),()=>{W&&W.removeChild(A),e.unmount()}}},[W,g]),h.useLayoutEffect(()=>{j&&(A.className=j)},[j]);let H=h.useMemo(()=>g?{position:"absolute",top:0,left:0,width:C.width,height:C.height,transformStyle:"preserve-3d",pointerEvents:"none"}:{position:"absolute",transform:u?"translate3d(-50%,-50%,0)":"none",...l&&{top:-C.height/2,left:-C.width/2,width:C.width,height:C.height},...a},[a,u,l,C,g]),q=h.useMemo(()=>({position:"absolute",pointerEvents:S}),[S]);h.useLayoutEffect(()=>{var e,n;Q.current=!1,g?null===(e=V.current)||void 0===e||e.render((0,o.jsx)("div",{ref:N,style:H,children:(0,o.jsx)("div",{ref:z,style:q,children:(0,o.jsx)("div",{ref:t,className:s,style:a,children:r})})})):null===(n=V.current)||void 0===n||n.render((0,o.jsx)("div",{ref:t,style:H,className:s,children:r}))});let Z=h.useRef(!0);(0,B.F)(e=>{if(O.current){E.updateMatrixWorld(),O.current.updateWorldMatrix(!0,!1);let e=g?U.current:b(O.current,E,C);if(g||Math.abs(Y.current-E.zoom)>n||Math.abs(U.current[0]-e[0])>n||Math.abs(U.current[1]-e[1])>n){let r=function(e,t){let r=e0.setFromMatrixPosition(e.matrixWorld),n=e1.setFromMatrixPosition(t.matrixWorld),a=r.sub(n),o=t.getWorldDirection(e2);return a.angleTo(o)>Math.PI/2}(O.current,E),n=!1;F&&(Array.isArray(m)?n=m.map(e=>e.current):"blending"!==m&&(n=[P]));let a=Z.current;if(n){let e=function(e,t,r,n){let a=e0.setFromMatrixPosition(e.matrixWorld),o=a.clone();o.project(t),e3.set(o.x,o.y),r.setFromCamera(e3,t);let s=r.intersectObjects(n,!0);if(s.length){let e=s[0].distance,t=a.distanceTo(r.ray.origin);return t<e}return!0}(O.current,E,k,n);Z.current=e&&!r}else Z.current=!r;if(a!==Z.current&&(f?f(!Z.current):A.style.display=Z.current?"block":"none"),w[0],m&&F&&w[0],g){let[t,r]=[C.width/2,C.height/2],n=E.projectionMatrix.elements[5]*r,{isOrthographicCamera:a,top:o,left:s,bottom:i,right:u}=E,l=e5(E.matrixWorldInverse),c=a?"scale(".concat(n,")translate(").concat(epsilon(-(u+s)/2),"px,").concat(epsilon((o+i)/2),"px)"):"translateZ(".concat(n,"px)"),g=O.current.matrixWorld;p&&((g=E.matrixWorldInverse.clone().transpose().copyPosition(g).scale(O.current.scale)).elements[3]=g.elements[7]=g.elements[11]=0,g.elements[15]=1),A.style.width=C.width+"px",A.style.height=C.height+"px",A.style.perspective=a?"":"".concat(n,"px"),N.current&&z.current&&(N.current.style.transform="".concat(c).concat(l,"translate(").concat(t,"px,").concat(r,"px)"),z.current.style.transform=e4(g,1/((d||10)/400)),N.current.transformCoords=e)}else{let r=void 0===d?1:function(e,t){if(t instanceof L.Orthogra
1phicCamera)return t.zoom;if(!(t instanceof L.PerspectiveCamera))return 1;{let r=e0.setFromMatrixPosition(e.matrixWorld),n=e1.setFromMatrixPosition(t.matrixWorld),a=t.fov*Math.PI/180,o=r.distanceTo(n);return 1/(2*Math.tan(a/2)*o)}}(O.current,E)*d;A.style.transform="translate3d(".concat(e[0],"px,").concat(e[1],"px,0) scale(").concat(r,")"),t.current&&(t.current.transformCoordsX=e[0],t.current.transformCoordsY=e[1])}U.current=e,Y.current=E.zoom}}if(!F&&D.current&&!Q.current){if(g){if(N.current){let e=N.current.children[0];if((null==e?void 0:e.clientWidth)&&(null==e?void 0:e.clientHeight)){let{isOrthographicCamera:t}=E;if(t||R)M.scale&&(Array.isArray(M.scale)?M.scale instanceof L.Vector3?D.current.scale.copy(M.scale.clone().divideScalar(1)):D.current.scale.set(1/M.scale[0],1/M.scale[1],1/M.scale[2]):D.current.scale.setScalar(1/M.scale));else{let t=(d||10)/400,r=e.clientWidth*t,n=e.clientHeight*t;D.current.scale.set(r,n,1)}Q.current=!0}}}else{let t=A.children[0];if((null==t?void 0:t.clientWidth)&&(null==t?void 0:t.clientHeight)){let e=1/I.factor,r=t.clientWidth*e,n=t.clientHeight*e;D.current.scale.set(r,n,1),Q.current=!0}D.current.lookAt(e.camera.position)}}});let $=h.useMemo(()=>({vertexShader:g?void 0:'\n /*\n This shader is from the THREE\'s SpriteMaterial.\n We need to turn the backing plane into a Sprite\n (make it always face the camera) if "transfrom"\n is false.\n */\n #include <common>\n\n void main() {\n vec2 center = vec2(0., 1.);\n float rotation = 0.0;\n\n // This is somewhat arbitrary, but it seems to work well\n // Need to figure out how to derive this dynamically if it even matters\n float size = 0.03;\n\n vec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n vec2 scale;\n scale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n scale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\n bool isPerspective = isPerspectiveMatrix( projectionMatrix );\n if ( isPerspective ) scale *= - mvPosition.z;\n\n vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale * size;\n vec2 rotatedPosition;\n rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n mvPosition.xy += rotatedPosition;\n\n gl_Position = projectionMatrix * mvPosition;\n }\n ',fragmentShader:"\n void main() {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);\n }\n "}),[g]);return(0,o.jsx)("group",{...M,ref:O,children:m&&!F&&(0,o.jsxs)("mesh",{castShadow:v,receiveShadow:x,ref:D,children:[R||(0,o.jsx)("planeGeometry",{}),y||(0,o.jsx)("shaderMaterial",{side:L.DoubleSide,vertexShader:$.vertexShader,fragmentShader:$.fragmentShader})]})})});function QRIndicator_index_style_templateObject(){let e=(0,m._)(["\n 0% {\n transform: scale(1);\n }\n 10% {\n transform: scale(1.1);\n }\n 25% {\n transform: scale(1);\n }\n 100% {\n transform: scale(1);\n }\n"]);return QRIndicator_index_style_templateObject=function(){return e},e}function QRIndicator_index_style_templateObject1(){let e=(0,m._)(["\n width: ",";\n height: ",";\n background-color: transparent;\n border: none;\n display: flex;\n justify-content: center;\n align-items: center;\n opacity: ",";\n transform: translate(-52%, -50%) scale(",");\n pointer-events: ",";\n transition:\n transform 0.5s ",",\n opacity 0.5s ",";\n\n svg {\n width: 100%;\n height: 100%;\n fill: #fad148;\n animation: "," 5s infinite;\n }\n\n "," {\n opacity: 0;\n\n svg {\n animation: none;\n }\n }\n"]);return QRIndicator_index_style_templateObject1=function(){return e},e}e8.displayName="Html";let e6=(0,v.F4)(QRIndicator_index_style_templateObject()),e9=v.ZP.div.withConfig({displayName:"index.style__QRIndicatorWrapper",componentId:"sc-7745f139-0"}
1)(QRIndicator_index_style_templateObject1(),(0,f.uZ)(90,100),(0,f.uZ)(90,100),e=>e.$active?1:0,e=>e.$active?1:.7,e=>e.$hasBeenClicked?"none":"auto",_._.outExpo,_._.outExpo,e6,j.mq.$tabletL),e7=(0,h.forwardRef)((e,t)=>{let{hasBeenClicked:r,onClick:n,onMouseEnter:a,onMouseLeave:s,active:i}=e;return(0,o.jsx)(e9,{ref:t,$hasBeenClicked:r,onClick:n,onMouseEnter:a,onMouseLeave:s,$active:i,children:(0,o.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"228",height:"228",viewBox:"0 0 228 228",fill:"none",children:(0,o.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M0 199.47H6V214C6 218.418 9.58172 222 14 222H28.5299V228H14C6.26801 228 0 221.732 0 214V199.47ZM0 28.5299H6V14C6 9.58172 9.58172 6 14 6H28.5299V0H14C6.26801 0 0 6.26801 0 14V28.5299ZM199.47 0V6H214C218.418 6 222 9.58172 222 14V28.5299H228V14C228 6.26801 221.732 0 214 0H199.47ZM228 199.47H222V214C222 218.418 218.418 222 214 222H199.47V228H214C221.732 228 228 221.732 228 214V199.47Z",fill:"#FAD148"})})})});e7.displayName="QRIndicator";var te=r(16691),tt=r.n(te);let tr="".concat("/assets/models/qr","/qr.gltf");function QRModel(e){let{sheet:t,...r}=e,{nodes:n}=(0,ei.L)(tr),a=(0,C.a)("(max-width: 1024px)"),s=(0,h.useRef)(),i=(0,h.useRef)(),u=(0,h.useRef)(),l=(0,h.useRef)(),c=(0,h.useRef)(),d=(0,h.useRef)();useTextureParams(t,[s,i]);let p=(0,V._)(e=>e.qrMap),m=(0,V._)(e=>e.qrSignMap);return(0,er.G)(p,s),(0,er.G)(m,i),(0,h.useEffect)(()=>{d.current&&d.current.kill(),r.showHtmlImage?d.current=g.p8.to(l.current,{opacity:1,duration:.5,delay:1.5}):d.current=g.p8.to(l.current,{opacity:0,duration:0})},[r.showHtmlImage]),(0,h.useEffect)(()=>{let handleResize=()=>{clearTimeout(c.current),g.p8.to(u.current,{opacity:0,duration:0}),c.current=setTimeout(()=>{handleResizeEnd()},100)},handleResizeEnd=()=>{r.showHtmlImage&&g.p8.to(u.current,{opacity:1,duration:.5})};return window.addEventListener("resize",handleResize),()=>{window.removeEventListener("resize",handleResize)}},[]),(0,o.jsxs)("group",{...r,dispose:null,children:[(0,o.jsx)(e8,{style:{pointerEvents:"none"},ref:u,scale:1,rotation:[-Math.PI,-Math.PI/2,0],position:[-23.925,29.83,-60.71],children:(0,o.jsx)("div",{ref:l,style:{width:"".concat(2764*(a?.1:.161),"px"),height:"".concat(4150*(a?.1:.161),"px"),clipPath:"inset(2px 10px 9px 2px)"},children:(0,o.jsx)(tt(),{src:"/assets/models/qr/images/desktop/Sign.webp",alt:"Sign",width:2764,height:4150,style:{width:"100%",height:"auto"}})})}),(0,o.jsx)("mesh",{geometry:n.Garage.geometry,children:(0,o.jsx)(eC,{ref:s})}),(0,o.jsxs)("mesh",{position:[-23.925,22.575,-65.55],scale:1.01,rotation:[-Math.PI,-Math.PI/2,0],children:[(0,o.jsx)(eC,{ref:i,side:2,opacity:1,transparent:!0}),(0,o.jsx)("planeGeometry",{args:[9.6,14.375]})]})]})}function QRScene(e){let{sheet:t}=e,r=(0,d.Mi)(t,"QR"),[n,a]=(0,h.useState)(!0),s=(0,h.useRef)(),i=(0,h.useRef)(),p=(0,u.w)(e=>e.setSceneQr),g=(0,u.w)(e=>e.currentScene),m=(0,h.useRef)(),f=(0,h.useRef)(),v=(0,h.useRef)(),[x,y]=(0,h.useState)(0),[w,b]=(0,h.useState)(!0),[_,j]=(0,h.useState)(!0),[S,M]=(0,h.useState)(!1),[T,P]=(0,h.useState)(!1),[C,k]=(0,h.useState)(!0),G=(0,l.o)(e=>e.setStep),[I,A]=(0,h.useState)(!1),V=(0,h.useRef)(),L=(0,B.D)(e=>e.gl),O=(0,B.D)(e=>e.size);return(0,h.useEffect)(()=>{let e=window.matchMedia("(hover: hover)"),t=e.matches;k(t)},[n]),(0,h.useEffect)(()=>{p(s)}
1,[L,O,p]),(0,h.useEffect)(()=>{a(g===c.Y.QR||g===c.Y.QR_OVERLAY)},[g]),(0,h.useEffect)(()=>{g===c.Y.QR_OVERLAY&&n?(clearTimeout(V.current),y(4),M(!1),b(!1),j(!1)):g===c.Y.QR&&n?(y(0),M(C),A(!1),j(!0),V.current=setTimeout(()=>{b(!0)},1500)):n||(clearTimeout(V.current),b(!1),j(!1))},[n,g,C]),(0,h.useEffect)(()=>{if(!n||!f.current||C)return;let e=f.current.getBoundingClientRect(),t=e.x+e.width/2,r=e.y+e.height/2;v.current.setMouseCoords(t,r)},[n,C]),(0,o.jsxs)(eX,{ref:s,camera:i,active:n,blurAmount:x,children:[(0,o.jsx)(eb,{ref:i,position:{x:0,y:0,z:200},zoom:46,center:{x:5.39,y:3.11,z:-21.9},panning:{x:5,y:5},sheet:r,active:n}),(0,o.jsx)(QRModel,{showHtmlImage:_,onPointerMove:e=>{m.current&&C&&v.current.setMouseCoords(e.clientX,e.clientY)},sheet:r,rotation:[0,-Math.PI/2,0],position:[-60,-20,0]}),n&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(e8,{ref:m,scale:1,rotation:[0,0,0],position:[8.425,7.225,-23.9],children:(0,o.jsx)(e7,{ref:f,hasBeenClicked:I,onClick:()=>{I||(!C&&window.innerWidth>R.A.$tabletL?(M(!0),P(!0),setTimeout(()=>{G(4)},400)):G(4),A(!0))},onMouseEnter:()=>{eT.nI?P(!0):P(!1)},onMouseLeave:()=>P(!1),active:w})}),(0,o.jsx)(E,{ref:v,active:S,hover:T,hideCaption:!C})]})]})}ei.L.preload(tr);let QrOverlayBackgroundMaterialImpl=class QrOverlayBackgroundMaterialImpl extends L.MeshBasicMaterial{onBeforeCompile(e){e.uniforms.uResolution=this._resolution,e.uniforms.uBg=this._bg,e.fragmentShader="\n uniform vec2 uResolution;\n uniform sampler2D uBg;\n ".concat(e.fragmentShader,"\n "),e.fragmentShader=e.fragmentShader.replace("#include <opaque_fragment>","\n vec2 screenSpace = gl_FragCoord.xy / uResolution.xy;\n vec4 bg = texture2D(uBg, screenSpace);\n // darken\n bg.rgb = mix(bg.rgb, vec3(0.03), 0.75);\n \n gl_FragColor = bg;\n ")}get bg(){return this._bg.value}set bg(e){this._bg.value=e}get resolution(){return this._resolution.value}set resolution(e){this._resolution.value=e}constructor(e){super(e),this.setValues(e),this._resolution={value:{x:innerWidth,y:innerHeight}},this._bg={value:null}}};let tn=(0,h.forwardRef)((e,t)=>{let{...r}=e,[n]=(0,h.useState)(()=>new QrOverlayBackgroundMaterialImpl);return(0,B.F)(e=>{let{size:t,viewport:r}=e;n.resolution={x:t.width*r.dpr,y:t.height*r.dpr}}),(0,o.jsx)("primitive",{object:n,ref:t,attach:"material",...r})});tn.displayName="qrOverlayBackgroundMaterial";var ta=r(39638);let to="/assets/models/phone/Smart-Phone.glb",ts=(0,h.forwardRef)((e,t)=>{let{nodes:r,materials:n}=(0,ei.L)(to),{setStep:a}=(0,l.o)(),s=(0,h.useRef)(),i=(0,h.useRef)(),u=(0,h.useRef)(),[c,d]=(0,h.useState)(!1);(0,h.useImperativeHandle)(t,()=>({setOpacity(e){i.current.material.opacity=e,u.current.material.opacity=e},setRotation(e){s.current.rotation.x=e.x,s.current.rotation.y=e.y,s.current.rotation.z=e.z},setPosition(e){s.current.position.copy(e)}}),[]);let p=(0,ta.y)("/assets/onboarding.mp4",{start:!1});return(0,h.useEffect)(()=>(p.flipY=!1,e.active&&function(){let e=p.source.data,[t,r]=[0,6.8];e.currentTime=t,setTimeout(()=>{e.play()},1300),e.ontimeupdate=function(){e.currentTime>=r&&(e.pause(),e.ontimeupdate=null,d(!0))}}(),()=>{d(!1)}),[p,e.active]),(0,o.jsx)(o.Fragment,{children:(0,o.jsx)("group",{ref:s,...e,dispose:null,onPointerOver:()=>{c&&(document.body.style.cursor="pointer")},onPointerOut:()=>{c&&(document.body.style.cursor="default")},onClick:()=>{c&&a(5)},children:(0,o.jsxs)("group",{position:[.1,.341,-.069],children:[(0,o.jsx)("mesh",{ref:i,geometry:r.Case.geometry,material:n.Case,position:[-.1,-.341,.069]}),(0,o.jsx)("mesh",{ref:u,geometry:r.Screen.geometry,material:r.Screen.material,position:[-.1,-.341,.078],children:(0,o.jsx)("meshStandardMaterial",{map:p,emissive:"#FFF",emissiveMap:p,emissiveIntensity:.35,color:"#FFF",metalness:.25,roughness:0})})]})})})});function QROverlayCanvas(e){let{sheet:t}=e,r=(0,h.useRef)(),n=(0,h.useRef)();(0,h.useRef)();let a=(0,h.useRef)(),s=(0,d.Mi)(t,c.Y.QR_OVERLAY),[i,l]=(0,h.useState)(!1),g=(0,u.w)(e=>e.currentScene),m=(0,h.useRef)(),f=(0,d.l7)(s,"Phone",{position:p.types.compound({x:p.types.number(0,{nudgeMultiplier:.01,range:[-200,200]}),y:p.types.number(0,{nudgeMultiplier:.01,range:[-200,200]}),z:p.types.number(0,{nudgeMultiplier:.01,range:[-200,200]})}),rotation:p.types.compound({x:p.types.number(0,{nudgeMultiplier:.01,range:[-Math.PI,Math.PI]}),y:p.types.number(0,{nudgeMultiplier:.01,range:[-Math.PI,Math.PI]}),z:p.types.number(0,{nudgeMultiplier:.01,range:[-Math.PI,Math.PI]})}),opacity:p.types.number(1,{nudgeMultiplier:.01,range:[0,1]})});(0,d.GT)(f,e=>{a.current&&(a.current.setPosition&&a.current.setPosition(e.position),a.current.setRotation&&a.current.setRotation(e.rotation),a.current.setOpacity&&a.current.setOpacity(e.opacity))}),(0,h.useEffect)(()=>(l(g===c.Y.QR_OVERLAY),g===c.Y.QR_OVERLAY&&(s.sequence.pause(),s.sequence.position=0,m.current=setTimeout(()=>{s.sequence.play()},300)),()=>{clearTimeout(m.current)}),[g,s,r]),(0,h.useEffect)(()=>{a.current&&!i&&a.current.setOpacity&&a.current.setOpacity(0)},[a,i]);let v=(0,h.useRef)(),x=(0,h.useRef)(),y=(0,u.w)(e=>e.setSceneQrOverlay),R=(0,B.D)(e=>e.gl),w=(0,B.D)(e=>
1e.size),b=(0,u.w)(e=>e.sceneQr);return(0,h.useEffect)(()=>{b.current&&x.current&&(x.current.bg=b.current.texture)},[b,x]),(0,h.useEffect)(()=>{y(v)},[R,w,y]),(0,o.jsxs)(eM,{ref:v,camera:n,active:i,children:[(0,o.jsxs)("mesh",{position:[0,0,-10],children:[(0,o.jsx)("planeGeometry",{args:[200,200]}),(0,o.jsx)(tn,{ref:x,color:"black"})]}),(0,o.jsx)("ambientLight",{intensity:1}),(0,o.jsx)("directionalLight",{color:"white",position:[10,-10,-10],intensity:5}),(0,o.jsx)("directionalLight",{color:"white",position:[-5,10,-5],intensity:5}),(0,o.jsx)(eL.qA,{files:"/assets/Parking_Lot_Sunny.hdr",environmentIntensity:1.5,environmentRotation:[0,Math.PI/2,0],resolution:128}),(0,o.jsx)(eY.v,{ref:n,sheet:s,position:{x:0,y:0,z:100},panning:{x:25,y:25},mousePanningFactor:1}),(0,o.jsx)(ts,{active:i,onPointerOver:()=>{},ref:a,scale:25})]})}ts.displayName="QROverlayPhone",ei.L.preload(to),r(39560);var ti=r(28811),tu=r.n(ti);let tl=tu()(()=>Promise.all([r.e(603),r.e(133),r.e(576)]).then(r.bind(r,55576)),{loadableGenerated:{webpack:()=>[55576]},ssr:!1}),MainScene=e=>{let{introSceneCta:t}=e,[r,n]=(0,h.useState)(!1);return(0,h.useEffect)(()=>{let e=new URLSearchParams(window.location.search),t=e.get("studio");null!==t&&n(!0)},[]),(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(IntroScene,{sheet:k.Q,cta:t}),(0,o.jsx)(Take01,{sheet:k.Q}),(0,o.jsx)(QRScene,{sheet:k.Q}),(0,o.jsx)(QROverlayCanvas,{sheet:k.Q}),(0,o.jsx)(Take02,{sheet:k.Q}),(0,o.jsx)(Take01_Take01,{sheet:k.Q}),(0,o.jsx)(Take02_Take02,{sheet:k.Q}),r&&(0,o.jsx)(tl,{}),(0,o.jsx)(et,{sheet:k.Q})]})};var gl=e=>{let{signOne:t,signTwo:r,introSceneCta:n,driveIn:a,driveOut:s,outsideSign:i,insideSign:u}=e,[c,d]=(0,h.useState)(!1),p=(0,h.useRef)(),m=(0,C.a)("(max-width: 1024px)");(0,h.useEffect)(()=>{let e=new URLSearchParams(window.location.search),t=e.get("stats");null!==t&&d(!0)},[]);let f=(0,l.o)(e=>e.loaderComplete);return console.log(i),(0,h.useEffect)(()=>{f&&g.p8.fromTo(p.current,{opacity:0,scale:.8},{scale:1,opacity:1,duration:1.2,ease:"power2.out",delay:2.75})},[f]),(0,o.jsxs)("div",{style:{position:"fixed",width:"100%",height:"100%",top:0,left:0,zIndex:A.W.gl},children:[(0,o.jsxs)("div",{style:{position:"absolute",width:"100%",height:"100%",top:0,left:0,backgroundColor:"white",clipPath:"url(#canvas-mask)"},children:[(0,o.jsxs)(I.Xz,{dpr:[1,1.175],ref:p,children:[(0,o.jsx)(MainScene,{introSceneCta:n}),c&&(0,o.jsx)(G.j,{}),(0,o.jsx)(U,{device:m?"mobile":"desktop",signOne:t,signTwo:r,driveIn:a,driveOut:s,outsideSign:i,insideSign:u})]}),(0,o.jsx)(ui_CanvasMask,{sheet:k.Q})]}),(0,o.jsx)(QRCursor,{}),(0,o.jsx)(ui_SceneActions,{})]})}}}]);
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.