@epigraph/configurator 1.13.2 → 1.13.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +2 -2
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -9192,7 +9192,7 @@ return orthographicDepthToViewZ(depth,cameraNear,cameraFar);
9192
9192
  `+b),this.needsDepthTexture=this.getDepthTexture()===null):this.needsDepthTexture=!1,o.colorSpace===SRGBColorSpace$1&&(b+=`color0 = sRGBToLinear(color0);
9193
9193
  `),o.uvTransformation?(_e=`vec2 transformedUv = vUv;
9194
9194
  `+_e,o.defines.set("UV","transformedUv")):o.defines.set("UV","vUv"),o.shaderParts.set(EffectShaderSection.FRAGMENT_HEAD,a),o.shaderParts.set(EffectShaderSection.FRAGMENT_MAIN_IMAGE,b),o.shaderParts.set(EffectShaderSection.FRAGMENT_MAIN_UV,_e);for(const[rn,sn]of o.shaderParts)sn!==null&&o.shaderParts.set(rn,sn.trim().replace(/^#/,`
9195
- #`));this.skipRendering=s===0,this.needsSwap=!this.skipRendering,this.fullscreenMaterial.setShaderData(o)}recompile(){this.updateMaterial()}getDepthTexture(){return this.fullscreenMaterial.depthBuffer}setDepthTexture(o,s=BasicDepthPacking){this.fullscreenMaterial.depthBuffer=o,this.fullscreenMaterial.depthPacking=s;for(const a of this.effects)a.setDepthTexture(o,s)}render(o,s,a,b,_e){for(const bt of this.effects)bt.update(o,s,b);if(!this.skipRendering||this.renderToScreen){const bt=this.fullscreenMaterial;bt.inputBuffer=s.texture,bt.time+=b*this.timeScale,o.setRenderTarget(this.renderToScreen?null:a),o.render(this.scene,this.camera)}}setSize(o,s){this.fullscreenMaterial.setSize(o,s);for(const a of this.effects)a.setSize(o,s)}initialize(o,s,a){this.renderer=o;for(const b of this.effects)b.initialize(o,s,a);this.updateMaterial(),a!==void 0&&a!==UnsignedByteType&&(this.fullscreenMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1")}dispose(){super.dispose();for(const o of this.effects)o.removeEventListener("change",this.listener),o.dispose()}handleEvent(o){switch(o.type){case"change":this.recompile();break}}},NormalPass=class extends Pass{constructor(o,s,{renderTarget:a,resolutionScale:b=1,width:_e=Resolution.AUTO_SIZE,height:bt=Resolution.AUTO_SIZE,resolutionX:rn=_e,resolutionY:sn=bt}={}){super("NormalPass"),this.needsSwap=!1,this.renderPass=new RenderPass(o,s,new MeshNormalMaterial);const yn=this.renderPass;yn.ignoreBackground=!0,yn.skipShadowMapUpdate=!0;const Pn=yn.getClearPass();Pn.overrideClearColor=new Color$1(7829503),Pn.overrideClearAlpha=1,this.renderTarget=a,this.renderTarget===void 0&&(this.renderTarget=new WebGLRenderTarget(1,1,{minFilter:NearestFilter,magFilter:NearestFilter}),this.renderTarget.texture.name="NormalPass.Target");const zn=this.resolution=new Resolution(this,rn,sn,b);zn.addEventListener("change",ar=>this.setSize(zn.baseWidth,zn.baseHeight))}set mainScene(o){this.renderPass.mainScene=o}set mainCamera(o){this.renderPass.mainCamera=o}get texture(){return this.renderTarget.texture}getTexture(){return this.renderTarget.texture}getResolution(){return this.resolution}getResolutionScale(){return this.resolution.scale}setResolutionScale(o){this.resolution.scale=o}render(o,s,a,b,_e){const bt=this.renderToScreen?null:this.renderTarget;this.renderPass.render(o,bt,bt)}setSize(o,s){const a=this.resolution;a.setBaseSize(o,s),this.renderTarget.setSize(a.width,a.height)}};const coreSceneStore=create$3((o,s)=>({CORE_API:null,coreReady:void 0,frameloop:"always",hoveredGhostIndex:-1,itemDraggedSkuID:null,screenshotRenderer:new WebGLRenderer({antiAlias:!0,preserveDrawingBuffer:!0}),screenshotCamera:new PerspectiveCamera(75,1.33,.1,1e3),builderMode:!1,dragging:!1,bbox:null,draggingItemGUID:null,sceneRef:null,cssLoaded:!1,sceneHasDefaultConfigurationID:!1,configurationLoaded:!0,preconfigurationLoaded:!1,configurationLoadedOnRestart:!0,cursorParentRef:null,glContext:null,canvasTooltipText:"",canvasSize:{width:600,height:600},boundData:{center:new Vector3(0,0,0),size:new Vector3(0,0,0)},showDimensions:!1,autoFocusTrigger:0,cameraActive:!1,autoFocusRef:null,alertData:{},persistantAlertData:null,alertQueue:[],currentAlertData:null,alertSettings:null,draggingOnDropCollisionData:null,multipleTouchDetected:!1,isMobile:!1,isTouchDevice:!1,isTablet:!1,isDesktop:!0,isLandscape:!1,sceneSettings:{usdzMaxTextureSize:1024,usdzPrecision:7,swappableRoot:!0,ghostColorOnHoverWithDraggableUi:{r:153,g:252,b:0,a:1},preserveDrawingBuffer:!1,showSaveBtn:!0,showShareBtn:!0,showResetBtn:!0,showDimensionBtn:!0,showViewInYourSpaceBtn:!0,showDependencyOnHover:!1,showContextMenu:!0,showHotspotsBtn:!0,showInstructionsBtn:!1,showInstructionsOnStartup:!1,sceneScaleUnit:"ft",arPlacement:"floor",arTransforms:{position:[0,0,0],rotation:[0,0,0],scale:[1,1,1]},currency:"$",disableDragDrop:!1,ignoreSpawningCollision:!1,disableCollider:!1,disableContextMenu:!1,ghostColor:{r:10,g:10,b:10,a:.2},ghostScale:[1,1,1],ghostAsWireframe:!1,draggableUI:!1,addFromInfoModal:!1,clickToAddUi:!0,accordionInBuildUi:!1,outOfStock_EmissiveColor:{r:250,g:50,b:0},outOfStock_EmissiveIntensity:.002,defaultConfigurationID:null,emptySceneText:null,emptySceneTextFontSize:"2rem",addToCartCTAText:"Add To Cart",ignoreCollisionPostDragging:!1,comboPlugDistanceThreshold:.05,disableCart:!1,dimensionColor:{r:0,g:0,b:0},disableLocalColorOverride:!1,analyticsEventPrefix:"",outlineSettings:{multisampling:10,visibleEdgeColor:new Color$1("#0f0").convertSRGBToLinear(),hiddenEdgeColor:new Color$1("#0f0").convertSRGBToLinear(),blur:3,width:1e3,edgeStrength:1e3,blendFunction:BlendFunction.ALPHA,pulseSpeed:0,xRay:!0},textSettings:{arButtonLabel:"AR",arHoverLabel:"View In Your Space",restartButtonLabel:"Restart",restartHoverLabel:"Restart",saveButtonLabel:"Save",saveHoverLabel:"Save",shareButtonLabel:"Share",shareHoverLabel:"Share",sizeButtonLabel:"Size",sizeHoverLabel:"Size",hotspotsButtonLabel:"Hotspots",hotspotsHoverLabel:"Hotspots",instructionsButtonLabel:"Instructions",instructionsHoverLabel:"Instructions",cartQuantityText:"Qty",reviewButtonText:"Review",cartHeadingText:"Review Products",buildTabHeadingText:"Build",colorTabHeadingText:"Color",featuresTabHeadingText:"Features",tooltipEmptySceneText:"",tooltipInstructionText:"-Drag to rotate the camera-"},variantsTabOrder:{color:{enabled:!0,priority:1},geometryVariants:{enabled:!0,priority:2}},boundingBoxLeeway:.9,contactShadowVisibility:!0,measurementPrecision:2,disableAlerts:!1,focusCameraOnGhosts:!0,alertLevel:2999,alertControl:{default:!0,itemAdded:!0,geometryVariantChanged:!0,overridesRemoved:!0,materialVariantChanged:!0,itemRemoved:!0,itemRepositioned:!0,configurationSaved:!0,linkCopied:!0,outOfStock:!0,unvisualizedItemSpawn:!0},screenshotCameras:[{position:new Vector3(-2.5,.6,-5),rotation:new Vector3(-3.1097068566150314,-.6437852162982552,-3.122449778846033)},{position:new Vector3(3,1,-5),rotation:new Vector3(-.5,1,.5)}],instructionsSettings_desktop:[{header:"Add to Scene",description:"Click to add individual modules to the scene.",lottieURL:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Non-Furniture/Non-furniture_Step_1A_Drag_Drop/Non-furniture_Step_1A.json"},{header:"Rearrange Modules",description:"Drag & drop individual modules in the scene to rearrange.",lottieURL:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Non-Furniture/Non-furniture_Step_2/Non-furniture_Step_2.json"},{header:"Remove Modules",description:"Click to select and remove individual modules from the scene.",lottieURL:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Non-Furniture/Non-furniture_Step_3/Non-furniture_Step_3.json"}],instructionsSettings_mobile:[{header:"Add to Scene",description:"Click to add individual modules to the scene.",lottieURL:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Non-Furniture/Non-furniture_Step_1A_Drag_Drop_Mobile/Mobile_Non-furniture_Step_1A.json"},{header:"Rearrange Modules",description:"Drag & drop individual modules in the scene to rearrange.",lottieURL:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Non-Furniture/Non-furniture_Step_2/Non-furniture_Step_2.json"},{header:"Remove Modules",description:"Tap to select and remove individual modules from the scene.",lottieURL:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Non-Furniture/Non-furniture_Step_3/Non-furniture_Step_3.json"}],defaultInstructionsSettings:{step1_drag:{mobile:{header:"Add to Scene",description:"Drag & drop individual modules to add to the scene.",lottieURL:{furniture:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Furniture/Furniture_Step_1A_Drag_Drop_Mobile/Mobile_Furniture_Step_1A.json",nonFurniture:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Non-Furniture/Non-furniture_Step_1A_Drag_Drop_Mobile/Mobile_Non-furniture_Step_1A.json"}},desktop:{header:"Add to Scene",description:"Drag & drop individual modules to add to the scene.",lottieURL:{furniture:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Furniture/Furniture_Step_1A_Drag_Drop/Furniture_Step_1A.json",nonFurniture:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Non-Furniture/Non-furniture_Step_1A_Drag_Drop/Non-furniture_Step_1A.json"}}},step1_add:{mobile:{header:"Add to Scene",description:"Click to add individual modules to the scene.",lottieURL:{furniture:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Furniture/Furniture_Step_1B_Click_Add_Mobile/Mobile_Furniture_Step_1B.json",nonFurniture:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Non-Furniture/Non-furniture_Step_1B_Click_Add_Mobile/Mobile_Non-furniture_Step_1B.json"}},desktop:{header:"Add to Scene",description:"Click to add individual modules to the scene.",lottieURL:{furniture:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Furniture/Furniture_Step_1B_Click_Add/Furniture_Step_1B.json",nonFurniture:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Non-Furniture/Non-furniture_Step_1B_Click_Add/Non-furniture_Step_1B.json"}}},step2:{mobile:{header:"Rearrange Modules",description:"Drag & drop individual modules in the scene to rearrange.",lottieURL:{furniture:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Furniture/Furniture_Step_2/Furniture_Step_2.json",nonFurniture:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Non-Furniture/Non-furniture_Step_2/Non-furniture_Step_2.json"}},desktop:{header:"Rearrange Modules",description:"Drag & drop individual modules in the scene to rearrange.",lottieURL:{furniture:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Furniture/Furniture_Step_2/Furniture_Step_2.json",nonFurniture:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Non-Furniture/Non-furniture_Step_2/Non-furniture_Step_2.json"}}},step3:{mobile:{header:"Remove Modules",description:"Tap to select and remove individual modules from the scene.",lottieURL:{furniture:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Furniture/Furniture_Step_3/Furniture_Step_3.json",nonFurniture:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Non-Furniture/Non-furniture_Step_3/Non-furniture_Step_3.json"}},desktop:{header:"Remove Modules",description:"Click to select and remove individual modules from the scene.",lottieURL:{furniture:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Furniture/Furniture_Step_3/Furniture_Step_3.json",nonFurniture:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Non-Furniture/Non-furniture_Step_3/Non-furniture_Step_3.json"}}}}},setCSSLoaded:a=>{o({cssLoaded:a})},actions:{popFromAlertQueue:()=>{const{alertQueue:a}=s();return a.shift(),o({alertQueue:a}),a},addToAlertQueue:a=>{const{alertQueue:b,currentAlertData:_e}=s();return b.length>0&&b[b.length-1].alertId&&a.alertId===b[b.length-1].alertId||b.length==0&&_e&&_e.alertId&&_e.alertId==a.alertId||(b.push(a),o({alertQueue:b})),b},getDeviceState:()=>{const{isDesktop:a,isMobile:b,isTablet:_e,isTouchDevice:bt,isLandscape:rn}=s();return{isDesktop:a,isMobile:b,isTablet:_e,isTouchDevice:bt,isLandscape:rn}},enableCart:()=>{const{sceneSettings:a}=s();a.disableCart=!1,inventoryStore.getState().actions.refreshInventory(itemStore.getState().itemsSpawned),CORE_API.fireEvent(CORE_API.EVENTS.SCENE.Cart_StatusUpdated,{disableCart:!1})},disableCart:()=>{const{sceneSettings:a}=s();a.disableCart=!0,inventoryStore.getState().actions.refreshInventory(itemStore.getState().itemsSpawned),CORE_API.fireEvent(CORE_API.EVENTS.SCENE.Cart_StatusUpdated,{disableCart:!0})},getSceneSettings:()=>{const{sceneSettings:a}=s();return a},sendAlert:a=>{o({alertData:{...a}})},switchCursor(a){const{cursorParentRef:b}=s();if(!b)return;let _e="";switch(a){default:case CURSORS.GRAB:_e="grabCursor";break;case CURSORS.GRABBING:_e="grabbingCursor";break;case CURSORS.BLOCKED:_e="blockedCursor";break;case CURSORS.POINTER:_e="pointerCursor";break;case CURSORS.MOVE:_e="moveCursor";break}for(let bt=0;bt<b.classList.length;bt++)b.classList[bt].includes("Cursor")&&b.classList.remove(b.classList[bt]);b.classList.add(_e)},setAlertSettings:a=>{o({alertSettings:a})},async completeDropItem(){const a=attachmentStore$1.getState().attachmentSystem,{draggingOnDropCollisionData:b}=s(),{node:_e,attachedChildrenGuids:bt,collidingStatus:rn,intersectingGhostObject:sn,initPosition:yn,initRotation:Pn,detachedPlugs:zn,attachedNodesToCurrentNode:ar}=b;CORE_API.alert({alertMsg:"Item(s) have been removed",alertTime:7e3,alertType:"info",alertLabel:"Item(s) Removed",alertId:"itemRemoved"});for(const[es,Ur]of bt.entries())rn[es]===!0&&await itemStore.getState().actions.removeItemByGUID(Ur);const lr=sn.userData;let cr=_e.getPlugByName(lr.incomingPlugName),hr=a.currentStructure.getPlugByGUID(lr.receiverPlugGUID);_e.ref.position.set(sn.position.x,sn.position.y,sn.position.z),_e.ref.setRotationFromEuler(sn.rotation),_e.transform={position:sn.position,rotation:sn.quaternion},a.currentStructure.connectPlugs({incomingPlug:cr,receiverPlug:hr}),ghostStore.getState().actions.clearAllGhosts(),itemStore.getState().actions.deselectItem(),ar.map(es=>{_e.ref.parent.attach(es.ref),es.transform={position:es.ref.position,rotation:es.ref.quaternion},_e.dragging=!1,es.dragging=!1}),await attachmentStore$1.getState().actions.updateFittingSkuIds()},async revertDropItem(){const a=attachmentStore$1.getState().attachmentSystem,{draggingOnDropCollisionData:b}=s(),{node:_e,attachedChildrenGuids:bt,collidingStatus:rn,intersectingGhostObject:sn,initPosition:yn,initRotation:Pn,detachedPlugs:zn,attachedNodesToCurrentNode:ar}=b;CORE_API.alert({alertMsg:"Position of item"+_e.skuID+"is being moved to it's original position",alertTime:4e3,alertType:"info",alertLabel:"Repositioning",alertId:"itemRepositioned"});const lr=zn.neighbourDetachedPlugs;lr&&(zn.neighbourNode.detachNodeFromReceiver(),a.currentStructure.connectPlugs({incomingPlug:lr.incomingPlug,receiverPlug:lr.receiverPlug}));let cr=zn.rootDetachedPlugs.incomingPlug,hr=zn.rootDetachedPlugs.receiverPlug;_e.ref.position.set(yn.x,yn.y,yn.z),_e.ref.setRotationFromEuler(Pn);let es=new Quaternion().identity();_e.ref.getWorldQuaternion(es),_e.transform={position:yn,rotation:es},a.currentStructure.connectPlugs({incomingPlug:cr,receiverPlug:hr}),ghostStore.getState().actions.clearAllGhosts(),itemStore.getState().actions.deselectItem(),ar.map(Ur=>{_e.ref.parent.attach(Ur.ref),Ur.transform={position:Ur.ref.position,rotation:Ur.ref.quaternion},_e.dragging=!1,Ur.dragging=!1}),await attachmentStore$1.getState().actions.updateFittingSkuIds()},setCoreSettings:a=>{const{sceneSettings:b,isMobile:_e,isTouchDevice:bt,isLandscape:rn,actions:sn}=s(),yn=_e===!0?"mobile":"desktop",Pn=["showSave","showShare","showReset","showDimension","showHotspots","showInstructionsBtn","showViewInYourSpace","showContextMenu","showInstructionsOnStartup","draggableUI","clickToAddUi","textSettings","alertControl","variantsTabOrder","emptySceneTextFontSize","instructionsSettings"];for(const zn of Pn)if(zn==="draggableUI"||zn==="clickToAddUi"||zn==="emptySceneTextFontSize"||zn==="showInstructionsOnStartup"||zn==="showInstructionsBtn"||zn==="instructionsSettings"){const lr=`${zn}_${rn===!1&&bt===!0?"mobile":"desktop"}`;a[lr]!==void 0?b[zn]=a[lr]:b[lr]!==void 0&&(b[zn]=b[lr])}else if(zn==="textSettings"||zn==="variantsTabOrder"||zn==="alertControl"||zn==="outlineSettings"){if(a.hasOwnProperty(zn)){let ar=b[zn];Object.keys(ar).map(lr=>{let cr=a[zn];cr.hasOwnProperty(lr)?(lr==="visibleEdgeColor"||lr==="hiddenEdgeColor")&&(cr[lr]=new Color$1(cr[lr]).convertSRGBToLinear()):cr[lr]=ar[lr]})}}else{const ar=`${zn}_${yn}`;if(a[ar]!==void 0){let lr=`${zn}Btn`;zn=="showContextMenu"&&(lr=`${zn}`),b[lr]=a[ar]}}a.disableCart===!0&&sn.disableCart(),Object.keys(a).map(zn=>b[zn]=a[zn]),b.emptySceneText===null&&(b.emptySceneTextFontSize=_e?"1.2rem":"1.5rem",b.draggableUI===!0?b.emptySceneText="Drag an item here to get started":b.emptySceneText="Select an item to get started"),o({sceneSettings:{...b,ghostThreeColor:{r:b.ghostColor.r/255,g:b.ghostColor.g/255,b:b.ghostColor.b/255,a:b.ghostColor.a/255},draggableUiGhostThreeColorOnHover:{r:b.ghostColorOnHoverWithDraggableUi.r/255,g:b.ghostColorOnHoverWithDraggableUi.g/255,b:b.ghostColorOnHoverWithDraggableUi.b/255,a:b.ghostColorOnHoverWithDraggableUi.a/255}}})},triggerAutoFocus:(a=null)=>o(b=>({autoFocusRef:a,autoFocusTrigger:b.autoFocusTrigger+1})),requestNewScreenshot:async(a,b)=>new Promise(async(_e,bt)=>{LOGGER.info({title:"Taking a screenshot"});const{screenshotRenderer:rn,sceneRef:sn,screenshotCamera:yn,canvasSize:Pn}=s(),zn=await CORE_API.getCurrentCameraDetails();if(rn.setClearColor(16777215),yn.copy(zn),a!==null&&(yn.position.copy(a.position),yn.rotation.copy(new Euler(a.rotation.x,a.rotation.y,a.rotation.z))),b==null?rn.setSize(Pn.width,Pn.height):rn.setSize(b.width,b.height),rn.render(sn.parent,yn),rn.preserveDrawingBuffer===!1)LOGGER.warn({title:"Preserve Drawing Buffer must be enabled to take a screenshot. Please make sure to enable this within the project input data coreSettings"}),bt({success:!1,imageData:null});else{LOGGER.info({title:"Downloading the screenshot"});const ar=rn.domElement.toDataURL("image/png").replace("image/png","image/octet-stream");_e({success:!0,imageData:ar})}})}})),hotspotIdPrefix="rd",hotspotIdSeparator="_";function generateHotspotAbsoluteID(o,s){return`${hotspotIdPrefix}${hotspotIdSeparator}${o}${hotspotIdSeparator}${s}`}async function wait(o){return LOGGER.info({title:`Waiting for ${o}ms`}),new Promise((s,a)=>{setTimeout(()=>{s(!0)},o)})}function compareObjects(o,s){if(o===null||s===null)return!1;for(let a in o)if(o.hasOwnProperty(a)&&s.hasOwnProperty(a)&&o[a]!==s[a])return!1;return Object.keys(o).length===Object.keys(s).length}const saveStructureToCMS=o=>{const s={method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)};return fetch(SAVE_CONFIG_ENDPOINT,s)},mobileCheck=function(){let o=!1;return function(s){(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(s)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(s.substr(0,4)))&&(o=!0)}(navigator.userAgent||navigator.vendor||window.opera),o};function isIpadOS(){return navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)}function tabletCheck(){const o=navigator.userAgent.toLowerCase(),s=/(ipad|tablet|(android(?!.*mobile))|(windows(?!.*phone)(.*touch))|kindle|playbook|silk|(puffin(?!.*(IP|AP|WP))))/.test(o);return s||isIpadOS()}function touchDeviceCheck(){return"ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0}async function getJSONFromEndpoint(o){let s={data:null,report:"",success:!1};try{const b=await(await fetch(o)).text();s.data=JSON.parse(b),s.success=!0,s.report="Successfully fetched JSON data."}catch(a){s.report=a,CORE_API.alert({alertMsg:"",alertTime:5e3,alertType:"warn",alertLabel:"Preload Failed"})}return s}const addVector=(o,s)=>new Vector3(o[0]+s[0],o[1]+s[1],o[2]+s[2]),Vec3ToArr=o=>[o.x,o.y,o.z],ArrToVec3=o=>new Vector3(o[0],o[1],o[2]),findMeshAndCloneMatFromScene=(o,s=!0)=>{let a=[];const b=coreSceneStore.getState().sceneSettings.outOfStock_EmissiveColor,_e=coreSceneStore.getState().sceneSettings.outOfStock_EmissiveIntensity;return o.traverse(bt=>{bt.isMesh&&(bt.material.userData.cloned?bt.material.userData.inStock!==s&&(s?(bt.material.emissive.set(new Color$1(255,255,255)),bt.material.emissiveIntensity=0):(bt.material.emissive.set(new Color$1(b.r,b.g,b.b)),bt.material.emissiveIntensity=_e),bt.material.userData.inStock=s):(bt.material=bt.material.clone(),bt.material.userData.inStock=s,bt.material.userData.cloned=!0,s?(bt.material.emissive.set(new Color$1(255,255,255)),bt.material.emissiveIntensity=0):(bt.material.emissive.set(new Color$1(b.r,b.g,b.b)),bt.material.emissiveIntensity=_e)),a.push(bt))}),a},filterArrWithCondition=(o,s)=>{let a=0,b=[];for(let _e=0;_e<o.length;_e++){const bt=o[_e];s(bt)?o[a++]=bt:b.push(o[_e])}return o.length=a,b},degToRad=o=>o*Math.PI/180,resolveAssetUrl=o=>{if(!o)return;if(new RegExp("^(?:[a-z+]+:)?//","i").test(o))return o;let b=o;return b=b.replaceAll("<@all-projects@>",ALL_PROJECTS_ASSET_DATA_ROOT_URL),b=b.replaceAll("<@generic-project@>",GENERIC_PROJECT_ASSET_DATA_ROOT_URL),b};function componentToHex(o){var s=o.toString(16);return s.length==1?"0"+s:s}function rgbToHex(o,s,a){return"#"+componentToHex(o)+componentToHex(s)+componentToHex(a)}function getUrlParameterByName(o,s=window.location.search){const a=new URLSearchParams(s);return Object.fromEntries(a.entries())[o]}function _dispose3(o){o.geometry&&o.geometry.dispose(),o.material&&(Array.isArray(o.material)?o.material.forEach(s=>s.dispose()):o.material.dispose()),o.texture&&o.texture.dispose()}function dispose3(o){o.traverse(s=>{_dispose3(s)}),_dispose3(o)}const findVariantForGUID=o=>{const s=attachmentStore$1.getState().attachmentSystem,b=itemStore.getState().itemsSpawned[o];var _e=s.currentStructure.getNodeByGUID(o);if(!_e)return;let bt="";if(_e.overrideVariant)bt=_e.overrideVariant,CORE_API.fireEvent(CORE_API.EVENTS.SCENE.MaterialOverrides_Exists,!0);else{const rn=s.globalVariants;if(!rn||rn.Count<=0)return;let sn=[];Object.keys(rn).map((yn,Pn)=>{sn.push(rn[yn])}),b.itemData.looks?.map(yn=>{sn.includes(yn)&&(bt=yn)}),bt||(bt=b.itemData.looks[0])}return bt},lightStore=create$3((o,s)=>({defaultEnvMapUrl:"<@generic-project@>/env-map/neutral.hdr",envMapUrl:"",actions:{setEnvLightMap:a=>{o(b=>({envMapUrl:a}))},processLookEnvMapOverride:a=>{const{envMapUrl:b,defaultEnvMapUrl:_e,actions:bt}=s(),rn=productDataStore$1.getState().lookData[a],sn=rn?.envMapOverride;if(!rn||!sn){bt.setEnvLightMap(_e);return}if(sn===b){LOGGER.info({title:`New Env Map Url is the same as the current ${sn}`});return}bt.setEnvLightMap(sn)}}}));var rngBrowser={exports:{}},getRandomValues=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto<"u"&&typeof window.msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto);if(getRandomValues){var rnds8=new Uint8Array(16);rngBrowser.exports=function(){return getRandomValues(rnds8),rnds8}}else{var rnds=new Array(16);rngBrowser.exports=function(){for(var s=0,a;s<16;s++)s&3||(a=Math.random()*4294967296),rnds[s]=a>>>((s&3)<<3)&255;return rnds}}var rngBrowserExports=rngBrowser.exports,byteToHex=[];for(var i$2=0;i$2<256;++i$2)byteToHex[i$2]=(i$2+256).toString(16).substr(1);function bytesToUuid$2(o,s){var a=s||0,b=byteToHex;return[b[o[a++]],b[o[a++]],b[o[a++]],b[o[a++]],"-",b[o[a++]],b[o[a++]],"-",b[o[a++]],b[o[a++]],"-",b[o[a++]],b[o[a++]],"-",b[o[a++]],b[o[a++]],b[o[a++]],b[o[a++]],b[o[a++]],b[o[a++]]].join("")}var bytesToUuid_1=bytesToUuid$2,rng$1=rngBrowserExports,bytesToUuid$1=bytesToUuid_1,_nodeId,_clockseq,_lastMSecs=0,_lastNSecs=0;function v1$2(o,s,a){var b=s&&a||0,_e=s||[];o=o||{};var bt=o.node||_nodeId,rn=o.clockseq!==void 0?o.clockseq:_clockseq;if(bt==null||rn==null){var sn=rng$1();bt==null&&(bt=_nodeId=[sn[0]|1,sn[1],sn[2],sn[3],sn[4],sn[5]]),rn==null&&(rn=_clockseq=(sn[6]<<8|sn[7])&16383)}var yn=o.msecs!==void 0?o.msecs:new Date().getTime(),Pn=o.nsecs!==void 0?o.nsecs:_lastNSecs+1,zn=yn-_lastMSecs+(Pn-_lastNSecs)/1e4;if(zn<0&&o.clockseq===void 0&&(rn=rn+1&16383),(zn<0||yn>_lastMSecs)&&o.nsecs===void 0&&(Pn=0),Pn>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");_lastMSecs=yn,_lastNSecs=Pn,_clockseq=rn,yn+=122192928e5;var ar=((yn&268435455)*1e4+Pn)%4294967296;_e[b++]=ar>>>24&255,_e[b++]=ar>>>16&255,_e[b++]=ar>>>8&255,_e[b++]=ar&255;var lr=yn/4294967296*1e4&268435455;_e[b++]=lr>>>8&255,_e[b++]=lr&255,_e[b++]=lr>>>24&15|16,_e[b++]=lr>>>16&255,_e[b++]=rn>>>8|128,_e[b++]=rn&255;for(var cr=0;cr<6;++cr)_e[b+cr]=bt[cr];return s||bytesToUuid$1(_e)}var v1_1=v1$2,rng=rngBrowserExports,bytesToUuid=bytesToUuid_1;function v4$2(o,s,a){var b=s&&a||0;typeof o=="string"&&(s=o==="binary"?new Array(16):null,o=null),o=o||{};var _e=o.random||(o.rng||rng)();if(_e[6]=_e[6]&15|64,_e[8]=_e[8]&63|128,s)for(var bt=0;bt<16;++bt)s[b+bt]=_e[bt];return s||bytesToUuid(_e)}var v4_1=v4$2,v1$1=v1_1,v4$1=v4_1,uuid=v4$1;uuid.v1=v1$1;uuid.v4=v4$1;var uuid_1=uuid;class Plug{constructor(s,a,b=null){this._attachedPlug=null,this._name=s.name,this._acceptedPlugTypes=s.acceptedPlugTypes,this._affectedNodes=s.affectedNodes,this._unvisualizedCount=s.unvisualizedCount,this._weight=s.weight,this._connectsToPlugTypes=s.connectsToPlugTypes,this._dependencySku=s.dependencySku,this._isDependencySkuInteractive=s.isDependencySkuInteractive,this._autoSpawnDependencyIfMissing=s.autoSpawnDependencyIfMissing,this._node=a,b?(this._comboPlugConnector=b.comboPlugConnector,this._guid=b.guid,this._isOpen=b.isOpen,this._type=b.type,this._isReceiverPlug=b.isReceiverPlug,this._attachedPlugGUID=b.attachedPlugGUID):(this._comboPlugConnector=!1,this._guid=uuid_1.v4(),this._isOpen=!0,this._type=s.type,this._isReceiverPlug=!1,this._attachedPlugGUID=null)}export(){return this.isOpen?null:{guid:this._guid,type:this._type,isOpen:this._isOpen,comboPlugConnector:this._comboPlugConnector,attachedPlugGUID:this._attachedPlugGUID,isReceiverPlug:this._isReceiverPlug}}get node(){return this._node}set comboPlugConnector(s){this._comboPlugConnector=s}get comboPlugConnector(){return this._comboPlugConnector}get attachedPlug(){return this._attachedPlug}set attachedPlug(s){this._attachedPlug=s}get attachedPlugGUID(){return this._attachedPlugGUID}set type(s){this._type=s}get type(){return this._type}get weight(){return this._weight}get unvisualizedCount(){return this.__unvisualizedCount}get affectedNodes(){return this._affectedNodes}get guid(){return this._guid}get isReceiverPlug(){return this._isReceiverPlug}get name(){return this._name}get acceptedPlugTypes(){return this._acceptedPlugTypes}set acceptedPlugTypes(s){this._acceptedPlugTypes=s}get connectsToPlugTypes(){return this._connectsToPlugTypes}set connectsToPlugTypes(s){this._connectsToPlugTypes=s}get isOpen(){return this._isOpen}attachPlug(s,a=!1){this._attachedPlug=s,this._attachedPlugGUID=s.guid,this._isOpen=!1,this._isReceiverPlug=a;const b=this,_e=this._node;if(_e.isConnectedToRoot&&a){const bt=_e.whichPlugAreWeAttachedUsing();switch(s.type){case"weighted_hider":bt.weight<b.weight&&(_e.showNodes(bt.affectedNodes)||CORE_API.coreWCRef.addEventListener(_e.guid+":modelLoaded",function(){_e.showNodes(bt.affectedNodes)},{once:!0}));break}}if(a&&s.type!==""&&s.type==b._type)switch(s.type){default:case"weighted_hider":b._weight>s.weight?s.node.hideNodes(s.affectedNodes)||CORE_API.coreWCRef.addEventListener(s.node.guid+":modelLoaded",function(){s.node.hideNodes(s.affectedNodes)},{once:!0}):b._weight<s.weight&&(_e.hideNodes(b._affectedNodes)||CORE_API.coreWCRef.addEventListener(_e.guid+":modelLoaded",function(){_e.hideNodes(b._affectedNodes)},{once:!0}));break}a&&(_e.isEndNode=!1)}async openPlug(){if(this._comboPlugConnector&&(this._comboPlugConnector=!1),this._node.isConnectedToRoot){const s=this._node.whichPlugAreWeAttachedUsing();if(s&&this._guid!==s.guid)switch(this.type){case"weighted_hider":s.type==="weighted_hider"&&s.weight<this.weight&&this._node.hideNodes(s.affectedNodes);break}}if(this._isReceiverPlug&&this._attachedPlug.type!==""&&this._attachedPlug.type==this._type)switch(this._attachedPlug.type){default:case"weighted_hider":this._weight>this._attachedPlug.weight?this._attachedPlug.node.showNodes(this._attachedPlug.affectedNodes):this._weight<this._attachedPlug.weight&&this._node.showNodes(this._affectedNodes);break}if(this._attachedPlug=null,this._attachedPlugGUID=null,this._isOpen=!0,this._isReceiverPlug&&(this._isReceiverPlug=!1,this._node.checkIfEndNode()),!!this._dependencySku&&!(this._autoSpawnDependencyIfMissing==!1||this._isDependencySkuInteractive||coreSceneStore.getState().configurationLoaded===!1))try{const s=await ghostStore.getState().actions.spawnGhostsForSkuID(this._dependencySku,!0);if(!s)return;const a=s.connectablePlugs;let b=!1;const _e=this._isDependencySkuInteractive?this.isDependencySkuInteractive===1:!1;for(const bt of a){if(bt.receiverPlug.guid!==this._guid)continue;b=!0;const rn=await itemStore.getState().actions.addItemBySkuID(this._dependencySku,a.indexOf(bt),!0,_e);rn!==null&&this._node.addMyDependenciesGUID(rn)}b||await ghostStore.getState().actions.clearAllGhosts()}catch{LOGGER.info({title:"The Plug has been removed!"})}}canAttachToPlug(s){for(let a=0;a<this._connectsToPlugTypes.length;a++)if(s._acceptedPlugTypes.includes(this._connectsToPlugTypes[a]))return!0;return!1}}let Node$1=class{#t="default";#r=!1;#i=!1;#s=!0;#n={};#o=!1;#m={};#c=[];constructor(s,a=null,b,_e){let bt=productDataStore$1.getState().productData;this._plugs=[],this._skuID=s,this._ref=null,this._dragging=!1,this._modelFunctions=null,this._transform=null,this.#t="default",this._overrideVariant=null,this._followsParent=bt[s].followsParent,this._categoryID=bt[s].categoryID,this._replace=bt[s].replace,this._swappable=bt[s].swappable,this._price=this.#a(),this.#r=bt[s]?.ignoreInCart,a?(this._guid=a.guid,this._isEndNode=a.isEndNode,this._overrideVariant=a.overrideVariant,this.generatePlugsWithData(s,a.plugs)):(this._guid=uuid_1.v4(),this._isEndNode=!0,this.generatePlugsForNode(s)),b&&Object.keys(b).map(rn=>{if(bt[s].looks&&bt[s].looks.includes(rn)){this.#t=rn;return}})}get isRoot(){return this._skuID.toLowerCase()==="root"}updateGeometryVariant(s,a){const _e=productDataStore$1.getState().categoryData.geometryVariants;let bt=null;if(_e.map(zn=>{zn.id==s&&(bt=zn)}),!bt)return;const rn=bt.productsInCategory,yn=bt.variants[a].productsToSwitch,Pn=itemStore.getState().itemsSpawned;rn.map(zn=>{zn.products.map(ar=>{this.skuID===ar&&zn.products.map(lr=>{yn.map(cr=>{if(cr==lr){const hr=productDataStore$1.getState().actions.getProductDataById(cr);this.skuID=hr.skuID;const es=Pn[this.guid];es&&es.itemData&&Object.keys(hr).map(Ur=>{es.itemData[Ur]=hr[Ur]}),this.hideNodes(hr.geometriesToHide),this.showNodes(hr.geometriesToShow),this.updatePricing(),this.resetInStock(),inventoryStore.getState().actions.refreshInventory(Pn)}})})})})}resetInStock(){this.#n={},this.#o=!0}setInStockForRef(s){if(!this.ref)return!1;let a=this.ref.getObjectByName("GRP_RenderGeometry");return a?(a.inStock=s,!0):!1}set inStock({variantName:s,newValue:a}){if(this.#n[s]&&this.#n[s]==a||(this.#n[s]=a,s!==this.#t&&this.#o===!1))return;const b=()=>{this.setInStockForRef(a)};b()||CORE_API.coreWCRef.addEventListener(this.guid+":modelLoaded",b,{once:!0})}get myDependenciesGUID(){return this.#c}set myDependenciesGUID(s){this.#c=s}get dragging(){return this._dragging}set dragging(s){this._dragging=s}addMyDependenciesGUID(s){this.#c.push(s)}get isDependent(){return this.#i}set isDependent(s){this.#i=s}get isInteractive(){return this.#s}set isInteractive(s){this.#s=s}update(s){this._skuID=s;const a=productDataStore$1.getState().productData,b=a[s]?.plugs;if(this.ignoreInCart=a[s].ignoreInCart,!!b)for(let _e=0;_e<this._plugs.length;_e++)for(let bt=0;bt<b.length;bt++)this._plugs[_e].name==b[bt].name&&(this._plugs[_e].acceptedPlugTypes=b[bt].acceptedPlugTypes,this._plugs[_e].connectsToPlugTypes=b[bt].connectsToPlugTypes)}export(){let s={};for(let a=0;a<this._plugs.length;a++){let b=this._plugs[a].export();b&&(s[this._plugs[a].name]=b)}return{skuID:this._skuID,guid:this._guid,isEndNode:this._isEndNode,plugs:s,overrideVariant:this._overrideVariant}}get node(){return this}get swappable(){return this._swappable}get replace(){return this._replace}get ignoreInCart(){return this.#r}set ignoreInCart(s){this.#r=s}get isTypeCombo(){const s=this.whichPlugAreWeAttachedUsing();return s.type=="comboPlug"&&s.connectsToPlugTypes.length>0}get canRotate(){let s=!0;if(this.isTypeCombo)return!1;if(!this._isEndNode){const b=this.whichNodesAreAttachedToUs();if(b.length>0){let _e=!0;if(b.map(bt=>{bt.followsParent===!1&&(_e=!1)}),!_e)return!1}}let a=!1;for(let b=0;b<this.plugs.length;b++)if(!this.plugs[b].isOpen&&this.plugs[b].attachedPlug.isReceiverPlug){const _e=this.plugs[b].attachedPlug.acceptedPlugTypes;for(let bt=0;bt<this.plugs.length;bt++)if(b!=bt)for(let rn=0;rn<this.plugs[bt].connectsToPlugTypes.length;rn++)_e.includes(this.plugs[bt].connectsToPlugTypes[rn])&&(a=!0)}return s=a,s}hideNodes(s){if(!this.ref)return!1;const a=this.ref.getObjectByName("GRP_RenderGeometry"),b=this.ref.getObjectByName("GRP_ProxyMesh");return s.map(_e=>{if(a){const bt=a.getObjectByName(_e);bt&&(bt.visible=!1)}if(b){const bt=b.getObjectByName(_e);bt&&(bt.visible=!1)}}),!0}showNodes(s){if(!this.ref)return!1;const a=this.ref.getObjectByName("GRP_RenderGeometry"),b=this.ref.getObjectByName("GRP_ProxyMesh");return s.map(_e=>{if(a){const bt=a.getObjectByName(_e);bt&&(bt.visible=!0)}if(b){const bt=b.getObjectByName(_e);bt&&(bt.visible=!0)}}),!0}canConnectToPlugType(s){let a=!1;return this._plugs.map(b=>{b.connectsToPlugTypes.map(_e=>{_e==s&&(a=!0)})}),a}isConnectedToSkuID(s){let a=!1;return this._plugs.map(b=>{if(b.isOpen||a===!0)return;let _e=b.attachedPlug;!_e&&b.attachedPlugGUID&&(_e=attachmentStore$1.getState().attachmentSystem.currentStructure.getPlugByGUID(b.attachedPlugGUID)),_e.node.skuID==s&&(a=!0)}),a}get isConnectedToRoot(){return this.isConnectedToSkuID("Root")}swapRoot(){if(!this.canSwapRoot)return;const a=attachmentStore$1.getState().attachmentSystem.currentStructure,b=this.whichNodesAreAttachedToUs();let _e=null;b.map(Pn=>{Pn.followsParent===!1&&(_e=Pn)});const bt=_e.detachNodeFromReceiver();let rn=null;this._plugs.map(Pn=>{Pn.isOpen||Pn.attachedPlug.node.skuID=="Root"&&(rn=Pn.attachedPlug)});const sn=this.detachNodeFromReceiver();let yn=null;return _e.plugs.map(Pn=>{Pn.connectsToPlugTypes.includes("root")&&(yn=Pn)}),a.connectPlugs({incomingPlug:yn,receiverPlug:rn}),{neighbourDetachedPlugs:bt,rootDetachedPlugs:sn,neighbourNode:_e}}get canSwapRoot(){if(coreSceneStore.getState().sceneSettings.swappableRoot===!1)return!1;let s=!1;if(this.isConnectedToRoot&&!this._isEndNode){const b=this.whichNodesAreAttachedToUs();let _e=0,bt=null;b.map(rn=>{rn.followsParent===!1&&(_e++,bt=rn)}),_e==1?bt.canConnectToPlugType("root")&&(s=!0):_e>0&&(s=!1)}return s}get canRemove(){let s=!0;return this._isEndNode||(this.whichNodesAreAttachedToUs().map(b=>{b.followsParent===!1&&(s=!1)}),s||(s=this.canSwapRoot)),s}getComboPlugNodesAttachedToUs(){let s=[];return this.whichNodesAreAttachedToUs().forEach(b=>{b.isTypeCombo&&s.push(b);const _e=b.getComboPlugNodesAttachedToUs();_e.length>0&&(s=s.concat(_e))}),s}getAllBranchedNodesAttachedToUs(){let s=[];const a=this.whichNodesAreAttachedToUs();for(let b=0;b<a.length;b++){s.push(a[b]);const _e=a[b].getAllBranchedNodesAttachedToUs();_e.length>0&&(s=s.concat(_e))}return s}get canDrag(){let s=!0;if(this.isTypeCombo)return!1;for(let b=0;b<this._plugs.length;b++)if(this._plugs[b].isOpen==!1&&this._plugs[b].attachedPlug.type=="comboPlug")return!1;const a=this.getComboPlugNodesAttachedToUs();if(a.length>0){const b=this.getAllBranchedNodesAttachedToUs();let _e=!0;if(a.map(bt=>{const rn=bt.whichNodesIsThisComboPlugAttachedTo();let sn=!0;if(rn.map(yn=>{let Pn=!1;if(b.map(zn=>{yn.guid===zn.guid&&(Pn=!0)}),Pn==!1){sn=!1;return}}),sn==!1){_e=!1;return}}),_e==!1)return!1}return this._isEndNode||(this.whichNodesAreAttachedToUs().map(_e=>{_e.followsParent===!1&&(s=!1)}),s||(s=this.canSwapRoot)),s}get followsParent(){return this._followsParent}set followsParent(s){this._followsParent=s}resetFollowsParent(){const s=productDataStore$1.getState().productData;this._followsParent=s[this.skuID].followsParent}get currentVariant(){return this.#t==="default"?productDataStore$1.getState().actions.getProductDataById(this._skuID).lookDetails.default.id:this.#t}get price(){return this._price}set price(s){this._price=s}updatePricing(){this._price=this.#a()}#a(){let a=productDataStore$1.getState().actions.getProductDataById(this._skuID).lookDetails[this.#t]?.price;return a||(a=0),a}set currentVariant(s){this.#t=s,this._price=this.#a()}get overrideVariant(){return this._overrideVariant}set overrideVariant(s){this._overrideVariant=s,this.#t=this._overrideVariant,this._price=this.#a()}get guid(){return this._guid}get skuID(){return this._skuID}set skuID(s){this._skuID=s}get plugs(){return this._plugs}get ref(){return this._ref}set ref(s){this._ref=s}get modelFunctions(){return this._modelFunctions}set modelFunctions(s){this._modelFunctions=s}checkGeometryVariant(){let s=new CustomEvent(this._guid+":modelLoaded",{bubbles:!0,cancelable:!1,composed:!0});const a=attachmentStore$1.getState().attachmentSystem;a.globalGeometryVariants&&Object.keys(a.globalGeometryVariants).map(b=>{this.updateGeometryVariant(b,a.globalGeometryVariants[b])}),s.data={},CORE_API.coreWCRef?CORE_API.coreWCRef.dispatchEvent(s):LOGGER.warn({title:"core web component not found!"})}get isEndNode(){return this._isEndNode}set isEndNode(s){this._isEndNode=s}get categoryID(){return this._categoryID}get transform(){return this._transform}set transform(s){this._transform=s}setModelVisibility(s){s?this._ref?.scale.set(1,1,1):this._ref.scale.set(0,0,0)}checkIfEndNode(){let s=!0;for(let a=0;a<this._plugs.length;a++)this._plugs[a].isReceiverPlug&&(s=!1);this.isEndNode=s}whichNodesAreAttachedToUs(){const s=[];for(let a=0;a<this._plugs.length;a++)this._plugs[a].isReceiverPlug&&s.push(this._plugs[a].attachedPlug.node);return s}whichPlugsAreAttachedToUs(){const s=[];for(let a=0;a<this._plugs.length;a++)this._plugs[a].isReceiverPlug&&s.push({receiverPlug:this._plugs[a],incomingPlug:this._plugs[a].attachedPlug});return s}whichNodeAreWeAttachedTo(){let s=null;for(const a of this._plugs)a?.attachedPlug?.isReceiverPlug&&(s=a.attachedPlug.node);return s}whichNodesIsThisComboPlugAttachedTo(){if(!this.isTypeCombo)return[];let s=[];for(const a of this._plugs)a?.attachedPlug?.isReceiverPlug&&s.push(a.attachedPlug.node);return s}isReplaceableWithSkuId(s){const b=productDataStore$1.getState().productData[s]?.plugs;let _e=0;if(!b)return!1;for(let bt=0;bt<this._plugs.length;bt++)for(let rn=0;rn<b.length;rn++)this._plugs[bt].name==b[rn].name&&_e++;return _e==this._plugs.length}whichPlugAreWeAttachedUsing(){for(let s=0;s<this._plugs.length;s++){const a=this._plugs[s];let b=a.attachedPlug;if(!b&&a.attachedPlugGUID&&(b=attachmentStore$1.getState().attachmentSystem.currentStructure.getPlugByGUID(a.attachedPlugGUID)),!a.isOpen&&b.isReceiverPlug)return a}}whichPlugAreWeAttachedTo(){for(let s=0;s<this._plugs.length;s++)if(!this._plugs[s].isOpen&&this._plugs[s].attachedPlug.isReceiverPlug)return this._plugs[s].attachedPlug}getPlugWhichCanConnectToType(s){for(const a of this._plugs)if(a.connectsToPlugTypes.includes(s))return a;return null}getOpenPlugsWeCanAttachFrom(){let s=[];if(this.whichNodeAreWeAttachedTo())return s;for(let a=0;a<this._plugs.length;a++)this.plugs[a].isOpen&&this.plugs[a].connectsToPlugTypes.length>0&&s.push(this._plugs[a]);return s}getOpenPlugsFromNode(){let s=[];for(let a=0;a<this._plugs.length;a++)this._plugs[a].isOpen&&this._plugs[a].acceptedPlugTypes.length>0&&s.push(this._plugs[a]);return s}generatePlugsForNode(s){this._plugs=[];let a=productDataStore$1.getState().productData[s]?.plugs;if(a)for(let b=0;b<a.length;b++)if(a[b].type==="unvisualizedPlug"){const _e=a[b]?.unvisualizedCount>=0?a[b].unvisualizedCount:1e3;for(let bt=0;bt<_e;bt++){const rn=new Plug({...a[b],name:`${a[b].name}_${bt}`},this);this._plugs.push(rn)}}else{const _e=new Plug(a[b],this);this._plugs.push(_e)}}generatePlugsWithData(s,a){const b=productDataStore$1.getState().productData[s]?.plugs;b&&b.forEach(_e=>{if(_e.type==="unvisualizedPlug"){const bt=_e.unvisualizedCount&&_e.unvisualizedCount>=0?_e.unvisualizedCount:1e3;for(let rn=0;rn<bt;rn++){const sn=new Plug({..._e,name:`${_e.name}_${rn}`},this,a[`${_e.name}_${rn}`]);this._plugs.push(sn)}}else{const bt=new Plug(_e,this,a[_e.name]);this._plugs.push(bt)}})}detachNodeFromReceiver(){for(let s=0;s<this.plugs.length;s++)if(!this.plugs[s].isOpen&&this.plugs[s].attachedPlug.isReceiverPlug){const a={incomingPlug:this.plugs[s],receiverPlug:this.plugs[s].attachedPlug};return this.plugs[s].attachedPlug.openPlug(),this.plugs[s].openPlug(),a}}detachNodeCompletely(){for(let s=0;s<this._plugs.length;s++)this._plugs[s].isOpen||(this._plugs[s].attachedPlug.openPlug(),this._plugs[s].openPlug())}getPlugByName(s){for(let a=0;a<this._plugs.length;a++)if(this._plugs[a].name==s)return this._plugs[a];return null}getPlugByGUID(s){for(let a=0;a<this._plugs.length;a++)if(this._plugs[a].guid==s)return this._plugs[a];return null}async removeNode(){const s=[];for(const a of this._plugs)if(!a.isOpen){if(a.type==="comboPlug"&&a.connectsToPlugTypes.length>0){a.attachedPlug.openPlug();continue}a.attachedPlug.isReceiverPlug?a.attachedPlug.openPlug():s.push(a.attachedPlug.node.guid)}if(s.length>0)for(const a of s)itemStore.getState().actions.addToRemoveItems(a);this.modelFunctions=null,this.ref=null}};const EPIGRAPH_CONFIGURATOR_CATEGORY="Epigraph - Configurator",CONFIGURATOR_LOADING={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorLoading",label:"",interaction:{nonInteraction:!0}},CONFIGURATOR_READY={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorReady",label:"",interaction:{nonInteraction:!0}},CONFIGURATOR_FAILED={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorFailed",label:"",interaction:{nonInteraction:!0}},CONFIGURATOR_REVIEW_CART_SHOWN={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorReviewCartShown",label:"",interaction:{nonInteraction:!1}},CONFIGURATOR_REVIEW_CART_HIDE={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorReviewCartHide",label:"",interaction:{nonInteraction:!1}},CONFIGURATOR_CHECKOUT={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorCheckout",label:"",interaction:{nonInteraction:!1}},CONFIGURATOR_CHECKOUT_ITEM={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorCheckoutItemDetails",label:"",interaction:{nonInteraction:!1}},CONFIGURATOR_GLOBAL_GEOMETRY_VARIANT_SWITCHED={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorGlobalGeometryVariantSwitched",label:"",interaction:{nonInteraction:!1}},CONFIGURATOR_GLOBAL_VARIANT_SWITCHED={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorGlobalVariantSwitched",label:"",interaction:{nonInteraction:!1}},CONFIGURATOR_LOCAL_VARIANT_SWITCHED={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorLocalVariantSwitched",label:"",interaction:{nonInteraction:!1}},CONFIGURATOR_LOAD_FROM_PRECONFIG={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorLoadFromPreConfiguration",label:"",interaction:{nonInteraction:!0}},CONFIGURATOR_PRECONFIGURATION_ITEM_ADDED={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"preconfigurationItemAdded",label:"",interaction:{nonInteraction:!0}},CONFIGURATOR_SCENE_RESTARTED={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorSceneRestarted",label:"",interaction:{nonInteraction:!1}},CONFIGURATOR_AR_REQUESTED={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorArRequested",label:"",interaction:{nonInteraction:!1}},CONFIGURATOR_ITEM_REMOVED={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorItemRemoved",label:"",interaction:{nonInteraction:!1}},CONFIGURATOR_ITEM_ADDED={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorItemAdded",label:"",interaction:{nonInteraction:!1}},CONFIGURATOR_INSTRUCTIONS_BTN_CLICKED={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorInstructionsBtnClicked",label:"",interaction:{nonInteraction:!1}},CONFIGURATOR_INSTRUCTIONS_COMPLETION_RATE={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorInstructionsStageCompletionRate",label:"",interaction:{nonInteraction:!1}},CONFIGURATOR_INSTRUCTIONS_SHOWN={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorInstructionsShow",label:"",interaction:{nonInteraction:!1}},CONFIGURATOR_DIMENSION_SHOWN={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorDimensionsBtnShow",label:"",interaction:{nonInteraction:!1}},CONFIGURATOR_DIMENSION_HIDE={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorDimensionsBtnHide",label:"",interaction:{nonInteraction:!1}},CONFIGURATOR_HOTSPOT_ENTER={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorHotspotEnter",label:"",interaction:{nonInteraction:!1}},CONFIGURATOR_HOTSPOT_EXIT={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorHotspotExit",label:"",interaction:{nonInteraction:!1}},CONFIGURATOR_SCENE_SHARED={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorSceneShared",label:"",interaction:{nonInteraction:!1}};class Structure{#t=!1;constructor(s=null,a,b){if(this._nodes=[],this._rootNode=null,LOGGER.info({title:"preloadNodes",details:s}),this.setupHookOnSceneItemsUpdated(),s){LOGGER.info({title:"PRELOAD Length-----------------:"+s.length});for(var _e=0;_e<s.length;_e++){LOGGER.info({title:"FOUND PRELOAD-----------------"});const bt=s[_e].skuID;if(bt.toLowerCase()=="root"){const sn=itemStore.getState().itemsSpawned;Object.keys(sn).length>0&&(s[_e].guid=Object.keys(sn)[0])}let rn=new Node$1(bt,s[_e],a,b);bt.toLowerCase()=="root"&&(this._rootNode=rn),this._nodes.push(rn)}}else{const bt=new Node$1("Root",null,a,b);this._rootNode=bt,this._nodes.push(bt),itemStore.getState().actions.addItemWithTransform({position:new Vector3(0,0,0),rotation:new Quaternion().identity()},"Root",this._rootNode.guid,!1)}this._boundingBoxLeeway=coreSceneStore.getState().sceneSettings.boundingBoxLeeway}async setupHookOnSceneItemsUpdated(){CORE_API.coreWCRef.addEventListener(CORE_API.EVENTS.SCENE.FittingSkuIds_Updated,()=>{DynamicHooks.hookOnSceneItemsUpdated(this._nodes,CORE_API)})}get nodes(){return this._nodes}get rootNode(){return this._rootNode}updatePricing(){for(let s=0;s<this._nodes.length;s++)this._nodes[s].updatePricing()}getCurrentItemsInReplaceableCategory(){let s={};for(const a of this._nodes)a.replace&&(s[a.categoryID]=a.skuID);return s}recalculateStructureFromNode(s){for(let a=0;a<s.plugs.length;a++)if(!s.plugs[a].isOpen&&s.plugs[a].isReceiverPlug){const b=s.plugs[a].attachedPlug.node,_e={receiverPlug:s.plugs[a],incomingPlug:s.plugs[a].attachedPlug};if(_e){const bt=this.findItemTransform(_e);bt&&(b.ref.position.set(bt.position.x,bt.position.y,bt.position.z),bt.rotation.isQuaternion===!0?b.ref.setRotationFromQuaternion(bt.rotation):bt.rotation.isEuler===!0&&b.ref.setRotationFromEuler(bt.rotation),b.transform={position:bt.position,rotation:bt.rotation})}this.recalculateStructureFromNode(b)}}rotateNode(s){const a=this.getNodeByGUID(s);let b=null,_e=null;for(let sn=0;sn<a.plugs.length;sn++)if(!_e&&!a.plugs[sn].isOpen&&a.plugs[sn].attachedPlug.isReceiverPlug){const yn=a.plugs[sn].attachedPlug.acceptedPlugTypes;_e=a.plugs[sn].attachedPlug;let Pn=[];for(let zn=sn+1;zn<a.plugs.length;zn++)Pn.push(a.plugs[zn]);for(let zn=0;zn<sn;zn++)Pn.push(a.plugs[zn]);for(let zn=0;zn<Pn.length;zn++)for(let ar=0;ar<Pn[zn].connectsToPlugTypes.length;ar++)yn.includes(Pn[zn].connectsToPlugTypes[ar])&&(b=Pn[zn])}if(!b)return;a.detachNodeFromReceiver();const{position:bt,rotation:rn}=this.findItemTransform({receiverPlug:_e,incomingPlug:b});a.ref.position.set(bt.x,bt.y,bt.z),rn.isQuaternion===!0?a.ref.setRotationFromQuaternion(rn):rn.isEuler===!0&&a.ref.setRotationFromEuler(rn),a.transform={position:a.ref.position,rotation:rn},this.connectPlugs({receiverPlug:_e,incomingPlug:b}),this.recalculateStructureFromNode(a)}async load(s){this.resolvePlugConnections(s),await this.respawnItems()}materialOverrideExists(){let s=!1;return this.nodes.map(a=>{if(a.overrideVariant)return s=!0,!0}),s}findGhostTransformForReplacement(s,a){let b=[],_e=[],bt=[];for(const rn of a){if(rn.skuID==s)continue;const sn=attachmentStore$1.getState().attachmentSystem,yn=rn.whichPlugAreWeAttachedTo(),Pn=rn.whichPlugAreWeAttachedUsing(),ar=new Node$1(s,null,sn.globalVariants,sn.globalGeometryVariants).getPlugByName(Pn.name);if(!ar)continue;const lr={incomingPlug:ar,receiverPlug:yn},{position:cr,rotation:hr}=this.findItemTransform(lr);cr&&hr&&(_e.push({position:cr,rotation:hr,incomingPlugName:lr.incomingPlug.name,receiverPlugName:lr.receiverPlug.name,incomingPlugGUID:lr.incomingPlug.guid,receiverPlugGUID:lr.receiverPlug.guid}),bt.push(lr),b.push(rn))}return{transforms:_e,connectablePlugs:bt,newNodes:b}}async findGhostTransforms(s,a){const b=this.getOpenPlugs(),_e=coreSceneStore.getState().sceneSettings.comboPlugDistanceThreshold;if(b.length<=0)return{transforms:[]};const bt=attachmentStore$1.getState().attachmentSystem,rn=productDataStore$1.getState().productData,sn=new Node$1(s,null,bt.globalVariants,bt.globalGeometryVariants),yn=this.getConnectablePlugs(sn,b);let Pn=[];if(yn.length<=0)return{transforms:[]};let zn=[],ar=[];const lr=assetStore.getState().assets.items[s].proxy.data.scene;if(!lr)return!1;let cr=lr.clone();for(let Ur=0;Ur<yn.length;Ur++){let Dr=a,{incomingPlug:zr,receiverPlug:rs}=yn[Ur],as=this.findItemTransform(yn[Ur]);if(!as)continue;let{position:os,rotation:cs}=as;if(!os||!cs)continue;cr.position.set(os.x,os.y,os.z),cs.isQuaternion===!0?cr.setRotationFromQuaternion(cs):cs.isEuler===!0&&cr.setRotationFromEuler(cs);let zs=[],mo=[];if(zr.type=="comboPlug"){if(zr.connectsToPlugTypes.length<=0)continue;const go=zr.connectsToPlugTypes[0];let Al=!1;if(ar.map(wy=>{Al===!0||wy.length<=0||wy.map(El=>{Al===!0||El.incomingPlug.guid!==zr.guid||El.incomingPlug.connectsToPlugTypes.includes(go)&&(Al=!0)})}),Al===!0)continue;const by=zr.node.plugs;let yy=!0;if(by.map(wy=>{if(wy.type!=="comboPlug"||wy.guid===zr.guid||!wy.connectsToPlugTypes.includes(go))return;let El=!1;if(b.map(_c=>{if(rs.guid===_c.guid||!_c.acceptedPlugTypes.includes(go)||!_c.node.ref)return;let gy=new Vector3(0,0,0);const _f=_c.node.ref.getObjectByName(""+_c.name);if(!_f)return;_f.getWorldPosition(gy);let Cy=new Vector3(0,0,0);const Fy=cr.getObjectByName(""+wy.name);if(!Fy)return;Fy.getWorldPosition(Cy);const aA=gy.distanceTo(Cy);Math.abs(aA)<_e&&(zs.push(rs.node.guid),zs.push(_c.node.guid),mo.push({receiverPlug:_c,incomingPlug:wy}),El=!0)}),El==!1){yy=!1;return}}),!yy)continue}let ga=Dr;Array.isArray(Dr)===!0&&(ga=!1),zs.length>0&&(ga=!1,Array.isArray(Dr)===!0?zs.map(go=>{Dr.push(go)}):Dr=zs),rn[s].hasOwnProperty("ignoreSpawningCollision")&&(ga=rn[s].ignoreSpawningCollision),yn[Ur].receiverPlug.type=="unvisualizedPlug"&&(ga=!0),(ga?!1:this.isColliding(sn.skuID,as,yn[Ur].receiverPlug,Dr))||(zn.push({position:os,rotation:cs,incomingPlugName:yn[Ur].incomingPlug.name,receiverPlugName:yn[Ur].receiverPlug.name,incomingPlugGUID:yn[Ur].incomingPlug.guid,receiverPlugGUID:yn[Ur].receiverPlug.guid}),Pn.push(yn[Ur]),ar.push(mo))}let hr=[];for(let Ur=0;Ur<zn.length;Ur++)hr.push(sn);dispose3(cr);let es={transforms:zn,newNodes:hr,connectablePlugs:Pn,comboPlugs:ar};return es=await DynamicHooks.hookOnNewItemGhostsCollected(es,CORE_API),es}resolvePlugConnections(s){for(let a=0;a<s.length;a++)Object.keys(s[a].plugs).map(b=>{let _e=s[a].plugs[b].guid,bt=this.getPlugInNodesByGUID(_e);if(!bt||bt.attachedPlug)return;let rn=s[a].plugs[b].attachedPlugGUID,sn=this.getPlugInNodesByGUID(rn);sn&&(sn.attachedPlug||(bt.attachPlug(sn,s[a].plugs[b].isReceiverPlug),sn.attachPlug(bt,!s[a].plugs[b].isReceiverPlug)))});LOGGER.info({title:"RESOLVED PLUG CONNECTION: ",details:this})}async respawnItems(){let s=[this.rootNode];for(let bt=0;bt<s.length;bt++){let sn=s[bt].whichPlugsAreAttachedToUs();for(let yn=0;yn<sn.length;yn++){if(sn[yn].incomingPlug.type=="comboPlug"&&sn[yn].incomingPlug.connectsToPlugTypes.length>0&&!sn[yn].incomingPlug.comboPlugConnector)continue;let Pn=this.findItemTransformForPreload(sn[yn],sn[yn].receiverPlug.node.transform);Pn?await itemStore.getState().actions.addItemWithTransform(Pn,sn[yn].incomingPlug.node.skuID,sn[yn].incomingPlug.node.guid):LOGGER.warn({title:"Problem finding plug transform! "+sn[yn].name}),sn[yn].incomingPlug.node.transform=Pn,s.push(sn[yn].incomingPlug.node)}}const a=await CORE_API.getCartItemsAsync();CORE_API.fireEvent(CORE_API.EVENTS.SCENE.SavedConfiguration_Loaded,{...a}),coreSceneStore.getState().actions.triggerAutoFocus(),hotspotStore$1.getState().actions.checkHotspotHealth();const b=coreSceneStore.getState().preconfigurationLoaded==!1&&coreSceneStore.getState().sceneHasDefaultConfigurationID==!1,_e=coreSceneStore.getState().configurationLoaded==!1&&coreSceneStore.getState().preconfigurationLoaded==!0&&coreSceneStore.getState().configurationLoadedOnRestart==!0;if(b||_e){let bt=Object.assign({},CONFIGURATOR_LOAD_FROM_PRECONFIG);bt.parameters={project_id:`${CORE_API.projectId}`,...a},CORE_API.sendAnalyticsEvent(bt)}}getPlugInNodesByGUID(s){for(let a=0;a<this._nodes.length;a++){let b=this._nodes[a].getPlugByGUID(s);if(b)return b}return null}export(){let s=[];for(let a=0;a<this._nodes.length;a++){let b=this._nodes[a].export();b&&s.push(b)}return s}async clear(){return new Promise(async(s,a)=>{!this._rootNode&&this._rootNode.isEndNode&&s(!0);let b=null;const _e=this._rootNode.whichNodesAreAttachedToUs();_e.length>0&&(b=_e[0]),this.#t=!0,CORE_API.coreWCRef.addEventListener(CORE_API.EVENTS.SCENE.Scene_Cleared,bt=>s(bt.data),{once:!0}),b?CORE_API.removeItemByGUID(b.guid,!0):(await wait(500),s(!0))})}getNodeByGUID(s){for(let a=0;a<this._nodes.length;a++)if(this._nodes[a].guid==s)return this._nodes[a];return null}getPlugByGUID(s){for(const a of this._nodes){const b=a.getPlugByGUID(s);if(b)return b}return null}findItemTransformForPreload(s,a){let{receiverPlug:b,incomingPlug:_e}=s,bt=b,rn=_e;if(bt.node.skuID=="Root")return this.findItemTransformRoot(s);let sn=null,yn=null,Pn=new Object3D,zn=assetStore.getState().assets.items[bt.node.skuID].proxy.data.scene.clone();Pn.add(zn);let{position:ar,rotation:lr}=a;if(zn.position.set(ar.x,ar.y,ar.z),lr.isQuaternion===!0?zn.setRotationFromQuaternion(lr):lr.isEuler===!0&&zn.setRotationFromEuler(lr),yn=zn,!yn||(sn=yn.getObjectByName(bt.name),!sn))return;let cr=new Vector3(0,0,0);sn.getWorldPosition(cr);let hr=new Quaternion().identity();sn.getWorldQuaternion(hr);let es=new Object3D;sn.add(es);let Ur=assetStore.getState().assets.items[rn.node.skuID].proxy.data.scene.clone();Ur.position.set(cr.x,cr.y,cr.z),Ur.applyQuaternion(hr);let Dr=new Vector3;Dr.copy(zn.up).applyQuaternion(yn.quaternion);let zr=new Vector3;zr.copy(Ur.up).applyQuaternion(hr),zr.negate();let rs=new Quaternion().setFromUnitVectors(Dr,zr);Dr.round(),zr.round();let as=Dr.dot(zr);as!==1&&as!==-1&&Ur.applyQuaternion(rs);let os=Ur.getObjectByName(rn.name),cs=new Quaternion().identity();os.getWorldQuaternion(cs);let zs=new Vector3(0,1,0);zs.applyQuaternion(cs);let mo=new Vector3(0,1,0);mo.applyQuaternion(hr),mo.negate();let ga=new Quaternion().setFromUnitVectors(zs,mo);if(zs.round(),mo.round(),zs.dot(mo)!==-1)Ur.applyQuaternion(ga);else{let by=new Vector3(0,1,0),yy=mo.dot(by);if(yy!==1&&yy!==-1)Ur.rotateOnAxis(by,Math.PI);else{let wy=new Vector3(0,0,1),El=mo.dot(wy);if(El!==1&&El!==-1)Ur.rotateOnAxis(wy,Math.PI);else{let _c=new Vector3(1,0,0),gy=mo.dot(_c);gy!==1&&gy!==-1&&Ur.rotateOnAxis(_c,Math.PI)}}}let yl=Ur.getObjectByName(rn.name),go=new Vector3(yl.position.x,yl.position.y,yl.position.z);Ur.translateX(-go.x),Ur.translateY(-go.y),Ur.translateZ(-go.z);let Al=new Vector3(0,0,0);Ur.getWorldPosition(Al);let _d=new Quaternion().identity();return Ur.getWorldQuaternion(_d),Ur=null,{position:Al,rotation:_d}}findItemTransformRoot(s){let{receiverPlug:a,incomingPlug:b}=s,_e=b;const bt=new Object3D;let rn=bt,sn=new Vector3(0,0,0);rn.getWorldPosition(sn);let yn=new Quaternion().identity(),Pn=new Object3D;Pn.position.set(0,0,0),bt.add(Pn);let zn=assetStore.getState().assets.items[_e.node.skuID].proxy.data.scene.clone();Pn.attach(zn),zn.translateX(sn.x),zn.translateY(sn.y),zn.translateZ(sn.z);let ar=zn.getObjectByName(_e.name),lr=new Quaternion().identity();ar&&ar.getWorldQuaternion(lr);const cr=new Vector3(0,1,0);cr.applyQuaternion(lr);const hr=new Vector3(0,1,0);hr.applyQuaternion(yn);const es=hr.angleTo(cr),Ur=new Vector3(0,0,0);Ur.crossVectors(hr,cr),Ur.round(),Ur.length()!==0&&zn.rotateOnAxis(Ur,es);var Dr=new Matrix4().extractRotation(zn.matrixWorld);let zr=new Vector3(0,0,0);ar&&zr.set(ar.position.x,ar.position.y,ar.position.z),zr.applyMatrix4(Dr),zn.translateX(-zr.x),zn.translateY(-zr.y),zn.translateZ(-zr.z);let rs=new Vector3(0,0,0);zn.getWorldPosition(rs);let as=new Quaternion().identity();return zn.getWorldQuaternion(as),Pn.remove(zn),Pn=null,zn=null,{position:rs,rotation:as}}findItemTransform(s){let{receiverPlug:a,incomingPlug:b}=s,_e=a,bt=b;if(_e.node.isRoot)return this.findItemTransformRoot(s);const rn=_e.node.transform;if(!rn)return;const sn=assetStore.getState().assets.items[_e.node.skuID].proxy.data.scene.clone(),yn=new Object3D;yn.position.set(rn.position.x,rn.position.y,rn.position.z),rn.rotation.isQuaternion===!0?yn.setRotationFromQuaternion(rn.rotation):rn.rotation.isEuler===!0&&yn.setRotationFromEuler(rn.rotation),yn.add(sn);let Pn=yn.getObjectByName(""+_e.name);if(!Pn){LOGGER.error({title:"Plug: "+_e.name+" doesn't exist in "+_e.node.skuID});return}let zn=new Vector3(0,1,0);Pn.getWorldPosition(zn);let ar=new Quaternion().identity();Pn.getWorldQuaternion(ar);let lr=assetStore.getState().assets.items[bt.node.skuID].proxy.data.scene.clone();lr.position.set(zn.x,zn.y,zn.z),lr.applyQuaternion(ar);let cr=new Vector3;cr.copy(sn.up).applyQuaternion(yn.quaternion);let hr=new Vector3;hr.copy(lr.up).applyQuaternion(ar),hr.negate();let es=new Quaternion().setFromUnitVectors(cr,hr);cr.round(),hr.round();let Ur=cr.dot(hr);Ur!==1&&Ur!==-1&&lr.applyQuaternion(es);let Dr=lr.getObjectByName(bt.name);if(!Dr){LOGGER.error({title:"Plug: "+bt.name+" doesn't exist in "+bt.node.skuID});return}let zr=new Quaternion().identity();Dr.getWorldQuaternion(zr);let rs=new Vector3(0,1,0);rs.applyQuaternion(zr);let as=new Vector3(0,1,0);as.applyQuaternion(ar),as.negate();let os=new Quaternion().setFromUnitVectors(rs,as);if(rs.round(),as.round(),rs.dot(as)!==-1)lr.applyQuaternion(os);else{let yl=new Vector3(0,1,0),go=as.dot(yl);if(go!==1&&go!==-1)lr.rotateOnAxis(yl,Math.PI);else{let Al=new Vector3(0,0,1),_d=as.dot(Al);if(_d!==1&&_d!==-1)lr.rotateOnAxis(Al,Math.PI);else{let by=new Vector3(1,0,0),yy=as.dot(by);yy!==1&&yy!==-1&&lr.rotateOnAxis(by,Math.PI)}}}let zs=lr.getObjectByName(bt.name),mo=new Vector3(zs.position.x,zs.position.y,zs.position.z);lr.translateX(-mo.x),lr.translateY(-mo.y),lr.translateZ(-mo.z);let ga=new Vector3(0,0,0);lr.getWorldPosition(ga);let ho=new Quaternion().identity();return lr.getWorldQuaternion(ho),yn.remove(sn),lr=null,{position:ga,rotation:ho}}getSpawningRequirementForSkuID(s){let a=[];const b=productDataStore$1.getState().productData,_e=b[s];if(!_e)return a;const bt=[];return _e.plugs.map(rn=>{rn.connectsToPlugTypes.map(sn=>{bt.push(sn)})}),Object.keys(b).map(rn=>{for(let sn=0;sn<b[rn].plugs.length;sn++){const yn=b[rn].plugs[sn].acceptedPlugTypes;for(let Pn=0;Pn<yn.length;Pn++)bt.map(zn=>{zn==yn[Pn]&&!a.includes(rn)&&a.push(rn)})}}),a}getConnectablePlugs(s,a){let b=[],_e=s.getOpenPlugsWeCanAttachFrom();for(let bt=0;bt<_e.length;bt++)for(let rn=0;rn<a.length;rn++){let sn=!1;for(let Pn=0;Pn<b.length;Pn++)if(b[Pn].receiverPlug.guid==a[rn].guid&&b[Pn].incomingPlug.type!="comboPlug"){sn=!0;break}if(sn)continue;_e[bt].canAttachToPlug(a[rn])&&b.push({incomingPlug:_e[bt],receiverPlug:a[rn]})}return b}getOpenPlugs(){let s=[];return this._nodes.map(a=>{if(a.dragging===!0)return;let b=a.getOpenPlugsFromNode();s=s.concat(b)}),s}checkCollisionforGUID(s,a=[]){if(coreSceneStore.getState().sceneSettings.disableCollider)return!1;const b=itemStore.getState().itemsSpawned,_e=productDataStore$1.getState().productData;if(!b[s])return!1;const rn=this.getNodeByGUID(s);if(!rn||!rn.ref||_e[rn.skuID].disableCollider)return!1;let sn=new Vector3;rn.ref.getWorldPosition(sn);let yn=new Quaternion;rn.ref.getWorldQuaternion(yn);const Pn={position:sn,rotation:yn},zn=rn.whichPlugAreWeAttachedTo();return zn==null?!1:this.isColliding(rn.skuID,Pn,zn,a)}isColliding(s,{position:a,rotation:b},_e,bt=[]){const rn=assetStore.getState().assets.items[s].proxy.data.scene,sn=productDataStore$1.getState().productData;if(!rn)return!1;let yn=rn.clone();yn.position.set(a.x,a.y,a.z),b.isQuaternion===!0?yn.setRotationFromQuaternion(b):b.isEuler===!0&&yn.setRotationFromEuler(b);let Pn=new Box3().setFromObject(yn);var zn=new Vector3;Pn.getCenter(zn);let ar=new Object3D;ar.position.set(zn.x,zn.y,zn.z),ar.attach(yn),ar.scale.set(this._boundingBoxLeeway,this._boundingBoxLeeway,this._boundingBoxLeeway),Pn=new Box3().setFromObject(ar);const lr=[];if(this._nodes.forEach(hr=>{if(_e.node.guid==hr.guid||Array.isArray(bt)===!0&&bt.includes(hr.guid)||!hr.ref||(sn[hr.skuID].hasOwnProperty("disableCollider")?sn[hr.skuID].disableCollider:coreSceneStore.getState().sceneSettings.disableCollider))return;const es=hr.ref.getObjectByName("GRP_ProxyMesh");es&&lr.push(es)}),lr.length<=0)return!1;let cr=!1;return lr.forEach(hr=>{if(cr)return;let es=new Box3().setFromObject(hr);if(Pn.intersectsBox(es)){cr=!0;return}}),ar.clear(),yn=null,ar=null,Pn=null,cr}boxOverlapPercent(s,a){if(s.containsBox(a)||a.containsBox(s))return 100;if(!(s.min.x<a.max.x||a.min.x<s.max.x))return 0;let b=new Vector3(0,0,0);s.getSize(b),b.x*b.y*b.z;let _e=new Vector3(0,0,0);a.getSize(_e),_e.x*_e.y*_e.z}checkInsideOutCollision(s,a,b){let _e=a.position.clone(),bt=new Float32Array(b.attributes.position.array),rn=bt.length/3;for(let sn=0;sn<rn;sn++){let yn=new Vector3(bt[sn*3],bt[sn*3+1],bt[sn*3+2]),Pn=yn.add(a.position);Pn=yn.applyQuaternion(a.quaternion);let zn=Pn.sub(a.position);const lr=new Raycaster(_e,zn.clone().normalize()).intersectObjects(s),cr=lr.length>0,hr=lr[0].distance<zn.length();if(cr&&hr)return!0}return!1}addNode(s){this._nodes.push(s)}getFirstNodeByCategoryID(s){for(var a=0;a<this._nodes.length;a++)if(this._nodes[a]._categoryID==s)return this._nodes[a];return null}getNodesBySKUID(s){let a=[];for(var b=0;b<this._nodes.length;b++)this._nodes[b].skuID==s&&a.push(this._nodes[b]);return a}getNodesByCategoryID(s){let a=[];for(var b=0;b<this._nodes.length;b++)this._nodes[b]._categoryID==s&&a.push(this._nodes[b]);return a}async connectPlugs({incomingPlug:s,receiverPlug:a}){s.attachPlug(a,!1),a.attachPlug(s,!0),await attachmentStore$1.getState().actions.toggleStructureUpdated()}removeNodeByGUID(s){for(let a=0;a<this._nodes.length;a++)if(this._nodes[a].guid==s){this._nodes[a].removeNode(),this._nodes.splice(a,1);break}this._nodes.length==1&&this.#t&&CORE_API.fireEvent(CORE_API.EVENTS.SCENE.Scene_Cleared,!0),attachmentStore$1.getState().actions.updateFittingSkuIds(),attachmentStore$1.getState().actions.toggleStructureUpdated()}async removeNodeFromStructure(s){for(let a=0;a<this._nodes.length;a++)if(this._nodes[a].guid==s.guid){this._nodes.splice(a,1);break}await attachmentStore$1.getState().actions.toggleStructureUpdated()}}class AttachmentSystem{constructor(){this._globalVariants={},this._globalGeometryVariants={},productDataStore$1.getState().categoryData.geometryVariants.map(s=>{this._globalGeometryVariants[s.id]=s.defaultVariant}),productDataStore$1.getState().categoryData.color.map(s=>{this._globalVariants[s.id]=s.defaultLook}),this._currentStructure=new Structure(null,this._globalVariants,this._globalGeometryVariants);for(const[s,a]of Object.entries(this._globalVariants))this.switchGlobalVariant(s,a);for(const[s,a]of Object.entries(this._globalGeometryVariants))this.switchGlobalGeometryVariant(s,a)}get globalGeometryVariants(){return this._globalGeometryVariants}get globalVariants(){return this._globalVariants}get currentStructure(){return this._currentStructure}getClientProductId(s,a){let b;return b=productDataStore$1.getState()?.productData[s]?.lookDetails[a],b?.clientProductId?b?.clientProductId:""}getCartItems(){let s=[];const a=inventoryStore.getState().inventoryData;this.currentStructure.nodes.map(bt=>{if(bt.skuID=="Root"||bt.ignoreInCart===!0)return;let rn=!1;if(s.map(Pn=>{const zn=a[Pn.skuID];if(Pn.skuID==bt.skuID&&Pn.currentVariant==bt.currentVariant){Pn.count++,Pn.countAvailable=zn[bt.currentVariant].countAvailable,Pn.countUnavailable=zn[bt.currentVariant].countUnavailable,Pn.price=bt.price*Pn.count,rn=!0;return}}),rn===!0)return;let sn={};sn.skuID=bt.skuID,sn.currentVariant=bt.currentVariant,sn.clientProductId=this.getClientProductId(sn.skuID,sn.currentVariant),sn.count=1;const yn=a[sn.skuID];sn.price=bt.price,sn.countAvailable=yn[bt.currentVariant].countAvailable,sn.countUnavailable=yn[bt.currentVariant].countUnavailable,s.push(sn)});let b=0;for(const bt of s)b=b+bt.price;return{cartItems:s,details:{total:b.toFixed(2)}}}async getCartItemsAsync(){let s=[];const a=inventoryStore.getState().inventoryData;this.currentStructure.nodes.map(bt=>{if(bt.skuID=="Root"||bt.ignoreInCart===!0)return;let rn=!1;if(s.map(Pn=>{const zn=a[Pn.skuID];if(Pn.skuID==bt.skuID&&Pn.currentVariant==bt.currentVariant){Pn.count++,Pn.countAvailable=zn[bt.currentVariant].countAvailable,Pn.countUnavailable=zn[bt.currentVariant].countUnavailable,Pn.price=bt.price*Pn.count,rn=!0;return}}),rn===!0)return;let sn={};sn.skuID=bt.skuID,sn.currentVariant=bt.currentVariant,sn.clientProductId=this.getClientProductId(sn.skuID,sn.currentVariant),sn.count=1;const yn=a[sn.skuID];sn.price=bt.price,sn.countAvailable=yn[bt.currentVariant].countAvailable,sn.countUnavailable=yn[bt.currentVariant].countUnavailable,s.push(sn)}),s=await DynamicHooks.hookOnCartItemsCollected(s,CORE_API);let b=0;for(const bt of s)b=b+bt.price;return{cartItems:s,details:{total:b.toFixed(2)}}}async getFittingSKUIDs(){const{productData:s}=productDataStore$1.getState(),{sceneSettings:a}=coreSceneStore.getState(),{draggableUI:b,ignoreSpawningCollision:_e}=a;if(!this.currentStructure)return[];const{openPlugTypes:bt,closedPlugTypes:rn,existingSkuids:sn}=this.analyzeCurrentStructure();if(bt.size===0&&rn.size===0)return[];const yn=this.findFittingSkuids(s,bt,rn,sn,b);return this.filterNonBlockedSkuids(yn,s,_e)}analyzeCurrentStructure(){const s=this.currentStructure.nodes,a=new Set,b=new Set,_e=new Set;for(const bt of s){_e.add(bt.skuID);for(const rn of bt.plugs)rn.isOpen?rn.acceptedPlugTypes.forEach(sn=>a.add(sn)):rn.attachedPlug.node.replace&&rn.acceptedPlugTypes.forEach(sn=>b.add(sn))}return{openPlugTypes:a,closedPlugTypes:b,existingSkuids:_e}}findFittingSkuids(s,a,b,_e,bt){const rn=new Set;for(const[sn,yn]of Object.entries(s))if(yn.plugs)for(const Pn of yn.plugs){for(const zn of Pn.connectsToPlugTypes)if((this.isClosedPlugFitting(sn,yn,zn,b,_e,bt)||this.isOpenPlugFitting(yn,zn,a))&&rn.add(sn),rn.has(sn))break;if(rn.has(sn))break}return rn}isClosedPlugFitting(s,a,b,_e,bt,rn){if(!_e.has(b)||!rn&&bt.has(s))return!1;const sn=this.currentStructure.getNodesByCategoryID(a.categoryID);for(const yn of sn)if(yn.skuID!==s&&this.isNodeCompatible(yn,a))return!0;return!1}isNodeCompatible(s,a){let b=!1;for(const _e of s.plugs)if(!_e.isOpen&&_e.isReceiverPlug&&(b=!0,this.isPlugCompatible(_e,a.plugs)))return!0;return!b}isPlugCompatible(s,a){return a.some(b=>b.name===s.name&&s.attachedPlug.connectsToPlugTypes.some(_e=>b.acceptedPlugTypes.includes(_e)))}isOpenPlugFitting(s,a,b){if(!b.has(a))return!1;const _e=this.currentStructure.getFirstNodeByCategoryID(s.categoryID);return!_e||!_e.replace}async filterNonBlockedSkuids(s,a,b){const _e=[];for(const bt of s)if(a[bt].replace)_e.push(bt);else{const{transforms:rn}=await this.currentStructure.findGhostTransforms(bt,b);rn.length>0&&_e.push(bt)}return _e}async removeAllVariantOverrides(){let s=this._currentStructure.nodes,a=productDataStore$1.getState().productData,b=itemStore.getState().itemsSpawned;await s.map(async _e=>{if(!_e.overrideVariant||(_e.overrideVariant=null,!a[_e.skuID].looks))return;let bt=null;Object.keys(this._globalVariants).map(rn=>{a[_e.skuID].looks.includes(this._globalVariants[rn])&&bt==null&&(bt=this._globalVariants[rn])}),bt&&await itemStore.getState().actions.switchToVariant(b[_e.guid].itemData,bt)}),CORE_API.alert({alertMsg:"Changes to individual items in the scene have been cleared",alertTime:6e3,alertType:"info",alertLabel:"Overrides Removed",alertId:"overridesRemoved"}),CORE_API.fireEvent(CORE_API.EVENTS.SCENE.MaterialOverrides_Exists,!1)}async switchGlobalGeometryVariant(s,a){const _e=productDataStore$1.getState().categoryData.geometryVariants;let bt=null;if(_e.map(lr=>{lr.id==s&&(bt=lr)}),!bt)return;const rn=bt.productsInCategory,yn=bt.variants[a].productsToSwitch,Pn=itemStore.getState().itemsSpawned;let zn=productDataStore$1.getState().categoryData;yn.map(lr=>{rn.map(cr=>{let hr=!1;cr.products.map(es=>{lr==es&&(hr=!0)}),hr&&zn.build.map(es=>{cr.products.map(Ur=>{es.skus.map((Dr,zr)=>{es.skus[zr]==Ur&&(es.skus[zr]=lr)})})})})}),this._currentStructure.nodes.map(lr=>{rn.map(cr=>{cr.products.map(hr=>{lr.skuID==hr&&lr.ref!==null&&cr.products.map(es=>{yn.map(Ur=>{if(Ur==es){const Dr=productDataStore$1.getState().actions.getProductDataById(Ur);let zr=Dr.geometriesToHide;lr.plugs.map(as=>{!as.isOpen&&as.attachedPlug&&as.type=="weighted_hider"&&as.attachedPlug.weight>as.weight&&(zr=zr.concat(as.affectedNodes))}),lr.showNodes(Dr.geometriesToShow),lr.hideNodes(zr),lr.skuID=Ur;const rs=Pn[lr.guid];rs&&rs.itemData&&Object.keys(Dr).map(as=>{rs.itemData[as]=Dr[as]}),lr.resetInStock(),lr.updatePricing()}})})})})}),this._globalGeometryVariants[s]=a,hotspotStore$1.getState().actions.checkHotspotHealth(),inventoryStore.getState().actions.refreshInventory(Pn),productDataStore$1.setState({categoryData:zn}),CORE_API.fireEvent(CORE_API.EVENTS.SCENE.CategoryData_Updated,zn),CORE_API.fireEvent(CORE_API.EVENTS.SCENE.GlobalGeometryVariant_Updated,this._globalGeometryVariants);const ar=await this.getCartItemsAsync();ar&&CORE_API.fireEvent(CORE_API.EVENTS.SCENE.CartItems_Updated,ar)}async switchGlobalVariant(s,a){this._globalVariants[s]=a;const b=itemStore.getState().actions;let _e=itemStore.getState().itemsSpawned;for(let yn=0;yn<Object.keys(_e).length;yn++){let Pn=_e[Object.keys(_e)[yn]];if(Pn.itemData.looks&&Pn.itemData.looks.includes(a)){let zn=this._currentStructure.getNodeByGUID(Pn.itemData.guid);zn&&!zn.overrideVariant&&await b.switchToVariant(Pn.itemData,a)}}const bt=productDataStore$1.getState().lookData;lightStore.getState().actions.processLookEnvMapOverride(a);const rn=s;Object.keys(_e).length>0&&CORE_API.alert({alertMsg:rn.charAt(0).toUpperCase()+rn.slice(1)+" was successfully switched to "+bt[a].label+".",alertTime:3e3,alertType:"success",alertLabel:`${rn} Changed`,alertId:"materialVariantChanged"}),CORE_API.fireEvent(CORE_API.EVENTS.SCENE.GlobalVariant_Updated,this._globalVariants),itemStore.setState({variantChangeAlert:!itemStore.getState().variantChangeAlert});const sn=await this.getCartItemsAsync();sn&&CORE_API.fireEvent(CORE_API.EVENTS.SCENE.CartItems_Updated,sn)}async#t(s){if(!s)return;LOGGER.info({title:"Structure to load",details:s}),delete this._currentStructure,this._globalVariants={...s.globalVariants},this._globalGeometryVariants=s.globalGeometryVariants?{...s.globalGeometryVariants}:{};const a=[...s.structure];this._currentStructure=new Structure(a,this._globalVariants,this._globalGeometryVariants);for(const[b,_e]of Object.entries(this._globalVariants))this.switchGlobalVariant(b,_e);for(const[b,_e]of Object.entries(this._globalGeometryVariants))this.switchGlobalGeometryVariant(b,_e);LOGGER.info({title:"Structure Loading..."}),await this._currentStructure.load(a),LOGGER.info({title:"Structure Loaded."})}async loadStructure(s){if(!s)return;CORE_API.fireEvent(CORE_API.EVENTS.UI.PreloadScreen_Show),coreSceneStore.setState({configurationLoaded:!1}),await wait(500),await this._currentStructure.clear(),await this.#t(s),coreSceneStore.getState().preconfigurationLoaded?CORE_API.fireEvent(CORE_API.EVENTS.UI.PreloadScreen_Hide):coreSceneStore.setState({preconfigurationLoaded:!0}),coreSceneStore.getState().configurationLoadedOnRestart||coreSceneStore.setState({configurationLoadedOnRestart:!0}),coreSceneStore.setState({configurationLoaded:!0}),await attachmentStore$1.getState().actions.toggleStructureUpdated();const a=itemStore.getState().itemsSpawned;CORE_API.fireEvent(CORE_API.EVENTS.SCENE.Items_Updated,{itemsSpawned:a}),inventoryStore.getState().actions.refreshInventory(a),await attachmentStore$1.getState().actions.updateFittingSkuIds()}export(){return{structure:this._currentStructure.export(),globalVariants:this._globalVariants,globalGeometryVariants:this._globalGeometryVariants}}async clear(){CORE_API.fireEvent(CORE_API.EVENTS.UI.PreloadScreen_Show),await this._currentStructure.clear(),CORE_API.fireEvent(CORE_API.EVENTS.UI.PreloadScreen_Hide)}async restart(){LOGGER.warn({title:"Restarting the Scene!!"}),itemStore.getState().selectedItemData&&itemStore.getState().actions.deselectItem();const s=attachmentStore$1.getState().defaultConfig;coreSceneStore.setState({configurationLoaded:!1,configurationLoadedOnRestart:!1}),CORE_API.fireEvent(CORE_API.EVENTS.UI.PreloadScreen_Show),await wait(500),await this._currentStructure.clear(),await this.#t(s),await attachmentStore$1.getState().actions.toggleStructureUpdated(),coreSceneStore.setState({configurationLoaded:!0,configurationLoadedOnRestart:!0}),CORE_API.fireEvent(CORE_API.EVENTS.UI.PreloadScreen_Hide);const a=itemStore.getState().itemsSpawned;CORE_API.fireEvent(CORE_API.EVENTS.SCENE.Items_Updated,{itemsSpawned:a}),inventoryStore.getState().actions.refreshInventory(a),await attachmentStore$1.getState().actions.updateFittingSkuIds()}}const attachmentStore=create$3((o,s)=>({attachmentSystem:null,defaultConfig:null,structureUpdated:!1,colliderMeshRef:null,placeholderRef:null,draggingItem:null,snappingThreshold:.5,actions:{initializeAttachmentSystem:async()=>{const{actions:a,defaultConfig:b}=s();LOGGER.info({title:"Initializing Attachment System!"});const _e=await new AttachmentSystem;o({attachmentSystem:_e}),await a.updateFittingSkuIds(),await a.toggleStructureUpdated()},loadSavedStructureFromConfigID:async a=>{LOGGER.info({title:"Fetching Structure Using ConfigID!"});const b=await getJSONFromEndpoint(FETCH_CONFIG_ENDPOINT+a);return b.success===!1?null:b.data},loadDefaultStructure:async()=>{const{actions:a,defaultConfig:b,attachmentSystem:_e}=s();LOGGER.info({title:"Loading Default Structure!"}),await a.loadStructure(b)},updateFittingSkuIds:async()=>{if(!coreSceneStore.getState().preconfigurationLoaded||!coreSceneStore.getState().configurationLoaded)return;const a=await attachmentStore.getState().attachmentSystem.getFittingSKUIDs();a&&(itemStore.setState({fittingSkuIds:[...a]}),CORE_API.fireEvent(CORE_API.EVENTS.SCENE.FittingSkuIds_Updated,{skuids:a}))},toggleStructureUpdated:async()=>{const{attachmentSystem:a}=s();if(o(_e=>({structureUpdated:!_e.structureUpdated})),!coreSceneStore.getState().preconfigurationLoaded||!coreSceneStore.getState().configurationLoaded)return;CORE_API.fireEvent(CORE_API.EVENTS.SCENE.ReplaceableCategory_Updated,a.currentStructure.getCurrentItemsInReplaceableCategory());const b=await a.getCartItemsAsync();b&&CORE_API.fireEvent(CORE_API.EVENTS.SCENE.CartItems_Updated,b)},loadStructure:async a=>{const{attachmentSystem:b}=s();LOGGER.info({title:"Loading Structure!"}),b&&coreSceneStore.getState().configurationLoaded!==!1&&await b.loadStructure(a)},export:()=>{const{attachmentSystem:a}=s();if(a)return a.export()}}})),attachmentStore$1=attachmentStore,productDataStore=create$3((o,s)=>({productData:{},categoryData:{},lookData:{},hotspotsData:{},endpoints:{},assetsData:void 0,actions:{getCurrentPricingInfo:()=>{const{productData:a}=s();let b={};return Object.keys(a).map(_e=>{if(_e.toLowerCase()==="root")return;let bt=a[_e].lookDetails,rn={};Object.keys(bt).map(sn=>{sn!="default"&&(rn[sn]=bt[sn].price)}),b[_e]=rn}),b},updatePricingForAllProducts:a=>{const{actions:b}=s();Object.keys(a).map(_e=>{let bt=a[_e];Object.keys(bt).map(rn=>{b.updatePricingForProduct(_e,rn,bt[rn])})})},updatePricingForProduct:(a,b,_e)=>{const{productData:bt}=s();let rn=bt[a];if(!rn||!rn.lookDetails)return;let sn=rn.lookDetails[b];if(!sn)return;sn.price=_e,attachmentStore$1.getState().attachmentSystem.currentStructure.getNodesBySKUID(a).map(zn=>zn.updatePricing())},setProductData:a=>{let b={};a&&Object.keys(a).map(_e=>{const bt=a[_e];if(bt.skuID=_e,bt.skuID.toLowerCase()==="root"){bt.lookDetails={default:{title:"",description:"",productPageUrl:"",thumbnails:{high:"",low:""},price:0}},bt.defaultVariant="default";return}if(bt?.lookDetails){const rn=bt.lookDetails;let sn=Object.keys(bt.lookDetails);if(sn.includes("default")){const Pn=sn.indexOf("default");sn.splice(Pn,1)}bt.looks=sn,Object.keys(bt.lookDetails).map(Pn=>{let zn=bt.lookDetails[Pn];zn.inventory===void 0&&(zn.inventory=DEFAULT_INVENTORY),zn.price===void 0&&(zn.price=DEFAULT_PRODUCT_PRICE),b[_e]={...b[_e],[Pn]:{inventory:DEFAULT_INVENTORY,inScene:[]}}});let yn=bt?.defaultVariant;yn||(LOGGER.warn({title:`No defaultVariant set for ${bt.skuID}. Attempting to auto resolve but the colour variants behaviour might be unexpected!`}),yn=Object.keys(bt.lookDetails).sort()[0],LOGGER.warn({title:"Auto resolved default look ID: "+yn})),sn.includes(yn)?(bt.lookDetails.default=rn[yn],bt.lookDetails.default.id=yn):(LOGGER.error({title:`Default look [ ${yn} ] doesn't exist for: ${_e}. Please make sure to select a default variant in Input Data for this project`}),bt.lookDetails.default=null)}}),LOGGER.info({title:"PRODUCT DATA: ",details:a}),inventoryStore.setState({inventoryData:b}),o({productData:a})},setCategoryData:a=>{const{productData:b}=s();a.geometryVariants!==void 0&&a.geometryVariants.map(_e=>{_e.defaultVariant===void 0&&Object.keys(_e.variants).length>0&&(_e.defaultVariant=Object.keys(_e.variants)[0])}),a.color!==void 0&&a.color.map(_e=>{(_e.defaultLook===void 0&&_e.looks.length>0||!_e.looks.includes(_e.defaultLook))&&(_e.defaultLook=_e.looks[0])}),o({categoryData:a}),a.build!==void 0&&a.build.map(_e=>{_e.skus.map(bt=>{b[bt].categoryID=_e.categoryID,b[bt].categoryLabel=_e.label,b[bt].swappable=_e.swappable?_e.swappable:!1,b[bt].replace=_e.replace})})},getProductDataById:a=>{const{productData:b}=s();let _e=null;return b[a]&&(_e=b[a]),_e},setLookData:a=>o({lookData:a}),setHotspotsData:a=>{const{categoryData:b,productData:_e}=s();b.geometryVariants&&Object.keys(a).map(bt=>{a[bt].map(rn=>{rn.geometryVariantID&&b.geometryVariants.map(sn=>{Object.keys(sn.variants).map(yn=>{rn.geometryVariantID==yn&&sn.productsInCategory.map(Pn=>{let zn=null;Pn.products.map(ar=>{a.hasOwnProperty(ar)&&(zn=a[ar])}),Pn.products.map(ar=>{a.hasOwnProperty(ar)||(a[ar]=zn)})})})})})}),o({hotspotsData:a})},setEndpoints:a=>{o({endpoints:a}),setGlobalEndpoints(a)},setAssetsData:a=>o({assetsData:a})}})),productDataStore$1=productDataStore,UtilityMenu=({handleShareButtonTrigger:o,handleSaveButtonTrigger:s,handleRestartButtonClick:a,handleShowHotspots:b,handleDimensionClick:_e,handleInstructionButtonClick:bt,utilityMenuVisible:rn,hotspotsVisibility:sn,viewInYourSpaceMenuBtnVisible:yn,restartMenuBtnVisible:Pn,saveMenuBtnVisible:zn,hotspotsMenuBtnVisible:ar,instructionsMenuBtnVisible:lr,dimensionsMenuBtnVisible:cr,shareMenuBtnVisible:hr,dimensionsVisible:es,position:Ur,CORE_API:Dr})=>{const[zr,rs]=reactExports.useState("bottom"),as=productDataStore$1(zs=>zs.assetsData),os=coreSceneStore(zs=>zs.sceneSettings),cs={ar:"https://storage.googleapis.com/gsc-epigraph-design/product-assets/Icon/AR.svg",restart:"https://storage.googleapis.com/gsc-epigraph-design/product-assets/Icon/Restart.svg",save:"https://storage.googleapis.com/gsc-epigraph-design/product-assets/Icon/save.svg",share:"https://storage.googleapis.com/gsc-epigraph-design/product-assets/Icon/Share.svg",dimensions:"https://storage.googleapis.com/gsc-epigraph-design/product-assets/Icon/Ruler.svg",hotspots:"https://storage.googleapis.com/gsc-epigraph-design/product-assets/Icon/Eye.svg",instructions:"https://storage.googleapis.com/gsc-epigraph-design/product-assets/Icon/Info.svg"};return reactExports.useEffect(()=>{switch(Ur){case"top":rs("top");break;case"bottom":rs("bottom");break;case"left":rs("left");break;case"right":rs("right");break}return()=>{}},[Ur]),jsxRuntimeExports.jsx("div",{className:"shellCanvasContainerParent",id:zr,children:jsxRuntimeExports.jsxs("div",{className:(rn&&(hr||yn||Pn||cr||ar||lr))==!0?"shellCanvasContainer":"shellCanvasContainer shellCanvasContainerInactive",children:[yn&&jsxRuntimeExports.jsx(UtilityMenuButton,{buttonAction:()=>{Dr.viewInYourSpace()},buttonLabel:os.textSettings.arButtonLabel,hoverLabel:os.textSettings.arHoverLabel,icon:as?.icons?.utilityMenu?.viewInYourSpace?Dr.getResolvedAssetUrl(as?.icons?.utilityMenu?.viewInYourSpace):cs.ar}),Pn&&jsxRuntimeExports.jsx(UtilityMenuButton,{buttonAction:()=>{a()},buttonLabel:os.textSettings.restartButtonLabel,hoverLabel:os.textSettings.restartHoverLabel,icon:as?.icons?.utilityMenu?.restart?Dr.getResolvedAssetUrl(as?.icons?.utilityMenu?.restart):cs.restart}),zn&&jsxRuntimeExports.jsx(UtilityMenuButton,{buttonAction:()=>{s()},buttonLabel:os.textSettings.saveButtonLabel,hoverLabel:os.textSettings.saveHoverLabel,icon:as?.icons?.utilityMenu?.save?Dr.getResolvedAssetUrl(as?.icons?.utilityMenu?.save):cs.save}),hr&&jsxRuntimeExports.jsx(UtilityMenuButton,{buttonAction:()=>{o()},buttonLabel:os.textSettings.shareButtonLabel,hoverLabel:os.textSettings.shareHoverLabel,icon:as?.icons?.utilityMenu?.share?Dr.getResolvedAssetUrl(as?.icons?.utilityMenu?.share):cs.share}),cr&&jsxRuntimeExports.jsx(UtilityMenuButton,{buttonAction:()=>{_e()},buttonLabel:os.textSettings.sizeButtonLabel,hoverLabel:os.textSettings.sizeHoverLabel,icon:as?.icons?.utilityMenu?.dimensions?Dr.getResolvedAssetUrl(as?.icons?.utilityMenu?.dimensions):cs.dimensions,activeCondition:es}),ar&&jsxRuntimeExports.jsx(UtilityMenuButton,{buttonAction:()=>{b()},buttonLabel:os.textSettings.hotspotsButtonLabel,hoverLabel:os.textSettings.hotspotsHoverLabel,icon:as?.icons?.utilityMenu?.hotspots?Dr.getResolvedAssetUrl(as?.icons?.utilityMenu?.hotspots):cs.hotspots,activeCondition:sn}),lr&&jsxRuntimeExports.jsx(UtilityMenuButton,{buttonAction:()=>{bt()},buttonLabel:os.textSettings.instructionsButtonLabel,hoverLabel:os.textSettings.instructionsHoverLabel,icon:as?.icons?.utilityMenu?.instructions?Dr.getResolvedAssetUrl(as?.icons?.utilityMenu?.instructions):cs.instructions})]})})};function makeTypeChecker(o){return s=>!!s.type&&s.type.tabsRole===o}const isTab=makeTypeChecker("Tab"),isTabList=makeTypeChecker("TabList"),isTabPanel=makeTypeChecker("TabPanel");function isTabChild(o){return isTab(o)||isTabList(o)||isTabPanel(o)}function deepMap(o,s){return reactExports.Children.map(o,a=>a===null?null:isTabChild(a)?s(a):a.props&&a.props.children&&typeof a.props.children=="object"?reactExports.cloneElement(a,{...a.props,children:deepMap(a.props.children,s)}):a)}function deepForEach(o,s){return reactExports.Children.forEach(o,a=>{a!==null&&(isTab(a)||isTabPanel(a)?s(a):a.props&&a.props.children&&typeof a.props.children=="object"&&(isTabList(a)&&s(a),deepForEach(a.props.children,s)))})}function r(o){var s,a,b="";if(typeof o=="string"||typeof o=="number")b+=o;else if(typeof o=="object")if(Array.isArray(o)){var _e=o.length;for(s=0;s<_e;s++)o[s]&&(a=r(o[s]))&&(b&&(b+=" "),b+=a)}else for(a in o)o[a]&&(b&&(b+=" "),b+=a);return b}function clsx(){for(var o,s,a=0,b="",_e=arguments.length;a<_e;a++)(o=arguments[a])&&(s=r(o))&&(b&&(b+=" "),b+=s);return b}function getTabsCount(o){let s=0;return deepForEach(o,a=>{isTab(a)&&s++}),s}function isNode(o){return o&&"getAttribute"in o}function isTabNode(o){return isNode(o)&&o.getAttribute("data-rttab")}function isTabDisabled(o){return isNode(o)&&o.getAttribute("aria-disabled")==="true"}let canUseActiveElement;function determineCanUseActiveElement(o){const s=o||(typeof window<"u"?window:void 0);try{canUseActiveElement=!!(typeof s<"u"&&s.document&&s.document.activeElement)}catch{canUseActiveElement=!1}}const defaultProps$4={className:"react-tabs",focus:!1},UncontrolledTabs=o=>{let s=reactExports.useRef([]),a=reactExports.useRef([]);const b=reactExports.useRef();function _e(Al,_d){if(Al<0||Al>=Pn())return;const{onSelect:by,selectedIndex:yy}=o;by(Al,yy,_d)}function bt(Al){const _d=Pn();for(let by=Al+1;by<_d;by++)if(!isTabDisabled(zn(by)))return by;for(let by=0;by<Al;by++)if(!isTabDisabled(zn(by)))return by;return Al}function rn(Al){let _d=Al;for(;_d--;)if(!isTabDisabled(zn(_d)))return _d;for(_d=Pn();_d-- >Al;)if(!isTabDisabled(zn(_d)))return _d;return Al}function sn(){const Al=Pn();for(let _d=0;_d<Al;_d++)if(!isTabDisabled(zn(_d)))return _d;return null}function yn(){let Al=Pn();for(;Al--;)if(!isTabDisabled(zn(Al)))return Al;return null}function Pn(){const{children:Al}=o;return getTabsCount(Al)}function zn(Al){return s.current[`tabs-${Al}`]}function ar(){let Al=0;const{children:_d,disabledTabClassName:by,focus:yy,forceRenderTabPanel:wy,selectedIndex:El,selectedTabClassName:_c,selectedTabPanelClassName:gy,environment:_f}=o;a.current=a.current||[];let Cy=a.current.length-Pn();const Fy=reactExports.useId();for(;Cy++<0;)a.current.push(`${Fy}${a.current.length}`);return deepMap(_d,aA=>{let bA=aA;if(isTabList(aA)){let Oy=0,IA=!1;canUseActiveElement==null&&determineCanUseActiveElement(_f);const $A=_f||(typeof window<"u"?window:void 0);canUseActiveElement&&$A&&(IA=React.Children.toArray(aA.props.children).filter(isTab).some((HA,A_)=>$A.document.activeElement===zn(A_))),bA=reactExports.cloneElement(aA,{children:deepMap(aA.props.children,HA=>{const A_=`tabs-${Oy}`,FA=El===Oy,BA={tabRef:zA=>{s.current[A_]=zA},id:a.current[Oy],selected:FA,focus:FA&&(yy||IA)};return _c&&(BA.selectedClassName=_c),by&&(BA.disabledClassName=by),Oy++,reactExports.cloneElement(HA,BA)})})}else if(isTabPanel(aA)){const Oy={id:a.current[Al],selected:El===Al};wy&&(Oy.forceRender=wy),gy&&(Oy.selectedClassName=gy),Al++,bA=reactExports.cloneElement(aA,Oy)}return bA})}function lr(Al){const{direction:_d,disableUpDownKeys:by,disableLeftRightKeys:yy}=o;if(hr(Al.target)){let{selectedIndex:wy}=o,El=!1,_c=!1;(Al.code==="Space"||Al.keyCode===32||Al.code==="Enter"||Al.keyCode===13)&&(El=!0,_c=!1,cr(Al)),!yy&&(Al.keyCode===37||Al.code==="ArrowLeft")||!by&&(Al.keyCode===38||Al.code==="ArrowUp")?(_d==="rtl"?wy=bt(wy):wy=rn(wy),El=!0,_c=!0):!yy&&(Al.keyCode===39||Al.code==="ArrowRight")||!by&&(Al.keyCode===40||Al.code==="ArrowDown")?(_d==="rtl"?wy=rn(wy):wy=bt(wy),El=!0,_c=!0):Al.keyCode===35||Al.code==="End"?(wy=yn(),El=!0,_c=!0):(Al.keyCode===36||Al.code==="Home")&&(wy=sn(),El=!0,_c=!0),El&&Al.preventDefault(),_c&&_e(wy,Al)}}function cr(Al){let _d=Al.target;do if(hr(_d)){if(isTabDisabled(_d))return;const by=[].slice.call(_d.parentNode.children).filter(isTabNode).indexOf(_d);_e(by,Al);return}while((_d=_d.parentNode)!=null)}function hr(Al){if(!isTabNode(Al))return!1;let _d=Al.parentElement;do{if(_d===b.current)return!0;if(_d.getAttribute("data-rttabs"))break;_d=_d.parentElement}while(_d);return!1}const{children:es,className:Ur,disabledTabClassName:Dr,domRef:zr,focus:rs,forceRenderTabPanel:as,onSelect:os,selectedIndex:cs,selectedTabClassName:zs,selectedTabPanelClassName:mo,environment:ga,disableUpDownKeys:ho,disableLeftRightKeys:yl,...go}={...defaultProps$4,...o};return React.createElement("div",Object.assign({},go,{className:clsx(Ur),onClick:cr,onKeyDown:lr,ref:Al=>{b.current=Al,zr&&zr(Al)},"data-rttabs":!0}),ar())};UncontrolledTabs.propTypes={};const MODE_CONTROLLED=0,MODE_UNCONTROLLED=1,defaultProps$3={defaultFocus:!1,focusTabOnClick:!0,forceRenderTabPanel:!1,selectedIndex:null,defaultIndex:null,environment:null,disableUpDownKeys:!1,disableLeftRightKeys:!1},getModeFromProps=o=>o.selectedIndex===null?MODE_UNCONTROLLED:MODE_CONTROLLED,Tabs=o=>{const{children:s,defaultFocus:a,defaultIndex:b,focusTabOnClick:_e,onSelect:bt,...rn}={...defaultProps$3,...o},[sn,yn]=reactExports.useState(a),[Pn]=reactExports.useState(getModeFromProps(rn)),[zn,ar]=reactExports.useState(Pn===MODE_UNCONTROLLED?b||0:null);if(reactExports.useEffect(()=>{yn(!1)},[]),Pn===MODE_UNCONTROLLED){const hr=getTabsCount(s);reactExports.useEffect(()=>{if(zn!=null){const es=Math.max(0,hr-1);ar(Math.min(zn,es))}},[hr])}const lr=(hr,es,Ur)=>{typeof bt=="function"&&bt(hr,es,Ur)===!1||(_e&&yn(!0),Pn===MODE_UNCONTROLLED&&ar(hr))};let cr={...o,...rn};return cr.focus=sn,cr.onSelect=lr,zn!=null&&(cr.selectedIndex=zn),delete cr.defaultFocus,delete cr.defaultIndex,delete cr.focusTabOnClick,React.createElement(UncontrolledTabs,cr,s)};Tabs.propTypes={};Tabs.tabsRole="Tabs";const defaultProps$2={className:"react-tabs__tab-list"},TabList=o=>{const{children:s,className:a,...b}={...defaultProps$2,...o};return React.createElement("ul",Object.assign({},b,{className:clsx(a),role:"tablist"}),s)};TabList.tabsRole="TabList";TabList.propTypes={};const DEFAULT_CLASS$1="react-tabs__tab",defaultProps$1={className:DEFAULT_CLASS$1,disabledClassName:`${DEFAULT_CLASS$1}--disabled`,focus:!1,id:null,selected:!1,selectedClassName:`${DEFAULT_CLASS$1}--selected`},Tab$1=o=>{let s=reactExports.useRef();const{children:a,className:b,disabled:_e,disabledClassName:bt,focus:rn,id:sn,selected:yn,selectedClassName:Pn,tabIndex:zn,tabRef:ar,...lr}={...defaultProps$1,...o};return reactExports.useEffect(()=>{yn&&rn&&s.current.focus()},[yn,rn]),React.createElement("li",Object.assign({},lr,{className:clsx(b,{[Pn]:yn,[bt]:_e}),ref:cr=>{s.current=cr,ar&&ar(cr)},role:"tab",id:`tab${sn}`,"aria-selected":yn?"true":"false","aria-disabled":_e?"true":"false","aria-controls":`panel${sn}`,tabIndex:zn||(yn?"0":null),"data-rttab":!0}),a)};Tab$1.propTypes={};Tab$1.tabsRole="Tab";const DEFAULT_CLASS="react-tabs__tab-panel",defaultProps={className:DEFAULT_CLASS,forceRender:!1,selectedClassName:`${DEFAULT_CLASS}--selected`},TabPanel=o=>{const{children:s,className:a,forceRender:b,id:_e,selected:bt,selectedClassName:rn,...sn}={...defaultProps,...o};return React.createElement("div",Object.assign({},sn,{className:clsx(a,{[rn]:bt}),role:"tabpanel",id:`panel${_e}`,"aria-labelledby":`tab${_e}`}),b||bt?s:null)};TabPanel.tabsRole="TabPanel";TabPanel.propTypes={};const colorStore=create$3(o=>({allActiveVariants:{},allActiveGeometryVariants:{}})),arrayWithoutElementAtIndex=function(o,s){return o.filter(function(a,b){return s!==b})},updateQuantityAtIndex=function(o,s,a){let b=o.slice();return b[s].quantity=a,b},cartStore=create$3((o,s)=>({cart:[],cartTotalPrice:0,deleteCartItem:a=>{o(b=>({cart:arrayWithoutElementAtIndex(b.cart,a)}))},addToCart:a=>{o(b=>({cart:[...b.cart,a]}))},updateQuantity:(a,b)=>{o(_e=>({cart:updateQuantityAtIndex(_e.cart,a,b)}))},previewCartModalOpen:!1,togglePreviewCartModal:()=>{const{previewCartModalOpen:a}=s();a===!0?uiSceneStore.getState().CORE_API.reviewCartHidden():uiSceneStore.getState().CORE_API.reviewCartShown(),o({previewCartModalOpen:!a})},actions:{setCartTotalPrice:a=>{o(()=>({cartTotalPrice:a}))}}})),ItemCard=({spawnGhosts:o,accordionActive:s,spawnItem:a,removeAllGhosts:b,isMouseUsed:_e,skuId:bt,active:rn})=>{const sn=uiSceneStore(UA=>UA.CORE_API),yn=infoStore(UA=>UA.infoModalOpen),Pn=reactExports.useRef(null),zn=infoStore(UA=>UA.populateInfoObject),ar=uiSceneStore(UA=>UA.dialogPopupOpen),lr=cartStore(UA=>UA.previewCartModalOpen),cr=infoStore(UA=>UA.updateInfoModalOpen),[hr,es]=reactExports.useState("default"),[Ur,Dr]=reactExports.useState(!0),zr=colorStore(UA=>UA.allActiveVariants),rs=productDataStore$1(UA=>UA.productData),as=itemStore(UA=>UA.fittingSkuIds),[os,cs]=reactExports.useState(rs[bt].incrementDecrementControl?rs[bt].incrementDecrementControl:!1),[zs,mo]=reactExports.useState(rs[bt]?rs[bt]:{}),[ga,ho]=reactExports.useState(rs[bt].name?rs[bt].name:"Not Set"),[yl,go]=reactExports.useState(rs[bt].subheading?rs[bt].subheading:""),[Al,_d]=reactExports.useState(rs[bt].lookDetails.default.thumbnails.low?rs[bt].lookDetails.default.thumbnails.low:""),[by,yy]=reactExports.useState(rs[bt].draggableUI!=null?rs[bt].draggableUI:uiSceneStore.getState().CORE_API.sceneSettings.draggableUI),[wy,El]=reactExports.useState(null),[_c,gy]=reactExports.useState(!1),[_f,Cy]=reactExports.useState(!1),[Fy,aA]=reactExports.useState(0),bA=reactExports.useCallback(()=>{Fy<=0||sn.removeLastItemBySkuId(bt)},[Fy]),Oy=()=>{let UA=0;const oE=itemStore.getState().itemsSpawned,iC=Object.keys(oE);for(let NA=iC.length-1;NA>=0;NA--){const qy=iC[NA];oE[qy].itemData.skuID===bt&&UA++}aA(UA)};reactExports.useEffect(()=>{Oy()},[]),addCoreEventListener(sn.EVENTS.SCENE.Items_Updated,Oy),reactExports.useEffect(()=>{as.includes(bt)?gy(!0):gy(!1)},[as]),reactExports.useEffect(()=>{Object.keys(rs).length!=0},[rs]),reactExports.useEffect(()=>{zs.looks.length<=1&&Dr(!1)},[zs]);const IA=reactExports.useCallback(()=>{const UA=zs.looks;let oE="default";for(const[iC,NA]of Object.entries(zr))if(UA.includes(NA)){oE=NA;break}es(oE)},[zr]);reactExports.useEffect(()=>{_d(zs.lookDetails[hr].thumbnails.low)},[hr]),reactExports.useEffect(()=>{Ur===!0&&IA()},[zr]);const $A=reactExports.useCallback(UA=>{if(UA.stopPropagation(),!(!uiSceneStore.getState().CORE_API.sceneSettings.clickToAddUi&&!os)){if(_c===!1||wy){sn.alert({alertMsg:"Unable to add item to the scene.",alertTime:4e3,alertType:"warn",alertLabel:"Action Unavailable"});return}a(bt,!0)}},[_c,wy]),HA=reactExports.useCallback(async()=>{const UA=sn.sceneSettings?.showDependencyOnHover;if(UA===void 0||UA===!1)return;let oE=sn.getSpawningRequirementForSkuID(bt);if(oE.length<=0)return;let iC="";const NA=await sn.getCartItemsAsync();let qy=!1;if(NA.cartItems.map(OA=>{oE.includes(OA.skuID)&&(qy=!0)}),oE.includes("Root")&&oE.length==1&&(qy=!0,oE=[]),qy)iC="No space available to spawn the item.";else{iC=`This item requires a dependency to be added to the scene first.
9195
+ #`));this.skipRendering=s===0,this.needsSwap=!this.skipRendering,this.fullscreenMaterial.setShaderData(o)}recompile(){this.updateMaterial()}getDepthTexture(){return this.fullscreenMaterial.depthBuffer}setDepthTexture(o,s=BasicDepthPacking){this.fullscreenMaterial.depthBuffer=o,this.fullscreenMaterial.depthPacking=s;for(const a of this.effects)a.setDepthTexture(o,s)}render(o,s,a,b,_e){for(const bt of this.effects)bt.update(o,s,b);if(!this.skipRendering||this.renderToScreen){const bt=this.fullscreenMaterial;bt.inputBuffer=s.texture,bt.time+=b*this.timeScale,o.setRenderTarget(this.renderToScreen?null:a),o.render(this.scene,this.camera)}}setSize(o,s){this.fullscreenMaterial.setSize(o,s);for(const a of this.effects)a.setSize(o,s)}initialize(o,s,a){this.renderer=o;for(const b of this.effects)b.initialize(o,s,a);this.updateMaterial(),a!==void 0&&a!==UnsignedByteType&&(this.fullscreenMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1")}dispose(){super.dispose();for(const o of this.effects)o.removeEventListener("change",this.listener),o.dispose()}handleEvent(o){switch(o.type){case"change":this.recompile();break}}},NormalPass=class extends Pass{constructor(o,s,{renderTarget:a,resolutionScale:b=1,width:_e=Resolution.AUTO_SIZE,height:bt=Resolution.AUTO_SIZE,resolutionX:rn=_e,resolutionY:sn=bt}={}){super("NormalPass"),this.needsSwap=!1,this.renderPass=new RenderPass(o,s,new MeshNormalMaterial);const yn=this.renderPass;yn.ignoreBackground=!0,yn.skipShadowMapUpdate=!0;const Pn=yn.getClearPass();Pn.overrideClearColor=new Color$1(7829503),Pn.overrideClearAlpha=1,this.renderTarget=a,this.renderTarget===void 0&&(this.renderTarget=new WebGLRenderTarget(1,1,{minFilter:NearestFilter,magFilter:NearestFilter}),this.renderTarget.texture.name="NormalPass.Target");const zn=this.resolution=new Resolution(this,rn,sn,b);zn.addEventListener("change",ar=>this.setSize(zn.baseWidth,zn.baseHeight))}set mainScene(o){this.renderPass.mainScene=o}set mainCamera(o){this.renderPass.mainCamera=o}get texture(){return this.renderTarget.texture}getTexture(){return this.renderTarget.texture}getResolution(){return this.resolution}getResolutionScale(){return this.resolution.scale}setResolutionScale(o){this.resolution.scale=o}render(o,s,a,b,_e){const bt=this.renderToScreen?null:this.renderTarget;this.renderPass.render(o,bt,bt)}setSize(o,s){const a=this.resolution;a.setBaseSize(o,s),this.renderTarget.setSize(a.width,a.height)}};const coreSceneStore=create$3((o,s)=>({CORE_API:null,coreReady:void 0,frameloop:"always",hoveredGhostIndex:-1,itemDraggedSkuID:null,screenshotRenderer:new WebGLRenderer({antiAlias:!0,preserveDrawingBuffer:!0}),screenshotCamera:new PerspectiveCamera(75,1.33,.1,1e3),builderMode:!1,dragging:!1,bbox:null,draggingItemGUID:null,sceneRef:null,cssLoaded:!1,sceneHasDefaultConfigurationID:!1,configurationLoaded:!0,preconfigurationLoaded:!1,configurationLoadedOnRestart:!0,cursorParentRef:null,glContext:null,canvasTooltipText:"",canvasSize:{width:600,height:600},boundData:{center:new Vector3(0,0,0),size:new Vector3(0,0,0)},showDimensions:!1,autoFocusTrigger:0,cameraActive:!1,autoFocusRef:null,alertData:{},persistantAlertData:null,alertQueue:[],currentAlertData:null,alertSettings:null,draggingOnDropCollisionData:null,multipleTouchDetected:!1,isMobile:!1,isTouchDevice:!1,isTablet:!1,isDesktop:!0,isLandscape:!1,sceneSettings:{usdzMaxTextureSize:1024,usdzPrecision:7,swappableRoot:!0,ghostColorOnHoverWithDraggableUi:{r:153,g:252,b:0,a:1},preserveDrawingBuffer:!1,showSaveBtn:!0,showShareBtn:!0,showResetBtn:!0,showDimensionBtn:!0,showViewInYourSpaceBtn:!0,showDependencyOnHover:!1,showContextMenu:!0,showHotspotsBtn:!0,showInstructionsBtn:!1,showInstructionsOnStartup:!1,sceneScaleUnit:"ft",arPlacement:"floor",arTransforms:{position:[0,0,0],rotation:[0,0,0],scale:[1,1,1]},currency:"$",disableDragDrop:!1,ignoreSpawningCollision:!1,disableCollider:!1,disableContextMenu:!1,ghostColor:{r:10,g:10,b:10,a:.2},ghostScale:[1,1,1],ghostAsWireframe:!1,draggableUI:!1,addFromInfoModal:!1,clickToAddUi:!0,accordionInBuildUi:!1,outOfStock_EmissiveColor:{r:250,g:50,b:0},outOfStock_EmissiveIntensity:.002,defaultConfigurationID:null,emptySceneText:null,emptySceneTextFontSize:"2rem",addToCartCTAText:"Add To Cart",ignoreCollisionPostDragging:!1,comboPlugDistanceThreshold:.05,disableCart:!1,dimensionColor:{r:0,g:0,b:0},disableLocalColorOverride:!1,analyticsEventPrefix:"",outlineSettings:{multisampling:10,visibleEdgeColor:new Color$1("#0f0").convertSRGBToLinear(),hiddenEdgeColor:new Color$1("#0f0").convertSRGBToLinear(),blur:3,width:1e3,edgeStrength:1e3,blendFunction:BlendFunction.ALPHA,pulseSpeed:0,xRay:!0},textSettings:{arButtonLabel:"AR",arHoverLabel:"View In Your Space",restartButtonLabel:"Restart",restartHoverLabel:"Restart",saveButtonLabel:"Save",saveHoverLabel:"Save",shareButtonLabel:"Share",shareHoverLabel:"Share",sizeButtonLabel:"Size",sizeHoverLabel:"Size",hotspotsButtonLabel:"Hotspots",hotspotsHoverLabel:"Hotspots",instructionsButtonLabel:"Instructions",instructionsHoverLabel:"Instructions",cartQuantityText:"Qty",reviewButtonText:"Review",cartHeadingText:"Review Products",buildTabHeadingText:"Build",colorTabHeadingText:"Color",featuresTabHeadingText:"Features",tooltipEmptySceneText:"",tooltipInstructionText:"-Drag to rotate the camera-"},variantsTabOrder:{color:{enabled:!0,priority:1},geometryVariants:{enabled:!0,priority:2}},boundingBoxLeeway:.9,contactShadowVisibility:!0,measurementPrecision:2,disableAlerts:!1,focusCameraOnGhosts:!0,alertLevel:2999,alertControl:{default:!0,itemAdded:!0,geometryVariantChanged:!0,overridesRemoved:!0,materialVariantChanged:!0,itemRemoved:!0,itemRepositioned:!0,configurationSaved:!0,linkCopied:!0,outOfStock:!0,unvisualizedItemSpawn:!0},screenshotCameras:[{position:new Vector3(-2.5,.6,-5),rotation:new Vector3(-3.1097068566150314,-.6437852162982552,-3.122449778846033)},{position:new Vector3(3,1,-5),rotation:new Vector3(-.5,1,.5)}],instructionsSettings_desktop:[{header:"Add to Scene",description:"Click to add individual modules to the scene.",lottieURL:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Non-Furniture/Non-furniture_Step_1A_Drag_Drop/Non-furniture_Step_1A.json"},{header:"Rearrange Modules",description:"Drag & drop individual modules in the scene to rearrange.",lottieURL:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Non-Furniture/Non-furniture_Step_2/Non-furniture_Step_2.json"},{header:"Remove Modules",description:"Click to select and remove individual modules from the scene.",lottieURL:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Non-Furniture/Non-furniture_Step_3/Non-furniture_Step_3.json"}],instructionsSettings_mobile:[{header:"Add to Scene",description:"Click to add individual modules to the scene.",lottieURL:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Non-Furniture/Non-furniture_Step_1A_Drag_Drop_Mobile/Mobile_Non-furniture_Step_1A.json"},{header:"Rearrange Modules",description:"Drag & drop individual modules in the scene to rearrange.",lottieURL:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Non-Furniture/Non-furniture_Step_2/Non-furniture_Step_2.json"},{header:"Remove Modules",description:"Tap to select and remove individual modules from the scene.",lottieURL:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Non-Furniture/Non-furniture_Step_3/Non-furniture_Step_3.json"}],defaultInstructionsSettings:{step1_drag:{mobile:{header:"Add to Scene",description:"Drag & drop individual modules to add to the scene.",lottieURL:{furniture:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Furniture/Furniture_Step_1A_Drag_Drop_Mobile/Mobile_Furniture_Step_1A.json",nonFurniture:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Non-Furniture/Non-furniture_Step_1A_Drag_Drop_Mobile/Mobile_Non-furniture_Step_1A.json"}},desktop:{header:"Add to Scene",description:"Drag & drop individual modules to add to the scene.",lottieURL:{furniture:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Furniture/Furniture_Step_1A_Drag_Drop/Furniture_Step_1A.json",nonFurniture:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Non-Furniture/Non-furniture_Step_1A_Drag_Drop/Non-furniture_Step_1A.json"}}},step1_add:{mobile:{header:"Add to Scene",description:"Click to add individual modules to the scene.",lottieURL:{furniture:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Furniture/Furniture_Step_1B_Click_Add_Mobile/Mobile_Furniture_Step_1B.json",nonFurniture:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Non-Furniture/Non-furniture_Step_1B_Click_Add_Mobile/Mobile_Non-furniture_Step_1B.json"}},desktop:{header:"Add to Scene",description:"Click to add individual modules to the scene.",lottieURL:{furniture:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Furniture/Furniture_Step_1B_Click_Add/Furniture_Step_1B.json",nonFurniture:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Non-Furniture/Non-furniture_Step_1B_Click_Add/Non-furniture_Step_1B.json"}}},step2:{mobile:{header:"Rearrange Modules",description:"Drag & drop individual modules in the scene to rearrange.",lottieURL:{furniture:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Furniture/Furniture_Step_2/Furniture_Step_2.json",nonFurniture:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Non-Furniture/Non-furniture_Step_2/Non-furniture_Step_2.json"}},desktop:{header:"Rearrange Modules",description:"Drag & drop individual modules in the scene to rearrange.",lottieURL:{furniture:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Furniture/Furniture_Step_2/Furniture_Step_2.json",nonFurniture:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Non-Furniture/Non-furniture_Step_2/Non-furniture_Step_2.json"}}},step3:{mobile:{header:"Remove Modules",description:"Tap to select and remove individual modules from the scene.",lottieURL:{furniture:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Furniture/Furniture_Step_3/Furniture_Step_3.json",nonFurniture:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Non-Furniture/Non-furniture_Step_3/Non-furniture_Step_3.json"}},desktop:{header:"Remove Modules",description:"Click to select and remove individual modules from the scene.",lottieURL:{furniture:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Furniture/Furniture_Step_3/Furniture_Step_3.json",nonFurniture:"<@all-projects@>/common-assets/instructions-assets/lottie-animations/Non-Furniture/Non-furniture_Step_3/Non-furniture_Step_3.json"}}}}},setCSSLoaded:a=>{o({cssLoaded:a})},actions:{popFromAlertQueue:()=>{const{alertQueue:a}=s();return a.shift(),o({alertQueue:a}),a},addToAlertQueue:a=>{const{alertQueue:b,currentAlertData:_e}=s();return b.length>0&&b[b.length-1].alertId&&a.alertId===b[b.length-1].alertId||b.length==0&&_e&&_e.alertId&&_e.alertId==a.alertId||(b.push(a),o({alertQueue:b})),b},getDeviceState:()=>{const{isDesktop:a,isMobile:b,isTablet:_e,isTouchDevice:bt,isLandscape:rn}=s();return{isDesktop:a,isMobile:b,isTablet:_e,isTouchDevice:bt,isLandscape:rn}},enableCart:()=>{const{sceneSettings:a}=s();a.disableCart=!1,inventoryStore.getState().actions.refreshInventory(itemStore.getState().itemsSpawned),CORE_API.fireEvent(CORE_API.EVENTS.SCENE.Cart_StatusUpdated,{disableCart:!1})},disableCart:()=>{const{sceneSettings:a}=s();a.disableCart=!0,inventoryStore.getState().actions.refreshInventory(itemStore.getState().itemsSpawned),CORE_API.fireEvent(CORE_API.EVENTS.SCENE.Cart_StatusUpdated,{disableCart:!0})},getSceneSettings:()=>{const{sceneSettings:a}=s();return a},sendAlert:a=>{o({alertData:{...a}})},switchCursor(a){const{cursorParentRef:b}=s();if(!b)return;let _e="";switch(a){default:case CURSORS.GRAB:_e="grabCursor";break;case CURSORS.GRABBING:_e="grabbingCursor";break;case CURSORS.BLOCKED:_e="blockedCursor";break;case CURSORS.POINTER:_e="pointerCursor";break;case CURSORS.MOVE:_e="moveCursor";break}for(let bt=0;bt<b.classList.length;bt++)b.classList[bt].includes("Cursor")&&b.classList.remove(b.classList[bt]);b.classList.add(_e)},setAlertSettings:a=>{o({alertSettings:a})},async completeDropItem(){const a=attachmentStore$1.getState().attachmentSystem,{draggingOnDropCollisionData:b}=s(),{node:_e,attachedChildrenGuids:bt,collidingStatus:rn,intersectingGhostObject:sn,initPosition:yn,initRotation:Pn,detachedPlugs:zn,attachedNodesToCurrentNode:ar}=b;CORE_API.alert({alertMsg:"Item(s) have been removed",alertTime:7e3,alertType:"info",alertLabel:"Item(s) Removed",alertId:"itemRemoved"});for(const[es,Ur]of bt.entries())rn[es]===!0&&await itemStore.getState().actions.removeItemByGUID(Ur);const lr=sn.userData;let cr=_e.getPlugByName(lr.incomingPlugName),hr=a.currentStructure.getPlugByGUID(lr.receiverPlugGUID);_e.ref.position.set(sn.position.x,sn.position.y,sn.position.z),_e.ref.setRotationFromEuler(sn.rotation),_e.transform={position:sn.position,rotation:sn.quaternion},a.currentStructure.connectPlugs({incomingPlug:cr,receiverPlug:hr}),ghostStore.getState().actions.clearAllGhosts(),itemStore.getState().actions.deselectItem(),ar.map(es=>{_e.ref.parent.attach(es.ref),es.transform={position:es.ref.position,rotation:es.ref.quaternion},_e.dragging=!1,es.dragging=!1}),await attachmentStore$1.getState().actions.updateFittingSkuIds()},async revertDropItem(){const a=attachmentStore$1.getState().attachmentSystem,{draggingOnDropCollisionData:b}=s(),{node:_e,attachedChildrenGuids:bt,collidingStatus:rn,intersectingGhostObject:sn,initPosition:yn,initRotation:Pn,detachedPlugs:zn,attachedNodesToCurrentNode:ar}=b;CORE_API.alert({alertMsg:"Position of item"+_e.skuID+"is being moved to it's original position",alertTime:4e3,alertType:"info",alertLabel:"Repositioning",alertId:"itemRepositioned"});const lr=zn.neighbourDetachedPlugs;lr&&(zn.neighbourNode.detachNodeFromReceiver(),a.currentStructure.connectPlugs({incomingPlug:lr.incomingPlug,receiverPlug:lr.receiverPlug}));let cr=zn.rootDetachedPlugs.incomingPlug,hr=zn.rootDetachedPlugs.receiverPlug;_e.ref.position.set(yn.x,yn.y,yn.z),_e.ref.setRotationFromEuler(Pn);let es=new Quaternion().identity();_e.ref.getWorldQuaternion(es),_e.transform={position:yn,rotation:es},a.currentStructure.connectPlugs({incomingPlug:cr,receiverPlug:hr}),ghostStore.getState().actions.clearAllGhosts(),itemStore.getState().actions.deselectItem(),ar.map(Ur=>{_e.ref.parent.attach(Ur.ref),Ur.transform={position:Ur.ref.position,rotation:Ur.ref.quaternion},_e.dragging=!1,Ur.dragging=!1}),await attachmentStore$1.getState().actions.updateFittingSkuIds()},setCoreSettings:a=>{const{sceneSettings:b,isMobile:_e,isTouchDevice:bt,isLandscape:rn,actions:sn}=s(),yn=_e===!0?"mobile":"desktop",Pn=["showSave","showShare","showReset","showDimension","showHotspots","showInstructionsBtn","showViewInYourSpace","showContextMenu","showInstructionsOnStartup","draggableUI","clickToAddUi","textSettings","alertControl","variantsTabOrder","emptySceneTextFontSize","instructionsSettings"];for(const zn of Pn)if(zn==="draggableUI"||zn==="clickToAddUi"||zn==="emptySceneTextFontSize"||zn==="showInstructionsOnStartup"||zn==="showInstructionsBtn"||zn==="instructionsSettings"){const lr=`${zn}_${rn===!1&&bt===!0?"mobile":"desktop"}`;a[lr]!==void 0?b[zn]=a[lr]:b[lr]!==void 0&&(b[zn]=b[lr])}else if(zn==="textSettings"||zn==="variantsTabOrder"||zn==="alertControl"||zn==="outlineSettings"){if(a.hasOwnProperty(zn)){let ar=b[zn];Object.keys(ar).map(lr=>{let cr=a[zn];cr.hasOwnProperty(lr)?(lr==="visibleEdgeColor"||lr==="hiddenEdgeColor")&&(cr[lr]=new Color$1(cr[lr]).convertSRGBToLinear()):cr[lr]=ar[lr]})}}else{const ar=`${zn}_${yn}`;if(a[ar]!==void 0){let lr=`${zn}Btn`;zn=="showContextMenu"&&(lr=`${zn}`),b[lr]=a[ar]}}a.disableCart===!0&&sn.disableCart(),Object.keys(a).map(zn=>b[zn]=a[zn]),b.emptySceneText===null&&(b.emptySceneTextFontSize=_e?"1.2rem":"1.5rem",b.draggableUI===!0?b.emptySceneText="Drag an item here to get started":b.emptySceneText="Select an item to get started"),o({sceneSettings:{...b,ghostThreeColor:{r:b.ghostColor.r/255,g:b.ghostColor.g/255,b:b.ghostColor.b/255,a:b.ghostColor.a/255},draggableUiGhostThreeColorOnHover:{r:b.ghostColorOnHoverWithDraggableUi.r/255,g:b.ghostColorOnHoverWithDraggableUi.g/255,b:b.ghostColorOnHoverWithDraggableUi.b/255,a:b.ghostColorOnHoverWithDraggableUi.a/255}}})},triggerAutoFocus:(a=null)=>o(b=>({autoFocusRef:a,autoFocusTrigger:b.autoFocusTrigger+1})),requestNewScreenshot:async(a,b)=>new Promise(async(_e,bt)=>{LOGGER.info({title:"Taking a screenshot"});const{screenshotRenderer:rn,sceneRef:sn,screenshotCamera:yn,canvasSize:Pn}=s(),zn=await CORE_API.getCurrentCameraDetails();if(rn.setClearColor(16777215),yn.copy(zn),a!==null&&(yn.position.copy(a.position),yn.rotation.copy(new Euler(a.rotation.x,a.rotation.y,a.rotation.z))),b==null?rn.setSize(Pn.width,Pn.height):rn.setSize(b.width,b.height),rn.render(sn.parent,yn),rn.preserveDrawingBuffer===!1)LOGGER.warn({title:"Preserve Drawing Buffer must be enabled to take a screenshot. Please make sure to enable this within the project input data coreSettings"}),bt({success:!1,imageData:null});else{LOGGER.info({title:"Downloading the screenshot"});const ar=rn.domElement.toDataURL("image/png").replace("image/png","image/octet-stream");_e({success:!0,imageData:ar})}})}})),hotspotIdPrefix="rd",hotspotIdSeparator="_";function generateHotspotAbsoluteID(o,s){return`${hotspotIdPrefix}${hotspotIdSeparator}${o}${hotspotIdSeparator}${s}`}async function wait(o){return LOGGER.info({title:`Waiting for ${o}ms`}),new Promise((s,a)=>{setTimeout(()=>{s(!0)},o)})}function compareObjects(o,s){if(o===null||s===null)return!1;for(let a in o)if(o.hasOwnProperty(a)&&s.hasOwnProperty(a)&&o[a]!==s[a])return!1;return Object.keys(o).length===Object.keys(s).length}const saveStructureToCMS=o=>{const s={method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)};return fetch(SAVE_CONFIG_ENDPOINT,s)},mobileCheck=function(){let o=!1;return function(s){(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(s)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(s.substr(0,4)))&&(o=!0)}(navigator.userAgent||navigator.vendor||window.opera),o};function isIpadOS(){return navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)}function tabletCheck(){const o=navigator.userAgent.toLowerCase(),s=/(ipad|tablet|(android(?!.*mobile))|(windows(?!.*phone)(.*touch))|kindle|playbook|silk|(puffin(?!.*(IP|AP|WP))))/.test(o);return s||isIpadOS()}function touchDeviceCheck(){return"ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0}async function getJSONFromEndpoint(o){let s={data:null,report:"",success:!1};try{const b=await(await fetch(o)).text();s.data=JSON.parse(b),s.success=!0,s.report="Successfully fetched JSON data."}catch(a){s.report=a,CORE_API.alert({alertMsg:"",alertTime:5e3,alertType:"warn",alertLabel:"Preload Failed"})}return s}const addVector=(o,s)=>new Vector3(o[0]+s[0],o[1]+s[1],o[2]+s[2]),Vec3ToArr=o=>[o.x,o.y,o.z],ArrToVec3=o=>new Vector3(o[0],o[1],o[2]),findMeshAndCloneMatFromScene=(o,s=!0)=>{let a=[];const b=coreSceneStore.getState().sceneSettings.outOfStock_EmissiveColor,_e=coreSceneStore.getState().sceneSettings.outOfStock_EmissiveIntensity;return o.traverse(bt=>{bt.isMesh&&(bt.material.userData.cloned?bt.material.userData.inStock!==s&&(s?(bt.material.emissive.set(new Color$1(255,255,255)),bt.material.emissiveIntensity=0):(bt.material.emissive.set(new Color$1(b.r,b.g,b.b)),bt.material.emissiveIntensity=_e),bt.material.userData.inStock=s):(bt.material=bt.material.clone(),bt.material.userData.inStock=s,bt.material.userData.cloned=!0,s?(bt.material.emissive.set(new Color$1(255,255,255)),bt.material.emissiveIntensity=0):(bt.material.emissive.set(new Color$1(b.r,b.g,b.b)),bt.material.emissiveIntensity=_e)),a.push(bt))}),a},filterArrWithCondition=(o,s)=>{let a=0,b=[];for(let _e=0;_e<o.length;_e++){const bt=o[_e];s(bt)?o[a++]=bt:b.push(o[_e])}return o.length=a,b},degToRad=o=>o*Math.PI/180,resolveAssetUrl=o=>{if(!o)return;if(new RegExp("^(?:[a-z+]+:)?//","i").test(o))return o;let b=o;return b=b.replaceAll("<@all-projects@>",ALL_PROJECTS_ASSET_DATA_ROOT_URL),b=b.replaceAll("<@generic-project@>",GENERIC_PROJECT_ASSET_DATA_ROOT_URL),b};function componentToHex(o){var s=o.toString(16);return s.length==1?"0"+s:s}function rgbToHex(o,s,a){return"#"+componentToHex(o)+componentToHex(s)+componentToHex(a)}function getUrlParameterByName(o,s=window.location.search){const a=new URLSearchParams(s);return Object.fromEntries(a.entries())[o]}function _dispose3(o){o.geometry&&o.geometry.dispose(),o.material&&(Array.isArray(o.material)?o.material.forEach(s=>s.dispose()):o.material.dispose()),o.texture&&o.texture.dispose()}function dispose3(o){o.traverse(s=>{_dispose3(s)}),_dispose3(o)}const findVariantForGUID=o=>{const s=attachmentStore$1.getState().attachmentSystem,b=itemStore.getState().itemsSpawned[o];var _e=s.currentStructure.getNodeByGUID(o);if(!_e)return;let bt="";if(_e.overrideVariant)bt=_e.overrideVariant,CORE_API.fireEvent(CORE_API.EVENTS.SCENE.MaterialOverrides_Exists,!0);else{const rn=s.globalVariants;if(!rn||rn.Count<=0)return;let sn=[];Object.keys(rn).map((yn,Pn)=>{sn.push(rn[yn])}),b.itemData.looks?.map(yn=>{sn.includes(yn)&&(bt=yn)}),bt||(bt=b.itemData.looks[0])}return bt},lightStore=create$3((o,s)=>({defaultEnvMapUrl:"<@generic-project@>/env-map/neutral.hdr",envMapUrl:"",actions:{setEnvLightMap:a=>{o(b=>({envMapUrl:a}))},processLookEnvMapOverride:a=>{const{envMapUrl:b,defaultEnvMapUrl:_e,actions:bt}=s(),rn=productDataStore$1.getState().lookData[a],sn=rn?.envMapOverride;if(!rn||!sn){bt.setEnvLightMap(_e);return}if(sn===b){LOGGER.info({title:`New Env Map Url is the same as the current ${sn}`});return}bt.setEnvLightMap(sn)}}}));var rngBrowser={exports:{}},getRandomValues=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto<"u"&&typeof window.msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto);if(getRandomValues){var rnds8=new Uint8Array(16);rngBrowser.exports=function(){return getRandomValues(rnds8),rnds8}}else{var rnds=new Array(16);rngBrowser.exports=function(){for(var s=0,a;s<16;s++)s&3||(a=Math.random()*4294967296),rnds[s]=a>>>((s&3)<<3)&255;return rnds}}var rngBrowserExports=rngBrowser.exports,byteToHex=[];for(var i$2=0;i$2<256;++i$2)byteToHex[i$2]=(i$2+256).toString(16).substr(1);function bytesToUuid$2(o,s){var a=s||0,b=byteToHex;return[b[o[a++]],b[o[a++]],b[o[a++]],b[o[a++]],"-",b[o[a++]],b[o[a++]],"-",b[o[a++]],b[o[a++]],"-",b[o[a++]],b[o[a++]],"-",b[o[a++]],b[o[a++]],b[o[a++]],b[o[a++]],b[o[a++]],b[o[a++]]].join("")}var bytesToUuid_1=bytesToUuid$2,rng$1=rngBrowserExports,bytesToUuid$1=bytesToUuid_1,_nodeId,_clockseq,_lastMSecs=0,_lastNSecs=0;function v1$2(o,s,a){var b=s&&a||0,_e=s||[];o=o||{};var bt=o.node||_nodeId,rn=o.clockseq!==void 0?o.clockseq:_clockseq;if(bt==null||rn==null){var sn=rng$1();bt==null&&(bt=_nodeId=[sn[0]|1,sn[1],sn[2],sn[3],sn[4],sn[5]]),rn==null&&(rn=_clockseq=(sn[6]<<8|sn[7])&16383)}var yn=o.msecs!==void 0?o.msecs:new Date().getTime(),Pn=o.nsecs!==void 0?o.nsecs:_lastNSecs+1,zn=yn-_lastMSecs+(Pn-_lastNSecs)/1e4;if(zn<0&&o.clockseq===void 0&&(rn=rn+1&16383),(zn<0||yn>_lastMSecs)&&o.nsecs===void 0&&(Pn=0),Pn>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");_lastMSecs=yn,_lastNSecs=Pn,_clockseq=rn,yn+=122192928e5;var ar=((yn&268435455)*1e4+Pn)%4294967296;_e[b++]=ar>>>24&255,_e[b++]=ar>>>16&255,_e[b++]=ar>>>8&255,_e[b++]=ar&255;var lr=yn/4294967296*1e4&268435455;_e[b++]=lr>>>8&255,_e[b++]=lr&255,_e[b++]=lr>>>24&15|16,_e[b++]=lr>>>16&255,_e[b++]=rn>>>8|128,_e[b++]=rn&255;for(var cr=0;cr<6;++cr)_e[b+cr]=bt[cr];return s||bytesToUuid$1(_e)}var v1_1=v1$2,rng=rngBrowserExports,bytesToUuid=bytesToUuid_1;function v4$2(o,s,a){var b=s&&a||0;typeof o=="string"&&(s=o==="binary"?new Array(16):null,o=null),o=o||{};var _e=o.random||(o.rng||rng)();if(_e[6]=_e[6]&15|64,_e[8]=_e[8]&63|128,s)for(var bt=0;bt<16;++bt)s[b+bt]=_e[bt];return s||bytesToUuid(_e)}var v4_1=v4$2,v1$1=v1_1,v4$1=v4_1,uuid=v4$1;uuid.v1=v1$1;uuid.v4=v4$1;var uuid_1=uuid;class Plug{constructor(s,a,b=null){this._attachedPlug=null,this._name=s.name,this._acceptedPlugTypes=s.acceptedPlugTypes,this._affectedNodes=s.affectedNodes,this._unvisualizedCount=s.unvisualizedCount,this._weight=s.weight,this._connectsToPlugTypes=s.connectsToPlugTypes,this._dependencySku=s.dependencySku,this._isDependencySkuInteractive=s.isDependencySkuInteractive,this._autoSpawnDependencyIfMissing=s.autoSpawnDependencyIfMissing,this._node=a,b?(this._comboPlugConnector=b.comboPlugConnector,this._guid=b.guid,this._isOpen=b.isOpen,this._type=b.type,this._isReceiverPlug=b.isReceiverPlug,this._attachedPlugGUID=b.attachedPlugGUID):(this._comboPlugConnector=!1,this._guid=uuid_1.v4(),this._isOpen=!0,this._type=s.type,this._isReceiverPlug=!1,this._attachedPlugGUID=null)}export(){return this.isOpen?null:{guid:this._guid,type:this._type,isOpen:this._isOpen,comboPlugConnector:this._comboPlugConnector,attachedPlugGUID:this._attachedPlugGUID,isReceiverPlug:this._isReceiverPlug}}get node(){return this._node}set comboPlugConnector(s){this._comboPlugConnector=s}get comboPlugConnector(){return this._comboPlugConnector}get attachedPlug(){return this._attachedPlug}set attachedPlug(s){this._attachedPlug=s}get attachedPlugGUID(){return this._attachedPlugGUID}set type(s){this._type=s}get type(){return this._type}get weight(){return this._weight}get unvisualizedCount(){return this.__unvisualizedCount}get affectedNodes(){return this._affectedNodes}get guid(){return this._guid}get isReceiverPlug(){return this._isReceiverPlug}get name(){return this._name}get acceptedPlugTypes(){return this._acceptedPlugTypes}set acceptedPlugTypes(s){this._acceptedPlugTypes=s}get connectsToPlugTypes(){return this._connectsToPlugTypes}set connectsToPlugTypes(s){this._connectsToPlugTypes=s}get isOpen(){return this._isOpen}attachPlug(s,a=!1){this._attachedPlug=s,this._attachedPlugGUID=s.guid,this._isOpen=!1,this._isReceiverPlug=a;const b=this,_e=this._node;if(_e.isConnectedToRoot&&a){const bt=_e.whichPlugAreWeAttachedUsing();switch(s.type){case"weighted_hider":bt.weight<b.weight&&(_e.showNodes(bt.affectedNodes)||CORE_API.coreWCRef.addEventListener(_e.guid+":modelLoaded",function(){_e.showNodes(bt.affectedNodes)},{once:!0}));break}}if(a&&s.type!==""&&s.type==b._type)switch(s.type){default:case"weighted_hider":b._weight>s.weight?s.node.hideNodes(s.affectedNodes)||CORE_API.coreWCRef.addEventListener(s.node.guid+":modelLoaded",function(){s.node.hideNodes(s.affectedNodes)},{once:!0}):b._weight<s.weight&&(_e.hideNodes(b._affectedNodes)||CORE_API.coreWCRef.addEventListener(_e.guid+":modelLoaded",function(){_e.hideNodes(b._affectedNodes)},{once:!0}));break}a&&(_e.isEndNode=!1)}async openPlug(){if(this._comboPlugConnector&&(this._comboPlugConnector=!1),this._node.isConnectedToRoot){const s=this._node.whichPlugAreWeAttachedUsing();if(s&&this._guid!==s.guid)switch(this.type){case"weighted_hider":s.type==="weighted_hider"&&s.weight<this.weight&&this._node.hideNodes(s.affectedNodes);break}}if(this._isReceiverPlug&&this._attachedPlug.type!==""&&this._attachedPlug.type==this._type)switch(this._attachedPlug.type){default:case"weighted_hider":this._weight>this._attachedPlug.weight?this._attachedPlug.node.showNodes(this._attachedPlug.affectedNodes):this._weight<this._attachedPlug.weight&&this._node.showNodes(this._affectedNodes);break}if(this._attachedPlug=null,this._attachedPlugGUID=null,this._isOpen=!0,this._isReceiverPlug&&(this._isReceiverPlug=!1,this._node.checkIfEndNode()),!!this._dependencySku&&!(this._autoSpawnDependencyIfMissing==!1||this._isDependencySkuInteractive||coreSceneStore.getState().configurationLoaded===!1))try{const s=await ghostStore.getState().actions.spawnGhostsForSkuID(this._dependencySku,!0);if(!s)return;const a=s.connectablePlugs;let b=!1;const _e=this._isDependencySkuInteractive?this.isDependencySkuInteractive===1:!1;for(const bt of a){if(bt.receiverPlug.guid!==this._guid)continue;b=!0;const rn=await itemStore.getState().actions.addItemBySkuID(this._dependencySku,a.indexOf(bt),!0,_e);rn!==null&&this._node.addMyDependenciesGUID(rn)}b||await ghostStore.getState().actions.clearAllGhosts()}catch{LOGGER.info({title:"The Plug has been removed!"})}}canAttachToPlug(s){for(let a=0;a<this._connectsToPlugTypes.length;a++)if(s._acceptedPlugTypes.includes(this._connectsToPlugTypes[a]))return!0;return!1}}let Node$1=class{#t="default";#r=!1;#i=!1;#s=!0;#n={};#o=!1;#m={};#c=[];constructor(s,a=null,b,_e){let bt=productDataStore$1.getState().productData;this._plugs=[],this._skuID=s,this._ref=null,this._dragging=!1,this._modelFunctions=null,this._transform=null,this.#t="default",this._overrideVariant=null,this._followsParent=bt[s].followsParent,this._categoryID=bt[s].categoryID,this._replace=bt[s].replace,this._swappable=bt[s].swappable,this._price=this.#a(),this.#r=bt[s]?.ignoreInCart,a?(this._guid=a.guid,this._isEndNode=a.isEndNode,this._overrideVariant=a.overrideVariant,this.generatePlugsWithData(s,a.plugs)):(this._guid=uuid_1.v4(),this._isEndNode=!0,this.generatePlugsForNode(s)),b&&Object.keys(b).map(rn=>{if(bt[s].looks&&bt[s].looks.includes(rn)){this.#t=rn;return}})}get isRoot(){return this._skuID.toLowerCase()==="root"}updateGeometryVariant(s,a){const _e=productDataStore$1.getState().categoryData.geometryVariants;let bt=null;if(_e.map(zn=>{zn.id==s&&(bt=zn)}),!bt)return;const rn=bt.productsInCategory,yn=bt.variants[a].productsToSwitch,Pn=itemStore.getState().itemsSpawned;rn.map(zn=>{zn.products.map(ar=>{this.skuID===ar&&zn.products.map(lr=>{yn.map(cr=>{if(cr==lr){const hr=productDataStore$1.getState().actions.getProductDataById(cr);this.skuID=hr.skuID;const es=Pn[this.guid];es&&es.itemData&&Object.keys(hr).map(Ur=>{es.itemData[Ur]=hr[Ur]}),this.hideNodes(hr.geometriesToHide),this.showNodes(hr.geometriesToShow),this.updatePricing(),this.resetInStock(),inventoryStore.getState().actions.refreshInventory(Pn)}})})})})}resetInStock(){this.#n={},this.#o=!0}setInStockForRef(s){if(!this.ref)return!1;let a=this.ref.getObjectByName("GRP_RenderGeometry");return a?(a.inStock=s,!0):!1}set inStock({variantName:s,newValue:a}){if(this.#n[s]&&this.#n[s]==a||(this.#n[s]=a,s!==this.currentVariant&&this.#o===!1))return;const b=()=>{this.setInStockForRef(a)};b()||CORE_API.coreWCRef.addEventListener(this.guid+":modelLoaded",b,{once:!0})}get myDependenciesGUID(){return this.#c}set myDependenciesGUID(s){this.#c=s}get dragging(){return this._dragging}set dragging(s){this._dragging=s}addMyDependenciesGUID(s){this.#c.push(s)}get isDependent(){return this.#i}set isDependent(s){this.#i=s}get isInteractive(){return this.#s}set isInteractive(s){this.#s=s}update(s){this._skuID=s;const a=productDataStore$1.getState().productData,b=a[s]?.plugs;if(this.ignoreInCart=a[s].ignoreInCart,!!b)for(let _e=0;_e<this._plugs.length;_e++)for(let bt=0;bt<b.length;bt++)this._plugs[_e].name==b[bt].name&&(this._plugs[_e].acceptedPlugTypes=b[bt].acceptedPlugTypes,this._plugs[_e].connectsToPlugTypes=b[bt].connectsToPlugTypes)}export(){let s={};for(let a=0;a<this._plugs.length;a++){let b=this._plugs[a].export();b&&(s[this._plugs[a].name]=b)}return{skuID:this._skuID,guid:this._guid,isEndNode:this._isEndNode,plugs:s,overrideVariant:this._overrideVariant}}get node(){return this}get swappable(){return this._swappable}get replace(){return this._replace}get ignoreInCart(){return this.#r}set ignoreInCart(s){this.#r=s}get isTypeCombo(){const s=this.whichPlugAreWeAttachedUsing();return s.type=="comboPlug"&&s.connectsToPlugTypes.length>0}get canRotate(){let s=!0;if(this.isTypeCombo)return!1;if(!this._isEndNode){const b=this.whichNodesAreAttachedToUs();if(b.length>0){let _e=!0;if(b.map(bt=>{bt.followsParent===!1&&(_e=!1)}),!_e)return!1}}let a=!1;for(let b=0;b<this.plugs.length;b++)if(!this.plugs[b].isOpen&&this.plugs[b].attachedPlug.isReceiverPlug){const _e=this.plugs[b].attachedPlug.acceptedPlugTypes;for(let bt=0;bt<this.plugs.length;bt++)if(b!=bt)for(let rn=0;rn<this.plugs[bt].connectsToPlugTypes.length;rn++)_e.includes(this.plugs[bt].connectsToPlugTypes[rn])&&(a=!0)}return s=a,s}hideNodes(s){if(!this.ref)return!1;const a=this.ref.getObjectByName("GRP_RenderGeometry"),b=this.ref.getObjectByName("GRP_ProxyMesh");return s.map(_e=>{if(a){const bt=a.getObjectByName(_e);bt&&(bt.visible=!1)}if(b){const bt=b.getObjectByName(_e);bt&&(bt.visible=!1)}}),!0}showNodes(s){if(!this.ref)return!1;const a=this.ref.getObjectByName("GRP_RenderGeometry"),b=this.ref.getObjectByName("GRP_ProxyMesh");return s.map(_e=>{if(a){const bt=a.getObjectByName(_e);bt&&(bt.visible=!0)}if(b){const bt=b.getObjectByName(_e);bt&&(bt.visible=!0)}}),!0}canConnectToPlugType(s){let a=!1;return this._plugs.map(b=>{b.connectsToPlugTypes.map(_e=>{_e==s&&(a=!0)})}),a}isConnectedToSkuID(s){let a=!1;return this._plugs.map(b=>{if(b.isOpen||a===!0)return;let _e=b.attachedPlug;!_e&&b.attachedPlugGUID&&(_e=attachmentStore$1.getState().attachmentSystem.currentStructure.getPlugByGUID(b.attachedPlugGUID)),_e.node.skuID==s&&(a=!0)}),a}get isConnectedToRoot(){return this.isConnectedToSkuID("Root")}swapRoot(){if(!this.canSwapRoot)return;const a=attachmentStore$1.getState().attachmentSystem.currentStructure,b=this.whichNodesAreAttachedToUs();let _e=null;b.map(Pn=>{Pn.followsParent===!1&&(_e=Pn)});const bt=_e.detachNodeFromReceiver();let rn=null;this._plugs.map(Pn=>{Pn.isOpen||Pn.attachedPlug.node.skuID=="Root"&&(rn=Pn.attachedPlug)});const sn=this.detachNodeFromReceiver();let yn=null;return _e.plugs.map(Pn=>{Pn.connectsToPlugTypes.includes("root")&&(yn=Pn)}),a.connectPlugs({incomingPlug:yn,receiverPlug:rn}),{neighbourDetachedPlugs:bt,rootDetachedPlugs:sn,neighbourNode:_e}}get canSwapRoot(){if(coreSceneStore.getState().sceneSettings.swappableRoot===!1)return!1;let s=!1;if(this.isConnectedToRoot&&!this._isEndNode){const b=this.whichNodesAreAttachedToUs();let _e=0,bt=null;b.map(rn=>{rn.followsParent===!1&&(_e++,bt=rn)}),_e==1?bt.canConnectToPlugType("root")&&(s=!0):_e>0&&(s=!1)}return s}get canRemove(){let s=!0;return this._isEndNode||(this.whichNodesAreAttachedToUs().map(b=>{b.followsParent===!1&&(s=!1)}),s||(s=this.canSwapRoot)),s}getComboPlugNodesAttachedToUs(){let s=[];return this.whichNodesAreAttachedToUs().forEach(b=>{b.isTypeCombo&&s.push(b);const _e=b.getComboPlugNodesAttachedToUs();_e.length>0&&(s=s.concat(_e))}),s}getAllBranchedNodesAttachedToUs(){let s=[];const a=this.whichNodesAreAttachedToUs();for(let b=0;b<a.length;b++){s.push(a[b]);const _e=a[b].getAllBranchedNodesAttachedToUs();_e.length>0&&(s=s.concat(_e))}return s}get canDrag(){let s=!0;if(this.isTypeCombo)return!1;for(let b=0;b<this._plugs.length;b++)if(this._plugs[b].isOpen==!1&&this._plugs[b].attachedPlug.type=="comboPlug")return!1;const a=this.getComboPlugNodesAttachedToUs();if(a.length>0){const b=this.getAllBranchedNodesAttachedToUs();let _e=!0;if(a.map(bt=>{const rn=bt.whichNodesIsThisComboPlugAttachedTo();let sn=!0;if(rn.map(yn=>{let Pn=!1;if(b.map(zn=>{yn.guid===zn.guid&&(Pn=!0)}),Pn==!1){sn=!1;return}}),sn==!1){_e=!1;return}}),_e==!1)return!1}return this._isEndNode||(this.whichNodesAreAttachedToUs().map(_e=>{_e.followsParent===!1&&(s=!1)}),s||(s=this.canSwapRoot)),s}get followsParent(){return this._followsParent}set followsParent(s){this._followsParent=s}resetFollowsParent(){const s=productDataStore$1.getState().productData;this._followsParent=s[this.skuID].followsParent}get currentVariant(){return this.#t==="default"?productDataStore$1.getState().actions.getProductDataById(this._skuID).lookDetails.default.id:this.#t}get price(){return this._price}set price(s){this._price=s}updatePricing(){this._price=this.#a()}#a(){let a=productDataStore$1.getState().actions.getProductDataById(this._skuID).lookDetails[this.#t]?.price;return a||(a=0),a}set currentVariant(s){this.#t=s,this._price=this.#a()}get overrideVariant(){return this._overrideVariant}set overrideVariant(s){this._overrideVariant=s,this.#t=this._overrideVariant,this._price=this.#a()}get guid(){return this._guid}get skuID(){return this._skuID}set skuID(s){this._skuID=s}get plugs(){return this._plugs}get ref(){return this._ref}set ref(s){this._ref=s}get modelFunctions(){return this._modelFunctions}set modelFunctions(s){this._modelFunctions=s}checkGeometryVariant(){let s=new CustomEvent(this._guid+":modelLoaded",{bubbles:!0,cancelable:!1,composed:!0});const a=attachmentStore$1.getState().attachmentSystem;a.globalGeometryVariants&&Object.keys(a.globalGeometryVariants).map(b=>{this.updateGeometryVariant(b,a.globalGeometryVariants[b])}),s.data={},CORE_API.coreWCRef?CORE_API.coreWCRef.dispatchEvent(s):LOGGER.warn({title:"core web component not found!"})}get isEndNode(){return this._isEndNode}set isEndNode(s){this._isEndNode=s}get categoryID(){return this._categoryID}get transform(){return this._transform}set transform(s){this._transform=s}setModelVisibility(s){s?this._ref?.scale.set(1,1,1):this._ref.scale.set(0,0,0)}checkIfEndNode(){let s=!0;for(let a=0;a<this._plugs.length;a++)this._plugs[a].isReceiverPlug&&(s=!1);this.isEndNode=s}whichNodesAreAttachedToUs(){const s=[];for(let a=0;a<this._plugs.length;a++)this._plugs[a].isReceiverPlug&&s.push(this._plugs[a].attachedPlug.node);return s}whichPlugsAreAttachedToUs(){const s=[];for(let a=0;a<this._plugs.length;a++)this._plugs[a].isReceiverPlug&&s.push({receiverPlug:this._plugs[a],incomingPlug:this._plugs[a].attachedPlug});return s}whichNodeAreWeAttachedTo(){let s=null;for(const a of this._plugs)a?.attachedPlug?.isReceiverPlug&&(s=a.attachedPlug.node);return s}whichNodesIsThisComboPlugAttachedTo(){if(!this.isTypeCombo)return[];let s=[];for(const a of this._plugs)a?.attachedPlug?.isReceiverPlug&&s.push(a.attachedPlug.node);return s}isReplaceableWithSkuId(s){const b=productDataStore$1.getState().productData[s]?.plugs;let _e=0;if(!b)return!1;for(let bt=0;bt<this._plugs.length;bt++)for(let rn=0;rn<b.length;rn++)this._plugs[bt].name==b[rn].name&&_e++;return _e==this._plugs.length}whichPlugAreWeAttachedUsing(){for(let s=0;s<this._plugs.length;s++){const a=this._plugs[s];let b=a.attachedPlug;if(!b&&a.attachedPlugGUID&&(b=attachmentStore$1.getState().attachmentSystem.currentStructure.getPlugByGUID(a.attachedPlugGUID)),!a.isOpen&&b.isReceiverPlug)return a}}whichPlugAreWeAttachedTo(){for(let s=0;s<this._plugs.length;s++)if(!this._plugs[s].isOpen&&this._plugs[s].attachedPlug.isReceiverPlug)return this._plugs[s].attachedPlug}getPlugWhichCanConnectToType(s){for(const a of this._plugs)if(a.connectsToPlugTypes.includes(s))return a;return null}getOpenPlugsWeCanAttachFrom(){let s=[];if(this.whichNodeAreWeAttachedTo())return s;for(let a=0;a<this._plugs.length;a++)this.plugs[a].isOpen&&this.plugs[a].connectsToPlugTypes.length>0&&s.push(this._plugs[a]);return s}getOpenPlugsFromNode(){let s=[];for(let a=0;a<this._plugs.length;a++)this._plugs[a].isOpen&&this._plugs[a].acceptedPlugTypes.length>0&&s.push(this._plugs[a]);return s}generatePlugsForNode(s){this._plugs=[];let a=productDataStore$1.getState().productData[s]?.plugs;if(a)for(let b=0;b<a.length;b++)if(a[b].type==="unvisualizedPlug"){const _e=a[b]?.unvisualizedCount>=0?a[b].unvisualizedCount:1e3;for(let bt=0;bt<_e;bt++){const rn=new Plug({...a[b],name:`${a[b].name}_${bt}`},this);this._plugs.push(rn)}}else{const _e=new Plug(a[b],this);this._plugs.push(_e)}}generatePlugsWithData(s,a){const b=productDataStore$1.getState().productData[s]?.plugs;b&&b.forEach(_e=>{if(_e.type==="unvisualizedPlug"){const bt=_e.unvisualizedCount&&_e.unvisualizedCount>=0?_e.unvisualizedCount:1e3;for(let rn=0;rn<bt;rn++){const sn=new Plug({..._e,name:`${_e.name}_${rn}`},this,a[`${_e.name}_${rn}`]);this._plugs.push(sn)}}else{const bt=new Plug(_e,this,a[_e.name]);this._plugs.push(bt)}})}detachNodeFromReceiver(){for(let s=0;s<this.plugs.length;s++)if(!this.plugs[s].isOpen&&this.plugs[s].attachedPlug.isReceiverPlug){const a={incomingPlug:this.plugs[s],receiverPlug:this.plugs[s].attachedPlug};return this.plugs[s].attachedPlug.openPlug(),this.plugs[s].openPlug(),a}}detachNodeCompletely(){for(let s=0;s<this._plugs.length;s++)this._plugs[s].isOpen||(this._plugs[s].attachedPlug.openPlug(),this._plugs[s].openPlug())}getPlugByName(s){for(let a=0;a<this._plugs.length;a++)if(this._plugs[a].name==s)return this._plugs[a];return null}getPlugByGUID(s){for(let a=0;a<this._plugs.length;a++)if(this._plugs[a].guid==s)return this._plugs[a];return null}async removeNode(){const s=[];for(const a of this._plugs)if(!a.isOpen){if(a.type==="comboPlug"&&a.connectsToPlugTypes.length>0){a.attachedPlug.openPlug();continue}a.attachedPlug.isReceiverPlug?a.attachedPlug.openPlug():s.push(a.attachedPlug.node.guid)}if(s.length>0)for(const a of s)itemStore.getState().actions.addToRemoveItems(a);this.modelFunctions=null,this.ref=null}};const EPIGRAPH_CONFIGURATOR_CATEGORY="Epigraph - Configurator",CONFIGURATOR_LOADING={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorLoading",label:"",interaction:{nonInteraction:!0}},CONFIGURATOR_READY={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorReady",label:"",interaction:{nonInteraction:!0}},CONFIGURATOR_FAILED={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorFailed",label:"",interaction:{nonInteraction:!0}},CONFIGURATOR_REVIEW_CART_SHOWN={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorReviewCartShown",label:"",interaction:{nonInteraction:!1}},CONFIGURATOR_REVIEW_CART_HIDE={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorReviewCartHide",label:"",interaction:{nonInteraction:!1}},CONFIGURATOR_CHECKOUT={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorCheckout",label:"",interaction:{nonInteraction:!1}},CONFIGURATOR_CHECKOUT_ITEM={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorCheckoutItemDetails",label:"",interaction:{nonInteraction:!1}},CONFIGURATOR_GLOBAL_GEOMETRY_VARIANT_SWITCHED={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorGlobalGeometryVariantSwitched",label:"",interaction:{nonInteraction:!1}},CONFIGURATOR_GLOBAL_VARIANT_SWITCHED={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorGlobalVariantSwitched",label:"",interaction:{nonInteraction:!1}},CONFIGURATOR_LOCAL_VARIANT_SWITCHED={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorLocalVariantSwitched",label:"",interaction:{nonInteraction:!1}},CONFIGURATOR_LOAD_FROM_PRECONFIG={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorLoadFromPreConfiguration",label:"",interaction:{nonInteraction:!0}},CONFIGURATOR_PRECONFIGURATION_ITEM_ADDED={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"preconfigurationItemAdded",label:"",interaction:{nonInteraction:!0}},CONFIGURATOR_SCENE_RESTARTED={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorSceneRestarted",label:"",interaction:{nonInteraction:!1}},CONFIGURATOR_AR_REQUESTED={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorArRequested",label:"",interaction:{nonInteraction:!1}},CONFIGURATOR_ITEM_REMOVED={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorItemRemoved",label:"",interaction:{nonInteraction:!1}},CONFIGURATOR_ITEM_ADDED={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorItemAdded",label:"",interaction:{nonInteraction:!1}},CONFIGURATOR_INSTRUCTIONS_BTN_CLICKED={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorInstructionsBtnClicked",label:"",interaction:{nonInteraction:!1}},CONFIGURATOR_INSTRUCTIONS_COMPLETION_RATE={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorInstructionsStageCompletionRate",label:"",interaction:{nonInteraction:!1}},CONFIGURATOR_INSTRUCTIONS_SHOWN={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorInstructionsShow",label:"",interaction:{nonInteraction:!1}},CONFIGURATOR_DIMENSION_SHOWN={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorDimensionsBtnShow",label:"",interaction:{nonInteraction:!1}},CONFIGURATOR_DIMENSION_HIDE={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorDimensionsBtnHide",label:"",interaction:{nonInteraction:!1}},CONFIGURATOR_HOTSPOT_ENTER={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorHotspotEnter",label:"",interaction:{nonInteraction:!1}},CONFIGURATOR_HOTSPOT_EXIT={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorHotspotExit",label:"",interaction:{nonInteraction:!1}},CONFIGURATOR_SCENE_SHARED={type:"event",category:EPIGRAPH_CONFIGURATOR_CATEGORY,action:"configuratorSceneShared",label:"",interaction:{nonInteraction:!1}};class Structure{#t=!1;constructor(s=null,a,b){if(this._nodes=[],this._rootNode=null,LOGGER.info({title:"preloadNodes",details:s}),this.setupHookOnSceneItemsUpdated(),s){LOGGER.info({title:"PRELOAD Length-----------------:"+s.length});for(var _e=0;_e<s.length;_e++){LOGGER.info({title:"FOUND PRELOAD-----------------"});const bt=s[_e].skuID;if(bt.toLowerCase()=="root"){const sn=itemStore.getState().itemsSpawned;Object.keys(sn).length>0&&(s[_e].guid=Object.keys(sn)[0])}let rn=new Node$1(bt,s[_e],a,b);bt.toLowerCase()=="root"&&(this._rootNode=rn),this._nodes.push(rn)}}else{const bt=new Node$1("Root",null,a,b);this._rootNode=bt,this._nodes.push(bt),itemStore.getState().actions.addItemWithTransform({position:new Vector3(0,0,0),rotation:new Quaternion().identity()},"Root",this._rootNode.guid,!1)}this._boundingBoxLeeway=coreSceneStore.getState().sceneSettings.boundingBoxLeeway}async setupHookOnSceneItemsUpdated(){CORE_API.coreWCRef.addEventListener(CORE_API.EVENTS.SCENE.FittingSkuIds_Updated,()=>{DynamicHooks.hookOnSceneItemsUpdated(this._nodes,CORE_API)})}get nodes(){return this._nodes}get rootNode(){return this._rootNode}updatePricing(){for(let s=0;s<this._nodes.length;s++)this._nodes[s].updatePricing()}getCurrentItemsInReplaceableCategory(){let s={};for(const a of this._nodes)a.replace&&(s[a.categoryID]=a.skuID);return s}recalculateStructureFromNode(s){for(let a=0;a<s.plugs.length;a++)if(!s.plugs[a].isOpen&&s.plugs[a].isReceiverPlug){const b=s.plugs[a].attachedPlug.node,_e={receiverPlug:s.plugs[a],incomingPlug:s.plugs[a].attachedPlug};if(_e){const bt=this.findItemTransform(_e);bt&&(b.ref.position.set(bt.position.x,bt.position.y,bt.position.z),bt.rotation.isQuaternion===!0?b.ref.setRotationFromQuaternion(bt.rotation):bt.rotation.isEuler===!0&&b.ref.setRotationFromEuler(bt.rotation),b.transform={position:bt.position,rotation:bt.rotation})}this.recalculateStructureFromNode(b)}}rotateNode(s){const a=this.getNodeByGUID(s);let b=null,_e=null;for(let sn=0;sn<a.plugs.length;sn++)if(!_e&&!a.plugs[sn].isOpen&&a.plugs[sn].attachedPlug.isReceiverPlug){const yn=a.plugs[sn].attachedPlug.acceptedPlugTypes;_e=a.plugs[sn].attachedPlug;let Pn=[];for(let zn=sn+1;zn<a.plugs.length;zn++)Pn.push(a.plugs[zn]);for(let zn=0;zn<sn;zn++)Pn.push(a.plugs[zn]);for(let zn=0;zn<Pn.length;zn++)for(let ar=0;ar<Pn[zn].connectsToPlugTypes.length;ar++)yn.includes(Pn[zn].connectsToPlugTypes[ar])&&(b=Pn[zn])}if(!b)return;a.detachNodeFromReceiver();const{position:bt,rotation:rn}=this.findItemTransform({receiverPlug:_e,incomingPlug:b});a.ref.position.set(bt.x,bt.y,bt.z),rn.isQuaternion===!0?a.ref.setRotationFromQuaternion(rn):rn.isEuler===!0&&a.ref.setRotationFromEuler(rn),a.transform={position:a.ref.position,rotation:rn},this.connectPlugs({receiverPlug:_e,incomingPlug:b}),this.recalculateStructureFromNode(a)}async load(s){this.resolvePlugConnections(s),await this.respawnItems()}materialOverrideExists(){let s=!1;return this.nodes.map(a=>{if(a.overrideVariant)return s=!0,!0}),s}findGhostTransformForReplacement(s,a){let b=[],_e=[],bt=[];for(const rn of a){if(rn.skuID==s)continue;const sn=attachmentStore$1.getState().attachmentSystem,yn=rn.whichPlugAreWeAttachedTo(),Pn=rn.whichPlugAreWeAttachedUsing(),ar=new Node$1(s,null,sn.globalVariants,sn.globalGeometryVariants).getPlugByName(Pn.name);if(!ar)continue;const lr={incomingPlug:ar,receiverPlug:yn},{position:cr,rotation:hr}=this.findItemTransform(lr);cr&&hr&&(_e.push({position:cr,rotation:hr,incomingPlugName:lr.incomingPlug.name,receiverPlugName:lr.receiverPlug.name,incomingPlugGUID:lr.incomingPlug.guid,receiverPlugGUID:lr.receiverPlug.guid}),bt.push(lr),b.push(rn))}return{transforms:_e,connectablePlugs:bt,newNodes:b}}async findGhostTransforms(s,a){const b=this.getOpenPlugs(),_e=coreSceneStore.getState().sceneSettings.comboPlugDistanceThreshold;if(b.length<=0)return{transforms:[]};const bt=attachmentStore$1.getState().attachmentSystem,rn=productDataStore$1.getState().productData,sn=new Node$1(s,null,bt.globalVariants,bt.globalGeometryVariants),yn=this.getConnectablePlugs(sn,b);let Pn=[];if(yn.length<=0)return{transforms:[]};let zn=[],ar=[];const lr=assetStore.getState().assets.items[s].proxy.data.scene;if(!lr)return!1;let cr=lr.clone();for(let Ur=0;Ur<yn.length;Ur++){let Dr=a,{incomingPlug:zr,receiverPlug:rs}=yn[Ur],as=this.findItemTransform(yn[Ur]);if(!as)continue;let{position:os,rotation:cs}=as;if(!os||!cs)continue;cr.position.set(os.x,os.y,os.z),cs.isQuaternion===!0?cr.setRotationFromQuaternion(cs):cs.isEuler===!0&&cr.setRotationFromEuler(cs);let zs=[],mo=[];if(zr.type=="comboPlug"){if(zr.connectsToPlugTypes.length<=0)continue;const go=zr.connectsToPlugTypes[0];let Al=!1;if(ar.map(wy=>{Al===!0||wy.length<=0||wy.map(El=>{Al===!0||El.incomingPlug.guid!==zr.guid||El.incomingPlug.connectsToPlugTypes.includes(go)&&(Al=!0)})}),Al===!0)continue;const by=zr.node.plugs;let yy=!0;if(by.map(wy=>{if(wy.type!=="comboPlug"||wy.guid===zr.guid||!wy.connectsToPlugTypes.includes(go))return;let El=!1;if(b.map(_c=>{if(rs.guid===_c.guid||!_c.acceptedPlugTypes.includes(go)||!_c.node.ref)return;let gy=new Vector3(0,0,0);const _f=_c.node.ref.getObjectByName(""+_c.name);if(!_f)return;_f.getWorldPosition(gy);let Cy=new Vector3(0,0,0);const Fy=cr.getObjectByName(""+wy.name);if(!Fy)return;Fy.getWorldPosition(Cy);const aA=gy.distanceTo(Cy);Math.abs(aA)<_e&&(zs.push(rs.node.guid),zs.push(_c.node.guid),mo.push({receiverPlug:_c,incomingPlug:wy}),El=!0)}),El==!1){yy=!1;return}}),!yy)continue}let ga=Dr;Array.isArray(Dr)===!0&&(ga=!1),zs.length>0&&(ga=!1,Array.isArray(Dr)===!0?zs.map(go=>{Dr.push(go)}):Dr=zs),rn[s].hasOwnProperty("ignoreSpawningCollision")&&(ga=rn[s].ignoreSpawningCollision),yn[Ur].receiverPlug.type=="unvisualizedPlug"&&(ga=!0),(ga?!1:this.isColliding(sn.skuID,as,yn[Ur].receiverPlug,Dr))||(zn.push({position:os,rotation:cs,incomingPlugName:yn[Ur].incomingPlug.name,receiverPlugName:yn[Ur].receiverPlug.name,incomingPlugGUID:yn[Ur].incomingPlug.guid,receiverPlugGUID:yn[Ur].receiverPlug.guid}),Pn.push(yn[Ur]),ar.push(mo))}let hr=[];for(let Ur=0;Ur<zn.length;Ur++)hr.push(sn);dispose3(cr);let es={transforms:zn,newNodes:hr,connectablePlugs:Pn,comboPlugs:ar};return es=await DynamicHooks.hookOnNewItemGhostsCollected(es,CORE_API),es}resolvePlugConnections(s){for(let a=0;a<s.length;a++)Object.keys(s[a].plugs).map(b=>{let _e=s[a].plugs[b].guid,bt=this.getPlugInNodesByGUID(_e);if(!bt||bt.attachedPlug)return;let rn=s[a].plugs[b].attachedPlugGUID,sn=this.getPlugInNodesByGUID(rn);sn&&(sn.attachedPlug||(bt.attachPlug(sn,s[a].plugs[b].isReceiverPlug),sn.attachPlug(bt,!s[a].plugs[b].isReceiverPlug)))});LOGGER.info({title:"RESOLVED PLUG CONNECTION: ",details:this})}async respawnItems(){let s=[this.rootNode];for(let bt=0;bt<s.length;bt++){let sn=s[bt].whichPlugsAreAttachedToUs();for(let yn=0;yn<sn.length;yn++){if(sn[yn].incomingPlug.type=="comboPlug"&&sn[yn].incomingPlug.connectsToPlugTypes.length>0&&!sn[yn].incomingPlug.comboPlugConnector)continue;let Pn=this.findItemTransformForPreload(sn[yn],sn[yn].receiverPlug.node.transform);Pn?await itemStore.getState().actions.addItemWithTransform(Pn,sn[yn].incomingPlug.node.skuID,sn[yn].incomingPlug.node.guid):LOGGER.warn({title:"Problem finding plug transform! "+sn[yn].name}),sn[yn].incomingPlug.node.transform=Pn,s.push(sn[yn].incomingPlug.node)}}const a=await CORE_API.getCartItemsAsync();CORE_API.fireEvent(CORE_API.EVENTS.SCENE.SavedConfiguration_Loaded,{...a}),coreSceneStore.getState().actions.triggerAutoFocus(),hotspotStore$1.getState().actions.checkHotspotHealth();const b=coreSceneStore.getState().preconfigurationLoaded==!1&&coreSceneStore.getState().sceneHasDefaultConfigurationID==!1,_e=coreSceneStore.getState().configurationLoaded==!1&&coreSceneStore.getState().preconfigurationLoaded==!0&&coreSceneStore.getState().configurationLoadedOnRestart==!0;if(b||_e){let bt=Object.assign({},CONFIGURATOR_LOAD_FROM_PRECONFIG);bt.parameters={project_id:`${CORE_API.projectId}`,...a},CORE_API.sendAnalyticsEvent(bt)}}getPlugInNodesByGUID(s){for(let a=0;a<this._nodes.length;a++){let b=this._nodes[a].getPlugByGUID(s);if(b)return b}return null}export(){let s=[];for(let a=0;a<this._nodes.length;a++){let b=this._nodes[a].export();b&&s.push(b)}return s}async clear(){return new Promise(async(s,a)=>{!this._rootNode&&this._rootNode.isEndNode&&s(!0);let b=null;const _e=this._rootNode.whichNodesAreAttachedToUs();_e.length>0&&(b=_e[0]),this.#t=!0,CORE_API.coreWCRef.addEventListener(CORE_API.EVENTS.SCENE.Scene_Cleared,bt=>s(bt.data),{once:!0}),b?CORE_API.removeItemByGUID(b.guid,!0):(await wait(500),s(!0))})}getNodeByGUID(s){for(let a=0;a<this._nodes.length;a++)if(this._nodes[a].guid==s)return this._nodes[a];return null}getPlugByGUID(s){for(const a of this._nodes){const b=a.getPlugByGUID(s);if(b)return b}return null}findItemTransformForPreload(s,a){let{receiverPlug:b,incomingPlug:_e}=s,bt=b,rn=_e;if(bt.node.skuID=="Root")return this.findItemTransformRoot(s);let sn=null,yn=null,Pn=new Object3D,zn=assetStore.getState().assets.items[bt.node.skuID].proxy.data.scene.clone();Pn.add(zn);let{position:ar,rotation:lr}=a;if(zn.position.set(ar.x,ar.y,ar.z),lr.isQuaternion===!0?zn.setRotationFromQuaternion(lr):lr.isEuler===!0&&zn.setRotationFromEuler(lr),yn=zn,!yn||(sn=yn.getObjectByName(bt.name),!sn))return;let cr=new Vector3(0,0,0);sn.getWorldPosition(cr);let hr=new Quaternion().identity();sn.getWorldQuaternion(hr);let es=new Object3D;sn.add(es);let Ur=assetStore.getState().assets.items[rn.node.skuID].proxy.data.scene.clone();Ur.position.set(cr.x,cr.y,cr.z),Ur.applyQuaternion(hr);let Dr=new Vector3;Dr.copy(zn.up).applyQuaternion(yn.quaternion);let zr=new Vector3;zr.copy(Ur.up).applyQuaternion(hr),zr.negate();let rs=new Quaternion().setFromUnitVectors(Dr,zr);Dr.round(),zr.round();let as=Dr.dot(zr);as!==1&&as!==-1&&Ur.applyQuaternion(rs);let os=Ur.getObjectByName(rn.name),cs=new Quaternion().identity();os.getWorldQuaternion(cs);let zs=new Vector3(0,1,0);zs.applyQuaternion(cs);let mo=new Vector3(0,1,0);mo.applyQuaternion(hr),mo.negate();let ga=new Quaternion().setFromUnitVectors(zs,mo);if(zs.round(),mo.round(),zs.dot(mo)!==-1)Ur.applyQuaternion(ga);else{let by=new Vector3(0,1,0),yy=mo.dot(by);if(yy!==1&&yy!==-1)Ur.rotateOnAxis(by,Math.PI);else{let wy=new Vector3(0,0,1),El=mo.dot(wy);if(El!==1&&El!==-1)Ur.rotateOnAxis(wy,Math.PI);else{let _c=new Vector3(1,0,0),gy=mo.dot(_c);gy!==1&&gy!==-1&&Ur.rotateOnAxis(_c,Math.PI)}}}let yl=Ur.getObjectByName(rn.name),go=new Vector3(yl.position.x,yl.position.y,yl.position.z);Ur.translateX(-go.x),Ur.translateY(-go.y),Ur.translateZ(-go.z);let Al=new Vector3(0,0,0);Ur.getWorldPosition(Al);let _d=new Quaternion().identity();return Ur.getWorldQuaternion(_d),Ur=null,{position:Al,rotation:_d}}findItemTransformRoot(s){let{receiverPlug:a,incomingPlug:b}=s,_e=b;const bt=new Object3D;let rn=bt,sn=new Vector3(0,0,0);rn.getWorldPosition(sn);let yn=new Quaternion().identity(),Pn=new Object3D;Pn.position.set(0,0,0),bt.add(Pn);let zn=assetStore.getState().assets.items[_e.node.skuID].proxy.data.scene.clone();Pn.attach(zn),zn.translateX(sn.x),zn.translateY(sn.y),zn.translateZ(sn.z);let ar=zn.getObjectByName(_e.name),lr=new Quaternion().identity();ar&&ar.getWorldQuaternion(lr);const cr=new Vector3(0,1,0);cr.applyQuaternion(lr);const hr=new Vector3(0,1,0);hr.applyQuaternion(yn);const es=hr.angleTo(cr),Ur=new Vector3(0,0,0);Ur.crossVectors(hr,cr),Ur.round(),Ur.length()!==0&&zn.rotateOnAxis(Ur,es);var Dr=new Matrix4().extractRotation(zn.matrixWorld);let zr=new Vector3(0,0,0);ar&&zr.set(ar.position.x,ar.position.y,ar.position.z),zr.applyMatrix4(Dr),zn.translateX(-zr.x),zn.translateY(-zr.y),zn.translateZ(-zr.z);let rs=new Vector3(0,0,0);zn.getWorldPosition(rs);let as=new Quaternion().identity();return zn.getWorldQuaternion(as),Pn.remove(zn),Pn=null,zn=null,{position:rs,rotation:as}}findItemTransform(s){let{receiverPlug:a,incomingPlug:b}=s,_e=a,bt=b;if(_e.node.isRoot)return this.findItemTransformRoot(s);const rn=_e.node.transform;if(!rn)return;const sn=assetStore.getState().assets.items[_e.node.skuID].proxy.data.scene.clone(),yn=new Object3D;yn.position.set(rn.position.x,rn.position.y,rn.position.z),rn.rotation.isQuaternion===!0?yn.setRotationFromQuaternion(rn.rotation):rn.rotation.isEuler===!0&&yn.setRotationFromEuler(rn.rotation),yn.add(sn);let Pn=yn.getObjectByName(""+_e.name);if(!Pn){LOGGER.error({title:"Plug: "+_e.name+" doesn't exist in "+_e.node.skuID});return}let zn=new Vector3(0,1,0);Pn.getWorldPosition(zn);let ar=new Quaternion().identity();Pn.getWorldQuaternion(ar);let lr=assetStore.getState().assets.items[bt.node.skuID].proxy.data.scene.clone();lr.position.set(zn.x,zn.y,zn.z),lr.applyQuaternion(ar);let cr=new Vector3;cr.copy(sn.up).applyQuaternion(yn.quaternion);let hr=new Vector3;hr.copy(lr.up).applyQuaternion(ar),hr.negate();let es=new Quaternion().setFromUnitVectors(cr,hr);cr.round(),hr.round();let Ur=cr.dot(hr);Ur!==1&&Ur!==-1&&lr.applyQuaternion(es);let Dr=lr.getObjectByName(bt.name);if(!Dr){LOGGER.error({title:"Plug: "+bt.name+" doesn't exist in "+bt.node.skuID});return}let zr=new Quaternion().identity();Dr.getWorldQuaternion(zr);let rs=new Vector3(0,1,0);rs.applyQuaternion(zr);let as=new Vector3(0,1,0);as.applyQuaternion(ar),as.negate();let os=new Quaternion().setFromUnitVectors(rs,as);if(rs.round(),as.round(),rs.dot(as)!==-1)lr.applyQuaternion(os);else{let yl=new Vector3(0,1,0),go=as.dot(yl);if(go!==1&&go!==-1)lr.rotateOnAxis(yl,Math.PI);else{let Al=new Vector3(0,0,1),_d=as.dot(Al);if(_d!==1&&_d!==-1)lr.rotateOnAxis(Al,Math.PI);else{let by=new Vector3(1,0,0),yy=as.dot(by);yy!==1&&yy!==-1&&lr.rotateOnAxis(by,Math.PI)}}}let zs=lr.getObjectByName(bt.name),mo=new Vector3(zs.position.x,zs.position.y,zs.position.z);lr.translateX(-mo.x),lr.translateY(-mo.y),lr.translateZ(-mo.z);let ga=new Vector3(0,0,0);lr.getWorldPosition(ga);let ho=new Quaternion().identity();return lr.getWorldQuaternion(ho),yn.remove(sn),lr=null,{position:ga,rotation:ho}}getSpawningRequirementForSkuID(s){let a=[];const b=productDataStore$1.getState().productData,_e=b[s];if(!_e)return a;const bt=[];return _e.plugs.map(rn=>{rn.connectsToPlugTypes.map(sn=>{bt.push(sn)})}),Object.keys(b).map(rn=>{for(let sn=0;sn<b[rn].plugs.length;sn++){const yn=b[rn].plugs[sn].acceptedPlugTypes;for(let Pn=0;Pn<yn.length;Pn++)bt.map(zn=>{zn==yn[Pn]&&!a.includes(rn)&&a.push(rn)})}}),a}getConnectablePlugs(s,a){let b=[],_e=s.getOpenPlugsWeCanAttachFrom();for(let bt=0;bt<_e.length;bt++)for(let rn=0;rn<a.length;rn++){let sn=!1;for(let Pn=0;Pn<b.length;Pn++)if(b[Pn].receiverPlug.guid==a[rn].guid&&b[Pn].incomingPlug.type!="comboPlug"){sn=!0;break}if(sn)continue;_e[bt].canAttachToPlug(a[rn])&&b.push({incomingPlug:_e[bt],receiverPlug:a[rn]})}return b}getOpenPlugs(){let s=[];return this._nodes.map(a=>{if(a.dragging===!0)return;let b=a.getOpenPlugsFromNode();s=s.concat(b)}),s}checkCollisionforGUID(s,a=[]){if(coreSceneStore.getState().sceneSettings.disableCollider)return!1;const b=itemStore.getState().itemsSpawned,_e=productDataStore$1.getState().productData;if(!b[s])return!1;const rn=this.getNodeByGUID(s);if(!rn||!rn.ref||_e[rn.skuID].disableCollider)return!1;let sn=new Vector3;rn.ref.getWorldPosition(sn);let yn=new Quaternion;rn.ref.getWorldQuaternion(yn);const Pn={position:sn,rotation:yn},zn=rn.whichPlugAreWeAttachedTo();return zn==null?!1:this.isColliding(rn.skuID,Pn,zn,a)}isColliding(s,{position:a,rotation:b},_e,bt=[]){const rn=assetStore.getState().assets.items[s].proxy.data.scene,sn=productDataStore$1.getState().productData;if(!rn)return!1;let yn=rn.clone();yn.position.set(a.x,a.y,a.z),b.isQuaternion===!0?yn.setRotationFromQuaternion(b):b.isEuler===!0&&yn.setRotationFromEuler(b);let Pn=new Box3().setFromObject(yn);var zn=new Vector3;Pn.getCenter(zn);let ar=new Object3D;ar.position.set(zn.x,zn.y,zn.z),ar.attach(yn),ar.scale.set(this._boundingBoxLeeway,this._boundingBoxLeeway,this._boundingBoxLeeway),Pn=new Box3().setFromObject(ar);const lr=[];if(this._nodes.forEach(hr=>{if(_e.node.guid==hr.guid||Array.isArray(bt)===!0&&bt.includes(hr.guid)||!hr.ref||(sn[hr.skuID].hasOwnProperty("disableCollider")?sn[hr.skuID].disableCollider:coreSceneStore.getState().sceneSettings.disableCollider))return;const es=hr.ref.getObjectByName("GRP_ProxyMesh");es&&lr.push(es)}),lr.length<=0)return!1;let cr=!1;return lr.forEach(hr=>{if(cr)return;let es=new Box3().setFromObject(hr);if(Pn.intersectsBox(es)){cr=!0;return}}),ar.clear(),yn=null,ar=null,Pn=null,cr}boxOverlapPercent(s,a){if(s.containsBox(a)||a.containsBox(s))return 100;if(!(s.min.x<a.max.x||a.min.x<s.max.x))return 0;let b=new Vector3(0,0,0);s.getSize(b),b.x*b.y*b.z;let _e=new Vector3(0,0,0);a.getSize(_e),_e.x*_e.y*_e.z}checkInsideOutCollision(s,a,b){let _e=a.position.clone(),bt=new Float32Array(b.attributes.position.array),rn=bt.length/3;for(let sn=0;sn<rn;sn++){let yn=new Vector3(bt[sn*3],bt[sn*3+1],bt[sn*3+2]),Pn=yn.add(a.position);Pn=yn.applyQuaternion(a.quaternion);let zn=Pn.sub(a.position);const lr=new Raycaster(_e,zn.clone().normalize()).intersectObjects(s),cr=lr.length>0,hr=lr[0].distance<zn.length();if(cr&&hr)return!0}return!1}addNode(s){this._nodes.push(s)}getFirstNodeByCategoryID(s){for(var a=0;a<this._nodes.length;a++)if(this._nodes[a]._categoryID==s)return this._nodes[a];return null}getNodesBySKUID(s){let a=[];for(var b=0;b<this._nodes.length;b++)this._nodes[b].skuID==s&&a.push(this._nodes[b]);return a}getNodesByCategoryID(s){let a=[];for(var b=0;b<this._nodes.length;b++)this._nodes[b]._categoryID==s&&a.push(this._nodes[b]);return a}async connectPlugs({incomingPlug:s,receiverPlug:a}){s.attachPlug(a,!1),a.attachPlug(s,!0),await attachmentStore$1.getState().actions.toggleStructureUpdated()}removeNodeByGUID(s){for(let a=0;a<this._nodes.length;a++)if(this._nodes[a].guid==s){this._nodes[a].removeNode(),this._nodes.splice(a,1);break}this._nodes.length==1&&this.#t&&CORE_API.fireEvent(CORE_API.EVENTS.SCENE.Scene_Cleared,!0),attachmentStore$1.getState().actions.updateFittingSkuIds(),attachmentStore$1.getState().actions.toggleStructureUpdated()}async removeNodeFromStructure(s){for(let a=0;a<this._nodes.length;a++)if(this._nodes[a].guid==s.guid){this._nodes.splice(a,1);break}await attachmentStore$1.getState().actions.toggleStructureUpdated()}}class AttachmentSystem{constructor(){this._globalVariants={},this._globalGeometryVariants={},productDataStore$1.getState().categoryData.geometryVariants.map(s=>{this._globalGeometryVariants[s.id]=s.defaultVariant}),productDataStore$1.getState().categoryData.color.map(s=>{this._globalVariants[s.id]=s.defaultLook}),this._currentStructure=new Structure(null,this._globalVariants,this._globalGeometryVariants);for(const[s,a]of Object.entries(this._globalVariants))this.switchGlobalVariant(s,a);for(const[s,a]of Object.entries(this._globalGeometryVariants))this.switchGlobalGeometryVariant(s,a)}get globalGeometryVariants(){return this._globalGeometryVariants}get globalVariants(){return this._globalVariants}get currentStructure(){return this._currentStructure}getClientProductId(s,a){let b;return b=productDataStore$1.getState()?.productData[s]?.lookDetails[a],b?.clientProductId?b?.clientProductId:""}getCartItems(){let s=[];const a=inventoryStore.getState().inventoryData;this.currentStructure.nodes.map(bt=>{if(bt.skuID=="Root"||bt.ignoreInCart===!0)return;let rn=!1;if(s.map(Pn=>{const zn=a[Pn.skuID];if(Pn.skuID==bt.skuID&&Pn.currentVariant==bt.currentVariant){Pn.count++,Pn.countAvailable=zn[bt.currentVariant].countAvailable,Pn.countUnavailable=zn[bt.currentVariant].countUnavailable,Pn.price=bt.price*Pn.count,rn=!0;return}}),rn===!0)return;let sn={};sn.skuID=bt.skuID,sn.currentVariant=bt.currentVariant,sn.clientProductId=this.getClientProductId(sn.skuID,sn.currentVariant),sn.count=1;const yn=a[sn.skuID];sn.price=bt.price,sn.countAvailable=yn[bt.currentVariant].countAvailable,sn.countUnavailable=yn[bt.currentVariant].countUnavailable,s.push(sn)});let b=0;for(const bt of s)b=b+bt.price;return{cartItems:s,details:{total:b.toFixed(2)}}}async getCartItemsAsync(){let s=[];const a=inventoryStore.getState().inventoryData;this.currentStructure.nodes.map(bt=>{if(bt.skuID=="Root"||bt.ignoreInCart===!0)return;let rn=!1;if(s.map(Pn=>{const zn=a[Pn.skuID];if(Pn.skuID==bt.skuID&&Pn.currentVariant==bt.currentVariant){Pn.count++,Pn.countAvailable=zn[bt.currentVariant].countAvailable,Pn.countUnavailable=zn[bt.currentVariant].countUnavailable,Pn.price=bt.price*Pn.count,rn=!0;return}}),rn===!0)return;let sn={};sn.skuID=bt.skuID,sn.currentVariant=bt.currentVariant,sn.clientProductId=this.getClientProductId(sn.skuID,sn.currentVariant),sn.count=1;const yn=a[sn.skuID];sn.price=bt.price,sn.countAvailable=yn[bt.currentVariant].countAvailable,sn.countUnavailable=yn[bt.currentVariant].countUnavailable,s.push(sn)}),s=await DynamicHooks.hookOnCartItemsCollected(s,CORE_API);let b=0;for(const bt of s)b=b+bt.price;return{cartItems:s,details:{total:b.toFixed(2)}}}async getFittingSKUIDs(){const{productData:s}=productDataStore$1.getState(),{sceneSettings:a}=coreSceneStore.getState(),{draggableUI:b,ignoreSpawningCollision:_e}=a;if(!this.currentStructure)return[];const{openPlugTypes:bt,closedPlugTypes:rn,existingSkuids:sn}=this.analyzeCurrentStructure();if(bt.size===0&&rn.size===0)return[];const yn=this.findFittingSkuids(s,bt,rn,sn,b);return this.filterNonBlockedSkuids(yn,s,_e)}analyzeCurrentStructure(){const s=this.currentStructure.nodes,a=new Set,b=new Set,_e=new Set;for(const bt of s){_e.add(bt.skuID);for(const rn of bt.plugs)rn.isOpen?rn.acceptedPlugTypes.forEach(sn=>a.add(sn)):rn.attachedPlug.node.replace&&rn.acceptedPlugTypes.forEach(sn=>b.add(sn))}return{openPlugTypes:a,closedPlugTypes:b,existingSkuids:_e}}findFittingSkuids(s,a,b,_e,bt){const rn=new Set;for(const[sn,yn]of Object.entries(s))if(yn.plugs)for(const Pn of yn.plugs){for(const zn of Pn.connectsToPlugTypes)if((this.isClosedPlugFitting(sn,yn,zn,b,_e,bt)||this.isOpenPlugFitting(yn,zn,a))&&rn.add(sn),rn.has(sn))break;if(rn.has(sn))break}return rn}isClosedPlugFitting(s,a,b,_e,bt,rn){if(!_e.has(b)||!rn&&bt.has(s))return!1;const sn=this.currentStructure.getNodesByCategoryID(a.categoryID);for(const yn of sn)if(yn.skuID!==s&&this.isNodeCompatible(yn,a))return!0;return!1}isNodeCompatible(s,a){let b=!1;for(const _e of s.plugs)if(!_e.isOpen&&_e.isReceiverPlug&&(b=!0,this.isPlugCompatible(_e,a.plugs)))return!0;return!b}isPlugCompatible(s,a){return a.some(b=>b.name===s.name&&s.attachedPlug.connectsToPlugTypes.some(_e=>b.acceptedPlugTypes.includes(_e)))}isOpenPlugFitting(s,a,b){if(!b.has(a))return!1;const _e=this.currentStructure.getFirstNodeByCategoryID(s.categoryID);return!_e||!_e.replace}async filterNonBlockedSkuids(s,a,b){const _e=[];for(const bt of s)if(a[bt].replace)_e.push(bt);else{const{transforms:rn}=await this.currentStructure.findGhostTransforms(bt,b);rn.length>0&&_e.push(bt)}return _e}async removeAllVariantOverrides(){let s=this._currentStructure.nodes,a=productDataStore$1.getState().productData,b=itemStore.getState().itemsSpawned;await s.map(async _e=>{if(!_e.overrideVariant||(_e.overrideVariant=null,!a[_e.skuID].looks))return;let bt=null;Object.keys(this._globalVariants).map(rn=>{a[_e.skuID].looks.includes(this._globalVariants[rn])&&bt==null&&(bt=this._globalVariants[rn])}),bt&&await itemStore.getState().actions.switchToVariant(b[_e.guid].itemData,bt)}),CORE_API.alert({alertMsg:"Changes to individual items in the scene have been cleared",alertTime:6e3,alertType:"info",alertLabel:"Overrides Removed",alertId:"overridesRemoved"}),CORE_API.fireEvent(CORE_API.EVENTS.SCENE.MaterialOverrides_Exists,!1)}async switchGlobalGeometryVariant(s,a){const _e=productDataStore$1.getState().categoryData.geometryVariants;let bt=null;if(_e.map(lr=>{lr.id==s&&(bt=lr)}),!bt)return;const rn=bt.productsInCategory,yn=bt.variants[a].productsToSwitch,Pn=itemStore.getState().itemsSpawned;let zn=productDataStore$1.getState().categoryData;yn.map(lr=>{rn.map(cr=>{let hr=!1;cr.products.map(es=>{lr==es&&(hr=!0)}),hr&&zn.build.map(es=>{cr.products.map(Ur=>{es.skus.map((Dr,zr)=>{es.skus[zr]==Ur&&(es.skus[zr]=lr)})})})})}),this._currentStructure.nodes.map(lr=>{rn.map(cr=>{cr.products.map(hr=>{lr.skuID==hr&&lr.ref!==null&&cr.products.map(es=>{yn.map(Ur=>{if(Ur==es){const Dr=productDataStore$1.getState().actions.getProductDataById(Ur);let zr=Dr.geometriesToHide;lr.plugs.map(as=>{!as.isOpen&&as.attachedPlug&&as.type=="weighted_hider"&&as.attachedPlug.weight>as.weight&&(zr=zr.concat(as.affectedNodes))}),lr.showNodes(Dr.geometriesToShow),lr.hideNodes(zr),lr.skuID=Ur;const rs=Pn[lr.guid];rs&&rs.itemData&&Object.keys(Dr).map(as=>{rs.itemData[as]=Dr[as]}),lr.resetInStock(),lr.updatePricing()}})})})})}),this._globalGeometryVariants[s]=a,hotspotStore$1.getState().actions.checkHotspotHealth(),inventoryStore.getState().actions.refreshInventory(Pn),productDataStore$1.setState({categoryData:zn}),CORE_API.fireEvent(CORE_API.EVENTS.SCENE.CategoryData_Updated,zn),CORE_API.fireEvent(CORE_API.EVENTS.SCENE.GlobalGeometryVariant_Updated,this._globalGeometryVariants);const ar=await this.getCartItemsAsync();ar&&CORE_API.fireEvent(CORE_API.EVENTS.SCENE.CartItems_Updated,ar)}async switchGlobalVariant(s,a){this._globalVariants[s]=a;const b=itemStore.getState().actions;let _e=itemStore.getState().itemsSpawned;for(let yn=0;yn<Object.keys(_e).length;yn++){let Pn=_e[Object.keys(_e)[yn]];if(Pn.itemData.looks&&Pn.itemData.looks.includes(a)){let zn=this._currentStructure.getNodeByGUID(Pn.itemData.guid);zn&&!zn.overrideVariant&&await b.switchToVariant(Pn.itemData,a)}}const bt=productDataStore$1.getState().lookData;lightStore.getState().actions.processLookEnvMapOverride(a);const rn=s;Object.keys(_e).length>0&&CORE_API.alert({alertMsg:rn.charAt(0).toUpperCase()+rn.slice(1)+" was successfully switched to "+bt[a].label+".",alertTime:3e3,alertType:"success",alertLabel:`${rn} Changed`,alertId:"materialVariantChanged"}),CORE_API.fireEvent(CORE_API.EVENTS.SCENE.GlobalVariant_Updated,this._globalVariants),itemStore.setState({variantChangeAlert:!itemStore.getState().variantChangeAlert});const sn=await this.getCartItemsAsync();sn&&CORE_API.fireEvent(CORE_API.EVENTS.SCENE.CartItems_Updated,sn)}async#t(s){if(!s)return;LOGGER.info({title:"Structure to load",details:s}),delete this._currentStructure,this._globalVariants={...s.globalVariants},this._globalGeometryVariants=s.globalGeometryVariants?{...s.globalGeometryVariants}:{};const a=[...s.structure];this._currentStructure=new Structure(a,this._globalVariants,this._globalGeometryVariants);for(const[b,_e]of Object.entries(this._globalVariants))this.switchGlobalVariant(b,_e);for(const[b,_e]of Object.entries(this._globalGeometryVariants))this.switchGlobalGeometryVariant(b,_e);LOGGER.info({title:"Structure Loading..."}),await this._currentStructure.load(a),LOGGER.info({title:"Structure Loaded."})}async loadStructure(s){if(!s)return;CORE_API.fireEvent(CORE_API.EVENTS.UI.PreloadScreen_Show),coreSceneStore.setState({configurationLoaded:!1}),await wait(500),await this._currentStructure.clear(),await this.#t(s),coreSceneStore.getState().preconfigurationLoaded?CORE_API.fireEvent(CORE_API.EVENTS.UI.PreloadScreen_Hide):coreSceneStore.setState({preconfigurationLoaded:!0}),coreSceneStore.getState().configurationLoadedOnRestart||coreSceneStore.setState({configurationLoadedOnRestart:!0}),coreSceneStore.setState({configurationLoaded:!0}),await attachmentStore$1.getState().actions.toggleStructureUpdated();const a=itemStore.getState().itemsSpawned;CORE_API.fireEvent(CORE_API.EVENTS.SCENE.Items_Updated,{itemsSpawned:a}),inventoryStore.getState().actions.refreshInventory(a),await attachmentStore$1.getState().actions.updateFittingSkuIds()}export(){return{structure:this._currentStructure.export(),globalVariants:this._globalVariants,globalGeometryVariants:this._globalGeometryVariants}}async clear(){CORE_API.fireEvent(CORE_API.EVENTS.UI.PreloadScreen_Show),await this._currentStructure.clear(),CORE_API.fireEvent(CORE_API.EVENTS.UI.PreloadScreen_Hide)}async restart(){LOGGER.warn({title:"Restarting the Scene!!"}),itemStore.getState().selectedItemData&&itemStore.getState().actions.deselectItem();const s=attachmentStore$1.getState().defaultConfig;coreSceneStore.setState({configurationLoaded:!1,configurationLoadedOnRestart:!1}),CORE_API.fireEvent(CORE_API.EVENTS.UI.PreloadScreen_Show),await wait(500),await this._currentStructure.clear(),await this.#t(s),await attachmentStore$1.getState().actions.toggleStructureUpdated(),coreSceneStore.setState({configurationLoaded:!0,configurationLoadedOnRestart:!0}),CORE_API.fireEvent(CORE_API.EVENTS.UI.PreloadScreen_Hide);const a=itemStore.getState().itemsSpawned;CORE_API.fireEvent(CORE_API.EVENTS.SCENE.Items_Updated,{itemsSpawned:a}),inventoryStore.getState().actions.refreshInventory(a),await attachmentStore$1.getState().actions.updateFittingSkuIds()}}const attachmentStore=create$3((o,s)=>({attachmentSystem:null,defaultConfig:null,structureUpdated:!1,colliderMeshRef:null,placeholderRef:null,draggingItem:null,snappingThreshold:.5,actions:{initializeAttachmentSystem:async()=>{const{actions:a,defaultConfig:b}=s();LOGGER.info({title:"Initializing Attachment System!"});const _e=await new AttachmentSystem;o({attachmentSystem:_e}),await a.updateFittingSkuIds(),await a.toggleStructureUpdated()},loadSavedStructureFromConfigID:async a=>{LOGGER.info({title:"Fetching Structure Using ConfigID!"});const b=await getJSONFromEndpoint(FETCH_CONFIG_ENDPOINT+a);return b.success===!1?null:b.data},loadDefaultStructure:async()=>{const{actions:a,defaultConfig:b,attachmentSystem:_e}=s();LOGGER.info({title:"Loading Default Structure!"}),await a.loadStructure(b)},updateFittingSkuIds:async()=>{if(!coreSceneStore.getState().preconfigurationLoaded||!coreSceneStore.getState().configurationLoaded)return;const a=await attachmentStore.getState().attachmentSystem.getFittingSKUIDs();a&&(itemStore.setState({fittingSkuIds:[...a]}),CORE_API.fireEvent(CORE_API.EVENTS.SCENE.FittingSkuIds_Updated,{skuids:a}))},toggleStructureUpdated:async()=>{const{attachmentSystem:a}=s();if(o(_e=>({structureUpdated:!_e.structureUpdated})),!coreSceneStore.getState().preconfigurationLoaded||!coreSceneStore.getState().configurationLoaded)return;CORE_API.fireEvent(CORE_API.EVENTS.SCENE.ReplaceableCategory_Updated,a.currentStructure.getCurrentItemsInReplaceableCategory());const b=await a.getCartItemsAsync();b&&CORE_API.fireEvent(CORE_API.EVENTS.SCENE.CartItems_Updated,b)},loadStructure:async a=>{const{attachmentSystem:b}=s();LOGGER.info({title:"Loading Structure!"}),b&&coreSceneStore.getState().configurationLoaded!==!1&&await b.loadStructure(a)},export:()=>{const{attachmentSystem:a}=s();if(a)return a.export()}}})),attachmentStore$1=attachmentStore,productDataStore=create$3((o,s)=>({productData:{},categoryData:{},lookData:{},hotspotsData:{},endpoints:{},assetsData:void 0,actions:{getCurrentPricingInfo:()=>{const{productData:a}=s();let b={};return Object.keys(a).map(_e=>{if(_e.toLowerCase()==="root")return;let bt=a[_e].lookDetails,rn={};Object.keys(bt).map(sn=>{sn!="default"&&(rn[sn]=bt[sn].price)}),b[_e]=rn}),b},updatePricingForAllProducts:a=>{const{actions:b}=s();Object.keys(a).map(_e=>{let bt=a[_e];Object.keys(bt).map(rn=>{b.updatePricingForProduct(_e,rn,bt[rn])})})},updatePricingForProduct:(a,b,_e)=>{const{productData:bt}=s();let rn=bt[a];if(!rn||!rn.lookDetails)return;let sn=rn.lookDetails[b];if(!sn)return;sn.price=_e,attachmentStore$1.getState().attachmentSystem.currentStructure.getNodesBySKUID(a).map(zn=>zn.updatePricing())},setProductData:a=>{let b={};a&&Object.keys(a).map(_e=>{const bt=a[_e];if(bt.skuID=_e,bt.skuID.toLowerCase()==="root"){bt.lookDetails={default:{title:"",description:"",productPageUrl:"",thumbnails:{high:"",low:""},price:0}},bt.defaultVariant="default";return}if(bt?.lookDetails){const rn=bt.lookDetails;let sn=Object.keys(bt.lookDetails);if(sn.includes("default")){const Pn=sn.indexOf("default");sn.splice(Pn,1)}bt.looks=sn,Object.keys(bt.lookDetails).map(Pn=>{let zn=bt.lookDetails[Pn];zn.inventory===void 0&&(zn.inventory=DEFAULT_INVENTORY),zn.price===void 0&&(zn.price=DEFAULT_PRODUCT_PRICE),b[_e]={...b[_e],[Pn]:{inventory:DEFAULT_INVENTORY,inScene:[]}}});let yn=bt?.defaultVariant;yn||(LOGGER.warn({title:`No defaultVariant set for ${bt.skuID}. Attempting to auto resolve but the colour variants behaviour might be unexpected!`}),yn=Object.keys(bt.lookDetails).sort()[0],LOGGER.warn({title:"Auto resolved default look ID: "+yn})),sn.includes(yn)?(bt.lookDetails.default=rn[yn],bt.lookDetails.default.id=yn):(LOGGER.error({title:`Default look [ ${yn} ] doesn't exist for: ${_e}. Please make sure to select a default variant in Input Data for this project`}),bt.lookDetails.default=null)}}),LOGGER.info({title:"PRODUCT DATA: ",details:a}),inventoryStore.setState({inventoryData:b}),o({productData:a})},setCategoryData:a=>{const{productData:b}=s();a.geometryVariants!==void 0&&a.geometryVariants.map(_e=>{_e.defaultVariant===void 0&&Object.keys(_e.variants).length>0&&(_e.defaultVariant=Object.keys(_e.variants)[0])}),a.color!==void 0&&a.color.map(_e=>{(_e.defaultLook===void 0&&_e.looks.length>0||!_e.looks.includes(_e.defaultLook))&&(_e.defaultLook=_e.looks[0])}),o({categoryData:a}),a.build!==void 0&&a.build.map(_e=>{_e.skus.map(bt=>{b[bt].categoryID=_e.categoryID,b[bt].categoryLabel=_e.label,b[bt].swappable=_e.swappable?_e.swappable:!1,b[bt].replace=_e.replace})})},getProductDataById:a=>{const{productData:b}=s();let _e=null;return b[a]&&(_e=b[a]),_e},setLookData:a=>o({lookData:a}),setHotspotsData:a=>{const{categoryData:b,productData:_e}=s();b.geometryVariants&&Object.keys(a).map(bt=>{a[bt].map(rn=>{rn.geometryVariantID&&b.geometryVariants.map(sn=>{Object.keys(sn.variants).map(yn=>{rn.geometryVariantID==yn&&sn.productsInCategory.map(Pn=>{let zn=null;Pn.products.map(ar=>{a.hasOwnProperty(ar)&&(zn=a[ar])}),Pn.products.map(ar=>{a.hasOwnProperty(ar)||(a[ar]=zn)})})})})})}),o({hotspotsData:a})},setEndpoints:a=>{o({endpoints:a}),setGlobalEndpoints(a)},setAssetsData:a=>o({assetsData:a})}})),productDataStore$1=productDataStore,UtilityMenu=({handleShareButtonTrigger:o,handleSaveButtonTrigger:s,handleRestartButtonClick:a,handleShowHotspots:b,handleDimensionClick:_e,handleInstructionButtonClick:bt,utilityMenuVisible:rn,hotspotsVisibility:sn,viewInYourSpaceMenuBtnVisible:yn,restartMenuBtnVisible:Pn,saveMenuBtnVisible:zn,hotspotsMenuBtnVisible:ar,instructionsMenuBtnVisible:lr,dimensionsMenuBtnVisible:cr,shareMenuBtnVisible:hr,dimensionsVisible:es,position:Ur,CORE_API:Dr})=>{const[zr,rs]=reactExports.useState("bottom"),as=productDataStore$1(zs=>zs.assetsData),os=coreSceneStore(zs=>zs.sceneSettings),cs={ar:"https://storage.googleapis.com/gsc-epigraph-design/product-assets/Icon/AR.svg",restart:"https://storage.googleapis.com/gsc-epigraph-design/product-assets/Icon/Restart.svg",save:"https://storage.googleapis.com/gsc-epigraph-design/product-assets/Icon/save.svg",share:"https://storage.googleapis.com/gsc-epigraph-design/product-assets/Icon/Share.svg",dimensions:"https://storage.googleapis.com/gsc-epigraph-design/product-assets/Icon/Ruler.svg",hotspots:"https://storage.googleapis.com/gsc-epigraph-design/product-assets/Icon/Eye.svg",instructions:"https://storage.googleapis.com/gsc-epigraph-design/product-assets/Icon/Info.svg"};return reactExports.useEffect(()=>{switch(Ur){case"top":rs("top");break;case"bottom":rs("bottom");break;case"left":rs("left");break;case"right":rs("right");break}return()=>{}},[Ur]),jsxRuntimeExports.jsx("div",{className:"shellCanvasContainerParent",id:zr,children:jsxRuntimeExports.jsxs("div",{className:(rn&&(hr||yn||Pn||cr||ar||lr))==!0?"shellCanvasContainer":"shellCanvasContainer shellCanvasContainerInactive",children:[yn&&jsxRuntimeExports.jsx(UtilityMenuButton,{buttonAction:()=>{Dr.viewInYourSpace()},buttonLabel:os.textSettings.arButtonLabel,hoverLabel:os.textSettings.arHoverLabel,icon:as?.icons?.utilityMenu?.viewInYourSpace?Dr.getResolvedAssetUrl(as?.icons?.utilityMenu?.viewInYourSpace):cs.ar}),Pn&&jsxRuntimeExports.jsx(UtilityMenuButton,{buttonAction:()=>{a()},buttonLabel:os.textSettings.restartButtonLabel,hoverLabel:os.textSettings.restartHoverLabel,icon:as?.icons?.utilityMenu?.restart?Dr.getResolvedAssetUrl(as?.icons?.utilityMenu?.restart):cs.restart}),zn&&jsxRuntimeExports.jsx(UtilityMenuButton,{buttonAction:()=>{s()},buttonLabel:os.textSettings.saveButtonLabel,hoverLabel:os.textSettings.saveHoverLabel,icon:as?.icons?.utilityMenu?.save?Dr.getResolvedAssetUrl(as?.icons?.utilityMenu?.save):cs.save}),hr&&jsxRuntimeExports.jsx(UtilityMenuButton,{buttonAction:()=>{o()},buttonLabel:os.textSettings.shareButtonLabel,hoverLabel:os.textSettings.shareHoverLabel,icon:as?.icons?.utilityMenu?.share?Dr.getResolvedAssetUrl(as?.icons?.utilityMenu?.share):cs.share}),cr&&jsxRuntimeExports.jsx(UtilityMenuButton,{buttonAction:()=>{_e()},buttonLabel:os.textSettings.sizeButtonLabel,hoverLabel:os.textSettings.sizeHoverLabel,icon:as?.icons?.utilityMenu?.dimensions?Dr.getResolvedAssetUrl(as?.icons?.utilityMenu?.dimensions):cs.dimensions,activeCondition:es}),ar&&jsxRuntimeExports.jsx(UtilityMenuButton,{buttonAction:()=>{b()},buttonLabel:os.textSettings.hotspotsButtonLabel,hoverLabel:os.textSettings.hotspotsHoverLabel,icon:as?.icons?.utilityMenu?.hotspots?Dr.getResolvedAssetUrl(as?.icons?.utilityMenu?.hotspots):cs.hotspots,activeCondition:sn}),lr&&jsxRuntimeExports.jsx(UtilityMenuButton,{buttonAction:()=>{bt()},buttonLabel:os.textSettings.instructionsButtonLabel,hoverLabel:os.textSettings.instructionsHoverLabel,icon:as?.icons?.utilityMenu?.instructions?Dr.getResolvedAssetUrl(as?.icons?.utilityMenu?.instructions):cs.instructions})]})})};function makeTypeChecker(o){return s=>!!s.type&&s.type.tabsRole===o}const isTab=makeTypeChecker("Tab"),isTabList=makeTypeChecker("TabList"),isTabPanel=makeTypeChecker("TabPanel");function isTabChild(o){return isTab(o)||isTabList(o)||isTabPanel(o)}function deepMap(o,s){return reactExports.Children.map(o,a=>a===null?null:isTabChild(a)?s(a):a.props&&a.props.children&&typeof a.props.children=="object"?reactExports.cloneElement(a,{...a.props,children:deepMap(a.props.children,s)}):a)}function deepForEach(o,s){return reactExports.Children.forEach(o,a=>{a!==null&&(isTab(a)||isTabPanel(a)?s(a):a.props&&a.props.children&&typeof a.props.children=="object"&&(isTabList(a)&&s(a),deepForEach(a.props.children,s)))})}function r(o){var s,a,b="";if(typeof o=="string"||typeof o=="number")b+=o;else if(typeof o=="object")if(Array.isArray(o)){var _e=o.length;for(s=0;s<_e;s++)o[s]&&(a=r(o[s]))&&(b&&(b+=" "),b+=a)}else for(a in o)o[a]&&(b&&(b+=" "),b+=a);return b}function clsx(){for(var o,s,a=0,b="",_e=arguments.length;a<_e;a++)(o=arguments[a])&&(s=r(o))&&(b&&(b+=" "),b+=s);return b}function getTabsCount(o){let s=0;return deepForEach(o,a=>{isTab(a)&&s++}),s}function isNode(o){return o&&"getAttribute"in o}function isTabNode(o){return isNode(o)&&o.getAttribute("data-rttab")}function isTabDisabled(o){return isNode(o)&&o.getAttribute("aria-disabled")==="true"}let canUseActiveElement;function determineCanUseActiveElement(o){const s=o||(typeof window<"u"?window:void 0);try{canUseActiveElement=!!(typeof s<"u"&&s.document&&s.document.activeElement)}catch{canUseActiveElement=!1}}const defaultProps$4={className:"react-tabs",focus:!1},UncontrolledTabs=o=>{let s=reactExports.useRef([]),a=reactExports.useRef([]);const b=reactExports.useRef();function _e(Al,_d){if(Al<0||Al>=Pn())return;const{onSelect:by,selectedIndex:yy}=o;by(Al,yy,_d)}function bt(Al){const _d=Pn();for(let by=Al+1;by<_d;by++)if(!isTabDisabled(zn(by)))return by;for(let by=0;by<Al;by++)if(!isTabDisabled(zn(by)))return by;return Al}function rn(Al){let _d=Al;for(;_d--;)if(!isTabDisabled(zn(_d)))return _d;for(_d=Pn();_d-- >Al;)if(!isTabDisabled(zn(_d)))return _d;return Al}function sn(){const Al=Pn();for(let _d=0;_d<Al;_d++)if(!isTabDisabled(zn(_d)))return _d;return null}function yn(){let Al=Pn();for(;Al--;)if(!isTabDisabled(zn(Al)))return Al;return null}function Pn(){const{children:Al}=o;return getTabsCount(Al)}function zn(Al){return s.current[`tabs-${Al}`]}function ar(){let Al=0;const{children:_d,disabledTabClassName:by,focus:yy,forceRenderTabPanel:wy,selectedIndex:El,selectedTabClassName:_c,selectedTabPanelClassName:gy,environment:_f}=o;a.current=a.current||[];let Cy=a.current.length-Pn();const Fy=reactExports.useId();for(;Cy++<0;)a.current.push(`${Fy}${a.current.length}`);return deepMap(_d,aA=>{let bA=aA;if(isTabList(aA)){let Oy=0,IA=!1;canUseActiveElement==null&&determineCanUseActiveElement(_f);const $A=_f||(typeof window<"u"?window:void 0);canUseActiveElement&&$A&&(IA=React.Children.toArray(aA.props.children).filter(isTab).some((HA,A_)=>$A.document.activeElement===zn(A_))),bA=reactExports.cloneElement(aA,{children:deepMap(aA.props.children,HA=>{const A_=`tabs-${Oy}`,FA=El===Oy,BA={tabRef:zA=>{s.current[A_]=zA},id:a.current[Oy],selected:FA,focus:FA&&(yy||IA)};return _c&&(BA.selectedClassName=_c),by&&(BA.disabledClassName=by),Oy++,reactExports.cloneElement(HA,BA)})})}else if(isTabPanel(aA)){const Oy={id:a.current[Al],selected:El===Al};wy&&(Oy.forceRender=wy),gy&&(Oy.selectedClassName=gy),Al++,bA=reactExports.cloneElement(aA,Oy)}return bA})}function lr(Al){const{direction:_d,disableUpDownKeys:by,disableLeftRightKeys:yy}=o;if(hr(Al.target)){let{selectedIndex:wy}=o,El=!1,_c=!1;(Al.code==="Space"||Al.keyCode===32||Al.code==="Enter"||Al.keyCode===13)&&(El=!0,_c=!1,cr(Al)),!yy&&(Al.keyCode===37||Al.code==="ArrowLeft")||!by&&(Al.keyCode===38||Al.code==="ArrowUp")?(_d==="rtl"?wy=bt(wy):wy=rn(wy),El=!0,_c=!0):!yy&&(Al.keyCode===39||Al.code==="ArrowRight")||!by&&(Al.keyCode===40||Al.code==="ArrowDown")?(_d==="rtl"?wy=rn(wy):wy=bt(wy),El=!0,_c=!0):Al.keyCode===35||Al.code==="End"?(wy=yn(),El=!0,_c=!0):(Al.keyCode===36||Al.code==="Home")&&(wy=sn(),El=!0,_c=!0),El&&Al.preventDefault(),_c&&_e(wy,Al)}}function cr(Al){let _d=Al.target;do if(hr(_d)){if(isTabDisabled(_d))return;const by=[].slice.call(_d.parentNode.children).filter(isTabNode).indexOf(_d);_e(by,Al);return}while((_d=_d.parentNode)!=null)}function hr(Al){if(!isTabNode(Al))return!1;let _d=Al.parentElement;do{if(_d===b.current)return!0;if(_d.getAttribute("data-rttabs"))break;_d=_d.parentElement}while(_d);return!1}const{children:es,className:Ur,disabledTabClassName:Dr,domRef:zr,focus:rs,forceRenderTabPanel:as,onSelect:os,selectedIndex:cs,selectedTabClassName:zs,selectedTabPanelClassName:mo,environment:ga,disableUpDownKeys:ho,disableLeftRightKeys:yl,...go}={...defaultProps$4,...o};return React.createElement("div",Object.assign({},go,{className:clsx(Ur),onClick:cr,onKeyDown:lr,ref:Al=>{b.current=Al,zr&&zr(Al)},"data-rttabs":!0}),ar())};UncontrolledTabs.propTypes={};const MODE_CONTROLLED=0,MODE_UNCONTROLLED=1,defaultProps$3={defaultFocus:!1,focusTabOnClick:!0,forceRenderTabPanel:!1,selectedIndex:null,defaultIndex:null,environment:null,disableUpDownKeys:!1,disableLeftRightKeys:!1},getModeFromProps=o=>o.selectedIndex===null?MODE_UNCONTROLLED:MODE_CONTROLLED,Tabs=o=>{const{children:s,defaultFocus:a,defaultIndex:b,focusTabOnClick:_e,onSelect:bt,...rn}={...defaultProps$3,...o},[sn,yn]=reactExports.useState(a),[Pn]=reactExports.useState(getModeFromProps(rn)),[zn,ar]=reactExports.useState(Pn===MODE_UNCONTROLLED?b||0:null);if(reactExports.useEffect(()=>{yn(!1)},[]),Pn===MODE_UNCONTROLLED){const hr=getTabsCount(s);reactExports.useEffect(()=>{if(zn!=null){const es=Math.max(0,hr-1);ar(Math.min(zn,es))}},[hr])}const lr=(hr,es,Ur)=>{typeof bt=="function"&&bt(hr,es,Ur)===!1||(_e&&yn(!0),Pn===MODE_UNCONTROLLED&&ar(hr))};let cr={...o,...rn};return cr.focus=sn,cr.onSelect=lr,zn!=null&&(cr.selectedIndex=zn),delete cr.defaultFocus,delete cr.defaultIndex,delete cr.focusTabOnClick,React.createElement(UncontrolledTabs,cr,s)};Tabs.propTypes={};Tabs.tabsRole="Tabs";const defaultProps$2={className:"react-tabs__tab-list"},TabList=o=>{const{children:s,className:a,...b}={...defaultProps$2,...o};return React.createElement("ul",Object.assign({},b,{className:clsx(a),role:"tablist"}),s)};TabList.tabsRole="TabList";TabList.propTypes={};const DEFAULT_CLASS$1="react-tabs__tab",defaultProps$1={className:DEFAULT_CLASS$1,disabledClassName:`${DEFAULT_CLASS$1}--disabled`,focus:!1,id:null,selected:!1,selectedClassName:`${DEFAULT_CLASS$1}--selected`},Tab$1=o=>{let s=reactExports.useRef();const{children:a,className:b,disabled:_e,disabledClassName:bt,focus:rn,id:sn,selected:yn,selectedClassName:Pn,tabIndex:zn,tabRef:ar,...lr}={...defaultProps$1,...o};return reactExports.useEffect(()=>{yn&&rn&&s.current.focus()},[yn,rn]),React.createElement("li",Object.assign({},lr,{className:clsx(b,{[Pn]:yn,[bt]:_e}),ref:cr=>{s.current=cr,ar&&ar(cr)},role:"tab",id:`tab${sn}`,"aria-selected":yn?"true":"false","aria-disabled":_e?"true":"false","aria-controls":`panel${sn}`,tabIndex:zn||(yn?"0":null),"data-rttab":!0}),a)};Tab$1.propTypes={};Tab$1.tabsRole="Tab";const DEFAULT_CLASS="react-tabs__tab-panel",defaultProps={className:DEFAULT_CLASS,forceRender:!1,selectedClassName:`${DEFAULT_CLASS}--selected`},TabPanel=o=>{const{children:s,className:a,forceRender:b,id:_e,selected:bt,selectedClassName:rn,...sn}={...defaultProps,...o};return React.createElement("div",Object.assign({},sn,{className:clsx(a,{[rn]:bt}),role:"tabpanel",id:`panel${_e}`,"aria-labelledby":`tab${_e}`}),b||bt?s:null)};TabPanel.tabsRole="TabPanel";TabPanel.propTypes={};const colorStore=create$3(o=>({allActiveVariants:{},allActiveGeometryVariants:{}})),arrayWithoutElementAtIndex=function(o,s){return o.filter(function(a,b){return s!==b})},updateQuantityAtIndex=function(o,s,a){let b=o.slice();return b[s].quantity=a,b},cartStore=create$3((o,s)=>({cart:[],cartTotalPrice:0,deleteCartItem:a=>{o(b=>({cart:arrayWithoutElementAtIndex(b.cart,a)}))},addToCart:a=>{o(b=>({cart:[...b.cart,a]}))},updateQuantity:(a,b)=>{o(_e=>({cart:updateQuantityAtIndex(_e.cart,a,b)}))},previewCartModalOpen:!1,togglePreviewCartModal:()=>{const{previewCartModalOpen:a}=s();a===!0?uiSceneStore.getState().CORE_API.reviewCartHidden():uiSceneStore.getState().CORE_API.reviewCartShown(),o({previewCartModalOpen:!a})},actions:{setCartTotalPrice:a=>{o(()=>({cartTotalPrice:a}))}}})),ItemCard=({spawnGhosts:o,accordionActive:s,spawnItem:a,removeAllGhosts:b,isMouseUsed:_e,skuId:bt,active:rn})=>{const sn=uiSceneStore(UA=>UA.CORE_API),yn=infoStore(UA=>UA.infoModalOpen),Pn=reactExports.useRef(null),zn=infoStore(UA=>UA.populateInfoObject),ar=uiSceneStore(UA=>UA.dialogPopupOpen),lr=cartStore(UA=>UA.previewCartModalOpen),cr=infoStore(UA=>UA.updateInfoModalOpen),[hr,es]=reactExports.useState("default"),[Ur,Dr]=reactExports.useState(!0),zr=colorStore(UA=>UA.allActiveVariants),rs=productDataStore$1(UA=>UA.productData),as=itemStore(UA=>UA.fittingSkuIds),[os,cs]=reactExports.useState(rs[bt].incrementDecrementControl?rs[bt].incrementDecrementControl:!1),[zs,mo]=reactExports.useState(rs[bt]?rs[bt]:{}),[ga,ho]=reactExports.useState(rs[bt].name?rs[bt].name:"Not Set"),[yl,go]=reactExports.useState(rs[bt].subheading?rs[bt].subheading:""),[Al,_d]=reactExports.useState(rs[bt].lookDetails.default.thumbnails.low?rs[bt].lookDetails.default.thumbnails.low:""),[by,yy]=reactExports.useState(rs[bt].draggableUI!=null?rs[bt].draggableUI:uiSceneStore.getState().CORE_API.sceneSettings.draggableUI),[wy,El]=reactExports.useState(null),[_c,gy]=reactExports.useState(!1),[_f,Cy]=reactExports.useState(!1),[Fy,aA]=reactExports.useState(0),bA=reactExports.useCallback(()=>{Fy<=0||sn.removeLastItemBySkuId(bt)},[Fy]),Oy=()=>{let UA=0;const oE=itemStore.getState().itemsSpawned,iC=Object.keys(oE);for(let NA=iC.length-1;NA>=0;NA--){const qy=iC[NA];oE[qy].itemData.skuID===bt&&UA++}aA(UA)};reactExports.useEffect(()=>{Oy()},[]),addCoreEventListener(sn.EVENTS.SCENE.Items_Updated,Oy),reactExports.useEffect(()=>{as.includes(bt)?gy(!0):gy(!1)},[as]),reactExports.useEffect(()=>{Object.keys(rs).length!=0},[rs]),reactExports.useEffect(()=>{zs.looks.length<=1&&Dr(!1)},[zs]);const IA=reactExports.useCallback(()=>{const UA=zs.looks;let oE="default";for(const[iC,NA]of Object.entries(zr))if(UA.includes(NA)){oE=NA;break}es(oE)},[zr]);reactExports.useEffect(()=>{_d(zs.lookDetails[hr].thumbnails.low)},[hr]),reactExports.useEffect(()=>{Ur===!0&&IA()},[zr]);const $A=reactExports.useCallback(UA=>{if(UA.stopPropagation(),!(!uiSceneStore.getState().CORE_API.sceneSettings.clickToAddUi&&!os)){if(_c===!1||wy){sn.alert({alertMsg:"Unable to add item to the scene.",alertTime:4e3,alertType:"warn",alertLabel:"Action Unavailable"});return}a(bt,!0)}},[_c,wy]),HA=reactExports.useCallback(async()=>{const UA=sn.sceneSettings?.showDependencyOnHover;if(UA===void 0||UA===!1)return;let oE=sn.getSpawningRequirementForSkuID(bt);if(oE.length<=0)return;let iC="";const NA=await sn.getCartItemsAsync();let qy=!1;if(NA.cartItems.map(OA=>{oE.includes(OA.skuID)&&(qy=!0)}),oE.includes("Root")&&oE.length==1&&(qy=!0,oE=[]),qy)iC="No space available to spawn the item.";else{iC=`This item requires a dependency to be added to the scene first.
9196
9196
 
9197
9197
  Dependency:
9198
9198
  `;for(const OA of oE)iC+=`- ${OA}
@@ -9220,7 +9220,7 @@ b.goToAndStop(es-b.firstFrame-1,!0)}hr.type==="loop"&&(zn===null||zn!==hr.frames
9220
9220
  `,AccordionStyles=`h1{margin:0;line-height:2;text-align:center}h2{margin:0 0 .5em;font-weight:400}.tabs input{position:absolute;opacity:0;z-index:-1}.row{display:flex}.row .col{flex:1}.row .col:last-child{margin-left:1em}.tabs{overflow:scroll;top:0;left:0;width:100%;height:100%;min-height:100%;position:absolute}.productFeatureUIDiv{position:relative}.tabEmptyText{padding-top:2rem;text-align:center;color:#818181;font-size:.9rem}.tab{width:100%;color:#fff;overflow:hidden}.accordionTab>input:focus+label{outline:1px dotted #212121;outline:5px auto -webkit-focus-ring-color}.tab-label{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:#fff;font-weight:600;cursor:pointer;color:#000;font-size:16px;text-transform:uppercase;position:relative;border-bottom:1px solid var(--product-feature-border-color)}.tab-label img{width:1.6rem;height:auto}.tab-label span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:80%}input:checked~.tab-label{background:#f8f8f8}input:checked~.tab-content{background:#f8f8f8}.tab-label:hover{background:hsl(0,0%,97%)}.tab-label .ellipsis{width:20px;height:20px;background:#ffffff;border:2px solid #e52438;box-sizing:border-box;border-radius:50%;margin-right:12px}.tabs .tab-content{padding:0 1em;color:#000;background:white;transition:.5s ease-out;height:auto;max-height:0px;overflow:hidden}input:checked~.tab-label{font-weight:700}.tab:nth-child(2n) .tab-content{background:#f5f5f5}.tab-close{display:flex;justify-content:flex-end;padding:1em;font-size:.75em;background:#2c3e50;cursor:pointer}.tab-close:hover{background:#1a252f}input:checked+.tab-label .accordion-closed{display:none}input+.tab-label .accordion-closed{display:flex}input:checked+.tab-label .accordion-open{display:flex}input+.tab-label .accordion-open{display:none}
9221
9221
  `,BuildStyles=`.react-tabs{-webkit-tap-highlight-color:transparent}.react-tabs__tab-list{border-bottom:1px solid #aaa;margin:0 0 10px;padding:0}.react-tabs__tab{border:1px solid transparent;border-bottom:none;bottom:-1px;cursor:pointer;display:inline-block;list-style:none;padding:6px 12px;position:relative}.react-tabs__tab--selected{background:#fff;border-color:#aaa;border-radius:5px 5px 0 0;color:#000}.react-tabs__tab--disabled{color:GrayText;cursor:default}.react-tabs__tab:focus{outline:none}.react-tabs__tab:focus:after{background:#ffffff00;bottom:-5px;content:"";height:5px;left:-4px;position:absolute;right:-4px}.react-tabs__tab-panel{display:none}.react-tabs__tab-panel--selected{display:block}@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide--draggable>.splide__slider>.splide__track,.splide--draggable>.splide__track{-webkit-user-select:none;-ms-user-select:none;user-select:none}.splide--fade>.splide__slider>.splide__track>.splide__list,.splide--fade>.splide__track>.splide__list{display:block}.splide--fade>.splide__slider>.splide__track>.splide__list>.splide__slide,.splide--fade>.splide__track>.splide__list>.splide__slide{left:0;opacity:0;position:absolute;top:0;z-index:0}.splide--fade>.splide__slider>.splide__track>.splide__list>.splide__slide.is-active,.splide--fade>.splide__track>.splide__list>.splide__slide.is-active{opacity:1;position:relative;z-index:1}.splide--rtl{direction:rtl}.splide--ttb.is-active>.splide__slider>.splide__track>.splide__list,.splide--ttb.is-active>.splide__track>.splide__list{display:block}.splide__container{box-sizing:border-box;position:relative}.splide__list{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:-ms-flexbox;display:flex;height:100%;margin:0!important;padding:0!important;transform-style:preserve-3d}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{-ms-flex-align:center;-ms-flex-pack:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}.splide__progress__bar{width:0}.splide{outline:none;position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{-ms-flex-negative:0;-webkit-backface-visibility:hidden;backface-visibility:hidden;box-sizing:border-box;flex-shrink:0;list-style-type:none!important;margin:0;outline:none;position:relative}.splide__slide img{vertical-align:bottom}.splide__slider{position:relative}.splide__spinner{animation:splide-loading 1s linear infinite;border:2px solid #999;border-left-color:transparent;border-radius:50%;contain:strict;display:inline-block;height:20px;inset:0;margin:auto;position:absolute;width:20px}.splide__track{overflow:hidden;position:relative;z-index:0}:root{--toastify-color-light: #fff;--toastify-color-dark: #121212;--toastify-color-info: #3498db;--toastify-color-success: #07bc0c;--toastify-color-warning: #f1c40f;--toastify-color-error: #e74c3c;--toastify-color-transparent: hsla(0, 0%, 100%, .7);--toastify-icon-color-info: var(--toastify-color-info);--toastify-icon-color-success: var(--toastify-color-success);--toastify-icon-color-warning: var(--toastify-color-warning);--toastify-icon-color-error: var(--toastify-color-error);--toastify-toast-width: 320px;--toastify-toast-background: #fff;--toastify-toast-min-height: 64px;--toastify-toast-max-height: 800px;--toastify-font-family: sans-serif;--toastify-z-index: 9999;--toastify-text-color-light: #757575;--toastify-text-color-dark: #fff;--toastify-text-color-info: #fff;--toastify-text-color-success: #fff;--toastify-text-color-warning: #fff;--toastify-text-color-error: #fff;--toastify-spinner-color: #616161;--toastify-spinner-color-empty-area: #e0e0e0;--toastify-color-progress-light: linear-gradient( 90deg, #4cd964, #5ac8fa, #007aff, #34aadc, #5856d6, #ff2d55 );--toastify-color-progress-dark: #bb86fc;--toastify-color-progress-info: var(--toastify-color-info);--toastify-color-progress-success: var(--toastify-color-success);--toastify-color-progress-warning: var(--toastify-color-warning);--toastify-color-progress-error: var(--toastify-color-error)}.Toastify__toast-container{box-sizing:border-box;color:#fff;padding:4px;position:fixed;-webkit-transform:translate3d(0,0,9999 px);-webkit-transform:translate3d(0,0,var(--toastify-z-index) px);width:320px;width:var(--toastify-toast-width);z-index:9999;z-index:var(--toastify-z-index)}.Toastify__toast-container--top-left{left:1em;top:1em}.Toastify__toast-container--top-center{left:50%;top:1em;-webkit-transform:translateX(-50%);transform:translate(-50%)}.Toastify__toast-container--top-right{right:1em;top:1em}.Toastify__toast-container--bottom-left{bottom:1em;left:1em}.Toastify__toast-container--bottom-center{bottom:1em;left:50%;-webkit-transform:translateX(-50%);transform:translate(-50%)}.Toastify__toast-container--bottom-right{bottom:1em;right:1em}@media only screen and (max-width: 480px){.Toastify__toast-container{left:0;margin:0;padding:0;width:100vw}.Toastify__toast-container--top-center,.Toastify__toast-container--top-left,.Toastify__toast-container--top-right{top:0;-webkit-transform:translateX(0);transform:translate(0)}.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-right{bottom:0;-webkit-transform:translateX(0);transform:translate(0)}.Toastify__toast-container--rtl{left:auto;right:0}}.Toastify__toast{border-radius:4px;box-shadow:0 1px 10px #0000001a,0 2px 15px #0000000d;box-sizing:border-box;cursor:pointer;direction:ltr;display:flex;font-family:sans-serif;font-family:var(--toastify-font-family);justify-content:space-between;margin-bottom:1rem;max-height:800px;max-height:var(--toastify-toast-max-height);min-height:64px;min-height:var(--toastify-toast-min-height);overflow:hidden;padding:8px;position:relative}.Toastify__toast--rtl{direction:rtl}.Toastify__toast-body{align-items:center;display:flex;flex:1 1 auto;margin:auto 0;padding:6px}.Toastify__toast-body>div:last-child{flex:1 1}.Toastify__toast-icon{-webkit-margin-end:10px;display:flex;flex-shrink:0;margin-inline-end:10px;width:20px}.Toastify--animate{-webkit-animation-duration:.7s;animation-duration:.7s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.Toastify--animate-icon{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both}@media only screen and (max-width: 480px){.Toastify__toast{border-radius:0;margin-bottom:0}}.f{--y: calc(var(--len) - var(--nth));bottom:0;min-height:80px;position:absolute;right:0;-webkit-transform:translate3d(0,calc(var(--y) * -40%),0) scale(calc(1 - var(--y) * .05));transform:translate3d(0,calc(var(--y) * -40%),0) scale(calc(1 - var(--y) * .05));transition:all .3s;width:100%}.Toastify__toast-theme--dark{background:#121212;background:var(--toastify-color-dark);color:#fff;color:var(--toastify-text-color-dark)}.Toastify__toast-theme--colored.Toastify__toast--default,.Toastify__toast-theme--light{background:#fff;background:var(--toastify-color-light);color:#757575;color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{background:#3498db;background:var(--toastify-color-info);color:#fff;color:var(--toastify-text-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{background:#07bc0c;background:var(--toastify-color-success);color:#fff;color:var(--toastify-text-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{background:#f1c40f;background:var(--toastify-color-warning);color:#fff;color:var(--toastify-text-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{background:#e74c3c;background:var(--toastify-color-error);color:#fff;color:var(--toastify-text-color-error)}.Toastify__progress-bar-theme--light{background:linear-gradient(90deg,#4cd964,#5ac8fa,#007aff,#34aadc,#5856d6,#ff2d55);background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:#bb86fc;background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:#3498db;background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:#07bc0c;background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:#f1c40f;background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:#e74c3c;background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning{background:hsla(0,0%,100%,.7);background:var(--toastify-color-transparent)}.Toastify__close-button{align-self:flex-start;background:transparent;border:none;color:#fff;cursor:pointer;opacity:.7;outline:none;padding:0;transition:.3s ease}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:focus,.Toastify__close-button:hover{opacity:1}@-webkit-keyframes Toastify__trackProgress{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}to{-webkit-transform:scaleX(0);transform:scaleX(0)}}@keyframes Toastify__trackProgress{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}to{-webkit-transform:scaleX(0);transform:scaleX(0)}}.Toastify__progress-bar{bottom:0;height:5px;left:0;opacity:.7;position:absolute;-webkit-transform-origin:left;transform-origin:left;width:100%;z-index:9999;z-index:var(--toastify-z-index)}.Toastify__progress-bar--animated{-webkit-animation:Toastify__trackProgress linear 1 forwards;animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:-webkit-transform .2s;transition:transform .2s;transition:transform .2s,-webkit-transform .2s}.Toastify__progress-bar--rtl{left:auto;right:0;-webkit-transform-origin:right;transform-origin:right}.Toastify__spinner{-webkit-animation:Toastify__spin .65s linear infinite;animation:Toastify__spin .65s linear infinite;border:2px solid #e0e0e0;border-radius:100%;border-right:2px solid var(--toastify-spinner-color);box-sizing:border-box;height:20px;width:20px}@-webkit-keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes Toastify__bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes Toastify__bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@-webkit-keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes Toastify__bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@-webkit-keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes Toastify__bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@-webkit-keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes Toastify__bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes Toastify__bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--bottom-left,.Toastify__bounce-enter--top-left{-webkit-animation-name:Toastify__bounceInLeft;animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--bottom-right,.Toastify__bounce-enter--top-right{-webkit-animation-name:Toastify__bounceInRight;animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{-webkit-animation-name:Toastify__bounceInDown;animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{-webkit-animation-name:Toastify__bounceInUp;animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--bottom-left,.Toastify__bounce-exit--top-left{-webkit-animation-name:Toastify__bounceOutLeft;animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--bottom-right,.Toastify__bounce-exit--top-right{-webkit-animation-name:Toastify__bounceOutRight;animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{-webkit-animation-name:Toastify__bounceOutUp;animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{-webkit-animation-name:Toastify__bounceOutDown;animation-name:Toastify__bounceOutDown}@-webkit-keyframes Toastify__zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@-webkit-keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{-webkit-animation-name:Toastify__zoomIn;animation-name:Toastify__zoomIn}.Toastify__zoom-exit{-webkit-animation-name:Toastify__zoomOut;animation-name:Toastify__zoomOut}@-webkit-keyframes Toastify__flipIn{0%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0;-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg)}40%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg)}60%{opacity:1;-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg)}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes Toastify__flipIn{0%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0;-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg)}40%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg)}60%{opacity:1;-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg)}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@-webkit-keyframes Toastify__flipOut{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{opacity:1;-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg)}to{opacity:0;-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg)}}@keyframes Toastify__flipOut{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{opacity:1;-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg)}to{opacity:0;-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg)}}.Toastify__flip-enter{-webkit-animation-name:Toastify__flipIn;animation-name:Toastify__flipIn}.Toastify__flip-exit{-webkit-animation-name:Toastify__flipOut;animation-name:Toastify__flipOut}@-webkit-keyframes Toastify__slideInRight{0%{-webkit-transform:translate3d(110%,0,0);transform:translate3d(110%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes Toastify__slideInRight{0%{-webkit-transform:translate3d(110%,0,0);transform:translate3d(110%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes Toastify__slideInLeft{0%{-webkit-transform:translate3d(-110%,0,0);transform:translate3d(-110%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes Toastify__slideInLeft{0%{-webkit-transform:translate3d(-110%,0,0);transform:translate3d(-110%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes Toastify__slideInUp{0%{-webkit-transform:translate3d(0,110%,0);transform:translate3d(0,110%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes Toastify__slideInUp{0%{-webkit-transform:translate3d(0,110%,0);transform:translate3d(0,110%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes Toastify__slideInDown{0%{-webkit-transform:translate3d(0,-110%,0);transform:translate3d(0,-110%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes Toastify__slideInDown{0%{-webkit-transform:translate3d(0,-110%,0);transform:translate3d(0,-110%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes Toastify__slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(110%,0,0);transform:translate3d(110%,0,0);visibility:hidden}}@keyframes Toastify__slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(110%,0,0);transform:translate3d(110%,0,0);visibility:hidden}}@-webkit-keyframes Toastify__slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(-110%,0,0);transform:translate3d(-110%,0,0);visibility:hidden}}@keyframes Toastify__slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(-110%,0,0);transform:translate3d(-110%,0,0);visibility:hidden}}@-webkit-keyframes Toastify__slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(0,500px,0);transform:translate3d(0,500px,0);visibility:hidden}}@keyframes Toastify__slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(0,500px,0);transform:translate3d(0,500px,0);visibility:hidden}}@-webkit-keyframes Toastify__slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(0,-500px,0);transform:translate3d(0,-500px,0);visibility:hidden}}@keyframes Toastify__slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(0,-500px,0);transform:translate3d(0,-500px,0);visibility:hidden}}.Toastify__slide-enter--bottom-left,.Toastify__slide-enter--top-left{-webkit-animation-name:Toastify__slideInLeft;animation-name:Toastify__slideInLeft}.Toastify__slide-enter--bottom-right,.Toastify__slide-enter--top-right{-webkit-animation-name:Toastify__slideInRight;animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{-webkit-animation-name:Toastify__slideInDown;animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{-webkit-animation-name:Toastify__slideInUp;animation-name:Toastify__slideInUp}.Toastify__slide-exit--bottom-left,.Toastify__slide-exit--top-left{-webkit-animation-name:Toastify__slideOutLeft;animation-name:Toastify__slideOutLeft}.Toastify__slide-exit--bottom-right,.Toastify__slide-exit--top-right{-webkit-animation-name:Toastify__slideOutRight;animation-name:Toastify__slideOutRight}.Toastify__slide-exit--top-center{-webkit-animation-name:Toastify__slideOutUp;animation-name:Toastify__slideOutUp}.Toastify__slide-exit--bottom-center{-webkit-animation-name:Toastify__slideOutDown;animation-name:Toastify__slideOutDown}@-webkit-keyframes Toastify__spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes Toastify__spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}[data-rsbs-overlay]{background:#fff;background:var(--rsbs-bg, #fff);border-top-left-radius:16px;border-top-left-radius:var(--rsbs-overlay-rounded, 16px);border-top-right-radius:16px;border-top-right-radius:var(--rsbs-overlay-rounded, 16px);display:flex;flex-direction:column;height:0;height:var(--rsbs-overlay-h, 0);transform:translateZ(0);transform:translate3d(0,var(--rsbs-overlay-translate-y, 0),0);will-change:height}[data-rsbs-overlay]:focus{outline:none}[data-rsbs-is-blocking=false] [data-rsbs-overlay]{box-shadow:0 -5px 60px #2659731c,0 -1px #2659730d}[data-rsbs-overlay],[data-rsbs-root]:after{margin-left:env(safe-area-inset-left);margin-left:var(--rsbs-ml, env(safe-area-inset-left));margin-right:env(safe-area-inset-right);margin-right:var(--rsbs-mr, env(safe-area-inset-right));max-width:auto;max-width:var(--rsbs-max-w, auto)}[data-rsbs-backdrop],[data-rsbs-overlay],[data-rsbs-root]:after{-ms-scroll-chaining:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;bottom:0;left:0;overscroll-behavior:none;position:fixed;right:0;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:3}[data-rsbs-backdrop]{background-color:#0009;background-color:var(--rsbs-backdrop-bg, rgba(0, 0, 0, .6));bottom:-60px;cursor:pointer;opacity:1;top:-60px;will-change:opacity}[data-rsbs-is-dismissable=false] [data-rsbs-backdrop]{cursor:ns-resize}[data-rsbs-root]:after{background:#fff;background:var(--rsbs-bg, #fff);content:"";height:1px;pointer-events:none;transform:scaleY(0);transform:scaleY(var(--rsbs-antigap-scale-y, 0));transform-origin:bottom;will-change:transform}[data-rsbs-footer],[data-rsbs-header]{cursor:ns-resize;flex-shrink:0;padding:16px}[data-rsbs-header]{box-shadow:0 1px #2e3b4220;box-shadow:0 1px 0 rgba(46,59,66,calc(var(--rsbs-content-opacity, 1) * .125));padding-bottom:8px;padding-top:calc(20px + env(safe-area-inset-top));text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1}[data-rsbs-header]:before{background-color:#00000024;background-color:var(--rsbs-handle-bg, rgba(0, 0, 0, .14));border-radius:2px;content:"";display:block;height:4px;left:50%;position:absolute;top:calc(8px + env(safe-area-inset-top));transform:translate(-50%);width:36px}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 2dppx){[data-rsbs-header]:before{transform:translate(-50%) scaleY(.75)}}[data-rsbs-has-header=false] [data-rsbs-header]{box-shadow:none;padding-top:calc(12px + env(safe-area-inset-top))}[data-rsbs-scroll]{-webkit-tap-highlight-color:revert;-webkit-touch-callout:revert;-ms-scroll-chaining:none;-webkit-overflow-scrolling:touch;flex-grow:1;flex-shrink:1;overflow:auto;overscroll-behavior:contain;-webkit-user-select:auto;-ms-user-select:auto;-moz-user-select:auto;user-select:auto}[data-rsbs-scroll]:focus{outline:none}[data-rsbs-has-footer=false] [data-rsbs-content]{padding-bottom:env(safe-area-inset-bottom)}[data-rsbs-content]{overflow:hidden}[data-rsbs-footer]{box-shadow:0 -1px #2e3b4220,0 2px #fff;box-shadow:0 -1px 0 rgba(46,59,66,calc(var(--rsbs-content-opacity, 1) * .125)),0 2px 0 var(--rsbs-bg, #fff);overflow:hidden;padding-bottom:calc(16px + env(safe-area-inset-bottom));z-index:1}[data-rsbs-is-dismissable=false][data-rsbs-state=closing] [data-rsbs-footer]>*,[data-rsbs-is-dismissable=false][data-rsbs-state=closing] [data-rsbs-header]>*,[data-rsbs-is-dismissable=false][data-rsbs-state=closing] [data-rsbs-scroll]>*,[data-rsbs-is-dismissable=false][data-rsbs-state=opening] [data-rsbs-footer]>*,[data-rsbs-is-dismissable=false][data-rsbs-state=opening] [data-rsbs-header]>*,[data-rsbs-is-dismissable=false][data-rsbs-state=opening] [data-rsbs-scroll]>*,[data-rsbs-is-dismissable=true] [data-rsbs-footer]>*,[data-rsbs-is-dismissable=true] [data-rsbs-header]>*,[data-rsbs-is-dismissable=true] [data-rsbs-scroll]>*{opacity:1;opacity:var(--rsbs-content-opacity, 1)}[data-rsbs-is-dismissable=false][data-rsbs-state=closing] [data-rsbs-backdrop],[data-rsbs-is-dismissable=false][data-rsbs-state=opening] [data-rsbs-backdrop],[data-rsbs-is-dismissable=true] [data-rsbs-backdrop]{opacity:1;opacity:var(--rsbs-backdrop-opacity, 1)}[data-rsbs-state=closed],[data-rsbs-state=closing]{pointer-events:none}
9222
9222
  `,FeaturesUiStyles=`h1,h2,h3,h4,h5,p{margin:0}.hotspot-content{padding:.5rem 2rem 2.5rem}.hotspot-content h2{font-size:1.3rem;font-weight:700;text-transform:uppercase;margin-bottom:1rem}.carousel{margin-top:1rem;padding-bottom:1rem;display:flex;justify-content:center}.carousel img{width:100%;min-height:200px}.carousel video{max-width:100%;height:100%}.carouselTabParent{width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center}.carouselVideoPlaceholderText{position:absolute}.carouselTitle{padding-left:1rem;padding-right:1rem;padding-top:.75rem;text-transform:none;text-align:center}.splide__pagination{display:none!important}.splide__arrows{position:absolute;bottom:-52px;width:100%;justify-content:center;display:flex}.splide__arrow--prev{transform:rotateY(180deg)}.splide__arrow{background:transparent;border:none;box-shadow:none;transition:.1s;padding:1rem}.splide__arrow svg{width:1rem;height:1rem}.splide__arrow:disabled{opacity:.3;pointer-events:none}.col{border-radius:12px}
9223
- `,SideMenuContentStyles=`.hide{display:none!important}.container{padding:28px 46px;padding-bottom:2.5rem;height:100%;overflow-y:scroll}.variantContainer{height:100%;overflow-y:scroll}.col{padding:0;height:100%;overflow-y:scroll}.container .subheading{font-size:.75rem;font-weight:700;text-transform:uppercase;margin-top:0;margin-bottom:1.5rem}.buildUiAccordion{cursor:pointer;transition:.4s;width:100%;border:none;background:#00000000;text-align:left;display:flex;align-items:center;margin-bottom:.5rem}.buildUiAccordion .arrowUp{display:block}.buildUiAccordionActive .arrowUp,.buildUiAccordion .arrowDown{display:none}.buildUiAccordionActive .arrowDown{display:block}.buildUiAccordionContent{max-height:0;overflow:hidden;transition:max-height .2s ease-out}.buildUiAccordion h4{padding-left:.5rem;font-size:.75rem;font-weight:700;text-transform:uppercase}.item-grid{display:flex;justify-content:flex-start;column-gap:1.25rem;align-items:flex-start;position:relative;flex-wrap:wrap}.item-grid .imageContainer{width:6rem;height:fit-content;position:relative;cursor:pointer;border-radius:.6rem;background:#fff;box-sizing:border-box;margin-bottom:2rem;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;transition:.2s ease}.item-grid .imageContainer .contentContainer{left:0;top:0;width:6rem;height:6rem;transition:.2s ease;background:var(--item-card-background-color);padding:8px;display:flex;flex-direction:column;justify-content:center;align-items:center;box-shadow:0 2px 8px #0000001a;-webkit-box-shadow:0px 2px 8px rgb(0 0 0 / 10%);border-radius:.6rem;margin:0}.incrementContentContainer{left:0;top:0;width:6rem;height:6rem;transition:.2s ease;background:var(--item-card-background-color);padding:8px;display:flex;flex-direction:column;justify-content:space-around;align-items:center;box-shadow:0 2px 8px #0000001a;-webkit-box-shadow:0px 2px 8px rgb(0 0 0 / 10%);border-radius:.6rem;margin:0;background:white}.splide__arrow{pointer-events:all;cursor:pointer}.item-grid .imageContainer .addCartButton{width:100%;height:auto;line-height:.75rem;justify-content:center;align-items:center;background:var(--primary-color);cursor:pointer;display:none;position:absolute;bottom:0;left:0;border:none;border-bottom-left-radius:.6rem;border-bottom-right-radius:.6rem;font-size:.625rem;color:#fff;text-transform:uppercase;font-weight:600;padding:.5rem;transition:.2s all ease;-webkit-transition:.2s all ease}.item-grid .imageContainer .addCartButton.added{background:var(--brand-dark)}.item-grid .imageContainer .infoButton{position:absolute;right:.25rem;top:.25rem;z-index:8;background:none;padding:0;margin:0;border:0;cursor:pointer;opacity:0;pointer-events:none;transition:.2s all ease;-webkit-transition:.2s all ease}.incrementContentOverlay{pointer-events:none;position:absolute;left:0;top:0;width:6rem;height:6rem;display:flex;justify-content:center;align-items:center;opacity:0;transition:.5s;border-radius:.6rem;z-index:3}.item-grid .imageContainer .contentOverlay{position:absolute;left:0;top:0;width:6rem;height:6rem;display:flex;justify-content:center;align-items:center;opacity:0;transition:.5s;background:rgba(51,51,51,.2);border-radius:.6rem;z-index:3;pointer-events:all}.enabled-item-overlay{opacity:1!important;cursor:pointer!important}.disabled-item-overlay{cursor:not-allowed!important}.item-grid .imageContainer .contentOverlay img{filter:invert(96%) sepia(3%) saturate(312%) hue-rotate(315deg) brightness(114%) contrast(100%);width:1.875rem;pointer-events:all}.item-grid .imageContainer .itemDetails{opacity:0;font-size:.685rem;justify-content:center;width:100%;height:fit-content;margin-top:.8rem;display:flex;align-items:center}.showAlways{opacity:1!important}.incrementDecrementPanel{width:100%;display:flex;align-items:center;justify-content:center}.incrementCount{cursor:auto;background:#f5f5f5;border:solid .5px #cccccc;padding:0rem .5rem;height:100%;border-right:none;border-left:none;font-size:.7rem;display:flex;align-items:center}.incrementPlusSign{cursor:pointer;height:100%;background:#f5f5f5;border-radius:0 1rem 1rem 0;border:solid .5px #cccccc;display:flex;justify-content:center;align-items:center;padding:0rem .3rem}.incrementPlusSign:hover{background:rgb(232,232,232)}.incrementMinusSign{cursor:pointer;height:100%;background:#f5f5f5;border-radius:1rem 0 0 1rem;border:solid .5px #cccccc;display:flex;justify-content:center;align-items:center;padding:0rem .3rem}.incrementMinusSign:hover{background:rgb(232,232,232)}.infoModalIncrementDecrementParent .incrementCount{padding:.25rem 1.25rem;font-size:.9rem}.infoModalIncrementDecrementParent .incrementPlusSign,.infoModalIncrementDecrementParent .incrementMinusSign{padding:.25rem .5rem}.incrementSignDisable{pointer-events:none;cursor:not-allowed}.incrementSignDisable img{opacity:.2}.item-details-icon:before{content:none;vertical-align:middle}.item-card-text-parent{display:flex;flex-direction:column;align-items:center;justify-content:center}.item-card-text-parent .skuName{margin-bottom:.2rem}.item-card-text-parent .skuSubheading{color:#707070;font-size:.6rem}.container .item-grid .imageContainer .itemDetails:hover{opacity:1;text-decoration:underline}.item-grid .imageContainer .itemDetails:focus-within{opacity:1;text-decoration:underline}.item-grid .imageContainer:hover .itemDetails{opacity:1;transition:.5s}.item-grid .imageContainer:focus-within .itemDetails{opacity:1;transition:.5s}.item-grid .contentContainer img{max-width:100%;max-height:100%}.incrementSkuIcon{max-width:70%;max-height:70%;margin-bottom:.25rem}.splide__sr{display:none}.container .subContainer{border-bottom:.5px solid #c4c4c4;margin-bottom:2rem}.container .subContainer:nth-child(1){margin-top:0}.container .subContainer:nth-last-child(1){margin-bottom:0;border-bottom:0}.bottomBar .cartButton img{width:2rem}.sideMenu .sideMenuTabContainer,.mobileTabContent,.mobileElementsModal{display:none}.infoModal{position:absolute;width:100%;height:100%;left:0;top:0;z-index:8;background:#fff;box-shadow:0 -5px 8px #00000005;border-radius:.75rem .75rem 0 0;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;text-align:center;opacity:0;pointer-events:none;transition:.2s all ease;-webkit-transition:.2s all ease;padding-bottom:1rem;padding-top:2rem;overflow-y:auto}.infoModal.open{opacity:1;pointer-events:all}.infoModal .categoryLink{display:flex;align-items:center;color:var(--brand-dark);gap:.75rem;text-decoration:none;align-self:flex-start;align-items:flex-start;margin-left:4rem;margin-bottom:2rem}.infoModal .categoryLink img{margin-top:.5rem}.infoModal .categoryLink:hover{text-decoration:underline}.reviewButtonSibling{display:none}.infoModal .categoryLink .categoryTitle{font-size:1.25rem;font-weight:700;text-align:left;margin:auto;display:flex;flex-direction:column}.categoryTitle .modalSubHeading{font-size:.8rem;font-weight:300;margin-top:.5rem;color:#8f8f8f}.infoModal .infoModalImageContainer{position:relative;width:auto;height:12.5rem;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#fff;border-radius:.8rem}.infoModal .itemImage{width:auto;height:100%}.infoModal .closeButton{cursor:pointer;position:absolute;right:1.5rem;top:1.5rem}.infoModal .closeButton img{width:1.5rem}.infoModal .openNewTab{position:relative;margin-top:1rem;color:var(--brand-dark);font-size:.75rem;text-decoration:underline}.infoModal .itemTitle{font-weight:400;max-width:60%;font-size:1.25rem;margin-top:1rem;margin-bottom:1rem}.infoModal .infoModalAddButton{background:var(--primary-color);color:#000;width:93%;font-size:.8rem;padding:.7rem 0;cursor:pointer;margin-top:1rem;transition:.2s}.infoModal .infoModalAddButton:hover{background:white;border:2px solid black}.disabledInfoModalAddButton{pointer-events:none;opacity:.5;background:#c7c7c7!important}.infoModal .itemDescription{max-width:70%;font-size:1rem;line-height:1.25rem;display:-webkit-box;-webkit-box-orient:vertical;white-space:pre-wrap;text-align:-webkit-left}.infoModal .infoModalDimensions{color:var(--brand-dark);opacity:.4;font-weight:700;font-size:.875rem;margin-top:1rem}.infoModal .infoModalActions{width:100%;margin-top:2rem}.infoModal .infoModalActions button{width:65%;padding:.6875rem;text-align:center;color:var(--brand-dark);pointer-events:none;font-size:1.25rem;font-weight:700;background:#f8f8f8}.addToCartDisabled{background:#00000057!important;opacity:.75;cursor:not-allowed!important}.previewCartModal{position:absolute;width:100%;height:calc(100% + 5rem);left:0;top:-5rem;z-index:9;background:#fff;box-shadow:0 4.96px 19.84px #0000001a;border-radius:.75rem .75rem 0 0;display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;opacity:0;pointer-events:none;transition:.2s all ease;-webkit-transition:.2s all ease;overflow:hidden;padding-top:5.75rem}.previewCartModal .cartTitle{font-size:1.25rem;font-weight:700;position:absolute;left:2rem;top:2.5rem}.previewCartModal.open{opacity:1;pointer-events:all}.previewCartModal.mobile{display:none}.previewCartModal .previewCartContent{overflow:auto;padding:0 1.5rem;width:100%;height:100%;position:absolute}.previewCartModal .checkoutButton{position:relative;width:20.625rem;background:var(--primary-color);color:#fff;display:flex;align-items:center;text-align:center;padding:.6875rem 1rem;border-radius:.25rem;justify-content:center;cursor:pointer}.previewCartModal .checkoutButton:focus{padding:2px;border:2px solid rgb(0,132,255)!important}.previewCartModal .checkoutButton:disabled{background:#00000057!important;opacity:.75;cursor:not-allowed!important}.previewCartModal .checkoutButton img{margin-left:.25rem}.previewCartModal .checkoutButton span{font-size:.6875rem;text-transform:uppercase;font-weight:700}.previewCartModal button{background:transparent;border:none;outline:none;cursor:pointer}.previewCartModal .closeButton{position:absolute;right:1.5rem;top:1.5rem}.previewCartModal .closeButton img{width:1.5rem}.cartItem{display:flex;align-items:flex-start;max-width:100%}.cartItemOutOfStock{border:1px solid #d0342c;border-radius:5px}.cartItem:nth-child(n+1){margin-bottom:1rem}.cartItem .cartItemImage{width:6.25rem;height:6.25rem;padding:.5rem;background:#ffffff;box-shadow:0 2px 8px #0000001a;border-radius:.25rem;margin-right:1rem;display:flex;justify-content:center;align-items:center}.cartItem .cartItemImage img{width:100%;height:auto;max-width:100%;max-height:100%}.cartItem .cartItemDetails{display:flex;flex-direction:column;width:calc(100% - 6.25rem);justify-content:flex-start;padding-top:.75rem}.cartItem .cartItemDetails h4{font-size:.75rem;font-weight:400;padding-top:.25rem;white-space:pre-line}.cartItem .cartItemDetails h5{font-size:.7rem;font-weight:400;padding-top:.25rem;white-space:pre-line}.cartRowImage{height:.8rem}.cartItem .cartRow{margin-top:1rem;width:100%;display:flex;justify-content:flex-start;align-items:center;color:red;gap:.25rem}.cartItem .itemCount{font-size:.7rem}.cartItem .qtyContainer{display:flex;gap:.5rem;color:var(--primary-color);margin-right:1.75rem}.cartItem .qtyContainer span{display:none}.cartItem .qtyContainer button{color:var(--primary-color)}.cartItem .qtyContainer input{color:#333;width:1.7rem;padding:.25rem .5rem;border-radius:3px;background:#eeeeee;border:none}.cartItem .deleteCartButton{font-size:.6875rem;text-decoration:underline;color:#333;display:flex;margin-top:.5rem}.cartItem .deleteCartButton:hover{color:var(--primary-color)}.cartItem .itemPrice{font-size:.7rem}.cartItem .itemAvailable{font-size:.5rem}.cartItem .actionButton{margin-top:.2rem;font-weight:600;font-size:.9rem;cursor:pointer}.color-grid{display:flex;gap:1rem;margin-top:.5rem;flex-wrap:wrap;align-items:flex-start}.colorSelector{cursor:pointer;display:flex;flex-direction:column;align-items:center}.colorSelector .colorThumbnailContainer{position:relative}.colorSelector .colorThumbnailContainer .colorThumbnail{width:5rem;height:5rem;position:relative;overflow:hidden}.colorSelector .colorThumbnailContainer .checkMark{width:100%;height:100%;display:flex;justify-content:center;align-items:center;position:absolute;left:0;top:0}.colorSelector .colorThumbnailContainer .checkMark img{opacity:0;transition:.1s all ease;width:45%;filter:invert(100%) sepia(100%) saturate(2%) hue-rotate(188deg) brightness(101%)}.colorSelector.selected .colorThumbnailContainer .checkMark img{opacity:1}.colorSelector .colorDetails{margin-top:.5rem;text-align:center}.colorDetails .colorDetailsLabel{width:100px}.colorSelector .colorDetails p{margin:0;font-size:.75rem;color:var(--brand-dark)}.colorDetails .redText{color:#d0342c!important;font-size:.6rem!important;font-weight:800}.colorSelector .colorDetails p:nth-child(1){font-weight:600}.colorSelector .colorDetails p:nth-child(2){font-weight:400}
9223
+ `,SideMenuContentStyles=`.hide{display:none!important}.container{padding:28px 46px;padding-bottom:2.5rem;height:100%;overflow-y:scroll}.variantContainer{height:100%;overflow-y:scroll}.col{padding:0;height:100%;overflow-y:scroll}.container .subheading{font-size:.75rem;font-weight:700;text-transform:uppercase;margin-top:0;margin-bottom:1.5rem}.buildUiAccordion{cursor:pointer;transition:.4s;width:100%;border:none;background:#00000000;text-align:left;display:flex;align-items:center;margin-bottom:.5rem}.buildUiAccordion .arrowUp{display:block}.buildUiAccordionActive .arrowUp,.buildUiAccordion .arrowDown{display:none}.buildUiAccordionActive .arrowDown{display:block}.buildUiAccordionContent{max-height:0;overflow:hidden;transition:max-height .2s ease-out}.buildUiAccordion h4{padding-left:.5rem;font-size:.75rem;font-weight:700;text-transform:uppercase}.item-grid{display:flex;justify-content:flex-start;column-gap:1.25rem;align-items:flex-start;position:relative;flex-wrap:wrap}.item-grid .imageContainer{width:6rem;height:fit-content;position:relative;cursor:pointer;border-radius:.6rem;background:#fff;box-sizing:border-box;margin-bottom:2rem;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;transition:.2s ease}.item-grid .imageContainer .contentContainer{left:0;top:0;width:6rem;height:6rem;transition:.2s ease;background:var(--item-card-background-color);padding:8px;display:flex;flex-direction:column;justify-content:center;align-items:center;box-shadow:0 2px 8px #0000001a;-webkit-box-shadow:0px 2px 8px rgb(0 0 0 / 10%);border-radius:.6rem;margin:0}.incrementContentContainer{left:0;top:0;width:6rem;height:6rem;transition:.2s ease;background:var(--item-card-background-color);padding:8px;display:flex;flex-direction:column;justify-content:space-around;align-items:center;box-shadow:0 2px 8px #0000001a;-webkit-box-shadow:0px 2px 8px rgb(0 0 0 / 10%);border-radius:.6rem;margin:0;background:white}.splide__arrow{pointer-events:all;cursor:pointer}.item-grid .imageContainer .addCartButton{width:100%;height:auto;line-height:.75rem;justify-content:center;align-items:center;background:var(--primary-color);cursor:pointer;display:none;position:absolute;bottom:0;left:0;border:none;border-bottom-left-radius:.6rem;border-bottom-right-radius:.6rem;font-size:.625rem;color:#fff;text-transform:uppercase;font-weight:600;padding:.5rem;transition:.2s all ease;-webkit-transition:.2s all ease}.item-grid .imageContainer .addCartButton.added{background:var(--brand-dark)}.item-grid .imageContainer .infoButton{position:absolute;right:.25rem;top:.25rem;z-index:8;background:none;padding:0;margin:0;border:0;cursor:pointer;opacity:0;pointer-events:none;transition:.2s all ease;-webkit-transition:.2s all ease}.incrementContentOverlay{pointer-events:none;position:absolute;left:0;top:0;width:6rem;height:6rem;display:flex;justify-content:center;align-items:center;opacity:0;transition:.5s;border-radius:.6rem;z-index:3}.item-grid .imageContainer .contentOverlay{position:absolute;left:0;top:0;width:6rem;height:6rem;display:flex;justify-content:center;align-items:center;opacity:0;transition:.5s;background:rgba(51,51,51,.2);border-radius:.6rem;z-index:3;pointer-events:all}.enabled-item-overlay{opacity:1!important;cursor:pointer!important}.disabled-item-overlay{cursor:not-allowed!important}.item-grid .imageContainer .contentOverlay img{filter:invert(96%) sepia(3%) saturate(312%) hue-rotate(315deg) brightness(114%) contrast(100%);width:1.875rem;pointer-events:all}.item-grid .imageContainer .itemDetails{opacity:0;font-size:.685rem;justify-content:center;width:100%;height:fit-content;margin-top:.8rem;display:flex;align-items:center}.showAlways{opacity:1!important}.incrementDecrementPanel{width:100%;display:flex;align-items:center;justify-content:center}.incrementCount{cursor:auto;background:#f5f5f5;border:solid .5px #cccccc;padding:0rem .5rem;height:100%;border-right:none;border-left:none;font-size:.7rem;display:flex;align-items:center}.incrementPlusSign{cursor:pointer;height:100%;background:#f5f5f5;border-radius:0 1rem 1rem 0;border:solid .5px #cccccc;display:flex;justify-content:center;align-items:center;padding:0rem .3rem}.incrementPlusSign:hover{background:rgb(232,232,232)}.incrementMinusSign{cursor:pointer;height:100%;background:#f5f5f5;border-radius:1rem 0 0 1rem;border:solid .5px #cccccc;display:flex;justify-content:center;align-items:center;padding:0rem .3rem}.incrementMinusSign:hover{background:rgb(232,232,232)}.infoModalIncrementDecrementParent .incrementCount{padding:.25rem 1.25rem;font-size:.9rem}.infoModalIncrementDecrementParent .incrementPlusSign,.infoModalIncrementDecrementParent .incrementMinusSign{padding:.25rem .5rem}.incrementSignDisable{pointer-events:none;cursor:not-allowed}.incrementSignDisable img{opacity:.2}.item-details-icon:before{content:none;vertical-align:middle}.item-card-text-parent{display:flex;flex-direction:column;align-items:center;justify-content:center}.item-card-text-parent .skuName{margin-bottom:.2rem}.item-card-text-parent .skuSubheading{color:#707070;font-size:.6rem}.container .item-grid .imageContainer .itemDetails:hover{opacity:1;text-decoration:underline}.item-grid .imageContainer .itemDetails:focus-within{opacity:1;text-decoration:underline}.item-grid .imageContainer:hover .itemDetails{opacity:1;transition:.5s}.item-grid .imageContainer:focus-within .itemDetails{opacity:1;transition:.5s}.item-grid .contentContainer img{max-width:100%;max-height:100%}.incrementSkuIcon{max-width:70%;max-height:70%;margin-bottom:.25rem}.splide__sr{display:none}.container .subContainer{border-bottom:.5px solid #c4c4c4;margin-bottom:2rem}.container .subContainer:nth-child(1){margin-top:0}.container .subContainer:nth-last-child(1){margin-bottom:0;border-bottom:0}.bottomBar .cartButton img{width:2rem}.sideMenu .sideMenuTabContainer,.mobileTabContent,.mobileElementsModal{display:none}.infoModal{position:absolute;width:100%;height:100%;left:0;top:0;z-index:8;background:#fff;box-shadow:0 -5px 8px #00000005;border-radius:.75rem .75rem 0 0;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;text-align:center;opacity:0;pointer-events:none;transition:.2s all ease;-webkit-transition:.2s all ease;padding-bottom:1rem;padding-top:2rem;overflow-y:auto}.infoModal.open{opacity:1;pointer-events:all}.infoModal .categoryLink{display:flex;align-items:center;color:var(--brand-dark);gap:.75rem;text-decoration:none;align-self:flex-start;align-items:flex-start;margin-left:4rem;margin-bottom:2rem}.infoModal .categoryLink img{margin-top:.5rem}.infoModal .categoryLink:hover{text-decoration:underline}.reviewButtonSibling{display:none}.infoModal .categoryLink .categoryTitle{font-size:1.25rem;font-weight:700;text-align:left;margin:auto;display:flex;flex-direction:column}.categoryTitle .modalSubHeading{font-size:.8rem;font-weight:300;margin-top:.5rem;color:#8f8f8f}.infoModal .infoModalImageContainer{position:relative;width:auto;height:12.5rem;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#fff;border-radius:.8rem}.infoModal .itemImage{width:auto;height:100%}.infoModal .closeButton{cursor:pointer;position:absolute;right:1.5rem;top:1.5rem}.infoModal .closeButton img{width:1.5rem}.infoModal .openNewTab{position:relative;margin-top:1rem;color:var(--brand-dark);font-size:.75rem;text-decoration:underline}.infoModal .itemTitle{font-weight:400;max-width:60%;font-size:1.25rem;margin-top:1rem;margin-bottom:1rem}.infoModal .infoModalAddButton{background:var(--primary-color);color:#000;width:93%;font-size:.8rem;padding:.7rem 0;cursor:pointer;margin-top:1rem;transition:.2s}.infoModal .infoModalAddButton:hover{background:white;border:2px solid black}.disabledInfoModalAddButton{pointer-events:none;opacity:.5;background:#c7c7c7!important}.infoModal .itemDescription{max-width:70%;font-size:1rem;line-height:1.25rem;display:-webkit-box;-webkit-box-orient:vertical;white-space:pre-wrap;text-align:-webkit-left}.infoModal .infoModalDimensions{color:var(--brand-dark);opacity:.4;font-weight:700;font-size:.875rem;margin-top:1rem}.infoModal .infoModalActions{width:100%;margin-top:2rem}.infoModal .infoModalActions button{width:65%;padding:.6875rem;text-align:center;color:var(--brand-dark);pointer-events:none;font-size:1.25rem;font-weight:700;background:#f8f8f8}.addToCartDisabled{background:#00000057!important;opacity:.75;cursor:not-allowed!important}.previewCartModal{position:absolute;width:100%;height:calc(100% + 5rem);left:0;top:-5rem;z-index:9;background:#fff;box-shadow:0 4.96px 19.84px #0000001a;border-radius:.75rem .75rem 0 0;display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;opacity:0;pointer-events:none;transition:.2s all ease;-webkit-transition:.2s all ease;overflow:hidden;padding-top:5.75rem}.previewCartModal .cartTitle{font-size:1.25rem;font-weight:700;position:absolute;left:2rem;top:2.5rem}.previewCartModal.open{opacity:1;pointer-events:all}.previewCartModal.mobile{display:none}.previewCartModal .previewCartContent{overflow:auto;padding:0 1.5rem;width:100%;height:100%;position:absolute}.previewCartModal .checkoutButton{position:relative;width:20.625rem;height:2.5rem;background:var(--primary-color);color:#fff;display:flex;align-items:center;text-align:center;padding:.6875rem 1rem;border-radius:.25rem;justify-content:center;cursor:pointer}.previewCartModal .checkoutButton:focus{padding:2px;border:2px solid rgb(0,132,255)!important}.previewCartModal .checkoutButton:disabled{background:#00000057!important;opacity:.75;cursor:not-allowed!important}.previewCartModal .checkoutButton img{margin-left:.25rem}.previewCartModal .checkoutButton span{font-size:.6875rem;text-transform:uppercase;font-weight:700}.previewCartModal button{background:transparent;border:none;outline:none;cursor:pointer}.previewCartModal .closeButton{position:absolute;right:1.5rem;top:1.5rem}.previewCartModal .closeButton img{width:1.5rem}.cartItem{display:flex;align-items:flex-start;max-width:100%}.cartItemOutOfStock{border:1px solid #d0342c;border-radius:5px}.cartItem:nth-child(n+1){margin-bottom:1rem}.cartItem .cartItemImage{width:6.25rem;height:6.25rem;padding:.5rem;background:#ffffff;box-shadow:0 2px 8px #0000001a;border-radius:.25rem;margin-right:1rem;display:flex;justify-content:center;align-items:center}.cartItem .cartItemImage img{width:100%;height:auto;max-width:100%;max-height:100%}.cartItem .cartItemDetails{display:flex;flex-direction:column;width:calc(100% - 6.25rem);justify-content:flex-start;padding-top:.75rem}.cartItem .cartItemDetails h4{font-size:.75rem;font-weight:400;padding-top:.25rem;white-space:pre-line}.cartItem .cartItemDetails h5{font-size:.7rem;font-weight:400;padding-top:.25rem;white-space:pre-line}.cartRowImage{height:.8rem}.cartItem .cartRow{margin-top:1rem;width:100%;display:flex;justify-content:flex-start;align-items:center;color:red;gap:.25rem}.cartItem .itemCount{font-size:.7rem}.cartItem .qtyContainer{display:flex;gap:.5rem;color:var(--primary-color);margin-right:1.75rem}.cartItem .qtyContainer span{display:none}.cartItem .qtyContainer button{color:var(--primary-color)}.cartItem .qtyContainer input{color:#333;width:1.7rem;padding:.25rem .5rem;border-radius:3px;background:#eeeeee;border:none}.cartItem .deleteCartButton{font-size:.6875rem;text-decoration:underline;color:#333;display:flex;margin-top:.5rem}.cartItem .deleteCartButton:hover{color:var(--primary-color)}.cartItem .itemPrice{font-size:.7rem}.cartItem .itemAvailable{font-size:.5rem}.cartItem .actionButton{margin-top:.2rem;font-weight:600;font-size:.9rem;cursor:pointer}.color-grid{display:flex;gap:1rem;margin-top:.5rem;flex-wrap:wrap;align-items:flex-start}.colorSelector{cursor:pointer;display:flex;flex-direction:column;align-items:center}.colorSelector .colorThumbnailContainer{position:relative}.colorSelector .colorThumbnailContainer .colorThumbnail{width:5rem;height:5rem;position:relative;overflow:hidden}.colorSelector .colorThumbnailContainer .checkMark{width:100%;height:100%;display:flex;justify-content:center;align-items:center;position:absolute;left:0;top:0}.colorSelector .colorThumbnailContainer .checkMark img{opacity:0;transition:.1s all ease;width:45%;filter:invert(100%) sepia(100%) saturate(2%) hue-rotate(188deg) brightness(101%)}.colorSelector.selected .colorThumbnailContainer .checkMark img{opacity:1}.colorSelector .colorDetails{margin-top:.5rem;text-align:center}.colorDetails .colorDetailsLabel{width:100px}.colorSelector .colorDetails p{margin:0;font-size:.75rem;color:var(--brand-dark)}.colorDetails .redText{color:#d0342c!important;font-size:.6rem!important;font-weight:800}.colorSelector .colorDetails p:nth-child(1){font-weight:600}.colorSelector .colorDetails p:nth-child(2){font-weight:400}
9224
9224
  `,MobileStyles$1=`@media only screen and (orientation: portrait){.overlayUI{z-index:3;flex-direction:column;padding:0;align-content:flex-start;align-items:flex-start;justify-content:flex-start;top:0;height:100%;max-height:800px;border:none;pointer-events:none}.uiContainer{flex-direction:column;justify-content:flex-end}.leftShell{width:100%;height:100%!important;padding:0;position:relative;flex-direction:column;align-items:flex-start;justify-content:flex-start;align-content:flex-start;z-index:2;transition:.5s ease-out;flex-shrink:2}.expanded-left-shell,.disabledleftShell{height:100%!important}.desktopSideMenu{display:none}.sideMenu{width:100%;height:100%!important;display:flex;z-index:1;bottom:0;flex-direction:column;align-items:flex-start;justify-content:space-between;align-content:flex-end;padding:0;border:none;background:#f5f5f5;border-radius:12px;max-width:unset;min-width:unset;box-shadow:0 -2px 12px #0000001a!important;transition:.5s;min-height:300px;max-height:300px;flex-shrink:1}.side-menu-collapsed{min-height:110px;max-height:110px}.collapse-side-menu-button-parent{display:flex}.collapse-side-menu-button{opacity:1;border:none;box-shadow:none;background:transparent;display:flex;align-items:center;position:absolute;right:6%;top:5%}.set-display-none,.sideMenuContent,.sideMenu .desktop,.sideMenuTabs{display:none}.featuresContainer{height:11.75rem}.featuresContainer .productFeatureUIDic{display:block}.featuresContainer .tabs{position:inherit}.featuresContainer .tab-label{height:3.5rem}.sideMenu .viewInSpaceButton{width:9rem}.sideMenu .bottomBar{z-index:4;width:100%;position:absolute}.bottomBar .reviewButton{font-size:.875rem;margin-right:.5rem}.bottomBar .cartButton img{width:1.25rem}.mobileExpandButton{justify-content:center;align-items:center;display:flex;flex-direction:column-reverse;background:#f5f5f5;font-size:.75rem;width:100%;border-top-left-radius:.75rem;border-top-right-radius:.75rem;transition:none;opacity:1;text-transform:uppercase}.mobileExpandButton.sideMenuOpen{padding:0;height:0%;opacity:0;background:#f8f8f8;pointer-events:none}.mobileExpandButton button{position:relative;width:100%;top:0;right:auto;border:none;box-shadow:none;background:transparent;display:flex;justify-content:center;align-items:center;z-index:5;transition:none}.mobileExpandButton button img{transform:rotate(180deg)}#epigraphConfiguratorCore{width:100%;height:100%}epigraph-configurator{position:fixed!important;top:0;left:0;width:100%!important;height:100%!important}.sideMenu .sideMenuTabContainer{display:flex;width:100%;height:100%;transition:none;align-items:flex-start;min-height:300px;max-height:300px}.side-menu-tab-container-open{height:100%}.side-menu-container-hide{height:0%!important}.sideMenu.open .sideMenuTabContainer{height:100%}.sideMenu.open{height:100%;max-height:310px}.sideMenu .sideMenuTabContainer .mobileTab{display:flex}.sideMenu .sideMenuTabContainer .firstMobileTabs img{height:auto}.sideMenu .sideMenuTabContainer .firstMobileTab{width:100%}.sideMenu .firstMobileTabs{width:100%;height:auto;display:flex;justify-content:center;padding:0 2.5rem;margin:0;border-bottom:.25px solid #c4c4c4}.sideMenu .firstMobileTabs .mobileTab{display:flex;align-items:center;justify-content:flex-end;flex-direction:column;font-weight:600;color:var(--brand-dark);width:6rem;height:3rem;text-transform:uppercase;font-size:1rem;background:transparent;border-radius:0;padding:.75rem 0rem;opacity:.5}.sideMenu .react-tabs__tab--selected{background:none;border:none;border-radius:0}.react-tabs__tab{padding:0!important}.react-tabs__tab-panel{height:auto}.sideMenu .firstMobileTabs .react-tabs__tab--selected .mobileTab{border-bottom:2px solid var(--brand-dark);opacity:1}.sideMenu .secondMobileTabs{-ms-overflow-style:none;scrollbar-width:none;width:100%;height:auto;display:flex;justify-content:flex-start;margin:0;gap:1rem;padding:0 1rem;margin-top:1.5rem;margin-bottom:1.25rem;overflow:auto}.sideMenu .secondMobileTabs::-webkit-scrollbar{display:none}.sideMenu .secondMobileTabs .mobileTab{padding:0;font-weight:500;font-size:.75rem;text-transform:uppercase;color:#c4c4c4;text-decoration:none;white-space:nowrap}.sideMenu .secondMobileTabs .mobileTab.scrolled{font-weight:700;color:var(--brand-dark)}.sideMenu .secondMobileTabs .react-tabs__tab{padding:0;width:100%}.sideMenu .secondMobileTabs .react-tabs__tab--selected .mobileTab{border-bottom:1px solid var(--brand-dark)}.imageContainer{width:100%;height:8rem;cursor:pointer;padding:0;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;border-radius:.375rem;background:transparent;position:relative}.imageContainer .contentContainer,.imageContainer:hover .contentContainer{width:4.5rem;height:4.5rem;left:0%;top:0;border-radius:.375rem;background:#fff;display:flex;justify-content:center;align-items:center;flex-direction:column;margin-top:2px}.imageContainer .itemDetails{display:flex;text-align:start;font-size:.75rem;margin-top:.5rem;text-decoration:none}.truncate{width:70px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-align:center}.truncate-mobile{text-align:center}.product-image{margin-right:0;border-radius:0rem;padding:.5rem;max-width:100%;max-height:100%}.mobileGrid{-ms-overflow-style:none;scrollbar-width:none;display:flex;flex-direction:row;grid-template-columns:none;align-items:flex-start;justify-items:flex-start;justify-content:flex-start;padding-left:1rem;padding-right:1rem;width:100%;gap:1rem;overflow-x:auto;overflow-y:hidden;margin-bottom:10px}.incrementContentContainer,.incrementContentOverlay{width:4.5rem;height:4.5rem}.incrementSkuIcon{max-width:60%;max-height:60%}.incrementCount{font-size:.5rem;padding:.1rem .3rem}.incrementMinusSign{padding:.1rem .3rem}.incrementMinusSign img{height:.7rem}.incrementPlusSign{padding:.1rem .3rem}.incrementPlusSign img{height:.7rem}.mobileGridCenter{align-items:center}.mobileGrid .mobileGridSection,.mobileGrid .mobileGridSection .mobileGridCategorySection{display:flex;align-items:flex-start;gap:.75rem}.mobileGrid::-webkit-scrollbar{display:none}.mobileGrid .imageContainer .contentContainer .contentOverlay{transition:none;opacity:1;pointer-events:all;background:transparent}.mobileGrid .imageContainer .contentContainer .contentOverlay img{display:none}.mobileGrid .imageContainer .contentOverlay{position:absolute;left:0;top:0;width:100%;height:5rem;display:flex;justify-content:center;align-items:center;opacity:0;transition:none;background:rgba(51,51,51,.2);border-radius:.6rem;z-index:3}.mobileGrid .imageContainer .contentOverlay img{filter:invert(96%) sepia(3%) saturate(312%) hue-rotate(315deg) brightness(114%) contrast(100%);width:3rem;background:none}.imageContainer .infoButton{display:none}.imageContainer:hover .itemDetails,.imageContainer:hover .addCartButton{display:flex}.mobileTabContent{display:block;padding-bottom:0}.mobileElementsModal{opacity:0;position:absolute;width:100%;height:100%;top:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.mobileElementsModal.open{pointer-events:all;opacity:1}.mobileElementsModal .overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(31,31,31,.7);z-index:2}.mobileElementsModal .modalContent{position:relative;width:8.9rem;height:auto;background:#fff;box-shadow:0 1.89333px 7.57333px #0000001a;border-radius:.75rem;z-index:4;display:flex;flex-direction:column;overflow:hidden;margin-top:-25%}.mobileElementsModal .modalContent .contentContainer{padding:.5rem}.mobileElementsModal .modalContent .thumbnailImage{max-height:6.4rem;width:100%;display:flex;justify-content:center}.mobileElementsModal .modalContent .thumbnailImage img{max-height:100%;max-width:100%}.mobileElementsModal .addCartButton{width:2rem;height:2rem;justify-content:center;align-items:center;background:#ffffff;box-shadow:0 1px 3px #0000000d;display:block;position:absolute;right:1.25rem;top:.875rem;border:none;border-radius:50%;font-size:1.25rem;color:var(--brand-dark)}.mobileElementsModal .itemDetails{display:block;max-width:100%;font-size:.85rem;align-items:flex-start;margin-top:.25rem;display:flex;flex-direction:row}.mobileElementsModal .itemDetails p{max-width:50%}.mobileElementsModal .itemDetails img{width:.7rem;margin-left:.25rem;margin-top:.25rem}.mobileElementsModal .cartOptions{display:flex;justify-content:space-between;align-items:center;width:calc(100% - 1rem);background:white;position:relative;top:.5rem;left:.5rem;border-radius:2.6rem;overflow:hidden}.mobileElementsModal .cartOptions button{background:#ffffff;box-shadow:0 .946667px 2.84px #0000000d;width:1.75rem;height:1.75rem;font-size:1.125rem;border:none;outline:none}.mobileElementsModal .cartOptions .cartCount{color:#e52438;font-size:1rem}.mobileElementsModal .confirmCartButton{width:100%;padding:.5rem;display:flex;justify-content:center;align-items:center;background:#e52438;font-weight:900;color:#fff;border:none;font-size:.6875rem;margin-top:.25rem}.mobileGridSection{display:flex;width:auto;gap:1rem}.itemGridDivider{background:transparent;width:1px;height:5rem;border-right:.5px solid #c4c4c4;margin:0}.itemGridPlaceholder{width:calc(100vw - 8rem)}.previewCartModal.mobile{display:flex;box-shadow:none}.previewCartModal{height:90%;z-index:9;top:0}.previewCartModal .checkoutButton{position:relative;width:100%;margin:auto;text-align:center;bottom:0;left:0}.previewCartModal .checkoutButton img{filter:invert(100%) sepia(100%) saturate(2%) hue-rotate(188deg) brightness(101%)}.previewCartModal .checkoutButton:disabled{opacity:.75}.previewCartModal .previewCartButtonContainer{position:absolute;width:100%;display:flex;flex-direction:column;gap:.75rem;left:0;bottom:0;align-items:center;padding:.6875rem .9rem;box-shadow:0 -4px 12px #0000000d}.cartMessageDiv{margin:0;padding-bottom:.2rem}.removeAllColorOverridesButton{margin:0;cursor:pointer;width:auto;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:.25rem;background:transparent!important;border:none;font-size:11px;text-transform:capitalize;color:var(--brand-dark)!important}.removeAllColorOverridesButton .iconContainer{background:white;padding:.5rem;box-shadow:1.28889px 1.28889px 7.73333px #0000000d;border-radius:50%}.removeAllColorOverridesButton .iconContainer img{width:1.25rem;height:auto}.removeAllColorOverridesButton:disabled{opacity:.25;cursor:not-allowed}.uiModalDrawer .modalDialog{background:#fff;width:100%;padding:1.5rem;border-radius:0;position:relative;z-index:8;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.uiModalDrawer .modalDialog .modalHeading{font-size:1.25rem;font-weight:700;color:var(--brand-dark);text-transform:capitalize;margin:0;margin-bottom:2.25rem;position:relative;width:100%}.uiModalDrawer .modalDialog .modalHeading:after{content:"";position:absolute;width:100%;height:.25px;background:#a0a0a0;left:0rem;bottom:-1rem}.uiModalDrawer .modalDialog button{border-radius:2px;background:var(--primary-color);color:#fff;text-align:center;font-size:.875rem;font-weight:500;padding:.75rem 1.875rem;outline:none;border:none;box-shadow:none;margin:0;cursor:pointer;width:100%}.uiModalDrawer .shareModal{position:relative;width:100%}.uiModalDrawer .shareModalChildDiv,.uiModalDrawer .shareModalLoaderImg{height:100%}.uiModalDrawer .shareModalRelative{position:relative;width:100%}.UIModalButtonParentDiv{display:flex;gap:10px;width:100%}.uiModalDrawer .shareModal button{position:absolute;text-transform:uppercase;right:.25rem;margin:0;top:.25rem;font-size:1rem;padding:0;width:2.3125rem;height:2.3125rem;display:flex;justify-content:center;align-items:center}.shellCanvasContainer{-ms-overflow-style:none;scrollbar-width:none;padding:0!important;box-shadow:none!important;flex-direction:row!important;gap:.75rem!important;overflow-x:scroll!important;background:#ffffff!important;box-shadow:0 2px 12px #0000001a!important;align-items:flex-start!important;justify-content:flex-start!important;width:100%!important;padding:.5rem!important;position:absolute;top:0}.shellCanvasContainer::-webkit-scrollbar{display:none}.shellCanvasContainerParent{align-items:flex-start!important;width:100%!important;height:20%!important;transition:.5s ease-in-out;-webkit-transition:.5s ease-in-out;-moz-transition:.5s ease-in-out;top:0!important;position:relative}.shellButtonContainer{padding:.5rem .75rem!important;margin:0!important;background:#f8f8f8!important;border-radius:1.5rem!important;gap:.25rem!important}.shellButtonContainer .buttonContent{gap:.25rem!important;display:flex!important;align-items:center!important;flex-direction:row!important;min-width:auto!important;max-width:none!important;min-height:auto!important;max-height:none!important;height:auto!important;width:auto!important;background:transparent!important}.shellButtonContainer .buttonContent span{display:flex;font-size:.6875rem}.contextMenuParent{display:none}.shellButtonContainer.active{border-left:none;background:#f1f1f1!important}.shellButtonContainer.active .buttonContent{background:transparent}.shellButtonContainer .hoverDescriptor,.infoModal{display:none}.epigraphDrawer .contextMenuParent{position:relative;max-width:none;width:100%;top:0;left:0;z-index:1005;background:#ffffff;box-shadow:none;border:black;border-radius:3%;display:flex;gap:1rem;justify-content:center;padding:1rem 1rem 1.5rem;flex-direction:column;align-content:center;border-radius:.625rem;min-width:200px}#contextDrawer{z-index:3}.epigraphDrawer .contextMenuParent .closeContainer{width:100%;display:flex;justify-content:flex-end}.epigraphDrawer .contextMenuParent .closeContainer button{cursor:pointer;border:none;outline:none;box-shadow:none;background:transparent}.epigraphDrawer .contextMenuParent .closeContainer button img{width:.75rem}.epigraphDrawer .contextMenuParent .contextContent h3{font-size:.875rem;font-weight:700;text-transform:uppercase;margin:0}.epigraphDrawer .contextMenuParent .contextContentNameDiv{display:flex;align-items:center;gap:.5rem}.epigraphDrawer .contextMenuParent .selectColorLabel{font-weight:300;font-size:.75rem;margin-top:1rem;text-transform:uppercase}.epigraphDrawer .contextMenuParent .colorSwatchTitle{margin-top:1rem}.epigraphDrawer .contextMenuParent .contextContent p{font-size:.75rem;font-weight:300;margin:0}.epigraphDrawer .contextMenuParent .contextButtons{display:flex;flex-direction:row;gap:.75rem;margin-top:.05rem}.epigraphDrawer .contextMenuParent .contextButtons button{border-radius:.25rem;padding:.75rem 2rem;background:transparent;display:flex;flex-direction:row;align-items:center;gap:.25rem;cursor:pointer;text-transform:uppercase;font-size:.75rem;font-weight:700;border:1px solid var(--primary-color);outline:none;background:#fff;box-shadow:none;justify-content:center}.epigraphDrawer .contextMenuParent .contextButtons button img{width:1rem}.epigraphDrawer .contextMenuParent .contextButtons button{color:var(--primary-color);width:100%}.epigraphDrawer .contextMenuParent .contextButtons button:nth-child(1) img{filter:invert(52%) sepia(97%) saturate(5241%) hue-rotate(347deg) brightness(94%) contrast(93%)}.epigraphDrawer .contextMenuParent .contextButtons button svg path{fill:var(--primary-color)}.epigraphDrawer .color-grid{display:flex;gap:1rem}.epigraphDrawer .colorSelector{cursor:pointer;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.25rem}.epigraphDrawer .colorSelector .colorThumbnailContainer{position:relative}.epigraphDrawer .colorSelector .colorThumbnailContainer .colorThumbnail{width:2.625rem;height:2.625rem;border-radius:50%}.epigraphDrawer .colorSelector .colorThumbnailContainer .colorThumbnail .colorThumbnailImg{height:100%;width:100%;opacity:1}.epigraphDrawer .colorSelector .colorThumbnailContainer .checkMark{width:100%;height:100%;display:flex;justify-content:center;align-items:center;position:absolute;left:0;top:0}.epigraphDrawer .colorSelector .colorThumbnailContainer .checkMark img{opacity:0;transition:none;width:45%;filter:invert(100%) sepia(100%) saturate(2%) hue-rotate(188deg) brightness(101%)}.epigraphDrawer .colorSelector.selected .colorThumbnailContainer .checkMark img{opacity:1}.epigraphDrawer .colorSelector .colorDetails{text-align:center;opacity:.75;pointer-events:none;margin-top:0}.epigraphDrawer .colorSelector:hover .colorDetails,.epigraphDrawer .colorSelector.selected .colorDetails{opacity:1;pointer-events:all}.epigraphDrawer .colorSelector .colorDetails p{margin:0;font-size:.75rem;color:var(--brand-dark)}.epigraphDrawer .colorSelector .colorDetails p:nth-child(1){font-weight:600;text-align:center}.epigraphDrawer .colorSelector .colorDetails p:nth-child(2){font-weight:400}.epigraphDrawer p,.epigraphDrawer span,.epigraphDrawer h1,.epigraphDrawer h2,.epigraphDrawer h3,.epigraphDrawer h4,.epigraphDrawer h5,.epigraphDrawer pre{font-family:Inter,helvetica,sans-serif}.infoDrawer{padding-top:2rem;padding-bottom:3rem;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;position:relative}.infoDrawer .drawerContent{display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;overflow-y:unset}.infoDrawer .infoDrawerImageContainer{position:relative;width:100%}.infoDrawer button{background:transparent;border:none;outline:none;cursor:pointer}.infoDrawer .closeButton{position:absolute;right:1.5rem;top:1.5rem}.infoDrawer .closeButton img{width:.75rem}.infoDrawer .openNewTab{position:relative;margin-top:1rem;display:flex;align-items:center;color:var(--brand-dark);gap:.5rem;outline:none}.infoDrawer .itemImage{max-width:60%;width:50%}.infoDrawer .itemTitle{font-weight:400;max-width:100%;font-size:1.25rem;margin-top:1rem;margin-bottom:1rem;text-align:left}.infoDrawer .infoDrawerActions{margin-top:1.5rem}.infoDrawer .infoDrawerActions button{width:65%;padding:.6875rem;text-align:center;color:#fff}.infoDrawer .infoDrawerActions .removeFromCart{background:var(--brand-dark)}.infoDrawer .itemDescription{max-width:100%;font-size:1rem;line-height:1.25rem;display:-webkit-box;-webkit-box-orient:vertical;white-space:pre-wrap;text-align:-webkit-left}.infoDrawer .infoDrawerDimensions{color:var(--brand-dark);opacity:.4;font-weight:700;font-size:.875rem;margin-top:1rem}.infoDrawer .infoDrawerActions{margin-top:3.75rem}.infoDrawer .infoModalActions button{width:100%;padding:.6875rem;text-align:center;color:var(--brand-dark);pointer-events:none;font-size:1.25rem;font-weight:700;background:#f8f8f8;margin-top:1rem}.infoDrawer .categoryLink{display:flex;align-items:center;color:var(--brand-dark);gap:.75rem;text-decoration:none;position:relative;width:100%;outline:none;margin-bottom:2rem;justify-content:space-between}.infoDrawer .categoryLink .categoryTitle{font-size:1.25rem;font-weight:700;text-align:left}.addToCartDisabled{background:#00000057!important;opacity:.75;cursor:not-allowed!important}.epigraphDrawer.hotspotDrawer .drawerContent{padding:unset;height:100%;overflow-y:unset}.epigraphDrawer.hotspotDrawer h2{font-size:1.25rem;text-transform:uppercase;margin:0;margin-bottom:2rem}.epigraphDrawer.hotspotDrawer .quill p{margin:0;margin-top:.5rem}.uiModalDrawer.open{opacity:1;pointer-events:all}.uiModalDrawer .modalOverlay{background:rgba(51,51,51,.4);position:absolute;top:0;left:0;width:100%;height:100%}.uiModalDrawer .modalDialog{background:#fff;width:100%;padding:0;border-radius:0;position:relative;z-index:32;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.uiModalDrawer .modalText{white-space:pre-wrap;font-size:.75rem;font-weight:300;color:#222;margin-bottom:1rem}.uiModalDrawer .modalDialog input{font-weight:300;color:var(--brand-dark);border:.5px solid var(--brand-dark);border-radius:2px;padding:1rem;width:100%}.uiModalDrawer .shareModal{width:100%;display:flex}.uiModalDrawer .shareModal button{position:absolute;text-transform:uppercase;right:0;margin:0;top:0;font-size:1rem;padding:0;width:3rem;height:100%;display:flex;justify-content:center;align-items:center}.uiModalDrawer .shareModal button:before{position:absolute;content:"";background:white;height:calc(100% - 2px);right:3rem;top:1px;width:12px}.uiModalDrawer .shareModal button img{width:1.75rem;filter:invert(100%) sepia(100%) saturate(2%) hue-rotate(188deg) brightness(101%)}.uiModalDrawer .modalDialog .modalCloseContainer{display:none}.uiModalDrawer .modalDialog .modalCloseContainer button{cursor:pointer;outline:none;background:transparent;border:none;margin:0;padding:0}.uiModalDrawer .modalDialog .modalCloseContainer button img{width:1.5rem}}
9225
9225
  `,ViewInYourSpaceStyles=`model-viewer{width:100vw;height:100vh;display:block}.viewInYourSpaceButton{width:100%;height:100%;background-color:transparent;border:2px solid black;display:flex;align-items:center;justify-content:center;gap:20px;display:none}.viewInYourSpaceButton img{height:50%}.viewInYourSpaceButton:disabled{display:none;pointer-events:none}.viewInYourSpaceButton:hover img{filter:invert()}.viewInYourSpaceButton:hover{background-color:#000;color:#fff;cursor:pointer}.qrModalContainer{--qrModalMargin: 50px;--qrModalPadding: 200px;display:flex;flex-direction:column;width:100vw;height:100vh;position:fixed;top:0;left:0;background-color:#3336;margin:0;z-index:999;opacity:1;transition:opacity .5s}.qr-code-container{display:flex;position:relative;width:100%;min-width:300px;height:100%;min-height:300px;justify-content:center;align-items:center}.qr-code-image{height:100%;width:100%;transform:scale(1)}.qr-code-image canvas{width:100%!important;height:100%!important}.qrModal{background-color:#fff;display:flex;flex-direction:row;justify-content:space-between;align-items:center;position:absolute;width:90%;min-width:500px;max-width:620px;height:90%;min-height:300px;max-height:315px;left:50%;top:50%;transform:translate(-50%,-50%);padding:30px;box-shadow:7px 7px 20px #0000000d}.qrModalHide{pointer-events:none;opacity:0;transition:opacity .5s}.qrModal>img{align-self:center;aspect-ratio:1;min-width:300px;min-height:300px;max-width:100%;max-height:100%;opacity:1;transition:1s}.img-hide{display:none;opacity:0}.instructions-container{display:flex;flex-direction:column;height:80%;gap:10px;justify-content:space-between}.done-button{width:90%;height:25%;background-color:var(--view-in-your-space-done-button-bg-color);color:#fff;font-weight:700;font-size:18px;border:2px solid var(--view-in-your-space-done-button-bg-color);transition:.5s;text-transform:uppercase}.done-button:hover{background-color:var(--view-in-your-space-done-button-hover-bg-color);color:var(--view-in-your-space-done-button-hover-color);cursor:pointer;transition:.5s}.qr-modal-title{font-size:25px;font-style:normal;font-weight:700;line-height:30px;text-transform:none;color:var(--qr-modal-title-color);font-family:var( --view-in-your-space-modal-heading-font-family, Inter, helvetica, sans-serif )}.qr-modal-instruction{font-family:var(--font-family);font-style:normal;font-weight:400;font-size:12px;line-height:18px;color:var(--qr-modal-instruction-color)}.qr-modal-requirement{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-style:normal;font-weight:400;font-size:10px;line-height:19px;color:var(--qr-modal-requirement-color)}.qr-modal-close-button{width:50px;height:50px;font-size:x-large;position:absolute;top:21px;align-self:flex-start;border:0px;right:21px;background-color:transparent}.qr-modal-close-button:hover{cursor:pointer}.loader-hide{opacity:0!important}.spinner-loader{width:64px;height:64px;position:absolute;z-index:1;opacity:1;transition:.25s ease-in-out;pointer-events:none}.qr-ar-modal-title{font-family:var(--configurator-font-family, sans-serif);font-size:20px;font-style:normal;font-weight:700;line-height:24.2px;text-transform:none;color:var(--qr-modal-title-color);font-family:var( --view-in-your-space-modal-heading-font-family, Inter, helvetica, sans-serif )}.launch-ar-modal-title{font-family:var(--configurator-font-family, sans-serif);font-size:20px;font-style:normal;font-weight:700;line-height:24.2px;text-transform:none;color:var(--qr-modal-title-color);align-self:center;font-family:var( --view-in-your-space-modal-heading-font-family, Inter, helvetica, sans-serif )}.qr-ar-modal-instruction,.launch-ar-modal-instruction{font-family:var(--configurator-font-family, sans-serif);font-style:normal;font-weight:400;font-size:12px;line-height:18px;text-align:center;color:var(--qr-modal-instruction-color);align-self:flex-start;text-align:left}.launch-ar-modal-error{font-family:var(--configurator-font-family, sans-serif);font-size:15px;color:red}.launch-ar-modal-error-hide{display:none}.qr-ar-modal-requirement,.launch-ar-modal-requirement{font-family:var(--configurator-font-family, sans-serif);font-style:normal;font-weight:400;font-size:10px;line-height:19.2px;color:var(--qr-modal-requirement-color, black)}.launch-ar-modal-handle{height:5px;width:50%;background-color:#000;border-radius:99px;margin:0 20px}.QR-Parent{height:200px;width:200px;min-width:200px;min-height:200px;display:flex;justify-content:center;align-items:center}.QR-Content-Parent{height:100%;width:200px;display:flex;flex-direction:column;align-items:flex-start}.qr-content-container{display:flex;flex-direction:row;height:100%;margin:0 24px 24px;gap:7%;align-items:center;justify-content:space-around}.launch-ar-content-container{display:flex;flex-direction:column;height:260px;margin:24px 20px 24px 24px;padding-bottom:2rem;gap:7%;align-items:center;justify-content:flex-start}.launch-ar-button-container{width:100%;height:48px;display:flex;justify-content:center;align-items:center;position:relative}.qr-ar-bottom-content-container{height:100%;gap:5px;display:flex;flex-direction:column;justify-content:space-evenly;align-items:center}.launch-ar-bottom-content-container{height:100%;display:flex;flex-direction:column;justify-content:space-evenly;align-items:center}.launch-ar-button{width:100%;height:100%;opacity:1;position:absolute;transition:1s;background-color:var(--primary-color, black);color:#fff;border:0;display:flex;justify-content:center;align-items:center;cursor:pointer}.launch-ar-button:disabled{opacity:.6;transition:1s}.lds-ellipsis{display:inline-block;position:absolute;width:80px;height:80px;opacity:1;transition:1s;z-index:9999;pointer-events:none}@media only screen and (orientation: portrait){.qr-code-image{transform:scale(.8)!important}.qr-ar-modal-title{align-self:center;font-family:var(--configurator-font-family, sans-serif);font-size:20px;font-style:normal;font-weight:700;line-height:24.2px;text-transform:none;color:var(--qr-modal-title-color);font-family:var( --view-in-your-space-modal-heading-font-family, Inter, helvetica, sans-serif )}.qr-ar-modal-instruction{font-family:var(--configurator-font-family, sans-serif);font-style:normal;font-weight:400;font-size:12px;line-height:18px;color:var(--qr-modal-instruction-color);align-self:flex-start;text-align:center}.QR-Parent{width:150px;height:150px;min-height:150px;min-width:150px;display:flex;justify-content:center;align-items:center}.qr-content-container{display:flex;flex-direction:column;height:auto;margin:0 24px 35px;gap:7%;align-items:center;justify-content:flex-start}.QR-Content-Parent{text-align:left;height:100%;width:100%;display:flex;flex-direction:column;align-items:flex-start}.qr-ar-modal-requirement{text-align:center;font-family:var(--configurator-font-family, sans-serif);font-style:normal;font-weight:400;font-size:10px;line-height:19.2px;color:var(--qr-modal-requirement-color, black)}}
9226
9226
  `,BottomDrawerStyles=`.drawer{display:none;position:absolute;top:0;left:0;width:100%;height:100%;touch-action:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;overscroll-behavior:none;pointer-events:none;z-index:30}.drawer .drawerDialog{z-index:9;-ms-scroll-chaining:none;overscroll-behavior:none;touch-action:none;position:absolute;right:0;left:0;bottom:0;width:100%;height:90%;background:white;border-top-left-radius:1rem;border-top-right-radius:1rem;display:flex;flex-direction:column;pointer-events:all}.drawer .drawerDialog .drawerContainer{width:100%}.drawer .draggableBar{box-shadow:none;height:50px;pointer-events:all;display:flex;align-items:center;justify-content:center}.drawer .draggableBar .icon{content:"";display:block;width:40%;height:4px;border-radius:12px;background-color:#0009}.drawer .drawerOverlay{background-color:#0009;will-change:opacity;opacity:0;position:absolute;left:0;height:100%;width:100%;z-index:6;pointer-events:none;transition:.3s ease-out}.drawerContent{height:100%;overflow-y:scroll;padding:1rem;padding-top:0;box-sizing:content-box}@media only screen and (orientation: portrait){.drawer{display:block}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@epigraph/configurator",
3
- "version": "1.13.2",
3
+ "version": "1.13.3",
4
4
  "description": "Epigraph Configurator web component.",
5
5
  "keywords": [],
6
6
  "main": "./dist/index.js",