@vizbl/shopify-room-viewer 0.0.12 → 0.0.13

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.
@@ -7476,16 +7476,23 @@ No matching component was found for:
7476
7476
  font-style: normal;
7477
7477
  font-display: swap;
7478
7478
  }
7479
- `,""]);let o=s.toString()},"../../node_modules/.pnpm/@rsbuild+core@1.7.1/node_modules/@rsbuild/core/compiled/css-loader/api.js"(e){e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var r="",n=void 0!==t[5];return t[4]&&(r+="@supports (".concat(t[4],") {")),t[2]&&(r+="@media ".concat(t[2]," {")),n&&(r+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),r+=e(t),n&&(r+="}"),t[2]&&(r+="}"),t[4]&&(r+="}"),r}).join("")},t.i=function(e,r,n,i,a){"string"==typeof e&&(e=[[null,e,void 0]]);var s={};if(n)for(var o=0;o<this.length;o++){var l=this[o][0];null!=l&&(s[l]=!0)}for(var c=0;c<e.length;c++){var u=[].concat(e[c]);n&&s[u[0]]||(void 0!==a&&(void 0===u[5]||(u[1]="@layer".concat(u[5].length>0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=a),r&&(u[2]&&(u[1]="@media ".concat(u[2]," {").concat(u[1],"}")),u[2]=r),i&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=i):u[4]="".concat(i)),t.push(u))}},t}},"../../node_modules/.pnpm/@rsbuild+core@1.7.1/node_modules/@rsbuild/core/compiled/css-loader/noSourceMaps.js"(e){e.exports=function(e){return e[1]}}},Gz={};function GH(e){var t=Gz[e];if(void 0!==t)return t.exports;var r=Gz[e]={id:e,exports:{}};return GU[e](r,r.exports,GH),r.exports}GH.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return GH.d(t,{a:t}),t},GH.d=(e,t)=>{for(var r in t)GH.o(t,r)&&!GH.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},GH.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);let Gj=(0,ru.createContext)({theme:"system",setTheme:()=>null});function GG({children:e,defaultTheme:t="system",storageKey:r="v-theme",root:n=window.document.documentElement,enableStorage:i=!1,...a}){let[s,o]=(0,ru.useState)(()=>i&&localStorage.getItem(r)||t);return(0,ru.useEffect)(()=>{if(n.classList.remove("light","dark"),"system"===s){let e=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";n.classList.add(e);return}n.classList.add(s)},[s,n]),(0,rh.jsx)(Gj,{...a,value:{theme:s,setTheme:e=>{i&&localStorage.setItem(r,e),o(e)}},children:e})}var GV=GH("../ui/src/styles/fonts.css?inline");let GW={en:{translation:{matting:"Matting",material:"Material",chooseMaterial:"Choose material",frameWidth:"Frame width",close:"Close",uploadOwnPhoto:"Upload your photo",previousSlide:"Previous slide",nextSlide:"Next slide",mattingOptions:{none:"None"},units:{cm:"cm",in:"in"},ar:{viewInPlace:"View in place",scanQrCode:"Scan this QR code with your phone's camera to view the object in Augmented Reality",deviceRequirementsDisclaimer:"*Requires AR-supported device and browser. We recommend iOS 12 or later with Safari, or Android 7.0 or later with Chrome."},legal:{termsOfUse:"Terms of Use",conjunction:"and",privacyPolicy:"Privacy Policy"},shareMessage:{wallart:"Preview wall art",rugs:"Preview rug",flooring:"Preview flooring"},rooms:{"room-example-11":"Room Example 11","room-example-12":"Room Example 12","room-example-13":"Room Example 13","room-example-14":"Room Example 14","room-example-15":"Room Example 15","carpet-bathroom":"Bathroom","carpet-bedroom":"Bedroom","carpet-entryway":"Entryway","carpet-living-room":"Living Room"},scene:{tunePosition:"Tune position",position:"Position",share:"Share",angle:"Angle",rotation:"Rotation",reset:"Reset"},accessError:{unauthorized:"Invalid API key","payment-required":"Viewer temporarily unavailable"},resourceType:{rugs:{productCategory:"Rug",productCardTitle:"Selected rug",replaceProduct:"Replace rug",replaceProductShort:"Replace"},flooring:{productCategory:"Flooring",productCardTitle:"Selected flooring",replaceProduct:"Replace flooring",replaceProductShort:"Replace"}},floor:{scene:{companyFallback:"Company name",share:"Share",download:"Download",hideCatalog:"Hide catalog",description:"Description",interiorCardTitle:"Interior",tryAtHome:"Try at home",tryAtHomeBody:"Through your phone camera"},materialSelection:{title:"Material Selection"},interiorSelection:{title:"Choose interior",uploadPhoto:"Upload your photo",invalidFile:"Could not upload photo, please try again",customTitle:"Your photos",presetsTitle:"Preset interiors",currentInterior:"Current interior",chooseInterior:"Choose interior",chooseInteriorShort:"Choose"},processing:{title:"Preparing your room",progressLabel:"Room preparation progress",stages:{reading:"Reading your photo...",mapping:"Finding floors and walls...",lighting:"Balancing light and perspective...",finalizing:"Building your preview...",ready:"Room is ready..."}},error:{title:"Something went wrong",processingBody:"This time we could not upload and process the photo",loadBody:"We could not load the viewer. Please try again.",tryAgain:"Try again",cancel:"Cancel"}}}},ru:{translation:{matting:"Паспарту",material:"Материал",chooseMaterial:"Выберите материал",frameWidth:"Ширина рамки",close:"Закрыть",uploadOwnPhoto:"Загрузить свое фото",previousSlide:"Предыдущий слайд",nextSlide:"Следующий слайд",mattingOptions:{none:"Нет"},units:{cm:"см",in:"in"},ar:{viewInPlace:"Примерить в комнате",scanQrCode:"Отсканируйте этот QR-код камерой телефона, чтобы просмотреть объект в дополненной реальности",deviceRequirementsDisclaimer:"*Требуется устройство и браузер с поддержкой AR. Рекомендуем iOS 12 или новее с Safari либо Android 7.0 или новее с Chrome."},legal:{termsOfUse:"Условия использования",conjunction:"и",privacyPolicy:"Политика конфиденциальности"},shareMessage:{wallart:"Примерить настенный декор",rugs:"Примерить ковер",flooring:"Примерить напольное покрытие"},rooms:{"room-example-11":"Пример комнаты 11","room-example-12":"Пример комнаты 12","room-example-13":"Пример комнаты 13","room-example-14":"Пример комнаты 14","room-example-15":"Пример комнаты 15","carpet-bathroom":"Ванная","carpet-bedroom":"Спальня","carpet-entryway":"Прихожая","carpet-living-room":"Гостиная"},scene:{tunePosition:"Настроить положение",position:"Положение",share:"Поделиться",angle:"Угол",rotation:"Поворот",reset:"Сбросить"},accessError:{unauthorized:"Неверный API-ключ","payment-required":"Просмотр временно недоступен"},resourceType:{rugs:{productCategory:"Ковер",productCardTitle:"Выбранный ковер",replaceProduct:"Заменить ковер",replaceProductShort:"Заменить"},flooring:{productCategory:"Напольное покрытие",productCardTitle:"Выбранное напольное покрытие",replaceProduct:"Заменить",replaceProductShort:"Заменить"}},floor:{scene:{companyFallback:"Компания",share:"Поделиться",download:"Скачать",hideCatalog:"Скрыть каталог",description:"Описание",interiorCardTitle:"Интерьер",tryAtHome:"Примерить дома",tryAtHomeBody:"Через камеру телефона"},materialSelection:{title:"Выбор материала"},interiorSelection:{title:"Выберите интерьер",uploadPhoto:"Загрузить свое фото",invalidFile:"Не получилось загрузить фото, попробуйте еще раз",customTitle:"Ваши фото",presetsTitle:"Готовые интерьеры",currentInterior:"Текущий интерьер",chooseInterior:"Выбрать интерьер",chooseInteriorShort:"Выбрать"},processing:{title:"Готовим вашу комнату",progressLabel:"Прогресс подготовки комнаты",stages:{reading:"Читаем ваше фото...",mapping:"Ищем пол и стены...",lighting:"Настраиваем свет и перспективу...",finalizing:"Собираем превью...",ready:"Комната готова..."}},error:{title:"Что-то пошло не так",processingBody:"В этот раз не получилось загрузить обработать фотографию",loadBody:"Не удалось загрузить просмотр. Попробуйте снова.",tryAgain:"Попробовать еще раз",cancel:"Отменить"}}}}},Gq=aq.createInstance();Gq.use(sj).use({type:"3rdParty",init(t){((e={})=>{aX={...aX,...e}})(t.options.react),e=t}}).init({debug:!1,detection:{caches:[]},fallbackLng:"en",resources:GW,interpolation:{escapeValue:!1}});let GK=/initial-value:([^;\n]+);/i,GY=(eg=(eF=GH("./src/style.css?inline").A).replace(/:root\s*,\s*:host|:root/g,":host"),(em=Array.from(eF.matchAll(/@property\s+(--[^{\s]+)\s*\{([^}]*)\}/g)).map(([,e,t])=>{let r=t.match(GK);if(!r)return null;let n=r[1].trim();return` ${e}: ${n};`}).filter(e=>null!==e).join("\n"))?`:host {
7480
- ${em}
7481
- }
7479
+ `,""]);let o=s.toString()},"../../node_modules/.pnpm/@rsbuild+core@1.7.1/node_modules/@rsbuild/core/compiled/css-loader/api.js"(e){e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var r="",n=void 0!==t[5];return t[4]&&(r+="@supports (".concat(t[4],") {")),t[2]&&(r+="@media ".concat(t[2]," {")),n&&(r+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),r+=e(t),n&&(r+="}"),t[2]&&(r+="}"),t[4]&&(r+="}"),r}).join("")},t.i=function(e,r,n,i,a){"string"==typeof e&&(e=[[null,e,void 0]]);var s={};if(n)for(var o=0;o<this.length;o++){var l=this[o][0];null!=l&&(s[l]=!0)}for(var c=0;c<e.length;c++){var u=[].concat(e[c]);n&&s[u[0]]||(void 0!==a&&(void 0===u[5]||(u[1]="@layer".concat(u[5].length>0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=a),r&&(u[2]&&(u[1]="@media ".concat(u[2]," {").concat(u[1],"}")),u[2]=r),i&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=i):u[4]="".concat(i)),t.push(u))}},t}},"../../node_modules/.pnpm/@rsbuild+core@1.7.1/node_modules/@rsbuild/core/compiled/css-loader/noSourceMaps.js"(e){e.exports=function(e){return e[1]}}},Gz={};function GH(e){var t=Gz[e];if(void 0!==t)return t.exports;var r=Gz[e]={id:e,exports:{}};return GU[e](r,r.exports,GH),r.exports}GH.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return GH.d(t,{a:t}),t},GH.d=(e,t)=>{for(var r in t)GH.o(t,r)&&!GH.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},GH.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);let Gj=(0,ru.createContext)({theme:"system",setTheme:()=>null});function GG({children:e,defaultTheme:t="system",storageKey:r="v-theme",root:n=window.document.documentElement,enableStorage:i=!1,...a}){let[s,o]=(0,ru.useState)(()=>i&&localStorage.getItem(r)||t);return(0,ru.useEffect)(()=>{if(n.classList.remove("light","dark"),"system"===s){let e=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";n.classList.add(e);return}n.classList.add(s)},[s,n]),(0,rh.jsx)(Gj,{...a,value:{theme:s,setTheme:e=>{i&&localStorage.setItem(r,e),o(e)}},children:e})}var GV=GH("../ui/src/styles/fonts.css?inline");let GW={en:{translation:{matting:"Matting",material:"Material",chooseMaterial:"Choose material",frameWidth:"Frame width",close:"Close",uploadOwnPhoto:"Upload your photo",previousSlide:"Previous slide",nextSlide:"Next slide",mattingOptions:{none:"None"},units:{cm:"cm",in:"in"},ar:{viewInPlace:"View in place",scanQrCode:"Scan this QR code with your phone's camera to view the object in Augmented Reality",deviceRequirementsDisclaimer:"*Requires AR-supported device and browser. We recommend iOS 12 or later with Safari, or Android 7.0 or later with Chrome."},legal:{termsOfUse:"Terms of Use",conjunction:"and",privacyPolicy:"Privacy Policy"},shareMessage:{wallart:"Preview wall art",rugs:"Preview rug",flooring:"Preview flooring"},rooms:{"room-example-11":"Room Example 11","room-example-12":"Room Example 12","room-example-13":"Room Example 13","room-example-14":"Room Example 14","room-example-15":"Room Example 15","carpet-bathroom":"Bathroom","carpet-bedroom":"Bedroom","carpet-entryway":"Entryway","carpet-living-room":"Living Room"},scene:{tunePosition:"Tune position",position:"Position",share:"Share",angle:"Angle",rotation:"Rotation",reset:"Reset"},accessError:{unauthorized:"Invalid API key","payment-required":"Viewer temporarily unavailable"},resourceType:{rugs:{productCategory:"Rug",productCardTitle:"Selected rug",replaceProduct:"Replace rug",replaceProductShort:"Replace"},flooring:{productCategory:"Flooring",productCardTitle:"Selected flooring",replaceProduct:"Replace flooring",replaceProductShort:"Replace"}},floor:{scene:{companyFallback:"Company name",share:"Share",download:"Download",hideCatalog:"Hide catalog",description:"Description",interiorCardTitle:"Interior",tryAtHome:"Try at home",tryAtHomeBody:"Through your phone camera"},materialSelection:{title:"Material Selection"},interiorSelection:{title:"Choose interior",uploadPhoto:"Upload your photo",invalidFile:"Could not upload photo, please try again",customTitle:"Your photos",presetsTitle:"Preset interiors",currentInterior:"Current interior",chooseInterior:"Choose interior",chooseInteriorShort:"Choose"},processing:{title:"Preparing your room",progressLabel:"Room preparation progress",stages:{reading:"Reading your photo...",mapping:"Finding floors and walls...",lighting:"Balancing light and perspective...",finalizing:"Building your preview...",ready:"Room is ready..."}},error:{title:"Something went wrong",processingBody:"This time we could not upload and process the photo",loadBody:"We could not load the viewer. Please try again.",tryAgain:"Try again",cancel:"Cancel"}}}},ru:{translation:{matting:"Паспарту",material:"Материал",chooseMaterial:"Выберите материал",frameWidth:"Ширина рамки",close:"Закрыть",uploadOwnPhoto:"Загрузить свое фото",previousSlide:"Предыдущий слайд",nextSlide:"Следующий слайд",mattingOptions:{none:"Нет"},units:{cm:"см",in:"in"},ar:{viewInPlace:"Примерить в комнате",scanQrCode:"Отсканируйте этот QR-код камерой телефона, чтобы просмотреть объект в дополненной реальности",deviceRequirementsDisclaimer:"*Требуется устройство и браузер с поддержкой AR. Рекомендуем iOS 12 или новее с Safari либо Android 7.0 или новее с Chrome."},legal:{termsOfUse:"Условия использования",conjunction:"и",privacyPolicy:"Политика конфиденциальности"},shareMessage:{wallart:"Примерить настенный декор",rugs:"Примерить ковер",flooring:"Примерить напольное покрытие"},rooms:{"room-example-11":"Пример комнаты 11","room-example-12":"Пример комнаты 12","room-example-13":"Пример комнаты 13","room-example-14":"Пример комнаты 14","room-example-15":"Пример комнаты 15","carpet-bathroom":"Ванная","carpet-bedroom":"Спальня","carpet-entryway":"Прихожая","carpet-living-room":"Гостиная"},scene:{tunePosition:"Настроить положение",position:"Положение",share:"Поделиться",angle:"Угол",rotation:"Поворот",reset:"Сбросить"},accessError:{unauthorized:"Неверный API-ключ","payment-required":"Просмотр временно недоступен"},resourceType:{rugs:{productCategory:"Ковер",productCardTitle:"Выбранный ковер",replaceProduct:"Заменить ковер",replaceProductShort:"Заменить"},flooring:{productCategory:"Напольное покрытие",productCardTitle:"Выбранное напольное покрытие",replaceProduct:"Заменить",replaceProductShort:"Заменить"}},floor:{scene:{companyFallback:"Компания",share:"Поделиться",download:"Скачать",hideCatalog:"Скрыть каталог",description:"Описание",interiorCardTitle:"Интерьер",tryAtHome:"Примерить дома",tryAtHomeBody:"Через камеру телефона"},materialSelection:{title:"Выбор материала"},interiorSelection:{title:"Выберите интерьер",uploadPhoto:"Загрузить свое фото",invalidFile:"Не получилось загрузить фото, попробуйте еще раз",customTitle:"Ваши фото",presetsTitle:"Готовые интерьеры",currentInterior:"Текущий интерьер",chooseInterior:"Выбрать интерьер",chooseInteriorShort:"Выбрать"},processing:{title:"Готовим вашу комнату",progressLabel:"Прогресс подготовки комнаты",stages:{reading:"Читаем ваше фото...",mapping:"Ищем пол и стены...",lighting:"Настраиваем свет и перспективу...",finalizing:"Собираем превью...",ready:"Комната готова..."}},error:{title:"Что-то пошло не так",processingBody:"В этот раз не получилось загрузить обработать фотографию",loadBody:"Не удалось загрузить просмотр. Попробуйте снова.",tryAgain:"Попробовать еще раз",cancel:"Отменить"}}}}},Gq=aq.createInstance();Gq.use(sj).use({type:"3rdParty",init(t){((e={})=>{aX={...aX,...e}})(t.options.react),e=t}}).init({debug:!1,detection:{caches:[]},fallbackLng:"en",resources:GW,interpolation:{escapeValue:!1}});let GK=/initial-value:([^;\n]+);/i,GY=/inherits:\s*false(?:\s*;|\s*$)/i,GJ=(eg=(eF=GH("./src/style.css?inline").A).replace(/:root\s*,\s*:host|:root/g,":host"),(em=Array.from(eF.matchAll(/@property\s+(--[^{\s]+)\s*\{([^}]*)\}/g)).map(([,e,t])=>{if(!GY.test(t))return null;let r=t.match(GK)?.[1].trim()??"initial";return` ${e}: ${r};`}).filter(e=>null!==e).join("\n"))?`${eg}
7482
7480
 
7483
- ${eg}`:eg);function GJ(e){let t=e?.trim().replace(/\/+$/,"")??"";if(!t||t.includes("/v1/http")||t.endsWith("/v1"))return t||void 0;let r=t.indexOf("/http");return r>=0?`${t.slice(0,r)}/v1${t.slice(r)}`:`${t}/v1`}let GX=GJ("/apps/vizbl-wall-art/http")??"";function GZ(e){return"shopify"===e.source||void 0!==e.apiKey}function G$(e){return"rugs"===e.resourceType?"rugs":"flooring"===e.resourceType?"flooring":"shopify"===e.source?"wallart-shopify":"wallart"}function G0(e){if(!ic(e))return null;let t=e.response?.status;return 401===t?"unauthorized":402===t?"payment-required":null}function G1(e){return n7.create({baseURL:e,timeout:3e4})}let G2=new Set(["common","delete","get","head","post","put","patch","options","purge","link","unlink"]);function G3(){return globalThis.process?.env?.NODE_ENV}function G4(e){if(void 0===e)return[];let t="function"==typeof e.toJSON?e.toJSON():e,r=[];return!function e(t,r){if(null!==t&&"object"==typeof t)for(let[n,i]of Object.entries(t)){if(null==i)continue;let t=n.toLowerCase();if("common"===t){e(i,r);continue}G2.has(t)||r.push([n,String(i)])}}(t,r),r}function G9(e){return!!("u">typeof FormData&&e instanceof FormData)||null!==e&&"object"==typeof e&&(e.constructor?.name==="FormData"||"function"==typeof e.getBoundary)}let G5=new Set(["authorization","cookie","set-cookie","x-xsrf-token"]);function G8(e){if(null==e)return;let t="function"==typeof e.toJSON?e.toJSON():e;if(null===t||"object"!=typeof t)return;let r={};for(let[e,n]of Object.entries(t))null!=n&&(r[e]=G5.has(e.toLowerCase())?"[redacted]":String(n));return r}function G6(e){if(null!=e){if("string"==typeof e)try{return JSON.parse(e)}catch{return e.length>2e3?`${e.slice(0,2e3)}… (${e.length} chars)`:e}return G9(e)?"[FormData]":e}}function G7(e){let t=(e.requestConfig.method??"GET").toUpperCase(),r=e.requestConfig.url??"",n=`[api:server] ${t} ${r} → ${e.status} (${e.durationMs}ms)`,i={requestId:e.requestId,...e.error?{error:e.error}:{},params:e.requestConfig.params,requestBody:G6(e.requestConfig.data),requestHeaders:G8(e.requestConfig.headers),responseHeaders:G8(e.responseHeaders),responseBody:G6(e.responseBody)};(e.status>=500||void 0!==e.error&&0===e.status?console.error:e.status>=400?console.warn:console.log)(n,i)}function Ve({clientName:e,configureFunctionName:t,defaultBaseURL:r}){let n=G1(r),i=G1(r),a=null,s=null,o=null,l=null,c=null,u=null;async function d(e,t){let r=function(e,t){let r;if(void 0===t.data||G9(t.data))return t;let n=ih.from(t.headers);return n.has("Content-Type")||void 0!==(r=e.defaults.headers.common)&&ih.from(r).has("Content-Type")||n.set("Content-Type","application/json"),t.headers=n,t}(e,function(e){let t=ih.from(e.headers);if(null!==o){let e=o()?.trim();e&&!t.has("Authorization")&&t.set("Authorization",`Bearer ${e}`)}if(null!==u)for(let[r,n]of Object.entries(u({url:e.url,method:e.method})))n&&!t.has(r)&&t.set(r,n);return e.headers=t,e}({...t})),n=function(e){let t,r=ih.from(e.headers),n=r.get("x-request-id");if("string"==typeof n&&n.length>0)return n;let i=(t=globalThis.crypto,"function"==typeof t?.randomUUID?t.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`);return r.set("x-request-id",i),e.headers=r,i}(r),i=function(){if("u">typeof window)return!1;let e=G3(),t=globalThis.process;return t?.env?.DEBUG_API==="true"||"production"!==e&&"test"!==e&&"testing"!==e}(),a=i?Date.now():0;try{let t=await e.request(r);return i&&G7({requestConfig:r,requestId:n,status:t.status,durationMs:Date.now()-a,responseHeaders:t.headers,responseBody:t.data}),t}catch(e){throw i&&G7({requestConfig:r,requestId:n,status:e.response?.status??0,durationMs:Date.now()-a,responseHeaders:e.response?.headers,responseBody:e.response?.data,error:e.message}),e}}async function h(e){return d(e.skipUnauthorizedRecovery?i:n,function(e){let{skipUnauthorizedRecovery:t,...r}=e;return r}(e))}let p=async e=>h({...e,skipUnauthorizedRecovery:!0});function A(){return null!==a}return{configureClientRuntime:function(t){let r,s=(r=function(e){let t=G4(e);if(0===t.length)return;let r=new Map;for(let[e,n]of t)r.set(e.toLowerCase(),n);return Object.fromEntries(Array.from(r.entries()).sort(([e],[t])=>e.localeCompare(t)))}(t.headers),JSON.stringify({...void 0!==t.baseURL?{baseURL:t.baseURL}:{},...void 0!==t.timeout?{timeout:t.timeout}:{},...void 0!==r?{headers:r}:{}}));if("{}"!==s){if(null!==a){if(a===s)return;let t=`${e} already configured. Existing: ${a}. New: ${s}.`;if("production"===G3())return void console.warn(t);throw Error(t)}for(let e of[n,i])void 0!==t.baseURL&&(e.defaults.baseURL=t.baseURL),void 0!==t.timeout&&(e.defaults.timeout=t.timeout),void 0!==t.headers&&function(e,t){let r=e.defaults.headers,n=r.common,i=ih.from(n);for(let[e,r]of G4(t))i.set(e,r);r.common=i.toJSON(),e.defaults.headers=r}(e,t.headers);a=s}},configureAccessTokenResolverRuntime:function(e){o=e},configureUnauthorizedHandlerRuntime:function(e){if(l=e,null===e){null!==s&&(n.interceptors.response.eject(s),s=null),c=null;return}null===s&&(s=n.interceptors.response.use(e=>e,async e=>{let t=e.config;if(e.response?.status!==401||null===l||void 0===t||t._apiRetried)return Promise.reject(e);if(null===c){let t=l;if(null===t)return Promise.reject(e);c=Promise.resolve().then(()=>t(e,{requestWithoutUnauthorizedRecovery:p})).finally(()=>{c=null})}try{if(!await c)return Promise.reject(e);t._apiRetried=!0;let r=ih.from(t.headers);return r.delete("Authorization"),t.headers=r,d(n,t)}catch{return Promise.reject(e)}}))},configureHeadersResolverRuntime:function(e){u=e},isClientConfiguredRuntime:A,assertClientConfiguredRuntime:function(){if(!A())throw Error(`${e} is not configured. Call ${t}(...) before making requests.`)},resetClientForTestsRuntime:function(){let e;if("test"!==(e=G3())&&"testing"!==e)throw Error("resetApiClientForTests() can only be called in test environment.");n=G1(r),i=G1(r),a=null,s=null,o=null,l=null,c=null,u=null},requestRuntime:h,requestWithoutUnauthorizedRecovery:p,addResponseInterceptorRuntime:function(e,t){return n.interceptors.response.use(e,t)}}}let Vt=Ve({clientName:"API node client",configureFunctionName:"configureNodeApiClient",defaultBaseURL:"https://api.vizbl.com"}),Vr=Vt.configureClientRuntime;Vt.configureAccessTokenResolverRuntime,Vt.configureHeadersResolverRuntime,Vt.configureUnauthorizedHandlerRuntime,Vt.isClientConfiguredRuntime,Vt.assertClientConfiguredRuntime,Vt.resetClientForTestsRuntime;let Vn=Vt.requestRuntime;async function Vi(e){return Vn(e)}function Va(e){let t=new FormData;function r(e,r){r instanceof Blob?t.append(e,r):r instanceof Date?t.append(e,r.toISOString()):"number"==typeof r||"boolean"==typeof r?t.append(e,String(r)):"string"==typeof r?t.append(e,r):"object"==typeof r&&t.append(e,new Blob([JSON.stringify(r)],{type:"application/json"}))}return e&&Object.entries(e).forEach(([e,t])=>{if(null!=t)if(Array.isArray(t))for(let n of t)null!=n&&r(e,n);else r(e,t)}),t}async function Vs(e,t={}){let{client:r=Vi,...n}=t,i=Va(e);return(await r({method:"POST",url:"/inference/room-planes/run-raw",data:i,...n})).data}async function Vo(e,t={}){let{client:r=Vi,...n}=t;return(await r({method:"POST",url:"/public/widget/activate-wallart",params:e,...n})).data}async function Vl(e,t,r={}){let{client:n=Vi,...i}=r;return(await n({method:"POST",url:"/public/objects/public",params:t,data:e,...i})).data}async function Vc(e,t={}){let{client:r=Vi,...n}=t;return(await r({method:"POST",url:"/public/widget/shopify/get-rooms",params:e,...n})).data}async function Vu(e={}){let{client:t=Vi,...r}=e;return(await t({method:"POST",url:"/public/widget/get-rooms",...r})).data}async function Vd(e,t={}){let{client:r=Vi,...n}=t;return(await r({method:"POST",url:"/public/widget/token",data:e,...n})).data}async function Vh({tinuuid:e},t,r={}){let{client:n=Vi,...i}=r;return(await n({method:"GET",url:`/public/objects/by-tinuuid/${e}`,params:t,...i})).data}async function Vp(e,t={}){let{client:r=Vi,...n}=t,i=Va(e);return(await r({method:"POST",url:"/public/inference/room-planes/run-raw",data:i,...n})).data}async function VA(e,t={}){let{client:r=Vi,...n}=t;return(await r({method:"POST",url:"/public/widget/events",data:e,...n})).data}Vt.requestWithoutUnauthorizedRecovery,Vt.addResponseInterceptorRuntime;let Vf=Ve({clientName:"API client",configureFunctionName:"configureApiClient",defaultBaseURL:"https://api.vizbl.com/v1"}),Vg=Vf.configureClientRuntime;Vf.configureAccessTokenResolverRuntime,Vf.configureHeadersResolverRuntime,Vf.configureUnauthorizedHandlerRuntime,Vf.isClientConfiguredRuntime,Vf.assertClientConfiguredRuntime,Vf.resetClientForTestsRuntime;let Vm=Vf.requestRuntime;async function Vv(e){return Vm(e)}async function Vb(e,t={}){let{client:r=Vv,...n}=t;return(await r({method:"POST",url:"/obj/Fetch",data:e,...n})).data}async function Vy(e,t={}){let{client:r=Vv,...n}=t;return(await r({method:"POST",url:"/obj/GetKitItems",data:e,...n})).data}async function Vw(e,t={}){let{client:r=Vv,...n}=t;return(await r({method:"POST",url:"/obj/GetPublic",data:e,...n})).data}Vf.requestWithoutUnauthorizedRecovery,Vf.addResponseInterceptorRuntime;let Vx="x-widget-session-token",VC=(e,t)=>VA(e,t);class VE{apiConfig;issueWidgetToken;now;refreshPromise=null;refreshThresholdMs;session;constructor(e,t={}){this.apiConfig=t.apiConfig,this.issueWidgetToken=t.issueWidgetToken??Vd,this.now=t.now??Date.now,this.refreshThresholdMs=t.refreshThresholdMs??3e4,this.session=this.toSnapshot(e)}get snapshot(){return{...this.session}}get token(){return this.session.token}get sid(){return this.session.sid}get expiresAt(){return this.session.expiresAt}isCloseToExpiry(){return this.session.expiresAt-this.now()<=this.refreshThresholdMs}async getTokenForRequest(){return this.isCloseToExpiry()?(await this.refresh()).token:this.session.token}async getHeadersForRequest(){return{[Vx]:await this.getTokenForRequest()}}async getApiConfigForRequest(e){let t=await this.getTokenForRequest();return{...this.apiConfig,...e,headers:{...this.apiConfig?.headers,...e?.headers,[Vx]:t}}}refresh(){return this.refreshPromise||(this.refreshPromise=this.issueWidgetToken({token:this.session.token},this.apiConfig).then(e=>(this.session=this.toSnapshot(e),this.snapshot)).finally(()=>{this.refreshPromise=null})),this.refreshPromise}toSnapshot(e){return{token:e.token,sid:e.sid,expiresAt:this.now()+1e3*e.expiresIn}}}function VS(e,t){return e?.token&&e.sid&&Number.isFinite(e.expiresIn)?new VE(e,t):null}function VI(e,t,r={}){if(!e)return;let n=r.createWidgetEvent??VC;e.getApiConfigForRequest(r.apiConfig).then(e=>n({event:t,timestamp:new Date().toISOString()},e)).catch(()=>{})}async function VM(e){let t={"x-api-key":e.apiKey},r=await e.widgetSession?.getTokenForRequest();return r&&(t[Vx]=r),t}function VB(e,t){return["room-viewer","object",{apiKey:t.apiKey??null,source:t.source,tinuuid:e??null}]}async function Vk(e,t){return GZ(t)?Vh({tinuuid:e},{productType:G$(t)},{baseURL:t.baseURL,headers:await VM(t),signal:t.signal}):Vb({tinuuid:e},{signal:t.signal})}async function VT(e,t,r){let n={page:t,owners:[e]};if(!GZ(r))return Vw({...n,productType:"rugs"===r.resourceType?"rugs":"flooring"===r.resourceType?"flooring":"wallart"},{signal:r.signal});let i=await Vl(n,{productType:G$(r)},{baseURL:r.baseURL,headers:await VM(r),signal:r.signal});return{folder:i.folder,objs:i.objs,pages_count:i.pages_count}}async function VR(e,t,r,n){let i=await Vy({folder:{uuid:e,type:"kit"},page:r},{baseURL:GJ(n.baseURL),signal:n.signal});return{folder:i.folder,objs:i.objs,pages_count:i.pagesCount}}async function VD(e){let t={baseURL:e.baseURL,headers:await VM(e),signal:e.signal};return("shopify"===e.source?await Vc({productType:G$(e)},t):await Vu(t)).rooms.filter(e=>!1!==e.active).sort((e,t)=>(e.position??0)-(t.position??0)).map(e=>({id:e.id,name:e.name,image_url:e.image_url,scene:e.scene}))}function V_(...e){return li(ol(e))}let VP=ls("cursor-pointer inline-flex items-center justify-center gap-1.5 whitespace-nowrap rounded-xl transition-all disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg:not([class*=size-])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary--hover active:bg-primary--pressed disabled:bg-primary--disabled disabled:opacity-20",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary--hover active:bg-secondary--pressed disabled:bg-secondary--disabled disabled:opacity-20",outline:"border border-button-outline bg-transparent text-foreground hover:border-button-outline-hover active:bg-button-outline-pressed disabled:border-border-dark disabled:opacity-20",ghost:"hover:bg-accent hover:text-accent-foreground active:bg-accent--pressed",contrast:"bg-contrast text-contrast-foreground hover:bg-contrast--hover active:bg-contrast--pressed disabled:bg-contrast--disabled disabled:opacity-30"},size:{default:"h-9 px-3.5 typo-button-normal [&_svg]:size-5",sm:"h-8 px-3 typo-button-small [&_svg]:size-4",lg:"h-11 px-4 typo-button-big [&_svg]:size-6",icon:"size-9 rounded-full [&_svg]:size-5","icon-sm":"size-8 rounded-full [&_svg]:size-4","icon-lg":"size-11 rounded-full [&_svg]:size-6"}},defaultVariants:{variant:"default",size:"default"}});function VL({className:e,variant:t,size:r,asChild:n=!1,...i}){return(0,rh.jsx)(n?oa:"button",{"data-slot":"button",className:V_(VP({variant:t,size:r,className:e})),...i})}function VN({...e}){return(0,rh.jsx)(cM,{"data-slot":"dialog",...e})}function VO({...e}){return(0,rh.jsx)(cD,{"data-slot":"dialog-portal",...e})}function VF({...e}){return(0,rh.jsx)(cq,{"data-slot":"dialog-close",...e})}function VQ({className:e,...t}){return(0,rh.jsx)(cP,{"data-slot":"dialog-overlay",className:V_("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",e),...t})}function VU({className:e,children:t,contentInsideOverlay:r=!1,showCloseButton:n=!0,portalContainer:i,...a}){let s=(0,rh.jsxs)(cF,{"data-slot":"dialog-content",className:V_("bg-background-containers data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-6 rounded-3xl border-0 p-6 shadow-[var(--shadow-login)] duration-200 outline-none sm:max-w-120 sm:p-10",e),...a,children:[t,n&&(0,rh.jsxs)(cq,{"data-slot":"dialog-close",className:"focus-visible:ring-ring/30 absolute top-4 right-4 inline-flex size-6 cursor-pointer items-center justify-center rounded-full text-icons-light transition-colors hover:text-icons-normal focus-visible:text-icons-dark focus-visible:ring-2 focus-visible:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0",children:[(0,rh.jsx)(c9,{className:"size-6"}),(0,rh.jsx)("span",{className:"sr-only",children:"Close"})]})]});return(0,rh.jsx)(VO,{"data-slot":"dialog-portal",container:i,children:r?(0,rh.jsx)(VQ,{children:s}):(0,rh.jsxs)(rh.Fragment,{children:[(0,rh.jsx)(VQ,{}),s]})})}function Vz({className:e,...t}){return(0,rh.jsx)("div",{"data-slot":"dialog-header",className:V_("flex flex-col gap-2 text-left",e),...t})}function VH({className:e,showCloseButton:t=!1,children:r,...n}){return(0,rh.jsxs)("div",{"data-slot":"dialog-footer",className:V_("flex flex-wrap items-center justify-start gap-2 pt-2",e),...n,children:[r,t&&(0,rh.jsx)(cq,{asChild:!0,children:(0,rh.jsx)(VL,{variant:"secondary",className:"text-text-dark",children:"Close"})})]})}function Vj({className:e,...t}){return(0,rh.jsx)(cj,{"data-slot":"dialog-title",className:V_("typo-base-18 text-text-dark",e),...t})}function VG({className:e,...t}){return(0,rh.jsx)(cV,{"data-slot":"dialog-description",className:V_("typo-base-16 text-text-light",e),...t})}function VV(e){return(0,rh.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",...e,children:[(0,rh.jsx)("path",{d:"M22.5601 16.3031L14.8901 3.58311C14.58 3.09793 14.1526 2.69864 13.6476 2.42205C13.1425 2.14546 12.5759 2.00049 12.0001 2.00049C11.4243 2.00049 10.8577 2.14546 10.3526 2.42205C9.84755 2.69864 9.42024 3.09793 9.1101 3.58311L1.4401 16.3031C1.16915 16.7548 1.02189 17.2698 1.01311 17.7964C1.00434 18.323 1.13436 18.8427 1.3901 19.3031C1.68578 19.8214 2.11376 20.2518 2.6303 20.5505C3.14684 20.8492 3.73343 21.0054 4.3301 21.0031H19.6701C20.2629 21.0094 20.8468 20.8593 21.363 20.5678C21.8792 20.2764 22.3093 19.8539 22.6101 19.3431C22.8734 18.8779 23.0075 18.3508 22.9987 17.8163C22.9899 17.2818 22.8385 16.7594 22.5601 16.3031ZM20.8601 18.3531C20.7399 18.5597 20.5655 18.7295 20.3557 18.8441C20.146 18.9586 19.9089 19.0136 19.6701 19.0031H4.3301C4.09132 19.0136 3.85422 18.9586 3.64446 18.8441C3.4347 18.7295 3.26029 18.5597 3.1401 18.3531C3.05233 18.2011 3.00613 18.0286 3.00613 17.8531C3.00613 17.6776 3.05233 17.5051 3.1401 17.3531L10.8201 4.62311C10.9581 4.44082 11.1365 4.29298 11.3412 4.19119C11.5459 4.08939 11.7715 4.03642 12.0001 4.03642C12.2287 4.03642 12.4543 4.08939 12.659 4.19119C12.8637 4.29298 13.0421 4.44082 13.1801 4.62311L20.8501 17.3431C20.9413 17.4954 20.9902 17.6693 20.992 17.8468C20.9937 18.0243 20.9482 18.199 20.8601 18.3531Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M12.0001 17.0001C12.2653 17.0001 12.5197 16.8948 12.7072 16.7073C12.8948 16.5197 13.0001 16.2654 13.0001 16.0001C13.0001 15.7349 12.8948 15.4806 12.7072 15.293C12.5197 15.1055 12.2653 15.0001 12.0001 15.0001C11.7349 15.0001 11.4806 15.1055 11.293 15.293C11.1055 15.4806 11.0001 15.7349 11.0001 16.0001C11.0001 16.2654 11.1055 16.5197 11.293 16.7073C11.4806 16.8948 11.7349 17.0001 12.0001 17.0001Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M12.0001 8.00023C11.7349 8.00023 11.4806 8.10559 11.293 8.29313C11.1055 8.48066 11.0001 8.73502 11.0001 9.00023V13.0002C11.0001 13.2655 11.1055 13.5198 11.293 13.7073C11.4806 13.8949 11.7349 14.0002 12.0001 14.0002C12.2653 14.0002 12.5197 13.8949 12.7072 13.7073C12.8948 13.5198 13.0001 13.2655 13.0001 13.0002V9.00023C13.0001 8.73502 12.8948 8.48066 12.7072 8.29313C12.5197 8.10559 12.2653 8.00023 12.0001 8.00023Z",fill:"currentColor"})]})}function VW(e){return(0,rh.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",...e,children:(0,rh.jsx)("path",{d:"M21.1667 8.4C21.1667 8.16131 21.07 7.93245 20.8981 7.76367C20.7262 7.59489 20.4931 7.5 20.25 7.5H16.5833C16.2768 7.5 15.9906 7.3496 15.8206 7.09922L14.2594 4.8H9.74056L8.17936 7.09922C8.00935 7.3496 7.72316 7.5 7.41667 7.5H3.75C3.50688 7.5 3.2738 7.59489 3.10189 7.76367C2.92998 7.93245 2.83333 8.16131 2.83333 8.4V18.3C2.83333 18.5387 2.92998 18.7675 3.10189 18.9363C3.2738 19.1051 3.50689 19.2 3.75 19.2H20.25C20.4931 19.2 20.7262 19.1051 20.8981 18.9363C21.07 18.7675 21.1667 18.5387 21.1667 18.3V8.4ZM14.75 12.9C14.75 12.184 14.46 11.4973 13.9443 10.991C13.4287 10.4847 12.7292 10.2001 12 10.2C11.2707 10.2 10.5705 10.4847 10.0548 10.991C9.53923 11.4973 9.25 12.1841 9.25 12.9C9.25 13.6159 9.53923 14.3027 10.0548 14.809C10.5705 15.3153 11.2707 15.6 12 15.6C12.7292 15.5999 13.4287 15.3153 13.9443 14.809C14.46 14.3027 14.75 13.616 14.75 12.9ZM16.5833 12.9C16.5833 14.0934 16.1 15.2377 15.2406 16.0816C14.3811 16.9255 13.2155 17.3999 12 17.4C10.7844 17.4 9.61809 16.9256 8.75854 16.0816C7.89919 15.2378 7.41667 14.0933 7.41667 12.9C7.41667 11.7067 7.89919 10.5622 8.75854 9.71836C9.61809 8.87445 10.7844 8.4 12 8.4C13.2155 8.40008 14.3811 8.87452 15.2406 9.71836C16.1 10.5623 16.5833 11.7066 16.5833 12.9ZM23 18.3C23 19.0161 22.7101 19.7026 22.1943 20.209C21.6786 20.7153 20.9793 21 20.25 21H3.75C3.02065 21 2.32139 20.7153 1.80566 20.209C1.28994 19.7026 1 19.0161 1 18.3V8.4C1 7.68392 1.28994 6.99736 1.80566 6.49102C2.32139 5.98467 3.02065 5.7 3.75 5.7H6.92611L8.4873 3.40078L8.55623 3.31201C8.72911 3.11535 8.98172 3 9.25 3H14.75L14.8637 3.00703C15.1262 3.03922 15.3639 3.18167 15.5127 3.40078L17.0739 5.7H20.25C20.9793 5.7 21.6786 5.98467 22.1943 6.49102C22.7101 6.99736 23 7.68392 23 8.4V18.3Z",fill:"currentColor"})})}function Vq(e){return(0,rh.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",...e,children:(0,rh.jsx)("path",{d:"M8.21723 14.9975C8.10298 14.997 7.99004 14.9731 7.8854 14.9272C7.78077 14.8814 7.68665 14.8145 7.60889 14.7308L3.55889 10.4225C3.4075 10.2611 3.3264 10.0463 3.33343 9.82513C3.34046 9.604 3.43505 9.39471 3.59639 9.24332C3.75773 9.09192 3.97261 9.01082 4.19374 9.01785C4.41488 9.02489 4.62417 9.11948 4.77556 9.28082L8.20889 12.9392L15.2172 5.27248C15.2883 5.18392 15.3768 5.11083 15.4772 5.0577C15.5776 5.00458 15.6878 4.97254 15.8011 4.96355C15.9143 4.95456 16.0282 4.96882 16.1357 5.00544C16.2432 5.04207 16.3421 5.10029 16.4263 5.17652C16.5105 5.25276 16.5782 5.3454 16.6253 5.44877C16.6724 5.55213 16.6979 5.66403 16.7001 5.7776C16.7024 5.89116 16.6815 6.00399 16.6385 6.10916C16.5956 6.21433 16.5316 6.30961 16.4506 6.38915L8.83389 14.7225C8.75686 14.8077 8.66308 14.8761 8.55841 14.9234C8.45373 14.9707 8.34042 14.996 8.22556 14.9975H8.21723Z",fill:"currentColor"})})}function VK(e){return(0,rh.jsxs)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:[(0,rh.jsx)("g",{clipPath:"url(#clip0_3784_10212)",children:(0,rh.jsx)("path",{d:"M13.4104 11.9958L17.7104 7.70579C17.8036 7.61255 17.8776 7.50186 17.928 7.38004C17.9785 7.25822 18.0045 7.12765 18.0045 6.99579C18.0045 6.86393 17.9785 6.73336 17.928 6.61154C17.8776 6.48972 17.8036 6.37903 17.7104 6.28579C17.6171 6.19255 17.5064 6.11859 17.3846 6.06813C17.2628 6.01767 17.1322 5.9917 17.0004 5.9917C16.8685 5.9917 16.7379 6.01767 16.6161 6.06813C16.4943 6.11859 16.3836 6.19255 16.2904 6.28579L12.0004 10.5858L7.71036 6.28579C7.52206 6.09749 7.26666 5.9917 7.00036 5.9917C6.73406 5.9917 6.47866 6.09749 6.29036 6.28579C6.10206 6.47409 5.99627 6.72949 5.99627 6.99579C5.99627 7.26209 6.10206 7.51749 6.29036 7.70579L10.5904 11.9958L6.29036 16.2858C6.19651 16.3787 6.12201 16.4893 6.07116 16.6111C6.02032 16.733 5.99414 16.8637 5.99414 16.9958C5.99414 17.1278 6.02032 17.2586 6.07116 17.3804C6.12201 17.5023 6.19651 17.6129 6.29036 17.7058C6.38332 17.7995 6.49392 17.8739 6.61578 17.9247C6.73764 17.9754 6.86835 18.0016 7.00036 18.0016C7.13237 18.0016 7.26308 17.9754 7.38494 17.9247C7.5068 17.8739 7.6174 17.7995 7.71036 17.7058L12.0004 13.4058L16.2904 17.7058C16.4067 17.8236 16.5505 17.9107 16.7087 17.9593C16.867 18.0079 17.0349 18.0165 17.1973 17.9843C17.3597 17.9521 17.5116 17.8801 17.6394 17.7748C17.7671 17.6695 17.8668 17.5341 17.9294 17.3808C18.0058 17.1971 18.0257 16.9948 17.9865 16.7997C17.9473 16.6047 17.8508 16.4257 17.7094 16.2858L13.4104 11.9958Z",fill:"currentColor"})}),(0,rh.jsx)("defs",{children:(0,rh.jsx)("clipPath",{id:"clip0_3784_10212",children:(0,rh.jsx)("rect",{width:"24",height:"24",fill:"white"})})})]})}function VY(e){return(0,rh.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",...e,children:[(0,rh.jsx)("path",{d:"M14.3102 16.38L13.0002 17.64V12C13.0002 11.7348 12.8948 11.4804 12.7073 11.2929C12.5197 11.1053 12.2654 11 12.0002 11C11.735 11 11.4806 11.1053 11.2931 11.2929C11.1055 11.4804 11.0002 11.7348 11.0002 12V17.59L9.71018 16.29C9.56958 16.15 9.39071 16.0548 9.1961 16.0163C9.00149 15.9779 8.79984 15.9978 8.61656 16.0738C8.43329 16.1497 8.27658 16.2781 8.16618 16.443C8.05578 16.6078 7.99663 16.8016 7.99618 17C7.99616 17.1318 8.02212 17.2624 8.07256 17.3842C8.12301 17.506 8.19695 17.6167 8.29018 17.71L11.2902 20.71C11.4758 20.8945 11.7264 20.999 11.9881 21.0008C12.2499 21.0027 12.5019 20.9019 12.6902 20.72L15.6902 17.82C15.796 17.7323 15.8827 17.6237 15.9448 17.5011C16.0069 17.3785 16.0431 17.2444 16.0512 17.1072C16.0593 16.97 16.039 16.8325 15.9917 16.7035C15.9444 16.5744 15.871 16.4565 15.7762 16.357C15.6811 16.2574 15.5664 16.1786 15.4394 16.1255C15.3124 16.0723 15.1758 16.046 15.0382 16.0482C14.9005 16.0503 14.7648 16.0809 14.6395 16.138C14.5142 16.1951 14.4021 16.2775 14.3102 16.38Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M17.6704 6.999C17.2623 5.82006 16.497 4.79762 15.4807 4.07397C14.4645 3.35031 13.2479 2.96143 12.0004 2.96143C10.7528 2.96143 9.53628 3.35031 8.52005 4.07397C7.50381 4.79762 6.73842 5.82006 6.33038 6.999C5.43194 7.11934 4.5831 7.48166 3.87468 8.0472C3.16627 8.61274 2.62492 9.36022 2.30855 10.2097C1.99218 11.0592 1.91269 11.9787 2.07859 12.8698C2.24449 13.761 2.64953 14.5903 3.25038 15.269C3.32296 15.3968 3.42284 15.5071 3.54289 15.592C3.66295 15.6768 3.80023 15.7341 3.94497 15.7599C4.08971 15.7856 4.23834 15.7791 4.38029 15.7408C4.52223 15.7026 4.65399 15.6335 4.76618 15.5385C4.87838 15.4435 4.96825 15.3249 5.0294 15.1912C5.09055 15.0576 5.12147 14.912 5.11996 14.765C5.11845 14.618 5.08455 14.4732 5.02067 14.3408C4.95679 14.2084 4.86451 14.0917 4.75038 13.999C4.3635 13.5665 4.11037 13.031 4.02167 12.4575C3.93297 11.884 4.01252 11.2971 4.25066 10.7679C4.4888 10.2387 4.87532 9.7899 5.36338 9.47593C5.85143 9.16197 6.42007 8.9963 7.00038 8.999H7.10038C7.33433 9.00372 7.56252 8.92625 7.74524 8.78008C7.92796 8.6339 8.05363 8.42828 8.10038 8.199C8.284 7.29477 8.77457 6.48182 9.48898 5.8979C10.2034 5.31398 11.0977 4.99499 12.0204 4.99499C12.9431 4.99499 13.8374 5.31398 14.5518 5.8979C15.2662 6.48182 15.7568 7.29477 15.9404 8.199C15.9871 8.42828 16.1128 8.6339 16.2955 8.78008C16.4782 8.92625 16.7064 9.00372 16.9404 8.999H17.0004C17.5807 8.9963 18.1493 9.16197 18.6374 9.47593C19.1254 9.7899 19.512 10.2387 19.7501 10.7679C19.9883 11.2971 20.0678 11.884 19.9791 12.4575C19.8904 13.031 19.6373 13.5665 19.2504 13.999C19.1623 14.0978 19.0947 14.2131 19.0515 14.3382C19.0083 14.4633 18.9904 14.5957 18.9987 14.7278C19.0071 14.8599 19.0416 14.989 19.1003 15.1077C19.1589 15.2263 19.2405 15.3321 19.3404 15.419C19.5394 15.5938 19.7996 15.6825 20.064 15.6656C20.3283 15.6488 20.5752 15.5277 20.7504 15.329C21.3679 14.6514 21.7873 13.8172 21.9626 12.9173C22.138 12.0175 22.0625 11.0868 21.7446 10.227C21.4267 9.36713 20.8785 8.61124 20.1599 8.04194C19.4414 7.47264 18.5802 7.11185 17.6704 6.999Z",fill:"currentColor"})]})}function VJ(e){return(0,rh.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",...e,children:(0,rh.jsx)("path",{d:"M12.0002 15.496C11.8686 15.4968 11.7381 15.4716 11.6163 15.4218C11.4944 15.372 11.3836 15.2987 11.2902 15.206L7.29019 11.206C7.10188 11.0177 6.99609 10.7623 6.99609 10.496C6.99609 10.2297 7.10188 9.97434 7.29019 9.78604C7.47849 9.59773 7.73388 9.49194 8.00019 9.49194C8.26649 9.49194 8.52188 9.59773 8.71019 9.78604L12.0002 13.096L15.3002 9.91604C15.3922 9.81375 15.5043 9.73154 15.6295 9.67455C15.7547 9.61756 15.8903 9.58703 16.0279 9.58485C16.1654 9.58267 16.302 9.60889 16.4289 9.66189C16.5559 9.71488 16.6705 9.79349 16.7657 9.89282C16.8609 9.99214 16.9346 10.11 16.9821 10.2391C17.0297 10.3682 17.0501 10.5057 17.042 10.6431C17.034 10.7804 16.9977 10.9146 16.9355 11.0373C16.8732 11.16 16.7863 11.2685 16.6802 11.356L12.6802 15.216C12.4973 15.3924 12.2542 15.4925 12.0002 15.496Z",fill:"currentColor"})})}function VX(e){return(0,rh.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",...e,children:[(0,rh.jsx)("path",{d:"M21.25 12C21.25 6.89137 17.1086 2.75 12 2.75C6.89137 2.75 2.75 6.89137 2.75 12C2.75 17.1086 6.89137 21.25 12 21.25C17.1086 21.25 21.25 17.1086 21.25 12ZM22.75 12C22.75 17.9371 17.9371 22.75 12 22.75C6.06294 22.75 1.25 17.9371 1.25 12C1.25 6.06294 6.06294 1.25 12 1.25C17.9371 1.25 22.75 6.06294 22.75 12Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M2.51074 11.4512C4.93062 13.704 8.34578 14.76 11.8662 14.75C15.3868 14.74 18.9326 13.6626 21.5586 11.75L22.4414 12.9619C19.5314 15.0814 15.6692 16.2392 11.8701 16.25C8.07098 16.2607 4.25427 15.1229 1.48926 12.5488L2.51074 11.4512Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M12.064 2.5332C9.97218 4.60314 8.74951 8.13693 8.74367 11.8135C8.7379 15.4824 9.94419 19.1271 12.4976 21.4443L11.4898 22.5557C8.53343 19.873 7.23749 15.7674 7.24367 11.8115C7.24989 7.86332 8.55333 3.89687 11.0093 1.4668L12.064 2.5332Z",fill:"currentColor"})]})}function VZ(e){return(0,rh.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",...e,children:[(0,rh.jsx)("path",{d:"M18 3H6C5.20435 3 4.44129 3.31607 3.87868 3.87868C3.31607 4.44129 3 5.20435 3 6V18C3 18.7956 3.31607 19.5587 3.87868 20.1213C4.44129 20.6839 5.20435 21 6 21H18C18.7956 21 19.5587 20.6839 20.1213 20.1213C20.6839 19.5587 21 18.7956 21 18V6C21 5.20435 20.6839 4.44129 20.1213 3.87868C19.5587 3.31607 18.7956 3 18 3ZM6 5H18C18.2652 5 18.5196 5.10536 18.7071 5.29289C18.8946 5.48043 19 5.73478 19 6V14.36L15.8 11.63C15.3042 11.222 14.6821 10.999 14.04 10.999C13.3979 10.999 12.7758 11.222 12.28 11.63L5 17.7V6C5 5.73478 5.10536 5.48043 5.29289 5.29289C5.48043 5.10536 5.73478 5 6 5ZM18 19H6.56L13.56 13.16C13.6945 13.0602 13.8575 13.0062 14.025 13.0062C14.1925 13.0062 14.3555 13.0602 14.49 13.16L19 17V18C19 18.2652 18.8946 18.5196 18.7071 18.7071C18.5196 18.8946 18.2652 19 18 19Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M7.99983 9.99992C8.39766 9.99992 8.77919 9.84188 9.06049 9.56058C9.34179 9.27927 9.49983 8.89774 9.49983 8.49992C9.49983 8.10209 9.34179 7.72056 9.06049 7.43925C8.77919 7.15795 8.39766 6.99992 7.99983 6.99992C7.60201 6.99992 7.22047 7.15795 6.93917 7.43925C6.65787 7.72056 6.49983 8.10209 6.49983 8.49992C6.49983 8.89774 6.65787 9.27927 6.93917 9.56058C7.22047 9.84188 7.60201 9.99992 7.99983 9.99992Z",fill:"currentColor"})]})}function V$(e){return(0,rh.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",...e,children:[(0,rh.jsx)("path",{d:"M12 2C11.7348 2 11.4804 2.10536 11.2929 2.29289C11.1054 2.48043 11 2.73478 11 3V5C11 5.26522 11.1054 5.51957 11.2929 5.70711C11.4804 5.89464 11.7348 6 12 6C12.2652 6 12.5196 5.89464 12.7071 5.70711C12.8946 5.51957 13 5.26522 13 5V3C13 2.73478 12.8946 2.48043 12.7071 2.29289C12.5196 2.10536 12.2652 2 12 2Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M21.0002 11H19.0002C18.735 11 18.4806 11.1054 18.2931 11.2929C18.1055 11.4804 18.0002 11.7348 18.0002 12C18.0002 12.2652 18.1055 12.5196 18.2931 12.7071C18.4806 12.8946 18.735 13 19.0002 13H21.0002C21.2654 13 21.5197 12.8946 21.7073 12.7071C21.8948 12.5196 22.0002 12.2652 22.0002 12C22.0002 11.7348 21.8948 11.4804 21.7073 11.2929C21.5197 11.1054 21.2654 11 21.0002 11Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M6 12C6 11.7348 5.89464 11.4804 5.70711 11.2929C5.51957 11.1054 5.26522 11 5 11H3C2.73478 11 2.48043 11.1054 2.29289 11.2929C2.10536 11.4804 2 11.7348 2 12C2 12.2652 2.10536 12.5196 2.29289 12.7071C2.48043 12.8946 2.73478 13 3 13H5C5.26522 13 5.51957 12.8946 5.70711 12.7071C5.89464 12.5196 6 12.2652 6 12Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M6.22009 5.00298C6.02357 4.82786 5.76656 4.7362 5.50358 4.74744C5.2406 4.75869 4.99234 4.87196 4.8115 5.06322C4.63065 5.25447 4.53143 5.50867 4.5349 5.77187C4.53838 6.03507 4.64426 6.28656 4.83009 6.47298L6.27009 7.86298C6.36673 7.95629 6.48117 8.02917 6.60659 8.07728C6.73201 8.12538 6.86584 8.14773 7.00009 8.14298C7.1348 8.14246 7.26801 8.11474 7.39173 8.06147C7.51546 8.0082 7.62714 7.93048 7.72009 7.83298C7.90634 7.64561 8.01088 7.39216 8.01088 7.12798C8.01088 6.86379 7.90634 6.61034 7.72009 6.42298L6.22009 5.00298Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M17 8.14285C17.2575 8.14182 17.5047 8.04153 17.69 7.86285L19.13 6.47285C19.3057 6.2893 19.4049 6.04577 19.4075 5.79172C19.4102 5.53767 19.316 5.29214 19.1441 5.10502C18.9723 4.91789 18.7356 4.80319 18.4823 4.78421C18.2289 4.76524 17.9779 4.84341 17.78 5.00285L16.34 6.42285C16.1538 6.61021 16.0493 6.86366 16.0493 7.12785C16.0493 7.39203 16.1538 7.64548 16.34 7.83285C16.5132 8.01557 16.7489 8.12627 17 8.14285Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M12 17.9999C11.7348 17.9999 11.4804 18.1053 11.2929 18.2928C11.1054 18.4803 11 18.7347 11 18.9999V20.9999C11 21.2651 11.1054 21.5195 11.2929 21.707C11.4804 21.8946 11.7348 21.9999 12 21.9999C12.2652 21.9999 12.5196 21.8946 12.7071 21.707C12.8946 21.5195 13 21.2651 13 20.9999V18.9999C13 18.7347 12.8946 18.4803 12.7071 18.2928C12.5196 18.1053 12.2652 17.9999 12 17.9999Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M17.7302 16.1399C17.5392 15.9556 17.2829 15.8547 17.0175 15.8594C16.7521 15.864 16.4995 15.974 16.3152 16.1649C16.1309 16.3559 16.0299 16.6122 16.0346 16.8776C16.0393 17.143 16.1492 17.3956 16.3402 17.5799L17.7802 18.9999C17.9702 19.1835 18.2251 19.2845 18.4893 19.2808C18.7535 19.277 19.0055 19.1688 19.1902 18.9799C19.2837 18.8868 19.3579 18.7762 19.4085 18.6543C19.4591 18.5325 19.4851 18.4019 19.4851 18.2699C19.4851 18.138 19.4591 18.0073 19.4085 17.8855C19.3579 17.7637 19.2837 17.653 19.1902 17.5599L17.7302 16.1399Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M6.27011 16.141L4.83011 17.531C4.73638 17.624 4.66198 17.7346 4.61121 17.8564C4.56045 17.9783 4.53431 18.109 4.53431 18.241C4.53431 18.373 4.56045 18.5037 4.61121 18.6256C4.66198 18.7474 4.73638 18.858 4.83011 18.951C4.9239 19.0467 5.03596 19.1226 5.15965 19.1741C5.28333 19.2256 5.41612 19.2518 5.55011 19.251C5.79662 19.2531 6.03522 19.1641 6.22011 19.001L7.66011 17.611C7.75466 17.5197 7.83031 17.4107 7.88273 17.2902C7.93516 17.1697 7.96334 17.0401 7.96566 16.9087C7.96798 16.7773 7.9444 16.6467 7.89626 16.5244C7.84813 16.4022 7.77637 16.2905 7.68511 16.196C7.59384 16.1014 7.48484 16.0258 7.36433 15.9734C7.24383 15.9209 7.11418 15.8928 6.98278 15.8904C6.85139 15.8881 6.72082 15.9117 6.59854 15.9598C6.47626 16.008 6.36466 16.0797 6.27011 16.171V16.141Z",fill:"currentColor"})]})}function V0(e){return(0,rh.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",...e,children:[(0,rh.jsx)("path",{d:"M20.06 11.0001H3.94C3.6907 11.0001 3.4516 11.0991 3.27532 11.2754C3.09904 11.4517 3 11.6908 3 11.9401V12.0601C3 12.5801 3.42 13.0001 3.94 13.0001H20.06C20.58 13.0001 21 12.5801 21 12.0601V11.9401C21 11.6908 20.901 11.4517 20.7247 11.2754C20.5484 11.0991 20.3093 11.0001 20.06 11.0001Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M20.06 15.9999H3.94C3.6907 15.9999 3.4516 16.099 3.27532 16.2752C3.09904 16.4515 3 16.6906 3 16.9399V17.0599C3 17.5799 3.42 17.9999 3.94 17.9999H20.06C20.58 17.9999 21 17.5799 21 17.0599V16.9399C21 16.6906 20.901 16.4515 20.7247 16.2752C20.5484 16.099 20.3093 15.9999 20.06 15.9999Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M20.06 6H3.94C3.6907 6 3.4516 6.09904 3.27532 6.27532C3.09904 6.4516 3 6.6907 3 6.94V7.06C3 7.58 3.42 8 3.94 8H20.06C20.58 8 21 7.58 21 7.06V6.94C21 6.6907 20.901 6.4516 20.7247 6.27532C20.5484 6.09904 20.3093 6 20.06 6Z",fill:"currentColor"})]})}function V1(e){return(0,rh.jsxs)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:[(0,rh.jsx)("g",{clipPath:"url(#clip0_3784_10281)",children:(0,rh.jsx)("path",{d:"M20.739 11.3791L18.039 8.67909C17.955 8.59517 17.8554 8.52861 17.7458 8.48319C17.6361 8.43778 17.5186 8.4144 17.4 8.4144C17.2813 8.4144 17.1638 8.43778 17.0541 8.48319C16.9445 8.52861 16.8449 8.59517 16.761 8.67909C16.6771 8.763 16.6105 8.86262 16.5651 8.97226C16.5197 9.0819 16.4963 9.19941 16.4963 9.31808C16.4963 9.43676 16.5197 9.55427 16.5651 9.66391C16.6105 9.77355 16.6771 9.87317 16.761 9.95708L17.922 11.1001H12.9V6.0691L14.061 7.23909C14.1451 7.32246 14.2448 7.38843 14.3545 7.43322C14.4641 7.478 14.5815 7.50073 14.7 7.50009C14.8787 7.50113 15.0538 7.44891 15.2027 7.35009C15.3517 7.25127 15.4679 7.11032 15.5364 6.94523C15.605 6.78013 15.6228 6.59835 15.5876 6.42308C15.5525 6.24781 15.4659 6.08698 15.339 5.9611L12.639 3.26111C12.4705 3.09326 12.2423 2.99902 12.0045 2.99902C11.7666 2.99902 11.5385 3.09326 11.37 3.26111L8.66999 5.9611C8.58608 6.04442 8.5194 6.14346 8.47376 6.25255C8.42812 6.36164 8.40441 6.47866 8.404 6.59691C8.40358 6.71517 8.42646 6.83235 8.47132 6.94176C8.51619 7.05117 8.58217 7.15068 8.66549 7.23459C8.74882 7.31851 8.84785 7.38519 8.95695 7.43083C9.06604 7.47647 9.18306 7.50017 9.30131 7.50059C9.54014 7.50144 9.76952 7.40737 9.93899 7.23909L11.1 6.0781V11.1001H6.069L7.239 9.93908C7.40847 9.76961 7.50368 9.53975 7.50368 9.30008C7.50368 9.06041 7.40847 8.83056 7.239 8.66109C7.06953 8.49161 6.83967 8.39641 6.6 8.39641C6.36033 8.39641 6.13048 8.49161 5.961 8.66109L3.26101 11.3611C3.17764 11.4452 3.11167 11.5449 3.06689 11.6546C3.0221 11.7642 2.99938 11.8816 3.00002 12.0001C2.99933 12.1185 3.02203 12.2359 3.06682 12.3456C3.11161 12.4552 3.1776 12.555 3.26101 12.6391L5.961 15.3391C6.0451 15.4225 6.14483 15.4885 6.25449 15.5333C6.36414 15.578 6.48156 15.6007 6.6 15.6001C6.77896 15.6015 6.95429 15.5496 7.10354 15.4508C7.25279 15.3521 7.36918 15.211 7.43781 15.0458C7.50643 14.8805 7.52417 14.6985 7.48876 14.5231C7.45334 14.3476 7.36638 14.1868 7.239 14.0611L6.078 12.9001H11.1V17.9311L9.93899 16.7611C9.76952 16.5916 9.53966 16.4964 9.29999 16.4964C9.06032 16.4964 8.83047 16.5916 8.661 16.7611C8.49152 16.9305 8.39631 17.1604 8.39631 17.4001C8.39631 17.6397 8.49152 17.8696 8.661 18.0391L11.361 20.739C11.5297 20.9065 11.7578 21.0004 11.9955 21.0004C12.2332 21.0004 12.4612 20.9065 12.63 20.739L15.33 18.0391C15.4139 17.9551 15.4805 17.8555 15.5259 17.7459C15.5713 17.6362 15.5947 17.5187 15.5947 17.4001C15.5947 17.2814 15.5713 17.1639 15.5259 17.0542C15.4805 16.9446 15.4139 16.845 15.33 16.7611C15.2461 16.6771 15.1464 16.6106 15.0368 16.5652C14.9272 16.5198 14.8096 16.4964 14.691 16.4964C14.5723 16.4964 14.4548 16.5198 14.3452 16.5652C14.2355 16.6106 14.1359 16.6771 14.052 16.7611L12.9 17.9221V12.9001H17.931L16.761 14.0611C16.6558 14.166 16.5781 14.2952 16.5349 14.4374C16.4917 14.5795 16.4843 14.7301 16.5134 14.8758C16.5424 15.0215 16.607 15.1578 16.7013 15.2725C16.7957 15.3873 16.917 15.4769 17.0544 15.5335C17.164 15.5784 17.2815 15.6011 17.4 15.6001C17.5184 15.6008 17.6359 15.5782 17.7455 15.5334C17.8552 15.4886 17.9549 15.4226 18.039 15.3391L20.739 12.6391C20.8224 12.555 20.8884 12.4552 20.9331 12.3456C20.9779 12.2359 21.0006 12.1185 21 12.0001C20.9966 11.7671 20.9031 11.5445 20.739 11.3791Z",fill:"currentColor"})}),(0,rh.jsx)("defs",{children:(0,rh.jsx)("clipPath",{id:"clip0_3784_10281",children:(0,rh.jsx)("rect",{width:"24",height:"24",fill:"currentColor"})})})]})}function V2(e){return(0,rh.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",...e,children:[(0,rh.jsx)("path",{d:"M19.5398 5.08113C18.5372 4.08551 17.3458 3.30019 16.0356 2.77129C14.7253 2.24238 13.3226 1.98054 11.9098 2.00113C9.25763 1.9945 6.71146 3.04171 4.83141 4.91238C2.95135 6.78306 1.89143 9.32396 1.8848 11.9761C1.87817 14.6283 2.92538 17.1745 4.79605 19.0545C6.66673 20.9346 9.20763 21.9945 11.8598 22.0011C12.4313 22.0108 12.9898 21.8305 13.4477 21.4884C13.9057 21.1464 14.237 20.6619 14.3898 20.1111C14.4872 19.7134 14.4862 19.2979 14.3869 18.9006C14.2875 18.5033 14.0929 18.1362 13.8198 17.8311C13.7562 17.7594 13.7146 17.6709 13.7 17.5761C13.6854 17.4814 13.6984 17.3845 13.7374 17.2969C13.7765 17.2094 13.8399 17.1349 13.9201 17.0825C14.0003 17.03 14.0939 17.0018 14.1898 17.0011H15.8398C17.3927 17.0084 18.8909 16.4279 20.0336 15.3761C21.1762 14.3244 21.8786 12.8794 21.9998 11.3311C22.037 10.1767 21.838 9.02692 21.415 7.95218C20.992 6.87745 20.3539 5.90046 19.5398 5.08113ZM15.8798 15.0011H14.2298C13.7479 14.9984 13.2756 15.1355 12.8701 15.3959C12.4647 15.6563 12.1435 16.0288 11.9455 16.4681C11.7476 16.9075 11.6813 17.3948 11.7549 17.8711C11.8284 18.3473 12.0385 18.792 12.3598 19.1511C12.4224 19.2142 12.4666 19.2932 12.4877 19.3795C12.5088 19.4658 12.5061 19.5562 12.4798 19.6411C12.4298 19.8511 12.1998 19.9811 11.8898 20.0011C10.754 19.9869 9.63429 19.7309 8.60516 19.2502C7.57603 18.7695 6.66109 18.0751 5.92126 17.2132C5.18142 16.3513 4.63365 15.3417 4.31441 14.2516C3.99517 13.1615 3.91178 12.016 4.0698 10.8911C4.35496 9.00107 5.29935 7.27276 6.73593 6.01186C8.17251 4.75096 10.0087 4.03873 11.9198 4.00113H11.9998C13.1306 3.98632 14.253 4.19813 15.3007 4.62407C16.3483 5.05001 17.3001 5.68144 18.0998 6.48113C18.7238 7.10552 19.2141 7.85048 19.5407 8.67057C19.8674 9.49066 20.0236 10.3687 19.9998 11.2511C19.8963 12.2742 19.4184 13.2229 18.6579 13.9151C17.8974 14.6072 16.9081 14.994 15.8798 15.0011Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M11.9996 8.00025C12.3974 8.00025 12.7789 7.84222 13.0602 7.56091C13.3415 7.27961 13.4996 6.89808 13.4996 6.50025C13.4996 6.10243 13.3415 5.7209 13.0602 5.43959C12.7789 5.15829 12.3974 5.00025 11.9996 5.00025C11.6018 5.00025 11.2202 5.15829 10.9389 5.43959C10.6576 5.7209 10.4996 6.10243 10.4996 6.50025C10.4996 6.89808 10.6576 7.27961 10.9389 7.56091C11.2202 7.84222 11.6018 8.00025 11.9996 8.00025Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M15.2496 7.20116C15.079 7.29965 14.9294 7.43079 14.8094 7.58709C14.6895 7.74339 14.6014 7.92179 14.5504 8.1121C14.4994 8.30242 14.4864 8.50092 14.512 8.69627C14.5377 8.89162 14.6016 9.08 14.7001 9.25066C14.7986 9.42131 14.9298 9.57089 15.0861 9.69086C15.2424 9.81084 15.4208 9.89885 15.6111 9.94987C15.8014 10.0009 15.9999 10.0139 16.1952 9.98825C16.3906 9.96256 16.579 9.89865 16.7496 9.80016C17.0944 9.60125 17.3461 9.27352 17.4492 8.88907C17.5524 8.50462 17.4985 8.09494 17.2996 7.75016C17.1007 7.40538 16.773 7.15373 16.3885 7.05059C16.0041 6.94744 15.5944 7.00125 15.2496 7.20016V7.20116Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M8.74976 7.20016C8.57904 7.1018 8.39062 7.03803 8.19526 7.01249C7.99989 6.98695 7.80141 7.00014 7.61114 7.0513C7.42088 7.10247 7.24255 7.19061 7.08634 7.31069C6.93014 7.43077 6.79912 7.58045 6.70076 7.75116C6.6024 7.92188 6.53863 8.1103 6.51308 8.30567C6.48754 8.50103 6.50073 8.69951 6.5519 8.88978C6.60306 9.08005 6.6912 9.25837 6.81128 9.41458C6.93137 9.57078 7.08104 9.7018 7.25176 9.80016C7.59654 9.99881 8.00611 10.0524 8.39037 9.94903C8.77464 9.84569 9.10211 9.59394 9.30076 9.24916C9.4994 8.90438 9.55295 8.49481 9.44962 8.11055C9.34629 7.72629 9.09454 7.39881 8.74976 7.20016Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M6.15933 11.2603C5.9133 11.4264 5.7221 11.6618 5.60993 11.9366C5.49776 12.2115 5.46967 12.5135 5.52921 12.8043C5.58876 13.0951 5.73326 13.3617 5.94443 13.5704C6.1556 13.779 6.42393 13.9204 6.71546 13.9764C7.00698 14.0325 7.30858 14.0008 7.58208 13.8853C7.85557 13.7699 8.08866 13.5759 8.25183 13.3279C8.415 13.0799 8.50091 12.789 8.49868 12.4922C8.49646 12.1953 8.4062 11.9058 8.23933 11.6603C8.12971 11.4966 7.98873 11.3563 7.82454 11.2475C7.66035 11.1387 7.47622 11.0635 7.28279 11.0263C7.08936 10.9891 6.89047 10.9906 6.69763 11.0308C6.5048 11.0709 6.32183 11.1489 6.15933 11.2603Z",fill:"currentColor"})]})}function V3(e){return(0,rh.jsxs)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:[(0,rh.jsx)("path",{d:"M20 15.9998C20.5522 15.9998 20.9999 16.4476 21 16.9998V18.9998C20.9999 19.7952 20.6835 20.5584 20.1211 21.1209C19.5585 21.6833 18.7955 21.9998 18 21.9998H6C5.20446 21.9998 4.44149 21.6833 3.87891 21.1209C3.31646 20.5584 3.00012 19.7952 3 18.9998V16.9998C3.00009 16.4476 3.44777 15.9998 4 15.9998C4.55223 15.9998 4.99991 16.4476 5 16.9998V18.9998C5.00012 19.2648 5.1056 19.5194 5.29297 19.7068C5.48048 19.8942 5.7349 19.9998 6 19.9998H18C18.2651 19.9998 18.5195 19.8942 18.707 19.7068C18.8944 19.5194 18.9999 19.2648 19 18.9998V16.9998C19.0001 16.4476 19.4478 15.9998 20 15.9998Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M11.3691 3.22437C11.7619 2.90402 12.3409 2.92662 12.707 3.29273L17.707 8.29273C18.0973 8.68328 18.0975 9.31635 17.707 9.7068C17.3166 10.097 16.6834 10.097 16.293 9.7068L13 6.41383V15.9998C12.9997 16.5518 12.552 16.9997 12 16.9998C11.4479 16.9998 11.0003 16.5518 11 15.9998V6.41383L7.70703 9.7068C7.31657 10.097 6.68343 10.097 6.29297 9.7068C5.90252 9.31635 5.90268 8.68328 6.29297 8.29273L11.293 3.29273L11.3691 3.22437Z",fill:"currentColor"})]})}function V4({className:e,...t}){return(0,rh.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",className:V_("size-6",e),...t,children:[(0,rh.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12.0625 1.70412C12.1393 1.70359 12.2136 1.7151 12.2842 1.73439C12.6576 1.76978 13.0261 1.88527 13.3604 2.08303L19.7012 5.84084L19.7031 5.84181C20.1036 6.08032 20.4348 6.42322 20.665 6.83498C20.8952 7.24671 21.0168 7.71415 21.0166 8.19142V8.19338L20.998 15.7403C20.9979 16.1352 20.9124 16.526 20.751 16.8848C20.7319 16.9557 20.7049 17.026 20.667 17.0928C20.6355 17.1482 20.5983 17.1987 20.5576 17.2442C20.3296 17.6 20.023 17.8979 19.6631 18.1133L13.2998 21.9072C12.4738 22.3996 11.4611 22.4004 10.6436 21.917L10.6416 21.916L4.30078 18.1582L4.29883 18.1572C3.91023 17.9258 3.58764 17.5957 3.3584 17.2002C3.35105 17.1885 3.34181 17.1773 3.33496 17.1651C3.32803 17.1526 3.32268 17.1387 3.31641 17.126C3.09976 16.7236 2.98517 16.2703 2.98535 15.8076V15.8057L3.00391 8.25588C3.00603 7.28279 3.51293 6.37777 4.33984 5.88478L10.7021 2.09181C11.0682 1.87369 11.4708 1.75231 11.877 1.72658C11.9365 1.71245 11.999 1.70462 12.0625 1.70412ZM5.16895 7.36818C4.87108 7.54583 4.6844 7.87497 4.68359 8.23635L4.66602 15.3838L9.45801 12.5254C9.51085 12.7718 9.60256 13.0142 9.73535 13.2442C9.90127 13.5315 10.1161 13.7727 10.3633 13.9639L5.49512 16.8662L11.499 20.4248C11.8036 20.6044 12.1738 20.6008 12.4707 20.4238L18.5107 16.8233L13.4971 13.877C13.9543 13.482 14.2391 12.9423 14.3242 12.3672L19.3193 15.3037L19.3379 8.21291L19.3369 8.21388C19.3369 8.03517 19.2923 7.85955 19.2061 7.7051C19.1196 7.55056 18.9947 7.42151 18.8447 7.33205L12.8887 3.80275L12.8535 9.73439C12.3304 9.51037 11.7366 9.46806 11.1738 9.63576L11.21 3.76662L5.16895 7.36818Z",fill:"currentColor"}),(0,rh.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.91641 8.60885C11.7928 7.52595 14.1912 8.16845 15.2748 10.0444C16.3582 11.9209 15.7156 14.3211 13.8393 15.4047C11.9627 16.4879 9.56339 15.8446 8.47989 13.9682C7.39671 12.0916 8.03987 9.69227 9.91641 8.60885ZM13.8031 10.894C13.189 9.83118 11.8293 9.46704 10.766 10.0805C9.7026 10.6945 9.33693 12.0551 9.95059 13.1186C10.5646 14.1821 11.9261 14.5469 12.9897 13.9331C14.0529 13.3189 14.4171 11.9575 13.8031 10.894Z",fill:"currentColor"})]})}let V9="var(--v-borders-medium)";function V5({className:e,variant:t="default",size:r="default",state:n="loading",role:i,"aria-live":a,"aria-label":s,...o}){switch(t){case"logo":{let t="sm"===r?4:5;return(0,rh.jsxs)("svg",{...o,role:i??"status","aria-live":a??"polite","aria-label":s??("success"===n?"Success":"error"===n?"Error":"Loading"),width:"93",height:"91",viewBox:"0 0 93 91",fill:"none",xmlns:"http://www.w3.org/2000/svg","data-slot":"spinner","data-size":r,"data-state":n,className:V_("spinner-logo shrink-0","sm"===r?"size-9":"size-22",e),children:[(0,rh.jsx)("g",{className:"spinner-logo__intro-shell",children:(0,rh.jsx)("path",{d:"M15.7495 62.7798L46.4936 45.0297M46.4936 45.0297L77.2661 62.5451M46.4936 45.0297L46.7111 9.62225M49.9213 79.4237L74.5719 65.1917C75.6436 64.5705 76.5344 63.6811 77.1541 62.6137C77.7738 61.5462 78.1003 60.3385 78.1007 59.1129L78.1729 30.7811C78.1734 29.5494 77.851 28.3427 77.2373 27.2798C76.6236 26.2169 75.7398 25.3343 74.6729 24.7189L50.1007 10.6155C47.926 9.3694 45.2455 9.37719 43.0689 10.6339L18.4183 24.8659C16.2385 26.1244 14.8946 28.4401 14.8895 30.9447L14.8173 59.2766C14.8168 60.5082 15.1392 61.7149 15.7529 62.7778C16.3666 63.8408 17.2504 64.7233 18.3173 65.3387L42.8895 79.4421C45.0642 80.6882 47.7447 80.6805 49.9213 79.4237Z",className:"spinner-logo__outline spinner-logo__outline--intro",vectorEffect:"sm"===r?void 0:"non-scaling-stroke"})}),(0,rh.jsx)("circle",{className:"spinner-logo__intro-orb",cx:"46.27",cy:"45.8",r:"11.18",fill:"white",stroke:V9,strokeWidth:t,strokeLinecap:"round",strokeLinejoin:"round"}),(0,rh.jsx)("circle",{className:"spinner-logo__result-ring",cx:"46.5",cy:"45.5",r:"33.46",fill:"white",stroke:V9,strokeWidth:t,strokeLinecap:"round",strokeLinejoin:"round"}),(0,rh.jsx)("g",{transform:"translate(27.786 31.4489)",children:(0,rh.jsx)("g",{className:"spinner-logo__result-glyph spinner-logo__result-glyph--success",children:(0,rh.jsx)("path",{d:"M13.6758 28.1023C13.3559 28.101 13.0397 28.0341 12.7467 27.9057C12.4537 27.7772 12.1902 27.59 11.9725 27.3557L0.632479 15.2923C0.208575 14.8406 -0.0185097 14.2389 0.00118164 13.6198C0.020873 13.0006 0.285727 12.4146 0.737479 11.9907C1.18923 11.5668 1.79088 11.3397 2.41006 11.3594C3.02924 11.3791 3.61524 11.6439 4.03915 12.0957L13.6525 22.339L33.2758 0.87233C33.475 0.624349 33.7227 0.419696 34.0038 0.270944C34.2849 0.122191 34.5935 0.0324784 34.9105 0.00731496C35.2276 -0.0178485 35.5464 0.0220682 35.8475 0.124615C36.1485 0.227162 36.4254 0.390174 36.6612 0.603637C36.897 0.8171 37.0866 1.07651 37.2185 1.36593C37.3503 1.65535 37.4216 1.96867 37.428 2.28665C37.4344 2.60463 37.3756 2.92056 37.2555 3.21502C37.1353 3.50949 36.9562 3.77627 36.7291 3.999L15.4025 27.3323C15.1868 27.5709 14.9242 27.7625 14.6311 27.895C14.338 28.0275 14.0208 28.0981 13.6991 28.1023H13.6758Z",fill:V9})})}),(0,rh.jsx)("g",{transform:"translate(32.4879 31.4885)",children:(0,rh.jsx)("g",{className:"spinner-logo__result-glyph spinner-logo__result-glyph--error",children:(0,rh.jsx)("path",{d:"M17.3045 14.0095L27.3378 3.99955C27.5554 3.78199 27.728 3.52371 27.8457 3.23946C27.9635 2.95521 28.0241 2.65055 28.0241 2.34288C28.0241 2.03521 27.9635 1.73055 27.8457 1.4463C27.728 1.16205 27.5554 0.903769 27.3378 0.686213C27.1203 0.468656 26.862 0.296082 26.5778 0.178341C26.2935 0.0606 25.9889 -4.58466e-09 25.6812 0C25.3735 4.58466e-09 25.0689 0.0606 24.7846 0.178341C24.5003 0.296082 24.2421 0.468656 24.0245 0.686213L14.0145 10.7195L4.00451 0.686213C3.56514 0.246838 2.96921 -4.62957e-09 2.34784 0C1.72647 4.62957e-09 1.13055 0.246838 0.691177 0.686213C0.251802 1.12559 0.0049634 1.72151 0.0049634 2.34288C0.00496339 2.96425 0.251802 3.56017 0.691177 3.99955L10.7245 14.0095L0.691177 24.0195C0.472196 24.2363 0.29836 24.4943 0.179723 24.7787C0.0610849 25.063 0 25.3681 0 25.6762C0 25.9843 0.0610849 26.2894 0.179723 26.5737C0.29836 26.8581 0.472196 27.1161 0.691177 27.3329C0.908091 27.5516 1.16616 27.7252 1.4505 27.8436C1.73484 27.9621 2.03982 28.0231 2.34784 28.0231C2.65587 28.0231 2.96085 27.9621 3.24519 27.8436C3.52953 27.7252 3.7876 27.5516 4.00451 27.3329L14.0145 17.2995L24.0245 27.3329C24.296 27.6078 24.6314 27.8111 25.0007 27.9245C25.3701 28.0379 25.7618 28.0579 26.1407 27.9828C26.5197 27.9077 26.8741 27.7397 27.1722 27.4939C27.4703 27.2481 27.7028 26.9322 27.8488 26.5745C28.0272 26.1459 28.0736 25.6738 27.9821 25.2187C27.8907 24.7636 27.6655 24.346 27.3355 24.0195L17.3045 14.0095Z",fill:V9})})})]})}case"default":return(0,rh.jsx)(V$,{...o,role:i??"status","aria-live":a??"polite","aria-label":s??"Loading","data-slot":"spinner",className:V_("size-4 animate-spin",e)});default:return t}}var V8=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,t)=>{let r=oi(`Primitive.${t}`),n=(0,ru.forwardRef)((e,n)=>{let{asChild:i,...a}=e;return"u">typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,rh.jsx)(i?r:t,{...a,ref:n})});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{}),V6="Progress",[V7,We]=function(e,t=[]){let r=[],n=()=>{let t=r.map(e=>(0,ru.createContext)(e));return function(r){let n=r?.[e]||t;return(0,ru.useMemo)(()=>({[`__scope${e}`]:{...r,[e]:n}}),[r,n])}};return n.scopeName=e,[function(t,n){let i=(0,ru.createContext)(n),a=r.length;r=[...r,n];let s=t=>{let{scope:r,children:n,...s}=t,o=r?.[e]?.[a]||i,l=(0,ru.useMemo)(()=>s,Object.values(s));return(0,rh.jsx)(o.Provider,{value:l,children:n})};return s.displayName=t+"Provider",[s,function(r,s){let o=s?.[e]?.[a]||i,l=(0,ru.useContext)(o);if(l)return l;if(void 0!==n)return n;throw Error(`\`${r}\` must be used within \`${t}\``)}]},function(...e){let t=e[0];if(1===e.length)return t;let r=()=>{let r=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let n=r.reduce((t,{useScope:r,scopeName:n})=>{let i=r(e)[`__scope${n}`];return{...t,...i}},{});return(0,ru.useMemo)(()=>({[`__scope${t.scopeName}`]:n}),[n])}};return r.scopeName=t.scopeName,r}(n,...t)]}(V6),[Wt,Wr]=V7(V6),Wn=(0,ru.forwardRef)((e,t)=>{var r,n;let{__scopeProgress:i,value:a=null,max:s,getValueLabel:o=Ws,...l}=e;(s||0===s)&&!Wc(s)&&console.error((r=`${s}`,`Invalid prop \`max\` of value \`${r}\` supplied to \`Progress\`. Only numbers greater than 0 are valid max values. Defaulting to \`100\`.`));let c=Wc(s)?s:100;null===a||Wu(a,c)||console.error((n=`${a}`,`Invalid prop \`value\` of value \`${n}\` supplied to \`Progress\`. The \`value\` prop must be:
7481
+ @layer base {
7482
+ :host,
7483
+ *,
7484
+ ::before,
7485
+ ::after,
7486
+ ::backdrop,
7487
+ ::file-selector-button {
7488
+ ${em}
7489
+ }
7490
+ }`:eg);function GX(e){let t=e?.trim().replace(/\/+$/,"")??"";if(!t||t.includes("/v1/http")||t.endsWith("/v1"))return t||void 0;let r=t.indexOf("/http");return r>=0?`${t.slice(0,r)}/v1${t.slice(r)}`:`${t}/v1`}let GZ=GX("/apps/vizbl-wall-art/http")??"";function G$(e){return"shopify"===e.source||void 0!==e.apiKey}function G0(e){return"rugs"===e.resourceType?"rugs":"flooring"===e.resourceType?"flooring":"shopify"===e.source?"wallart-shopify":"wallart"}function G1(e){if(!ic(e))return null;let t=e.response?.status;return 401===t?"unauthorized":402===t?"payment-required":null}function G2(e){return n7.create({baseURL:e,timeout:3e4})}let G3=new Set(["common","delete","get","head","post","put","patch","options","purge","link","unlink"]);function G4(){return globalThis.process?.env?.NODE_ENV}function G9(e){if(void 0===e)return[];let t="function"==typeof e.toJSON?e.toJSON():e,r=[];return!function e(t,r){if(null!==t&&"object"==typeof t)for(let[n,i]of Object.entries(t)){if(null==i)continue;let t=n.toLowerCase();if("common"===t){e(i,r);continue}G3.has(t)||r.push([n,String(i)])}}(t,r),r}function G5(e){return!!("u">typeof FormData&&e instanceof FormData)||null!==e&&"object"==typeof e&&(e.constructor?.name==="FormData"||"function"==typeof e.getBoundary)}let G8=new Set(["authorization","cookie","set-cookie","x-xsrf-token"]);function G6(e){if(null==e)return;let t="function"==typeof e.toJSON?e.toJSON():e;if(null===t||"object"!=typeof t)return;let r={};for(let[e,n]of Object.entries(t))null!=n&&(r[e]=G8.has(e.toLowerCase())?"[redacted]":String(n));return r}function G7(e){if(null!=e){if("string"==typeof e)try{return JSON.parse(e)}catch{return e.length>2e3?`${e.slice(0,2e3)}… (${e.length} chars)`:e}return G5(e)?"[FormData]":e}}function Ve(e){let t=(e.requestConfig.method??"GET").toUpperCase(),r=e.requestConfig.url??"",n=`[api:server] ${t} ${r} → ${e.status} (${e.durationMs}ms)`,i={requestId:e.requestId,...e.error?{error:e.error}:{},params:e.requestConfig.params,requestBody:G7(e.requestConfig.data),requestHeaders:G6(e.requestConfig.headers),responseHeaders:G6(e.responseHeaders),responseBody:G7(e.responseBody)};(e.status>=500||void 0!==e.error&&0===e.status?console.error:e.status>=400?console.warn:console.log)(n,i)}function Vt({clientName:e,configureFunctionName:t,defaultBaseURL:r}){let n=G2(r),i=G2(r),a=null,s=null,o=null,l=null,c=null,u=null;async function d(e,t){let r=function(e,t){let r;if(void 0===t.data||G5(t.data))return t;let n=ih.from(t.headers);return n.has("Content-Type")||void 0!==(r=e.defaults.headers.common)&&ih.from(r).has("Content-Type")||n.set("Content-Type","application/json"),t.headers=n,t}(e,function(e){let t=ih.from(e.headers);if(null!==o){let e=o()?.trim();e&&!t.has("Authorization")&&t.set("Authorization",`Bearer ${e}`)}if(null!==u)for(let[r,n]of Object.entries(u({url:e.url,method:e.method})))n&&!t.has(r)&&t.set(r,n);return e.headers=t,e}({...t})),n=function(e){let t,r=ih.from(e.headers),n=r.get("x-request-id");if("string"==typeof n&&n.length>0)return n;let i=(t=globalThis.crypto,"function"==typeof t?.randomUUID?t.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`);return r.set("x-request-id",i),e.headers=r,i}(r),i=function(){if("u">typeof window)return!1;let e=G4(),t=globalThis.process;return t?.env?.DEBUG_API==="true"||"production"!==e&&"test"!==e&&"testing"!==e}(),a=i?Date.now():0;try{let t=await e.request(r);return i&&Ve({requestConfig:r,requestId:n,status:t.status,durationMs:Date.now()-a,responseHeaders:t.headers,responseBody:t.data}),t}catch(e){throw i&&Ve({requestConfig:r,requestId:n,status:e.response?.status??0,durationMs:Date.now()-a,responseHeaders:e.response?.headers,responseBody:e.response?.data,error:e.message}),e}}async function h(e){return d(e.skipUnauthorizedRecovery?i:n,function(e){let{skipUnauthorizedRecovery:t,...r}=e;return r}(e))}let p=async e=>h({...e,skipUnauthorizedRecovery:!0});function A(){return null!==a}return{configureClientRuntime:function(t){let r,s=(r=function(e){let t=G9(e);if(0===t.length)return;let r=new Map;for(let[e,n]of t)r.set(e.toLowerCase(),n);return Object.fromEntries(Array.from(r.entries()).sort(([e],[t])=>e.localeCompare(t)))}(t.headers),JSON.stringify({...void 0!==t.baseURL?{baseURL:t.baseURL}:{},...void 0!==t.timeout?{timeout:t.timeout}:{},...void 0!==r?{headers:r}:{}}));if("{}"!==s){if(null!==a){if(a===s)return;let t=`${e} already configured. Existing: ${a}. New: ${s}.`;if("production"===G4())return void console.warn(t);throw Error(t)}for(let e of[n,i])void 0!==t.baseURL&&(e.defaults.baseURL=t.baseURL),void 0!==t.timeout&&(e.defaults.timeout=t.timeout),void 0!==t.headers&&function(e,t){let r=e.defaults.headers,n=r.common,i=ih.from(n);for(let[e,r]of G9(t))i.set(e,r);r.common=i.toJSON(),e.defaults.headers=r}(e,t.headers);a=s}},configureAccessTokenResolverRuntime:function(e){o=e},configureUnauthorizedHandlerRuntime:function(e){if(l=e,null===e){null!==s&&(n.interceptors.response.eject(s),s=null),c=null;return}null===s&&(s=n.interceptors.response.use(e=>e,async e=>{let t=e.config;if(e.response?.status!==401||null===l||void 0===t||t._apiRetried)return Promise.reject(e);if(null===c){let t=l;if(null===t)return Promise.reject(e);c=Promise.resolve().then(()=>t(e,{requestWithoutUnauthorizedRecovery:p})).finally(()=>{c=null})}try{if(!await c)return Promise.reject(e);t._apiRetried=!0;let r=ih.from(t.headers);return r.delete("Authorization"),t.headers=r,d(n,t)}catch{return Promise.reject(e)}}))},configureHeadersResolverRuntime:function(e){u=e},isClientConfiguredRuntime:A,assertClientConfiguredRuntime:function(){if(!A())throw Error(`${e} is not configured. Call ${t}(...) before making requests.`)},resetClientForTestsRuntime:function(){let e;if("test"!==(e=G4())&&"testing"!==e)throw Error("resetApiClientForTests() can only be called in test environment.");n=G2(r),i=G2(r),a=null,s=null,o=null,l=null,c=null,u=null},requestRuntime:h,requestWithoutUnauthorizedRecovery:p,addResponseInterceptorRuntime:function(e,t){return n.interceptors.response.use(e,t)}}}let Vr=Vt({clientName:"API node client",configureFunctionName:"configureNodeApiClient",defaultBaseURL:"https://api.vizbl.com"}),Vn=Vr.configureClientRuntime;Vr.configureAccessTokenResolverRuntime,Vr.configureHeadersResolverRuntime,Vr.configureUnauthorizedHandlerRuntime,Vr.isClientConfiguredRuntime,Vr.assertClientConfiguredRuntime,Vr.resetClientForTestsRuntime;let Vi=Vr.requestRuntime;async function Va(e){return Vi(e)}function Vs(e){let t=new FormData;function r(e,r){r instanceof Blob?t.append(e,r):r instanceof Date?t.append(e,r.toISOString()):"number"==typeof r||"boolean"==typeof r?t.append(e,String(r)):"string"==typeof r?t.append(e,r):"object"==typeof r&&t.append(e,new Blob([JSON.stringify(r)],{type:"application/json"}))}return e&&Object.entries(e).forEach(([e,t])=>{if(null!=t)if(Array.isArray(t))for(let n of t)null!=n&&r(e,n);else r(e,t)}),t}async function Vo(e,t={}){let{client:r=Va,...n}=t,i=Vs(e);return(await r({method:"POST",url:"/inference/room-planes/run-raw",data:i,...n})).data}async function Vl(e,t={}){let{client:r=Va,...n}=t;return(await r({method:"POST",url:"/public/widget/activate-wallart",params:e,...n})).data}async function Vc(e,t,r={}){let{client:n=Va,...i}=r;return(await n({method:"POST",url:"/public/objects/public",params:t,data:e,...i})).data}async function Vu(e,t={}){let{client:r=Va,...n}=t;return(await r({method:"POST",url:"/public/widget/shopify/get-rooms",params:e,...n})).data}async function Vd(e={}){let{client:t=Va,...r}=e;return(await t({method:"POST",url:"/public/widget/get-rooms",...r})).data}async function Vh(e,t={}){let{client:r=Va,...n}=t;return(await r({method:"POST",url:"/public/widget/token",data:e,...n})).data}async function Vp({tinuuid:e},t,r={}){let{client:n=Va,...i}=r;return(await n({method:"GET",url:`/public/objects/by-tinuuid/${e}`,params:t,...i})).data}async function VA(e,t={}){let{client:r=Va,...n}=t,i=Vs(e);return(await r({method:"POST",url:"/public/inference/room-planes/run-raw",data:i,...n})).data}async function Vf(e,t={}){let{client:r=Va,...n}=t;return(await r({method:"POST",url:"/public/widget/events",data:e,...n})).data}Vr.requestWithoutUnauthorizedRecovery,Vr.addResponseInterceptorRuntime;let Vg=Vt({clientName:"API client",configureFunctionName:"configureApiClient",defaultBaseURL:"https://api.vizbl.com/v1"}),Vm=Vg.configureClientRuntime;Vg.configureAccessTokenResolverRuntime,Vg.configureHeadersResolverRuntime,Vg.configureUnauthorizedHandlerRuntime,Vg.isClientConfiguredRuntime,Vg.assertClientConfiguredRuntime,Vg.resetClientForTestsRuntime;let Vv=Vg.requestRuntime;async function Vb(e){return Vv(e)}async function Vy(e,t={}){let{client:r=Vb,...n}=t;return(await r({method:"POST",url:"/obj/Fetch",data:e,...n})).data}async function Vw(e,t={}){let{client:r=Vb,...n}=t;return(await r({method:"POST",url:"/obj/GetKitItems",data:e,...n})).data}async function Vx(e,t={}){let{client:r=Vb,...n}=t;return(await r({method:"POST",url:"/obj/GetPublic",data:e,...n})).data}Vg.requestWithoutUnauthorizedRecovery,Vg.addResponseInterceptorRuntime;let VC="x-widget-session-token",VE=(e,t)=>Vf(e,t);class VS{apiConfig;issueWidgetToken;now;refreshPromise=null;refreshThresholdMs;session;constructor(e,t={}){this.apiConfig=t.apiConfig,this.issueWidgetToken=t.issueWidgetToken??Vh,this.now=t.now??Date.now,this.refreshThresholdMs=t.refreshThresholdMs??3e4,this.session=this.toSnapshot(e)}get snapshot(){return{...this.session}}get token(){return this.session.token}get sid(){return this.session.sid}get expiresAt(){return this.session.expiresAt}isCloseToExpiry(){return this.session.expiresAt-this.now()<=this.refreshThresholdMs}async getTokenForRequest(){return this.isCloseToExpiry()?(await this.refresh()).token:this.session.token}async getHeadersForRequest(){return{[VC]:await this.getTokenForRequest()}}async getApiConfigForRequest(e){let t=await this.getTokenForRequest();return{...this.apiConfig,...e,headers:{...this.apiConfig?.headers,...e?.headers,[VC]:t}}}refresh(){return this.refreshPromise||(this.refreshPromise=this.issueWidgetToken({token:this.session.token},this.apiConfig).then(e=>(this.session=this.toSnapshot(e),this.snapshot)).finally(()=>{this.refreshPromise=null})),this.refreshPromise}toSnapshot(e){return{token:e.token,sid:e.sid,expiresAt:this.now()+1e3*e.expiresIn}}}function VI(e,t){return e?.token&&e.sid&&Number.isFinite(e.expiresIn)?new VS(e,t):null}function VM(e,t,r={}){if(!e)return;let n=r.createWidgetEvent??VE;e.getApiConfigForRequest(r.apiConfig).then(e=>n({event:t,timestamp:new Date().toISOString()},e)).catch(()=>{})}async function VB(e){let t={"x-api-key":e.apiKey},r=await e.widgetSession?.getTokenForRequest();return r&&(t[VC]=r),t}function Vk(e,t){return["room-viewer","object",{apiKey:t.apiKey??null,source:t.source,tinuuid:e??null}]}async function VT(e,t){return G$(t)?Vp({tinuuid:e},{productType:G0(t)},{baseURL:t.baseURL,headers:await VB(t),signal:t.signal}):Vy({tinuuid:e},{signal:t.signal})}async function VR(e,t,r){let n={page:t,owners:[e]};if(!G$(r))return Vx({...n,productType:"rugs"===r.resourceType?"rugs":"flooring"===r.resourceType?"flooring":"wallart"},{signal:r.signal});let i=await Vc(n,{productType:G0(r)},{baseURL:r.baseURL,headers:await VB(r),signal:r.signal});return{folder:i.folder,objs:i.objs,pages_count:i.pages_count}}async function VD(e,t,r,n){let i=await Vw({folder:{uuid:e,type:"kit"},page:r},{baseURL:GX(n.baseURL),signal:n.signal});return{folder:i.folder,objs:i.objs,pages_count:i.pagesCount}}async function V_(e){let t={baseURL:e.baseURL,headers:await VB(e),signal:e.signal};return("shopify"===e.source?await Vu({productType:G0(e)},t):await Vd(t)).rooms.filter(e=>!1!==e.active).sort((e,t)=>(e.position??0)-(t.position??0)).map(e=>({id:e.id,name:e.name,image_url:e.image_url,scene:e.scene}))}function VP(...e){return li(ol(e))}let VL=ls("cursor-pointer inline-flex items-center justify-center gap-1.5 whitespace-nowrap rounded-xl transition-all disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg:not([class*=size-])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary--hover active:bg-primary--pressed disabled:bg-primary--disabled disabled:opacity-20",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary--hover active:bg-secondary--pressed disabled:bg-secondary--disabled disabled:opacity-20",outline:"border border-button-outline bg-transparent text-foreground hover:border-button-outline-hover active:bg-button-outline-pressed disabled:border-border-dark disabled:opacity-20",ghost:"hover:bg-accent hover:text-accent-foreground active:bg-accent--pressed",contrast:"bg-contrast text-contrast-foreground hover:bg-contrast--hover active:bg-contrast--pressed disabled:bg-contrast--disabled disabled:opacity-30"},size:{default:"h-9 px-3.5 typo-button-normal [&_svg]:size-5",sm:"h-8 px-3 typo-button-small [&_svg]:size-4",lg:"h-11 px-4 typo-button-big [&_svg]:size-6",icon:"size-9 rounded-full [&_svg]:size-5","icon-sm":"size-8 rounded-full [&_svg]:size-4","icon-lg":"size-11 rounded-full [&_svg]:size-6"}},defaultVariants:{variant:"default",size:"default"}});function VN({className:e,variant:t,size:r,asChild:n=!1,...i}){return(0,rh.jsx)(n?oa:"button",{"data-slot":"button",className:VP(VL({variant:t,size:r,className:e})),...i})}function VO({...e}){return(0,rh.jsx)(cM,{"data-slot":"dialog",...e})}function VF({...e}){return(0,rh.jsx)(cD,{"data-slot":"dialog-portal",...e})}function VQ({...e}){return(0,rh.jsx)(cq,{"data-slot":"dialog-close",...e})}function VU({className:e,...t}){return(0,rh.jsx)(cP,{"data-slot":"dialog-overlay",className:VP("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",e),...t})}function Vz({className:e,children:t,contentInsideOverlay:r=!1,showCloseButton:n=!0,portalContainer:i,...a}){let s=(0,rh.jsxs)(cF,{"data-slot":"dialog-content",className:VP("bg-background-containers data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-6 rounded-3xl border-0 p-6 shadow-[var(--shadow-login)] duration-200 outline-none sm:max-w-120 sm:p-10",e),...a,children:[t,n&&(0,rh.jsxs)(cq,{"data-slot":"dialog-close",className:"focus-visible:ring-ring/30 absolute top-4 right-4 inline-flex size-6 cursor-pointer items-center justify-center rounded-full text-icons-light transition-colors hover:text-icons-normal focus-visible:text-icons-dark focus-visible:ring-2 focus-visible:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0",children:[(0,rh.jsx)(c9,{className:"size-6"}),(0,rh.jsx)("span",{className:"sr-only",children:"Close"})]})]});return(0,rh.jsx)(VF,{"data-slot":"dialog-portal",container:i,children:r?(0,rh.jsx)(VU,{children:s}):(0,rh.jsxs)(rh.Fragment,{children:[(0,rh.jsx)(VU,{}),s]})})}function VH({className:e,...t}){return(0,rh.jsx)("div",{"data-slot":"dialog-header",className:VP("flex flex-col gap-2 text-left",e),...t})}function Vj({className:e,showCloseButton:t=!1,children:r,...n}){return(0,rh.jsxs)("div",{"data-slot":"dialog-footer",className:VP("flex flex-wrap items-center justify-start gap-2 pt-2",e),...n,children:[r,t&&(0,rh.jsx)(cq,{asChild:!0,children:(0,rh.jsx)(VN,{variant:"secondary",className:"text-text-dark",children:"Close"})})]})}function VG({className:e,...t}){return(0,rh.jsx)(cj,{"data-slot":"dialog-title",className:VP("typo-base-18 text-text-dark",e),...t})}function VV({className:e,...t}){return(0,rh.jsx)(cV,{"data-slot":"dialog-description",className:VP("typo-base-16 text-text-light",e),...t})}function VW(e){return(0,rh.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",...e,children:[(0,rh.jsx)("path",{d:"M22.5601 16.3031L14.8901 3.58311C14.58 3.09793 14.1526 2.69864 13.6476 2.42205C13.1425 2.14546 12.5759 2.00049 12.0001 2.00049C11.4243 2.00049 10.8577 2.14546 10.3526 2.42205C9.84755 2.69864 9.42024 3.09793 9.1101 3.58311L1.4401 16.3031C1.16915 16.7548 1.02189 17.2698 1.01311 17.7964C1.00434 18.323 1.13436 18.8427 1.3901 19.3031C1.68578 19.8214 2.11376 20.2518 2.6303 20.5505C3.14684 20.8492 3.73343 21.0054 4.3301 21.0031H19.6701C20.2629 21.0094 20.8468 20.8593 21.363 20.5678C21.8792 20.2764 22.3093 19.8539 22.6101 19.3431C22.8734 18.8779 23.0075 18.3508 22.9987 17.8163C22.9899 17.2818 22.8385 16.7594 22.5601 16.3031ZM20.8601 18.3531C20.7399 18.5597 20.5655 18.7295 20.3557 18.8441C20.146 18.9586 19.9089 19.0136 19.6701 19.0031H4.3301C4.09132 19.0136 3.85422 18.9586 3.64446 18.8441C3.4347 18.7295 3.26029 18.5597 3.1401 18.3531C3.05233 18.2011 3.00613 18.0286 3.00613 17.8531C3.00613 17.6776 3.05233 17.5051 3.1401 17.3531L10.8201 4.62311C10.9581 4.44082 11.1365 4.29298 11.3412 4.19119C11.5459 4.08939 11.7715 4.03642 12.0001 4.03642C12.2287 4.03642 12.4543 4.08939 12.659 4.19119C12.8637 4.29298 13.0421 4.44082 13.1801 4.62311L20.8501 17.3431C20.9413 17.4954 20.9902 17.6693 20.992 17.8468C20.9937 18.0243 20.9482 18.199 20.8601 18.3531Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M12.0001 17.0001C12.2653 17.0001 12.5197 16.8948 12.7072 16.7073C12.8948 16.5197 13.0001 16.2654 13.0001 16.0001C13.0001 15.7349 12.8948 15.4806 12.7072 15.293C12.5197 15.1055 12.2653 15.0001 12.0001 15.0001C11.7349 15.0001 11.4806 15.1055 11.293 15.293C11.1055 15.4806 11.0001 15.7349 11.0001 16.0001C11.0001 16.2654 11.1055 16.5197 11.293 16.7073C11.4806 16.8948 11.7349 17.0001 12.0001 17.0001Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M12.0001 8.00023C11.7349 8.00023 11.4806 8.10559 11.293 8.29313C11.1055 8.48066 11.0001 8.73502 11.0001 9.00023V13.0002C11.0001 13.2655 11.1055 13.5198 11.293 13.7073C11.4806 13.8949 11.7349 14.0002 12.0001 14.0002C12.2653 14.0002 12.5197 13.8949 12.7072 13.7073C12.8948 13.5198 13.0001 13.2655 13.0001 13.0002V9.00023C13.0001 8.73502 12.8948 8.48066 12.7072 8.29313C12.5197 8.10559 12.2653 8.00023 12.0001 8.00023Z",fill:"currentColor"})]})}function Vq(e){return(0,rh.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",...e,children:(0,rh.jsx)("path",{d:"M21.1667 8.4C21.1667 8.16131 21.07 7.93245 20.8981 7.76367C20.7262 7.59489 20.4931 7.5 20.25 7.5H16.5833C16.2768 7.5 15.9906 7.3496 15.8206 7.09922L14.2594 4.8H9.74056L8.17936 7.09922C8.00935 7.3496 7.72316 7.5 7.41667 7.5H3.75C3.50688 7.5 3.2738 7.59489 3.10189 7.76367C2.92998 7.93245 2.83333 8.16131 2.83333 8.4V18.3C2.83333 18.5387 2.92998 18.7675 3.10189 18.9363C3.2738 19.1051 3.50689 19.2 3.75 19.2H20.25C20.4931 19.2 20.7262 19.1051 20.8981 18.9363C21.07 18.7675 21.1667 18.5387 21.1667 18.3V8.4ZM14.75 12.9C14.75 12.184 14.46 11.4973 13.9443 10.991C13.4287 10.4847 12.7292 10.2001 12 10.2C11.2707 10.2 10.5705 10.4847 10.0548 10.991C9.53923 11.4973 9.25 12.1841 9.25 12.9C9.25 13.6159 9.53923 14.3027 10.0548 14.809C10.5705 15.3153 11.2707 15.6 12 15.6C12.7292 15.5999 13.4287 15.3153 13.9443 14.809C14.46 14.3027 14.75 13.616 14.75 12.9ZM16.5833 12.9C16.5833 14.0934 16.1 15.2377 15.2406 16.0816C14.3811 16.9255 13.2155 17.3999 12 17.4C10.7844 17.4 9.61809 16.9256 8.75854 16.0816C7.89919 15.2378 7.41667 14.0933 7.41667 12.9C7.41667 11.7067 7.89919 10.5622 8.75854 9.71836C9.61809 8.87445 10.7844 8.4 12 8.4C13.2155 8.40008 14.3811 8.87452 15.2406 9.71836C16.1 10.5623 16.5833 11.7066 16.5833 12.9ZM23 18.3C23 19.0161 22.7101 19.7026 22.1943 20.209C21.6786 20.7153 20.9793 21 20.25 21H3.75C3.02065 21 2.32139 20.7153 1.80566 20.209C1.28994 19.7026 1 19.0161 1 18.3V8.4C1 7.68392 1.28994 6.99736 1.80566 6.49102C2.32139 5.98467 3.02065 5.7 3.75 5.7H6.92611L8.4873 3.40078L8.55623 3.31201C8.72911 3.11535 8.98172 3 9.25 3H14.75L14.8637 3.00703C15.1262 3.03922 15.3639 3.18167 15.5127 3.40078L17.0739 5.7H20.25C20.9793 5.7 21.6786 5.98467 22.1943 6.49102C22.7101 6.99736 23 7.68392 23 8.4V18.3Z",fill:"currentColor"})})}function VK(e){return(0,rh.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",...e,children:(0,rh.jsx)("path",{d:"M8.21723 14.9975C8.10298 14.997 7.99004 14.9731 7.8854 14.9272C7.78077 14.8814 7.68665 14.8145 7.60889 14.7308L3.55889 10.4225C3.4075 10.2611 3.3264 10.0463 3.33343 9.82513C3.34046 9.604 3.43505 9.39471 3.59639 9.24332C3.75773 9.09192 3.97261 9.01082 4.19374 9.01785C4.41488 9.02489 4.62417 9.11948 4.77556 9.28082L8.20889 12.9392L15.2172 5.27248C15.2883 5.18392 15.3768 5.11083 15.4772 5.0577C15.5776 5.00458 15.6878 4.97254 15.8011 4.96355C15.9143 4.95456 16.0282 4.96882 16.1357 5.00544C16.2432 5.04207 16.3421 5.10029 16.4263 5.17652C16.5105 5.25276 16.5782 5.3454 16.6253 5.44877C16.6724 5.55213 16.6979 5.66403 16.7001 5.7776C16.7024 5.89116 16.6815 6.00399 16.6385 6.10916C16.5956 6.21433 16.5316 6.30961 16.4506 6.38915L8.83389 14.7225C8.75686 14.8077 8.66308 14.8761 8.55841 14.9234C8.45373 14.9707 8.34042 14.996 8.22556 14.9975H8.21723Z",fill:"currentColor"})})}function VY(e){return(0,rh.jsxs)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:[(0,rh.jsx)("g",{clipPath:"url(#clip0_3784_10212)",children:(0,rh.jsx)("path",{d:"M13.4104 11.9958L17.7104 7.70579C17.8036 7.61255 17.8776 7.50186 17.928 7.38004C17.9785 7.25822 18.0045 7.12765 18.0045 6.99579C18.0045 6.86393 17.9785 6.73336 17.928 6.61154C17.8776 6.48972 17.8036 6.37903 17.7104 6.28579C17.6171 6.19255 17.5064 6.11859 17.3846 6.06813C17.2628 6.01767 17.1322 5.9917 17.0004 5.9917C16.8685 5.9917 16.7379 6.01767 16.6161 6.06813C16.4943 6.11859 16.3836 6.19255 16.2904 6.28579L12.0004 10.5858L7.71036 6.28579C7.52206 6.09749 7.26666 5.9917 7.00036 5.9917C6.73406 5.9917 6.47866 6.09749 6.29036 6.28579C6.10206 6.47409 5.99627 6.72949 5.99627 6.99579C5.99627 7.26209 6.10206 7.51749 6.29036 7.70579L10.5904 11.9958L6.29036 16.2858C6.19651 16.3787 6.12201 16.4893 6.07116 16.6111C6.02032 16.733 5.99414 16.8637 5.99414 16.9958C5.99414 17.1278 6.02032 17.2586 6.07116 17.3804C6.12201 17.5023 6.19651 17.6129 6.29036 17.7058C6.38332 17.7995 6.49392 17.8739 6.61578 17.9247C6.73764 17.9754 6.86835 18.0016 7.00036 18.0016C7.13237 18.0016 7.26308 17.9754 7.38494 17.9247C7.5068 17.8739 7.6174 17.7995 7.71036 17.7058L12.0004 13.4058L16.2904 17.7058C16.4067 17.8236 16.5505 17.9107 16.7087 17.9593C16.867 18.0079 17.0349 18.0165 17.1973 17.9843C17.3597 17.9521 17.5116 17.8801 17.6394 17.7748C17.7671 17.6695 17.8668 17.5341 17.9294 17.3808C18.0058 17.1971 18.0257 16.9948 17.9865 16.7997C17.9473 16.6047 17.8508 16.4257 17.7094 16.2858L13.4104 11.9958Z",fill:"currentColor"})}),(0,rh.jsx)("defs",{children:(0,rh.jsx)("clipPath",{id:"clip0_3784_10212",children:(0,rh.jsx)("rect",{width:"24",height:"24",fill:"white"})})})]})}function VJ(e){return(0,rh.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",...e,children:[(0,rh.jsx)("path",{d:"M14.3102 16.38L13.0002 17.64V12C13.0002 11.7348 12.8948 11.4804 12.7073 11.2929C12.5197 11.1053 12.2654 11 12.0002 11C11.735 11 11.4806 11.1053 11.2931 11.2929C11.1055 11.4804 11.0002 11.7348 11.0002 12V17.59L9.71018 16.29C9.56958 16.15 9.39071 16.0548 9.1961 16.0163C9.00149 15.9779 8.79984 15.9978 8.61656 16.0738C8.43329 16.1497 8.27658 16.2781 8.16618 16.443C8.05578 16.6078 7.99663 16.8016 7.99618 17C7.99616 17.1318 8.02212 17.2624 8.07256 17.3842C8.12301 17.506 8.19695 17.6167 8.29018 17.71L11.2902 20.71C11.4758 20.8945 11.7264 20.999 11.9881 21.0008C12.2499 21.0027 12.5019 20.9019 12.6902 20.72L15.6902 17.82C15.796 17.7323 15.8827 17.6237 15.9448 17.5011C16.0069 17.3785 16.0431 17.2444 16.0512 17.1072C16.0593 16.97 16.039 16.8325 15.9917 16.7035C15.9444 16.5744 15.871 16.4565 15.7762 16.357C15.6811 16.2574 15.5664 16.1786 15.4394 16.1255C15.3124 16.0723 15.1758 16.046 15.0382 16.0482C14.9005 16.0503 14.7648 16.0809 14.6395 16.138C14.5142 16.1951 14.4021 16.2775 14.3102 16.38Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M17.6704 6.999C17.2623 5.82006 16.497 4.79762 15.4807 4.07397C14.4645 3.35031 13.2479 2.96143 12.0004 2.96143C10.7528 2.96143 9.53628 3.35031 8.52005 4.07397C7.50381 4.79762 6.73842 5.82006 6.33038 6.999C5.43194 7.11934 4.5831 7.48166 3.87468 8.0472C3.16627 8.61274 2.62492 9.36022 2.30855 10.2097C1.99218 11.0592 1.91269 11.9787 2.07859 12.8698C2.24449 13.761 2.64953 14.5903 3.25038 15.269C3.32296 15.3968 3.42284 15.5071 3.54289 15.592C3.66295 15.6768 3.80023 15.7341 3.94497 15.7599C4.08971 15.7856 4.23834 15.7791 4.38029 15.7408C4.52223 15.7026 4.65399 15.6335 4.76618 15.5385C4.87838 15.4435 4.96825 15.3249 5.0294 15.1912C5.09055 15.0576 5.12147 14.912 5.11996 14.765C5.11845 14.618 5.08455 14.4732 5.02067 14.3408C4.95679 14.2084 4.86451 14.0917 4.75038 13.999C4.3635 13.5665 4.11037 13.031 4.02167 12.4575C3.93297 11.884 4.01252 11.2971 4.25066 10.7679C4.4888 10.2387 4.87532 9.7899 5.36338 9.47593C5.85143 9.16197 6.42007 8.9963 7.00038 8.999H7.10038C7.33433 9.00372 7.56252 8.92625 7.74524 8.78008C7.92796 8.6339 8.05363 8.42828 8.10038 8.199C8.284 7.29477 8.77457 6.48182 9.48898 5.8979C10.2034 5.31398 11.0977 4.99499 12.0204 4.99499C12.9431 4.99499 13.8374 5.31398 14.5518 5.8979C15.2662 6.48182 15.7568 7.29477 15.9404 8.199C15.9871 8.42828 16.1128 8.6339 16.2955 8.78008C16.4782 8.92625 16.7064 9.00372 16.9404 8.999H17.0004C17.5807 8.9963 18.1493 9.16197 18.6374 9.47593C19.1254 9.7899 19.512 10.2387 19.7501 10.7679C19.9883 11.2971 20.0678 11.884 19.9791 12.4575C19.8904 13.031 19.6373 13.5665 19.2504 13.999C19.1623 14.0978 19.0947 14.2131 19.0515 14.3382C19.0083 14.4633 18.9904 14.5957 18.9987 14.7278C19.0071 14.8599 19.0416 14.989 19.1003 15.1077C19.1589 15.2263 19.2405 15.3321 19.3404 15.419C19.5394 15.5938 19.7996 15.6825 20.064 15.6656C20.3283 15.6488 20.5752 15.5277 20.7504 15.329C21.3679 14.6514 21.7873 13.8172 21.9626 12.9173C22.138 12.0175 22.0625 11.0868 21.7446 10.227C21.4267 9.36713 20.8785 8.61124 20.1599 8.04194C19.4414 7.47264 18.5802 7.11185 17.6704 6.999Z",fill:"currentColor"})]})}function VX(e){return(0,rh.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",...e,children:(0,rh.jsx)("path",{d:"M12.0002 15.496C11.8686 15.4968 11.7381 15.4716 11.6163 15.4218C11.4944 15.372 11.3836 15.2987 11.2902 15.206L7.29019 11.206C7.10188 11.0177 6.99609 10.7623 6.99609 10.496C6.99609 10.2297 7.10188 9.97434 7.29019 9.78604C7.47849 9.59773 7.73388 9.49194 8.00019 9.49194C8.26649 9.49194 8.52188 9.59773 8.71019 9.78604L12.0002 13.096L15.3002 9.91604C15.3922 9.81375 15.5043 9.73154 15.6295 9.67455C15.7547 9.61756 15.8903 9.58703 16.0279 9.58485C16.1654 9.58267 16.302 9.60889 16.4289 9.66189C16.5559 9.71488 16.6705 9.79349 16.7657 9.89282C16.8609 9.99214 16.9346 10.11 16.9821 10.2391C17.0297 10.3682 17.0501 10.5057 17.042 10.6431C17.034 10.7804 16.9977 10.9146 16.9355 11.0373C16.8732 11.16 16.7863 11.2685 16.6802 11.356L12.6802 15.216C12.4973 15.3924 12.2542 15.4925 12.0002 15.496Z",fill:"currentColor"})})}function VZ(e){return(0,rh.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",...e,children:[(0,rh.jsx)("path",{d:"M21.25 12C21.25 6.89137 17.1086 2.75 12 2.75C6.89137 2.75 2.75 6.89137 2.75 12C2.75 17.1086 6.89137 21.25 12 21.25C17.1086 21.25 21.25 17.1086 21.25 12ZM22.75 12C22.75 17.9371 17.9371 22.75 12 22.75C6.06294 22.75 1.25 17.9371 1.25 12C1.25 6.06294 6.06294 1.25 12 1.25C17.9371 1.25 22.75 6.06294 22.75 12Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M2.51074 11.4512C4.93062 13.704 8.34578 14.76 11.8662 14.75C15.3868 14.74 18.9326 13.6626 21.5586 11.75L22.4414 12.9619C19.5314 15.0814 15.6692 16.2392 11.8701 16.25C8.07098 16.2607 4.25427 15.1229 1.48926 12.5488L2.51074 11.4512Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M12.064 2.5332C9.97218 4.60314 8.74951 8.13693 8.74367 11.8135C8.7379 15.4824 9.94419 19.1271 12.4976 21.4443L11.4898 22.5557C8.53343 19.873 7.23749 15.7674 7.24367 11.8115C7.24989 7.86332 8.55333 3.89687 11.0093 1.4668L12.064 2.5332Z",fill:"currentColor"})]})}function V$(e){return(0,rh.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",...e,children:[(0,rh.jsx)("path",{d:"M18 3H6C5.20435 3 4.44129 3.31607 3.87868 3.87868C3.31607 4.44129 3 5.20435 3 6V18C3 18.7956 3.31607 19.5587 3.87868 20.1213C4.44129 20.6839 5.20435 21 6 21H18C18.7956 21 19.5587 20.6839 20.1213 20.1213C20.6839 19.5587 21 18.7956 21 18V6C21 5.20435 20.6839 4.44129 20.1213 3.87868C19.5587 3.31607 18.7956 3 18 3ZM6 5H18C18.2652 5 18.5196 5.10536 18.7071 5.29289C18.8946 5.48043 19 5.73478 19 6V14.36L15.8 11.63C15.3042 11.222 14.6821 10.999 14.04 10.999C13.3979 10.999 12.7758 11.222 12.28 11.63L5 17.7V6C5 5.73478 5.10536 5.48043 5.29289 5.29289C5.48043 5.10536 5.73478 5 6 5ZM18 19H6.56L13.56 13.16C13.6945 13.0602 13.8575 13.0062 14.025 13.0062C14.1925 13.0062 14.3555 13.0602 14.49 13.16L19 17V18C19 18.2652 18.8946 18.5196 18.7071 18.7071C18.5196 18.8946 18.2652 19 18 19Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M7.99983 9.99992C8.39766 9.99992 8.77919 9.84188 9.06049 9.56058C9.34179 9.27927 9.49983 8.89774 9.49983 8.49992C9.49983 8.10209 9.34179 7.72056 9.06049 7.43925C8.77919 7.15795 8.39766 6.99992 7.99983 6.99992C7.60201 6.99992 7.22047 7.15795 6.93917 7.43925C6.65787 7.72056 6.49983 8.10209 6.49983 8.49992C6.49983 8.89774 6.65787 9.27927 6.93917 9.56058C7.22047 9.84188 7.60201 9.99992 7.99983 9.99992Z",fill:"currentColor"})]})}function V0(e){return(0,rh.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",...e,children:[(0,rh.jsx)("path",{d:"M12 2C11.7348 2 11.4804 2.10536 11.2929 2.29289C11.1054 2.48043 11 2.73478 11 3V5C11 5.26522 11.1054 5.51957 11.2929 5.70711C11.4804 5.89464 11.7348 6 12 6C12.2652 6 12.5196 5.89464 12.7071 5.70711C12.8946 5.51957 13 5.26522 13 5V3C13 2.73478 12.8946 2.48043 12.7071 2.29289C12.5196 2.10536 12.2652 2 12 2Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M21.0002 11H19.0002C18.735 11 18.4806 11.1054 18.2931 11.2929C18.1055 11.4804 18.0002 11.7348 18.0002 12C18.0002 12.2652 18.1055 12.5196 18.2931 12.7071C18.4806 12.8946 18.735 13 19.0002 13H21.0002C21.2654 13 21.5197 12.8946 21.7073 12.7071C21.8948 12.5196 22.0002 12.2652 22.0002 12C22.0002 11.7348 21.8948 11.4804 21.7073 11.2929C21.5197 11.1054 21.2654 11 21.0002 11Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M6 12C6 11.7348 5.89464 11.4804 5.70711 11.2929C5.51957 11.1054 5.26522 11 5 11H3C2.73478 11 2.48043 11.1054 2.29289 11.2929C2.10536 11.4804 2 11.7348 2 12C2 12.2652 2.10536 12.5196 2.29289 12.7071C2.48043 12.8946 2.73478 13 3 13H5C5.26522 13 5.51957 12.8946 5.70711 12.7071C5.89464 12.5196 6 12.2652 6 12Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M6.22009 5.00298C6.02357 4.82786 5.76656 4.7362 5.50358 4.74744C5.2406 4.75869 4.99234 4.87196 4.8115 5.06322C4.63065 5.25447 4.53143 5.50867 4.5349 5.77187C4.53838 6.03507 4.64426 6.28656 4.83009 6.47298L6.27009 7.86298C6.36673 7.95629 6.48117 8.02917 6.60659 8.07728C6.73201 8.12538 6.86584 8.14773 7.00009 8.14298C7.1348 8.14246 7.26801 8.11474 7.39173 8.06147C7.51546 8.0082 7.62714 7.93048 7.72009 7.83298C7.90634 7.64561 8.01088 7.39216 8.01088 7.12798C8.01088 6.86379 7.90634 6.61034 7.72009 6.42298L6.22009 5.00298Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M17 8.14285C17.2575 8.14182 17.5047 8.04153 17.69 7.86285L19.13 6.47285C19.3057 6.2893 19.4049 6.04577 19.4075 5.79172C19.4102 5.53767 19.316 5.29214 19.1441 5.10502C18.9723 4.91789 18.7356 4.80319 18.4823 4.78421C18.2289 4.76524 17.9779 4.84341 17.78 5.00285L16.34 6.42285C16.1538 6.61021 16.0493 6.86366 16.0493 7.12785C16.0493 7.39203 16.1538 7.64548 16.34 7.83285C16.5132 8.01557 16.7489 8.12627 17 8.14285Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M12 17.9999C11.7348 17.9999 11.4804 18.1053 11.2929 18.2928C11.1054 18.4803 11 18.7347 11 18.9999V20.9999C11 21.2651 11.1054 21.5195 11.2929 21.707C11.4804 21.8946 11.7348 21.9999 12 21.9999C12.2652 21.9999 12.5196 21.8946 12.7071 21.707C12.8946 21.5195 13 21.2651 13 20.9999V18.9999C13 18.7347 12.8946 18.4803 12.7071 18.2928C12.5196 18.1053 12.2652 17.9999 12 17.9999Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M17.7302 16.1399C17.5392 15.9556 17.2829 15.8547 17.0175 15.8594C16.7521 15.864 16.4995 15.974 16.3152 16.1649C16.1309 16.3559 16.0299 16.6122 16.0346 16.8776C16.0393 17.143 16.1492 17.3956 16.3402 17.5799L17.7802 18.9999C17.9702 19.1835 18.2251 19.2845 18.4893 19.2808C18.7535 19.277 19.0055 19.1688 19.1902 18.9799C19.2837 18.8868 19.3579 18.7762 19.4085 18.6543C19.4591 18.5325 19.4851 18.4019 19.4851 18.2699C19.4851 18.138 19.4591 18.0073 19.4085 17.8855C19.3579 17.7637 19.2837 17.653 19.1902 17.5599L17.7302 16.1399Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M6.27011 16.141L4.83011 17.531C4.73638 17.624 4.66198 17.7346 4.61121 17.8564C4.56045 17.9783 4.53431 18.109 4.53431 18.241C4.53431 18.373 4.56045 18.5037 4.61121 18.6256C4.66198 18.7474 4.73638 18.858 4.83011 18.951C4.9239 19.0467 5.03596 19.1226 5.15965 19.1741C5.28333 19.2256 5.41612 19.2518 5.55011 19.251C5.79662 19.2531 6.03522 19.1641 6.22011 19.001L7.66011 17.611C7.75466 17.5197 7.83031 17.4107 7.88273 17.2902C7.93516 17.1697 7.96334 17.0401 7.96566 16.9087C7.96798 16.7773 7.9444 16.6467 7.89626 16.5244C7.84813 16.4022 7.77637 16.2905 7.68511 16.196C7.59384 16.1014 7.48484 16.0258 7.36433 15.9734C7.24383 15.9209 7.11418 15.8928 6.98278 15.8904C6.85139 15.8881 6.72082 15.9117 6.59854 15.9598C6.47626 16.008 6.36466 16.0797 6.27011 16.171V16.141Z",fill:"currentColor"})]})}function V1(e){return(0,rh.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",...e,children:[(0,rh.jsx)("path",{d:"M20.06 11.0001H3.94C3.6907 11.0001 3.4516 11.0991 3.27532 11.2754C3.09904 11.4517 3 11.6908 3 11.9401V12.0601C3 12.5801 3.42 13.0001 3.94 13.0001H20.06C20.58 13.0001 21 12.5801 21 12.0601V11.9401C21 11.6908 20.901 11.4517 20.7247 11.2754C20.5484 11.0991 20.3093 11.0001 20.06 11.0001Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M20.06 15.9999H3.94C3.6907 15.9999 3.4516 16.099 3.27532 16.2752C3.09904 16.4515 3 16.6906 3 16.9399V17.0599C3 17.5799 3.42 17.9999 3.94 17.9999H20.06C20.58 17.9999 21 17.5799 21 17.0599V16.9399C21 16.6906 20.901 16.4515 20.7247 16.2752C20.5484 16.099 20.3093 15.9999 20.06 15.9999Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M20.06 6H3.94C3.6907 6 3.4516 6.09904 3.27532 6.27532C3.09904 6.4516 3 6.6907 3 6.94V7.06C3 7.58 3.42 8 3.94 8H20.06C20.58 8 21 7.58 21 7.06V6.94C21 6.6907 20.901 6.4516 20.7247 6.27532C20.5484 6.09904 20.3093 6 20.06 6Z",fill:"currentColor"})]})}function V2(e){return(0,rh.jsxs)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:[(0,rh.jsx)("g",{clipPath:"url(#clip0_3784_10281)",children:(0,rh.jsx)("path",{d:"M20.739 11.3791L18.039 8.67909C17.955 8.59517 17.8554 8.52861 17.7458 8.48319C17.6361 8.43778 17.5186 8.4144 17.4 8.4144C17.2813 8.4144 17.1638 8.43778 17.0541 8.48319C16.9445 8.52861 16.8449 8.59517 16.761 8.67909C16.6771 8.763 16.6105 8.86262 16.5651 8.97226C16.5197 9.0819 16.4963 9.19941 16.4963 9.31808C16.4963 9.43676 16.5197 9.55427 16.5651 9.66391C16.6105 9.77355 16.6771 9.87317 16.761 9.95708L17.922 11.1001H12.9V6.0691L14.061 7.23909C14.1451 7.32246 14.2448 7.38843 14.3545 7.43322C14.4641 7.478 14.5815 7.50073 14.7 7.50009C14.8787 7.50113 15.0538 7.44891 15.2027 7.35009C15.3517 7.25127 15.4679 7.11032 15.5364 6.94523C15.605 6.78013 15.6228 6.59835 15.5876 6.42308C15.5525 6.24781 15.4659 6.08698 15.339 5.9611L12.639 3.26111C12.4705 3.09326 12.2423 2.99902 12.0045 2.99902C11.7666 2.99902 11.5385 3.09326 11.37 3.26111L8.66999 5.9611C8.58608 6.04442 8.5194 6.14346 8.47376 6.25255C8.42812 6.36164 8.40441 6.47866 8.404 6.59691C8.40358 6.71517 8.42646 6.83235 8.47132 6.94176C8.51619 7.05117 8.58217 7.15068 8.66549 7.23459C8.74882 7.31851 8.84785 7.38519 8.95695 7.43083C9.06604 7.47647 9.18306 7.50017 9.30131 7.50059C9.54014 7.50144 9.76952 7.40737 9.93899 7.23909L11.1 6.0781V11.1001H6.069L7.239 9.93908C7.40847 9.76961 7.50368 9.53975 7.50368 9.30008C7.50368 9.06041 7.40847 8.83056 7.239 8.66109C7.06953 8.49161 6.83967 8.39641 6.6 8.39641C6.36033 8.39641 6.13048 8.49161 5.961 8.66109L3.26101 11.3611C3.17764 11.4452 3.11167 11.5449 3.06689 11.6546C3.0221 11.7642 2.99938 11.8816 3.00002 12.0001C2.99933 12.1185 3.02203 12.2359 3.06682 12.3456C3.11161 12.4552 3.1776 12.555 3.26101 12.6391L5.961 15.3391C6.0451 15.4225 6.14483 15.4885 6.25449 15.5333C6.36414 15.578 6.48156 15.6007 6.6 15.6001C6.77896 15.6015 6.95429 15.5496 7.10354 15.4508C7.25279 15.3521 7.36918 15.211 7.43781 15.0458C7.50643 14.8805 7.52417 14.6985 7.48876 14.5231C7.45334 14.3476 7.36638 14.1868 7.239 14.0611L6.078 12.9001H11.1V17.9311L9.93899 16.7611C9.76952 16.5916 9.53966 16.4964 9.29999 16.4964C9.06032 16.4964 8.83047 16.5916 8.661 16.7611C8.49152 16.9305 8.39631 17.1604 8.39631 17.4001C8.39631 17.6397 8.49152 17.8696 8.661 18.0391L11.361 20.739C11.5297 20.9065 11.7578 21.0004 11.9955 21.0004C12.2332 21.0004 12.4612 20.9065 12.63 20.739L15.33 18.0391C15.4139 17.9551 15.4805 17.8555 15.5259 17.7459C15.5713 17.6362 15.5947 17.5187 15.5947 17.4001C15.5947 17.2814 15.5713 17.1639 15.5259 17.0542C15.4805 16.9446 15.4139 16.845 15.33 16.7611C15.2461 16.6771 15.1464 16.6106 15.0368 16.5652C14.9272 16.5198 14.8096 16.4964 14.691 16.4964C14.5723 16.4964 14.4548 16.5198 14.3452 16.5652C14.2355 16.6106 14.1359 16.6771 14.052 16.7611L12.9 17.9221V12.9001H17.931L16.761 14.0611C16.6558 14.166 16.5781 14.2952 16.5349 14.4374C16.4917 14.5795 16.4843 14.7301 16.5134 14.8758C16.5424 15.0215 16.607 15.1578 16.7013 15.2725C16.7957 15.3873 16.917 15.4769 17.0544 15.5335C17.164 15.5784 17.2815 15.6011 17.4 15.6001C17.5184 15.6008 17.6359 15.5782 17.7455 15.5334C17.8552 15.4886 17.9549 15.4226 18.039 15.3391L20.739 12.6391C20.8224 12.555 20.8884 12.4552 20.9331 12.3456C20.9779 12.2359 21.0006 12.1185 21 12.0001C20.9966 11.7671 20.9031 11.5445 20.739 11.3791Z",fill:"currentColor"})}),(0,rh.jsx)("defs",{children:(0,rh.jsx)("clipPath",{id:"clip0_3784_10281",children:(0,rh.jsx)("rect",{width:"24",height:"24",fill:"currentColor"})})})]})}function V3(e){return(0,rh.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",...e,children:[(0,rh.jsx)("path",{d:"M19.5398 5.08113C18.5372 4.08551 17.3458 3.30019 16.0356 2.77129C14.7253 2.24238 13.3226 1.98054 11.9098 2.00113C9.25763 1.9945 6.71146 3.04171 4.83141 4.91238C2.95135 6.78306 1.89143 9.32396 1.8848 11.9761C1.87817 14.6283 2.92538 17.1745 4.79605 19.0545C6.66673 20.9346 9.20763 21.9945 11.8598 22.0011C12.4313 22.0108 12.9898 21.8305 13.4477 21.4884C13.9057 21.1464 14.237 20.6619 14.3898 20.1111C14.4872 19.7134 14.4862 19.2979 14.3869 18.9006C14.2875 18.5033 14.0929 18.1362 13.8198 17.8311C13.7562 17.7594 13.7146 17.6709 13.7 17.5761C13.6854 17.4814 13.6984 17.3845 13.7374 17.2969C13.7765 17.2094 13.8399 17.1349 13.9201 17.0825C14.0003 17.03 14.0939 17.0018 14.1898 17.0011H15.8398C17.3927 17.0084 18.8909 16.4279 20.0336 15.3761C21.1762 14.3244 21.8786 12.8794 21.9998 11.3311C22.037 10.1767 21.838 9.02692 21.415 7.95218C20.992 6.87745 20.3539 5.90046 19.5398 5.08113ZM15.8798 15.0011H14.2298C13.7479 14.9984 13.2756 15.1355 12.8701 15.3959C12.4647 15.6563 12.1435 16.0288 11.9455 16.4681C11.7476 16.9075 11.6813 17.3948 11.7549 17.8711C11.8284 18.3473 12.0385 18.792 12.3598 19.1511C12.4224 19.2142 12.4666 19.2932 12.4877 19.3795C12.5088 19.4658 12.5061 19.5562 12.4798 19.6411C12.4298 19.8511 12.1998 19.9811 11.8898 20.0011C10.754 19.9869 9.63429 19.7309 8.60516 19.2502C7.57603 18.7695 6.66109 18.0751 5.92126 17.2132C5.18142 16.3513 4.63365 15.3417 4.31441 14.2516C3.99517 13.1615 3.91178 12.016 4.0698 10.8911C4.35496 9.00107 5.29935 7.27276 6.73593 6.01186C8.17251 4.75096 10.0087 4.03873 11.9198 4.00113H11.9998C13.1306 3.98632 14.253 4.19813 15.3007 4.62407C16.3483 5.05001 17.3001 5.68144 18.0998 6.48113C18.7238 7.10552 19.2141 7.85048 19.5407 8.67057C19.8674 9.49066 20.0236 10.3687 19.9998 11.2511C19.8963 12.2742 19.4184 13.2229 18.6579 13.9151C17.8974 14.6072 16.9081 14.994 15.8798 15.0011Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M11.9996 8.00025C12.3974 8.00025 12.7789 7.84222 13.0602 7.56091C13.3415 7.27961 13.4996 6.89808 13.4996 6.50025C13.4996 6.10243 13.3415 5.7209 13.0602 5.43959C12.7789 5.15829 12.3974 5.00025 11.9996 5.00025C11.6018 5.00025 11.2202 5.15829 10.9389 5.43959C10.6576 5.7209 10.4996 6.10243 10.4996 6.50025C10.4996 6.89808 10.6576 7.27961 10.9389 7.56091C11.2202 7.84222 11.6018 8.00025 11.9996 8.00025Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M15.2496 7.20116C15.079 7.29965 14.9294 7.43079 14.8094 7.58709C14.6895 7.74339 14.6014 7.92179 14.5504 8.1121C14.4994 8.30242 14.4864 8.50092 14.512 8.69627C14.5377 8.89162 14.6016 9.08 14.7001 9.25066C14.7986 9.42131 14.9298 9.57089 15.0861 9.69086C15.2424 9.81084 15.4208 9.89885 15.6111 9.94987C15.8014 10.0009 15.9999 10.0139 16.1952 9.98825C16.3906 9.96256 16.579 9.89865 16.7496 9.80016C17.0944 9.60125 17.3461 9.27352 17.4492 8.88907C17.5524 8.50462 17.4985 8.09494 17.2996 7.75016C17.1007 7.40538 16.773 7.15373 16.3885 7.05059C16.0041 6.94744 15.5944 7.00125 15.2496 7.20016V7.20116Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M8.74976 7.20016C8.57904 7.1018 8.39062 7.03803 8.19526 7.01249C7.99989 6.98695 7.80141 7.00014 7.61114 7.0513C7.42088 7.10247 7.24255 7.19061 7.08634 7.31069C6.93014 7.43077 6.79912 7.58045 6.70076 7.75116C6.6024 7.92188 6.53863 8.1103 6.51308 8.30567C6.48754 8.50103 6.50073 8.69951 6.5519 8.88978C6.60306 9.08005 6.6912 9.25837 6.81128 9.41458C6.93137 9.57078 7.08104 9.7018 7.25176 9.80016C7.59654 9.99881 8.00611 10.0524 8.39037 9.94903C8.77464 9.84569 9.10211 9.59394 9.30076 9.24916C9.4994 8.90438 9.55295 8.49481 9.44962 8.11055C9.34629 7.72629 9.09454 7.39881 8.74976 7.20016Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M6.15933 11.2603C5.9133 11.4264 5.7221 11.6618 5.60993 11.9366C5.49776 12.2115 5.46967 12.5135 5.52921 12.8043C5.58876 13.0951 5.73326 13.3617 5.94443 13.5704C6.1556 13.779 6.42393 13.9204 6.71546 13.9764C7.00698 14.0325 7.30858 14.0008 7.58208 13.8853C7.85557 13.7699 8.08866 13.5759 8.25183 13.3279C8.415 13.0799 8.50091 12.789 8.49868 12.4922C8.49646 12.1953 8.4062 11.9058 8.23933 11.6603C8.12971 11.4966 7.98873 11.3563 7.82454 11.2475C7.66035 11.1387 7.47622 11.0635 7.28279 11.0263C7.08936 10.9891 6.89047 10.9906 6.69763 11.0308C6.5048 11.0709 6.32183 11.1489 6.15933 11.2603Z",fill:"currentColor"})]})}function V4(e){return(0,rh.jsxs)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:[(0,rh.jsx)("path",{d:"M20 15.9998C20.5522 15.9998 20.9999 16.4476 21 16.9998V18.9998C20.9999 19.7952 20.6835 20.5584 20.1211 21.1209C19.5585 21.6833 18.7955 21.9998 18 21.9998H6C5.20446 21.9998 4.44149 21.6833 3.87891 21.1209C3.31646 20.5584 3.00012 19.7952 3 18.9998V16.9998C3.00009 16.4476 3.44777 15.9998 4 15.9998C4.55223 15.9998 4.99991 16.4476 5 16.9998V18.9998C5.00012 19.2648 5.1056 19.5194 5.29297 19.7068C5.48048 19.8942 5.7349 19.9998 6 19.9998H18C18.2651 19.9998 18.5195 19.8942 18.707 19.7068C18.8944 19.5194 18.9999 19.2648 19 18.9998V16.9998C19.0001 16.4476 19.4478 15.9998 20 15.9998Z",fill:"currentColor"}),(0,rh.jsx)("path",{d:"M11.3691 3.22437C11.7619 2.90402 12.3409 2.92662 12.707 3.29273L17.707 8.29273C18.0973 8.68328 18.0975 9.31635 17.707 9.7068C17.3166 10.097 16.6834 10.097 16.293 9.7068L13 6.41383V15.9998C12.9997 16.5518 12.552 16.9997 12 16.9998C11.4479 16.9998 11.0003 16.5518 11 15.9998V6.41383L7.70703 9.7068C7.31657 10.097 6.68343 10.097 6.29297 9.7068C5.90252 9.31635 5.90268 8.68328 6.29297 8.29273L11.293 3.29273L11.3691 3.22437Z",fill:"currentColor"})]})}function V9({className:e,...t}){return(0,rh.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",className:VP("size-6",e),...t,children:[(0,rh.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12.0625 1.70412C12.1393 1.70359 12.2136 1.7151 12.2842 1.73439C12.6576 1.76978 13.0261 1.88527 13.3604 2.08303L19.7012 5.84084L19.7031 5.84181C20.1036 6.08032 20.4348 6.42322 20.665 6.83498C20.8952 7.24671 21.0168 7.71415 21.0166 8.19142V8.19338L20.998 15.7403C20.9979 16.1352 20.9124 16.526 20.751 16.8848C20.7319 16.9557 20.7049 17.026 20.667 17.0928C20.6355 17.1482 20.5983 17.1987 20.5576 17.2442C20.3296 17.6 20.023 17.8979 19.6631 18.1133L13.2998 21.9072C12.4738 22.3996 11.4611 22.4004 10.6436 21.917L10.6416 21.916L4.30078 18.1582L4.29883 18.1572C3.91023 17.9258 3.58764 17.5957 3.3584 17.2002C3.35105 17.1885 3.34181 17.1773 3.33496 17.1651C3.32803 17.1526 3.32268 17.1387 3.31641 17.126C3.09976 16.7236 2.98517 16.2703 2.98535 15.8076V15.8057L3.00391 8.25588C3.00603 7.28279 3.51293 6.37777 4.33984 5.88478L10.7021 2.09181C11.0682 1.87369 11.4708 1.75231 11.877 1.72658C11.9365 1.71245 11.999 1.70462 12.0625 1.70412ZM5.16895 7.36818C4.87108 7.54583 4.6844 7.87497 4.68359 8.23635L4.66602 15.3838L9.45801 12.5254C9.51085 12.7718 9.60256 13.0142 9.73535 13.2442C9.90127 13.5315 10.1161 13.7727 10.3633 13.9639L5.49512 16.8662L11.499 20.4248C11.8036 20.6044 12.1738 20.6008 12.4707 20.4238L18.5107 16.8233L13.4971 13.877C13.9543 13.482 14.2391 12.9423 14.3242 12.3672L19.3193 15.3037L19.3379 8.21291L19.3369 8.21388C19.3369 8.03517 19.2923 7.85955 19.2061 7.7051C19.1196 7.55056 18.9947 7.42151 18.8447 7.33205L12.8887 3.80275L12.8535 9.73439C12.3304 9.51037 11.7366 9.46806 11.1738 9.63576L11.21 3.76662L5.16895 7.36818Z",fill:"currentColor"}),(0,rh.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.91641 8.60885C11.7928 7.52595 14.1912 8.16845 15.2748 10.0444C16.3582 11.9209 15.7156 14.3211 13.8393 15.4047C11.9627 16.4879 9.56339 15.8446 8.47989 13.9682C7.39671 12.0916 8.03987 9.69227 9.91641 8.60885ZM13.8031 10.894C13.189 9.83118 11.8293 9.46704 10.766 10.0805C9.7026 10.6945 9.33693 12.0551 9.95059 13.1186C10.5646 14.1821 11.9261 14.5469 12.9897 13.9331C14.0529 13.3189 14.4171 11.9575 13.8031 10.894Z",fill:"currentColor"})]})}let V5="var(--v-borders-medium)";function V8({className:e,variant:t="default",size:r="default",state:n="loading",role:i,"aria-live":a,"aria-label":s,...o}){switch(t){case"logo":{let t="sm"===r?4:5;return(0,rh.jsxs)("svg",{...o,role:i??"status","aria-live":a??"polite","aria-label":s??("success"===n?"Success":"error"===n?"Error":"Loading"),width:"93",height:"91",viewBox:"0 0 93 91",fill:"none",xmlns:"http://www.w3.org/2000/svg","data-slot":"spinner","data-size":r,"data-state":n,className:VP("spinner-logo shrink-0","sm"===r?"size-9":"size-22",e),children:[(0,rh.jsx)("g",{className:"spinner-logo__intro-shell",children:(0,rh.jsx)("path",{d:"M15.7495 62.7798L46.4936 45.0297M46.4936 45.0297L77.2661 62.5451M46.4936 45.0297L46.7111 9.62225M49.9213 79.4237L74.5719 65.1917C75.6436 64.5705 76.5344 63.6811 77.1541 62.6137C77.7738 61.5462 78.1003 60.3385 78.1007 59.1129L78.1729 30.7811C78.1734 29.5494 77.851 28.3427 77.2373 27.2798C76.6236 26.2169 75.7398 25.3343 74.6729 24.7189L50.1007 10.6155C47.926 9.3694 45.2455 9.37719 43.0689 10.6339L18.4183 24.8659C16.2385 26.1244 14.8946 28.4401 14.8895 30.9447L14.8173 59.2766C14.8168 60.5082 15.1392 61.7149 15.7529 62.7778C16.3666 63.8408 17.2504 64.7233 18.3173 65.3387L42.8895 79.4421C45.0642 80.6882 47.7447 80.6805 49.9213 79.4237Z",className:"spinner-logo__outline spinner-logo__outline--intro",vectorEffect:"sm"===r?void 0:"non-scaling-stroke"})}),(0,rh.jsx)("circle",{className:"spinner-logo__intro-orb",cx:"46.27",cy:"45.8",r:"11.18",fill:"white",stroke:V5,strokeWidth:t,strokeLinecap:"round",strokeLinejoin:"round"}),(0,rh.jsx)("circle",{className:"spinner-logo__result-ring",cx:"46.5",cy:"45.5",r:"33.46",fill:"white",stroke:V5,strokeWidth:t,strokeLinecap:"round",strokeLinejoin:"round"}),(0,rh.jsx)("g",{transform:"translate(27.786 31.4489)",children:(0,rh.jsx)("g",{className:"spinner-logo__result-glyph spinner-logo__result-glyph--success",children:(0,rh.jsx)("path",{d:"M13.6758 28.1023C13.3559 28.101 13.0397 28.0341 12.7467 27.9057C12.4537 27.7772 12.1902 27.59 11.9725 27.3557L0.632479 15.2923C0.208575 14.8406 -0.0185097 14.2389 0.00118164 13.6198C0.020873 13.0006 0.285727 12.4146 0.737479 11.9907C1.18923 11.5668 1.79088 11.3397 2.41006 11.3594C3.02924 11.3791 3.61524 11.6439 4.03915 12.0957L13.6525 22.339L33.2758 0.87233C33.475 0.624349 33.7227 0.419696 34.0038 0.270944C34.2849 0.122191 34.5935 0.0324784 34.9105 0.00731496C35.2276 -0.0178485 35.5464 0.0220682 35.8475 0.124615C36.1485 0.227162 36.4254 0.390174 36.6612 0.603637C36.897 0.8171 37.0866 1.07651 37.2185 1.36593C37.3503 1.65535 37.4216 1.96867 37.428 2.28665C37.4344 2.60463 37.3756 2.92056 37.2555 3.21502C37.1353 3.50949 36.9562 3.77627 36.7291 3.999L15.4025 27.3323C15.1868 27.5709 14.9242 27.7625 14.6311 27.895C14.338 28.0275 14.0208 28.0981 13.6991 28.1023H13.6758Z",fill:V5})})}),(0,rh.jsx)("g",{transform:"translate(32.4879 31.4885)",children:(0,rh.jsx)("g",{className:"spinner-logo__result-glyph spinner-logo__result-glyph--error",children:(0,rh.jsx)("path",{d:"M17.3045 14.0095L27.3378 3.99955C27.5554 3.78199 27.728 3.52371 27.8457 3.23946C27.9635 2.95521 28.0241 2.65055 28.0241 2.34288C28.0241 2.03521 27.9635 1.73055 27.8457 1.4463C27.728 1.16205 27.5554 0.903769 27.3378 0.686213C27.1203 0.468656 26.862 0.296082 26.5778 0.178341C26.2935 0.0606 25.9889 -4.58466e-09 25.6812 0C25.3735 4.58466e-09 25.0689 0.0606 24.7846 0.178341C24.5003 0.296082 24.2421 0.468656 24.0245 0.686213L14.0145 10.7195L4.00451 0.686213C3.56514 0.246838 2.96921 -4.62957e-09 2.34784 0C1.72647 4.62957e-09 1.13055 0.246838 0.691177 0.686213C0.251802 1.12559 0.0049634 1.72151 0.0049634 2.34288C0.00496339 2.96425 0.251802 3.56017 0.691177 3.99955L10.7245 14.0095L0.691177 24.0195C0.472196 24.2363 0.29836 24.4943 0.179723 24.7787C0.0610849 25.063 0 25.3681 0 25.6762C0 25.9843 0.0610849 26.2894 0.179723 26.5737C0.29836 26.8581 0.472196 27.1161 0.691177 27.3329C0.908091 27.5516 1.16616 27.7252 1.4505 27.8436C1.73484 27.9621 2.03982 28.0231 2.34784 28.0231C2.65587 28.0231 2.96085 27.9621 3.24519 27.8436C3.52953 27.7252 3.7876 27.5516 4.00451 27.3329L14.0145 17.2995L24.0245 27.3329C24.296 27.6078 24.6314 27.8111 25.0007 27.9245C25.3701 28.0379 25.7618 28.0579 26.1407 27.9828C26.5197 27.9077 26.8741 27.7397 27.1722 27.4939C27.4703 27.2481 27.7028 26.9322 27.8488 26.5745C28.0272 26.1459 28.0736 25.6738 27.9821 25.2187C27.8907 24.7636 27.6655 24.346 27.3355 24.0195L17.3045 14.0095Z",fill:V5})})})]})}case"default":return(0,rh.jsx)(V0,{...o,role:i??"status","aria-live":a??"polite","aria-label":s??"Loading","data-slot":"spinner",className:VP("size-4 animate-spin",e)});default:return t}}var V6=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,t)=>{let r=oi(`Primitive.${t}`),n=(0,ru.forwardRef)((e,n)=>{let{asChild:i,...a}=e;return"u">typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,rh.jsx)(i?r:t,{...a,ref:n})});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{}),V7="Progress",[We,Wt]=function(e,t=[]){let r=[],n=()=>{let t=r.map(e=>(0,ru.createContext)(e));return function(r){let n=r?.[e]||t;return(0,ru.useMemo)(()=>({[`__scope${e}`]:{...r,[e]:n}}),[r,n])}};return n.scopeName=e,[function(t,n){let i=(0,ru.createContext)(n),a=r.length;r=[...r,n];let s=t=>{let{scope:r,children:n,...s}=t,o=r?.[e]?.[a]||i,l=(0,ru.useMemo)(()=>s,Object.values(s));return(0,rh.jsx)(o.Provider,{value:l,children:n})};return s.displayName=t+"Provider",[s,function(r,s){let o=s?.[e]?.[a]||i,l=(0,ru.useContext)(o);if(l)return l;if(void 0!==n)return n;throw Error(`\`${r}\` must be used within \`${t}\``)}]},function(...e){let t=e[0];if(1===e.length)return t;let r=()=>{let r=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let n=r.reduce((t,{useScope:r,scopeName:n})=>{let i=r(e)[`__scope${n}`];return{...t,...i}},{});return(0,ru.useMemo)(()=>({[`__scope${t.scopeName}`]:n}),[n])}};return r.scopeName=t.scopeName,r}(n,...t)]}(V7),[Wr,Wn]=We(V7),Wi=(0,ru.forwardRef)((e,t)=>{var r,n;let{__scopeProgress:i,value:a=null,max:s,getValueLabel:o=Wo,...l}=e;(s||0===s)&&!Wu(s)&&console.error((r=`${s}`,`Invalid prop \`max\` of value \`${r}\` supplied to \`Progress\`. Only numbers greater than 0 are valid max values. Defaulting to \`100\`.`));let c=Wu(s)?s:100;null===a||Wd(a,c)||console.error((n=`${a}`,`Invalid prop \`value\` of value \`${n}\` supplied to \`Progress\`. The \`value\` prop must be:
7484
7491
  - a positive number
7485
7492
  - less than the value passed to \`max\` (or 100 if no \`max\` prop is set)
7486
7493
  - \`null\` or \`undefined\` if the progress is indeterminate.
7487
7494
 
7488
- Defaulting to \`null\`.`));let u=Wu(a,c)?a:null,d=Wl(u)?o(u,c):void 0;return(0,rh.jsx)(Wt,{scope:i,value:u,max:c,children:(0,rh.jsx)(V8.div,{"aria-valuemax":c,"aria-valuemin":0,"aria-valuenow":Wl(u)?u:void 0,"aria-valuetext":d,role:"progressbar","data-state":Wo(u,c),"data-value":u??void 0,"data-max":c,...l,ref:t})})});Wn.displayName=V6;var Wi="ProgressIndicator",Wa=(0,ru.forwardRef)((e,t)=>{let{__scopeProgress:r,...n}=e,i=Wr(Wi,r);return(0,rh.jsx)(V8.div,{"data-state":Wo(i.value,i.max),"data-value":i.value??void 0,"data-max":i.max,...n,ref:t})});function Ws(e,t){return`${Math.round(e/t*100)}%`}function Wo(e,t){return null==e?"indeterminate":e===t?"complete":"loading"}function Wl(e){return"number"==typeof e}function Wc(e){return Wl(e)&&!isNaN(e)&&e>0}function Wu(e,t){return Wl(e)&&!isNaN(e)&&e<=t&&e>=0}function Wd({className:e,value:t,max:r=100,...n}){let i=r>0?r:100,a="number"==typeof t?Math.min(Math.max(t/i*100,0),100):0;return(0,rh.jsx)(Wn,{"data-slot":"progress",className:V_("relative h-2 w-full overflow-hidden rounded-full bg-primary/20",e),value:t,max:i,...n,children:(0,rh.jsx)(Wa,{"data-slot":"progress-indicator",className:"h-full bg-primary transition-[width]",style:{width:`${a}%`}})})}Wa.displayName=Wi;let Wh="inset-0 h-svh min-w-full max-w-none translate-x-0 translate-y-0 rounded-none border-none bg-transparent p-0 shadow-none sm:p-0 sm:max-w-none",Wp=(0,ru.createContext)(null),WA=(0,ru.createContext)(null),Wf=(0,ru.createContext)(null),Wg=(0,ru.createContext)(null),Wm=(0,ru.createContext)(null),Wv=(0,ru.createContext)(null),Wb=(0,ru.createContext)(null);function Wy(e,t){let r=(0,ru.use)(e);if(!r)throw Error(`${t} must be used within a RoomViewerProvider`);return r}function Ww(){return Wy(Wp,"useRoomViewerMetadata")}function Wx(){return Wy(Wf,"useRoomViewerRooms")}function WC(){return Wy(Wg,"useRoomViewerResource")}function WE(){return Wy(Wm,"useRoomViewerSceneState")}function WS(){return Wy(Wv,"useRoomViewerWallResourceControls")}let WI=new dR,WM=WI.getDevice(),WB=WI.getOS(),Wk="iOS"===WB.name,WT="Android"===WB.name,WR="mobile"===WM.type;function WD({variant:e,open:t,portalContainer:r,showDialogCloseButton:n=!1,onOpenChange:i,onTryAgain:a,onCancel:s}){let{t:o}=sr(),l=e?o("custom-interior-processing"===e?"floor.error.processingBody":"viewer-load-failed"===e?"floor.error.loadBody":`accessError.${e}`):"";return(0,rh.jsx)(VN,{open:t,onOpenChange:i,children:(0,rh.jsxs)(VU,{portalContainer:r,showCloseButton:!1,className:"w-full max-w-85 gap-4 rounded-2xl p-6 text-center sm:max-w-85 sm:p-6",onInteractOutside:e=>{e.preventDefault()},children:[(0,rh.jsxs)("div",{className:"grid gap-1",children:[(0,rh.jsx)(Vj,{children:o("floor.error.title")}),(0,rh.jsx)(VG,{className:"typo-base-14 font-medium text-text-base",children:l})]}),(0,rh.jsxs)("div",{className:"grid gap-2",children:[a&&(0,rh.jsxs)(VL,{variant:"contrast",onClick:a,children:[(0,rh.jsx)(VX,{"aria-hidden":"true"}),o("floor.error.tryAgain")]}),s&&(0,rh.jsx)(VL,{variant:"outline",onClick:s,children:o("floor.error.cancel")}),n&&(0,rh.jsx)(VF,{asChild:!0,children:(0,rh.jsx)(VL,{variant:"outline",children:o("close")})})]})]})})}function W_({...e}){return(0,rh.jsx)(pA,{"data-slot":"select",...e})}function WP({...e}){return(0,rh.jsx)(pv,{"data-slot":"select-value",...e})}function WL({className:e,size:t="default",children:r,...n}){return(0,rh.jsxs)(pg,{"data-slot":"select-trigger","data-size":t,className:V_("flex w-fit items-center justify-between gap-2 whitespace-nowrap rounded-md border bg-background-white shadow-sm outline-none transition-colors cursor-pointer","border-border-medium","text-text-dark","hover:border-border-dark","focus-visible:border-border-dark","aria-invalid:border-border-red","disabled:cursor-not-allowed disabled:border-border-medium disabled:bg-background-base disabled:opacity-40","data-[size=default]:h-11 data-[size=default]:px-2 data-[size=default]:py-2.5 data-[size=default]:typo-base-16","data-[size=md]:h-9 data-[size=md]:px-2 data-[size=md]:py-2 data-[size=md]:typo-base-14","data-[size=sm]:h-[1.875rem] data-[size=sm]:px-2 data-[size=sm]:typo-base-12","*:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2","[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=size-])]:size-6 [&_svg:not([class*=text-])]:text-text-dark",e),...n,children:[r,(0,rh.jsx)(pb,{asChild:!0,children:(0,rh.jsx)(VJ,{className:"size-6"})})]})}function WN({className:e,children:t,position:r="item-aligned",align:n="center",portalContainer:i,...a}){return(0,rh.jsx)(py,{container:i,children:(0,rh.jsxs)(px,{"data-slot":"select-content",className:V_("relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-xl border bg-background-white text-text-dark shadow-md","border-border-medium","data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2","popper"===r&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:r,align:n,...a,children:[(0,rh.jsx)(WF,{}),(0,rh.jsx)(pD,{className:V_("p-1","popper"===r&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:t}),(0,rh.jsx)(WQ,{})]})})}function WO({className:e,children:t,...r}){return(0,rh.jsxs)(pU,{"data-slot":"select-item",className:V_("relative flex w-full cursor-pointer select-none items-center gap-2 rounded-md py-2.5 pr-8 pl-3 outline-hidden","typo-base-16 text-text-sub","focus:bg-background-base focus:text-text-dark","data-[disabled]:pointer-events-none data-[disabled]:opacity-50","[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=size-])]:size-6 [&_svg:not([class*=text-])]:text-text-dark","*:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",e),...r,children:[(0,rh.jsx)("span",{"data-slot":"select-item-indicator",className:"absolute right-2 flex size-6 items-center justify-center",children:(0,rh.jsx)(pG,{children:(0,rh.jsx)(Vq,{className:"size-5"})})}),(0,rh.jsx)(pH,{children:t})]})}function WF({className:e,...t}){return(0,rh.jsx)(pW,{"data-slot":"select-scroll-up-button",className:V_("flex cursor-default items-center justify-center py-1",e),...t,children:(0,rh.jsx)(c5,{className:"size-4"})})}function WQ({className:e,...t}){return(0,rh.jsx)(pK,{"data-slot":"select-scroll-down-button",className:V_("flex cursor-default items-center justify-center py-1",e),...t,children:(0,rh.jsx)(c8,{className:"size-4"})})}let WU=/^[a-z][a-z\d+.-]*:/i;function Wz(e,t="m"){switch(t){case"cm":return e/100;case"in":return .0254*e;case"m":return e}}function WH(e,t){switch(t){case"cm":return 100*e;case"in":return e/.0254}}let Wj="vizbl-rug:";function WG(e){if(!e?.startsWith(Wj))return null;try{let t=JSON.parse(e.slice(Wj.length));if("string"!=typeof t.size)return null;return{size:t.size,shape:"round"===t.shape?"round":"rect"}}catch{return null}}function WV(e){if(!e.tinuuid||!e.materials?.[0])return null;let t=WG(e.description);return t?{tinuuid:e.tinuuid,size:t.size,shape:t.shape}:null}function WW({className:e,...t}){return(0,rh.jsx)(p1,{"data-slot":"label",className:V_("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",e),...t})}function Wq({className:e,orientation:t="horizontal",decorative:r=!0,...n}){return(0,rh.jsx)(p4,{"data-slot":"separator",decorative:r,orientation:t,className:V_("bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",e),...n})}function WK({className:e,...t}){return(0,rh.jsx)("div",{"data-slot":"field-group",className:V_("group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 [&>[data-slot=field-group]]:gap-4",e),...t})}let WY=ls("group/field flex w-full gap-3 data-[invalid=true]:text-destructive",{variants:{orientation:{vertical:["flex-col [&>*]:w-full [&>.sr-only]:w-auto"],horizontal:["flex-row items-center","[&>[data-slot=field-label]]:flex-auto","has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px"],responsive:["flex-col [&>*]:w-full [&>.sr-only]:w-auto @md/field-group:flex-row @md/field-group:items-center @md/field-group:[&>*]:w-auto","@md/field-group:[&>[data-slot=field-label]]:flex-auto","@md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px"]}},defaultVariants:{orientation:"vertical"}});function WJ({className:e,orientation:t="vertical",...r}){return(0,rh.jsx)("div",{role:"group","data-slot":"field","data-orientation":t,className:V_(WY({orientation:t}),e),...r})}function WX({className:e,...t}){return(0,rh.jsx)(WW,{"data-slot":"field-label",className:V_("group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50","has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border [&>*]:data-[slot=field]:p-4","has-data-[state=checked]:bg-primary/5 has-data-[state=checked]:border-primary dark:has-data-[state=checked]:bg-primary/10",e),...t})}function WZ({className:e,...t}){return(0,rh.jsx)("div",{"data-slot":"field-label",className:V_("flex w-fit items-center gap-2 text-sm leading-snug font-medium group-data-[disabled=true]/field:opacity-50",e),...t})}function W$({...e}){return(0,rh.jsx)(At,{"data-slot":"popover",...e})}function W0({...e}){return(0,rh.jsx)(Ai,{"data-slot":"popover-trigger",...e})}function W1({className:e,align:t="center",sideOffset:r=4,portalContainer:n,...i}){return(0,rh.jsx)(Al,{container:n,children:(0,rh.jsx)(Au,{"data-slot":"popover-content",align:t,sideOffset:r,className:V_("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",e),...i})})}function W2({className:e,defaultValue:t,value:r,min:n=0,max:i=100,variant:a="default","aria-label":s,"aria-labelledby":o,...l}){let c=(0,ru.useMemo)(()=>Array.isArray(r)?r:Array.isArray(t)?t:[n],[r,t,n]);return(0,rh.jsxs)(AB,{"data-slot":"slider",defaultValue:t,value:r,min:n,max:i,"data-variant":a,"aria-label":s,"aria-labelledby":o,className:V_("relative flex w-full touch-none cursor-pointer items-center select-none data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col",e),...l,children:[(0,rh.jsx)(AL,{"data-slot":"slider-track",className:V_("relative grow overflow-hidden rounded-full data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5","editor"===a?"bg-border-light data-[orientation=horizontal]:h-0.5":"bg-muted data-[orientation=horizontal]:h-1.5"),children:(0,rh.jsx)(AO,{"data-slot":"slider-range",className:V_("absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full","editor"===a?"bg-background-blue":"bg-primary")})}),Array.from({length:c.length},(e,t)=>(0,rh.jsx)(AQ,{"data-slot":"slider-thumb","aria-label":s,"aria-labelledby":o,className:V_("ring-ring/50 block shrink-0 rounded-full border bg-white transition-[color,box-shadow] focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50","editor"===a?"size-3 border-background-blue shadow-none hover:ring-2 focus-visible:ring-2":"size-4 border-primary shadow-sm hover:ring-4 focus-visible:ring-4")},t))]})}let W3="u"<typeof window;function W4(e,{defaultValue:t=!1,initializeWithValue:r=!0}={}){let[n,i]=(0,ru.useState)(()=>{if(r)return W3?t:window.matchMedia(e).matches;return t});return(0,ru.useEffect)(()=>{let t=window.matchMedia(e),r=()=>{i(t.matches)};return r(),t.addEventListener("change",r),()=>{t.removeEventListener("change",r)}},[e]),n}var W9=JSON.parse('{"version":1,"image":{"width":1152,"height":768,"fileName":"bathroom.jpg"},"camera":{"fovYDeg":46.95,"fx":884.1691,"fy":589.446,"cx":255.9992,"cy":256.0003,"net":512,"frame":"+X right, +Y down, +Z forward; meters; OpenCV"},"planes":[{"id":1,"kind":"floor","polygon3D":[[-4.9139,1.1239,0.1328],[1.7293,1.1239,-1.9012],[4.8937,0.9661,8.4344],[-1.7494,0.9661,10.4683]],"polygon2D":[[-73044.5,7868],[69379.5,20259],[1730.3,485.3],[243.5,465.6]],"pixelCount":64473},{"id":2,"kind":"wall","polygon3D":[[-1.8438,5.8702,6.4128],[-0.1895,5.8702,7.1854],[-0.1834,-6.7435,7.1724],[-1.8377,-6.7435,6.3998]],"polygon2D":[[4,1193.4],[523.5,1106.3],[525.1,-447.3],[4.7,-547.7]],"pixelCount":46912},{"id":3,"kind":"wall","polygon3D":[[-0.3441,3.5388,7.4548],[1.1166,3.5388,3.9579],[1.1131,-4.5581,3.9565],[-0.3475,-4.5581,7.4534]],"polygon2D":[[484.2,803.7],[1137.2,1174.5],[1135.7,-634.6],[483.2,-156.7]],"pixelCount":18435},{"id":4,"kind":"wall","polygon3D":[[-2.9664,8.8209,12.276],[0.4037,8.8209,2.9966],[-0.5173,-6.6906,2.6621],[-3.8874,-6.6906,11.9415]],"polygon2D":[[95.3,1019.3],[844,2986.7],[189.4,-1838.2],[-71.6,-111.4]],"pixelCount":303}],"planeIds":{"width":512,"height":512,"dataPng":"data:image/png;base64,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"},"shading":{"width":128,"height":128,"neutral":128,"dataPng":"data:image/png;base64,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"}}'),W5=JSON.parse('{"version":1,"image":{"width":1248,"height":832,"fileName":"bedroom.jpg"},"camera":{"fovYDeg":46.84,"fx":886.546,"fy":591.0306,"cx":256.0001,"cy":255.9998,"net":512,"frame":"+X right, +Y down, +Z forward; meters; OpenCV"},"planes":[{"id":1,"kind":"floor","polygon3D":[[-4.0513,1.1899,-1.3067],[2.5725,1.1899,-2.0753],[3.87,0.1831,9.1068],[-2.7538,0.1831,9.8754]],"polygon2D":[[-174467.9,23273.1],[111806.3,23273.1],[1542.3,435.3],[21.4,433.8]],"pixelCount":101427},{"id":2,"kind":"wall","polygon3D":[[0.2754,3.5068,7.4975],[1.8879,3.5068,6.156],[1.4729,-6.0368,5.6572],[-0.1396,-6.0368,6.9987]],"polygon2D":[[703.4,865.2],[1286.7,963.1],[1186.6,-608.9],[580.9,-412.4]],"pixelCount":45487},{"id":3,"kind":"wall","polygon3D":[[-1.6906,3.9065,5.5869],[-0.1653,3.9065,7.3877],[0.198,-6.2752,7.08],[-1.3272,-6.2752,5.2792]],"polygon2D":[[-29.9,1087.5],[575.6,923.9],[684.4,-435.3],[80.7,-725.6]],"pixelCount":24698}],"planeIds":{"width":512,"height":512,"dataPng":"data:image/png;base64,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"},"shading":{"width":128,"height":128,"neutral":128,"dataPng":"data:image/png;base64,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"}}'),W8=JSON.parse('{"version":1,"image":{"width":1248,"height":832,"fileName":"entryway.jpg"},"camera":{"fovYDeg":46.86,"fx":886.1516,"fy":590.7677,"cx":255.9999,"cy":255.9997,"net":512,"frame":"+X right, +Y down, +Z forward; meters; OpenCV"},"planes":[{"id":1,"kind":"floor","polygon3D":[[-8.6435,1.1708,2.4254],[1.2106,1.1708,-3.7261],[8.3191,0.9709,7.661],[-1.535,0.9709,13.8125]],"polygon2D":[[-7073.7,879.4],[52923.7,22895.4],[2969.5,537.7],[384,483.5]],"pixelCount":69575},{"id":2,"kind":"wall","polygon3D":[[-0.9123,3.856,3.1077],[-0.7274,3.856,6.2012],[-0.6851,-4.4714,6.1987],[-0.8699,-4.4714,3.1052]],"polygon2D":[[-10.1,1607.1],[370.6,1012.9],[385.3,-276.5],[18.9,-966.4]],"pixelCount":47763},{"id":3,"kind":"wall","polygon3D":[[-0.888,4.3857,6.582],[1.1141,4.3857,6.5081],[1.1088,-5.5794,6.3649],[-0.8933,-5.5794,6.4388]],"polygon2D":[[332.6,1055.7],[993.8,1062.9],[1000.3,-425.5],[324.3,-415.9]],"pixelCount":41609},{"id":4,"kind":"wall","polygon3D":[[1.2093,4.5168,6.7312],[1.1406,4.5168,3.9536],[1.1241,-5.6604,3.954],[1.1929,-5.6604,6.7316]],"polygon2D":[[1012.1,1060.2],[1247.1,1512.8],[1238.1,-958.3],[1006.8,-391.2]],"pixelCount":34711},{"id":5,"kind":"wall","polygon3D":[[-0.9999,3.3374,7.7388],[0.4764,3.3374,7.6913],[0.4746,-4.56,7.6329],[-1.0018,-4.56,7.6804]],"polygon2D":[[344.9,830],[757.8,832.6],[758.3,-157.5],[342.3,-154]],"pixelCount":5560}],"planeIds":{"width":512,"height":512,"dataPng":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAIyUlEQVR42u3dQW7jSBQFwV8F3v/K5QNY8EaCITIj9oNBs9l86aJsr5k5AwCkbJcAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAABAAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAIAAcAkAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAAAgAlwAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAACAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAEAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAgABwCQBAAAAAAgAAEAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAAABAAAIAABAAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAAAQAACAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAAAgAAEAAAgAAAAAQAACAAAAABAAAIAADg+1wuAU+wYn/e468cEAAYbgDGKwCMPwACAOMPwHgFgOEHwAkAxh9AAIDxBxivAMDwAzgBAOMPIADA+AMIADD+AOMzABh+AJwAYPwBEAAYfwDGKwAMPwBOADD+AAgAjD8AAgDjD8D4DACGHwAnABh/AAQAxh+A8QoAww/gBMAlwPgDCACMPwACAOPPtzkuATA+A4DhB8AJAMbfV/8AAgDjD8B4BYDhB8AJgPEHQABg/AEQABh/AMZnADD8ADgBwPgDIAAw/gCMVwAYfgCcAGD8ARAAGH8ABADGH4DxGQAMPwBOADD+AAgAjP/4VcAAAiA2/MZf+AF86pniCwsPf5hXJw3uu8bf9Xrj9Gk5yXICgPEH8DwTAPjHAuC5Nr4NEP9IAM+YX/9vrwScAGD8Ac86BAAAIgABML7nG8C3OSMARACA0wAEAADPGWUR4AcB4R8CMN0fFGWcnAAA4HMBCAAAnIQiAAAQAQgAALwSQAAA4DQAAQCACEAAACACBAAA+FyAAAAApwECAAAQAACAAAAABAAAIAAAAAEAAOM7AQQAADf7vvt1wwgQCAIAAKcEAsAlcKMCeLYKANygAH6EsADA+AN43goA3IwAnrsCADchgFcCAgDjD+BZLABwwwF4JgsAjD+AVwICAOMP4DktANxUAHheCwA3EwBeCQgA4w+AZ7gAUI8AiAAB4GYBwHNdALhJADx3newKAOMPgGe9AHBDAOCZLwDcCAAkXwkIAOMPQHAHBIDxByC4BwLA+AMQ3AUBYPwBCH4uQAAYfwCCWyEAjD8Awc0QAMYfgOArAQFg/AEI7ogAMP4ABPdEAPh1vgAEI0AA+KofgOAXmALA+AMQ3BsBYPwBCO6OADD+AJ7pwVcCAsD4AxAkAIw/AALA+AOAADD+ACAAjD8APGOrtgsKAL3N2i4kANxnoz61XZcLCwD3jIDjBMD4A9D7BW7rzf/2GH4AuK/jBMD4AzBOPASA8QfAK+5kABh/AERALACMPwBeCcQCwPgDIARiAWD8AeDvTdzGHwB6rwS28QeA3mnANv4A0IuAbfwBoBcB2/gDQM82/gAgAIw/AARchh8AnAAYfwAQAMYfAASA8QcAAWD8AUAAGH8AEADGHwAEgPEHAAFg/AFAABh/ACgGgPEHgFgAGH8AiAWA8QeAWAAYfwCYzm8DNPwAEDsBMP4AEAsA4w8AsQAw/gAQCwDjDwCxADD+ABALAOMPALEAMP4AEAsA4w8AsQAw/gAQCwDjDwCxADD+ABALAOMPALEAMP4AMJ3fBmj4ASB2AmD8ASAWAMYfAGIBYPwBIBYAxh8AYgFg/AEgFgDGHwBiAWD8ASAWAMYfAGIBYPwBIBYAxh8AYgFg/AEgFgDGHwBiAWD8ASAWAMYfAHwIEAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAEAAAgAAAAAQAACAAAQAAAAAIAABAAAIAAAAAEAADwv34AFhsYCVC0TM8AAAAASUVORK5CYII="},"shading":{"width":128,"height":128,"neutral":128,"dataPng":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAIAAABMXPacAAAACXBIWXMAAAPoAAAD6AG1e1JrAAAgAElEQVR42t2dabdsVXWG628ZHSMOjckIQ6MkRlDEFsVegyIYEAIqKii9NEJCK52A9CJEWmlCJ9IoCILNH8lz93PrZZ659t7nXO6HDDM/1KhTp2rXrvmu2c811+aCCy648MILfYQuuuiiiy+++MeFLrnkkv+c6L8muuyyy6644oorr7zyqquuuvrqq3/yk59cc801d9xxx913333XXXf99wL9x18/nXfeeeeee+75558vry7a0sUThVeQzy/YST+a6PwtnTcRF9zkHbMAcLlLL700AMD9yy+/fATgxhtv/PlE991337333vv/D4DKshUM5D6PFwxUAcil9gHQlv8SAFn+DQC4f+2111533XW33XbbPffcAwb3TvT/CQD5tSsG4f6FW1rh/rwEzMpUAAj3oasmcvnD/euvv/6GG25AEd15551gABINg79e7p911lnnnHPOrhhE81y4kyoAYpAr7ACgSUAESgCgBgASUJc/3P/pT3/6s5/97NZbb7399tubHNx///2/+tWv/k/Y95NV4iewjK7c0hVbunyiyyaCFUsYwFBZF4URTi5hsCgBjfsNgEiArK/6J8sfMwAAt9xyC6b4gQce+OWW5P7DDz/80EMPHTxDf7pKN0zE/Vy3JdbHQQLADx8xkGAfrIu2CMfl5LoWWpSA0QDsBQB+PACw/PGF4D5Mh/UYZJ6H+w8++CB/HijH79hJfMUBAbCOwR4B4OfDmREDGArTXK8xpRcVqkIw6wJ1CRgd0FkANABRQQHggS258Efu83iQAKxjMAvACgZ7BwAmjBjAt/B65H6TgwbAuVvatE/Ocl8A4v9cPVG1wPz4m266iSUPr+G+vB65z/NHHnnkIAHAxqDoljC4fqIRAG71IAEYMYjmUBSqDp8FYN4NrTDOml8BaA6oP6ABIJdl+hL3oQMyyLMA4PJib5YkwFtqAMxicKAAwJPYAy0wBCtXABCDmIH5OGDJAa0xsPqnAhAXKACgdlz469yXDhIAhODmm29u3PdR7jdTLAAVA+X4QAGAM7wiB2Ho6I+uA9A80V0AqAagOqANAF0gAMD9l9fw96GJ4D6PgNG4L0IHCQBCwJdW7jczEAzkfjAQhgAgzWIgDAahwiBb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"}}'),W6=JSON.parse('{"version":1,"image":{"width":1152,"height":768,"fileName":"living-room.jpg"},"camera":{"fovYDeg":46.91,"fx":885.0345,"fy":590.023,"cx":255.9995,"cy":256.0006,"net":512,"frame":"+X right, +Y down, +Z forward; meters; OpenCV"},"planes":[{"id":1,"kind":"floor","polygon3D":[[-9.0471,1.1441,1.2581],[1.4149,1.1441,-4.3437],[8.6732,0.813,9.2121],[-1.7888,0.813,14.8138]],"polygon2D":[[-13743.9,1188.8],[56926.9,20635.4],[2450.8,462.1],[335.5,432.6]],"pixelCount":88236},{"id":2,"kind":"wall","polygon3D":[[-2.2646,3.6145,7.9916],[0.9936,3.6145,8.0919],[0.9975,-6.0145,7.964],[-2.2607,-6.0145,7.8638]],"polygon2D":[[11.7,784.3],[820.5,779.3],[825.4,-284.4],[3.5,-292.9]],"pixelCount":48816},{"id":3,"kind":"wall","polygon3D":[[-1.6686,3.4823,6.2591],[1.6181,3.4823,6.3756],[1.6324,-5.6636,5.9733],[-1.6544,-5.6636,5.8569]],"polygon2D":[[45.1,876.4],[1081.4,867.4],[1120.2,-455.1],[13.5,-471.8]],"pixelCount":28145},{"id":4,"kind":"wall","polygon3D":[[1.2612,4.5356,9.3158],[1.5173,4.5356,5.2171],[1.4349,-6.4437,5.2119],[1.1788,-6.4437,9.3107]],"polygon2D":[[845.6,814.9],[1155.1,1153.4],[1124.2,-710.2],[828.1,-228.5]],"pixelCount":20909}],"planeIds":{"width":512,"height":512,"dataPng":"data:image/png;base64,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"},"shading":{"width":128,"height":128,"neutral":128,"dataPng":"data:image/png;base64,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"}}'),W7=JSON.parse('{"version":1,"image":{"width":2000,"height":1300,"fileName":"room-example-11.jpg"},"camera":{"fovYDeg":46.86,"fx":908.9087,"fy":590.7906,"cx":255.9987,"cy":256.0001,"net":512,"frame":"+X right, +Y down, +Z forward; meters; OpenCV"},"planes":[{"id":1,"kind":"floor","polygon3D":[[1.2985,1.1722,5.5054],[-1.6272,1.1722,4.846],[-0.6999,0.9798,0.7309],[2.2259,0.9798,1.3902]],"polygon2D":[[1837.4,969.4],[-192.2,1012.9],[-2399.9,2660.9],[6684.7,1707.2]],"pixelCount":21724},{"id":2,"kind":"wall","polygon3D":[[-0.9505,3.4707,3.555],[0.6996,3.4707,4.0983],[0.6109,-4.2935,4.3676],[-1.0392,-4.2935,3.8243]],"polygon2D":[[50.7,2114.5],[1606,1920.3],[1496.6,-824.6],[35.2,-1034.1]],"pixelCount":135151},{"id":3,"kind":"wall","polygon3D":[[0.7451,2.7204,4.5579],[1.0313,2.7204,3.7229],[1.0502,-4.07,3.7293],[0.7639,-4.07,4.5644]],"polygon2D":[[1580.4,1545.3],[1983.6,1746.1],[1999.8,-987.1],[1594.2,-687.6]],"pixelCount":28490}],"planeIds":{"width":512,"height":512,"dataPng":"data:image/png;base64,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"},"shading":{"width":128,"height":128,"neutral":128,"dataPng":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAIAAABMXPacAAAACXBIWXMAAAPoAAAD6AG1e1JrAAAgAElEQVR42t2dabM9RZGHzyfypREy4zgG4QjMDG6gosiqCLigICKiCAjI5gIygLgMoDOy7/u+KbKKiriGn2We0w83yZtVXafv/UPMhXxxok+f7j7dv19VZlZWVvbqmmuuufbaa6+77rqfT/KLSf5nkv/tyS9/+cvY9rBfLJBy2M+3Szmm+2v+ybu9rpFrG/Hp+PzvLfnZz37mJ/LTLfnJT37y4x//+Oqrr/7Rj3501VVXXXnllf81yeWXX/7DH/7w0ksv/f73v/+9733v4osvZuPcc889/fTTL7vsMg7m4jfccAN3fv3113vwD37wA5C57777br/99htvvPHWW2/ltvmJywLdo48++tBDD91zzz0cc/fdd/N11aIvFgX0VoKAJTSUYwq+3esU6Ls0KOVrMBEb12xJpiFEAuQATK+c5IorrpADMAVrYIWA7373u2x/61vfOuusszjGc/0JoPnkdO7klltu4Sv/zjG33XYbN8z+u+6668knn3zggQdghcvy07333vvYY4+t4hkKWGP0uxxk+NqvLYLl4IVctv2gJaDbMwoHmYboBPYA5IpJ7ASATicAaPvBOeecQyfgGM769re/fcEFF3znO9+5+eabAQTcQZ/9/BGfdKk77riDJn/nnXfS3vnkdK5DT+ITAp544olVbv4BQYGe/uWnGwMCxjLoHHOH+bU99+czMiCg2xWkIRRREBD9QMUiBxAA4pdccomqhuPPOOMM0L/oooto6WDNfXI1DuYvuEn+kYZPq/feQO/CCy/kYAi4//77af6csormP4e+0KPprk8SBGRjsJCDwdd8qS43c1wu56NYiMwBgGoGwhJEJwhLcN555wEiKgjc+fX888/nmqh7LgUsXAT0ORh8UTU0eZ6IA/gLegC9hF/B7YlJOABUV8XwikLgrhT0cz/ocuDXLjFzO3fH5UYOBgqq0CAHxRSHJVAR0eoBl1aPFoIGDgABTuS2uQi3xHW44COPPHL3JNwVV/DiDz/8MHw8/fTTbHD8r371K87lpzUBBbXc8EU/ZEBAxq71nQZu1RIC8mEDhdb6Tgs7hHoJmLI7FFooFNGlk3z961/nE4Y4kgM4mJvhdLQQoPN500030dhp4OznAHil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"}}'),qe=JSON.parse('{"version":1,"image":{"width":2000,"height":1300,"fileName":"room-example-12.jpg"},"camera":{"fovYDeg":46.91,"fx":907.7026,"fy":590.0067,"cx":255.9981,"cy":256.0012,"net":512,"frame":"+X right, +Y down, +Z forward; meters; OpenCV"},"planes":[{"id":1,"kind":"floor","polygon3D":[[2.672,1.316,6.1305],[-2.0106,1.316,6.4245],[-2.3631,0.9879,0.8107],[2.3196,0.9879,0.5167]],"polygon2D":[[2545.4,971.6],[-109.7,956.9],[-9335.6,2475.7],[16917.9,3514.4]],"pixelCount":38744},{"id":2,"kind":"wall","polygon3D":[[-1.3052,3.3024,4.7978],[0.8197,3.3024,5.4447],[0.7214,-5.1365,5.7676],[-1.4035,-5.1365,5.1207]],"polygon2D":[[35.4,1681.1],[1533.8,1558.6],[1443.5,-684.1],[28.2,-852.7]],"pixelCount":115187},{"id":3,"kind":"wall","polygon3D":[[0.8416,-1.0331,5.8907],[1.269,-1.0331,4.6406],[1.3241,-2.633,4.6594],[0.8967,-2.633,5.9096]],"polygon2D":[[1506.6,387.3],[1969.6,316.5],[2007.6,-196.6],[1538,-17.5]],"pixelCount":6152},{"id":4,"kind":"wall","polygon3D":[[0.6327,2.4819,4.523],[1.048,2.4819,4.4645],[1.0956,-4.2751,4.8023],[0.6803,-4.2751,4.8608]],"polygon2D":[[1496,1472],[1832.3,1482.8],[1808.9,-683.6],[1496.2,-667.6]],"pixelCount":1290}],"planeIds":{"width":512,"height":512,"dataPng":"data:image/png;base64,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"},"shading":{"width":128,"height":128,"neutral":128,"dataPng":"data:image/png;base64,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"}}'),qt=JSON.parse('{"version":1,"image":{"width":2000,"height":1300,"fileName":"room-example-13.jpg"},"camera":{"fovYDeg":46.89,"fx":908.1038,"fy":590.2675,"cx":255.9987,"cy":256.0003,"net":512,"frame":"+X right, +Y down, +Z forward; meters; OpenCV"},"planes":[{"id":1,"kind":"floor","polygon3D":[[3.2792,1.3056,9.6119],[-2.7571,1.3056,10.1592],[-3.8115,0.6999,-1.4706],[2.2248,0.6999,-2.0179]],"polygon2D":[[2210.2,853.6],[37.3,842.6],[-269409.8,21629.6],[158842.3,21629.6]],"pixelCount":31534},{"id":2,"kind":"wall","polygon3D":[[-0.5743,3.32,3.4235],[0.7368,3.32,2.7668],[0.8568,-3.7711,3.0063],[-0.4542,-3.7711,3.6631]],"polygon2D":[[405,2103.4],[1944.7,2448.4],[2011,-1230],[560.1,-892.9]],"pixelCount":125424},{"id":3,"kind":"wall","polygon3D":[[-1.3321,-1.8048,5.0373],[-0.8869,-1.8048,5.8802],[-0.903,-2.8694,5.8887],[-1.3482,-2.8694,5.0458]],"polygon2D":[[61.9,113],[465,190],[456.1,-80.3],[52.2,-202.3]],"pixelCount":1336}],"planeIds":{"width":512,"height":512,"dataPng":"data:image/png;base64,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"},"shading":{"width":128,"height":128,"neutral":128,"dataPng":"data:image/png;base64,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"}}'),qr=JSON.parse('{"version":1,"image":{"width":2000,"height":1300,"fileName":"room-example-14.jpg"},"camera":{"fovYDeg":46.85,"fx":909.0403,"fy":590.8762,"cx":255.9978,"cy":256.0005,"net":512,"frame":"+X right, +Y down, +Z forward; meters; OpenCV"},"planes":[{"id":1,"kind":"floor","polygon3D":[[-2.94,1.12,1.7007],[2.0573,1.12,0.6517],[2.9124,1.076,4.7249],[-2.085,1.076,5.7739]],"polygon2D":[[-5138.6,1638],[12210.4,3228.5],[3188.8,991.7],[-282.3,929.6]],"pixelCount":39164},{"id":2,"kind":"wall","polygon3D":[[-1.149,3.2799,4.3039],[0.9715,3.2799,4.4413],[0.9888,-4.3113,4.174],[-1.1317,-4.3113,4.0366]],"polygon2D":[[52,1793.3],[1776.7,1758],[1841.2,-899.6],[4.5,-952.3]],"pixelCount":124984},{"id":3,"kind":"wall","polygon3D":[[1.0927,4.0707,4.5124],[1.1069,4.0707,3.8596],[1.0596,-4.7237,3.8586],[1.0454,-4.7237,4.5114]],"polygon2D":[[1859.9,2003.4],[2018.4,2232.3],[1975.1,-1186.6],[1822.8,-920.9]],"pixelCount":12478},{"id":4,"kind":"wall","polygon3D":[[-0.9813,6.4779,3.8224],[-0.9379,6.4779,8.338],[-1.1517,-5.9419,8.3401],[-1.1951,-5.9419,3.8244]],"polygon2D":[[88.4,3192.5],[600.6,1815.6],[509.6,-418.9],[-109.7,-1680.9]],"pixelCount":1820}],"planeIds":{"width":512,"height":512,"dataPng":"data:image/png;base64,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"},"shading":{"width":128,"height":128,"neutral":128,"dataPng":"data:image/png;base64,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"}}'),qn=JSON.parse('{"version":1,"image":{"width":2000,"height":1300,"fileName":"room-example-15.jpg"},"camera":{"fovYDeg":46.78,"fx":910.4678,"fy":591.8041,"cx":256.0003,"cy":256.0005,"net":512,"frame":"+X right, +Y down, +Z forward; meters; OpenCV"},"planes":[{"id":1,"kind":"floor","polygon3D":[[-3.567,1.4458,5.8989],[-2.171,1.4458,0.6437],[3.5896,1.349,2.174],[2.1936,1.349,7.4292]],"polygon2D":[[-1150.6,1018.3],[-10994.8,4024.9],[6872.4,1582.4],[2050.1,922.8]],"pixelCount":29996},{"id":2,"kind":"wall","polygon3D":[[-1.0442,4.4985,3.8051],[0.3624,4.4985,4.7905],[0.3446,-4.8826,4.816],[-1.062,-4.8826,3.8305]],"polygon2D":[[24,2426.5],[1269,2061],[1254.5,-873.4],[14,-1265.3]],"pixelCount":125241},{"id":3,"kind":"wall","polygon3D":[[0.5026,4.5778,5.3354],[1.2253,4.5778,4.2733],[1.123,-5.197,4.2037],[0.4002,-5.197,5.2657]],"polygon2D":[[1335,1939.3],[2019.8,2259.7],[1950.1,-1207.7],[1270.3,-833]],"pixelCount":63743},{"id":4,"kind":"wall","polygon3D":[[-0.7092,2.1349,4.0964],[0.4431,2.1349,2.7453],[0.4197,0.1215,2.7254],[-0.7326,0.1215,4.0764]],"polygon2D":[[384.3,1433.1],[1574,1818.5],[1547.7,717],[360.8,694.8]],"pixelCount":1277}],"planeIds":{"width":512,"height":512,"dataPng":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAIAAAB7GkOtAAANNklEQVR4nO3d7W7iShqF0WDn/u+4zGiCDh0lxBgwro+91q+WTrrjzJD3cZWxOU3T9AENWJal9iHQlnmeax/C4Ex/oEWm/wE+j/gmAJsZ/YcRAJpg/wej/3i2gIAmmP7HEwCgPtO/CgEAKjP9axEARjN9qX0UbGX6V+T3hKFcR78MdMH0r8u7gBjH74k/TZP3FzXI3G+EUyRGsHK+bx3QGtO/HVYAdO/uiL9+gdVAXUZ/awSAvj10gn/5Yhk4ntHfJgGgY89t73z/W2LwbkZ/ywSAXu2yuW9N8D5Gf/tOLpHRiIem8Ptet2LwOqO/FwJAQ7YM32NesTLwNNO/IwJAc24O34ovVDHYyOjvjgDQqO9jt4VXqQysMPo7JQDwGCX4zujvmgDAM2TA6B+AAMCrAmNg+o9BAGAfIRkw+kciALC/IWNg9I9HAOBdhsmA0T8qAYAjdBoDo39spj8cocdPKDP9h2cFAHW0vCYw+kMIANTUWgaM/igCAK2oGwOjP5AAQHoJjP5YAgC5MTD6w5n+EPr2IdMfKwCIWxMY/VyY/pC1JjD9ubICgIgFgbnPb6Y/jL8gMP25yQoARl4TGP2s+Fz7j0CHnNWxkRcKQCgBAAglAAChBAAglAAAhBIAGNbpdKp9CDRNAABCCQBAKAEACCUAAKEEACCUAACEEgCAUAIAEEoAAEIJAEAoAQAIJQAAoQQAIJQAAIQSAIBQAgAQSgAAQgkAQCgBAAglAAChBAAglAAAhBIAgFACABBKAABCCQBAKAEACCUAAKEEACCUAACEEgCAUAIAEEoAAEIJAEAoAQAIJQAAoQQAIJQAAIQSAIBQAgAQSgAAQgkAQCgBAAglAAChBAAglAAAhBIAgFACABBKAABCCQBAKAEACCUAAKEEAIZ1Pp9rHwJNEwCAUAIAEEoAAEIJAAzrdDrVPgSaJgAAoQQAIJQAAIQSAIBQAgAQSgAAQgkAQCgBAAglAAChBAAglAAAhBIAgFACABBKAABCCQBAKAEACCUAAKEEACCUAACEEgAY1vl8rn0INE0AYFg+FJ51AgAQSgAAQgkAQCgBAAglAAChBAAglAAAhBIAgFACABBKAABCCQBAKAGAMXkQEHcJAEAoAQAIJQAwJh8GwF0CABBKAABCCQBAKAEACCUAAKEEACCUAACEEgAYllsBWCcAAKEEACCUAACEEgCAUAIAEEoAYFg+E4Z1AgAQSgAAQgkAQCgBAAglAAChBAAglAAAhBIAgFACABBKAABCCQBAKAEACCUAAKEEACCUAACEEgCAUAIAEEoAAEIJAEAoAQAIJQAAoQQAIJQAAIQSAIBQAgAQSgAAQgkAQCgBAAglAAChdgvA8mWvfw2Ad7MCAAglAACh9gnAdfPHLhBAL6wAAEIJAEAoAQAIJQAAoQQAIJQAAIQSAIBQAgAQav8AuBcMoAtWAACh9g/ANIkKQAcMa4BQFQLgkwMAWvB52Hf6MfSXZbFZBDBsANbP9DUAYMC3gdrnAWjcW07AjX6A9tmBgWGdz+fah0DTKgfAWgGgFisAgFACABCqfgDsAgGEBgCA3ABYBACEBgBgMKWUj+a1EgCLAGCYWV9Kmef5o3mtBABgjNP58t8Xt78IOO5poAA9Kqtz/PvJfvsT/wcrACBa+bLyX9f/7s0/X5LQ/i6QAAC5yk7n7N2d+zcXANeBgTYH8XzrXL6jvf4OAgDwonme/xrH2zdzrp7bGmp/5+dKAICUbf1+T9UjAmAXCHZ0Op0+gu14Uj/k6X9zAQB40fcR/PudOdsHfQlYLjQXAIsAoPo9XC+e/q+/tbQdbgQDBr8U/Nxl4add/tl994K2H+pD37e5FYBFAPBud2d0ebwNu+/+X5YRjy4mHvri/QMwTS1GBeB15Y/x2unTIN4yrF9vgEUA8Iq678aZO3kvkGsAAP/8PoW/e3bfy7j/7fN6rr3L1o39H4Be/JvXdl2AkexyYj4/fvrf0YLgXSfsLgMALSt7XK1936w/5mLytO/MNbWhHefz+SPb+oAuezz7oWs/z9NNcGAkR27IlE4+CvjKNVuAZzS7+799vXIjAI0sAryhCNjFi3O53Jqnjcz6FxmyAK/q9CJBowFw+g/s6OkT9vL36X8vj/yscyfwNE2P7iaZ+0D7yn9z/9qVTneEpkam8PTl+O8LhNh9Rs99Dv2GngXUxdBv5Kp447r4v5JwKx8Zn+mz1q+xeTGYqEx69TKGafeX9foguGz1+P2BA4R/KPxb923md+7/HLZM+bcCePdQNvQBmvL51tFs6APjXQmY+7/8e2E3BiCU6Q/EeeUUfn7/6f9hK4zPWvd8AXRnPmo0//WN9r0+7DOBgUTzQPcEPJ0lW0BAqPnBudngtd/5y9N/XQCAXHN7M/1IAgDQTSq+H8brhyQAAKH2CYC3AEGDfCg866wAgGhzG3s7VQgAQCgBAAhdJQgAQCgBANLNf5/gv3inVeMEACCUAACEEgCAj5v7PANv/uwZAJ8qQxR3PjIGgxvgY5hHQz9EAABCqyAAQLoy+qD/iwAA0crq9B+7DQIA5Cob5vvADRAAIFTZPNlHbYAAAInKoDP9IQIAEBoMnwgGEMoKAIZ1Op1qHwJNEwCAUAIAEOqz9gFATzz3kJEIAGxi9DMeAYA15j4DEwC4zehneF7icIPpTwKvcoBQAgAQSgAAQgkAQCgBALhvnueP4ewTAG+ZAOiOwQ0kmkc8o3+UAACEcicwMIj3fWjXXGm5sPEnKqU8d4QCADRtyM9i3OUH//4F1z8/VAIBANrVyPQvbRzG9kPdmAHXAABGU77c/TIBAAjNwP4BcE8AQBcZcA0AYHy/GzDPs7N1gFACABBKAAASlVIEACDRbtcAlmXZ5d8B4DD7rwDEAKB9toAAcgkAQCgBAAglAAChBACGdT6fax8CTRMAgFACABBqnwB4BDRAdwxugFACABBKAABCCQBAKAEACOVx0PCTd7URwgsdIJQAAIQSAIBQAgAQav8AuIAG0AXDGiCUAACEEgCAUAIAEEoAAELtHwCPhQDoghUAQCgBAAglAAChBAAglAAAhBIAgFACABBKAABCeRw0QCjDGiCUAACEEgCAUAIAEEoAAEIJAEAoAQAIJQAAoQQAIJQAAIQSAIBQAgAQSgAAQgkAQCgBAAglAAChBAB+Wr7UPgp4u8/3fwvo0rUBPuSOUQkA3KEEjEoAYKvv+0JiwAAEAJ5hWcAAvHYBQgkAQCgBANo1z3PtQxiZawBAHw0opdQ+ltEIANDlakAPXicA8JJlWbwRqAorg9cJANA3K4OnCQCM7Pc0HP6yqpXBdgIAw7r5SLvrWLxbgh8DtLtyWBncJQAQqpTyfUTenY/by9Gmh37YEAIAY9ryROvn5uCPcvRIDC4EAHjYZWj2noGL5GsGAgA8aaQMfPz9gwwcBgEAXtL7tYHkJYIAAPvIKcEwPRAAYGffJ+OWGHR6VXnuf2UgAEDN6wT9Ts+r3z9dLz+UAAB1docG3jKaO1kcCABwnMYHYtriYKpy+wlApvnLRwPmed5nBTBNk7kPPKGRaTj2yuCv/5FtAQHUd5nRO2ZgS1n3CYDTf4A3Te2NVXhiLWUFAND3e4qe3kYTAIDQ6yX7vwvI56MCdMGwBgglADAma3Hu8hIBamrqztg0AgAQSgDgVe6DoVMCABBKAABCCQBAKAEAasp8GmgjBAAglADAsJxcs04AAEJ5GijsYFmW1h694O4EKgSgwd8EOGzg1nrxG/c8wQoAujTGxHeVYrQAOP0n2ftWwGNMfJpiBQCNMvF5NwG4wy8hhy0CvNg4mABANSY+dQkAHMfEpykCAPsz6OmCd+wAhBIAoA43AVQnAAChBAAglAAAhBIAgFACABBKAABCCQBAKB8IA9RRSrn8wQ0BtQw+qd2RD+0rX2ofRSLPAgL6XhBc/qJlxBNOu2zX/DjRHmkLyBoCark702+uG5RgOysAoFErp/YrW0YuLWwnAEDTfgz07VcLbA3dJQBAH567UGxBsEIAgAhK8JsAAFmU4EoAgFAlvgQCAKQrqSUQAIDQEggAQGgJBAAgtAQCABBaAgEACC3BOE9tAzhS6f8p1lYAAKELAgEACC2BAACElkAAAEJLIAAAoSUQAIDQEggAQGgJBAAgtAQCABBaAgEACC2BAACElsCzgABCHzpkBQAQuiAQAIDQEggAQGgJBAAgtAT7B2CaXFgG6KAE+wdgWRYNAGi/BLaA1izLUvsQAN5VAgH4ydAHQkogAP9n6AOBJcgNgKEPJCulZAXA0Ae4Gj8Ahj5AUAAMfYCgABj6AEEBMPQBggJg6AMEBcDQBwgKgKEPEBQAQx8gKACGPkBQAAx9gKAAGPoAQQEw9AGyAmDuA7TPZzcChHp+BeA0HyAoAIY+QFAADH2AoAAY+gBBATD0AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgI9//gcK3NyWhQmG4AAAAABJRU5ErkJggg=="},"shading":{"width":128,"height":128,"neutral":128,"dataPng":"data:image/png;base64,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"}}'),qi=JSON.parse('{"version":1,"image":{"width":2000,"height":1300,"fileName":"room.jpg"},"camera":{"fovYDeg":46.86,"fx":909.32,"fy":591.06,"cx":256,"cy":256,"net":512,"frame":"+X right, +Y down, +Z forward; meters; OpenCV"},"planes":[{"kind":"floor","polygon3D":[[1.2985,1.1722,5.5054],[-1.6272,1.1722,4.846],[-0.6999,0.9798,0.7309],[2.2259,0.9798,1.3902]],"polygon2D":[[1837.4,969.4],[-192.2,1012.9],[-2399.9,2660.9],[6684.7,1707.2]],"pixelCount":21724,"id":1},{"kind":"wall","polygon3D":[[-0.9505,3.4707,3.555],[0.6996,3.4707,4.0983],[0.6109,-4.2935,4.3676],[-1.0392,-4.2935,3.8243]],"polygon2D":[[50.7,2114.5],[1606,1920.3],[1496.6,-824.6],[35.2,-1034.1]],"pixelCount":135151,"id":2},{"kind":"wall","polygon3D":[[0.7451,2.7204,4.5579],[1.0313,2.7204,3.7229],[1.0502,-4.07,3.7293],[0.7639,-4.07,4.5644]],"polygon2D":[[1580.4,1545.3],[1983.6,1746.1],[1999.8,-987.1],[1594.2,-687.6]],"pixelCount":28490,"id":3}],"planeIds":{"width":512,"height":512,"dataPng":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAIAAAB7GkOtAAAACXBIWXMAAAPoAAAD6AG1e1JrAAAP1klEQVR42u3d627bOBCAUdl+/3feBQoEbWzLNEVKM5xzfi3abJvqMl+s63YHSOjBYZvNCBAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQDQAAEAEAABABAAAQAQAAEABAABAAQAAQAEAAEABAABAAQAAQAEAAEABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAEAAEABAABAAQAAQAEAAEABAABAAQAAQAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAwAQXAEAAEABAABAAQAAQAEAAEABAABAAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAEAAEABAABAAQAAQAEAAEABAABAAQAAQAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAEAAEABAABAAQAAQAEAAEABAABAAQAAQAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAAXg9rJ8IACAA68/6lwQAEIBac18AAO51Zr0AAOQLwDaNAAACsPigFwCAiAHYriMAgACUG/0CAAiAAAgAIAACIACAAAiAAAACIAACAAiAAAgAIAAC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"},"shading":{"width":128,"height":128,"neutral":128,"dataPng":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAIAAABMXPacAAAACXBIWXMAAAPoAAAD6AG1e1JrAAAgAElEQVR42t2dabM9RZGHzyfypREy4zgG4QjMDG6gosiqCLigICKiCAjI5gIygLgMoDOy7/u+KbKKiriGn2We0w83yZtVXafv/UPMhXxxok+f7j7dv19VZlZWVvbqmmuuufbaa6+77rqfT/KLSf5nkv/tyS9/+cvY9rBfLJBy2M+3Szmm+2v+ybu9rpFrG/Hp+PzvLfnZz37mJ/LTLfnJT37y4x//+Oqrr/7Rj3501VVXXXnllf81yeWXX/7DH/7w0ksv/f73v/+9733v4osvZuPcc889/fTTL7vsMg7m4jfccAN3fv3113vwD37wA5C57777br/99htvvPHWW2/ltvmJywLdo48++tBDD91zzz0cc/fdd/N11aIvFgX0VoKAJTSUYwq+3esU6Ls0KOVrMBEb12xJpiFEAuQATK+c5IorrpADMAVrYIWA7373u2x/61vfOuusszjGc/0JoPnkdO7klltu4Sv/zjG33XYbN8z+u+6668knn3zggQdghcvy07333vvYY4+t4hkKWGP0uxxk+NqvLYLl4IVctv2gJaDbMwoHmYboBPYA5IpJ7ASATicAaPvBOeecQyfgGM769re/fcEFF3znO9+5+eabAQTcQZ/9/BGfdKk77riDJn/nnXfS3vnkdK5DT+ITAp544olVbv4BQYGe/uWnGwMCxjLoHHOH+bU99+czMiCg2xWkIRRREBD9QMUiBxAA4pdccomqhuPPOOMM0L/oooto6WDNfXI1DuYvuEn+kYZPq/feQO/CCy/kYAi4//77af6csormP4e+0KPprk8SBGRjsJCDwdd8qS43c1wu56NYiMwBgGoGwhJEJwhLcN555wEiKgjc+fX888/nmqh7LgUsXAT0ORh8UTU0eZ6IA/gLegC9hF/B7YlJOABUV8XwikLgrhT0cz/ocuDXLjFzO3fH5UYOBgqq0CAHxRSHJVAR0eoBl1aPFoIGDgABTuS2uQi3xHW44COPPHL3JNwVV/DiDz/8MHw8/fTTbHD8r371K87lpzUBBbXc8EU/ZEBAxq71nQZu1RIC8mEDhdb6Tgs7hHoJmLI7FFooFNGlk3z961/nE4Y4kgM4mJvhdLQQoPN500030dhp4OznAHil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"}}');let qa={arizo:{PRIVACY_URL:"https://arizo.ru/privacy-policy/",POSTER_URL:"https://viewer.arizo.ru/poster/app/index.html",ROOM_URL:"https://integrations.arizo.ru/room-viewer",TERMS_URL:"https://arizo.ru/terms-of-use/"},vizbl:{PRIVACY_URL:"https://vizbl.com/legal/privacy-policy",POSTER_URL:"https://viewer.vizbl.com/poster/app/index.html",ROOM_URL:"https://integrations.vizbl.com/room-viewer",TERMS_URL:"https://vizbl.com/legal/terms-of-use"}};function qs(e){return new URL(`public/room-example/${e}`,"https://cdn.neurodyn.ai/LG8wPakWNRI1O7ssxPuAcY61sOV3nsofvg4tHjAoumHFWIFoX9u0yeIk9K19I8_J55pBcLct6_ytKI9fCz4/").toString()}function qo(e={}){return{...qi,image:{...qi.image,...e}}}let ql=[{id:"room-example-11",name:"Room Example 11",image_url:qs("room-example-11.jpg"),scene:W7},{id:"room-example-12",name:"Room Example 12",image_url:qs("room-example-12.jpg"),scene:qe},{id:"room-example-13",name:"Room Example 13",image_url:qs("room-example-13.jpg"),scene:qt},{id:"room-example-14",name:"Room Example 14",image_url:qs("room-example-14.jpg"),scene:qr},{id:"room-example-15",name:"Room Example 15",image_url:qs("room-example-15.jpg"),scene:qn}],qc=[{id:"carpet-bathroom",name:"Bathroom",image_url:qs("bathroom.jpg"),scene:W9},{id:"carpet-bedroom",name:"Bedroom",image_url:qs("bedroom.jpg"),scene:W5},{id:"carpet-entryway",name:"Entryway",image_url:qs("entryway.jpg"),scene:W8},{id:"carpet-living-room",name:"Living Room",image_url:qs("living-room.jpg"),scene:W6}],qu="RcSd3KphTyq_JQEjNCqKQA,gu0109ftQmS-UQkwcW010Q,nOfGLIZcRVeU93wOkHWSbg,ozzH5I2kQMW20ao-33C86A,DBA4wR-zT92vjtuOk9varg".split(",").map(e=>e.trim()).filter(Boolean);function qd(e,t){return!!(t?.uuid&&e.uuid===t.uuid||t?.tinuuid&&e.tinuuid===t.tinuuid)}function qh(e){return e.kit?.uuid??e.uuid??e.tinuuid??""}function qp(e){let t=WG(e.description),r=e.name?.trim(),n=t?` — ${t.size}`:null;if(r&&n&&r.endsWith(n)){let e=r.slice(0,-n.length).trim();if(e)return`rug-name:${e}`}return`object:${qh(e)}`}function qA(e,t){let r=new Set;return e.filter(e=>{let n=t(e);return!r.has(n)&&(r.add(n),!0)})}function qf(e,t){return qA(e.filter(e=>!!(e.tinuuid&&e.materials?.[0]&&!qd(e,t))),qh)}function qg(e,t){return qA(e.filter(e=>{let r;return!!(e.tinuuid&&e.materials?.[0]&&"string"==typeof(r=e.materials?.[0]?.native?.glbUrl)&&r.trim().length>0&&!qd(e,t))}),qp)}function qm(e){return e.hid??""}function qv({includeViewedObject:e=!1}={}){var t;let{material:r,tinuuid:n,viewedObject:i,setMaterial:a,setTinuuid:s,apiKey:o,baseURL:l,source:c,widgetSession:u,setAccessError:d,setLoadError:h}=WC(),{type:p}=Ww(),A=r?qm(r):"",f=i?.owner?.uuid,{data:g,error:m,isFetchingNextPage:v,fetchNextPage:b,hasNextPage:y,isLoading:w}=s4({queryKey:["room-viewer","public-objects",{apiKey:(t={apiKey:o,baseURL:l,source:c,resourceType:p}).apiKey??null,ownerUuid:f??null,resourceType:t.resourceType??null,source:t.source}],enabled:!!f,queryFn:({pageParam:e,signal:t})=>{if(!f)throw Error("Owner uuid is required.");return VT(f,e,{apiKey:o,baseURL:l,signal:t,source:c,widgetSession:u,resourceType:p})},initialPageParam:1,getNextPageParam:(e,t,r)=>void 0!==e.pages_count?r<e.pages_count?r+1:void 0:e.objs?.length?r+1:void 0,getPreviousPageParam:(e,t,r)=>r>1?r-1:void 0},s9,void 0),x=(0,ru.useMemo)(()=>g?.pages.flatMap(e=>e.objs??[])??[],[g]),C=(0,ru.useMemo)(()=>{let t="rugs"===p?qg:qf;if(e)return t([...i?.tinuuid&&i.materials?.[0]?[i]:[],...x],null);return t(x,i)},[x,e,p,i]),E=(0,ru.useMemo)(()=>C.flatMap(e=>{if(!e.tinuuid)return[];let t="rugs"===p?e.materials?.slice(0,1):e.materials;return t?.map(t=>{let r=qm(t);return r&&e.tinuuid?{materialId:r,material:t,tinuuid:e.tinuuid}:null}).filter(e=>null!==e)??[]}),[C,p]),S=C.find(e=>e.tinuuid===n),I=C.find(e=>e.tinuuid&&e.materials?.[0]);return(0,ru.useEffect)(()=>{let e=G0(m);e?d(e):m&&h("viewer-load-failed")},[m,d,h]),(0,ru.useEffect)(()=>{g&&0===C.length&&y&&!v&&b()},[g,b,y,v,C.length]),(0,ru.useEffect)(()=>{if(null!==r)return;let e=S??I,t=e?.materials?.[0];e&&t&&e.tinuuid&&(a(t),s(e.tinuuid))},[I,S,r,a,s]),{fetchNextMaterialsPage:(0,ru.useCallback)(()=>{!1===y||v||b()},[b,y,v]),hasNextPage:y,isFetchingNextPage:v,isLoading:w,materialItems:E,selectMaterial:(0,ru.useCallback)(e=>{let t=C.find(t=>t.materials?.some(t=>qm(t)===e)),r=t?.materials?.find(t=>qm(t)===e);return!!t&&!!r&&!!t.tinuuid&&(a(r),s(t.tinuuid),!0)},[C,a,s]),selectedMaterialId:A}}function qb({className:e,...t}){let{material:r,options:n,selectMaterial:i}=function(){let{material:e,setMaterial:t,setTinuuid:r,apiKey:n,baseURL:i,source:a,widgetSession:s}=WC(),o=function({queries:e,...t},r){let n=rA(void 0),i=ru.useContext(s$),a=ru.useContext(sY),s=ru.useMemo(()=>e.map(e=>{let t=n.defaultQueryOptions(e);return t._optimisticResults=i?"isRestoring":"optimistic",t}),[e,n,i]);s.forEach(e=>{s0(e),sJ(e,a)}),sX(a);let[o]=ru.useState(()=>new s8(n,s,t)),[l,c,u]=o.getOptimisticResult(s,t.combine),d=!i&&!1!==t.subscribed;ru.useSyncExternalStore(ru.useCallback(e=>d?o.subscribe(tZ.batchCalls(e)):tT,[o,d]),()=>o.getCurrentResult(),()=>o.getCurrentResult()),ru.useEffect(()=>{o.setQueries(s,t)},[s,t,o]);let h=l.some((e,t)=>s2(s[t],e))?l.flatMap((e,t)=>{let r=s[t];if(r){let t=new sG(n,r);if(s2(r,e))return s3(r,t,a);s1(e,i)&&s3(r,t,a)}return[]}):[];if(h.length>0)throw Promise.all(h);let p=l.find((e,t)=>{let r=s[t];return r&&sZ({result:e,errorResetBoundary:a,throwOnError:r.throwOnError,query:n.getQueryCache().get(r.queryHash),suspense:r.suspense})});if(p?.error)throw p.error;return c(u())}({queries:qu.map(e=>({queryKey:VB(e,{apiKey:n,baseURL:i,source:a}),queryFn:({signal:t})=>Vk(e,{apiKey:n,baseURL:i,signal:t,source:a,widgetSession:s})}))});(0,ru.useEffect)(()=>{let n=o[0]?.data,i=n?.materials?.[0],a=n?.tinuuid;null===e&&i&&a&&(t(i),r(a))},[e,o,t,r]);let l=(0,ru.useMemo)(()=>o.flatMap(e=>{let t=e.data,r=t?.materials?.[0];return t?.tinuuid&&r?.hid?[{material:r,materialId:r.hid,tinuuid:t.tinuuid}]:[]}),[o]),c=(0,ru.useCallback)(e=>{let n=l.find(t=>t.materialId===e);return!!n&&(t(n.material),r(n.tinuuid),!0)},[l,t,r]);return{material:e,options:l,selectMaterial:c}}(),{containerRef:a}=WE(),{t:s}=sr();return(0,rh.jsxs)(WJ,{className:V_("w-fit",e),...t,children:[(0,rh.jsx)(WX,{className:"text-xs text-text-sub font-medium",children:s("material")}),(0,rh.jsxs)(W_,{value:r?.hid??void 0,onValueChange:i,children:[(0,rh.jsx)(WL,{className:"w-[145px]",size:"md",children:(0,rh.jsxs)(WP,{placeholder:s("chooseMaterial"),children:[(0,rh.jsx)("div",{className:"size-5 rounded-full border border-border-light",style:{backgroundColor:`#${r?.miniature?.color?.hex}`}}),r?.miniature?.color?.name]})}),(0,rh.jsx)(WN,{portalContainer:a,children:n.map(({material:e,materialId:t,tinuuid:r})=>(0,rh.jsxs)(WO,{value:t,children:[(0,rh.jsx)("div",{className:"size-5 rounded-full border border-border-light",style:{backgroundColor:`#${e?.miniature?.color?.hex}`}}),e.miniature?.color?.name]},`${r}-${t}`))})]})]})}let qy=(0,ru.createContext)(null),qw=(0,ru.createContext)(null);function qx({value:e,defaultValue:t,onValueChange:r,...n}){let[i,a]=(0,ru.useState)(t),s=e??i,o=(0,ru.useMemo)(()=>({value:s}),[s]),l=(0,ru.useCallback)(t=>{r?.(t),void 0===e&&a(t)},[r,e]);return(0,rh.jsx)(qy,{value:o,children:(0,rh.jsx)(gs,{"data-slot":"tabs",value:s,onValueChange:l,...n})})}let qC=ls("cursor-pointer group inline-flex items-center justify-center shrink-0 whitespace-nowrap outline-none transition-colors relative z-10 text-text-base [&_svg]:text-icons-normal [&_svg]:transition-colors hover:text-text-dark hover:[&_svg]:text-icons-dark active:bg-background-base-3 active:text-text-dark active:[&_svg]:text-icons-dark data-[state=active]:bg-background-white data-[state=active]:text-text-dark data-[state=active]:[&_svg]:text-icons-dark disabled:pointer-events-none disabled:opacity-50 focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",{variants:{size:{default:"h-7 rounded-lg px-2 typo-button-normal active:rounded-lg data-[state=active]:rounded-lg [&_svg]:size-4",sm:"h-6 rounded-[4px] px-2 typo-button-small active:rounded-lg data-[state=active]:rounded-lg [&_svg]:size-4",lg:"h-9 rounded-lg px-3 typo-button-big active:rounded-lg data-[state=active]:rounded-lg [&_svg]:size-6"}},defaultVariants:{size:"default"}}),qE=ls("relative inline-flex items-center rounded-xl bg-background-base-2",{variants:{size:{default:"p-1",sm:"p-[3px]",lg:"p-1"}},defaultVariants:{size:"default"}});function qS({className:e,children:t,size:r="default",...n}){let i=(0,ru.use)(qy),a=(0,ru.useRef)(null),s=(0,ru.useRef)(new Map),o=(0,ru.useRef)(null),l=(0,ru.useRef)(i?.value),c=(0,ru.useRef)(null),u=(0,ru.useCallback)(()=>{c.current=null;let e=o.current;if(!e)return;let t=l.current;if(!t){e.style.opacity="0";return}let r=a.current,n=s.current.get(t);if(!r||!n){e.style.opacity="0";return}let i=Math.round(n.offsetLeft),u=Math.round(n.offsetTop),d=Math.round(n.offsetWidth),h=Math.round(n.offsetHeight);e.style.transform=`translate3d(${i}px, ${u}px, 0)`,e.style.width=`${d}px`,e.style.height=`${h}px`,e.style.opacity="1"},[]),d=(0,ru.useCallback)(()=>{null===c.current&&(c.current=requestAnimationFrame(()=>{u()}))},[u]),h=(0,ru.useCallback)((e,t)=>{t?s.current.set(e,t):s.current.delete(e),d()},[d]);(0,ru.useLayoutEffect)(()=>{l.current=i?.value,null!==c.current&&(cancelAnimationFrame(c.current),c.current=null),u()},[i?.value,u]),(0,ru.useEffect)(()=>{let e=a.current;if(!e||"u"<typeof ResizeObserver)return;let t=new ResizeObserver(()=>d());t.observe(e);let r=i?.value;if(r){let e=s.current.get(r);e&&t.observe(e)}return()=>{t.disconnect()}},[d,i?.value]),(0,ru.useEffect)(()=>()=>{null!==c.current&&cancelAnimationFrame(c.current)},[]);let p=(0,ru.useMemo)(()=>({registerTrigger:h,size:r}),[h,r]);return(0,rh.jsx)(gl,{ref:a,"data-slot":"tabs-list",className:V_(qE({size:r}),e),...n,children:(0,rh.jsxs)(qw,{value:p,children:[(0,rh.jsx)("div",{ref:o,"aria-hidden":!0,"data-slot":"tabs-indicator",className:"pointer-events-none absolute top-0 left-0 z-0 rounded-lg bg-background-white opacity-0 transition-[transform,width,height,opacity] duration-[250ms] ease-out motion-reduce:transition-none"}),t]})})}function qI({className:e,size:t,children:r,value:n,...i}){let a=(0,ru.use)(qw),s=(0,ru.useRef)(null),o=t??a?.size??"default",l=V_("relative z-10 inline-flex items-center justify-center","lg"===o?"gap-1.5":"gap-1");return(0,ru.useLayoutEffect)(()=>{if(a&&n)return a.registerTrigger(n,s.current),()=>{a.registerTrigger(n,null)}},[a,n]),(0,rh.jsx)(gu,{ref:s,"data-slot":"tabs-trigger",className:V_(qC({size:o}),"data-[state=active]:bg-transparent",e),value:n,...i,children:(0,rh.jsx)("span",{"data-slot":"tabs-trigger-content",className:l,children:r})})}function qM(e){let{t}=sr();return(0,ru.useMemo)(()=>[{value:0,label:t("mattingOptions.none")},{value:.05,label:`${Number(WH(.05,e).toFixed(2)).toString()} ${t(`units.${e}`)}`}],[e,t])}function qB({className:e,...t}){let{displayUnit:r}=Ww(),{matting:n,setMatting:i}=WS(),{t:a}=sr(),s=qM(r);return(0,rh.jsxs)(WJ,{className:V_("w-fit",e),...t,children:[(0,rh.jsx)(WX,{className:"text-xs text-text-sub font-medium",children:a("matting")}),(0,rh.jsx)(qx,{value:n.toString(),onValueChange:e=>i(Number(e)),children:(0,rh.jsx)(qS,{children:s.map(e=>(0,rh.jsx)(qI,{value:e.value.toString(),children:e.label},e.value))})})]})}qS.displayName=gl.displayName,qI.displayName=gu.displayName,gh.displayName;let qk=/oklch\(([0-9.]+)\s+([0-9.]+)\s+([0-9.]+)\)/;function qT(e,t){let r=e.match(qk);return r?{l:Number.parseFloat(r[1]),c:Number.parseFloat(r[2]),h:Number.parseFloat(r[3])}:{l:t[0],c:t[1],h:t[2]}}function qR({data:e,foreground:t,background:r,robustness:n="M",className:i,...a}){let[s,o]=(0,ru.useState)(null);return((0,ru.useEffect)(()=>{(async()=>{try{let i=getComputedStyle(document.documentElement),a=t??i.getPropertyValue("--foreground"),s=r??i.getPropertyValue("--background"),l=qT(a,[.21,.006,285.885]),c=qT(s,[.985,0,0]),u=await vY.toString(e,{type:"svg",color:{dark:vq(vK({mode:"oklch",...l})),light:vq(vK({mode:"oklch",...c}))},width:200,errorCorrectionLevel:n,margin:0});o(u)}catch(e){console.error(e)}})()},[e,t,r,n]),s)?(0,rh.jsx)("div",{className:V_("size-full","[&_svg]:size-full",i),dangerouslySetInnerHTML:{__html:s},...a}):null}function qD({className:e,buttonClassName:t,buttonLeadingIcon:r,buttonLabel:n,buttonSize:i,buttonVariant:a="contrast",...s}){let{placement:o,type:l,width:c,height:u,name:d}=Ww(),{src:h,tinuuid:p,widgetSession:A}=WC(),{containerRef:f,resourceRef:g}=WE(),{t:m,i18n:v}=sr(),b=function(){let{i18n:e}=sr();return"ru"===(e.resolvedLanguage??e.language)?"arizo":"vizbl"}(),[y,w]=(0,ru.useState)(""),[x,C]=(0,ru.useState)(""),[E,S]=(0,ru.useState)(()=>A?.token),[I,M]=(0,ru.useState)(!1),[B,k]=(0,ru.useState)(!1),T=(0,ru.useRef)(null),R=v.resolvedLanguage??v.language,D=qa[b],_=(0,ru.useMemo)(()=>(function({height:e,language:t,name:r,src:n,tenantConfig:i,tinuuid:a,placement:s,type:o,width:l,widgetSessionToken:c,pageUrl:u}){if("floor"===s&&a){let e=new URL(i.ROOM_URL);return e.searchParams.set("type",o),e.searchParams.set("tinuuid",a),e.searchParams.set("name",r),e.searchParams.set("language",t),c&&e.searchParams.set("widgetSessionToken",c),e.toString()}let d=new URL(i.POSTER_URL);return n&&d.searchParams.set("texture",function(e,t){if(!t||/^[a-z][a-z0-9+.-]*:/i.test(e)||e.startsWith("//"))return e;try{return new URL(e,t).href}catch{return e}}(n,u)),d.searchParams.set("texture_width",(100*l).toString()),d.searchParams.set("texture_height",(100*e).toString()),c&&d.searchParams.set("widgetSessionToken",c),d.toString()})({height:u,language:R,name:d,src:h,tenantConfig:D,tinuuid:p,placement:o,type:l,width:c,widgetSessionToken:E,pageUrl:"u"<typeof window?void 0:window.location.href}),[h,p,o,l,c,u,d,R,D,E]),P=(0,ru.useMemo)(()=>{if(!p)return null;let e=new URL("https://appclip.apple.com/id");return e.searchParams.set("p","com.us.vizbl.Clip"),e.searchParams.set("tinuuid",p),e.toString()},[p]);async function L(){S(await A?.getTokenForRequest().catch(()=>A.token))}let N=async()=>{if("floor"===o){if(!p)return;if(Wk&&P){VI(A,"appclip"),window.location.assign(P);return}await L(),M(!0);return}let e=T.current,t=g.current;if(e&&t)if(e.canActivateAR)try{k(!0);let e=t.clone(!0);if(e.position.set(0,0,0),Wk){let t=new M2,r=await t.parseAsync(e),n=new File([r],"scene.usdz",{type:"model/vnd.usdz+zip"});w(URL.createObjectURL(n))}else{let t=new Br,r=await t.parseAsync(e,{binary:!0}),n=new File([r],"scene.glb",{type:"model/gltf-binary"});C(URL.createObjectURL(n))}}finally{k(!1)}else await L(),M(!0)};return((0,ru.useEffect)(()=>((""!==y||""!==x)&&T.current?.activateAR(),()=>{""!==y&&URL.revokeObjectURL(y),""!==x&&URL.revokeObjectURL(x)}),[y,x]),WT&&WR||"floor"===o&&!p)?null:(0,rh.jsxs)("div",{className:V_(e),...s,children:[(0,rh.jsxs)(VL,{variant:a,size:i,disabled:B,onClick:N,className:t,children:[r,n??m("ar.viewInPlace")]}),(0,rh.jsx)(VN,{open:I,onOpenChange:M,children:(0,rh.jsxs)(VU,{className:"gap-6 sm:max-w-120",showCloseButton:!1,portalContainer:f,children:[(0,rh.jsx)("div",{className:"flex items-center justify-center p-10 bg-constant-white rounded-2xl",children:(0,rh.jsx)(qR,{className:"size-48",robustness:"H",data:_})}),(0,rh.jsx)("p",{className:"text-lg text-center text-text-sub font-medium",children:m("ar.scanQrCode")}),(0,rh.jsxs)("p",{className:"text-xs text-center text-text-light",children:[m("ar.deviceRequirementsDisclaimer"),(0,rh.jsx)("br",{}),(0,rh.jsx)("a",{href:D.TERMS_URL,target:"_blank",rel:"noopener noreferrer",className:"underline underline-offset-2 transition-colors duration-300 hover:text-text-dark",style:{textDecoration:"underline",textUnderlineOffset:"2px"},children:m("legal.termsOfUse")})," ",m("legal.conjunction")," ",(0,rh.jsx)("a",{href:D.PRIVACY_URL,target:"_blank",rel:"noopener noreferrer",className:"underline underline-offset-2 transition-colors duration-300 hover:text-text-dark",style:{textDecoration:"underline",textUnderlineOffset:"2px"},children:m("legal.privacyPolicy")})]}),(0,rh.jsx)(VF,{asChild:!0,children:(0,rh.jsx)(VL,{variant:"contrast",size:"lg",children:m("close")})})]})}),(0,rh.jsx)("model-viewer",{ref:T,className:"fixed w-px h-px opacity-0 pointer-events-none",src:x,iosSrc:y,reveal:"manual",ar:!0,cameraControls:!0,arPlacement:"wall",arModes:"webxr",arScale:"fixed",shadowIntensity:1,interactionPromptThreshold:100})]})}let q_={width:void 0,height:void 0};function qP(e,t,r){return e[t]?Array.isArray(e[t])?e[t][0][r]:e[t][r]:"contentBoxSize"===t?e.contentRect["inlineSize"===r?"width":"height"]:void 0}function qL(e){return e.image.width/e.image.height}async function qN(e,t,r){let n=new Image;n.crossOrigin="anonymous",await new Promise((t,r)=>{n.onload=()=>t(),n.onerror=()=>r(Error("Failed to decode room plane id map.")),n.src=e});let i=document.createElement("canvas"),a=i.getContext("2d");if(!a)throw Error("Failed to get 2D context for room plane id map.");i.width=t,i.height=r,a.drawImage(n,0,0,t,r);var s=a.getImageData(0,0,t,r);let o=new Uint8Array(t*r);for(let e=0;e<o.length;e++)o[e]=s.data[4*e]??0;return{data:o,width:t,height:r}}async function qO(e,t){return new Promise((r,n)=>{e.toBlob(e=>{e?r(e):n(Error(t))},"image/png")})}function qF({ref:e}){let{camera:t,gl:r,invalidate:n,scene:i}=Q9();return(0,ru.useImperativeHandle)(e,()=>({capture:async()=>{let e;n(),await new Promise(e=>requestAnimationFrame(()=>e()));let a=(e=new Map,i.traverse(t=>{!0===t.userData.excludeFromCapture&&(e.set(t,t.visible),t.visible=!1)}),()=>{e.forEach((e,t)=>{t.visible=e})});try{return r.render(i,t),await qO(r.domElement,"Failed to create scene share image")}finally{a(),n()}}}),[t,r,n,i]),null}let qQ=new bS(0,0,1),qU=new bS(0,0,1);function qz(e){return new bE().setFromUnitVectors(qQ,e.clone().normalize())}function qH(e,t,r,n){let i,a,s,o,l,c,u=(a=new bS((i=e.geometry.attributes.position).getX(0),i.getY(0),i.getZ(0)),s=new bS(i.getX(1),i.getY(1),i.getZ(1)),o=new bS(i.getX(2),i.getY(2),i.getZ(2)),l=new bS().crossVectors(s.sub(a),o.sub(a)).normalize(),c=r.position.clone().sub(t).normalize(),0>l.dot(c)&&l.multiplyScalar(-1),l),d=t.clone().addScaledVector(u,.05),h=function(e,t){if("floor"===t)return qz(e);let r=e.clone().normalize(),n=qU.clone().addScaledVector(r,-qU.dot(r));if(1e-6>n.lengthSq())return qz(r);n.normalize();let i=new bS().crossVectors(n,r).normalize(),a=new yh().makeBasis(i,n,r);return new bE().setFromRotationMatrix(a)}(u,n);return{position:d.toArray(),quaternion:h.toArray(),activePlaneId:e.userData.planeId}}function qj(e){return{placementKey:e,planeIdMap:null,resourcePose:null}}function qG(e,t){if("reset-placement"===t.type)return qj(t.placementKey);if(t.placementKey!==e.placementKey)return e;switch(t.type){case"reset-plane-id-map":return{...e,planeIdMap:null};case"set-plane-id-map":return{...e,planeIdMap:t.planeIdMap};case"set-resource-pose":return{...e,resourcePose:t.resourcePose}}}let qV="NEURODYN_ROOM_SCENE_PATCH";function qW(e,t){let r=e.onBeforeCompile,n=e.customProgramCacheKey.bind(e),i=e.side,a=e.transparent,s=e.alphaToCoverage;return e.side=2,e.transparent=!0,e.alphaToCoverage=!0,e.onBeforeCompile=(n,i)=>{r?.call(e,n,i),function(e,t){e.uniforms.uPlaneIds={value:t.planeIdsTexture},e.uniforms.uShading={value:t.shadingTexture},e.uniforms.uActiveId=t.activePlaneIdUniform,e.uniforms.uPlaneIdsSize={value:t.planeIdsSize},e.uniforms.uViewport={value:t.viewport};let r=`
7495
+ Defaulting to \`null\`.`));let u=Wd(a,c)?a:null,d=Wc(u)?o(u,c):void 0;return(0,rh.jsx)(Wr,{scope:i,value:u,max:c,children:(0,rh.jsx)(V6.div,{"aria-valuemax":c,"aria-valuemin":0,"aria-valuenow":Wc(u)?u:void 0,"aria-valuetext":d,role:"progressbar","data-state":Wl(u,c),"data-value":u??void 0,"data-max":c,...l,ref:t})})});Wi.displayName=V7;var Wa="ProgressIndicator",Ws=(0,ru.forwardRef)((e,t)=>{let{__scopeProgress:r,...n}=e,i=Wn(Wa,r);return(0,rh.jsx)(V6.div,{"data-state":Wl(i.value,i.max),"data-value":i.value??void 0,"data-max":i.max,...n,ref:t})});function Wo(e,t){return`${Math.round(e/t*100)}%`}function Wl(e,t){return null==e?"indeterminate":e===t?"complete":"loading"}function Wc(e){return"number"==typeof e}function Wu(e){return Wc(e)&&!isNaN(e)&&e>0}function Wd(e,t){return Wc(e)&&!isNaN(e)&&e<=t&&e>=0}function Wh({className:e,value:t,max:r=100,...n}){let i=r>0?r:100,a="number"==typeof t?Math.min(Math.max(t/i*100,0),100):0;return(0,rh.jsx)(Wi,{"data-slot":"progress",className:VP("relative h-2 w-full overflow-hidden rounded-full bg-primary/20",e),value:t,max:i,...n,children:(0,rh.jsx)(Ws,{"data-slot":"progress-indicator",className:"h-full bg-primary transition-[width]",style:{width:`${a}%`}})})}Ws.displayName=Wa;let Wp="inset-0 h-svh min-w-full max-w-none translate-x-0 translate-y-0 rounded-none border-none bg-transparent p-0 shadow-none sm:p-0 sm:max-w-none",WA=(0,ru.createContext)(null),Wf=(0,ru.createContext)(null),Wg=(0,ru.createContext)(null),Wm=(0,ru.createContext)(null),Wv=(0,ru.createContext)(null),Wb=(0,ru.createContext)(null),Wy=(0,ru.createContext)(null);function Ww(e,t){let r=(0,ru.use)(e);if(!r)throw Error(`${t} must be used within a RoomViewerProvider`);return r}function Wx(){return Ww(WA,"useRoomViewerMetadata")}function WC(){return Ww(Wg,"useRoomViewerRooms")}function WE(){return Ww(Wm,"useRoomViewerResource")}function WS(){return Ww(Wv,"useRoomViewerSceneState")}function WI(){return Ww(Wb,"useRoomViewerWallResourceControls")}let WM=new dR,WB=WM.getDevice(),Wk=WM.getOS(),WT="iOS"===Wk.name,WR="Android"===Wk.name,WD="mobile"===WB.type;function W_({variant:e,open:t,portalContainer:r,showDialogCloseButton:n=!1,onOpenChange:i,onTryAgain:a,onCancel:s}){let{t:o}=sr(),l=e?o("custom-interior-processing"===e?"floor.error.processingBody":"viewer-load-failed"===e?"floor.error.loadBody":`accessError.${e}`):"";return(0,rh.jsx)(VO,{open:t,onOpenChange:i,children:(0,rh.jsxs)(Vz,{portalContainer:r,showCloseButton:!1,className:"w-full max-w-85 gap-4 rounded-2xl p-6 text-center sm:max-w-85 sm:p-6",onInteractOutside:e=>{e.preventDefault()},children:[(0,rh.jsxs)("div",{className:"grid gap-1",children:[(0,rh.jsx)(VG,{children:o("floor.error.title")}),(0,rh.jsx)(VV,{className:"typo-base-14 font-medium text-text-base",children:l})]}),(0,rh.jsxs)("div",{className:"grid gap-2",children:[a&&(0,rh.jsxs)(VN,{variant:"contrast",onClick:a,children:[(0,rh.jsx)(VZ,{"aria-hidden":"true"}),o("floor.error.tryAgain")]}),s&&(0,rh.jsx)(VN,{variant:"outline",onClick:s,children:o("floor.error.cancel")}),n&&(0,rh.jsx)(VQ,{asChild:!0,children:(0,rh.jsx)(VN,{variant:"outline",children:o("close")})})]})]})})}function WP({...e}){return(0,rh.jsx)(pA,{"data-slot":"select",...e})}function WL({...e}){return(0,rh.jsx)(pv,{"data-slot":"select-value",...e})}function WN({className:e,size:t="default",children:r,...n}){return(0,rh.jsxs)(pg,{"data-slot":"select-trigger","data-size":t,className:VP("flex w-fit items-center justify-between gap-2 whitespace-nowrap rounded-md border bg-background-white shadow-sm outline-none transition-colors cursor-pointer","border-border-medium","text-text-dark","hover:border-border-dark","focus-visible:border-border-dark","aria-invalid:border-border-red","disabled:cursor-not-allowed disabled:border-border-medium disabled:bg-background-base disabled:opacity-40","data-[size=default]:h-11 data-[size=default]:px-2 data-[size=default]:py-2.5 data-[size=default]:typo-base-16","data-[size=md]:h-9 data-[size=md]:px-2 data-[size=md]:py-2 data-[size=md]:typo-base-14","data-[size=sm]:h-[1.875rem] data-[size=sm]:px-2 data-[size=sm]:typo-base-12","*:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2","[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=size-])]:size-6 [&_svg:not([class*=text-])]:text-text-dark",e),...n,children:[r,(0,rh.jsx)(pb,{asChild:!0,children:(0,rh.jsx)(VX,{className:"size-6"})})]})}function WO({className:e,children:t,position:r="item-aligned",align:n="center",portalContainer:i,...a}){return(0,rh.jsx)(py,{container:i,children:(0,rh.jsxs)(px,{"data-slot":"select-content",className:VP("relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-xl border bg-background-white text-text-dark shadow-md","border-border-medium","data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2","popper"===r&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:r,align:n,...a,children:[(0,rh.jsx)(WQ,{}),(0,rh.jsx)(pD,{className:VP("p-1","popper"===r&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:t}),(0,rh.jsx)(WU,{})]})})}function WF({className:e,children:t,...r}){return(0,rh.jsxs)(pU,{"data-slot":"select-item",className:VP("relative flex w-full cursor-pointer select-none items-center gap-2 rounded-md py-2.5 pr-8 pl-3 outline-hidden","typo-base-16 text-text-sub","focus:bg-background-base focus:text-text-dark","data-[disabled]:pointer-events-none data-[disabled]:opacity-50","[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=size-])]:size-6 [&_svg:not([class*=text-])]:text-text-dark","*:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",e),...r,children:[(0,rh.jsx)("span",{"data-slot":"select-item-indicator",className:"absolute right-2 flex size-6 items-center justify-center",children:(0,rh.jsx)(pG,{children:(0,rh.jsx)(VK,{className:"size-5"})})}),(0,rh.jsx)(pH,{children:t})]})}function WQ({className:e,...t}){return(0,rh.jsx)(pW,{"data-slot":"select-scroll-up-button",className:VP("flex cursor-default items-center justify-center py-1",e),...t,children:(0,rh.jsx)(c5,{className:"size-4"})})}function WU({className:e,...t}){return(0,rh.jsx)(pK,{"data-slot":"select-scroll-down-button",className:VP("flex cursor-default items-center justify-center py-1",e),...t,children:(0,rh.jsx)(c8,{className:"size-4"})})}let Wz=/^[a-z][a-z\d+.-]*:/i;function WH(e,t="m"){switch(t){case"cm":return e/100;case"in":return .0254*e;case"m":return e}}function Wj(e,t){switch(t){case"cm":return 100*e;case"in":return e/.0254}}let WG="vizbl-rug:";function WV(e){if(!e?.startsWith(WG))return null;try{let t=JSON.parse(e.slice(WG.length));if("string"!=typeof t.size)return null;return{size:t.size,shape:"round"===t.shape?"round":"rect"}}catch{return null}}function WW(e){if(!e.tinuuid||!e.materials?.[0])return null;let t=WV(e.description);return t?{tinuuid:e.tinuuid,size:t.size,shape:t.shape}:null}function Wq({className:e,...t}){return(0,rh.jsx)(p1,{"data-slot":"label",className:VP("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",e),...t})}function WK({className:e,orientation:t="horizontal",decorative:r=!0,...n}){return(0,rh.jsx)(p4,{"data-slot":"separator",decorative:r,orientation:t,className:VP("bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",e),...n})}function WY({className:e,...t}){return(0,rh.jsx)("div",{"data-slot":"field-group",className:VP("group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 [&>[data-slot=field-group]]:gap-4",e),...t})}let WJ=ls("group/field flex w-full gap-3 data-[invalid=true]:text-destructive",{variants:{orientation:{vertical:["flex-col [&>*]:w-full [&>.sr-only]:w-auto"],horizontal:["flex-row items-center","[&>[data-slot=field-label]]:flex-auto","has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px"],responsive:["flex-col [&>*]:w-full [&>.sr-only]:w-auto @md/field-group:flex-row @md/field-group:items-center @md/field-group:[&>*]:w-auto","@md/field-group:[&>[data-slot=field-label]]:flex-auto","@md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px"]}},defaultVariants:{orientation:"vertical"}});function WX({className:e,orientation:t="vertical",...r}){return(0,rh.jsx)("div",{role:"group","data-slot":"field","data-orientation":t,className:VP(WJ({orientation:t}),e),...r})}function WZ({className:e,...t}){return(0,rh.jsx)(Wq,{"data-slot":"field-label",className:VP("group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50","has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border [&>*]:data-[slot=field]:p-4","has-data-[state=checked]:bg-primary/5 has-data-[state=checked]:border-primary dark:has-data-[state=checked]:bg-primary/10",e),...t})}function W$({className:e,...t}){return(0,rh.jsx)("div",{"data-slot":"field-label",className:VP("flex w-fit items-center gap-2 text-sm leading-snug font-medium group-data-[disabled=true]/field:opacity-50",e),...t})}function W0({...e}){return(0,rh.jsx)(At,{"data-slot":"popover",...e})}function W1({...e}){return(0,rh.jsx)(Ai,{"data-slot":"popover-trigger",...e})}function W2({className:e,align:t="center",sideOffset:r=4,portalContainer:n,...i}){return(0,rh.jsx)(Al,{container:n,children:(0,rh.jsx)(Au,{"data-slot":"popover-content",align:t,sideOffset:r,className:VP("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",e),...i})})}function W3({className:e,defaultValue:t,value:r,min:n=0,max:i=100,variant:a="default","aria-label":s,"aria-labelledby":o,...l}){let c=(0,ru.useMemo)(()=>Array.isArray(r)?r:Array.isArray(t)?t:[n],[r,t,n]);return(0,rh.jsxs)(AB,{"data-slot":"slider",defaultValue:t,value:r,min:n,max:i,"data-variant":a,"aria-label":s,"aria-labelledby":o,className:VP("relative flex w-full touch-none cursor-pointer items-center select-none data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col",e),...l,children:[(0,rh.jsx)(AL,{"data-slot":"slider-track",className:VP("relative grow overflow-hidden rounded-full data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5","editor"===a?"bg-border-light data-[orientation=horizontal]:h-0.5":"bg-muted data-[orientation=horizontal]:h-1.5"),children:(0,rh.jsx)(AO,{"data-slot":"slider-range",className:VP("absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full","editor"===a?"bg-background-blue":"bg-primary")})}),Array.from({length:c.length},(e,t)=>(0,rh.jsx)(AQ,{"data-slot":"slider-thumb","aria-label":s,"aria-labelledby":o,className:VP("ring-ring/50 block shrink-0 rounded-full border bg-white transition-[color,box-shadow] focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50","editor"===a?"size-3 border-background-blue shadow-none hover:ring-2 focus-visible:ring-2":"size-4 border-primary shadow-sm hover:ring-4 focus-visible:ring-4")},t))]})}let W4="u"<typeof window;function W9(e,{defaultValue:t=!1,initializeWithValue:r=!0}={}){let[n,i]=(0,ru.useState)(()=>{if(r)return W4?t:window.matchMedia(e).matches;return t});return(0,ru.useEffect)(()=>{let t=window.matchMedia(e),r=()=>{i(t.matches)};return r(),t.addEventListener("change",r),()=>{t.removeEventListener("change",r)}},[e]),n}var W5=JSON.parse('{"version":1,"image":{"width":1152,"height":768,"fileName":"bathroom.jpg"},"camera":{"fovYDeg":46.95,"fx":884.1691,"fy":589.446,"cx":255.9992,"cy":256.0003,"net":512,"frame":"+X right, +Y down, +Z forward; meters; OpenCV"},"planes":[{"id":1,"kind":"floor","polygon3D":[[-4.9139,1.1239,0.1328],[1.7293,1.1239,-1.9012],[4.8937,0.9661,8.4344],[-1.7494,0.9661,10.4683]],"polygon2D":[[-73044.5,7868],[69379.5,20259],[1730.3,485.3],[243.5,465.6]],"pixelCount":64473},{"id":2,"kind":"wall","polygon3D":[[-1.8438,5.8702,6.4128],[-0.1895,5.8702,7.1854],[-0.1834,-6.7435,7.1724],[-1.8377,-6.7435,6.3998]],"polygon2D":[[4,1193.4],[523.5,1106.3],[525.1,-447.3],[4.7,-547.7]],"pixelCount":46912},{"id":3,"kind":"wall","polygon3D":[[-0.3441,3.5388,7.4548],[1.1166,3.5388,3.9579],[1.1131,-4.5581,3.9565],[-0.3475,-4.5581,7.4534]],"polygon2D":[[484.2,803.7],[1137.2,1174.5],[1135.7,-634.6],[483.2,-156.7]],"pixelCount":18435},{"id":4,"kind":"wall","polygon3D":[[-2.9664,8.8209,12.276],[0.4037,8.8209,2.9966],[-0.5173,-6.6906,2.6621],[-3.8874,-6.6906,11.9415]],"polygon2D":[[95.3,1019.3],[844,2986.7],[189.4,-1838.2],[-71.6,-111.4]],"pixelCount":303}],"planeIds":{"width":512,"height":512,"dataPng":"data:image/png;base64,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"},"shading":{"width":128,"height":128,"neutral":128,"dataPng":"data:image/png;base64,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"}}'),W8=JSON.parse('{"version":1,"image":{"width":1248,"height":832,"fileName":"bedroom.jpg"},"camera":{"fovYDeg":46.84,"fx":886.546,"fy":591.0306,"cx":256.0001,"cy":255.9998,"net":512,"frame":"+X right, +Y down, +Z forward; meters; OpenCV"},"planes":[{"id":1,"kind":"floor","polygon3D":[[-4.0513,1.1899,-1.3067],[2.5725,1.1899,-2.0753],[3.87,0.1831,9.1068],[-2.7538,0.1831,9.8754]],"polygon2D":[[-174467.9,23273.1],[111806.3,23273.1],[1542.3,435.3],[21.4,433.8]],"pixelCount":101427},{"id":2,"kind":"wall","polygon3D":[[0.2754,3.5068,7.4975],[1.8879,3.5068,6.156],[1.4729,-6.0368,5.6572],[-0.1396,-6.0368,6.9987]],"polygon2D":[[703.4,865.2],[1286.7,963.1],[1186.6,-608.9],[580.9,-412.4]],"pixelCount":45487},{"id":3,"kind":"wall","polygon3D":[[-1.6906,3.9065,5.5869],[-0.1653,3.9065,7.3877],[0.198,-6.2752,7.08],[-1.3272,-6.2752,5.2792]],"polygon2D":[[-29.9,1087.5],[575.6,923.9],[684.4,-435.3],[80.7,-725.6]],"pixelCount":24698}],"planeIds":{"width":512,"height":512,"dataPng":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAIcUlEQVR42u3dy1LDMAxAUbnj//9lsYWZ0iFpcWLpnCUbmLx07bZ0REQGANDKwyEAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAABAAACAAHAIAEAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAALAIQAAAQAACAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAAAgAAEAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAACAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAEAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAIAAcAgAQAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAQAAAgAAAAAQAACAAAQAAAANuaDgFcYzz5WToswMJnkGcOLB70r7ghATsAUHzYAwgAMOgBBAB0HPa2/wEBAFb1AAIADHsAAQAGPYAAAMMeQABg2AMgADDod+ATAIAAwOB3CADClwFh+AMgADD8AQgvAWDoA2AHAMM/vAEQwA4ABj4AAgDDHgABwI9hnYY7gACg3+p8vIgAQx9AAFB4O96gBxAAeB0egPAxQAx/AOwAYOiz4pz6PwGAAPAufYMfAAHQbVVv0NvRARAAHvw0fxlg+FfCgAAw6Kl9bRz5Hw2CAPeN+0AAfOjhmwY8G4WhhyDumec/cz8IgMMP2++rL0OdjjEL1WK5+0to08ViNU+vl4XsDuA+ORbJVe+Z6QKBvtes3QHcI8ci+bffnwLAsIedr2FBgPvj3O/d8f0G04UArmkvF+D+WPd3pwAw7MGbCaHf8/8uuwXTyQYEAWZBvyi49HtGDHyoSxBwx5mQBWZQ7rYDYNiDHQIwH/7/y+Eu3QFwMgE7BJgV1+xm5KodACcQsEOAubHH8c2zAeCkAYIAg7/GOZhOFCAIMPyj53cBODGAIMDgbxYATg4gCDD4fRsggCDA4BcAAIIAg18AAAgCDP7bHPt3ruMx3AcAHoQGvx0AAANNEBj8AgDAoBMEhr8AADD8ugWBwS8AAGgWBIa/AADgj4MyDX8EAIDdgTT8EQAAgsAbChEAAILgdkFg9S8AABAECAAAqgeB1b8AAEAQUNjDIQDwDn2rfwEAgI/pIQAAEAEIAADEBAIAABAAAFj9IwAAAAEAgNU/AgAAEAAAgAAAIGz/IwAAAAEAwFureKt/BACArXwEAADVI0AwEBExHQKAehGQDgd2AADsCIAAAGgcAcIAAQAgCBAAAFQe+oY/AgDAyh8EAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAAABAAAIAAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAQAAAgAAAAAQAACAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAABAAAIAAAAAEAAAgAABAAAAAAgAAEAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAAABAAAIAABAAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAACAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAEAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAABAAAIAAAAAEAABw3hcJ0krAuepgjAAAAABJRU5ErkJggg=="},"shading":{"width":128,"height":128,"neutral":128,"dataPng":"data:image/png;base64,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"}}'),W6=JSON.parse('{"version":1,"image":{"width":1248,"height":832,"fileName":"entryway.jpg"},"camera":{"fovYDeg":46.86,"fx":886.1516,"fy":590.7677,"cx":255.9999,"cy":255.9997,"net":512,"frame":"+X right, +Y down, +Z forward; meters; OpenCV"},"planes":[{"id":1,"kind":"floor","polygon3D":[[-8.6435,1.1708,2.4254],[1.2106,1.1708,-3.7261],[8.3191,0.9709,7.661],[-1.535,0.9709,13.8125]],"polygon2D":[[-7073.7,879.4],[52923.7,22895.4],[2969.5,537.7],[384,483.5]],"pixelCount":69575},{"id":2,"kind":"wall","polygon3D":[[-0.9123,3.856,3.1077],[-0.7274,3.856,6.2012],[-0.6851,-4.4714,6.1987],[-0.8699,-4.4714,3.1052]],"polygon2D":[[-10.1,1607.1],[370.6,1012.9],[385.3,-276.5],[18.9,-966.4]],"pixelCount":47763},{"id":3,"kind":"wall","polygon3D":[[-0.888,4.3857,6.582],[1.1141,4.3857,6.5081],[1.1088,-5.5794,6.3649],[-0.8933,-5.5794,6.4388]],"polygon2D":[[332.6,1055.7],[993.8,1062.9],[1000.3,-425.5],[324.3,-415.9]],"pixelCount":41609},{"id":4,"kind":"wall","polygon3D":[[1.2093,4.5168,6.7312],[1.1406,4.5168,3.9536],[1.1241,-5.6604,3.954],[1.1929,-5.6604,6.7316]],"polygon2D":[[1012.1,1060.2],[1247.1,1512.8],[1238.1,-958.3],[1006.8,-391.2]],"pixelCount":34711},{"id":5,"kind":"wall","polygon3D":[[-0.9999,3.3374,7.7388],[0.4764,3.3374,7.6913],[0.4746,-4.56,7.6329],[-1.0018,-4.56,7.6804]],"polygon2D":[[344.9,830],[757.8,832.6],[758.3,-157.5],[342.3,-154]],"pixelCount":5560}],"planeIds":{"width":512,"height":512,"dataPng":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAIyUlEQVR42u3dQW7jSBQFwV8F3v/K5QNY8EaCITIj9oNBs9l86aJsr5k5AwCkbJcAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAABAAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAIAAcAkAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAAAgAlwAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAACAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAEAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAgABwCQBAAAAAAgAAEAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAAABAAAIAABAAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAAAQAACAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAAAgAAEAAAgAAAAAQAACAAAAABAAAIAADg+1wuAU+wYn/e468cEAAYbgDGKwCMPwACAOMPwHgFgOEHwAkAxh9AAIDxBxivAMDwAzgBAOMPIADA+AMIADD+AOMzABh+AJwAYPwBEAAYfwDGKwAMPwBOADD+AAgAjD8AAgDjD8D4DACGHwAnABh/AAQAxh+A8QoAww/gBMAlwPgDCACMPwACAOPPtzkuATA+A4DhB8AJAMbfV/8AAgDjD8B4BYDhB8AJgPEHQABg/AEQABh/AMZnADD8ADgBwPgDIAAw/gCMVwAYfgCcAGD8ARAAGH8ABADGH4DxGQAMPwBOADD+AAgAjP/4VcAAAiA2/MZf+AF86pniCwsPf5hXJw3uu8bf9Xrj9Gk5yXICgPEH8DwTAPjHAuC5Nr4NEP9IAM+YX/9vrwScAGD8Ac86BAAAIgABML7nG8C3OSMARACA0wAEAADPGWUR4AcB4R8CMN0fFGWcnAAA4HMBCAAAnIQiAAAQAQgAALwSQAAA4DQAAQCACEAAACACBAAA+FyAAAAApwECAAAQAACAAAAABAAAIAAAAAEAAOM7AQQAADf7vvt1wwgQCAIAAKcEAsAlcKMCeLYKANygAH6EsADA+AN43goA3IwAnrsCADchgFcCAgDjD+BZLABwwwF4JgsAjD+AVwICAOMP4DktANxUAHheCwA3EwBeCQgA4w+AZ7gAUI8AiAAB4GYBwHNdALhJADx3newKAOMPgGe9AHBDAOCZLwDcCAAkXwkIAOMPQHAHBIDxByC4BwLA+AMQ3AUBYPwBCH4uQAAYfwCCWyEAjD8Awc0QAMYfgOArAQFg/AEI7ogAMP4ABPdEAPh1vgAEI0AA+KofgOAXmALA+AMQ3BsBYPwBCO6OADD+AJ7pwVcCAsD4AxAkAIw/AALA+AOAADD+ACAAjD8APGOrtgsKAL3N2i4kANxnoz61XZcLCwD3jIDjBMD4A9D7BW7rzf/2GH4AuK/jBMD4AzBOPASA8QfAK+5kABh/AERALACMPwBeCcQCwPgDIARiAWD8AeDvTdzGHwB6rwS28QeA3mnANv4A0IuAbfwBoBcB2/gDQM82/gAgAIw/AARchh8AnAAYfwAQAMYfAASA8QcAAWD8AUAAGH8AEADGHwAEgPEHAAFg/AFAABh/ACgGgPEHgFgAGH8AiAWA8QeAWAAYfwCYzm8DNPwAEDsBMP4AEAsA4w8AsQAw/gAQCwDjDwCxADD+ABALAOMPALEAMP4AEAsA4w8AsQAw/gAQCwDjDwCxADD+ABALAOMPALEAMP4AMJ3fBmj4ASB2AmD8ASAWAMYfAGIBYPwBIBYAxh8AYgFg/AEgFgDGHwBiAWD8ASAWAMYfAGIBYPwBIBYAxh8AYgFg/AEgFgDGHwBiAWD8ASAWAMYfAHwIEAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAEAAAgAAAAAQAACAAAQAAAAAIAABAAAIAAAAAEAADwv34AFhsYCVC0TM8AAAAASUVORK5CYII="},"shading":{"width":128,"height":128,"neutral":128,"dataPng":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAIAAABMXPacAAAACXBIWXMAAAPoAAAD6AG1e1JrAAAgAElEQVR42t2dabdsVXWG628ZHSMOjckIQ6MkRlDEFsVegyIYEAIqKii9NEJCK52A9CJEWmlCJ9IoCILNH8lz93PrZZ659t7nXO6HDDM/1KhTp2rXrvmu2c811+aCCy648MILfYQuuuiiiy+++MeFLrnkkv+c6L8muuyyy6644oorr7zyqquuuvrqq3/yk59cc801d9xxx913333XXXf99wL9x18/nXfeeeeee+75558vry7a0sUThVeQzy/YST+a6PwtnTcRF9zkHbMAcLlLL700AMD9yy+/fATgxhtv/PlE991337333vv/D4DKshUM5D6PFwxUAcil9gHQlv8SAFn+DQC4f+2111533XW33XbbPffcAwb3TvT/CQD5tSsG4f6FW1rh/rwEzMpUAAj3oasmcvnD/euvv/6GG25AEd15551gABINg79e7p911lnnnHPOrhhE81y4kyoAYpAr7ACgSUAESgCgBgASUJc/3P/pT3/6s5/97NZbb7399tubHNx///2/+tWv/k/Y95NV4iewjK7c0hVbunyiyyaCFUsYwFBZF4URTi5hsCgBjfsNgEiArK/6J8sfMwAAt9xyC6b4gQce+OWW5P7DDz/80EMPHTxDf7pKN0zE/Vy3JdbHQQLADx8xkGAfrIu2CMfl5LoWWpSA0QDsBQB+PACw/PGF4D5Mh/UYZJ6H+w8++CB/HijH79hJfMUBAbCOwR4B4OfDmREDGArTXK8xpRcVqkIw6wJ1CRgd0FkANABRQQHggS258Efu83iQAKxjMAvACgZ7BwAmjBjAt/B65H6TgwbAuVvatE/Ocl8A4v9cPVG1wPz4m266iSUPr+G+vB65z/NHHnnkIAHAxqDoljC4fqIRAG71IAEYMYjmUBSqDp8FYN4NrTDOml8BaA6oP6ABIJdl+hL3oQMyyLMA4PJib5YkwFtqAMxicKAAwJPYAy0wBCtXABCDmIH5OGDJAa0xsPqnAhAXKACgdlz469yXDhIAhODmm29u3PdR7jdTLAAVA+X4QAGAM7wiB2Ho6I+uA9A80V0AqAagOqANAF0gAMD9l9fw96GJ4D6PgNG4L0IHCQBCwJdW7jczEAzkfjAQhgAgzWIgDAahwiBb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"}}'),W7=JSON.parse('{"version":1,"image":{"width":1152,"height":768,"fileName":"living-room.jpg"},"camera":{"fovYDeg":46.91,"fx":885.0345,"fy":590.023,"cx":255.9995,"cy":256.0006,"net":512,"frame":"+X right, +Y down, +Z forward; meters; OpenCV"},"planes":[{"id":1,"kind":"floor","polygon3D":[[-9.0471,1.1441,1.2581],[1.4149,1.1441,-4.3437],[8.6732,0.813,9.2121],[-1.7888,0.813,14.8138]],"polygon2D":[[-13743.9,1188.8],[56926.9,20635.4],[2450.8,462.1],[335.5,432.6]],"pixelCount":88236},{"id":2,"kind":"wall","polygon3D":[[-2.2646,3.6145,7.9916],[0.9936,3.6145,8.0919],[0.9975,-6.0145,7.964],[-2.2607,-6.0145,7.8638]],"polygon2D":[[11.7,784.3],[820.5,779.3],[825.4,-284.4],[3.5,-292.9]],"pixelCount":48816},{"id":3,"kind":"wall","polygon3D":[[-1.6686,3.4823,6.2591],[1.6181,3.4823,6.3756],[1.6324,-5.6636,5.9733],[-1.6544,-5.6636,5.8569]],"polygon2D":[[45.1,876.4],[1081.4,867.4],[1120.2,-455.1],[13.5,-471.8]],"pixelCount":28145},{"id":4,"kind":"wall","polygon3D":[[1.2612,4.5356,9.3158],[1.5173,4.5356,5.2171],[1.4349,-6.4437,5.2119],[1.1788,-6.4437,9.3107]],"polygon2D":[[845.6,814.9],[1155.1,1153.4],[1124.2,-710.2],[828.1,-228.5]],"pixelCount":20909}],"planeIds":{"width":512,"height":512,"dataPng":"data:image/png;base64,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"},"shading":{"width":128,"height":128,"neutral":128,"dataPng":"data:image/png;base64,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"}}'),qe=JSON.parse('{"version":1,"image":{"width":2000,"height":1300,"fileName":"room-example-11.jpg"},"camera":{"fovYDeg":46.86,"fx":908.9087,"fy":590.7906,"cx":255.9987,"cy":256.0001,"net":512,"frame":"+X right, +Y down, +Z forward; meters; OpenCV"},"planes":[{"id":1,"kind":"floor","polygon3D":[[1.2985,1.1722,5.5054],[-1.6272,1.1722,4.846],[-0.6999,0.9798,0.7309],[2.2259,0.9798,1.3902]],"polygon2D":[[1837.4,969.4],[-192.2,1012.9],[-2399.9,2660.9],[6684.7,1707.2]],"pixelCount":21724},{"id":2,"kind":"wall","polygon3D":[[-0.9505,3.4707,3.555],[0.6996,3.4707,4.0983],[0.6109,-4.2935,4.3676],[-1.0392,-4.2935,3.8243]],"polygon2D":[[50.7,2114.5],[1606,1920.3],[1496.6,-824.6],[35.2,-1034.1]],"pixelCount":135151},{"id":3,"kind":"wall","polygon3D":[[0.7451,2.7204,4.5579],[1.0313,2.7204,3.7229],[1.0502,-4.07,3.7293],[0.7639,-4.07,4.5644]],"polygon2D":[[1580.4,1545.3],[1983.6,1746.1],[1999.8,-987.1],[1594.2,-687.6]],"pixelCount":28490}],"planeIds":{"width":512,"height":512,"dataPng":"data:image/png;base64,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"},"shading":{"width":128,"height":128,"neutral":128,"dataPng":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAIAAABMXPacAAAACXBIWXMAAAPoAAAD6AG1e1JrAAAgAElEQVR42t2dabM9RZGHzyfypREy4zgG4QjMDG6gosiqCLigICKiCAjI5gIygLgMoDOy7/u+KbKKiriGn2We0w83yZtVXafv/UPMhXxxok+f7j7dv19VZlZWVvbqmmuuufbaa6+77rqfT/KLSf5nkv/tyS9/+cvY9rBfLJBy2M+3Szmm+2v+ybu9rpFrG/Hp+PzvLfnZz37mJ/LTLfnJT37y4x//+Oqrr/7Rj3501VVXXXnllf81yeWXX/7DH/7w0ksv/f73v/+9733v4osvZuPcc889/fTTL7vsMg7m4jfccAN3fv3113vwD37wA5C57777br/99htvvPHWW2/ltvmJywLdo48++tBDD91zzz0cc/fdd/N11aIvFgX0VoKAJTSUYwq+3esU6Ls0KOVrMBEb12xJpiFEAuQATK+c5IorrpADMAVrYIWA7373u2x/61vfOuusszjGc/0JoPnkdO7klltu4Sv/zjG33XYbN8z+u+6668knn3zggQdghcvy07333vvYY4+t4hkKWGP0uxxk+NqvLYLl4IVctv2gJaDbMwoHmYboBPYA5IpJ7ASATicAaPvBOeecQyfgGM769re/fcEFF3znO9+5+eabAQTcQZ/9/BGfdKk77riDJn/nnXfS3vnkdK5DT+ITAp544olVbv4BQYGe/uWnGwMCxjLoHHOH+bU99+czMiCg2xWkIRRREBD9QMUiBxAA4pdccomqhuPPOOMM0L/oooto6WDNfXI1DuYvuEn+kYZPq/feQO/CCy/kYAi4//77af6csormP4e+0KPprk8SBGRjsJCDwdd8qS43c1wu56NYiMwBgGoGwhJEJwhLcN555wEiKgjc+fX888/nmqh7LgUsXAT0ORh8UTU0eZ6IA/gLegC9hF/B7YlJOABUV8XwikLgrhT0cz/ocuDXLjFzO3fH5UYOBgqq0CAHxRSHJVAR0eoBl1aPFoIGDgABTuS2uQi3xHW44COPPHL3JNwVV/DiDz/8MHw8/fTTbHD8r371K87lpzUBBbXc8EU/ZEBAxq71nQZu1RIC8mEDhdb6Tgs7hHoJmLI7FFooFNGlk3z961/nE4Y4kgM4mJvhdLQQoPN500030dhp4OznAHil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"}}'),qt=JSON.parse('{"version":1,"image":{"width":2000,"height":1300,"fileName":"room-example-12.jpg"},"camera":{"fovYDeg":46.91,"fx":907.7026,"fy":590.0067,"cx":255.9981,"cy":256.0012,"net":512,"frame":"+X right, +Y down, +Z forward; meters; OpenCV"},"planes":[{"id":1,"kind":"floor","polygon3D":[[2.672,1.316,6.1305],[-2.0106,1.316,6.4245],[-2.3631,0.9879,0.8107],[2.3196,0.9879,0.5167]],"polygon2D":[[2545.4,971.6],[-109.7,956.9],[-9335.6,2475.7],[16917.9,3514.4]],"pixelCount":38744},{"id":2,"kind":"wall","polygon3D":[[-1.3052,3.3024,4.7978],[0.8197,3.3024,5.4447],[0.7214,-5.1365,5.7676],[-1.4035,-5.1365,5.1207]],"polygon2D":[[35.4,1681.1],[1533.8,1558.6],[1443.5,-684.1],[28.2,-852.7]],"pixelCount":115187},{"id":3,"kind":"wall","polygon3D":[[0.8416,-1.0331,5.8907],[1.269,-1.0331,4.6406],[1.3241,-2.633,4.6594],[0.8967,-2.633,5.9096]],"polygon2D":[[1506.6,387.3],[1969.6,316.5],[2007.6,-196.6],[1538,-17.5]],"pixelCount":6152},{"id":4,"kind":"wall","polygon3D":[[0.6327,2.4819,4.523],[1.048,2.4819,4.4645],[1.0956,-4.2751,4.8023],[0.6803,-4.2751,4.8608]],"polygon2D":[[1496,1472],[1832.3,1482.8],[1808.9,-683.6],[1496.2,-667.6]],"pixelCount":1290}],"planeIds":{"width":512,"height":512,"dataPng":"data:image/png;base64,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"},"shading":{"width":128,"height":128,"neutral":128,"dataPng":"data:image/png;base64,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"}}'),qr=JSON.parse('{"version":1,"image":{"width":2000,"height":1300,"fileName":"room-example-13.jpg"},"camera":{"fovYDeg":46.89,"fx":908.1038,"fy":590.2675,"cx":255.9987,"cy":256.0003,"net":512,"frame":"+X right, +Y down, +Z forward; meters; OpenCV"},"planes":[{"id":1,"kind":"floor","polygon3D":[[3.2792,1.3056,9.6119],[-2.7571,1.3056,10.1592],[-3.8115,0.6999,-1.4706],[2.2248,0.6999,-2.0179]],"polygon2D":[[2210.2,853.6],[37.3,842.6],[-269409.8,21629.6],[158842.3,21629.6]],"pixelCount":31534},{"id":2,"kind":"wall","polygon3D":[[-0.5743,3.32,3.4235],[0.7368,3.32,2.7668],[0.8568,-3.7711,3.0063],[-0.4542,-3.7711,3.6631]],"polygon2D":[[405,2103.4],[1944.7,2448.4],[2011,-1230],[560.1,-892.9]],"pixelCount":125424},{"id":3,"kind":"wall","polygon3D":[[-1.3321,-1.8048,5.0373],[-0.8869,-1.8048,5.8802],[-0.903,-2.8694,5.8887],[-1.3482,-2.8694,5.0458]],"polygon2D":[[61.9,113],[465,190],[456.1,-80.3],[52.2,-202.3]],"pixelCount":1336}],"planeIds":{"width":512,"height":512,"dataPng":"data:image/png;base64,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"},"shading":{"width":128,"height":128,"neutral":128,"dataPng":"data:image/png;base64,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"}}'),qn=JSON.parse('{"version":1,"image":{"width":2000,"height":1300,"fileName":"room-example-14.jpg"},"camera":{"fovYDeg":46.85,"fx":909.0403,"fy":590.8762,"cx":255.9978,"cy":256.0005,"net":512,"frame":"+X right, +Y down, +Z forward; meters; OpenCV"},"planes":[{"id":1,"kind":"floor","polygon3D":[[-2.94,1.12,1.7007],[2.0573,1.12,0.6517],[2.9124,1.076,4.7249],[-2.085,1.076,5.7739]],"polygon2D":[[-5138.6,1638],[12210.4,3228.5],[3188.8,991.7],[-282.3,929.6]],"pixelCount":39164},{"id":2,"kind":"wall","polygon3D":[[-1.149,3.2799,4.3039],[0.9715,3.2799,4.4413],[0.9888,-4.3113,4.174],[-1.1317,-4.3113,4.0366]],"polygon2D":[[52,1793.3],[1776.7,1758],[1841.2,-899.6],[4.5,-952.3]],"pixelCount":124984},{"id":3,"kind":"wall","polygon3D":[[1.0927,4.0707,4.5124],[1.1069,4.0707,3.8596],[1.0596,-4.7237,3.8586],[1.0454,-4.7237,4.5114]],"polygon2D":[[1859.9,2003.4],[2018.4,2232.3],[1975.1,-1186.6],[1822.8,-920.9]],"pixelCount":12478},{"id":4,"kind":"wall","polygon3D":[[-0.9813,6.4779,3.8224],[-0.9379,6.4779,8.338],[-1.1517,-5.9419,8.3401],[-1.1951,-5.9419,3.8244]],"polygon2D":[[88.4,3192.5],[600.6,1815.6],[509.6,-418.9],[-109.7,-1680.9]],"pixelCount":1820}],"planeIds":{"width":512,"height":512,"dataPng":"data:image/png;base64,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"},"shading":{"width":128,"height":128,"neutral":128,"dataPng":"data:image/png;base64,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"}}'),qi=JSON.parse('{"version":1,"image":{"width":2000,"height":1300,"fileName":"room-example-15.jpg"},"camera":{"fovYDeg":46.78,"fx":910.4678,"fy":591.8041,"cx":256.0003,"cy":256.0005,"net":512,"frame":"+X right, +Y down, +Z forward; meters; OpenCV"},"planes":[{"id":1,"kind":"floor","polygon3D":[[-3.567,1.4458,5.8989],[-2.171,1.4458,0.6437],[3.5896,1.349,2.174],[2.1936,1.349,7.4292]],"polygon2D":[[-1150.6,1018.3],[-10994.8,4024.9],[6872.4,1582.4],[2050.1,922.8]],"pixelCount":29996},{"id":2,"kind":"wall","polygon3D":[[-1.0442,4.4985,3.8051],[0.3624,4.4985,4.7905],[0.3446,-4.8826,4.816],[-1.062,-4.8826,3.8305]],"polygon2D":[[24,2426.5],[1269,2061],[1254.5,-873.4],[14,-1265.3]],"pixelCount":125241},{"id":3,"kind":"wall","polygon3D":[[0.5026,4.5778,5.3354],[1.2253,4.5778,4.2733],[1.123,-5.197,4.2037],[0.4002,-5.197,5.2657]],"polygon2D":[[1335,1939.3],[2019.8,2259.7],[1950.1,-1207.7],[1270.3,-833]],"pixelCount":63743},{"id":4,"kind":"wall","polygon3D":[[-0.7092,2.1349,4.0964],[0.4431,2.1349,2.7453],[0.4197,0.1215,2.7254],[-0.7326,0.1215,4.0764]],"polygon2D":[[384.3,1433.1],[1574,1818.5],[1547.7,717],[360.8,694.8]],"pixelCount":1277}],"planeIds":{"width":512,"height":512,"dataPng":"data:image/png;base64,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"},"shading":{"width":128,"height":128,"neutral":128,"dataPng":"data:image/png;base64,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"}}'),qa=JSON.parse('{"version":1,"image":{"width":2000,"height":1300,"fileName":"room.jpg"},"camera":{"fovYDeg":46.86,"fx":909.32,"fy":591.06,"cx":256,"cy":256,"net":512,"frame":"+X right, +Y down, +Z forward; meters; OpenCV"},"planes":[{"kind":"floor","polygon3D":[[1.2985,1.1722,5.5054],[-1.6272,1.1722,4.846],[-0.6999,0.9798,0.7309],[2.2259,0.9798,1.3902]],"polygon2D":[[1837.4,969.4],[-192.2,1012.9],[-2399.9,2660.9],[6684.7,1707.2]],"pixelCount":21724,"id":1},{"kind":"wall","polygon3D":[[-0.9505,3.4707,3.555],[0.6996,3.4707,4.0983],[0.6109,-4.2935,4.3676],[-1.0392,-4.2935,3.8243]],"polygon2D":[[50.7,2114.5],[1606,1920.3],[1496.6,-824.6],[35.2,-1034.1]],"pixelCount":135151,"id":2},{"kind":"wall","polygon3D":[[0.7451,2.7204,4.5579],[1.0313,2.7204,3.7229],[1.0502,-4.07,3.7293],[0.7639,-4.07,4.5644]],"polygon2D":[[1580.4,1545.3],[1983.6,1746.1],[1999.8,-987.1],[1594.2,-687.6]],"pixelCount":28490,"id":3}],"planeIds":{"width":512,"height":512,"dataPng":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAIAAAB7GkOtAAAACXBIWXMAAAPoAAAD6AG1e1JrAAAP1klEQVR42u3d627bOBCAUdl+/3feBQoEbWzLNEVKM5xzfi3abJvqMl+s63YHSOjBYZvNCBAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQDQAAEAEAABABAAAQAQAAEABAABAAQAAQAEAAEABAABAAQAAQAEAAEABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAEAAEABAABAAQAAQAEAAEABAABAAQAAQAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAwAQXAEAAEABAABAAQAAQAEAAEABAABAAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAEAAEABAABAAQAAQAEAAEABAABAAQAAQAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAEAAEABAABAAQAAQAEAAEABAABAAQAAQAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAAXg9rJ8IACAA68/6lwQAEIBac18AAO51Zr0AAOQLwDaNAAACsPigFwCAiAHYriMAgACUG/0CAAiAAAgAIAACIACAAAiAAAACIAACAAiAAAgAIAAC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"},"shading":{"width":128,"height":128,"neutral":128,"dataPng":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAIAAABMXPacAAAACXBIWXMAAAPoAAAD6AG1e1JrAAAgAElEQVR42t2dabM9RZGHzyfypREy4zgG4QjMDG6gosiqCLigICKiCAjI5gIygLgMoDOy7/u+KbKKiriGn2We0w83yZtVXafv/UPMhXxxok+f7j7dv19VZlZWVvbqmmuuufbaa6+77rqfT/KLSf5nkv/tyS9/+cvY9rBfLJBy2M+3Szmm+2v+ybu9rpFrG/Hp+PzvLfnZz37mJ/LTLfnJT37y4x//+Oqrr/7Rj3501VVXXXnllf81yeWXX/7DH/7w0ksv/f73v/+9733v4osvZuPcc889/fTTL7vsMg7m4jfccAN3fv3113vwD37wA5C57777br/99htvvPHWW2/ltvmJywLdo48++tBDD91zzz0cc/fdd/N11aIvFgX0VoKAJTSUYwq+3esU6Ls0KOVrMBEb12xJpiFEAuQATK+c5IorrpADMAVrYIWA7373u2x/61vfOuusszjGc/0JoPnkdO7klltu4Sv/zjG33XYbN8z+u+6668knn3zggQdghcvy07333vvYY4+t4hkKWGP0uxxk+NqvLYLl4IVctv2gJaDbMwoHmYboBPYA5IpJ7ASATicAaPvBOeecQyfgGM769re/fcEFF3znO9+5+eabAQTcQZ/9/BGfdKk77riDJn/nnXfS3vnkdK5DT+ITAp544olVbv4BQYGe/uWnGwMCxjLoHHOH+bU99+czMiCg2xWkIRRREBD9QMUiBxAA4pdccomqhuPPOOMM0L/oooto6WDNfXI1DuYvuEn+kYZPq/feQO/CCy/kYAi4//77af6csormP4e+0KPprk8SBGRjsJCDwdd8qS43c1wu56NYiMwBgGoGwhJEJwhLcN555wEiKgjc+fX888/nmqh7LgUsXAT0ORh8UTU0eZ6IA/gLegC9hF/B7YlJOABUV8XwikLgrhT0cz/ocuDXLjFzO3fH5UYOBgqq0CAHxRSHJVAR0eoBl1aPFoIGDgABTuS2uQi3xHW44COPPHL3JNwVV/DiDz/8MHw8/fTTbHD8r371K87lpzUBBbXc8EU/ZEBAxq71nQZu1RIC8mEDhdb6Tgs7hHoJmLI7FFooFNGlk3z961/nE4Y4kgM4mJvhdLQQoPN500030dhp4OznAHil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"}}');let qs={arizo:{PRIVACY_URL:"https://arizo.ru/privacy-policy/",POSTER_URL:"https://viewer.arizo.ru/poster/app/index.html",ROOM_URL:"https://integrations.arizo.ru/room-viewer",TERMS_URL:"https://arizo.ru/terms-of-use/"},vizbl:{PRIVACY_URL:"https://vizbl.com/legal/privacy-policy",POSTER_URL:"https://viewer.vizbl.com/poster/app/index.html",ROOM_URL:"https://integrations.vizbl.com/room-viewer",TERMS_URL:"https://vizbl.com/legal/terms-of-use"}};function qo(e){return new URL(`public/room-example/${e}`,"https://cdn.neurodyn.ai/LG8wPakWNRI1O7ssxPuAcY61sOV3nsofvg4tHjAoumHFWIFoX9u0yeIk9K19I8_J55pBcLct6_ytKI9fCz4/").toString()}function ql(e={}){return{...qa,image:{...qa.image,...e}}}let qc=[{id:"room-example-11",name:"Room Example 11",image_url:qo("room-example-11.jpg"),scene:qe},{id:"room-example-12",name:"Room Example 12",image_url:qo("room-example-12.jpg"),scene:qt},{id:"room-example-13",name:"Room Example 13",image_url:qo("room-example-13.jpg"),scene:qr},{id:"room-example-14",name:"Room Example 14",image_url:qo("room-example-14.jpg"),scene:qn},{id:"room-example-15",name:"Room Example 15",image_url:qo("room-example-15.jpg"),scene:qi}],qu=[{id:"carpet-bathroom",name:"Bathroom",image_url:qo("bathroom.jpg"),scene:W5},{id:"carpet-bedroom",name:"Bedroom",image_url:qo("bedroom.jpg"),scene:W8},{id:"carpet-entryway",name:"Entryway",image_url:qo("entryway.jpg"),scene:W6},{id:"carpet-living-room",name:"Living Room",image_url:qo("living-room.jpg"),scene:W7}],qd="RcSd3KphTyq_JQEjNCqKQA,gu0109ftQmS-UQkwcW010Q,nOfGLIZcRVeU93wOkHWSbg,ozzH5I2kQMW20ao-33C86A,DBA4wR-zT92vjtuOk9varg".split(",").map(e=>e.trim()).filter(Boolean);function qh(e,t){return!!(t?.uuid&&e.uuid===t.uuid||t?.tinuuid&&e.tinuuid===t.tinuuid)}function qp(e){return e.kit?.uuid??e.uuid??e.tinuuid??""}function qA(e){let t=WV(e.description),r=e.name?.trim(),n=t?` — ${t.size}`:null;if(r&&n&&r.endsWith(n)){let e=r.slice(0,-n.length).trim();if(e)return`rug-name:${e}`}return`object:${qp(e)}`}function qf(e,t){let r=new Set;return e.filter(e=>{let n=t(e);return!r.has(n)&&(r.add(n),!0)})}function qg(e,t){return qf(e.filter(e=>!!(e.tinuuid&&e.materials?.[0]&&!qh(e,t))),qp)}function qm(e,t){return qf(e.filter(e=>{let r;return!!(e.tinuuid&&e.materials?.[0]&&"string"==typeof(r=e.materials?.[0]?.native?.glbUrl)&&r.trim().length>0&&!qh(e,t))}),qA)}function qv(e){return e.hid??""}function qb({includeViewedObject:e=!1}={}){var t;let{material:r,tinuuid:n,viewedObject:i,setMaterial:a,setTinuuid:s,apiKey:o,baseURL:l,source:c,widgetSession:u,setAccessError:d,setLoadError:h}=WE(),{type:p}=Wx(),A=r?qv(r):"",f=i?.owner?.uuid,{data:g,error:m,isFetchingNextPage:v,fetchNextPage:b,hasNextPage:y,isLoading:w}=s4({queryKey:["room-viewer","public-objects",{apiKey:(t={apiKey:o,baseURL:l,source:c,resourceType:p}).apiKey??null,ownerUuid:f??null,resourceType:t.resourceType??null,source:t.source}],enabled:!!f,queryFn:({pageParam:e,signal:t})=>{if(!f)throw Error("Owner uuid is required.");return VR(f,e,{apiKey:o,baseURL:l,signal:t,source:c,widgetSession:u,resourceType:p})},initialPageParam:1,getNextPageParam:(e,t,r)=>void 0!==e.pages_count?r<e.pages_count?r+1:void 0:e.objs?.length?r+1:void 0,getPreviousPageParam:(e,t,r)=>r>1?r-1:void 0},s9,void 0),x=(0,ru.useMemo)(()=>g?.pages.flatMap(e=>e.objs??[])??[],[g]),C=(0,ru.useMemo)(()=>{let t="rugs"===p?qm:qg;if(e)return t([...i?.tinuuid&&i.materials?.[0]?[i]:[],...x],null);return t(x,i)},[x,e,p,i]),E=(0,ru.useMemo)(()=>C.flatMap(e=>{if(!e.tinuuid)return[];let t="rugs"===p?e.materials?.slice(0,1):e.materials;return t?.map(t=>{let r=qv(t);return r&&e.tinuuid?{materialId:r,material:t,tinuuid:e.tinuuid}:null}).filter(e=>null!==e)??[]}),[C,p]),S=C.find(e=>e.tinuuid===n),I=C.find(e=>e.tinuuid&&e.materials?.[0]);return(0,ru.useEffect)(()=>{let e=G1(m);e?d(e):m&&h("viewer-load-failed")},[m,d,h]),(0,ru.useEffect)(()=>{g&&0===C.length&&y&&!v&&b()},[g,b,y,v,C.length]),(0,ru.useEffect)(()=>{if(null!==r)return;let e=S??I,t=e?.materials?.[0];e&&t&&e.tinuuid&&(a(t),s(e.tinuuid))},[I,S,r,a,s]),{fetchNextMaterialsPage:(0,ru.useCallback)(()=>{!1===y||v||b()},[b,y,v]),hasNextPage:y,isFetchingNextPage:v,isLoading:w,materialItems:E,selectMaterial:(0,ru.useCallback)(e=>{let t=C.find(t=>t.materials?.some(t=>qv(t)===e)),r=t?.materials?.find(t=>qv(t)===e);return!!t&&!!r&&!!t.tinuuid&&(a(r),s(t.tinuuid),!0)},[C,a,s]),selectedMaterialId:A}}function qy({className:e,...t}){let{material:r,options:n,selectMaterial:i}=function(){let{material:e,setMaterial:t,setTinuuid:r,apiKey:n,baseURL:i,source:a,widgetSession:s}=WE(),o=function({queries:e,...t},r){let n=rA(void 0),i=ru.useContext(s$),a=ru.useContext(sY),s=ru.useMemo(()=>e.map(e=>{let t=n.defaultQueryOptions(e);return t._optimisticResults=i?"isRestoring":"optimistic",t}),[e,n,i]);s.forEach(e=>{s0(e),sJ(e,a)}),sX(a);let[o]=ru.useState(()=>new s8(n,s,t)),[l,c,u]=o.getOptimisticResult(s,t.combine),d=!i&&!1!==t.subscribed;ru.useSyncExternalStore(ru.useCallback(e=>d?o.subscribe(tZ.batchCalls(e)):tT,[o,d]),()=>o.getCurrentResult(),()=>o.getCurrentResult()),ru.useEffect(()=>{o.setQueries(s,t)},[s,t,o]);let h=l.some((e,t)=>s2(s[t],e))?l.flatMap((e,t)=>{let r=s[t];if(r){let t=new sG(n,r);if(s2(r,e))return s3(r,t,a);s1(e,i)&&s3(r,t,a)}return[]}):[];if(h.length>0)throw Promise.all(h);let p=l.find((e,t)=>{let r=s[t];return r&&sZ({result:e,errorResetBoundary:a,throwOnError:r.throwOnError,query:n.getQueryCache().get(r.queryHash),suspense:r.suspense})});if(p?.error)throw p.error;return c(u())}({queries:qd.map(e=>({queryKey:Vk(e,{apiKey:n,baseURL:i,source:a}),queryFn:({signal:t})=>VT(e,{apiKey:n,baseURL:i,signal:t,source:a,widgetSession:s})}))});(0,ru.useEffect)(()=>{let n=o[0]?.data,i=n?.materials?.[0],a=n?.tinuuid;null===e&&i&&a&&(t(i),r(a))},[e,o,t,r]);let l=(0,ru.useMemo)(()=>o.flatMap(e=>{let t=e.data,r=t?.materials?.[0];return t?.tinuuid&&r?.hid?[{material:r,materialId:r.hid,tinuuid:t.tinuuid}]:[]}),[o]),c=(0,ru.useCallback)(e=>{let n=l.find(t=>t.materialId===e);return!!n&&(t(n.material),r(n.tinuuid),!0)},[l,t,r]);return{material:e,options:l,selectMaterial:c}}(),{containerRef:a}=WS(),{t:s}=sr();return(0,rh.jsxs)(WX,{className:VP("w-fit",e),...t,children:[(0,rh.jsx)(WZ,{className:"text-xs text-text-sub font-medium",children:s("material")}),(0,rh.jsxs)(WP,{value:r?.hid??void 0,onValueChange:i,children:[(0,rh.jsx)(WN,{className:"w-[145px]",size:"md",children:(0,rh.jsxs)(WL,{placeholder:s("chooseMaterial"),children:[(0,rh.jsx)("div",{className:"size-5 rounded-full border border-border-light",style:{backgroundColor:`#${r?.miniature?.color?.hex}`}}),r?.miniature?.color?.name]})}),(0,rh.jsx)(WO,{portalContainer:a,children:n.map(({material:e,materialId:t,tinuuid:r})=>(0,rh.jsxs)(WF,{value:t,children:[(0,rh.jsx)("div",{className:"size-5 rounded-full border border-border-light",style:{backgroundColor:`#${e?.miniature?.color?.hex}`}}),e.miniature?.color?.name]},`${r}-${t}`))})]})]})}let qw=(0,ru.createContext)(null),qx=(0,ru.createContext)(null);function qC({value:e,defaultValue:t,onValueChange:r,...n}){let[i,a]=(0,ru.useState)(t),s=e??i,o=(0,ru.useMemo)(()=>({value:s}),[s]),l=(0,ru.useCallback)(t=>{r?.(t),void 0===e&&a(t)},[r,e]);return(0,rh.jsx)(qw,{value:o,children:(0,rh.jsx)(gs,{"data-slot":"tabs",value:s,onValueChange:l,...n})})}let qE=ls("cursor-pointer group inline-flex items-center justify-center shrink-0 whitespace-nowrap outline-none transition-colors relative z-10 text-text-base [&_svg]:text-icons-normal [&_svg]:transition-colors hover:text-text-dark hover:[&_svg]:text-icons-dark active:bg-background-base-3 active:text-text-dark active:[&_svg]:text-icons-dark data-[state=active]:bg-background-white data-[state=active]:text-text-dark data-[state=active]:[&_svg]:text-icons-dark disabled:pointer-events-none disabled:opacity-50 focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",{variants:{size:{default:"h-7 rounded-lg px-2 typo-button-normal active:rounded-lg data-[state=active]:rounded-lg [&_svg]:size-4",sm:"h-6 rounded-[4px] px-2 typo-button-small active:rounded-lg data-[state=active]:rounded-lg [&_svg]:size-4",lg:"h-9 rounded-lg px-3 typo-button-big active:rounded-lg data-[state=active]:rounded-lg [&_svg]:size-6"}},defaultVariants:{size:"default"}}),qS=ls("relative inline-flex items-center rounded-xl bg-background-base-2",{variants:{size:{default:"p-1",sm:"p-[3px]",lg:"p-1"}},defaultVariants:{size:"default"}});function qI({className:e,children:t,size:r="default",...n}){let i=(0,ru.use)(qw),a=(0,ru.useRef)(null),s=(0,ru.useRef)(new Map),o=(0,ru.useRef)(null),l=(0,ru.useRef)(i?.value),c=(0,ru.useRef)(null),u=(0,ru.useCallback)(()=>{c.current=null;let e=o.current;if(!e)return;let t=l.current;if(!t){e.style.opacity="0";return}let r=a.current,n=s.current.get(t);if(!r||!n){e.style.opacity="0";return}let i=Math.round(n.offsetLeft),u=Math.round(n.offsetTop),d=Math.round(n.offsetWidth),h=Math.round(n.offsetHeight);e.style.transform=`translate3d(${i}px, ${u}px, 0)`,e.style.width=`${d}px`,e.style.height=`${h}px`,e.style.opacity="1"},[]),d=(0,ru.useCallback)(()=>{null===c.current&&(c.current=requestAnimationFrame(()=>{u()}))},[u]),h=(0,ru.useCallback)((e,t)=>{t?s.current.set(e,t):s.current.delete(e),d()},[d]);(0,ru.useLayoutEffect)(()=>{l.current=i?.value,null!==c.current&&(cancelAnimationFrame(c.current),c.current=null),u()},[i?.value,u]),(0,ru.useEffect)(()=>{let e=a.current;if(!e||"u"<typeof ResizeObserver)return;let t=new ResizeObserver(()=>d());t.observe(e);let r=i?.value;if(r){let e=s.current.get(r);e&&t.observe(e)}return()=>{t.disconnect()}},[d,i?.value]),(0,ru.useEffect)(()=>()=>{null!==c.current&&cancelAnimationFrame(c.current)},[]);let p=(0,ru.useMemo)(()=>({registerTrigger:h,size:r}),[h,r]);return(0,rh.jsx)(gl,{ref:a,"data-slot":"tabs-list",className:VP(qS({size:r}),e),...n,children:(0,rh.jsxs)(qx,{value:p,children:[(0,rh.jsx)("div",{ref:o,"aria-hidden":!0,"data-slot":"tabs-indicator",className:"pointer-events-none absolute top-0 left-0 z-0 rounded-lg bg-background-white opacity-0 transition-[transform,width,height,opacity] duration-[250ms] ease-out motion-reduce:transition-none"}),t]})})}function qM({className:e,size:t,children:r,value:n,...i}){let a=(0,ru.use)(qx),s=(0,ru.useRef)(null),o=t??a?.size??"default",l=VP("relative z-10 inline-flex items-center justify-center","lg"===o?"gap-1.5":"gap-1");return(0,ru.useLayoutEffect)(()=>{if(a&&n)return a.registerTrigger(n,s.current),()=>{a.registerTrigger(n,null)}},[a,n]),(0,rh.jsx)(gu,{ref:s,"data-slot":"tabs-trigger",className:VP(qE({size:o}),"data-[state=active]:bg-transparent",e),value:n,...i,children:(0,rh.jsx)("span",{"data-slot":"tabs-trigger-content",className:l,children:r})})}function qB(e){let{t}=sr();return(0,ru.useMemo)(()=>[{value:0,label:t("mattingOptions.none")},{value:.05,label:`${Number(Wj(.05,e).toFixed(2)).toString()} ${t(`units.${e}`)}`}],[e,t])}function qk({className:e,...t}){let{displayUnit:r}=Wx(),{matting:n,setMatting:i}=WI(),{t:a}=sr(),s=qB(r);return(0,rh.jsxs)(WX,{className:VP("w-fit",e),...t,children:[(0,rh.jsx)(WZ,{className:"text-xs text-text-sub font-medium",children:a("matting")}),(0,rh.jsx)(qC,{value:n.toString(),onValueChange:e=>i(Number(e)),children:(0,rh.jsx)(qI,{children:s.map(e=>(0,rh.jsx)(qM,{value:e.value.toString(),children:e.label},e.value))})})]})}qI.displayName=gl.displayName,qM.displayName=gu.displayName,gh.displayName;let qT=/oklch\(([0-9.]+)\s+([0-9.]+)\s+([0-9.]+)\)/;function qR(e,t){let r=e.match(qT);return r?{l:Number.parseFloat(r[1]),c:Number.parseFloat(r[2]),h:Number.parseFloat(r[3])}:{l:t[0],c:t[1],h:t[2]}}function qD({data:e,foreground:t,background:r,robustness:n="M",className:i,...a}){let[s,o]=(0,ru.useState)(null);return((0,ru.useEffect)(()=>{(async()=>{try{let i=getComputedStyle(document.documentElement),a=t??i.getPropertyValue("--foreground"),s=r??i.getPropertyValue("--background"),l=qR(a,[.21,.006,285.885]),c=qR(s,[.985,0,0]),u=await vY.toString(e,{type:"svg",color:{dark:vq(vK({mode:"oklch",...l})),light:vq(vK({mode:"oklch",...c}))},width:200,errorCorrectionLevel:n,margin:0});o(u)}catch(e){console.error(e)}})()},[e,t,r,n]),s)?(0,rh.jsx)("div",{className:VP("size-full","[&_svg]:size-full",i),dangerouslySetInnerHTML:{__html:s},...a}):null}function q_({className:e,buttonClassName:t,buttonLeadingIcon:r,buttonLabel:n,buttonSize:i,buttonVariant:a="contrast",...s}){let{placement:o,type:l,width:c,height:u,name:d}=Wx(),{src:h,tinuuid:p,widgetSession:A}=WE(),{containerRef:f,resourceRef:g}=WS(),{t:m,i18n:v}=sr(),b=function(){let{i18n:e}=sr();return"ru"===(e.resolvedLanguage??e.language)?"arizo":"vizbl"}(),[y,w]=(0,ru.useState)(""),[x,C]=(0,ru.useState)(""),[E,S]=(0,ru.useState)(()=>A?.token),[I,M]=(0,ru.useState)(!1),[B,k]=(0,ru.useState)(!1),T=(0,ru.useRef)(null),R=v.resolvedLanguage??v.language,D=qs[b],_=(0,ru.useMemo)(()=>(function({height:e,language:t,name:r,src:n,tenantConfig:i,tinuuid:a,placement:s,type:o,width:l,widgetSessionToken:c,pageUrl:u}){if("floor"===s&&a){let e=new URL(i.ROOM_URL);return e.searchParams.set("type",o),e.searchParams.set("tinuuid",a),e.searchParams.set("name",r),e.searchParams.set("language",t),c&&e.searchParams.set("widgetSessionToken",c),e.toString()}let d=new URL(i.POSTER_URL);return n&&d.searchParams.set("texture",function(e,t){if(!t||/^[a-z][a-z0-9+.-]*:/i.test(e)||e.startsWith("//"))return e;try{return new URL(e,t).href}catch{return e}}(n,u)),d.searchParams.set("texture_width",(100*l).toString()),d.searchParams.set("texture_height",(100*e).toString()),c&&d.searchParams.set("widgetSessionToken",c),d.toString()})({height:u,language:R,name:d,src:h,tenantConfig:D,tinuuid:p,placement:o,type:l,width:c,widgetSessionToken:E,pageUrl:"u"<typeof window?void 0:window.location.href}),[h,p,o,l,c,u,d,R,D,E]),P=(0,ru.useMemo)(()=>{if(!p)return null;let e=new URL("https://appclip.apple.com/id");return e.searchParams.set("p","com.us.vizbl.Clip"),e.searchParams.set("tinuuid",p),e.toString()},[p]);async function L(){S(await A?.getTokenForRequest().catch(()=>A.token))}let N=async()=>{if("floor"===o){if(!p)return;if(WT&&P){VM(A,"appclip"),window.location.assign(P);return}await L(),M(!0);return}let e=T.current,t=g.current;if(e&&t)if(e.canActivateAR)try{k(!0);let e=t.clone(!0);if(e.position.set(0,0,0),WT){let t=new M2,r=await t.parseAsync(e),n=new File([r],"scene.usdz",{type:"model/vnd.usdz+zip"});w(URL.createObjectURL(n))}else{let t=new Br,r=await t.parseAsync(e,{binary:!0}),n=new File([r],"scene.glb",{type:"model/gltf-binary"});C(URL.createObjectURL(n))}}finally{k(!1)}else await L(),M(!0)};return((0,ru.useEffect)(()=>((""!==y||""!==x)&&T.current?.activateAR(),()=>{""!==y&&URL.revokeObjectURL(y),""!==x&&URL.revokeObjectURL(x)}),[y,x]),WR&&WD||"floor"===o&&!p)?null:(0,rh.jsxs)("div",{className:VP(e),...s,children:[(0,rh.jsxs)(VN,{variant:a,size:i,disabled:B,onClick:N,className:t,children:[r,n??m("ar.viewInPlace")]}),(0,rh.jsx)(VO,{open:I,onOpenChange:M,children:(0,rh.jsxs)(Vz,{className:"gap-6 sm:max-w-120",showCloseButton:!1,portalContainer:f,children:[(0,rh.jsx)("div",{className:"flex items-center justify-center p-10 bg-constant-white rounded-2xl",children:(0,rh.jsx)(qD,{className:"size-48",robustness:"H",data:_})}),(0,rh.jsx)("p",{className:"text-lg text-center text-text-sub font-medium",children:m("ar.scanQrCode")}),(0,rh.jsxs)("p",{className:"text-xs text-center text-text-light",children:[m("ar.deviceRequirementsDisclaimer"),(0,rh.jsx)("br",{}),(0,rh.jsx)("a",{href:D.TERMS_URL,target:"_blank",rel:"noopener noreferrer",className:"underline underline-offset-2 transition-colors duration-300 hover:text-text-dark",style:{textDecoration:"underline",textUnderlineOffset:"2px"},children:m("legal.termsOfUse")})," ",m("legal.conjunction")," ",(0,rh.jsx)("a",{href:D.PRIVACY_URL,target:"_blank",rel:"noopener noreferrer",className:"underline underline-offset-2 transition-colors duration-300 hover:text-text-dark",style:{textDecoration:"underline",textUnderlineOffset:"2px"},children:m("legal.privacyPolicy")})]}),(0,rh.jsx)(VQ,{asChild:!0,children:(0,rh.jsx)(VN,{variant:"contrast",size:"lg",children:m("close")})})]})}),(0,rh.jsx)("model-viewer",{ref:T,className:"fixed w-px h-px opacity-0 pointer-events-none",src:x,iosSrc:y,reveal:"manual",ar:!0,cameraControls:!0,arPlacement:"wall",arModes:"webxr",arScale:"fixed",shadowIntensity:1,interactionPromptThreshold:100})]})}let qP={width:void 0,height:void 0};function qL(e,t,r){return e[t]?Array.isArray(e[t])?e[t][0][r]:e[t][r]:"contentBoxSize"===t?e.contentRect["inlineSize"===r?"width":"height"]:void 0}function qN(e){return e.image.width/e.image.height}async function qO(e,t,r){let n=new Image;n.crossOrigin="anonymous",await new Promise((t,r)=>{n.onload=()=>t(),n.onerror=()=>r(Error("Failed to decode room plane id map.")),n.src=e});let i=document.createElement("canvas"),a=i.getContext("2d");if(!a)throw Error("Failed to get 2D context for room plane id map.");i.width=t,i.height=r,a.drawImage(n,0,0,t,r);var s=a.getImageData(0,0,t,r);let o=new Uint8Array(t*r);for(let e=0;e<o.length;e++)o[e]=s.data[4*e]??0;return{data:o,width:t,height:r}}async function qF(e,t){return new Promise((r,n)=>{e.toBlob(e=>{e?r(e):n(Error(t))},"image/png")})}function qQ({ref:e}){let{camera:t,gl:r,invalidate:n,scene:i}=Q9();return(0,ru.useImperativeHandle)(e,()=>({capture:async()=>{let e;n(),await new Promise(e=>requestAnimationFrame(()=>e()));let a=(e=new Map,i.traverse(t=>{!0===t.userData.excludeFromCapture&&(e.set(t,t.visible),t.visible=!1)}),()=>{e.forEach((e,t)=>{t.visible=e})});try{return r.render(i,t),await qF(r.domElement,"Failed to create scene share image")}finally{a(),n()}}}),[t,r,n,i]),null}let qU=new bS(0,0,1),qz=new bS(0,0,1);function qH(e){return new bE().setFromUnitVectors(qU,e.clone().normalize())}function qj(e,t,r,n){let i,a,s,o,l,c,u=(a=new bS((i=e.geometry.attributes.position).getX(0),i.getY(0),i.getZ(0)),s=new bS(i.getX(1),i.getY(1),i.getZ(1)),o=new bS(i.getX(2),i.getY(2),i.getZ(2)),l=new bS().crossVectors(s.sub(a),o.sub(a)).normalize(),c=r.position.clone().sub(t).normalize(),0>l.dot(c)&&l.multiplyScalar(-1),l),d=t.clone().addScaledVector(u,.05),h=function(e,t){if("floor"===t)return qH(e);let r=e.clone().normalize(),n=qz.clone().addScaledVector(r,-qz.dot(r));if(1e-6>n.lengthSq())return qH(r);n.normalize();let i=new bS().crossVectors(n,r).normalize(),a=new yh().makeBasis(i,n,r);return new bE().setFromRotationMatrix(a)}(u,n);return{position:d.toArray(),quaternion:h.toArray(),activePlaneId:e.userData.planeId}}function qG(e){return{placementKey:e,planeIdMap:null,resourcePose:null}}function qV(e,t){if("reset-placement"===t.type)return qG(t.placementKey);if(t.placementKey!==e.placementKey)return e;switch(t.type){case"reset-plane-id-map":return{...e,planeIdMap:null};case"set-plane-id-map":return{...e,planeIdMap:t.planeIdMap};case"set-resource-pose":return{...e,resourcePose:t.resourcePose}}}let qW="NEURODYN_ROOM_SCENE_PATCH";function qq(e,t){let r=e.onBeforeCompile,n=e.customProgramCacheKey.bind(e),i=e.side,a=e.transparent,s=e.alphaToCoverage;return e.side=2,e.transparent=!0,e.alphaToCoverage=!0,e.onBeforeCompile=(n,i)=>{r?.call(e,n,i),function(e,t){e.uniforms.uPlaneIds={value:t.planeIdsTexture},e.uniforms.uShading={value:t.shadingTexture},e.uniforms.uActiveId=t.activePlaneIdUniform,e.uniforms.uPlaneIdsSize={value:t.planeIdsSize},e.uniforms.uViewport={value:t.viewport};let r=`
7489
7496
  {
7490
7497
  vec2 _neurodynRoomUv = gl_FragCoord.xy / uViewport;
7491
7498
  float _neurodynRoomCoverage = neurodynRoomScenePlaneCoverage(_neurodynRoomUv);
@@ -7497,8 +7504,8 @@ Defaulting to \`null\`.`));let u=Wu(a,c)?a:null,d=Wl(u)?o(u,c):void 0;return(0,r
7497
7504
  }
7498
7505
  `,n=e.fragmentShader.replace("#include <common>",`
7499
7506
  #include <common>
7500
- #ifndef ${qV}
7501
- #define ${qV}
7507
+ #ifndef ${qW}
7508
+ #define ${qW}
7502
7509
  uniform sampler2D uPlaneIds;
7503
7510
  uniform sampler2D uShading;
7504
7511
  uniform float uActiveId;
@@ -7535,5 +7542,5 @@ Defaulting to \`null\`.`));let u=Wu(a,c)?a:null,d=Wl(u)?o(u,c):void 0;return(0,r
7535
7542
  #endif
7536
7543
  `);if(n.includes("#include <output_fragment>")){e.fragmentShader=n.replace("#include <output_fragment>",`${r}
7537
7544
  #include <output_fragment>`);return}e.fragmentShader=n.replace("#include <opaque_fragment>",`${r}
7538
- #include <opaque_fragment>`)}(n,t)},e.customProgramCacheKey=()=>`${n()}|neurodyn-room-scene-v2`,e.needsUpdate=!0,()=>{e.onBeforeCompile=r,e.customProgramCacheKey=n,e.side=i,e.transparent=a,e.alphaToCoverage=s,e.needsUpdate=!0}}function qq(e,t,r){let n=e.clone().sub(t).applyQuaternion(r);return Math.atan2(n.y,n.x)}let qK={excludeFromCapture:!0};function qY({resourceBounds:e}){let{resourceRef:t,rotation:r,setIsDragging:n,setRotation:i}=WE(),a=UF("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABAAAAAQACAYAAAB/HSuDAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDkuMS1jMDAyIDc5LmI3YzY0Y2NmOSwgMjAyNC8wNy8xNi0xMjozOTowNCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDI2LjAgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QjYxMUY4MDQ3RTJDMTFGMTlCMkNBN0Y1RDJDNzNDQzYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QjYxMUY4MDU3RTJDMTFGMTlCMkNBN0Y1RDJDNzNDQzYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpCNjExRjgwMjdFMkMxMUYxOUIyQ0E3RjVEMkM3M0NDNiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpCNjExRjgwMzdFMkMxMUYxOUIyQ0E3RjVEMkM3M0NDNiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PiAtRloAAIYkSURBVHja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"),s=(0,ru.useRef)(null),o=(0,ru.useMemo)(()=>{let t,r;return r=1.15*Math.max((t=e.getSize(new bS)).x,t.y),{positionZ:e.min.z-.001*r,side:r}},[e]);(0,ru.useLayoutEffect)(()=>{a.colorSpace="srgb",a.needsUpdate=!0},[a]);let l=e=>{if(!s.current)return;e.stopPropagation();let{pointerId:t,pointerTarget:r}=s.current;r.hasPointerCapture(t)&&r.releasePointerCapture(t),s.current=null,n(!1)};return o.side<=0?null:(0,rh.jsxs)("mesh",{"position-z":o.positionZ,userData:qK,onPointerCancel:l,onPointerDown:e=>{var i;let a=t.current;if(!a||(i=e.object,e.intersections.map(e=>e.object)[0]!==i))return;e.stopPropagation(),e.nativeEvent.stopPropagation();let o=e.target;o.setPointerCapture(e.pointerId),a.updateWorldMatrix(!0,!1);let l=a.getWorldQuaternion(new bE),c=a.getWorldPosition(new bS),u=new bS(0,0,1).applyQuaternion(l);s.current={center:c,initialPoint:e.point.clone(),initialRotation:r,plane:new xz().setFromNormalAndCoplanarPoint(u,c),pointerId:e.pointerId,pointerTarget:o,surfaceQuaternion:l},n(!0)},onPointerMove:e=>{let t=s.current;if(!t)return;e.stopPropagation();let r=e.ray.intersectPlane(t.plane,new bS);r&&i(function({center:e,currentPoint:t,initialPoint:r,initialRotation:n,surfaceQuaternion:i}){let a=i.clone().invert(),s=qq(r,e,a),o=qq(t,e,a);return((n+bx.radToDeg(o-s)+180)%360+360)%360-180}({...t,currentPoint:r}))},onPointerUp:l,children:[(0,rh.jsx)("planeGeometry",{args:[o.side,o.side]}),(0,rh.jsx)("meshBasicMaterial",{map:a,transparent:!0,depthWrite:!1,side:2,toneMapped:!1})]})}let qJ=Math.PI/2;function qX(e){let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId)}function qZ({glbUrl:e,position:t,quaternion:r,materialPatch:n}){let{type:i}=Ww(),{resourceRef:a,rotation:s,setIsDragging:o}=WE(),l=zT(e),{sceneInstance:c,materials:u,resourceBounds:d}=(0,ru.useMemo)(()=>{let e,t=l.scene.clone(!0),r=(e=new Set,t.traverse(t=>{if(!t.isMesh||!t.material)return;if(Array.isArray(t.material)){t.material=t.material.map(t=>{let r=t.clone();return e.add(r),r});return}let r=t.material.clone();e.add(r),t.material=r}),Array.from(e)),n=new bY().setFromObject(t).applyMatrix4(new yh().makeRotationX(qJ));return{sceneInstance:t,materials:r,resourceBounds:n}},[l]),h=(0,ru.useMemo)(()=>bx.degToRad(s),[s]);return(0,ru.useLayoutEffect)(()=>{let e=u.map(e=>qW(e,n));return()=>{e.forEach(e=>e())}},[u,n]),(0,rh.jsx)("group",{ref:a,position:t,quaternion:r,onPointerDown:e=>{e.nativeEvent.stopPropagation(),e.target.setPointerCapture(e.pointerId),o(!0)},onPointerUp:e=>{qX(e),o(!1)},onPointerCancel:e=>{qX(e),o(!1)},children:(0,rh.jsxs)("group",{"rotation-z":h,children:["rugs"===i?(0,rh.jsx)(qY,{resourceBounds:d}):null,(0,rh.jsx)("group",{"rotation-x":qJ,children:(0,rh.jsx)("primitive",{object:c})})]})})}function q$(){let{room:e}=Wx(),t=Q9(e=>e.scene),r=Q6(Sv,e.image_url);return(0,ru.useLayoutEffect)(()=>(r.colorSpace="srgb",t.background=r,()=>{t.background===r&&(t.background=null)}),[t,r]),null}function q0({plane:e,geometry:t,setPlaneRef:r}){return(0,rh.jsx)("mesh",{ref:t=>r(e,t),geometry:t,userData:{planeId:e.id,kind:e.kind},children:(0,rh.jsx)("meshBasicMaterial",{visible:!1,side:2})})}function q1(e,t){(0,ru.useLayoutEffect)(()=>{let r=e.current;if(r)return qW(r,t)},[e,t])}let q2=[1,1,1];function q3({node:e,position:t,scale:r=q2,uvScale:n,materialPatch:i}){let a=(0,ru.useRef)(null);return(0,ru.useEffect)(()=>{if(!a.current||void 0===n)return;let t=a.current.geometry.attributes.uv,r=e.geometry.attributes.uv.array;for(let e=0;e<t.count;e++){let i=r[2*e],a=r[2*e+1];t.setXY(e,i*n,a)}t.needsUpdate=!0},[n,e.geometry]),(0,ru.useLayoutEffect)(()=>{let e=a.current?.material;if(!e)return;let t=(Array.isArray(e)?e:[e]).map(e=>qW(e,i));return()=>{t.forEach(e=>e())}},[i,e]),(0,rh.jsx)(z_,{ref:a,object:e,position:t,scale:r})}function q4({width:e,height:t,materialPatch:r}){let{material:n}=WC(),{nodes:i}=zT(n?.native?.glbUrl),a=(0,ru.useMemo)(()=>{let e=new bS,t={};["vizbl0","vizbl1","vizbl2","vizbl3","vizbl4","vizbl5","vizbl6","vizbl7"].forEach(r=>{let n=i[r];if(!n?.geometry)return;let a=n.clone();a.geometry=n.geometry.clone(),Array.isArray(n.material)?a.material=n.material.map(e=>e.clone()):n.material&&(a.material=n.material.clone()),a.updateMatrixWorld(!0),a.geometry.applyMatrix4(a.matrixWorld),a.position.set(0,0,0),a.rotation.set(0,0,0),a.scale.set(1,1,1),a.updateMatrixWorld(!0),a.geometry.computeBoundingBox(),a.geometry.boundingBox&&(a.geometry.boundingBox.getCenter(e),a.geometry.translate(-e.x,-e.y,-e.z)),a.geometry.computeBoundingBox(),t[r]=a});let r=t.vizbl0;if(!r?.geometry)throw Error("Corner mesh not found");let n=r.geometry.boundingBox,a=n.max.x-n.min.x,s=n.max.y-n.min.y,o={top:0,bottom:0,left:0,right:0},l={top:0,bottom:0,left:0,right:0},c=t.vizbl1;if(c?.geometry){let e=c.geometry.boundingBox;o.top=e.max.x-e.min.x,l.top=e.max.y-e.min.y}let u=t.vizbl3;if(u?.geometry){let e=u.geometry.boundingBox;o.right=e.max.y-e.min.y,l.right=e.max.x-e.min.x}let d=t.vizbl5;if(d?.geometry){let e=d.geometry.boundingBox;o.bottom=e.max.x-e.min.x,l.bottom=e.max.y-e.min.y}let h=t.vizbl7;if(h?.geometry){let e=h.geometry.boundingBox;o.left=e.max.y-e.min.y,l.left=e.max.x-e.min.x}return{cornerSize:{width:a,height:s},barLengths:o,barThickness:l,normalizedNodes:t}},[i]),s=e-2*a.cornerSize.width+.002,o=t-2*a.cornerSize.height+.002,l=s/a.barLengths.top,c=s/a.barLengths.bottom,u=o/a.barLengths.left,d=o/a.barLengths.right;return(0,rh.jsxs)("group",{children:[(0,rh.jsx)(q3,{node:a.normalizedNodes.vizbl0,position:[-e/2+a.cornerSize.width/2-.001,t/2-a.cornerSize.height/2+.001,0],materialPatch:r}),(0,rh.jsx)(q3,{node:a.normalizedNodes.vizbl1,position:[0,t/2-a.barThickness.top/2+.001,0],scale:[l,1,1],uvScale:l,materialPatch:r}),(0,rh.jsx)(q3,{node:a.normalizedNodes.vizbl2,position:[e/2-a.cornerSize.width/2+.001,t/2-a.cornerSize.height/2+.001,0],materialPatch:r}),(0,rh.jsx)(q3,{node:a.normalizedNodes.vizbl3,position:[e/2-a.barThickness.right/2+.001,0,0],scale:[1,d,1],uvScale:d,materialPatch:r}),(0,rh.jsx)(q3,{node:a.normalizedNodes.vizbl4,position:[e/2-a.cornerSize.width/2+.001,-t/2+a.cornerSize.height/2-.001,0],materialPatch:r}),(0,rh.jsx)(q3,{node:a.normalizedNodes.vizbl5,position:[0,-t/2+a.barThickness.bottom/2-.001,0],scale:[c,1,1],uvScale:c,materialPatch:r}),(0,rh.jsx)(q3,{node:a.normalizedNodes.vizbl6,position:[-e/2+a.cornerSize.width/2-.001,-t/2+a.cornerSize.height/2-.001,0],materialPatch:r}),(0,rh.jsx)(q3,{node:a.normalizedNodes.vizbl7,position:[-e/2+a.barThickness.left/2-.001,0,0],scale:[1,u,1],uvScale:u,materialPatch:r})]})}function q9({width:e,height:t,position:r,quaternion:n,materialPatch:i}){let a=(0,ru.useRef)(null);return q1(a,i),(0,rh.jsxs)("mesh",{position:r,quaternion:n,children:[(0,rh.jsx)("planeGeometry",{args:[e,t]}),(0,rh.jsx)("meshStandardMaterial",{ref:a,color:"white"})]})}function q5({src:e,position:t,quaternion:r,materialPatch:n}){let{width:i,height:a}=Ww(),{material:s}=WC(),{frameWidth:o,matting:l}=WS(),{angle:c,rotation:u,resourceRef:d,setIsDragging:h}=WE(),p=Q6(Sv,e),A=(0,ru.useRef)(null),f=(0,ru.useMemo)(()=>bx.degToRad(c),[c]),g=(0,ru.useMemo)(()=>bx.degToRad(u),[u]);q1(A,n);let m=i+2*l,v=a+2*l,b=l>0?m:i,y=l>0?v:a;return(0,rh.jsx)("group",{ref:d,position:t,quaternion:r,onPointerDown:()=>h(!0),onPointerUp:()=>h(!1),onPointerLeave:()=>h(!1),children:(0,rh.jsxs)("group",{rotation:[0,g,f],children:[s?.native?.glbUrl&&o>0&&(0,rh.jsx)(q4,{width:b,height:y,materialPatch:n}),l>0&&(0,rh.jsx)(q9,{width:m,height:v,position:[0,0,.01],materialPatch:n}),(0,rh.jsxs)("mesh",{position:[0,0,.02],children:[(0,rh.jsx)("planeGeometry",{args:[i,a]}),(0,rh.jsx)("meshStandardMaterial",{ref:A,map:p})]})]})})}function q8(){let{placement:e}=Ww(),{src:t,glbUrl:r}=WC(),{room:n}=Wx(),{patchSceneLoad:i}=WE(),{gl:a,size:s,camera:o,invalidate:l,raycaster:c,pointer:u}=Q9(),d=(0,ru.useMemo)(()=>n.scene??qo(),[n.scene]),[h,p]=Q6(Sv,[d.planeIds.dataPng,d.shading?.dataPng??"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR4nGNoaGgAAAMEAYFL09IQAAAAAElFTkSuQmCC"]),A=function({camera:e,invalidate:t,pointer:r,raycaster:n,roomId:i,scene:a,placement:s}){let o=`${i}:${s}`,l=(0,ru.useMemo)(()=>({value:0}),[]),[c,u]=(0,ru.useReducer)(qG,o,qj),d=(0,ru.useRef)(null),h=(0,ru.useRef)(new Map),p=(0,ru.useRef)(null),A=c.placementKey===o?c.planeIdMap:null,f=c.placementKey===o?c.resourcePose:null,g=(0,ru.useMemo)(()=>a.planes.filter(e=>"floor"===s?"floor"===e.kind:"floor"!==e.kind),[a,s]),m=(0,ru.useMemo)(()=>g.map(e=>e.id),[g]),v=(0,ru.useMemo)(()=>new Map(a.planes.map(e=>{let t,r;return[e.id,(t=e.polygon3D.flatMap(e=>(function(e,t){let[r,n,i]=e;return[r*(qL(t)*(t.camera.fx/t.camera.fy)),i,-n]})(e,a)),(r=new wC).setAttribute("position",new wf(t,3)),e.polygon3D.length>=4&&r.setIndex([0,1,2,0,2,3]),r)]})),[a]),b=(0,ru.useMemo)(()=>({artifactsReady:null!==A,placementReady:null!==f,prepareReady:null!==f}),[A,f]),y=(0,ru.useCallback)((e,t)=>{t?h.current.set(e.id,t):h.current.delete(e.id)},[]);(0,ru.useEffect)(()=>{let e=!1;return u({type:"reset-plane-id-map",placementKey:o}),qN(a.planeIds.dataPng,a.planeIds.width,a.planeIds.height).then(t=>{e||u({type:"set-plane-id-map",placementKey:o,planeIdMap:t})}).catch(t=>{console.error(t),e||u({type:"reset-plane-id-map",placementKey:o})}),()=>{e=!0}},[o,a.planeIds]),(0,ru.useEffect)(()=>{u({type:"reset-placement",placementKey:o}),d.current=null,l.value=0,p.current=null},[l,o]);let w=(0,ru.useCallback)((r,n,i=null)=>{let a,c=qH(r,n,e,s),h=i?(a=new bS(...i).applyQuaternion(new bE(...c.quaternion)).add(new bS(...c.position)),{...c,position:a.toArray()}):c;d.current=h.activePlaneId,l.value=h.activePlaneId,u({type:"set-resource-pose",placementKey:o,resourcePose:h}),t()},[l,e,t,o,s]),x=(0,ru.useCallback)(t=>A?function({activePlaneId:e,allowedPlaneIds:t,camera:r,planeIdMap:n,planeMap:i,pointer:a,raycaster:s}){let o=new Set(t),l=[],c=new Set,u=e=>{!(null===e||c.has(e))&&o.has(e)&&(c.add(e),l.push(e))};for(let o of(u(function(e,t){let r=Math.floor((e.x+1)*.5*t.width),n=Math.floor((1-e.y)*.5*t.height);if(r<0||n<0||r>=t.width||n>=t.height)return null;let i=t.data[n*t.width+r]??0;return i>0?i:null}(a,n)),u(e),t.forEach(u),s.setFromCamera(a,r),l)){let e=i.get(o),t=e?s.intersectObject(e,!1)[0]:null;if(t)return t}return null}({activePlaneId:d.current,allowedPlaneIds:m,camera:e,planeIdMap:A,planeMap:h.current,pointer:t,raycaster:n}):null,[m,e,A,n]);(0,ru.useEffect)(()=>{if(!A||null!==f)return;let r=function({allowedPlanes:e,camera:t,planeMap:r,placement:n}){let i=e[0],a=i?r.get(i.id):null;return a?qH(a,function(e){let t=e.geometry.attributes.position,r=new bS;for(let e=0;e<t.count;e++)r.add(new bS(t.getX(e),t.getY(e),t.getZ(e)));return r.divideScalar(Math.max(1,t.count))}(a),t,n):null}({allowedPlanes:g,camera:e,planeMap:h.current,placement:s});r&&(d.current=r.activePlaneId,l.value=r.activePlaneId,u({type:"set-resource-pose",placementKey:o,resourcePose:r}),t())},[l,g,e,t,o,A,f,s]);let C=(0,ru.useCallback)(()=>{let t,n=x(r);if(!n||!f){p.current=null;return}let i=qH(n.object,n.point,e,s);t=new bE(...i.quaternion).invert(),p.current=new bS(...f.position).sub(new bS(...i.position)).applyQuaternion(t).toArray()},[e,x,s,r,f]);return{activePlaneIdUniform:l,handleDrag:(0,ru.useCallback)(()=>{let e=x(r);e&&w(e.object,e.point,p.current)},[x,r,w]),handleDragEnd:(0,ru.useCallback)(()=>{p.current=null},[]),handleDragStart:C,planeGeometries:v,readiness:b,resourcePose:f,setPlaneRef:y}}({camera:o,invalidate:l,pointer:u,raycaster:c,roomId:n.id,scene:d,placement:e}),f=(0,ru.useMemo)(()=>new bC(1,1),[]),g=(0,ru.useMemo)(()=>new bC(d.planeIds.width,d.planeIds.height),[d.planeIds.height,d.planeIds.width]),m=(0,ru.useMemo)(()=>({planeIdsTexture:h,shadingTexture:p,planeIdsSize:g,viewport:f,activePlaneIdUniform:A.activePlaneIdUniform}),[A.activePlaneIdUniform,g,h,p,f]);(0,ru.useLayoutEffect)(()=>{o instanceof wq&&(o.fov=d.camera.fovYDeg),o.position.set(0,0,0),o.up.set(0,0,1),o.lookAt(0,1,0),o.updateProjectionMatrix(),l()},[o,l,d.camera.fovYDeg]),(0,ru.useLayoutEffect)(()=>{h.minFilter=1003,h.magFilter=1003,h.wrapS=1001,h.wrapT=1001,h.generateMipmaps=!1,h.needsUpdate=!0,p.minFilter=1006,p.magFilter=1006,p.wrapS=1001,p.wrapT=1001,p.generateMipmaps=!1,p.needsUpdate=!0},[h,p]),(0,ru.useLayoutEffect)(()=>{a.getDrawingBufferSize(f),f.set(Math.max(1,f.x),Math.max(1,f.y))},[a,s.height,s.width,f]);let{artifactsReady:v,placementReady:b,prepareReady:y}=A.readiness;return(0,ru.useEffect)(()=>{i({artifactsReady:v,placementReady:b,prepareReady:y})},[v,i,b,y]),(0,rh.jsxs)(rh.Fragment,{children:["floor"===e?A.resourcePose&&r&&(0,rh.jsx)(H_,{autoTransform:!1,onDrag:A.handleDrag,onDragEnd:A.handleDragEnd,onDragStart:A.handleDragStart,children:(0,rh.jsx)(qZ,{glbUrl:r,position:A.resourcePose.position,quaternion:A.resourcePose.quaternion,materialPatch:m})}):A.resourcePose&&t&&(0,rh.jsx)(H_,{autoTransform:!1,onDrag:A.handleDrag,onDragEnd:A.handleDragEnd,onDragStart:A.handleDragStart,children:(0,rh.jsx)(q5,{src:t,position:A.resourcePose.position,quaternion:A.resourcePose.quaternion,materialPatch:m})}),d.planes.map(e=>(0,rh.jsx)(q0,{plane:e,geometry:A.planeGeometries.get(e.id),setPlaneRef:A.setPlaneRef},e.id)),(0,rh.jsx)(q$,{})]})}let q6={position:[0,0,0],up:[0,0,1],near:.01,far:100};function q7({className:e,ref:t,captureRef:r,onSizeChange:n,...i}){let{placement:a}=Ww(),{src:s,glbUrl:o}=WC(),{room:l}=Wx(),{patchSceneLoad:c}=WE(),{active:u}=HN(),d=qL((0,ru.useMemo)(()=>l.scene??qo(),[l.scene])),h=(0,ru.useRef)(null),p=(0,ru.useRef)(!1),A=(0,ru.useCallback)(e=>{(h.current=e,"function"==typeof t)?t(e):t&&(t.current=e)},[t]),f=W4("(max-width: 639px)"),{width:g,height:m}=function(e){let t,{ref:r,box:n="content-box"}=e,[{width:i,height:a},s]=(0,ru.useState)(q_),o=(t=(0,ru.useRef)(!1),(0,ru.useEffect)(()=>(t.current=!0,()=>{t.current=!1}),[]),(0,ru.useCallback)(()=>t.current,[])),l=(0,ru.useRef)({...q_}),c=(0,ru.useRef)(void 0);return c.current=e.onResize,(0,ru.useEffect)(()=>{if(!r.current||"u"<typeof window||!("ResizeObserver"in window))return;let e=new ResizeObserver(([e])=>{let t="border-box"===n?"borderBoxSize":"device-pixel-content-box"===n?"devicePixelContentBoxSize":"contentBoxSize",r=qP(e,t,"inlineSize"),i=qP(e,t,"blockSize");if(l.current.width!==r||l.current.height!==i){let e={width:r,height:i};l.current.width=r,l.current.height=i,c.current?c.current(e):o()&&s(e)}});return e.observe(r.current,{box:n}),()=>{e.disconnect()}},[n,r,o]),{width:i,height:a}}({ref:h}),v=(0,ru.useMemo)(()=>{if(!g||!m||!d)return null;let e=g,t=m;return f?e=(t=m)*d:g/m>d?e=m*d:t=g/d,{width:e,height:t}},[g,m,d,f]);return(0,ru.useLayoutEffect)(()=>{v&&n?.(v.width,v.height)},[v,n]),(0,ru.useEffect)(()=>{if(!v||p.current)return;p.current=!0;let e=window.setTimeout(()=>{window.dispatchEvent(new Event("resize"))},250);return()=>{window.clearTimeout(e)}},[v]),(0,ru.useEffect)(()=>{c({layoutReady:null!==v})},[c,v]),(0,ru.useEffect)(()=>{c({materialReady:"wall"===a?!!s:!!o})},[o,c,s,a]),(0,ru.useEffect)(()=>{c({assetsReady:!u})},[u,c]),(0,rh.jsx)("div",{ref:A,className:V_("size-full flex items-center justify-center sm:pt-21 sm:pb-12",e),...i,children:v&&(0,rh.jsx)(jE,{className:"touch-none bg-transparent",frameloop:"demand",camera:q6,gl:{toneMapping:4,toneMappingExposure:1.2,alpha:!0,preserveDrawingBuffer:!0},style:{width:`${v.width}px`,height:`${v.height}px`},children:(0,rh.jsxs)(ru.Suspense,{fallback:null,children:[(0,rh.jsx)(qF,{ref:r}),(0,rh.jsx)(jy,{files:"wall"===a?["https://cdn.neurodyn.ai/assets/hdr/neutral.hdr"]:void 0,preset:"floor"===a?"warehouse":void 0}),(0,rh.jsx)(q8,{})]})})})}async function Ke(e){await navigator.clipboard.writeText(e)}function Kt({captureRef:e,fallbackToClipboard:t=!1,fileName:r="room-scene.png",shareMessage:n}){let[i,a]=(0,ru.useState)(!1),[s,o]=(0,ru.useState)(!1),l=(0,ru.useMemo)(()=>"u">typeof navigator&&"function"==typeof navigator.share||t&&"u">typeof navigator&&"function"==typeof navigator.clipboard?.writeText,[t]),c=(0,ru.useCallback)(async()=>{if(!l)return;let i="u">typeof navigator&&"function"==typeof navigator.share,s=window.location.href,o=`${n}
7539
- ${s}`;a(!0);try{if(!i&&t)return void await Ke(o);let n=e.current;if(n)try{let e=await n.capture(),t=new File([e],r,{type:e.type||"image/png"});if(navigator.canShare?.({files:[t]}))return void await navigator.share({text:o,files:[t]})}catch(e){console.error("Failed to generate scene screenshot for sharing",e)}await navigator.share({text:o,url:s})}catch(e){e instanceof DOMException&&"AbortError"===e.name||console.error("Failed to share scene",e)}finally{a(!1)}},[l,e,t,r,n]);return{canShare:l,download:(0,ru.useCallback)(async()=>{let t=e.current;if(t){o(!0);try{var n;let e,i;n=await t.capture(),e=URL.createObjectURL(n),(i=document.createElement("a")).href=e,i.download=r,document.body.append(i),i.click(),i.remove(),URL.revokeObjectURL(e)}catch(e){console.error("Failed to download scene screenshot",e)}finally{o(!1)}}},[e,r]),isDownloading:s,isSharing:i,share:c}}function Kr({captureRef:e,className:t,canvasWrapperClassName:r,chrome:n="default",...i}){let{placement:a,type:s}=Ww(),{containerRef:o,isDragging:l,angle:c,rotation:u,setAngle:d,setRotation:h}=WE(),{t:p}=sr(),A=(0,ru.useRef)(null),f=(0,ru.useRef)(null),g=e??f,m=W4("(max-width: 639px)"),v=W4("(min-width: 768px)"),{canShare:b,isSharing:y,share:w}=Kt({captureRef:g,shareMessage:p(`shareMessage.${s}`)}),x=(0,ru.useCallback)(()=>{m&&A.current?.centerView()},[m]);return(0,rh.jsxs)("div",{className:V_("relative flex items-center justify-center overflow-hidden",t),...i,children:[(0,rh.jsx)(fW,{ref:A,disabled:l,children:(0,rh.jsx)(fq,{wrapperClass:"neurodyn-rzpp-wrapper size-full!",contentClass:"neurodyn-rzpp-content h-full! min-w-full sm:max-w-full",children:(0,rh.jsx)(q7,{captureRef:g,className:r,onSizeChange:x})})}),"default"===n&&(0,rh.jsxs)(rh.Fragment,{children:[(0,rh.jsx)(qD,{className:"absolute bottom-4 left-4 sm:bottom-6 sm:left-6"}),"floor"===a&&(0,rh.jsxs)("div",{className:"bg-button-dark typo-button-normal absolute bottom-6 left-1/2 hidden h-9 -translate-x-1/2 items-center gap-1.5 rounded-lg px-3.75 text-text-white md:inline-flex",children:[(0,rh.jsx)("span",{className:"shrink-0",children:p("scene.position")}),(0,rh.jsx)(W2,{value:[u],onValueChange:([e])=>h(e??0),min:-180,max:180,step:1,className:"w-29.5 **:data-[slot=slider-range]:bg-transparent **:data-[slot=slider-thumb]:border-background-base-3 **:data-[slot=slider-thumb]]:bg-background-base-3 **:data-[slot=slider-track]:bg-icons-normal","aria-label":p("scene.position")})]}),(0,rh.jsxs)("div",{className:"absolute right-4 bottom-4 inline-flex items-center gap-2 sm:right-6 sm:bottom-6",children:[("wall"===a||"floor"===a&&!v)&&(0,rh.jsxs)(W$,{children:[(0,rh.jsx)(W0,{asChild:!0,children:(0,rh.jsxs)(VL,{variant:"contrast",size:m?"icon":"default",children:[(0,rh.jsx)(V1,{className:"size-5"}),(0,rh.jsx)("span",{className:"sr-only sm:not-sr-only",children:p("scene.tunePosition")})]})}),(0,rh.jsx)(W1,{className:"px-3 py-3.5 bg-button-dark border-button-dark text-text-white",side:"top",align:"end",portalContainer:o,children:(0,rh.jsxs)(WK,{children:[(0,rh.jsxs)(WJ,{orientation:"horizontal",children:[(0,rh.jsx)(WZ,{children:p("scene.rotation")}),(0,rh.jsx)(W2,{value:[u],onValueChange:([e])=>h(e??0),min:-180,max:180,step:1,className:"w-40.5 **:data-[slot=slider-range]:bg-transparent **:data-[slot=slider-thumb]:border-background-base-3 **:data-[slot=slider-thumb]]:bg-background-base-3 **:data-[slot=slider-track]:bg-icons-normal","aria-label":p("scene.rotation")})]}),"wall"===a&&(0,rh.jsxs)(WJ,{orientation:"horizontal",children:[(0,rh.jsx)(WZ,{children:p("scene.angle")}),(0,rh.jsx)(W2,{value:[c],onValueChange:([e])=>d(e??0),max:75,min:-75,step:1,className:"w-40.5 **:data-[slot=slider-range]:bg-transparent **:data-[slot=slider-thumb]:border-background-base-3 **:data-[slot=slider-thumb]]:bg-background-base-3 **:data-[slot=slider-track]:bg-icons-normal","aria-label":p("scene.angle")})]})]})})]}),"wall"===a&&(0,rh.jsxs)(VL,{variant:"contrast",size:m?"icon":"default",disabled:!b||y,onClick:w,children:[(0,rh.jsx)(V3,{className:"size-5"}),(0,rh.jsx)("span",{className:"sr-only sm:not-sr-only",children:p("scene.share")})]}),m&&"wall"===a&&(0,rh.jsxs)(W$,{children:[(0,rh.jsx)(W0,{asChild:!0,children:(0,rh.jsx)(VL,{variant:"contrast",size:"icon",children:(0,rh.jsx)(V2,{})})}),(0,rh.jsxs)(W1,{className:"grid gap-5",portalContainer:o,children:[(0,rh.jsx)(qb,{}),(0,rh.jsx)(qB,{})]})]})]})]})]})}function Kn({className:e,gridClassName:t,titleClassName:r,onOpenChange:n,...i}){let{t:a}=sr(),s=(0,ru.useRef)(null),{fetchNextMaterialsPage:o,hasNextPage:l,isFetchingNextPage:c,isLoading:u,materialItems:d,selectMaterial:h,selectedMaterialId:p}=qv({includeViewedObject:!0});(0,ru.useEffect)(()=>{let e=s.current;e&&!u&&!c&&l&&0!==d.length&&e.scrollHeight<=e.clientHeight&&o()},[o,l,c,u,d.length]);let A=(0,ru.useCallback)(e=>{let{clientHeight:t,scrollHeight:r,scrollTop:n}=e.currentTarget;n+t>=r-64&&o()},[o]),f=(0,ru.useCallback)(e=>{h(e)&&n(!1)},[n,h]);return(0,rh.jsxs)("div",{...i,className:V_("flex min-h-0 flex-col gap-3 overflow-hidden text-text-dark outline-none",e),"data-testid":"material-selection-panel",onPointerDownCapture:e=>{e.stopPropagation(),i.onPointerDownCapture?.(e)},onMouseDownCapture:e=>{e.stopPropagation(),i.onMouseDownCapture?.(e)},children:[(0,rh.jsx)("h2",{className:V_("typo-base-16 font-medium sm:typo-base-14 sm:font-semibold text-text-dark",r),children:a("floor.materialSelection.title")}),(0,rh.jsx)("div",{"data-testid":"material-selection-grid",ref:s,className:V_("min-h-0 flex-1 overflow-y-auto overflow-x-hidden overscroll-contain pr-1 [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden",t),onScroll:A,children:(0,rh.jsxs)("div",{className:"grid min-h-max grid-cols-3 gap-x-2 gap-y-2","data-testid":"material-selection-grid-items",children:[d.map(({materialId:e,material:t,tinuuid:r})=>{let n,i=e===p,a=(n=t.previews?.[0],n?.subRes?.small??n?.url);return(0,rh.jsxs)("button",{type:"button","data-selected":i,"aria-pressed":i,className:V_("group relative grid aspect-square min-w-0 place-items-center overflow-hidden rounded-lg border border-border bg-background-containers p-1 text-left transition hover:border-icons-normal focus-visible:ring-2 focus-visible:ring-icons-normal focus-visible:outline-hidden"),onClick:()=>f(e),onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.preventDefault(),f(e))},children:[a?(0,rh.jsx)("img",{src:a,alt:"",className:"size-full rounded-md object-cover"}):(0,rh.jsx)(VZ,{className:"size-6 text-icons-normal"}),(0,rh.jsx)("span",{className:"sr-only",children:t.name}),i&&(0,rh.jsx)("span",{className:"absolute top-1 right-1 grid size-6 place-items-center rounded-full bg-icons-blue text-icons-white","data-testid":"material-selection-selected-check",children:(0,rh.jsx)(Vq,{className:"size-4"})})]},`${r}-${e}`)}),(u||c)&&(0,rh.jsx)("div",{className:"col-span-3 grid h-16 place-items-center",children:(0,rh.jsx)(V5,{className:"size-6"})})]})})]})}function Ki({open:e,portalContainer:t,onOpenChange:r}){let{t:n}=sr();return(0,rh.jsx)(VN,{open:e,onOpenChange:r,children:(0,rh.jsxs)(VU,{contentInsideOverlay:!0,"data-testid":"material-selection-mobile-overlay",className:"top-auto bottom-0 flex max-h-[calc(100svh-8px)] w-[calc(100%-16px)] !max-w-none translate-y-0 flex-col gap-2 overflow-hidden rounded-t-2xl rounded-b-none p-4 sm:hidden",portalContainer:t,showCloseButton:!1,children:[(0,rh.jsx)(Vj,{className:"sr-only",children:n("floor.materialSelection.title")}),(0,rh.jsx)(VG,{className:"sr-only"}),(0,rh.jsx)(Kn,{className:"min-h-0",gridClassName:"max-h-none",onOpenChange:r}),(0,rh.jsx)(VH,{className:"shrink-0 p-0",children:(0,rh.jsx)(VF,{asChild:!0,children:(0,rh.jsx)(VL,{type:"button",variant:"outline",className:"w-full",children:n("close")})})})]})})}let Ka="data-material-selection-action",Ks="data-material-selection-panel";function Ko({actionLabel:e,actionClassName:t,actionPlacement:r,className:n,iconClassName:i,isOpen:a,materialName:s,previewClassName:o,previewUrl:l,testId:c,titleLabel:u,onClick:d,onPointerDown:h}){let{t:p}=sr(),{displayUnit:A,type:f}=Ww(),{containerRef:g}=WE(),{viewedObject:m}=WC(),{selectedDestinationUrl:v,sizeItems:b,selectedTinuuid:y,selectSize:w}=function(){var e;let{tinuuid:t,setMaterial:r,setTinuuid:n,apiKey:i,baseURL:a,source:s,widgetSession:o}=WC(),{type:l}=Ww(),{data:c}=s4({queryKey:VB(t??void 0,{apiKey:i,baseURL:a,source:s,resourceType:l}),enabled:"rugs"===l&&!!t,placeholderData:tq,queryFn:({signal:e})=>{if(!t)throw Error("Tinuuid is required.");return Vk(t,{apiKey:i,baseURL:a,signal:e,source:s,widgetSession:o,resourceType:l})}},sG,void 0),u=c?.kit?.uuid,d=c?.owner?.uuid;(0,ru.useEffect)(()=>{let e=c?.materials?.[0];c?.tinuuid===t&&e&&r(e)},[c,r,t]);let{data:h,fetchNextPage:p,hasNextPage:A,isFetchingNextPage:f,isFetchNextPageError:g}=s4({queryKey:["room-viewer","kit-objects",{apiKey:(e={apiKey:i,baseURL:a,source:s,resourceType:l}).apiKey??null,kitUuid:u??null,ownerUuid:d??null,resourceType:e.resourceType??null,source:e.source}],enabled:"rugs"===l&&!!u&&!!d,queryFn:({pageParam:e,signal:t})=>{if(!u||!d)throw Error("Kit uuid and owner uuid are required.");return VR(u,d,e,{apiKey:i,baseURL:a,signal:t,source:s,widgetSession:o,resourceType:l})},initialPageParam:0,getNextPageParam:(e,t,r)=>void 0!==e.pages_count?r+1<e.pages_count?r+1:void 0:e.objs?.length?r+1:void 0},s9,void 0);(0,ru.useEffect)(()=>{!A||f||g||p({cancelRefetch:!1})},[p,A,f,g]);let m=(0,ru.useMemo)(()=>h?.pages.flatMap(e=>e.objs??[])??[],[h]),v=(0,ru.useMemo)(()=>m.map(WV).filter(e=>null!==e),[m]);return{selectedDestinationUrl:c?.tinuuid===t?c.destinationUrl:void 0,sizeItems:v,selectedTinuuid:t,selectSize:e=>!!v.some(t=>t.tinuuid===e)&&(n(e),!0)}}(),x=p(`units.${A}`),C=b.find(e=>e.tinuuid===y),E=function(e){let t=e?.trim();if(!t||WU.test(t)&&!/^https?:/i.test(t)||/^[./?#]/.test(t)&&!t.startsWith("//"))return;let r=t.startsWith("//")?`https:${t}`:/^https?:/i.test(t)?t:`https://${t}`;try{let e=new URL(r);if("http:"!==e.protocol&&"https:"!==e.protocol||!e.hostname)return;return e.href}catch{return}}("rugs"===f?v??(m?.tinuuid===y?m.destinationUrl:void 0):m?.destinationUrl),S=(0,rh.jsxs)(VL,{type:"button",variant:"outline",size:"sm",[Ka]:!0,"aria-expanded":a,className:V_("shrink-0","stacked"===r&&"w-fit",t),onPointerDown:h?e=>{e.preventDefault(),e.stopPropagation(),h()}:void 0,onClick:d,children:[a?(0,rh.jsx)(VK,{className:"size-4"}):(0,rh.jsx)(V0,{className:"size-4"}),e]});return(0,rh.jsxs)("div",{className:n,"data-testid":c,children:[(0,rh.jsx)("div",{className:o,children:l?(0,rh.jsx)("img",{src:l,alt:"",className:"size-full object-cover"}):(0,rh.jsx)(VZ,{className:i})}),(0,rh.jsxs)("div",{className:"grid min-h-16 min-w-0 flex-1 content-center gap-2",children:[(0,rh.jsxs)("div",{className:"flex min-w-0 items-start justify-between gap-2",children:[(0,rh.jsxs)("div",{className:"min-w-0",children:[(0,rh.jsx)("div",{className:"sr-only",children:u}),(0,rh.jsx)("div",{className:"typo-button-normal truncate text-text-dark",children:s})]}),E&&(0,rh.jsx)("a",{href:E,target:"_blank",rel:"noopener noreferrer",className:"typo-base-12 shrink-0 text-button-primary underline-offset-2 hover:underline","data-testid":c?`${c}-description-link`:void 0,children:p("floor.scene.description")})]}),(0,rh.jsxs)("div",{className:"flex flex-nowrap items-center gap-2",children:["stacked"===r&&S,b.length>1&&!!C&&(0,rh.jsxs)(W_,{value:y??void 0,onValueChange:w,children:[(0,rh.jsx)(WL,{size:"sm",className:"w-fit shrink-0","data-testid":c?`${c}-size-select`:void 0,children:(0,rh.jsx)(WP,{})}),(0,rh.jsx)(WN,{portalContainer:g,children:b.map(e=>{var t;let r;return(0,rh.jsx)(WO,{value:e.tinuuid,children:(t=e.size,r=t.split("\xd7").map(e=>"cm"===A?e:Math.round(WH(Number(e)/100,A)).toString()).join("\xd7"),`${r} ${x}`)},e.tinuuid)})})]})]})]}),"trailing"===r&&S]})}function Kl({actions:e,canShowAr:t,companyName:r,hasActiveError:n,material:i,portalContainer:a,ref:s,room:o,scene:l,showDialogCloseButton:c=!1}){let{t:u}=sr(),{type:d}=Ww(),[h,p]=(0,ru.useState)(!1),[A,f]=(0,ru.useState)(!1),g=(0,ru.useRef)(null),m=(0,ru.useRef)(!1),v=u(h?"floor.scene.hideCatalog":`resourceType.${d}.replaceProduct`),b=u(A?"floor.scene.hideCatalog":`resourceType.${d}.replaceProductShort`),y=u(`resourceType.${d}.productCardTitle`),{canShare:w,download:x,isDownloading:C,isSharing:E,share:S}=Kt({captureRef:g,fallbackToClipboard:!0,shareMessage:u(`shareMessage.${d}`)}),I=(0,ru.useCallback)(()=>{p(!1),f(!1)},[]);(0,ru.useImperativeHandle)(s,()=>({closeMaterialSelection:I}),[I]);let M=(0,ru.useCallback)(()=>{if(m.current){m.current=!1;return}p(!0),f(!1)},[]),B=(0,ru.useCallback)(()=>{m.current=!0,I()},[I]),k=(0,ru.useCallback)(()=>{f(!0),p(!1)},[]),T=(0,ru.useCallback)(()=>{I(),e.openInteriorSelection()},[e,I]);return(0,ru.useEffect)(()=>{if(h)return document.addEventListener("pointerdown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("pointerdown",e),document.removeEventListener("keydown",t)};function e(e){var t;(t=e.target)instanceof Element&&t.closest(`[${Ka}], [${Ks}]`)||p(!1)}function t(e){"Escape"===e.key&&p(!1)}},[h]),(0,rh.jsxs)(rh.Fragment,{children:[(0,rh.jsx)("div",{className:"absolute inset-0 bg-constant-black","data-testid":"floor-scene-background-base"}),(0,rh.jsx)("div",{"aria-hidden":!0,className:"absolute top-[-52px] right-[-1.36%] bottom-[-52px] left-[-1.36%] blur-[40px]","data-testid":"floor-blur-background",children:(0,rh.jsx)("img",{src:o.imageUrl,alt:"",className:"block size-full max-w-none object-cover object-center opacity-50"})}),(0,rh.jsxs)("div",{className:"pointer-events-none absolute top-0 right-0 left-0 z-20 flex min-h-22 items-start justify-between gap-4 bg-linear-to-b from-black/75 via-black/35 to-transparent px-4 pt-4 pb-8 text-constant-white sm:px-6 lg:min-h-25 lg:pt-6",children:[(0,rh.jsx)("div",{className:"min-w-0 pt-1",children:(0,rh.jsx)("h1",{"data-testid":"floor-scene-header-company",className:"typo-base-16 truncate font-medium lg:typo-base-18",children:r})}),(0,rh.jsxs)("div",{className:"pointer-events-auto inline-flex shrink-0 items-center gap-2",children:[(0,rh.jsxs)(VL,{type:"button",variant:"secondary","aria-label":u("floor.scene.share"),disabled:!w||E,onClick:S,className:"size-10 rounded-full px-0 lg:h-9 lg:w-auto lg:rounded-xl lg:px-3.5",children:[(0,rh.jsx)(V3,{className:"size-5"}),(0,rh.jsx)("span",{className:"hidden lg:inline",children:u("floor.scene.share")})]}),(0,rh.jsxs)(VL,{type:"button",variant:"secondary","aria-label":u("floor.scene.download"),disabled:C,onClick:x,className:"size-10 rounded-full px-0 lg:h-9 lg:w-auto lg:rounded-xl lg:px-3.5",children:[(0,rh.jsx)(VY,{className:"size-5"}),(0,rh.jsx)("span",{className:"hidden lg:inline",children:u("floor.scene.download")})]}),c&&(0,rh.jsx)(VF,{asChild:!0,children:(0,rh.jsxs)(VL,{type:"button",variant:"secondary","aria-label":u("close"),className:"size-10 rounded-full px-0 lg:h-9 lg:w-auto lg:rounded-xl lg:px-3.5",children:[(0,rh.jsx)("span",{className:"hidden lg:inline",children:u("close")}),(0,rh.jsx)(VK,{className:"!size-5"})]})})]})]}),(0,rh.jsx)(Kr,{captureRef:g,chrome:"none",className:"relative z-10 size-full min-h-0",canvasWrapperClassName:"p-0 sm:pt-0 sm:pb-0"},l.resetKey),(0,rh.jsxs)("div",{className:"pointer-events-none absolute right-6 bottom-6 left-6 z-20 hidden items-end justify-between gap-4 lg:flex","data-testid":"floor-desktop-cards",children:[(0,rh.jsxs)("div",{className:"pointer-events-auto flex min-w-0 items-stretch gap-3",children:[(0,rh.jsx)(Ko,{actionLabel:v,actionPlacement:"stacked",className:"flex min-h-24 w-fit max-w-100 items-center gap-4 rounded-2xl bg-background-containers p-4 text-left text-text-dark shadow-[var(--shadow-login)]",iconClassName:"size-6 text-icons-normal",isOpen:h,materialName:i.name,previewClassName:"grid size-16 shrink-0 place-items-center overflow-hidden bg-background-base",previewUrl:i.previewUrl,testId:"floor-desktop-product-card",titleLabel:y,onClick:h?I:M,onPointerDown:h?B:void 0}),(0,rh.jsxs)("div",{className:"flex h-24 w-[254px] items-center gap-4 overflow-hidden rounded-2xl bg-background-containers p-4 text-left text-text-dark shadow-[var(--shadow-login)]","data-testid":"floor-room-card",children:[(0,rh.jsx)("img",{src:o.imageUrl,alt:"",className:"size-16 shrink-0 rounded-lg object-cover"}),(0,rh.jsxs)("span",{className:"grid min-w-0 flex-1 content-center gap-2",children:[(0,rh.jsx)("span",{className:"typo-button-normal block min-h-[1.35em] truncate !leading-[1.35] text-text-dark","data-testid":"floor-desktop-room-name",children:o.name}),(0,rh.jsx)(VL,{type:"button",variant:"outline",size:"sm",className:"w-fit",onClick:T,children:u("floor.interiorSelection.chooseInterior")})]})]})]}),t&&(0,rh.jsxs)("div",{className:"pointer-events-auto flex h-24 w-[280px] items-center gap-4 overflow-hidden rounded-2xl bg-background-containers p-4 text-text-dark shadow-[var(--shadow-login)]","data-testid":"floor-ar-card",children:[(0,rh.jsx)("img",{src:o.imageUrl,alt:"",className:"size-16 shrink-0 rounded-lg object-cover"}),(0,rh.jsxs)("div",{className:"grid min-w-0 flex-1 content-center gap-2",children:[(0,rh.jsx)(qD,{buttonLabel:u("floor.scene.tryAtHome"),buttonVariant:"secondary",buttonSize:"sm",buttonClassName:"w-fit"}),(0,rh.jsx)("div",{className:"typo-base-12 truncate font-medium text-text-light",children:u("floor.scene.tryAtHomeBody")})]})]})]}),(0,rh.jsxs)("div",{className:"pointer-events-none absolute right-6 bottom-6 left-6 z-20 hidden items-end justify-between gap-2 sm:flex lg:hidden","data-testid":"floor-tablet-cards",children:[(0,rh.jsx)(Ko,{actionLabel:v,actionPlacement:"stacked",className:"pointer-events-auto flex min-h-[116px] w-fit max-w-[421px] items-center gap-4 rounded-2xl bg-background-containers p-4 text-left text-text-dark shadow-[var(--shadow-login)]",iconClassName:"size-6 text-icons-normal",isOpen:h,materialName:i.name,previewClassName:"grid size-16 shrink-0 place-items-center overflow-hidden bg-background-base",previewUrl:i.previewUrl,testId:"floor-tablet-product-card",titleLabel:y,onClick:h?I:M,onPointerDown:h?B:void 0}),(0,rh.jsxs)("div",{className:"pointer-events-auto grid w-[254px] gap-2",children:[(0,rh.jsxs)("div",{className:"flex h-[72px] items-center justify-between gap-3 overflow-hidden rounded-2xl bg-background-containers p-4 text-left text-text-dark shadow-[var(--shadow-login)]","data-testid":"floor-tablet-room-card",children:[(0,rh.jsxs)("span",{className:"flex min-w-0 items-center gap-2",children:[(0,rh.jsx)("img",{src:o.imageUrl,alt:"",className:"size-10 shrink-0 rounded-full object-cover"}),(0,rh.jsxs)("span",{className:"grid min-w-0",children:[(0,rh.jsx)("span",{className:"typo-base-12 truncate text-text-light",children:u("floor.scene.interiorCardTitle")}),(0,rh.jsx)("span",{className:"typo-button-normal min-h-[1.35em] truncate !leading-[1.35] text-text-dark","data-testid":"floor-tablet-room-name",children:o.name})]})]}),(0,rh.jsx)(VL,{type:"button",variant:"outline",size:"sm",className:"shrink-0",onClick:T,children:u("floor.interiorSelection.chooseInteriorShort")})]}),t&&(0,rh.jsx)(qD,{className:"w-full",buttonLabel:u("floor.scene.tryAtHome"),buttonLeadingIcon:(0,rh.jsx)(V4,{className:"size-5"}),buttonVariant:"secondary",buttonSize:"default",buttonClassName:"h-9 w-full rounded-xl"})]})]}),(0,rh.jsxs)("div",{className:"relative z-20 grid bg-background-containers text-text-dark shadow-[var(--shadow-login)] sm:hidden","data-testid":"floor-mobile-cards",children:[(0,rh.jsx)(Ko,{actionLabel:b,actionClassName:"w-[137px]",actionPlacement:"stacked",className:"flex items-center justify-start gap-4 border-b border-border-light bg-background-containers p-4 text-left",iconClassName:"size-5 text-icons-normal",isOpen:A,materialName:i.name,previewClassName:"grid size-16 shrink-0 place-items-center overflow-hidden bg-background-base",previewUrl:i.previewUrl,testId:"floor-mobile-product-card",titleLabel:y,onClick:A?I:k}),(0,rh.jsxs)("div",{className:"grid gap-4 bg-background-containers px-6 pt-4 pb-6","data-testid":"floor-mobile-bottom-actions",children:[(0,rh.jsxs)("div",{className:"flex w-full items-center justify-between gap-3 rounded-full bg-background-containers text-left",children:[(0,rh.jsxs)("span",{className:"flex min-w-0 items-center gap-2",children:[(0,rh.jsx)("img",{src:o.imageUrl,alt:"",className:"size-10 shrink-0 rounded-full object-cover"}),(0,rh.jsxs)("span",{className:"grid min-w-0",children:[(0,rh.jsx)("span",{className:"typo-base-12 truncate text-text-light",children:u("floor.scene.interiorCardTitle")}),(0,rh.jsx)("span",{className:"typo-button-normal min-h-[1.35em] truncate !leading-[1.35] text-text-dark","data-testid":"floor-mobile-room-name",children:o.name})]})]}),(0,rh.jsx)(VL,{type:"button",variant:"outline",size:"sm",className:"shrink-0",onClick:T,children:u("floor.interiorSelection.chooseInterior")})]}),t&&(0,rh.jsx)(qD,{className:"w-full",buttonLabel:u("floor.scene.tryAtHome"),buttonLeadingIcon:(0,rh.jsx)(V4,{className:"size-6"}),buttonVariant:"secondary",buttonSize:"lg",buttonClassName:"h-11 w-full rounded-xl"})]})]}),h&&!n&&(0,rh.jsx)(Kn,{[Ks]:!0,className:"absolute bottom-[152px] left-6 z-30 hidden max-h-[calc(100%-252px)] w-[348px] rounded-2xl bg-background-containers sm:flex lg:bottom-[132px] lg:max-h-[calc(100%-232px)]",gridClassName:"px-4 pb-4",titleClassName:"px-4 pt-4",onOpenChange:I}),(0,rh.jsx)(Ki,{open:A&&!n,portalContainer:a,onOpenChange:f}),(0,rh.jsx)("div",{"aria-hidden":!l.isLoading,className:V_("absolute inset-0 z-10 flex items-center justify-center bg-radial from-background-containers to-background-base-2 transition-opacity",l.isLoading?"opacity-100 pointer-events-auto duration-0":"opacity-0 pointer-events-none duration-250ms"),children:(0,rh.jsx)(V5,{variant:"logo"})})]})}function Kc({rooms:e,customRooms:t,selectedRoomId:r,isInvalidFile:n,uploadRetryRequestId:i=0,showCloseButton:a=!1,onSelectRoom:s,onUploadFile:o}){let l,{t:c}=sr(),u=(0,ru.useId)(),d=(0,ru.useRef)(null);function h(e){return e.map(e=>(0,rh.jsxs)("button",{type:"button",className:"group relative aspect-[4/3] overflow-hidden rounded-2xl bg-background-base text-left transition focus-visible:ring-2 focus-visible:ring-icons-normal focus-visible:outline-hidden","aria-pressed":e.id===r,onClick:()=>s(e.id),children:[(0,rh.jsx)("img",{src:e.image_url,alt:"",decoding:"async",className:"size-full scale-[1.02] transform-gpu object-cover transition duration-200 group-hover:scale-105"}),(0,rh.jsx)("span",{className:"typo-base-12 absolute inset-x-0 bottom-0 truncate bg-linear-to-t from-black/45 via-black/10 to-transparent px-3 py-2 text-constant-white",children:c(`rooms.${e.id}`,{defaultValue:e.name})})]},e.id))}return(0,ru.useEffect)(()=>{i>0&&d.current?.click()},[i]),(0,rh.jsxs)("section",{"aria-labelledby":"floor-interior-selection-title",className:"relative mx-auto grid h-auto min-h-0 max-h-[calc(100svh-8px)] w-full max-w-151 grid-rows-[auto_auto_minmax(0,1fr)_auto] gap-4 overflow-hidden rounded-t-2xl rounded-b-none bg-background-containers p-4 shadow-[var(--shadow-login)] sm:my-4 sm:max-h-[calc(100svh-32px)] sm:rounded-2xl sm:p-6","data-testid":"floor-interior-selection-panel",children:[a&&(l=(0,rh.jsx)(VL,{type:"button",variant:"outline",size:"icon",className:"absolute top-4 right-4 sm:top-6 sm:right-6","aria-label":c("close"),"data-testid":"floor-interior-selection-icon-close",children:(0,rh.jsx)(VK,{})}),(0,rh.jsx)(VF,{asChild:!0,children:l})),(0,rh.jsx)("h2",{id:"floor-interior-selection-title",className:"typo-base-16 font-medium sm:typo-base-18 text-text-dark",children:c("floor.interiorSelection.title")}),(0,rh.jsxs)("div",{className:"grid gap-2","data-testid":"floor-interior-selection-upload",children:[(0,rh.jsxs)("label",{htmlFor:u,className:"flex min-h-15 cursor-pointer items-center justify-center gap-2 rounded-xl border border-dashed border-background-blue bg-background-blue-transparent px-4 text-center typo-button-normal text-background-blue opacity-80 transition hover:bg-background-blue-transparent/80",onDragOver:e=>e.preventDefault(),onDrop:function(e){e.preventDefault();let t=e.dataTransfer.files[0];t&&o(t)},children:[(0,rh.jsx)(VW,{className:"size-5 text-background-blue"}),c("floor.interiorSelection.uploadPhoto"),(0,rh.jsx)("input",{ref:d,id:u,type:"file",accept:"image/*",className:"sr-only",onChange:function(e){let t=e.target.files?.[0];e.target.value="",t&&o(t)}})]}),n&&(0,rh.jsx)("p",{className:"typo-base-12 font-medium text-destructive",children:c("floor.interiorSelection.invalidFile")})]}),(0,rh.jsx)("div",{className:"grid min-h-0 overflow-y-auto overflow-x-hidden overscroll-contain pr-1 [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden","data-testid":"floor-interior-selection-scroll-content",children:(0,rh.jsxs)("div",{className:"grid min-h-max gap-4",children:[t.length>0&&(0,rh.jsxs)("div",{className:"grid gap-3",children:[(0,rh.jsx)("h3",{className:"typo-base-16 font-medium text-text-light",children:c("floor.interiorSelection.customTitle")}),(0,rh.jsx)("div",{className:"grid grid-cols-2 gap-3 sm:grid-cols-3","data-testid":"floor-custom-interior-selection-grid",children:h(t)})]}),(0,rh.jsxs)("div",{className:"grid gap-3",children:[(0,rh.jsx)("h3",{className:"typo-base-16 font-medium text-text-light",children:c("floor.interiorSelection.presetsTitle")}),(0,rh.jsx)("div",{className:"grid grid-cols-2 gap-3 sm:grid-cols-3","data-testid":"floor-preset-interior-selection-grid",children:h(e)})]})]})}),a&&(0,rh.jsx)(VH,{className:"-mt-2 shrink-0 p-0 sm:mt-0",children:(0,rh.jsx)(VF,{asChild:!0,children:(0,rh.jsx)(VL,{variant:"outline",className:"w-full",children:c("close")})})})]})}function Ku(e){return(0,rh.jsx)("div",{className:"absolute inset-0 z-20 grid items-end p-0 sm:items-center sm:p-4","data-testid":"floor-interior-selection-overlay",children:(0,rh.jsx)(Kc,{...e})})}function Kd({open:e,portalContainer:t,onOpenChange:r,...n}){let{t:i}=sr();return(0,rh.jsx)(VN,{open:e,onOpenChange:r,children:(0,rh.jsxs)(VU,{contentInsideOverlay:!0,portalContainer:t,showCloseButton:!1,"data-testid":"floor-interior-selection-overlay",className:"top-auto bottom-0 grid max-h-[calc(100svh-8px)] w-[calc(100%-16px)] min-w-0 max-w-none translate-y-0 overflow-hidden rounded-t-2xl rounded-b-none border-none bg-transparent p-0 shadow-none sm:top-[50%] sm:bottom-auto sm:w-full sm:max-w-none sm:translate-y-[-50%] sm:rounded-none sm:p-4",children:[(0,rh.jsx)(Vj,{className:"sr-only",children:i("floor.interiorSelection.title")}),(0,rh.jsx)(VG,{className:"sr-only"}),(0,rh.jsx)(Kc,{...n,showCloseButton:!0})]})})}async function Kh(e,t={}){let r=t.source??"default",n={image:e};if(GZ({apiKey:t.apiKey,source:r})){let e=await t.widgetSession?.getTokenForRequest();return Vp(n,{baseURL:t.baseURL,headers:{"x-api-key":t.apiKey,...e?{[Vx]:e}:{}},signal:t.signal,timeout:0,params:{productType:G$({apiKey:t.apiKey,source:r})}})}return t.signal?Vs(n,{signal:t.signal,timeout:0}):Vs(n,{timeout:0})}let Kp=[{id:0,label:"empty",rgb:[0,0,0]},{id:1,label:"floor",rgb:[32,208,96]},{id:2,label:"wall-1",rgb:[255,59,48]},{id:3,label:"wall-2",rgb:[10,132,255]},{id:4,label:"ceiling",rgb:[255,214,10]},{id:5,label:"plane-5",rgb:[191,90,242]},{id:6,label:"plane-6",rgb:[255,159,10]},{id:7,label:"plane-7",rgb:[100,210,255]},{id:8,label:"plane-8",rgb:[255,45,85]}];function KA(){try{return"1"===window.localStorage.getItem("neurodyn-room-viewer:debug-mask-export")}catch{return!1}}async function Kf(e,t){var r,n,i;let a,s,o,l,c=await (r=e.planeIds.dataPng,new Promise((e,t)=>{let n=new Image;n.onload=()=>e(n),n.onerror=()=>t(Error("Failed to load room plane id mask image.")),n.crossOrigin="anonymous",n.src=r})),u=e.planeIds.width||c.naturalWidth||c.width,d=e.planeIds.height||c.naturalHeight||c.height,h=document.createElement("canvas"),p=h.getContext("2d",{willReadFrequently:!0});if(!p)throw Error("Failed to prepare room plane mask canvas.");h.width=u,h.height=d,p.drawImage(c,0,0,u,d);let A=p.getImageData(0,0,u,d),f=document.createElement("canvas"),g=f.getContext("2d");if(!g)throw Error("Failed to prepare room debug mask canvas.");f.width=u,f.height=d;for(let e=0;e<u*d;e++){let t=4*e,r=function(e){return Kp.find(t=>t.id===e)??{id:e,label:`plane-${e}`,rgb:[73*e%255,151*e%255,211*e%255]}}(A.data[t]??0);A.data[t]=r.rgb[0],A.data[t+1]=r.rgb[1],A.data[t+2]=r.rgb[2],A.data[t+3]=255}g.putImageData(A,0,0),n=await new Promise((e,t)=>{f.toBlob(r=>{r?e(r):t(Error("Failed to export room plane mask image."))},"image/png")}),s=Array.from((a=t.lastIndexOf("."))>0?t.slice(0,a):t).map(e=>{let t=e.charCodeAt(0),r="."===e||"_"===e||"-"===e;return t>=48&&t<=57||t>=65&&t<=90||t>=97&&t<=122||r?e:"-"}).join("").split("-").filter(Boolean).join("-"),i=`${s||"room"}.debug-mask.colors.png`,o=URL.createObjectURL(n),(l=document.createElement("a")).href=o,l.download=i,l.style.display="none",document.body.append(l),l.click(),l.remove(),window.setTimeout(()=>URL.revokeObjectURL(o),1e3)}let Kg="custom-interiors";function Km(){return"u">typeof crypto&&"function"==typeof crypto.randomUUID?`custom-interior-${crypto.randomUUID()}`:`custom-interior-${Date.now()}-${Math.random().toString(36).slice(2)}`}function Kv(){let e="u"<typeof indexedDB?null:indexedDB;return e?new Promise((t,r)=>{let n=e.open("neurodyn-floor-custom-interiors",1);n.onupgradeneeded=()=>{let e=n.result;e.objectStoreNames.contains(Kg)||e.createObjectStore(Kg,{keyPath:"id"})},n.onerror=()=>r(n.error??Error("Failed to open Custom Interior store.")),n.onsuccess=()=>t(n.result)}):Promise.resolve(null)}async function Kb(e,t,r=new Date){let n=await Kv();if(!n)return null;let i={id:Km(),schemaVersion:1,name:e.name,fileName:e.name,createdAt:r.toISOString(),imageBlob:e,scene:t};try{let e=n.transaction(Kg,"readwrite");return e.objectStore(Kg).put(i),await new Promise((t,r)=>{e.oncomplete=()=>t(),e.onerror=()=>r(e.error??Error("Custom Interior transaction failed.")),e.onabort=()=>r(e.error??Error("Custom Interior transaction aborted."))}),i}finally{n.close()}}async function Ky(){let e=await Kv();if(!e)return[];try{return await new Promise((t,r)=>{let n=e.transaction(Kg,"readonly").objectStore(Kg).getAll();n.onerror=()=>r(n.error??Error("Failed to read Custom Interiors.")),n.onsuccess=()=>{let e=n.result.filter(e=>1===e.schemaVersion).sort((e,t)=>Date.parse(t.createdAt)-Date.parse(e.createdAt));t(e)}})}finally{e.close()}}function Kw(e){let t=[];return{rooms:e.map(e=>{let r=URL.createObjectURL(e.imageBlob);return t.push(r),{id:e.id,name:e.name,image_url:r,scene:e.scene}}),revokeObjectUrls:()=>{for(let e of t)URL.revokeObjectURL(e);t.length=0}}}let Kx={placementReady:!1,prepareReady:!1,artifactsReady:!1,assetsReady:!1};function KC(e){let t="dialog"===e?"interior-selection":"scene";return{step:t,hasSceneSelection:"scene"===t,sceneResetKey:0}}function KE(e,t){switch(t.type){case"open-interior-selection":case"return-to-interior-selection":return{...e,step:"interior-selection"};case"dismiss-interior-selection":case"recover-to-scene":return e.hasSceneSelection?{...e,step:"scene"}:e;case"start-custom-interior-processing":return{...e,step:"processing-custom-interior"};case"commit-interior-selection":return{step:"scene",hasSceneSelection:!0,sceneResetKey:e.sceneResetKey+1}}}function KS(e,t){return!e.aborted&&t()}async function KI({abortSignal:e,apiOptions:t,commitCustomInteriorSelection:r,downloadDebugMask:n,file:i,isActive:a,isDebugMaskExportEnabled:s,onDebugMaskError:o,onPersistenceError:l,onProcessingComplete:c,predictRoomScene:u,saveCustomInterior:d,trackRuntimeCustomInterior:h,waitForProcessingCompletion:p}){let A=await u(i,{...t,signal:e});if(!KS(e,a))return null;s()&&n(A,i.name).catch(o);let f=h(i,A);return KS(e,a)&&f&&(d(i,A).catch(l),c(),await p(),KS(e,a))?(r(f),f):null}function KM(){return new Promise(e=>window.setTimeout(e,250))}function KB(e){console.error("Failed to export room debug mask",e)}function Kk(e){console.error("Failed to persist Custom Interior",e)}function KT(e){console.error("Failed to prepare Custom Interior",e)}let KR=[{minimumProgress:0,translationKey:"floor.processing.stages.reading"},{minimumProgress:28,translationKey:"floor.processing.stages.mapping"},{minimumProgress:56,translationKey:"floor.processing.stages.lighting"},{minimumProgress:82,translationKey:"floor.processing.stages.finalizing"},{minimumProgress:100,translationKey:"floor.processing.stages.ready"}];function KD({isComplete:e,open:t,onCloseAnimationEnd:r,onOpenChange:n,portalContainer:i}){let{t:a}=sr(),s=(0,ru.useRef)(t),[o,l]=(0,ru.useState)(8),c=e?100:o,u=function(e){for(let t=KR.length-1;t>=0;t-=1){let r=KR[t];if(r&&e>=r.minimumProgress)return r}return KR[0]}(c);(0,ru.useEffect)(()=>{t&&!s.current&&l(8),s.current=t},[t]),(0,ru.useEffect)(()=>{if(!t||e)return;let r=window.setInterval(()=>{l(e=>Math.min(92,e+Math.max(2,Math.round((92-e)/8))))},650);return()=>window.clearInterval(r)},[e,t]);let d=(0,rh.jsxs)("div",{role:"status","aria-live":"polite",className:"grid content-start gap-4",children:[(0,rh.jsx)("h2",{className:"typo-base-18 font-medium text-text-dark",children:a("floor.processing.title")}),(0,rh.jsxs)("div",{"data-testid":"floor-processing-progress-panel",className:"grid min-h-[97px] min-w-0 content-center gap-2 overflow-hidden rounded-xl bg-background-base px-6 py-8",children:[(0,rh.jsxs)("div",{className:"flex min-w-0 items-center justify-between gap-3",children:[(0,rh.jsx)("span",{className:"typo-base-14 min-w-0 flex-1 truncate text-left font-medium text-text-light",children:a(u.translationKey)}),(0,rh.jsxs)("span",{className:"typo-base-14 shrink-0 font-medium text-text-dark",children:[c,"%"]})]}),(0,rh.jsx)(Wd,{value:c,"aria-label":a("floor.processing.progressLabel"),className:"h-1 bg-background-base-3 [&_[data-slot=progress-indicator]]:bg-button-dark [&_[data-slot=progress-indicator]]:duration-500 [&_[data-slot=progress-indicator]]:ease-out"})]})]});return(0,rh.jsx)(VN,{open:t,onOpenChange:n,children:(0,rh.jsxs)(VU,{portalContainer:i,showCloseButton:!1,"data-testid":"floor-processing-card",className:"top-auto bottom-2 w-[calc(100%-16px)] !max-w-none translate-y-0 gap-4 overflow-hidden rounded-2xl p-6 text-center sm:top-[50%] sm:bottom-auto sm:w-full sm:!max-w-[377px] sm:translate-y-[-50%] sm:p-6",onInteractOutside:e=>{e.preventDefault()},onAnimationEnd:e=>{e.currentTarget===e.target&&"closed"===e.currentTarget.getAttribute("data-state")&&r?.()},children:[(0,rh.jsx)(Vj,{className:"sr-only",children:a("floor.processing.title")}),(0,rh.jsx)(VG,{className:"sr-only",children:a(u.translationKey)}),d]})})}function K_({showDialogCloseButton:e=!1}){var t;let r,{name:n,type:i}=Ww(),{accessError:a,tinuuid:s,material:o,apiKey:l,baseURL:c,hasRooms:u,source:d,widgetSession:h,isViewerAccessPending:p,loadError:A,viewedObject:f}=WC(),{clearActiveError:g,handleAccessError:m}=function(){let{setAccessError:e,setLoadError:t}=WC();return{clearActiveError:(0,ru.useCallback)(()=>{e(null),t(null)},[e,t]),handleAccessError:e}}(),{room:v,sourceRooms:b}=Wx(),{containerRef:y,setContainerRef:w,sceneLoad:x,isRoomScenePending:C}=WE(),{dialogPortalContainer:E,viewerSurface:S,viewerDialogOpen:I,onViewerDialogOpenChange:M}=Wy(WA,"useRoomViewerSurface"),{t:B}=sr(),k=(0,ru.useRef)(null),T=a??A,R=B(`rooms.${v.id}`,{defaultValue:v.name}),D=(t=B("floor.scene.companyFallback"),f?.owner?.name??f?.brand??t),_="rugs"===i?f?.kit?.name??f?.name??o?.name??n:o?.name??f?.name??f?.kit?.name??n,P=(r=o?.previews?.[0],r?.subRes?.small??r?.url??f?.preview?.subRes?.small??f?.preview?.url??f?.mainPreview),L=function({activeError:e,apiKey:t,baseURL:r,clearActiveError:n,closeMaterialSelection:i,handleAccessError:a,hasDialogPortalContainer:s,hasRooms:o,isRoomScenePending:l,isViewerAccessPending:c,material:u,onViewerDialogOpenChange:d,sceneLoad:h,source:p,sourceRooms:A,viewerDialogOpen:f,viewerSurface:g,widgetSession:m}){let v=function(e){let{patchSceneLoad:t,setAngle:r,setRotation:n}=WE();return function(e,t){let[r,n]=(0,ru.useReducer)(KE,e,KC),i=(0,ru.useCallback)(e=>{e(),function({patchSceneLoad:e,setAngle:t,setRotation:r}){t(0),r(0),e(Kx)}(t),n({type:"commit-interior-selection"})},[t]),a=(0,ru.useCallback)(()=>{n({type:"dismiss-interior-selection"})},[]),s=(0,ru.useCallback)(()=>{n({type:"open-interior-selection"})},[]),o=(0,ru.useCallback)(()=>{n({type:"recover-to-scene"})},[]),l=(0,ru.useCallback)(()=>{n({type:"return-to-interior-selection"})},[]),c=(0,ru.useCallback)(()=>{n({type:"start-custom-interior-processing"})},[]);return(0,ru.useMemo)(()=>({...r,commitInteriorSelection:i,dismissInteriorSelection:a,openInteriorSelection:s,recoverToScene:o,returnToInteriorSelection:l,startCustomInteriorProcessing:c}),[i,a,s,o,l,c,r])}(e,(0,ru.useMemo)(()=>({patchSceneLoad:t,setAngle:r,setRotation:n}),[t,r,n]))}(g),{appendRuntimeCustomInterior:b,customRooms:y}=function({listCustomInteriors:e}){let{appendRuntimeCustomInterior:t,customRooms:r,replaceRuntimeCustomInteriors:n}=function(){let[e,t]=(0,ru.useState)(()=>[]),r=(0,ru.useRef)(null),n=(0,ru.useCallback)(e=>{r.current?.revokeObjectUrls();let n=Kw(e);return r.current=n,t(n.rooms),n.rooms},[]),i=(0,ru.useCallback)((e,n)=>{let i=Kw([{id:Km(),schemaVersion:1,name:e.name,fileName:e.name,createdAt:new Date().toISOString(),imageBlob:e,scene:n}]),a=i.rooms[0];if(!a)return i.revokeObjectUrls(),null;let s=r.current;return r.current={rooms:[],revokeObjectUrls:()=>{s?.revokeObjectUrls(),i.revokeObjectUrls()}},t(e=>[a,...e.filter(e=>e.id!==a.id)]),a},[]);return(0,ru.useEffect)(()=>()=>{r.current?.revokeObjectUrls()},[]),(0,ru.useMemo)(()=>({appendRuntimeCustomInterior:i,customRooms:e,replaceRuntimeCustomInteriors:n}),[i,e,n])}(),i=(0,ru.useRef)(!0);(0,ru.useEffect)(()=>(i.current=!0,()=>{i.current=!1}),[]);let a=(0,ru.useCallback)(async()=>{let t=await e();i.current&&n(t)},[e,n]);return(0,ru.useEffect)(()=>{a()},[a]),(0,ru.useMemo)(()=>({appendRuntimeCustomInterior:t,customRooms:r,replaceRuntimeCustomInteriors:n,refreshCustomInteriors:a}),[t,r,a,n])}({listCustomInteriors:Ky}),w=(0,ru.useMemo)(()=>new Set(A.map(e=>e.id)),[A]),{commitCustomInteriorSelection:x,selectInterior:C}=function(e){let{room:t,setRoomId:r,setRooms:n}=Wx(),{widgetSession:i}=WC();return function({floorFlow:e,customRooms:t,selectedRoomId:r,onInteriorSelected:n,restoreSourceRooms:i,setRoomId:a,setRooms:s}){let o=(0,ru.useCallback)(t=>{e.commitInteriorSelection(()=>{s(e=>[t,...i(e).filter(e=>e.id!==t.id)]),a(t.id)}),n?.()},[e,n,i,a,s]),l=(0,ru.useCallback)(t=>{let o=t===r;o&&e.hasSceneSelection||(e.commitInteriorSelection(()=>{s(i),a(t)}),o||n?.())},[e,n,i,r,a,s]),c=(0,ru.useCallback)(n=>{if(n===r&&e.hasSceneSelection)return;let i=t.find(e=>e.id===n);i&&o(i)},[e.hasSceneSelection,o,t,r]),u=(0,ru.useCallback)(e=>{t.some(t=>t.id===e)?c(e):l(e)},[t,c,l]);return(0,ru.useMemo)(()=>({commitCustomInteriorSelection:o,selectInterior:u}),[o,u])}({...e,selectedRoomId:t.id,onInteriorSelected:()=>VI(i,"interior_selected"),setRoomId:r,setRooms:n})}({floorFlow:v,customRooms:y,restoreSourceRooms:(0,ru.useCallback)(e=>[...A,...e.filter(e=>!w.has(e.id))],[w,A])}),E=function(e){let{setIsRoomScenePending:t}=WE();return function({apiOptions:e,floorFlow:t,commitCustomInteriorSelection:r,downloadDebugMask:n,isDebugMaskExportEnabled:i,onAccessError:a,onDebugMaskError:s,onPersistenceError:o,onProcessingError:l,predictRoomScene:c,saveCustomInterior:u,setIsRoomScenePending:d,trackRuntimeCustomInterior:h,waitForProcessingCompletion:p}){let[A,f]=(0,ru.useState)(!1),[g,m]=(0,ru.useState)(!1),[v,b]=(0,ru.useState)(null),[y,w]=(0,ru.useState)(null),[x,C]=(0,ru.useState)(!1),[E,S]=(0,ru.useState)(0),I=(0,ru.useRef)(null),M=(0,ru.useRef)(!1),B=(0,ru.useRef)(!0),k=(0,ru.useRef)(v);v&&(k.current=v),(0,ru.useEffect)(()=>(B.current=!0,()=>{B.current=!1,I.current?.abort()}),[]);let T=(0,ru.useCallback)(()=>{b(null),w(null),C(!1)},[]),R=(0,ru.useCallback)(e=>{T(),f(!1),e()},[T]),D=(0,ru.useCallback)(async A=>{if(T(),!A.type.startsWith("image/"))return void f(!0);f(!1),m(!1),t.startCustomInteriorProcessing(),M.current=!0;let g=new AbortController;I.current?.abort(),I.current=g,d(!0);try{await KI({abortSignal:g.signal,apiOptions:e,commitCustomInteriorSelection:r,downloadDebugMask:n,file:A,isActive:()=>B.current,isDebugMaskExportEnabled:i,onDebugMaskError:s,onPersistenceError:o,onProcessingComplete:()=>{m(!0)},predictRoomScene:c,saveCustomInterior:u,trackRuntimeCustomInterior:h,waitForProcessingCompletion:p})}catch(t){if(g.signal.aborted)return;let e=G0(t);if(e){M.current&&C(!0),a(e);return}if(l(t),M.current){w("custom-interior-processing"),C(!0);return}b("custom-interior-processing")}finally{I.current===g&&(I.current=null,B.current&&d(!1))}},[e,t,r,n,i,a,s,o,l,c,T,u,d,h,p]),_=(0,ru.useCallback)(()=>{T(),f(!1),t.returnToInteriorSelection(),S(e=>e+1)},[t,T]),P=(0,ru.useCallback)(()=>{T(),t.returnToInteriorSelection()},[t,T]),L=(0,ru.useCallback)(({clearError:e,closeMaterialSelection:r})=>{e(),r(),t.hasSceneSelection&&t.recoverToScene()},[t]),N=(0,ru.useCallback)(()=>{M.current=!1,C(!1),y&&(b(y),w(null))},[y]),O=(0,ru.useCallback)(()=>B.current,[]);return(0,ru.useMemo)(()=>({displayedUploadError:v??k.current,isCustomInteriorProcessingComplete:g,isInvalidFile:A,isMounted:O,isProcessingDialogClosingForError:x,pendingUploadError:y,uploadError:v,uploadRetryRequestId:E,cancelUploadError:P,handleProcessingDialogCloseAnimationEnd:N,openInteriorSelection:R,processUploadFile:D,recoverFromActiveError:L,resetUploadErrorPresentation:T,tryUploadAgain:_}),[P,N,g,A,O,x,R,y,D,L,T,_,v,E])}({...e,setIsRoomScenePending:t})}({apiOptions:(0,ru.useMemo)(()=>({apiKey:t,baseURL:r,source:p,widgetSession:m}),[t,r,p,m]),floorFlow:v,commitCustomInteriorSelection:x,downloadDebugMask:Kf,isDebugMaskExportEnabled:KA,onAccessError:a,onDebugMaskError:KB,onPersistenceError:Kk,onProcessingError:KT,predictRoomScene:Kh,saveCustomInterior:Kb,trackRuntimeCustomInterior:b,waitForProcessingCompletion:KM}),{dismissInteriorSelection:S,hasSceneSelection:I,openInteriorSelection:M,sceneResetKey:B,step:k}=v,{cancelUploadError:T,displayedUploadError:R,handleProcessingDialogCloseAnimationEnd:D,isCustomInteriorProcessingComplete:_,isInvalidFile:P,isProcessingDialogClosingForError:L,openInteriorSelection:N,pendingUploadError:O,processUploadFile:F,recoverFromActiveError:Q,resetUploadErrorPresentation:U,tryUploadAgain:z,uploadError:H,uploadRetryRequestId:j}=E,G=o&&I,V=(0,ru.useRef)(e),W=!!(e&&G&&u);e&&(V.current=e);let q=(0,ru.useCallback)(()=>{G&&(U(),S())},[S,G,U]),K=(0,ru.useCallback)(()=>{i(),N(M)},[i,M,N]),Y=(0,ru.useCallback)(()=>{Q({clearError:n,closeMaterialSelection:i})},[n,i,Q]),J=(0,ru.useCallback)(e=>{if(!e){if(G)return void q();d?.(!1)}},[q,G,d]),X=(0,ru.useCallback)(e=>{if(!e){if(W)return void Y();d?.(!1)}},[W,Y,d]),Z=(0,ru.useCallback)(e=>{e||T()},[T]);!function({fallbackMs:e,handleProcessingDialogCloseAnimationEnd:t,isProcessingDialogClosingForError:r}){(0,ru.useEffect)(()=>{if(!r)return;let n=window.setTimeout(t,e);return()=>window.clearTimeout(n)},[e,t,r])}({fallbackMs:220,handleProcessingDialogCloseAnimationEnd:D,isProcessingDialogClosingForError:L});let $=function({activeError:e,canRecoverFromActiveError:t,floorFlow:r,hasDialogPortalContainer:n,hasRooms:i,isProcessingDialogClosingForError:a,isRoomScenePending:s,isViewerAccessPending:o,pendingUploadError:l,sceneLoad:c,uploadError:u,viewerDialogOpen:d,viewerSurface:h}){let p="dialog"===h&&n,A=!p||d,f=i&&r.hasSceneSelection,g=i||"scene"!==r.step?r.step:"interior-selection",m=!o&&f&&(!e||t),v=f||p,b=!o&&!e&&v,y=!o&&!e&&!v&&"interior-selection"===g;return{activeErrorDialog:{open:!a&&!!e&&A,showCloseButton:!t},interiorSelection:{open:b&&"interior-selection"===g&&A,presentation:b?"dialog":y?"screen":null,shouldRender:b||y},processingDialog:{open:!e&&!u&&!l&&s&&"processing-custom-interior"===r.step&&A},scene:{isLoading:s||!Object.values(c).every(Boolean),resetKey:r.sceneResetKey,shouldRender:m,shouldRenderDialog:m},surface:{usesSiblingDialogFlow:p},uploadErrorDialog:{open:!a&&!e&&!!u&&A}}}({activeError:e,canRecoverFromActiveError:W,floorFlow:{hasSceneSelection:I,sceneResetKey:B,step:k},hasDialogPortalContainer:s,hasRooms:o,isProcessingDialogClosingForError:L,isRoomScenePending:l,isViewerAccessPending:c,pendingUploadError:O,sceneLoad:h,uploadError:H,viewerDialogOpen:f,viewerSurface:g});return{...$,activeErrorDialog:{...$.activeErrorDialog,onCancel:W?Y:void 0,onOpenChange:X,onTryAgain:W?Y:void 0,variant:e??V.current},customRooms:y,interiorSelection:{...$.interiorSelection,isInvalidFile:P,onOpenChange:J,onSelectRoom:C,onUploadFile:F,openFromScene:K,uploadRetryRequestId:j},sourceRooms:A,processingDialog:{...$.processingDialog,isComplete:_,onCloseAnimationEnd:D,onOpenChange:$.surface.usesSiblingDialogFlow?d:void 0},step:k,uploadErrorDialog:{...$.uploadErrorDialog,onCancel:T,onOpenChange:Z,onTryAgain:z,variant:R}}}({activeError:T,apiKey:l,baseURL:c,clearActiveError:g,closeMaterialSelection:(0,ru.useCallback)(()=>{k.current?.closeMaterialSelection()},[]),handleAccessError:m,hasDialogPortalContainer:null!==E,hasRooms:u,isRoomScenePending:C,isViewerAccessPending:p,material:o,onViewerDialogOpenChange:M,sceneLoad:x,source:d,sourceRooms:b,viewerDialogOpen:I,viewerSurface:S,widgetSession:h}),N=L.surface.usesSiblingDialogFlow?E:y,O=L.interiorSelection.shouldRender?"dialog"===L.interiorSelection.presentation?(0,rh.jsx)(Kd,{open:L.interiorSelection.open,portalContainer:N,rooms:L.sourceRooms,customRooms:L.customRooms,selectedRoomId:v.id,isInvalidFile:L.interiorSelection.isInvalidFile,uploadRetryRequestId:L.interiorSelection.uploadRetryRequestId,onOpenChange:L.interiorSelection.onOpenChange,onSelectRoom:L.interiorSelection.onSelectRoom,onUploadFile:L.interiorSelection.onUploadFile}):"screen"===L.interiorSelection.presentation?(0,rh.jsx)(Ku,{rooms:L.sourceRooms,customRooms:L.customRooms,selectedRoomId:v.id,isInvalidFile:L.interiorSelection.isInvalidFile,uploadRetryRequestId:L.interiorSelection.uploadRetryRequestId,showCloseButton:e,onSelectRoom:L.interiorSelection.onSelectRoom,onUploadFile:L.interiorSelection.onUploadFile}):null:null,F=(0,rh.jsx)(KD,{isComplete:L.processingDialog.isComplete,open:L.processingDialog.open,portalContainer:N,onCloseAnimationEnd:L.processingDialog.onCloseAnimationEnd,onOpenChange:L.processingDialog.onOpenChange}),Q=(0,rh.jsxs)(rh.Fragment,{children:[(0,rh.jsx)(WD,{variant:L.activeErrorDialog.variant,open:L.activeErrorDialog.open,portalContainer:N,showDialogCloseButton:e&&L.activeErrorDialog.showCloseButton,onOpenChange:L.activeErrorDialog.onOpenChange,onTryAgain:L.activeErrorDialog.onTryAgain,onCancel:L.activeErrorDialog.onCancel}),(0,rh.jsx)(WD,{variant:L.uploadErrorDialog.variant,open:L.uploadErrorDialog.open,portalContainer:N,onOpenChange:L.uploadErrorDialog.onOpenChange,onTryAgain:L.uploadErrorDialog.onTryAgain,onCancel:L.uploadErrorDialog.onCancel})]}),U=(0,rh.jsxs)("div",{ref:w,className:"relative grid size-full grid-rows-[minmax(0,1fr)_auto] overflow-hidden text-foreground sm:block","data-testid":"floor-viewer-root",children:[p?(0,rh.jsx)("div",{className:"flex size-full items-center justify-center bg-radial from-background-containers to-background-base-2",children:(0,rh.jsx)(V5,{variant:"logo"})}):L.scene.shouldRender?(0,rh.jsx)(Kl,{ref:k,actions:{openInteriorSelection:L.interiorSelection.openFromScene},canShowAr:!!s&&!(WT&&WR),companyName:D,hasActiveError:!!T,material:{name:_,previewUrl:P},portalContainer:N,room:{imageUrl:v.image_url,name:R},scene:{isLoading:L.scene.isLoading,resetKey:L.scene.resetKey},showDialogCloseButton:e}):null,!L.surface.usesSiblingDialogFlow&&O,!L.surface.usesSiblingDialogFlow&&F]});return L.surface.usesSiblingDialogFlow?(0,rh.jsxs)(rh.Fragment,{children:[(L.scene.shouldRenderDialog||p)&&(0,rh.jsx)(VN,{open:I,onOpenChange:M,children:(0,rh.jsxs)(VU,{className:Wh,contentInsideOverlay:!0,portalContainer:E,showCloseButton:!1,onInteractOutside:e=>{e.preventDefault()},children:[(0,rh.jsx)(Vj,{className:"sr-only",children:n}),(0,rh.jsx)(VG,{className:"sr-only"}),U]})}),O,F,Q]}):(0,rh.jsxs)(rh.Fragment,{children:[U,Q]})}function KP({className:e,...t}){return(0,rh.jsx)(jj,{"data-slot":"radio-group",className:V_("grid gap-3",e),...t})}function KL({checked:e,className:t,...r}){return(0,rh.jsx)("div",{className:V_("absolute top-1/2 left-1/2 size-6 -translate-x-1/2 -translate-y-1/2","flex items-center justify-center rounded-full",e?"bg-lime-400":"bg-background-base-2",t),...r,children:(0,rh.jsx)(c6,{className:"text-constant-white size-3.5",strokeWidth:4})})}function KN({className:e,variant:t="default",...r}){return(0,rh.jsxs)(jV,{"data-slot":"radio-group-item",className:V_("border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50","check"===t&&"size-6","inverted"===t&&"size-5 border-button-outline data-[state=checked]:border-border-red data-[state=checked]:border-4 data-[state=checked]:bg-constant-white cursor-pointer transition-all",e),...r,children:["check"===t&&(0,rh.jsx)("div",{className:"relative",children:(0,rh.jsx)(KL,{})}),"inverted"!==t&&(0,rh.jsx)(jW,{"data-slot":"radio-group-indicator",className:"relative flex items-center justify-center",children:"check"===t?(0,rh.jsx)(KL,{checked:!0}):(0,rh.jsx)(c7,{className:"fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2"})})]})}function KO({className:e,children:t,...r}){let{className:n,onReachEnd:i,...a}=r.swiperOptions??{},{t:s}=sr(),[o,l]=(0,ru.useState)(null),[c,u]=(0,ru.useState)(!0),[d,h]=(0,ru.useState)(!1),[p,A]=(0,ru.useState)(!1),f=(0,ru.useCallback)(e=>{u(e.isBeginning),h(e.isEnd),A(e.isLocked)},[]),g=(0,ru.useCallback)(e=>{l(e),f(e)},[f]),m=(0,ru.useCallback)(e=>{h(!0),i?.(e)},[i]);return(0,rh.jsxs)("div",{className:V_("relative w-full overflow-hidden",e),children:[(0,rh.jsx)(GF,{className:V_("w-full py-5",n),slidesPerView:"auto",slidesPerGroup:2,onSwiper:g,onReachBeginning:()=>u(!0),onReachEnd:m,onFromEdge:f,onLock:()=>A(!0),onUnlock:()=>A(!1),onResize:f,slidesOffsetBefore:24,slidesOffsetAfter:24,spaceBetween:12,...a,children:t}),(0,rh.jsxs)(VL,{className:V_("absolute top-1/2 left-8 -translate-y-1/2 z-1",{hidden:c||p}),variant:"contrast",size:"icon",onClick:()=>o?.slidePrev(),children:[(0,rh.jsx)(ue,{}),(0,rh.jsx)("span",{className:"sr-only",children:s("previousSlide")})]}),(0,rh.jsxs)(VL,{className:V_("absolute top-1/2 right-8 -translate-y-1/2 z-1",{hidden:d||p}),variant:"contrast",size:"icon",onClick:()=>o?.slideNext(),children:[(0,rh.jsx)(ut,{}),(0,rh.jsx)("span",{className:"sr-only",children:s("nextSlide")})]})]})}function KF({className:e,...t}){let r=W4("(max-width: 640px)"),{fetchNextMaterialsPage:n,materialItems:i,selectMaterial:a,selectedMaterialId:s}=qv(),o=(0,ru.useCallback)(()=>{n()},[n]);return 0===i.length?null:(0,rh.jsxs)(rh.Fragment,{children:[!r&&(0,rh.jsx)(Wq,{orientation:"vertical"}),(0,rh.jsx)("div",{className:V_(e),...t,children:(0,rh.jsx)(KP,{value:s||void 0,onValueChange:e=>{a(e)},children:(0,rh.jsx)(KO,{swiperOptions:{onReachEnd:o,className:"py-2 sm:py-5"},children:i.map(({materialId:e,material:t,tinuuid:n})=>(0,rh.jsx)(GQ,{className:V_("sm:w-25! w-18! transition-transform duration-200",e!==s&&"hover:scale-110"),children:(0,rh.jsxs)(WX,{htmlFor:`material-${e}`,className:"size-full flex flex-col gap-1 has-data-[state=checked]:bg-transparent",children:[(0,rh.jsxs)("div",{className:"size-full relative sm:h-19 h-13 rounded-[0.75rem] overflow-hidden grid place-items-center sm:block",children:[(0,rh.jsx)("img",{src:t.previews?.[0]?.subRes?.small??t.previews?.[0]?.url,alt:t.name??"",className:"size-full object-cover"}),(0,rh.jsx)(KN,{value:e,id:`material-${e}`,variant:"check",className:V_("absolute sm:top-1.75 sm:right-1.75",{"sr-only":e!==s})})]}),!r&&(0,rh.jsx)("span",{className:V_("block w-full text-xs text-left text-text-light truncate",{"text-text-dark":e===s}),children:t.name})]})},`${n}-${e}`))})})})]})}function KQ({className:e,...t}){let{t:r}=sr(),{placement:n}=Ww(),{rooms:i,room:a,setRoomId:s}=Wx(),{isRoomScenePending:o,selectCustomRoomFile:l}=Wy(Wb,"useRoomViewerCustomRoomIntake"),c=W4("(max-width: 640px)"),u=(0,ru.useId)(),d=(0,ru.useCallback)((e,t)=>r(`rooms.${t}`,{defaultValue:e}),[r]),h=(0,ru.useCallback)(async e=>{let t=e.target.files?.[0];e.target.value="",t&&await l(t)},[l]);return(0,rh.jsx)("div",{className:V_(e),...t,children:(0,rh.jsx)(KP,{value:a.id,onValueChange:s,children:(0,rh.jsxs)(KO,{swiperOptions:{className:"py-2 sm:py-5 pb-3 sm:pb-5"},children:[(0,rh.jsx)(GQ,{className:"sm:w-25! w-21! h-auto",children:(0,rh.jsxs)(WX,{htmlFor:u,className:V_("flex size-full cursor-pointer items-center justify-center rounded-[0.75rem] border border-dashed border-muted-foreground/40 bg-transparent px-2 text-center text-xs leading-tight text-muted-foreground transition-colors hover:border-foreground/40 hover:text-foreground",o&&"cursor-wait opacity-80"),"aria-disabled":o,children:[o?(0,rh.jsxs)(rh.Fragment,{children:[(0,rh.jsx)(V5,{className:"size-5"}),(0,rh.jsx)("span",{className:"sr-only",children:r("uploadOwnPhoto")})]}):r("uploadOwnPhoto"),(0,rh.jsx)("input",{id:u,type:"file",accept:"image/*",className:"sr-only",disabled:o,onChange:h})]})}),i.map(e=>(0,rh.jsx)(GQ,{className:V_("sm:w-25! w-21! transition-transform duration-200",e.id!==a.id&&"hover:scale-110"),children:(0,rh.jsxs)(WX,{htmlFor:`room-${e.id}`,className:"size-full flex flex-col gap-1 has-data-[state=checked]:bg-transparent",children:[(0,rh.jsxs)("div",{className:"size-full relative h-17 sm:h-19 rounded-[0.75rem] overflow-hidden",children:[(0,rh.jsx)("img",{src:e.image_url,alt:d(e.name,e.id),className:"size-full object-cover",crossOrigin:"anonymous"}),(0,rh.jsx)(KN,{value:e.id,id:`room-${e.id}`,variant:"check",className:V_("absolute top-1.75 right-1.75",{"sr-only":e.id!==a.id})})]}),"floor"===n&&!c&&(0,rh.jsx)("span",{className:V_("block w-full text-xs text-left text-text-light truncate",{"text-text-dark":e.id===a.id}),children:d(e.name,e.id)})]})},e.id))]})})})}function KU({className:e,...t}){let{placement:r}=Ww();return(0,rh.jsxs)("div",{className:V_("flex sm:items-end pl-0 overflow-hidden sm:flex-row flex-col py-3 sm:py-0",e),...t,children:[(0,rh.jsx)(KQ,{className:V_("shrink-0",{"sm:min-w-148.5 min-w-full":"floor"===r,grow:"wall"===r})}),"wall"===r&&(0,rh.jsxs)("div",{className:"hidden gap-5 pr-6 pb-5 md:flex",children:[(0,rh.jsx)(qb,{}),(0,rh.jsx)(qB,{})]}),"floor"===r&&(0,rh.jsx)(KF,{})]})}function Kz({className:e,...t}){let{name:r}=Ww();return(0,rh.jsx)("div",{className:V_("h-16 flex items-center px-6",e),...t,children:(0,rh.jsx)("div",{className:"truncate",children:r})})}function KH({variant:e,showDialogCloseButton:t=!1}){let{t:r}=sr();return(0,rh.jsxs)("div",{className:"flex size-full flex-col items-center justify-center gap-4 bg-radial from-background-containers to-background-base-2 p-4 text-center",children:[(0,rh.jsx)(VV,{className:"size-8 text-icons-light"}),(0,rh.jsx)("h2",{className:"typo-base-16 font-medium text-text-dark",children:r(`accessError.${e}`)}),t&&(0,rh.jsx)(VF,{asChild:!0,children:(0,rh.jsx)(VL,{variant:"secondary",children:r("close")})})]})}function Kj({showDialogCloseButton:e=!1}){let{placement:t}=Ww(),{isViewerAccessPending:r,accessError:n,hasRooms:i}=WC(),{setContainerRef:a,sceneLoad:s,isRoomScenePending:o}=WE(),{t:l}=sr(),c=r||o||i&&!Object.values(s).every(Boolean);return"floor"===t?(0,rh.jsx)(K_,{showDialogCloseButton:e}):n?(0,rh.jsx)("div",{ref:a,className:"relative size-full overflow-hidden bg-radial from-background-containers to-background-base-2 text-foreground",children:(0,rh.jsx)(KH,{variant:n,showDialogCloseButton:e})}):(0,rh.jsxs)("div",{ref:a,className:"relative size-full bg-radial from-background-containers to-background-base-2 text-foreground overflow-hidden",children:[e&&(0,rh.jsx)(VF,{asChild:!0,children:(0,rh.jsxs)(VL,{className:"absolute top-3 right-6 z-20",variant:"secondary",children:[l("close"),(0,rh.jsx)(c9,{})]})}),!r&&(i?(0,rh.jsxs)(rh.Fragment,{children:[(0,rh.jsx)(Kz,{className:"absolute top-0 right-0 left-0 z-15"}),(0,rh.jsxs)("div",{className:"size-full max-w-full grid grid-rows-[1fr_auto]",children:[(0,rh.jsx)(Kr,{className:"size-full min-h-0"}),(0,rh.jsx)(KU,{className:"bg-background"})]})]}):(0,rh.jsx)(KQ,{className:"absolute inset-x-0 bottom-0 bg-background"})),(0,rh.jsx)("div",{"aria-hidden":!c,className:V_("absolute inset-0 z-10 flex items-center justify-center bg-radial from-background-containers to-background-base-2 transition-opacity",c?"opacity-100 pointer-events-auto duration-0":"opacity-0 pointer-events-none duration-250ms"),children:(0,rh.jsx)(V5,{variant:"logo"})})]})}let KG={poster:"wallart",carpet:"rugs"},KV={wallart:"wall",rugs:"floor",flooring:"floor"};function KW(e){return"poster"===e||"carpet"===e?KG[e]:e}let Kq=0,KK=[];function KY(e,t,r){if(t===r)return e;let n=new Set(t.map(e=>e.id)),i=new Set(r.map(e=>e.id)),a=e.filter(e=>!n.has(e.id)&&!i.has(e.id));return a.length>0?[...a,...r]:r}function KJ({children:e,src:t,tinuuid:r,type:n,viewerSurface:i,dialogPortalContainer:a=null,viewerDialogOpen:s=!0,onViewerDialogOpenChange:o,width:l,height:c,displayUnit:u,name:d,apiKey:h,baseURL:p,source:A,externalWidgetSession:f}){var g;let m=function(){let{t:e}=sr();return(0,ru.useMemo)(()=>[{value:.025,label:`2.5 ${e("units.cm")}`},{value:.05,label:`5 ${e("units.cm")}`}],[e])}(),v=qM(u),b=KV[n],y="floor"===b?qc:ql,w=GZ({apiKey:h,baseURL:p,source:A}),[x,C]=(0,ru.useState)(r),[E,S]=(0,ru.useState)(null),[I,M]=(0,ru.useState)(m[0].value),[B,k]=(0,ru.useState)(v[0].value),[T,R]=(0,ru.useState)(0),[D,_]=(0,ru.useState)(0),[P,L]=(0,ru.useState)(!1),[N,O]=(0,ru.useState)(null),[F,Q]=(0,ru.useState)(()=>({layoutReady:!1,placementReady:!1,materialReady:!1,artifactsReady:!1,assetsReady:!1,prepareReady:!1})),[U,z]=(0,ru.useState)(!1),[H,j]=(0,ru.useState)(null),[G,V]=(0,ru.useState)(null),W=(0,ru.useRef)(null),q=(0,ru.useRef)(new Set),K=(0,ru.useRef)(null),Y=(0,ru.useRef)(!0),J=(0,ru.useRef)(!1),X="floor"===b,Z="default"===A&&void 0!==h,$=s4({queryKey:["room-viewer","activate",{apiKey:h??null,source:A}],enabled:Z,queryFn:({signal:e})=>Vo({productType:G$({apiKey:h,baseURL:p,source:A})},{baseURL:p,headers:{"x-api-key":h},signal:e})},sG,void 0),ee=G0($.error),et=(0,ru.useMemo)(()=>{let e=$.data;return VS(e?.widgetSession,{apiConfig:{baseURL:p,headers:{"x-api-key":h}}})},[$.data,h,p]),er=(0,ru.useMemo)(()=>f instanceof VE?f:VS(f,{apiConfig:{baseURL:p,headers:{"x-api-key":h}}})??et,[et,h,p,f]),en="shopify"===A?null!==er:Z&&$.isSuccess,ei=s4({queryKey:["room-viewer","rooms",{apiKey:(g={apiKey:h,baseURL:p,source:A,widgetSession:er}).apiKey??null,source:g.source,widgetSessionId:g.widgetSession?.sid??null}],enabled:w&&en,queryFn:async({signal:e})=>{try{return await VD({apiKey:h,baseURL:p,signal:e,source:A,widgetSession:er})}catch(e){if(G0(e))throw e;return[]}}},sG,void 0),ea=w?ei.data??KK:y,[es,eo]=(0,ru.useState)(()=>({rooms:ea,sourceRooms:ea})),el=(0,ru.useMemo)(()=>KY(es.rooms,es.sourceRooms,ea),[es.rooms,es.sourceRooms,ea]),ec=(0,ru.useCallback)(e=>{eo(t=>{let r=KY(t.rooms,t.sourceRooms,ea);return{rooms:"function"==typeof e?e(r):e,sourceRooms:ea}})},[ea]),[eu,ed]=(0,ru.useState)(()=>y[0].id),eh=el.find(e=>e.id===eu),ep=eh??el[0]??y[0],eA=el.length>0;!eh&&el[0]&&eu!==el[0].id&&ed(el[0].id);let ef=s4({queryKey:VB(r??void 0,{apiKey:h,baseURL:p,source:A}),enabled:(!Z||$.isSuccess||$.isError&&null===ee)&&X&&null===E&&!!r,queryFn:async({signal:e})=>{if(!r)throw Error("Tinuuid is required.");return Vk(r,{apiKey:h,baseURL:p,signal:e,source:A,widgetSession:er})}},sG,void 0),eg=ef.data??null,em=E?.native?.glbUrl??null,ev=G0(ef.error),eb=G0(ei.error),ey=w&&("shopify"===A?null===er||ei.isLoading:$.isSuccess&&ei.isLoading),ew=Z&&$.isLoading||ey,ex=$.error&&null===ee?"viewer-load-failed":null,eC=ef.error&&null===ev?"viewer-load-failed":null,eE=H??ee??eb??ev,eS=G??ex??eC,eI=(0,ru.useCallback)(e=>{Q(t=>Object.assign({},t,e))},[]);(0,ru.useEffect)(()=>{let e=new Set(el.map(e=>e.image_url));for(let t of Array.from(q.current))e.has(t)||(URL.revokeObjectURL(t),q.current.delete(t))},[el]),(0,ru.useEffect)(()=>{let e=q.current;return Y.current=!0,()=>{for(let t of(Y.current=!1,K.current?.abort(),Array.from(e)))URL.revokeObjectURL(t);e.clear()}},[]);let eM=(0,ru.useCallback)(async e=>{let t=null,r=new AbortController;K.current?.abort(),K.current=r,z(!0);try{t=URL.createObjectURL(e);let n=await Kh(e,{apiKey:h,baseURL:p,source:A,signal:r.signal,widgetSession:er});if(r.signal.aborted||!Y.current)return void URL.revokeObjectURL(t);KA()&&Kf(n,e.name).catch(e=>{console.error("Failed to export room debug mask",e)});let i={id:(Kq+=1,`room-custom-${Kq}`),name:e.name,image_url:t,scene:n};q.current.add(t),eI({placementReady:!1,prepareReady:!1,artifactsReady:!1,assetsReady:!1}),ec(e=>[i,...e]),ed(i.id)}catch(n){if(t&&URL.revokeObjectURL(t),r.signal.aborted)return;let e=G0(n);if(e)return void j(e);console.error("Failed to prepare custom room scene",n)}finally{K.current===r&&(K.current=null,Y.current&&z(!1))}},[h,p,eI,ec,A,er]);(0,ru.useEffect)(()=>{if("dialog"!==i||!s){J.current=!1;return}J.current||er&&(VI(er,"widget_opened"),J.current=!0)},[s,i,er]),(0,ru.useEffect)(()=>{X&&(C(r),S(null),j(null),V(null))},[r,X]),(0,ru.useEffect)(()=>{j(null),V(null)},[h,A]),(0,ru.useEffect)(()=>{X&&eg&&null===E&&S(eg.materials?.[0]??null)},[E,eg,X]);let eB=(0,ru.useMemo)(()=>({type:n,placement:b,name:d,width:l,height:c,displayUnit:u}),[n,b,d,l,c,u]),ek=(0,ru.useMemo)(()=>({viewerSurface:i,dialogPortalContainer:a,viewerDialogOpen:s,onViewerDialogOpenChange:o}),[i,a,s,o]),eT=(0,ru.useMemo)(()=>({rooms:el,sourceRooms:ea,setRooms:ec,room:ep,setRoomId:ed}),[el,ep,ec,ea]),eR=(0,ru.useMemo)(()=>({src:t,glbUrl:em,tinuuid:x,viewedObject:eg,material:E,setTinuuid:C,setMaterial:S,apiKey:h,baseURL:p,source:A,widgetSession:er,hasRooms:eA,isViewerAccessPending:ew,accessError:eE,setAccessError:j,loadError:eS,setLoadError:V}),[t,em,x,eg,E,h,p,A,er,eA,ew,eE,eS]),eD=(0,ru.useMemo)(()=>({containerRef:N,setContainerRef:O,resourceRef:W,angle:T,setAngle:R,rotation:D,setRotation:_,isDragging:P,setIsDragging:L,sceneLoad:F,patchSceneLoad:eI,isRoomScenePending:U,setIsRoomScenePending:z}),[N,T,D,P,F,eI,U]),e_=(0,ru.useMemo)(()=>({frameWidth:I,setFrameWidth:M,matting:B,setMatting:k}),[I,B]),eP=(0,ru.useMemo)(()=>({isRoomScenePending:U,selectCustomRoomFile:eM}),[U,eM]);return(0,rh.jsx)(Wp,{value:eB,children:(0,rh.jsx)(WA,{value:ek,children:(0,rh.jsx)(Wf,{value:eT,children:(0,rh.jsx)(Wg,{value:eR,children:(0,rh.jsx)(Wm,{value:eD,children:(0,rh.jsx)(Wv,{value:e_,children:(0,rh.jsx)(Wb,{value:eP,children:e})})})})})})})}let KX=new rc({defaultOptions:{queries:{gcTime:1/0,refetchOnMount:!1,refetchOnReconnect:!1,refetchOnWindowFocus:!1,retry:(e,t)=>{let r=function(e){if(ic(e))return e.response?.status}(t);return(void 0===r||!(r>=400)||!(r<500))&&e<2}}}});function KZ({type:e,src:t,tinuuid:r,name:n,height:i,width:a,language:s,dimensionUnit:o="m",displayUnit:l="cm",apiKey:c,source:u="default",showDialogCloseButton:d=!1,viewerSurface:h="inline",dialogPortalContainer:p=null,viewerDialogOpen:A=!0,onViewerDialogOpenChange:f,widgetSession:g}){let{i18n:m}=sr(),v=c?.trim()||void 0,b=KW(e),y="wall"===KV[b]?function(e,t,r="m"){return{width:Wz(e??0,r),height:Wz(t??0,r)}}(a,i,o):null;return(0,ru.useEffect)(()=>{},[e]),(0,ru.useEffect)(()=>{"string"==typeof s&&m.changeLanguage(s)},[m,s]),(0,rh.jsx)(rf,{client:KX,children:(0,rh.jsx)(KJ,{src:t??null,tinuuid:r??null,type:b,viewerSurface:h,dialogPortalContainer:p,viewerDialogOpen:A,onViewerDialogOpenChange:f,name:n,width:y?.width??0,height:y?.height??0,displayUnit:l,apiKey:v,baseURL:"shopify"===u?GX:void 0,source:u,externalWidgetSession:g,children:(0,rh.jsx)(Kj,{showDialogCloseButton:d})})})}function K$({type:e,src:t,tinuuid:r,width:n,height:i,dimensionUnit:a,displayUnit:s,name:o,language:l,apiKey:c,source:u,widgetSession:d,open:h,defaultOpen:p,onOpenChange:A,...f}){let[g,m]=(0,ru.useState)(null),v=KV[KW(e)],[b,y]=(0,ru.useState)(p??!1),w=h??b,[x,C]=(0,ru.useState)(w),E=w||x;(0,ru.useEffect)(()=>{w&&C(!0)},[w]);let S=(0,rh.jsx)(KZ,{type:e,src:t,tinuuid:r,name:o,height:i,width:n,dimensionUnit:a,displayUnit:s,language:l,apiKey:c,source:u,widgetSession:d,showDialogCloseButton:!0,viewerSurface:"dialog",dialogPortalContainer:g,viewerDialogOpen:w,onViewerDialogOpenChange:function(e){void 0===h&&y(e),A?.(e)}});return(0,rh.jsxs)(rh.Fragment,{children:[(0,aa.createPortal)((0,rh.jsx)("style",{children:GV.A}),document.head),(0,aa.createPortal)((0,rh.jsxs)(sx.div,{style:{display:"block",letterSpacing:"normal",zIndex:0x7fffffff},children:[(0,rh.jsx)("style",{children:GY}),(0,rh.jsx)("div",{ref:m}),g&&(0,rh.jsx)(GG,{root:g,storageKey:"neurodyn-theme",defaultTheme:"light",children:(0,rh.jsx)(sn,{i18n:Gq,children:"floor"===v?E&&S:(0,rh.jsx)(VN,{...f,open:h,defaultOpen:p,onOpenChange:A,children:(0,rh.jsxs)(VU,{className:Wh,contentInsideOverlay:!0,portalContainer:g,showCloseButton:!1,onInteractOutside:e=>{e.preventDefault()},children:[(0,rh.jsxs)(Vz,{className:"sr-only",children:[(0,rh.jsx)(Vj,{children:o}),(0,rh.jsx)(VG,{})]}),S]})})})})]}),document.body)]})}Vg({baseURL:"https://api.neurodyn.ai/v1/"}),Vr({baseURL:"https://api.neurodyn.ai/"});let K0=iM({clientName:"API node client",configureFunctionName:"configureNodeApiClient",defaultBaseURL:"https://api.vizbl.com"});K0.configureClientRuntime,K0.configureAccessTokenResolverRuntime,K0.configureHeadersResolverRuntime,K0.configureUnauthorizedHandlerRuntime,K0.isClientConfiguredRuntime,K0.assertClientConfiguredRuntime,K0.resetClientForTestsRuntime;let K1=K0.requestRuntime;async function K2(e){return K1(e)}async function K3(e,t={}){let{client:r=K2,...n}=t;return(await r({method:"POST",url:"/public/widget/activate-wallart",params:e,...n})).data}K0.requestWithoutUnauthorizedRecovery,K0.addResponseInterceptorRuntime,(eQ=tw||(tw={})).assertEqual=e=>{},eQ.assertIs=function(e){},eQ.assertNever=function(e){throw Error()},eQ.arrayToEnum=e=>{let t={};for(let r of e)t[r]=r;return t},eQ.getValidEnumValues=e=>{let t=eQ.objectKeys(e).filter(t=>"number"!=typeof e[e[t]]),r={};for(let n of t)r[n]=e[n];return eQ.objectValues(r)},eQ.objectValues=e=>eQ.objectKeys(e).map(function(t){return e[t]}),eQ.objectKeys="function"==typeof Object.keys?e=>Object.keys(e):e=>{let t=[];for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.push(r);return t},eQ.find=(e,t)=>{for(let r of e)if(t(r))return r},eQ.isInteger="function"==typeof Number.isInteger?e=>Number.isInteger(e):e=>"number"==typeof e&&Number.isFinite(e)&&Math.floor(e)===e,eQ.joinValues=function(e,t=" | "){return e.map(e=>"string"==typeof e?`'${e}'`:e).join(t)},eQ.jsonStringifyReplacer=(e,t)=>"bigint"==typeof t?t.toString():t,(tx||(tx={})).mergeShapes=(e,t)=>({...e,...t});let K4=tw.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),K9=e=>{switch(typeof e){case"undefined":return K4.undefined;case"string":return K4.string;case"number":return Number.isNaN(e)?K4.nan:K4.number;case"boolean":return K4.boolean;case"function":return K4.function;case"bigint":return K4.bigint;case"symbol":return K4.symbol;case"object":if(Array.isArray(e))return K4.array;if(null===e)return K4.null;if(e.then&&"function"==typeof e.then&&e.catch&&"function"==typeof e.catch)return K4.promise;if("u">typeof Map&&e instanceof Map)return K4.map;if("u">typeof Set&&e instanceof Set)return K4.set;if("u">typeof Date&&e instanceof Date)return K4.date;return K4.object;default:return K4.unknown}},K5=tw.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class K8 extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=e=>{this.issues=[...this.issues,e]},this.addIssues=(e=[])=>{this.issues=[...this.issues,...e]};const t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}format(e){let t=e||function(e){return e.message},r={_errors:[]},n=e=>{for(let i of e.issues)if("invalid_union"===i.code)i.unionErrors.map(n);else if("invalid_return_type"===i.code)n(i.returnTypeError);else if("invalid_arguments"===i.code)n(i.argumentsError);else if(0===i.path.length)r._errors.push(t(i));else{let e=r,n=0;for(;n<i.path.length;){let r=i.path[n];n===i.path.length-1?(e[r]=e[r]||{_errors:[]},e[r]._errors.push(t(i))):e[r]=e[r]||{_errors:[]},e=e[r],n++}}};return n(this),r}static assert(e){if(!(e instanceof K8))throw Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,tw.jsonStringifyReplacer,2)}get isEmpty(){return 0===this.issues.length}flatten(e=e=>e.message){let t={},r=[];for(let n of this.issues)if(n.path.length>0){let r=n.path[0];t[r]=t[r]||[],t[r].push(e(n))}else r.push(e(n));return{formErrors:r,fieldErrors:t}}get formErrors(){return this.flatten()}}K8.create=e=>new K8(e);let K6=(e,t)=>{let r;switch(e.code){case K5.invalid_type:r=e.received===K4.undefined?"Required":`Expected ${e.expected}, received ${e.received}`;break;case K5.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(e.expected,tw.jsonStringifyReplacer)}`;break;case K5.unrecognized_keys:r=`Unrecognized key(s) in object: ${tw.joinValues(e.keys,", ")}`;break;case K5.invalid_union:r="Invalid input";break;case K5.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${tw.joinValues(e.options)}`;break;case K5.invalid_enum_value:r=`Invalid enum value. Expected ${tw.joinValues(e.options)}, received '${e.received}'`;break;case K5.invalid_arguments:r="Invalid function arguments";break;case K5.invalid_return_type:r="Invalid function return type";break;case K5.invalid_date:r="Invalid date";break;case K5.invalid_string:"object"==typeof e.validation?"includes"in e.validation?(r=`Invalid input: must include "${e.validation.includes}"`,"number"==typeof e.validation.position&&(r=`${r} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?r=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?r=`Invalid input: must end with "${e.validation.endsWith}"`:tw.assertNever(e.validation):r="regex"!==e.validation?`Invalid ${e.validation}`:"Invalid";break;case K5.too_small:r="array"===e.type?`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:"string"===e.type?`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:"number"===e.type||"bigint"===e.type?`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:"date"===e.type?`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:"Invalid input";break;case K5.too_big:r="array"===e.type?`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:"string"===e.type?`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:"number"===e.type?`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:"bigint"===e.type?`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:"date"===e.type?`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:"Invalid input";break;case K5.custom:r="Invalid input";break;case K5.invalid_intersection_types:r="Intersection results could not be merged";break;case K5.not_multiple_of:r=`Number must be a multiple of ${e.multipleOf}`;break;case K5.not_finite:r="Number must be finite";break;default:r=t.defaultError,tw.assertNever(e)}return{message:r}};(eU=tC||(tC={})).errToObj=e=>"string"==typeof e?{message:e}:e||{},eU.toString=e=>"string"==typeof e?e:e?.message;let K7=e=>{let{data:t,path:r,errorMaps:n,issueData:i}=e,a=[...r,...i.path||[]],s={...i,path:a};if(void 0!==i.message)return{...i,path:a,message:i.message};let o="";for(let e of n.filter(e=>!!e).slice().reverse())o=e(s,{data:t,defaultError:o}).message;return{...i,path:a,message:o}};function Ye(e,t){let r=K7({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,K6,void 0].filter(e=>!!e)});e.common.issues.push(r)}class Yt{constructor(){this.value="valid"}dirty(){"valid"===this.value&&(this.value="dirty")}abort(){"aborted"!==this.value&&(this.value="aborted")}static mergeArray(e,t){let r=[];for(let n of t){if("aborted"===n.status)return Yr;"dirty"===n.status&&e.dirty(),r.push(n.value)}return{status:e.value,value:r}}static async mergeObjectAsync(e,t){let r=[];for(let e of t){let t=await e.key,n=await e.value;r.push({key:t,value:n})}return Yt.mergeObjectSync(e,r)}static mergeObjectSync(e,t){let r={};for(let n of t){let{key:t,value:i}=n;if("aborted"===t.status||"aborted"===i.status)return Yr;"dirty"===t.status&&e.dirty(),"dirty"===i.status&&e.dirty(),"__proto__"!==t.value&&(void 0!==i.value||n.alwaysSet)&&(r[t.value]=i.value)}return{status:e.value,value:r}}}let Yr=Object.freeze({status:"aborted"}),Yn=e=>({status:"dirty",value:e}),Yi=e=>({status:"valid",value:e}),Ya=e=>"u">typeof Promise&&e instanceof Promise;class Ys{constructor(e,t,r,n){this._cachedPath=[],this.parent=e,this.data=t,this._path=r,this._key=n}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}let Yo=(e,t)=>{if("valid"===t.status)return{success:!0,data:t.value};if(!e.common.issues.length)throw Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let t=new K8(e.common.issues);return this._error=t,this._error}}};function Yl(e){if(!e)return{};let{errorMap:t,invalid_type_error:r,required_error:n,description:i}=e;if(t&&(r||n))throw Error('Can\'t use "invalid_type_error" or "required_error" in conjunction with custom error map.');return t?{errorMap:t,description:i}:{errorMap:(t,i)=>{let{message:a}=e;return"invalid_enum_value"===t.code?{message:a??i.defaultError}:void 0===i.data?{message:a??n??i.defaultError}:"invalid_type"!==t.code?{message:i.defaultError}:{message:a??r??i.defaultError}},description:i}}class Yc{get description(){return this._def.description}_getType(e){return K9(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:K9(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Yt,ctx:{common:e.parent.common,data:e.data,parsedType:K9(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let t=this._parse(e);if(Ya(t))throw Error("Synchronous parse encountered promise.");return t}_parseAsync(e){return Promise.resolve(this._parse(e))}parse(e,t){let r=this.safeParse(e,t);if(r.success)return r.data;throw r.error}safeParse(e,t){let r={common:{issues:[],async:t?.async??!1,contextualErrorMap:t?.errorMap},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:K9(e)},n=this._parseSync({data:e,path:r.path,parent:r});return Yo(r,n)}"~validate"(e){let t={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:K9(e)};if(!this["~standard"].async)try{let r=this._parseSync({data:e,path:[],parent:t});return"valid"===r.status?{value:r.value}:{issues:t.common.issues}}catch(e){e?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(e=>"valid"===e.status?{value:e.value}:{issues:t.common.issues})}async parseAsync(e,t){let r=await this.safeParseAsync(e,t);if(r.success)return r.data;throw r.error}async safeParseAsync(e,t){let r={common:{issues:[],contextualErrorMap:t?.errorMap,async:!0},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:K9(e)},n=this._parse({data:e,path:r.path,parent:r});return Yo(r,await (Ya(n)?n:Promise.resolve(n)))}refine(e,t){return this._refinement((r,n)=>{let i=e(r),a=()=>n.addIssue({code:K5.custom,..."string"==typeof t||void 0===t?{message:t}:"function"==typeof t?t(r):t});return"u">typeof Promise&&i instanceof Promise?i.then(e=>!!e||(a(),!1)):!!i||(a(),!1)})}refinement(e,t){return this._refinement((r,n)=>!!e(r)||(n.addIssue("function"==typeof t?t(r,n):t),!1))}_refinement(e){return new Y2({schema:this,typeName:tE.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:e=>this["~validate"](e)}}optional(){return Y3.create(this,this._def)}nullable(){return Y4.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return YQ.create(this)}promise(){return Y1.create(this,this._def)}or(e){return Yz.create([this,e],this._def)}and(e){return YG.create(this,e,this._def)}transform(e){return new Y2({...Yl(this._def),schema:this,typeName:tE.ZodEffects,effect:{type:"transform",transform:e}})}default(e){return new Y9({...Yl(this._def),innerType:this,defaultValue:"function"==typeof e?e:()=>e,typeName:tE.ZodDefault})}brand(){return new Y6({typeName:tE.ZodBranded,type:this,...Yl(this._def)})}catch(e){return new Y5({...Yl(this._def),innerType:this,catchValue:"function"==typeof e?e:()=>e,typeName:tE.ZodCatch})}describe(e){return new this.constructor({...this._def,description:e})}pipe(e){return Y7.create(this,e)}readonly(){return Je.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}let Yu=/^c[^\s-]{8,}$/i,Yd=/^[0-9a-z]+$/,Yh=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Yp=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,YA=/^[a-z0-9_-]{21}$/i,Yf=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Yg=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Ym=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Yv=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Yb=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Yy=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Yw=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Yx=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,YC=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,YE="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",YS=RegExp(`^${YE}$`);function YI(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:null==e.precision&&(t=`${t}(\\.\\d+)?`);let r=e.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${r}`}class YM extends Yc{_parse(e){var t,r,n,i;let a;if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==K4.string){let t=this._getOrReturnCtx(e);return Ye(t,{code:K5.invalid_type,expected:K4.string,received:t.parsedType}),Yr}let s=new Yt;for(let o of this._def.checks)if("min"===o.kind)e.data.length<o.value&&(Ye(a=this._getOrReturnCtx(e,a),{code:K5.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),s.dirty());else if("max"===o.kind)e.data.length>o.value&&(Ye(a=this._getOrReturnCtx(e,a),{code:K5.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),s.dirty());else if("length"===o.kind){let t=e.data.length>o.value,r=e.data.length<o.value;(t||r)&&(a=this._getOrReturnCtx(e,a),t?Ye(a,{code:K5.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}):r&&Ye(a,{code:K5.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}),s.dirty())}else if("email"===o.kind)Ym.test(e.data)||(Ye(a=this._getOrReturnCtx(e,a),{validation:"email",code:K5.invalid_string,message:o.message}),s.dirty());else if("emoji"===o.kind)I||(I=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),I.test(e.data)||(Ye(a=this._getOrReturnCtx(e,a),{validation:"emoji",code:K5.invalid_string,message:o.message}),s.dirty());else if("uuid"===o.kind)Yp.test(e.data)||(Ye(a=this._getOrReturnCtx(e,a),{validation:"uuid",code:K5.invalid_string,message:o.message}),s.dirty());else if("nanoid"===o.kind)YA.test(e.data)||(Ye(a=this._getOrReturnCtx(e,a),{validation:"nanoid",code:K5.invalid_string,message:o.message}),s.dirty());else if("cuid"===o.kind)Yu.test(e.data)||(Ye(a=this._getOrReturnCtx(e,a),{validation:"cuid",code:K5.invalid_string,message:o.message}),s.dirty());else if("cuid2"===o.kind)Yd.test(e.data)||(Ye(a=this._getOrReturnCtx(e,a),{validation:"cuid2",code:K5.invalid_string,message:o.message}),s.dirty());else if("ulid"===o.kind)Yh.test(e.data)||(Ye(a=this._getOrReturnCtx(e,a),{validation:"ulid",code:K5.invalid_string,message:o.message}),s.dirty());else if("url"===o.kind)try{new URL(e.data)}catch{Ye(a=this._getOrReturnCtx(e,a),{validation:"url",code:K5.invalid_string,message:o.message}),s.dirty()}else"regex"===o.kind?(o.regex.lastIndex=0,o.regex.test(e.data)||(Ye(a=this._getOrReturnCtx(e,a),{validation:"regex",code:K5.invalid_string,message:o.message}),s.dirty())):"trim"===o.kind?e.data=e.data.trim():"includes"===o.kind?e.data.includes(o.value,o.position)||(Ye(a=this._getOrReturnCtx(e,a),{code:K5.invalid_string,validation:{includes:o.value,position:o.position},message:o.message}),s.dirty()):"toLowerCase"===o.kind?e.data=e.data.toLowerCase():"toUpperCase"===o.kind?e.data=e.data.toUpperCase():"startsWith"===o.kind?e.data.startsWith(o.value)||(Ye(a=this._getOrReturnCtx(e,a),{code:K5.invalid_string,validation:{startsWith:o.value},message:o.message}),s.dirty()):"endsWith"===o.kind?e.data.endsWith(o.value)||(Ye(a=this._getOrReturnCtx(e,a),{code:K5.invalid_string,validation:{endsWith:o.value},message:o.message}),s.dirty()):"datetime"===o.kind?(function(e){let t=`${YE}T${YI(e)}`,r=[];return r.push(e.local?"Z?":"Z"),e.offset&&r.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${r.join("|")})`,RegExp(`^${t}$`)})(o).test(e.data)||(Ye(a=this._getOrReturnCtx(e,a),{code:K5.invalid_string,validation:"datetime",message:o.message}),s.dirty()):"date"===o.kind?YS.test(e.data)||(Ye(a=this._getOrReturnCtx(e,a),{code:K5.invalid_string,validation:"date",message:o.message}),s.dirty()):"time"===o.kind?RegExp(`^${YI(o)}$`).test(e.data)||(Ye(a=this._getOrReturnCtx(e,a),{code:K5.invalid_string,validation:"time",message:o.message}),s.dirty()):"duration"===o.kind?Yg.test(e.data)||(Ye(a=this._getOrReturnCtx(e,a),{validation:"duration",code:K5.invalid_string,message:o.message}),s.dirty()):"ip"===o.kind?(t=e.data,!(("v4"===(r=o.version)||!r)&&Yv.test(t)||("v6"===r||!r)&&Yy.test(t))&&1&&(Ye(a=this._getOrReturnCtx(e,a),{validation:"ip",code:K5.invalid_string,message:o.message}),s.dirty())):"jwt"===o.kind?!function(e,t){if(!Yf.test(e))return!1;try{let[r]=e.split(".");if(!r)return!1;let n=r.replace(/-/g,"+").replace(/_/g,"/").padEnd(r.length+(4-r.length%4)%4,"="),i=JSON.parse(atob(n));if("object"!=typeof i||null===i||"typ"in i&&i?.typ!=="JWT"||!i.alg||t&&i.alg!==t)return!1;return!0}catch{return!1}}(e.data,o.alg)&&(Ye(a=this._getOrReturnCtx(e,a),{validation:"jwt",code:K5.invalid_string,message:o.message}),s.dirty()):"cidr"===o.kind?(n=e.data,!(("v4"===(i=o.version)||!i)&&Yb.test(n)||("v6"===i||!i)&&Yw.test(n))&&1&&(Ye(a=this._getOrReturnCtx(e,a),{validation:"cidr",code:K5.invalid_string,message:o.message}),s.dirty())):"base64"===o.kind?Yx.test(e.data)||(Ye(a=this._getOrReturnCtx(e,a),{validation:"base64",code:K5.invalid_string,message:o.message}),s.dirty()):"base64url"===o.kind?YC.test(e.data)||(Ye(a=this._getOrReturnCtx(e,a),{validation:"base64url",code:K5.invalid_string,message:o.message}),s.dirty()):tw.assertNever(o);return{status:s.value,value:e.data}}_regex(e,t,r){return this.refinement(t=>e.test(t),{validation:t,code:K5.invalid_string,...tC.errToObj(r)})}_addCheck(e){return new YM({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...tC.errToObj(e)})}url(e){return this._addCheck({kind:"url",...tC.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...tC.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...tC.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...tC.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...tC.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...tC.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...tC.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...tC.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...tC.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...tC.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...tC.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...tC.errToObj(e)})}datetime(e){return"string"==typeof e?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:void 0===e?.precision?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...tC.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return"string"==typeof e?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:void 0===e?.precision?null:e?.precision,...tC.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...tC.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...tC.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t?.position,...tC.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...tC.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...tC.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...tC.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...tC.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...tC.errToObj(t)})}nonempty(e){return this.min(1,tC.errToObj(e))}trim(){return new YM({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new YM({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new YM({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>"datetime"===e.kind)}get isDate(){return!!this._def.checks.find(e=>"date"===e.kind)}get isTime(){return!!this._def.checks.find(e=>"time"===e.kind)}get isDuration(){return!!this._def.checks.find(e=>"duration"===e.kind)}get isEmail(){return!!this._def.checks.find(e=>"email"===e.kind)}get isURL(){return!!this._def.checks.find(e=>"url"===e.kind)}get isEmoji(){return!!this._def.checks.find(e=>"emoji"===e.kind)}get isUUID(){return!!this._def.checks.find(e=>"uuid"===e.kind)}get isNANOID(){return!!this._def.checks.find(e=>"nanoid"===e.kind)}get isCUID(){return!!this._def.checks.find(e=>"cuid"===e.kind)}get isCUID2(){return!!this._def.checks.find(e=>"cuid2"===e.kind)}get isULID(){return!!this._def.checks.find(e=>"ulid"===e.kind)}get isIP(){return!!this._def.checks.find(e=>"ip"===e.kind)}get isCIDR(){return!!this._def.checks.find(e=>"cidr"===e.kind)}get isBase64(){return!!this._def.checks.find(e=>"base64"===e.kind)}get isBase64url(){return!!this._def.checks.find(e=>"base64url"===e.kind)}get minLength(){let e=null;for(let t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(let t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return e}}YM.create=e=>new YM({checks:[],typeName:tE.ZodString,coerce:e?.coerce??!1,...Yl(e)});class YB extends Yc{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){let t;if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==K4.number){let t=this._getOrReturnCtx(e);return Ye(t,{code:K5.invalid_type,expected:K4.number,received:t.parsedType}),Yr}let r=new Yt;for(let n of this._def.checks)"int"===n.kind?tw.isInteger(e.data)||(Ye(t=this._getOrReturnCtx(e,t),{code:K5.invalid_type,expected:"integer",received:"float",message:n.message}),r.dirty()):"min"===n.kind?(n.inclusive?e.data<n.value:e.data<=n.value)&&(Ye(t=this._getOrReturnCtx(e,t),{code:K5.too_small,minimum:n.value,type:"number",inclusive:n.inclusive,exact:!1,message:n.message}),r.dirty()):"max"===n.kind?(n.inclusive?e.data>n.value:e.data>=n.value)&&(Ye(t=this._getOrReturnCtx(e,t),{code:K5.too_big,maximum:n.value,type:"number",inclusive:n.inclusive,exact:!1,message:n.message}),r.dirty()):"multipleOf"===n.kind?0!==function(e,t){let r=(e.toString().split(".")[1]||"").length,n=(t.toString().split(".")[1]||"").length,i=r>n?r:n;return Number.parseInt(e.toFixed(i).replace(".",""))%Number.parseInt(t.toFixed(i).replace(".",""))/10**i}(e.data,n.value)&&(Ye(t=this._getOrReturnCtx(e,t),{code:K5.not_multiple_of,multipleOf:n.value,message:n.message}),r.dirty()):"finite"===n.kind?Number.isFinite(e.data)||(Ye(t=this._getOrReturnCtx(e,t),{code:K5.not_finite,message:n.message}),r.dirty()):tw.assertNever(n);return{status:r.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,tC.toString(t))}gt(e,t){return this.setLimit("min",e,!1,tC.toString(t))}lte(e,t){return this.setLimit("max",e,!0,tC.toString(t))}lt(e,t){return this.setLimit("max",e,!1,tC.toString(t))}setLimit(e,t,r,n){return new YB({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:r,message:tC.toString(n)}]})}_addCheck(e){return new YB({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:tC.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:tC.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:tC.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:tC.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:tC.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:tC.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:tC.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:tC.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:tC.toString(e)})}get minValue(){let e=null;for(let t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>"int"===e.kind||"multipleOf"===e.kind&&tw.isInteger(e.value))}get isFinite(){let e=null,t=null;for(let r of this._def.checks)if("finite"===r.kind||"int"===r.kind||"multipleOf"===r.kind)return!0;else"min"===r.kind?(null===t||r.value>t)&&(t=r.value):"max"===r.kind&&(null===e||r.value<e)&&(e=r.value);return Number.isFinite(t)&&Number.isFinite(e)}}YB.create=e=>new YB({checks:[],typeName:tE.ZodNumber,coerce:e?.coerce||!1,...Yl(e)});class Yk extends Yc{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){let t;if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==K4.bigint)return this._getInvalidInput(e);let r=new Yt;for(let n of this._def.checks)"min"===n.kind?(n.inclusive?e.data<n.value:e.data<=n.value)&&(Ye(t=this._getOrReturnCtx(e,t),{code:K5.too_small,type:"bigint",minimum:n.value,inclusive:n.inclusive,message:n.message}),r.dirty()):"max"===n.kind?(n.inclusive?e.data>n.value:e.data>=n.value)&&(Ye(t=this._getOrReturnCtx(e,t),{code:K5.too_big,type:"bigint",maximum:n.value,inclusive:n.inclusive,message:n.message}),r.dirty()):"multipleOf"===n.kind?e.data%n.value!==BigInt(0)&&(Ye(t=this._getOrReturnCtx(e,t),{code:K5.not_multiple_of,multipleOf:n.value,message:n.message}),r.dirty()):tw.assertNever(n);return{status:r.value,value:e.data}}_getInvalidInput(e){let t=this._getOrReturnCtx(e);return Ye(t,{code:K5.invalid_type,expected:K4.bigint,received:t.parsedType}),Yr}gte(e,t){return this.setLimit("min",e,!0,tC.toString(t))}gt(e,t){return this.setLimit("min",e,!1,tC.toString(t))}lte(e,t){return this.setLimit("max",e,!0,tC.toString(t))}lt(e,t){return this.setLimit("max",e,!1,tC.toString(t))}setLimit(e,t,r,n){return new Yk({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:r,message:tC.toString(n)}]})}_addCheck(e){return new Yk({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:tC.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:tC.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:tC.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:tC.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:tC.toString(t)})}get minValue(){let e=null;for(let t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return e}}Yk.create=e=>new Yk({checks:[],typeName:tE.ZodBigInt,coerce:e?.coerce??!1,...Yl(e)});class YT extends Yc{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==K4.boolean){let t=this._getOrReturnCtx(e);return Ye(t,{code:K5.invalid_type,expected:K4.boolean,received:t.parsedType}),Yr}return Yi(e.data)}}YT.create=e=>new YT({typeName:tE.ZodBoolean,coerce:e?.coerce||!1,...Yl(e)});class YR extends Yc{_parse(e){let t;if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==K4.date){let t=this._getOrReturnCtx(e);return Ye(t,{code:K5.invalid_type,expected:K4.date,received:t.parsedType}),Yr}if(Number.isNaN(e.data.getTime()))return Ye(this._getOrReturnCtx(e),{code:K5.invalid_date}),Yr;let r=new Yt;for(let n of this._def.checks)"min"===n.kind?e.data.getTime()<n.value&&(Ye(t=this._getOrReturnCtx(e,t),{code:K5.too_small,message:n.message,inclusive:!0,exact:!1,minimum:n.value,type:"date"}),r.dirty()):"max"===n.kind?e.data.getTime()>n.value&&(Ye(t=this._getOrReturnCtx(e,t),{code:K5.too_big,message:n.message,inclusive:!0,exact:!1,maximum:n.value,type:"date"}),r.dirty()):tw.assertNever(n);return{status:r.value,value:new Date(e.data.getTime())}}_addCheck(e){return new YR({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:tC.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:tC.toString(t)})}get minDate(){let e=null;for(let t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return null!=e?new Date(e):null}get maxDate(){let e=null;for(let t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return null!=e?new Date(e):null}}YR.create=e=>new YR({checks:[],coerce:e?.coerce||!1,typeName:tE.ZodDate,...Yl(e)});class YD extends Yc{_parse(e){if(this._getType(e)!==K4.symbol){let t=this._getOrReturnCtx(e);return Ye(t,{code:K5.invalid_type,expected:K4.symbol,received:t.parsedType}),Yr}return Yi(e.data)}}YD.create=e=>new YD({typeName:tE.ZodSymbol,...Yl(e)});class Y_ extends Yc{_parse(e){if(this._getType(e)!==K4.undefined){let t=this._getOrReturnCtx(e);return Ye(t,{code:K5.invalid_type,expected:K4.undefined,received:t.parsedType}),Yr}return Yi(e.data)}}Y_.create=e=>new Y_({typeName:tE.ZodUndefined,...Yl(e)});class YP extends Yc{_parse(e){if(this._getType(e)!==K4.null){let t=this._getOrReturnCtx(e);return Ye(t,{code:K5.invalid_type,expected:K4.null,received:t.parsedType}),Yr}return Yi(e.data)}}YP.create=e=>new YP({typeName:tE.ZodNull,...Yl(e)});class YL extends Yc{constructor(){super(...arguments),this._any=!0}_parse(e){return Yi(e.data)}}YL.create=e=>new YL({typeName:tE.ZodAny,...Yl(e)});class YN extends Yc{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Yi(e.data)}}YN.create=e=>new YN({typeName:tE.ZodUnknown,...Yl(e)});class YO extends Yc{_parse(e){let t=this._getOrReturnCtx(e);return Ye(t,{code:K5.invalid_type,expected:K4.never,received:t.parsedType}),Yr}}YO.create=e=>new YO({typeName:tE.ZodNever,...Yl(e)});class YF extends Yc{_parse(e){if(this._getType(e)!==K4.undefined){let t=this._getOrReturnCtx(e);return Ye(t,{code:K5.invalid_type,expected:K4.void,received:t.parsedType}),Yr}return Yi(e.data)}}YF.create=e=>new YF({typeName:tE.ZodVoid,...Yl(e)});class YQ extends Yc{_parse(e){let{ctx:t,status:r}=this._processInputParams(e),n=this._def;if(t.parsedType!==K4.array)return Ye(t,{code:K5.invalid_type,expected:K4.array,received:t.parsedType}),Yr;if(null!==n.exactLength){let e=t.data.length>n.exactLength.value,i=t.data.length<n.exactLength.value;(e||i)&&(Ye(t,{code:e?K5.too_big:K5.too_small,minimum:i?n.exactLength.value:void 0,maximum:e?n.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:n.exactLength.message}),r.dirty())}if(null!==n.minLength&&t.data.length<n.minLength.value&&(Ye(t,{code:K5.too_small,minimum:n.minLength.value,type:"array",inclusive:!0,exact:!1,message:n.minLength.message}),r.dirty()),null!==n.maxLength&&t.data.length>n.maxLength.value&&(Ye(t,{code:K5.too_big,maximum:n.maxLength.value,type:"array",inclusive:!0,exact:!1,message:n.maxLength.message}),r.dirty()),t.common.async)return Promise.all([...t.data].map((e,r)=>n.type._parseAsync(new Ys(t,e,t.path,r)))).then(e=>Yt.mergeArray(r,e));let i=[...t.data].map((e,r)=>n.type._parseSync(new Ys(t,e,t.path,r)));return Yt.mergeArray(r,i)}get element(){return this._def.type}min(e,t){return new YQ({...this._def,minLength:{value:e,message:tC.toString(t)}})}max(e,t){return new YQ({...this._def,maxLength:{value:e,message:tC.toString(t)}})}length(e,t){return new YQ({...this._def,exactLength:{value:e,message:tC.toString(t)}})}nonempty(e){return this.min(1,e)}}YQ.create=(e,t)=>new YQ({type:e,minLength:null,maxLength:null,exactLength:null,typeName:tE.ZodArray,...Yl(t)});class YU extends Yc{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(null!==this._cached)return this._cached;let e=this._def.shape(),t=tw.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==K4.object){let t=this._getOrReturnCtx(e);return Ye(t,{code:K5.invalid_type,expected:K4.object,received:t.parsedType}),Yr}let{status:t,ctx:r}=this._processInputParams(e),{shape:n,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof YO&&"strip"===this._def.unknownKeys))for(let e in r.data)i.includes(e)||a.push(e);let s=[];for(let e of i){let t=n[e],i=r.data[e];s.push({key:{status:"valid",value:e},value:t._parse(new Ys(r,i,r.path,e)),alwaysSet:e in r.data})}if(this._def.catchall instanceof YO){let e=this._def.unknownKeys;if("passthrough"===e)for(let e of a)s.push({key:{status:"valid",value:e},value:{status:"valid",value:r.data[e]}});else if("strict"===e)a.length>0&&(Ye(r,{code:K5.unrecognized_keys,keys:a}),t.dirty());else if("strip"===e);else throw Error("Internal ZodObject error: invalid unknownKeys value.")}else{let e=this._def.catchall;for(let t of a){let n=r.data[t];s.push({key:{status:"valid",value:t},value:e._parse(new Ys(r,n,r.path,t)),alwaysSet:t in r.data})}}return r.common.async?Promise.resolve().then(async()=>{let e=[];for(let t of s){let r=await t.key,n=await t.value;e.push({key:r,value:n,alwaysSet:t.alwaysSet})}return e}).then(e=>Yt.mergeObjectSync(t,e)):Yt.mergeObjectSync(t,s)}get shape(){return this._def.shape()}strict(e){return tC.errToObj,new YU({...this._def,unknownKeys:"strict",...void 0!==e?{errorMap:(t,r)=>{let n=this._def.errorMap?.(t,r).message??r.defaultError;return"unrecognized_keys"===t.code?{message:tC.errToObj(e).message??n}:{message:n}}}:{}})}strip(){return new YU({...this._def,unknownKeys:"strip"})}passthrough(){return new YU({...this._def,unknownKeys:"passthrough"})}extend(e){return new YU({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new YU({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:tE.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new YU({...this._def,catchall:e})}pick(e){let t={};for(let r of tw.objectKeys(e))e[r]&&this.shape[r]&&(t[r]=this.shape[r]);return new YU({...this._def,shape:()=>t})}omit(e){let t={};for(let r of tw.objectKeys(this.shape))e[r]||(t[r]=this.shape[r]);return new YU({...this._def,shape:()=>t})}deepPartial(){return function e(t){if(t instanceof YU){let r={};for(let n in t.shape){let i=t.shape[n];r[n]=Y3.create(e(i))}return new YU({...t._def,shape:()=>r})}if(t instanceof YQ)return new YQ({...t._def,type:e(t.element)});if(t instanceof Y3)return Y3.create(e(t.unwrap()));if(t instanceof Y4)return Y4.create(e(t.unwrap()));if(t instanceof YV)return YV.create(t.items.map(t=>e(t)));else return t}(this)}partial(e){let t={};for(let r of tw.objectKeys(this.shape)){let n=this.shape[r];e&&!e[r]?t[r]=n:t[r]=n.optional()}return new YU({...this._def,shape:()=>t})}required(e){let t={};for(let r of tw.objectKeys(this.shape))if(e&&!e[r])t[r]=this.shape[r];else{let e=this.shape[r];for(;e instanceof Y3;)e=e._def.innerType;t[r]=e}return new YU({...this._def,shape:()=>t})}keyof(){return YZ(tw.objectKeys(this.shape))}}YU.create=(e,t)=>new YU({shape:()=>e,unknownKeys:"strip",catchall:YO.create(),typeName:tE.ZodObject,...Yl(t)}),YU.strictCreate=(e,t)=>new YU({shape:()=>e,unknownKeys:"strict",catchall:YO.create(),typeName:tE.ZodObject,...Yl(t)}),YU.lazycreate=(e,t)=>new YU({shape:e,unknownKeys:"strip",catchall:YO.create(),typeName:tE.ZodObject,...Yl(t)});class Yz extends Yc{_parse(e){let{ctx:t}=this._processInputParams(e),r=this._def.options;if(t.common.async)return Promise.all(r.map(async e=>{let r={...t,common:{...t.common,issues:[]},parent:null};return{result:await e._parseAsync({data:t.data,path:t.path,parent:r}),ctx:r}})).then(function(e){for(let t of e)if("valid"===t.result.status)return t.result;for(let r of e)if("dirty"===r.result.status)return t.common.issues.push(...r.ctx.common.issues),r.result;let r=e.map(e=>new K8(e.ctx.common.issues));return Ye(t,{code:K5.invalid_union,unionErrors:r}),Yr});{let e,n=[];for(let i of r){let r={...t,common:{...t.common,issues:[]},parent:null},a=i._parseSync({data:t.data,path:t.path,parent:r});if("valid"===a.status)return a;"dirty"!==a.status||e||(e={result:a,ctx:r}),r.common.issues.length&&n.push(r.common.issues)}if(e)return t.common.issues.push(...e.ctx.common.issues),e.result;let i=n.map(e=>new K8(e));return Ye(t,{code:K5.invalid_union,unionErrors:i}),Yr}}get options(){return this._def.options}}Yz.create=(e,t)=>new Yz({options:e,typeName:tE.ZodUnion,...Yl(t)});let YH=e=>{if(e instanceof YJ)return YH(e.schema);if(e instanceof Y2)return YH(e.innerType());if(e instanceof YX)return[e.value];if(e instanceof Y$)return e.options;if(e instanceof Y0)return tw.objectValues(e.enum);else if(e instanceof Y9)return YH(e._def.innerType);else if(e instanceof Y_)return[void 0];else if(e instanceof YP)return[null];else if(e instanceof Y3)return[void 0,...YH(e.unwrap())];else if(e instanceof Y4)return[null,...YH(e.unwrap())];else if(e instanceof Y6)return YH(e.unwrap());else if(e instanceof Je)return YH(e.unwrap());else if(e instanceof Y5)return YH(e._def.innerType);else return[]};class Yj extends Yc{_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==K4.object)return Ye(t,{code:K5.invalid_type,expected:K4.object,received:t.parsedType}),Yr;let r=this.discriminator,n=t.data[r],i=this.optionsMap.get(n);return i?t.common.async?i._parseAsync({data:t.data,path:t.path,parent:t}):i._parseSync({data:t.data,path:t.path,parent:t}):(Ye(t,{code:K5.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),Yr)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,t,r){let n=new Map;for(let r of t){let t=YH(r.shape[e]);if(!t.length)throw Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let i of t){if(n.has(i))throw Error(`Discriminator property ${String(e)} has duplicate value ${String(i)}`);n.set(i,r)}}return new Yj({typeName:tE.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:n,...Yl(r)})}}class YG extends Yc{_parse(e){let{status:t,ctx:r}=this._processInputParams(e),n=(e,n)=>{if("aborted"===e.status||"aborted"===n.status)return Yr;let i=function e(t,r){let n=K9(t),i=K9(r);if(t===r)return{valid:!0,data:t};if(n===K4.object&&i===K4.object){let n=tw.objectKeys(r),i=tw.objectKeys(t).filter(e=>-1!==n.indexOf(e)),a={...t,...r};for(let n of i){let i=e(t[n],r[n]);if(!i.valid)return{valid:!1};a[n]=i.data}return{valid:!0,data:a}}if(n===K4.array&&i===K4.array){if(t.length!==r.length)return{valid:!1};let n=[];for(let i=0;i<t.length;i++){let a=e(t[i],r[i]);if(!a.valid)return{valid:!1};n.push(a.data)}return{valid:!0,data:n}}if(n===K4.date&&i===K4.date&&+t==+r)return{valid:!0,data:t};return{valid:!1}}(e.value,n.value);return i.valid?(("dirty"===e.status||"dirty"===n.status)&&t.dirty(),{status:t.value,value:i.data}):(Ye(r,{code:K5.invalid_intersection_types}),Yr)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([e,t])=>n(e,t)):n(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}}YG.create=(e,t,r)=>new YG({left:e,right:t,typeName:tE.ZodIntersection,...Yl(r)});class YV extends Yc{_parse(e){let{status:t,ctx:r}=this._processInputParams(e);if(r.parsedType!==K4.array)return Ye(r,{code:K5.invalid_type,expected:K4.array,received:r.parsedType}),Yr;if(r.data.length<this._def.items.length)return Ye(r,{code:K5.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),Yr;!this._def.rest&&r.data.length>this._def.items.length&&(Ye(r,{code:K5.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());let n=[...r.data].map((e,t)=>{let n=this._def.items[t]||this._def.rest;return n?n._parse(new Ys(r,e,r.path,t)):null}).filter(e=>!!e);return r.common.async?Promise.all(n).then(e=>Yt.mergeArray(t,e)):Yt.mergeArray(t,n)}get items(){return this._def.items}rest(e){return new YV({...this._def,rest:e})}}YV.create=(e,t)=>{if(!Array.isArray(e))throw Error("You must pass an array of schemas to z.tuple([ ... ])");return new YV({items:e,typeName:tE.ZodTuple,rest:null,...Yl(t)})};class YW extends Yc{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:r}=this._processInputParams(e);if(r.parsedType!==K4.object)return Ye(r,{code:K5.invalid_type,expected:K4.object,received:r.parsedType}),Yr;let n=[],i=this._def.keyType,a=this._def.valueType;for(let e in r.data)n.push({key:i._parse(new Ys(r,e,r.path,e)),value:a._parse(new Ys(r,r.data[e],r.path,e)),alwaysSet:e in r.data});return r.common.async?Yt.mergeObjectAsync(t,n):Yt.mergeObjectSync(t,n)}get element(){return this._def.valueType}static create(e,t,r){return new YW(t instanceof Yc?{keyType:e,valueType:t,typeName:tE.ZodRecord,...Yl(r)}:{keyType:YM.create(),valueType:e,typeName:tE.ZodRecord,...Yl(t)})}}class Yq extends Yc{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:r}=this._processInputParams(e);if(r.parsedType!==K4.map)return Ye(r,{code:K5.invalid_type,expected:K4.map,received:r.parsedType}),Yr;let n=this._def.keyType,i=this._def.valueType,a=[...r.data.entries()].map(([e,t],a)=>({key:n._parse(new Ys(r,e,r.path,[a,"key"])),value:i._parse(new Ys(r,t,r.path,[a,"value"]))}));if(r.common.async){let e=new Map;return Promise.resolve().then(async()=>{for(let r of a){let n=await r.key,i=await r.value;if("aborted"===n.status||"aborted"===i.status)return Yr;("dirty"===n.status||"dirty"===i.status)&&t.dirty(),e.set(n.value,i.value)}return{status:t.value,value:e}})}{let e=new Map;for(let r of a){let n=r.key,i=r.value;if("aborted"===n.status||"aborted"===i.status)return Yr;("dirty"===n.status||"dirty"===i.status)&&t.dirty(),e.set(n.value,i.value)}return{status:t.value,value:e}}}}Yq.create=(e,t,r)=>new Yq({valueType:t,keyType:e,typeName:tE.ZodMap,...Yl(r)});class YK extends Yc{_parse(e){let{status:t,ctx:r}=this._processInputParams(e);if(r.parsedType!==K4.set)return Ye(r,{code:K5.invalid_type,expected:K4.set,received:r.parsedType}),Yr;let n=this._def;null!==n.minSize&&r.data.size<n.minSize.value&&(Ye(r,{code:K5.too_small,minimum:n.minSize.value,type:"set",inclusive:!0,exact:!1,message:n.minSize.message}),t.dirty()),null!==n.maxSize&&r.data.size>n.maxSize.value&&(Ye(r,{code:K5.too_big,maximum:n.maxSize.value,type:"set",inclusive:!0,exact:!1,message:n.maxSize.message}),t.dirty());let i=this._def.valueType;function a(e){let r=new Set;for(let n of e){if("aborted"===n.status)return Yr;"dirty"===n.status&&t.dirty(),r.add(n.value)}return{status:t.value,value:r}}let s=[...r.data.values()].map((e,t)=>i._parse(new Ys(r,e,r.path,t)));return r.common.async?Promise.all(s).then(e=>a(e)):a(s)}min(e,t){return new YK({...this._def,minSize:{value:e,message:tC.toString(t)}})}max(e,t){return new YK({...this._def,maxSize:{value:e,message:tC.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}YK.create=(e,t)=>new YK({valueType:e,minSize:null,maxSize:null,typeName:tE.ZodSet,...Yl(t)});class YY extends Yc{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==K4.function)return Ye(t,{code:K5.invalid_type,expected:K4.function,received:t.parsedType}),Yr;function r(e,r){return K7({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,K6,K6].filter(e=>!!e),issueData:{code:K5.invalid_arguments,argumentsError:r}})}function n(e,r){return K7({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,K6,K6].filter(e=>!!e),issueData:{code:K5.invalid_return_type,returnTypeError:r}})}let i={errorMap:t.common.contextualErrorMap},a=t.data;if(this._def.returns instanceof Y1){let e=this;return Yi(async function(...t){let s=new K8([]),o=await e._def.args.parseAsync(t,i).catch(e=>{throw s.addIssue(r(t,e)),s}),l=await Reflect.apply(a,this,o);return await e._def.returns._def.type.parseAsync(l,i).catch(e=>{throw s.addIssue(n(l,e)),s})})}{let e=this;return Yi(function(...t){let s=e._def.args.safeParse(t,i);if(!s.success)throw new K8([r(t,s.error)]);let o=Reflect.apply(a,this,s.data),l=e._def.returns.safeParse(o,i);if(!l.success)throw new K8([n(o,l.error)]);return l.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new YY({...this._def,args:YV.create(e).rest(YN.create())})}returns(e){return new YY({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,t,r){return new YY({args:e||YV.create([]).rest(YN.create()),returns:t||YN.create(),typeName:tE.ZodFunction,...Yl(r)})}}class YJ extends Yc{get schema(){return this._def.getter()}_parse(e){let{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}}YJ.create=(e,t)=>new YJ({getter:e,typeName:tE.ZodLazy,...Yl(t)});class YX extends Yc{_parse(e){if(e.data!==this._def.value){let t=this._getOrReturnCtx(e);return Ye(t,{received:t.data,code:K5.invalid_literal,expected:this._def.value}),Yr}return{status:"valid",value:e.data}}get value(){return this._def.value}}function YZ(e,t){return new Y$({values:e,typeName:tE.ZodEnum,...Yl(t)})}YX.create=(e,t)=>new YX({value:e,typeName:tE.ZodLiteral,...Yl(t)});class Y$ extends Yc{_parse(e){if("string"!=typeof e.data){let t=this._getOrReturnCtx(e),r=this._def.values;return Ye(t,{expected:tw.joinValues(r),received:t.parsedType,code:K5.invalid_type}),Yr}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let t=this._getOrReturnCtx(e),r=this._def.values;return Ye(t,{received:t.data,code:K5.invalid_enum_value,options:r}),Yr}return Yi(e.data)}get options(){return this._def.values}get enum(){let e={};for(let t of this._def.values)e[t]=t;return e}get Values(){let e={};for(let t of this._def.values)e[t]=t;return e}get Enum(){let e={};for(let t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return Y$.create(e,{...this._def,...t})}exclude(e,t=this._def){return Y$.create(this.options.filter(t=>!e.includes(t)),{...this._def,...t})}}Y$.create=YZ;class Y0 extends Yc{_parse(e){let t=tw.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(e);if(r.parsedType!==K4.string&&r.parsedType!==K4.number){let e=tw.objectValues(t);return Ye(r,{expected:tw.joinValues(e),received:r.parsedType,code:K5.invalid_type}),Yr}if(this._cache||(this._cache=new Set(tw.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let e=tw.objectValues(t);return Ye(r,{received:r.data,code:K5.invalid_enum_value,options:e}),Yr}return Yi(e.data)}get enum(){return this._def.values}}Y0.create=(e,t)=>new Y0({values:e,typeName:tE.ZodNativeEnum,...Yl(t)});class Y1 extends Yc{unwrap(){return this._def.type}_parse(e){let{ctx:t}=this._processInputParams(e);return t.parsedType!==K4.promise&&!1===t.common.async?(Ye(t,{code:K5.invalid_type,expected:K4.promise,received:t.parsedType}),Yr):Yi((t.parsedType===K4.promise?t.data:Promise.resolve(t.data)).then(e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap})))}}Y1.create=(e,t)=>new Y1({type:e,typeName:tE.ZodPromise,...Yl(t)});class Y2 extends Yc{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===tE.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:t,ctx:r}=this._processInputParams(e),n=this._def.effect||null,i={addIssue:e=>{Ye(r,e),e.fatal?t.abort():t.dirty()},get path(){return r.path}};if(i.addIssue=i.addIssue.bind(i),"preprocess"===n.type){let e=n.transform(r.data,i);if(r.common.async)return Promise.resolve(e).then(async e=>{if("aborted"===t.value)return Yr;let n=await this._def.schema._parseAsync({data:e,path:r.path,parent:r});return"aborted"===n.status?Yr:"dirty"===n.status||"dirty"===t.value?Yn(n.value):n});{if("aborted"===t.value)return Yr;let n=this._def.schema._parseSync({data:e,path:r.path,parent:r});return"aborted"===n.status?Yr:"dirty"===n.status||"dirty"===t.value?Yn(n.value):n}}if("refinement"===n.type){let e=e=>{let t=n.refinement(e,i);if(r.common.async)return Promise.resolve(t);if(t instanceof Promise)throw Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return e};if(!1!==r.common.async)return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(r=>"aborted"===r.status?Yr:("dirty"===r.status&&t.dirty(),e(r.value).then(()=>({status:t.value,value:r.value}))));{let n=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return"aborted"===n.status?Yr:("dirty"===n.status&&t.dirty(),e(n.value),{status:t.value,value:n.value})}}if("transform"===n.type)if(!1!==r.common.async)return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(e=>"valid"!==e.status?Yr:Promise.resolve(n.transform(e.value,i)).then(e=>({status:t.value,value:e})));else{let e=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if("valid"!==e.status)return Yr;let a=n.transform(e.value,i);if(a instanceof Promise)throw Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:a}}tw.assertNever(n)}}Y2.create=(e,t,r)=>new Y2({schema:e,typeName:tE.ZodEffects,effect:t,...Yl(r)}),Y2.createWithPreprocess=(e,t,r)=>new Y2({schema:t,effect:{type:"preprocess",transform:e},typeName:tE.ZodEffects,...Yl(r)});class Y3 extends Yc{_parse(e){return this._getType(e)===K4.undefined?Yi(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}Y3.create=(e,t)=>new Y3({innerType:e,typeName:tE.ZodOptional,...Yl(t)});class Y4 extends Yc{_parse(e){return this._getType(e)===K4.null?Yi(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}Y4.create=(e,t)=>new Y4({innerType:e,typeName:tE.ZodNullable,...Yl(t)});class Y9 extends Yc{_parse(e){let{ctx:t}=this._processInputParams(e),r=t.data;return t.parsedType===K4.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}Y9.create=(e,t)=>new Y9({innerType:e,typeName:tE.ZodDefault,defaultValue:"function"==typeof t.default?t.default:()=>t.default,...Yl(t)});class Y5 extends Yc{_parse(e){let{ctx:t}=this._processInputParams(e),r={...t,common:{...t.common,issues:[]}},n=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return Ya(n)?n.then(e=>({status:"valid",value:"valid"===e.status?e.value:this._def.catchValue({get error(){return new K8(r.common.issues)},input:r.data})})):{status:"valid",value:"valid"===n.status?n.value:this._def.catchValue({get error(){return new K8(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}}Y5.create=(e,t)=>new Y5({innerType:e,typeName:tE.ZodCatch,catchValue:"function"==typeof t.catch?t.catch:()=>t.catch,...Yl(t)});class Y8 extends Yc{_parse(e){if(this._getType(e)!==K4.nan){let t=this._getOrReturnCtx(e);return Ye(t,{code:K5.invalid_type,expected:K4.nan,received:t.parsedType}),Yr}return{status:"valid",value:e.data}}}Y8.create=e=>new Y8({typeName:tE.ZodNaN,...Yl(e)}),Symbol("zod_brand");class Y6 extends Yc{_parse(e){let{ctx:t}=this._processInputParams(e),r=t.data;return this._def.type._parse({data:r,path:t.path,parent:t})}unwrap(){return this._def.type}}class Y7 extends Yc{_parse(e){let{status:t,ctx:r}=this._processInputParams(e);if(r.common.async)return(async()=>{let e=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return"aborted"===e.status?Yr:"dirty"===e.status?(t.dirty(),Yn(e.value)):this._def.out._parseAsync({data:e.value,path:r.path,parent:r})})();{let e=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return"aborted"===e.status?Yr:"dirty"===e.status?(t.dirty(),{status:"dirty",value:e.value}):this._def.out._parseSync({data:e.value,path:r.path,parent:r})}}static create(e,t){return new Y7({in:e,out:t,typeName:tE.ZodPipeline})}}class Je extends Yc{_parse(e){let t=this._def.innerType._parse(e),r=e=>("valid"===e.status&&(e.value=Object.freeze(e.value)),e);return Ya(t)?t.then(e=>r(e)):r(t)}unwrap(){return this._def.innerType}}Je.create=(e,t)=>new Je({innerType:e,typeName:tE.ZodReadonly,...Yl(t)}),YU.lazycreate,(ez=tE||(tE={})).ZodString="ZodString",ez.ZodNumber="ZodNumber",ez.ZodNaN="ZodNaN",ez.ZodBigInt="ZodBigInt",ez.ZodBoolean="ZodBoolean",ez.ZodDate="ZodDate",ez.ZodSymbol="ZodSymbol",ez.ZodUndefined="ZodUndefined",ez.ZodNull="ZodNull",ez.ZodAny="ZodAny",ez.ZodUnknown="ZodUnknown",ez.ZodNever="ZodNever",ez.ZodVoid="ZodVoid",ez.ZodArray="ZodArray",ez.ZodObject="ZodObject",ez.ZodUnion="ZodUnion",ez.ZodDiscriminatedUnion="ZodDiscriminatedUnion",ez.ZodIntersection="ZodIntersection",ez.ZodTuple="ZodTuple",ez.ZodRecord="ZodRecord",ez.ZodMap="ZodMap",ez.ZodSet="ZodSet",ez.ZodFunction="ZodFunction",ez.ZodLazy="ZodLazy",ez.ZodLiteral="ZodLiteral",ez.ZodEnum="ZodEnum",ez.ZodEffects="ZodEffects",ez.ZodNativeEnum="ZodNativeEnum",ez.ZodOptional="ZodOptional",ez.ZodNullable="ZodNullable",ez.ZodDefault="ZodDefault",ez.ZodCatch="ZodCatch",ez.ZodPromise="ZodPromise",ez.ZodBranded="ZodBranded",ez.ZodPipeline="ZodPipeline",ez.ZodReadonly="ZodReadonly";let Jt=YM.create,Jr=YB.create;Y8.create,Yk.create;let Jn=YT.create;YR.create,YD.create,Y_.create,YP.create,YL.create;let Ji=YN.create;YO.create,YF.create,YQ.create;let Ja=YU.create;YU.strictCreate,Yz.create,Yj.create,YG.create,YV.create,YW.create,Yq.create,YK.create,YY.create,YJ.create,YX.create;let Js=Y$.create;Y0.create,Y1.create,Y2.create,Y3.create,Y4.create;let Jo=Y2.createWithPreprocess;Y7.create;let Jl=Js(["cm","inch"]),Jc=Js(["different_fields","one_field"]),Ju=Js(["left_bottom","center","right_bottom","left_center","right_center"]),Jd=Ja({buttonLabel:Jt(),backgroundColor:Jt(),borderColor:Jt(),textColor:Jt(),borderRadius:Jr(),borderWidth:Jr()}),Jh=Ja({units:Jl,productWidthAndHeight:Jc,metafieldForWidth:Jt().nullable(),metafieldForHeight:Jt().nullable(),metafieldForWidthAndHeight:Jt().nullable(),widgetPosition:Ju,_widgetSettings:Jd.optional(),isWidgetActive:Jn()}),Jp=function(e){let t=e?.trim().replace(/\/+$/,"")??"";if(!t||t.includes("/v1/http")||t.endsWith("/v1"))return t;let r=t.indexOf("/http");return r>=0?`${t.slice(0,r)}/v1${t.slice(r)}`:`${t}/v1`}("/apps/vizbl-wall-art/http"),JA=Ja({token:Jt().trim().min(1),sid:Jt().trim().min(1),expiresIn:Jr().finite()}),Jf=Ja({metafields:Jt().trim().min(1),posterPic:Jt().trim().min(1),title:Jt().trim().optional(),widgetSession:Ji().optional()}),Jg=Jo(e=>"string"==typeof e?JSON.parse(e):e,Ja({metafield:Ji(),tinuuid:Jt().trim().optional()}));async function Jm(e,t){let r=await K3({productType:"wallart-shopify",variant_id:e,metafield_key:"poster_settings"},{baseURL:Jp,signal:t});return function(e){let t,r,n=Jf.safeParse("string"!=typeof e?e:JSON.parse(e));if(!n.success)return null;let i=Jg.safeParse(n.data.metafields);if(!i.success)return null;let a=(t=function(e){if("string"!=typeof e)return e;try{return JSON.parse(e)}catch{return}}(i.data.metafield),(r=Jh.safeParse(t)).success?r.data:null);if(!a)return null;let s=JA.safeParse(n.data.widgetSession);return{settings:a,posterPic:n.data.posterPic,title:n.data.title??null,tinuuid:i.data.tinuuid??null,widgetSession:s.success?s.data:null}}(r.body??r)}let Jv="44px",Jb="60px",Jy={left_center:{left:Jb,top:"50%",transform:"translateY(-50%)"},left_bottom:{left:Jb,bottom:Jv},center:{left:`calc(50% + ${Jb})`,bottom:Jv,transform:"translateX(-50%)"},right_bottom:{right:Jb,bottom:Jv},right_center:{right:Jb,top:"50%",transform:"translateY(-50%)"}},Jw=Jo(e=>"number"==typeof e&&Number.isFinite(e)?String(e):e,Jt().trim().regex(/^\d+$/));function Jx(e){let t=Jw.safeParse(e);return t.success?t.data:null}function JC(e){return e?e instanceof HTMLInputElement||e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement?e.value:e.getAttribute("value"):null}let JE=["product-form","[data-main-product]",'[id*="MainProduct"]',".product",".product__info-wrapper",".product__info-container","#MainContent"],JS=[".product-recommendations",".related-products","[data-product-recommendations]"];var JI=i("./src/shopify.css?inline");function JM(){let e=function({documentRef:e=document,locationRef:t=window.location,analytics:r=window.ShopifyAnalytics}={}){var n;let i=e.body;if(i?.classList.contains("template-collection"))return!1;if(n=t.pathname,/(?:^|\/)products\/[^/]+/i.test(n)||r?.meta?.page?.pageType?.toLowerCase()==="product")return!0;let a=e.querySelector('meta[property="og:type"]')?.getAttribute("content");return!!(a?.trim().toLowerCase()==="product"||i?.classList.contains("template-product"))}();return{isProductPage:e,variantId:e?function({documentRef:e=document,locationRef:t=window.location}={}){return function(e=window.location){return Jx(new URLSearchParams(e.search).get("variant"))}(t)??function(e=document){for(let{field:t}of Array.from(e.querySelectorAll('form[action*="/cart/add"]')).flatMap((t,r)=>{let n;return[...Array.from(t.querySelectorAll('input[name="id"], select[name="id"]')),...!(n=t.getAttribute("id"))?[]:Array.from(e.querySelectorAll('input[name="id"][form], select[name="id"][form]')).filter(e=>e.getAttribute("form")===n)].map((e,n)=>({field:e,formIndex:r,fieldIndex:n,score:function(e){let t=0,r=(e.getAttribute("id")??"").toLowerCase(),n=(e.getAttribute("class")??"").toLowerCase();for(let i of(r.includes("product-form")&&(t+=100),n.includes("product-form")&&(t+=80),JE))e.closest(i)&&(t+=25);for(let r of JS)e.closest(r)&&(t-=100);return t}(t)}))}).sort((e,t)=>t.score-e.score||e.formIndex-t.formIndex||e.fieldIndex-t.fieldIndex)){let e=Jx(JC(t));if(e)return e}return null}(e)??function(e=document){for(let t of Array.from(e.querySelectorAll('[name="id"][form^="product-form"]'))){let e=Jx(JC(t));if(e)return e}return null}(e)??function(e=document){let t=e.querySelector("[data-selected-variant-id]");return Jx(t?.getAttribute("data-selected-variant-id")??null)}(e)}():null}}function JB(){let e=function(){let[e,t]=(0,ru.useState)(JM);return(0,ru.useEffect)(()=>{let e=null,r=window.history.pushState,n=window.history.replaceState,i=()=>{null===e&&(e=window.requestAnimationFrame(()=>{e=null,t(e=>{let t=JM();return e.isProductPage===t.isProductPage&&e.variantId===t.variantId?e:t})}))};window.history.pushState=function(...e){let t=r.apply(this,e);return i(),t},window.history.replaceState=function(...e){let t=n.apply(this,e);return i(),t};let a=ai('body.template-product, body.template-collection, meta[property="og:type"], form[action*="/cart/add"], form[action*="/cart/add"] [name="id"], [name="id"][form], [data-selected-variant-id]',{initialize(e){let t;return{add(){t=(e=>{var t;let r=(t=e).matches("body")?["class"]:t.matches('meta[property="og:type"]')?["content"]:t.matches('form[action*="/cart/add"]')?["action","class","id"]:t.matches('form[action*="/cart/add"] [name="id"], [name="id"][form]')?["form","value"]:t.matches("[data-selected-variant-id]")?["data-selected-variant-id"]:[];if(0===r.length)return;let n=new MutationObserver(i);return n.observe(e,{attributes:!0,attributeFilter:r}),()=>{n.disconnect()}})(e),i()},remove(){t?.(),t=void 0,i()}}}});return document.addEventListener("change",i,!0),document.addEventListener("input",i,!0),document.addEventListener("click",i,!0),window.addEventListener("popstate",i),i(),()=>{null!==e&&window.cancelAnimationFrame(e),window.history.pushState=r,window.history.replaceState=n,a.abort(),document.removeEventListener("change",i,!0),document.removeEventListener("input",i,!0),document.removeEventListener("click",i,!0),window.removeEventListener("popstate",i)}},[]),e}(),[t,r]=(0,ru.useState)(!1),{data:n}=s4({queryKey:["vizbl-shopify-room-viewer","activation",e.variantId],queryFn:({signal:t})=>Jm(e.variantId??"",t),enabled:e.isProductPage&&null!==e.variantId,staleTime:3e5,gcTime:3e5,refetchOnWindowFocus:!1},sG,void 0),i=(0,ru.useCallback)(()=>{r(!0)},[]),a=(0,ru.useCallback)(e=>{r(e)},[]);if(!e.isProductPage||!e.variantId||!n?.settings.isWidgetActive)return null;let{settings:s,posterPic:o,title:l}=n,c=s._widgetSettings,u=function(e){if("one_field"===e.productWidthAndHeight){let[t,r]=e.metafieldForWidthAndHeight.split("x");return{width:Number(t),height:Number(r)}}return{width:Number(e.metafieldForWidth),height:Number(e.metafieldForHeight)}}(s),d="inch"===s.units?"in":"cm";return(0,rh.jsxs)(rh.Fragment,{children:[(0,rh.jsx)("button",{type:"button",onClick:i,style:{position:"fixed",zIndex:0x7ffffffe,display:"inline-flex",alignItems:"center",justifyContent:"center",padding:"13.522px 21.635px",borderStyle:"solid",borderColor:c?.borderColor??"rgba(65, 90, 229, 0.3)",borderWidth:c?.borderWidth??1,borderRadius:c?.borderRadius??121.053,background:c?.backgroundColor??"#ffffff",boxShadow:"0px 0px 20px 0px rgba(23, 32, 51, 0.14), 0px 16px 32px 0px rgba(23, 32, 51, 0.17)",color:c?.textColor??"#111111",boxSizing:"border-box",cursor:"pointer",maxWidth:"calc(100vw - 16px)",fontFamily:'Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',fontSize:18,fontWeight:600,letterSpacing:0,lineHeight:"18px",margin:0,appearance:"none",...Jy[s.widgetPosition]},children:c?.buttonLabel??"View in place"}),(0,rh.jsx)(K$,{open:t,onOpenChange:a,type:"wallart",source:"shopify",src:o,name:l??"",width:u.width,height:u.height,dimensionUnit:d,widgetSession:n.widgetSession}),t&&(0,aa.createPortal)((0,rh.jsx)("style",{children:JI.A}),document.head)]})}let Jk="vizbl-shopify-room-viewer",JT=new rc({defaultOptions:{queries:{refetchOnMount:!1,refetchOnReconnect:!1,refetchOnWindowFocus:!1,retry:(e,t)=>{let r=function(e){if(ic(e))return e.response?.status}(t);return(void 0===r||!(r>=400)||!(r<500))&&e<2}}}});function JR(){let e,t=((e=document.getElementById(Jk))||((e=document.createElement("div")).id=Jk,document.body.appendChild(e)),e),r=iT.createRoot(t);r.render((0,ru.createElement)(rf,{client:JT},(0,ru.createElement)(JB)));let n=ai(`#${Jk}`,{remove(){n.abort(),r.unmount(),JR()}})}ik({baseURL:Jp}),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",JR,{once:!0}):JR()})()})();
7545
+ #include <opaque_fragment>`)}(n,t)},e.customProgramCacheKey=()=>`${n()}|neurodyn-room-scene-v2`,e.needsUpdate=!0,()=>{e.onBeforeCompile=r,e.customProgramCacheKey=n,e.side=i,e.transparent=a,e.alphaToCoverage=s,e.needsUpdate=!0}}function qK(e,t,r){let n=e.clone().sub(t).applyQuaternion(r);return Math.atan2(n.y,n.x)}let qY={excludeFromCapture:!0};function qJ({resourceBounds:e}){let{resourceRef:t,rotation:r,setIsDragging:n,setRotation:i}=WS(),a=UF("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABAAAAAQACAYAAAB/HSuDAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDkuMS1jMDAyIDc5LmI3YzY0Y2NmOSwgMjAyNC8wNy8xNi0xMjozOTowNCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDI2LjAgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QjYxMUY4MDQ3RTJDMTFGMTlCMkNBN0Y1RDJDNzNDQzYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QjYxMUY4MDU3RTJDMTFGMTlCMkNBN0Y1RDJDNzNDQzYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpCNjExRjgwMjdFMkMxMUYxOUIyQ0E3RjVEMkM3M0NDNiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpCNjExRjgwMzdFMkMxMUYxOUIyQ0E3RjVEMkM3M0NDNiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PiAtRloAAIYkSURBVHja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"),s=(0,ru.useRef)(null),o=(0,ru.useMemo)(()=>{let t,r;return r=1.15*Math.max((t=e.getSize(new bS)).x,t.y),{positionZ:e.min.z-.001*r,side:r}},[e]);(0,ru.useLayoutEffect)(()=>{a.colorSpace="srgb",a.needsUpdate=!0},[a]);let l=e=>{if(!s.current)return;e.stopPropagation();let{pointerId:t,pointerTarget:r}=s.current;r.hasPointerCapture(t)&&r.releasePointerCapture(t),s.current=null,n(!1)};return o.side<=0?null:(0,rh.jsxs)("mesh",{"position-z":o.positionZ,userData:qY,onPointerCancel:l,onPointerDown:e=>{var i;let a=t.current;if(!a||(i=e.object,e.intersections.map(e=>e.object)[0]!==i))return;e.stopPropagation(),e.nativeEvent.stopPropagation();let o=e.target;o.setPointerCapture(e.pointerId),a.updateWorldMatrix(!0,!1);let l=a.getWorldQuaternion(new bE),c=a.getWorldPosition(new bS),u=new bS(0,0,1).applyQuaternion(l);s.current={center:c,initialPoint:e.point.clone(),initialRotation:r,plane:new xz().setFromNormalAndCoplanarPoint(u,c),pointerId:e.pointerId,pointerTarget:o,surfaceQuaternion:l},n(!0)},onPointerMove:e=>{let t=s.current;if(!t)return;e.stopPropagation();let r=e.ray.intersectPlane(t.plane,new bS);r&&i(function({center:e,currentPoint:t,initialPoint:r,initialRotation:n,surfaceQuaternion:i}){let a=i.clone().invert(),s=qK(r,e,a),o=qK(t,e,a);return((n+bx.radToDeg(o-s)+180)%360+360)%360-180}({...t,currentPoint:r}))},onPointerUp:l,children:[(0,rh.jsx)("planeGeometry",{args:[o.side,o.side]}),(0,rh.jsx)("meshBasicMaterial",{map:a,transparent:!0,depthWrite:!1,side:2,toneMapped:!1})]})}let qX=Math.PI/2;function qZ(e){let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId)}function q$({glbUrl:e,position:t,quaternion:r,materialPatch:n}){let{type:i}=Wx(),{resourceRef:a,rotation:s,setIsDragging:o}=WS(),l=zT(e),{sceneInstance:c,materials:u,resourceBounds:d}=(0,ru.useMemo)(()=>{let e,t=l.scene.clone(!0),r=(e=new Set,t.traverse(t=>{if(!t.isMesh||!t.material)return;if(Array.isArray(t.material)){t.material=t.material.map(t=>{let r=t.clone();return e.add(r),r});return}let r=t.material.clone();e.add(r),t.material=r}),Array.from(e)),n=new bY().setFromObject(t).applyMatrix4(new yh().makeRotationX(qX));return{sceneInstance:t,materials:r,resourceBounds:n}},[l]),h=(0,ru.useMemo)(()=>bx.degToRad(s),[s]);return(0,ru.useLayoutEffect)(()=>{let e=u.map(e=>qq(e,n));return()=>{e.forEach(e=>e())}},[u,n]),(0,rh.jsx)("group",{ref:a,position:t,quaternion:r,onPointerDown:e=>{e.nativeEvent.stopPropagation(),e.target.setPointerCapture(e.pointerId),o(!0)},onPointerUp:e=>{qZ(e),o(!1)},onPointerCancel:e=>{qZ(e),o(!1)},children:(0,rh.jsxs)("group",{"rotation-z":h,children:["rugs"===i?(0,rh.jsx)(qJ,{resourceBounds:d}):null,(0,rh.jsx)("group",{"rotation-x":qX,children:(0,rh.jsx)("primitive",{object:c})})]})})}function q0(){let{room:e}=WC(),t=Q9(e=>e.scene),r=Q6(Sv,e.image_url);return(0,ru.useLayoutEffect)(()=>(r.colorSpace="srgb",t.background=r,()=>{t.background===r&&(t.background=null)}),[t,r]),null}function q1({plane:e,geometry:t,setPlaneRef:r}){return(0,rh.jsx)("mesh",{ref:t=>r(e,t),geometry:t,userData:{planeId:e.id,kind:e.kind},children:(0,rh.jsx)("meshBasicMaterial",{visible:!1,side:2})})}function q2(e,t){(0,ru.useLayoutEffect)(()=>{let r=e.current;if(r)return qq(r,t)},[e,t])}let q3=[1,1,1];function q4({node:e,position:t,scale:r=q3,uvScale:n,materialPatch:i}){let a=(0,ru.useRef)(null);return(0,ru.useEffect)(()=>{if(!a.current||void 0===n)return;let t=a.current.geometry.attributes.uv,r=e.geometry.attributes.uv.array;for(let e=0;e<t.count;e++){let i=r[2*e],a=r[2*e+1];t.setXY(e,i*n,a)}t.needsUpdate=!0},[n,e.geometry]),(0,ru.useLayoutEffect)(()=>{let e=a.current?.material;if(!e)return;let t=(Array.isArray(e)?e:[e]).map(e=>qq(e,i));return()=>{t.forEach(e=>e())}},[i,e]),(0,rh.jsx)(z_,{ref:a,object:e,position:t,scale:r})}function q9({width:e,height:t,materialPatch:r}){let{material:n}=WE(),{nodes:i}=zT(n?.native?.glbUrl),a=(0,ru.useMemo)(()=>{let e=new bS,t={};["vizbl0","vizbl1","vizbl2","vizbl3","vizbl4","vizbl5","vizbl6","vizbl7"].forEach(r=>{let n=i[r];if(!n?.geometry)return;let a=n.clone();a.geometry=n.geometry.clone(),Array.isArray(n.material)?a.material=n.material.map(e=>e.clone()):n.material&&(a.material=n.material.clone()),a.updateMatrixWorld(!0),a.geometry.applyMatrix4(a.matrixWorld),a.position.set(0,0,0),a.rotation.set(0,0,0),a.scale.set(1,1,1),a.updateMatrixWorld(!0),a.geometry.computeBoundingBox(),a.geometry.boundingBox&&(a.geometry.boundingBox.getCenter(e),a.geometry.translate(-e.x,-e.y,-e.z)),a.geometry.computeBoundingBox(),t[r]=a});let r=t.vizbl0;if(!r?.geometry)throw Error("Corner mesh not found");let n=r.geometry.boundingBox,a=n.max.x-n.min.x,s=n.max.y-n.min.y,o={top:0,bottom:0,left:0,right:0},l={top:0,bottom:0,left:0,right:0},c=t.vizbl1;if(c?.geometry){let e=c.geometry.boundingBox;o.top=e.max.x-e.min.x,l.top=e.max.y-e.min.y}let u=t.vizbl3;if(u?.geometry){let e=u.geometry.boundingBox;o.right=e.max.y-e.min.y,l.right=e.max.x-e.min.x}let d=t.vizbl5;if(d?.geometry){let e=d.geometry.boundingBox;o.bottom=e.max.x-e.min.x,l.bottom=e.max.y-e.min.y}let h=t.vizbl7;if(h?.geometry){let e=h.geometry.boundingBox;o.left=e.max.y-e.min.y,l.left=e.max.x-e.min.x}return{cornerSize:{width:a,height:s},barLengths:o,barThickness:l,normalizedNodes:t}},[i]),s=e-2*a.cornerSize.width+.002,o=t-2*a.cornerSize.height+.002,l=s/a.barLengths.top,c=s/a.barLengths.bottom,u=o/a.barLengths.left,d=o/a.barLengths.right;return(0,rh.jsxs)("group",{children:[(0,rh.jsx)(q4,{node:a.normalizedNodes.vizbl0,position:[-e/2+a.cornerSize.width/2-.001,t/2-a.cornerSize.height/2+.001,0],materialPatch:r}),(0,rh.jsx)(q4,{node:a.normalizedNodes.vizbl1,position:[0,t/2-a.barThickness.top/2+.001,0],scale:[l,1,1],uvScale:l,materialPatch:r}),(0,rh.jsx)(q4,{node:a.normalizedNodes.vizbl2,position:[e/2-a.cornerSize.width/2+.001,t/2-a.cornerSize.height/2+.001,0],materialPatch:r}),(0,rh.jsx)(q4,{node:a.normalizedNodes.vizbl3,position:[e/2-a.barThickness.right/2+.001,0,0],scale:[1,d,1],uvScale:d,materialPatch:r}),(0,rh.jsx)(q4,{node:a.normalizedNodes.vizbl4,position:[e/2-a.cornerSize.width/2+.001,-t/2+a.cornerSize.height/2-.001,0],materialPatch:r}),(0,rh.jsx)(q4,{node:a.normalizedNodes.vizbl5,position:[0,-t/2+a.barThickness.bottom/2-.001,0],scale:[c,1,1],uvScale:c,materialPatch:r}),(0,rh.jsx)(q4,{node:a.normalizedNodes.vizbl6,position:[-e/2+a.cornerSize.width/2-.001,-t/2+a.cornerSize.height/2-.001,0],materialPatch:r}),(0,rh.jsx)(q4,{node:a.normalizedNodes.vizbl7,position:[-e/2+a.barThickness.left/2-.001,0,0],scale:[1,u,1],uvScale:u,materialPatch:r})]})}function q5({width:e,height:t,position:r,quaternion:n,materialPatch:i}){let a=(0,ru.useRef)(null);return q2(a,i),(0,rh.jsxs)("mesh",{position:r,quaternion:n,children:[(0,rh.jsx)("planeGeometry",{args:[e,t]}),(0,rh.jsx)("meshStandardMaterial",{ref:a,color:"white"})]})}function q8({src:e,position:t,quaternion:r,materialPatch:n}){let{width:i,height:a}=Wx(),{material:s}=WE(),{frameWidth:o,matting:l}=WI(),{angle:c,rotation:u,resourceRef:d,setIsDragging:h}=WS(),p=Q6(Sv,e),A=(0,ru.useRef)(null),f=(0,ru.useMemo)(()=>bx.degToRad(c),[c]),g=(0,ru.useMemo)(()=>bx.degToRad(u),[u]);q2(A,n);let m=i+2*l,v=a+2*l,b=l>0?m:i,y=l>0?v:a;return(0,rh.jsx)("group",{ref:d,position:t,quaternion:r,onPointerDown:()=>h(!0),onPointerUp:()=>h(!1),onPointerLeave:()=>h(!1),children:(0,rh.jsxs)("group",{rotation:[0,g,f],children:[s?.native?.glbUrl&&o>0&&(0,rh.jsx)(q9,{width:b,height:y,materialPatch:n}),l>0&&(0,rh.jsx)(q5,{width:m,height:v,position:[0,0,.01],materialPatch:n}),(0,rh.jsxs)("mesh",{position:[0,0,.02],children:[(0,rh.jsx)("planeGeometry",{args:[i,a]}),(0,rh.jsx)("meshStandardMaterial",{ref:A,map:p})]})]})})}function q6(){let{placement:e}=Wx(),{src:t,glbUrl:r}=WE(),{room:n}=WC(),{patchSceneLoad:i}=WS(),{gl:a,size:s,camera:o,invalidate:l,raycaster:c,pointer:u}=Q9(),d=(0,ru.useMemo)(()=>n.scene??ql(),[n.scene]),[h,p]=Q6(Sv,[d.planeIds.dataPng,d.shading?.dataPng??"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR4nGNoaGgAAAMEAYFL09IQAAAAAElFTkSuQmCC"]),A=function({camera:e,invalidate:t,pointer:r,raycaster:n,roomId:i,scene:a,placement:s}){let o=`${i}:${s}`,l=(0,ru.useMemo)(()=>({value:0}),[]),[c,u]=(0,ru.useReducer)(qV,o,qG),d=(0,ru.useRef)(null),h=(0,ru.useRef)(new Map),p=(0,ru.useRef)(null),A=c.placementKey===o?c.planeIdMap:null,f=c.placementKey===o?c.resourcePose:null,g=(0,ru.useMemo)(()=>a.planes.filter(e=>"floor"===s?"floor"===e.kind:"floor"!==e.kind),[a,s]),m=(0,ru.useMemo)(()=>g.map(e=>e.id),[g]),v=(0,ru.useMemo)(()=>new Map(a.planes.map(e=>{let t,r;return[e.id,(t=e.polygon3D.flatMap(e=>(function(e,t){let[r,n,i]=e;return[r*(qN(t)*(t.camera.fx/t.camera.fy)),i,-n]})(e,a)),(r=new wC).setAttribute("position",new wf(t,3)),e.polygon3D.length>=4&&r.setIndex([0,1,2,0,2,3]),r)]})),[a]),b=(0,ru.useMemo)(()=>({artifactsReady:null!==A,placementReady:null!==f,prepareReady:null!==f}),[A,f]),y=(0,ru.useCallback)((e,t)=>{t?h.current.set(e.id,t):h.current.delete(e.id)},[]);(0,ru.useEffect)(()=>{let e=!1;return u({type:"reset-plane-id-map",placementKey:o}),qO(a.planeIds.dataPng,a.planeIds.width,a.planeIds.height).then(t=>{e||u({type:"set-plane-id-map",placementKey:o,planeIdMap:t})}).catch(t=>{console.error(t),e||u({type:"reset-plane-id-map",placementKey:o})}),()=>{e=!0}},[o,a.planeIds]),(0,ru.useEffect)(()=>{u({type:"reset-placement",placementKey:o}),d.current=null,l.value=0,p.current=null},[l,o]);let w=(0,ru.useCallback)((r,n,i=null)=>{let a,c=qj(r,n,e,s),h=i?(a=new bS(...i).applyQuaternion(new bE(...c.quaternion)).add(new bS(...c.position)),{...c,position:a.toArray()}):c;d.current=h.activePlaneId,l.value=h.activePlaneId,u({type:"set-resource-pose",placementKey:o,resourcePose:h}),t()},[l,e,t,o,s]),x=(0,ru.useCallback)(t=>A?function({activePlaneId:e,allowedPlaneIds:t,camera:r,planeIdMap:n,planeMap:i,pointer:a,raycaster:s}){let o=new Set(t),l=[],c=new Set,u=e=>{!(null===e||c.has(e))&&o.has(e)&&(c.add(e),l.push(e))};for(let o of(u(function(e,t){let r=Math.floor((e.x+1)*.5*t.width),n=Math.floor((1-e.y)*.5*t.height);if(r<0||n<0||r>=t.width||n>=t.height)return null;let i=t.data[n*t.width+r]??0;return i>0?i:null}(a,n)),u(e),t.forEach(u),s.setFromCamera(a,r),l)){let e=i.get(o),t=e?s.intersectObject(e,!1)[0]:null;if(t)return t}return null}({activePlaneId:d.current,allowedPlaneIds:m,camera:e,planeIdMap:A,planeMap:h.current,pointer:t,raycaster:n}):null,[m,e,A,n]);(0,ru.useEffect)(()=>{if(!A||null!==f)return;let r=function({allowedPlanes:e,camera:t,planeMap:r,placement:n}){let i=e[0],a=i?r.get(i.id):null;return a?qj(a,function(e){let t=e.geometry.attributes.position,r=new bS;for(let e=0;e<t.count;e++)r.add(new bS(t.getX(e),t.getY(e),t.getZ(e)));return r.divideScalar(Math.max(1,t.count))}(a),t,n):null}({allowedPlanes:g,camera:e,planeMap:h.current,placement:s});r&&(d.current=r.activePlaneId,l.value=r.activePlaneId,u({type:"set-resource-pose",placementKey:o,resourcePose:r}),t())},[l,g,e,t,o,A,f,s]);let C=(0,ru.useCallback)(()=>{let t,n=x(r);if(!n||!f){p.current=null;return}let i=qj(n.object,n.point,e,s);t=new bE(...i.quaternion).invert(),p.current=new bS(...f.position).sub(new bS(...i.position)).applyQuaternion(t).toArray()},[e,x,s,r,f]);return{activePlaneIdUniform:l,handleDrag:(0,ru.useCallback)(()=>{let e=x(r);e&&w(e.object,e.point,p.current)},[x,r,w]),handleDragEnd:(0,ru.useCallback)(()=>{p.current=null},[]),handleDragStart:C,planeGeometries:v,readiness:b,resourcePose:f,setPlaneRef:y}}({camera:o,invalidate:l,pointer:u,raycaster:c,roomId:n.id,scene:d,placement:e}),f=(0,ru.useMemo)(()=>new bC(1,1),[]),g=(0,ru.useMemo)(()=>new bC(d.planeIds.width,d.planeIds.height),[d.planeIds.height,d.planeIds.width]),m=(0,ru.useMemo)(()=>({planeIdsTexture:h,shadingTexture:p,planeIdsSize:g,viewport:f,activePlaneIdUniform:A.activePlaneIdUniform}),[A.activePlaneIdUniform,g,h,p,f]);(0,ru.useLayoutEffect)(()=>{o instanceof wq&&(o.fov=d.camera.fovYDeg),o.position.set(0,0,0),o.up.set(0,0,1),o.lookAt(0,1,0),o.updateProjectionMatrix(),l()},[o,l,d.camera.fovYDeg]),(0,ru.useLayoutEffect)(()=>{h.minFilter=1003,h.magFilter=1003,h.wrapS=1001,h.wrapT=1001,h.generateMipmaps=!1,h.needsUpdate=!0,p.minFilter=1006,p.magFilter=1006,p.wrapS=1001,p.wrapT=1001,p.generateMipmaps=!1,p.needsUpdate=!0},[h,p]),(0,ru.useLayoutEffect)(()=>{a.getDrawingBufferSize(f),f.set(Math.max(1,f.x),Math.max(1,f.y))},[a,s.height,s.width,f]);let{artifactsReady:v,placementReady:b,prepareReady:y}=A.readiness;return(0,ru.useEffect)(()=>{i({artifactsReady:v,placementReady:b,prepareReady:y})},[v,i,b,y]),(0,rh.jsxs)(rh.Fragment,{children:["floor"===e?A.resourcePose&&r&&(0,rh.jsx)(H_,{autoTransform:!1,onDrag:A.handleDrag,onDragEnd:A.handleDragEnd,onDragStart:A.handleDragStart,children:(0,rh.jsx)(q$,{glbUrl:r,position:A.resourcePose.position,quaternion:A.resourcePose.quaternion,materialPatch:m})}):A.resourcePose&&t&&(0,rh.jsx)(H_,{autoTransform:!1,onDrag:A.handleDrag,onDragEnd:A.handleDragEnd,onDragStart:A.handleDragStart,children:(0,rh.jsx)(q8,{src:t,position:A.resourcePose.position,quaternion:A.resourcePose.quaternion,materialPatch:m})}),d.planes.map(e=>(0,rh.jsx)(q1,{plane:e,geometry:A.planeGeometries.get(e.id),setPlaneRef:A.setPlaneRef},e.id)),(0,rh.jsx)(q0,{})]})}let q7={position:[0,0,0],up:[0,0,1],near:.01,far:100};function Ke({className:e,ref:t,captureRef:r,onSizeChange:n,...i}){let{placement:a}=Wx(),{src:s,glbUrl:o}=WE(),{room:l}=WC(),{patchSceneLoad:c}=WS(),{active:u}=HN(),d=qN((0,ru.useMemo)(()=>l.scene??ql(),[l.scene])),h=(0,ru.useRef)(null),p=(0,ru.useRef)(!1),A=(0,ru.useCallback)(e=>{(h.current=e,"function"==typeof t)?t(e):t&&(t.current=e)},[t]),f=W9("(max-width: 639px)"),{width:g,height:m}=function(e){let t,{ref:r,box:n="content-box"}=e,[{width:i,height:a},s]=(0,ru.useState)(qP),o=(t=(0,ru.useRef)(!1),(0,ru.useEffect)(()=>(t.current=!0,()=>{t.current=!1}),[]),(0,ru.useCallback)(()=>t.current,[])),l=(0,ru.useRef)({...qP}),c=(0,ru.useRef)(void 0);return c.current=e.onResize,(0,ru.useEffect)(()=>{if(!r.current||"u"<typeof window||!("ResizeObserver"in window))return;let e=new ResizeObserver(([e])=>{let t="border-box"===n?"borderBoxSize":"device-pixel-content-box"===n?"devicePixelContentBoxSize":"contentBoxSize",r=qL(e,t,"inlineSize"),i=qL(e,t,"blockSize");if(l.current.width!==r||l.current.height!==i){let e={width:r,height:i};l.current.width=r,l.current.height=i,c.current?c.current(e):o()&&s(e)}});return e.observe(r.current,{box:n}),()=>{e.disconnect()}},[n,r,o]),{width:i,height:a}}({ref:h}),v=(0,ru.useMemo)(()=>{if(!g||!m||!d)return null;let e=g,t=m;return f?e=(t=m)*d:g/m>d?e=m*d:t=g/d,{width:e,height:t}},[g,m,d,f]);return(0,ru.useLayoutEffect)(()=>{v&&n?.(v.width,v.height)},[v,n]),(0,ru.useEffect)(()=>{if(!v||p.current)return;p.current=!0;let e=window.setTimeout(()=>{window.dispatchEvent(new Event("resize"))},250);return()=>{window.clearTimeout(e)}},[v]),(0,ru.useEffect)(()=>{c({layoutReady:null!==v})},[c,v]),(0,ru.useEffect)(()=>{c({materialReady:"wall"===a?!!s:!!o})},[o,c,s,a]),(0,ru.useEffect)(()=>{c({assetsReady:!u})},[u,c]),(0,rh.jsx)("div",{ref:A,className:VP("size-full flex items-center justify-center sm:pt-21 sm:pb-12",e),...i,children:v&&(0,rh.jsx)(jE,{className:"touch-none bg-transparent",frameloop:"demand",camera:q7,gl:{toneMapping:4,toneMappingExposure:1.2,alpha:!0,preserveDrawingBuffer:!0},style:{width:`${v.width}px`,height:`${v.height}px`},children:(0,rh.jsxs)(ru.Suspense,{fallback:null,children:[(0,rh.jsx)(qQ,{ref:r}),(0,rh.jsx)(jy,{files:"wall"===a?["https://cdn.neurodyn.ai/assets/hdr/neutral.hdr"]:void 0,preset:"floor"===a?"warehouse":void 0}),(0,rh.jsx)(q6,{})]})})})}async function Kt(e){await navigator.clipboard.writeText(e)}function Kr({captureRef:e,fallbackToClipboard:t=!1,fileName:r="room-scene.png",shareMessage:n}){let[i,a]=(0,ru.useState)(!1),[s,o]=(0,ru.useState)(!1),l=(0,ru.useMemo)(()=>"u">typeof navigator&&"function"==typeof navigator.share||t&&"u">typeof navigator&&"function"==typeof navigator.clipboard?.writeText,[t]),c=(0,ru.useCallback)(async()=>{if(!l)return;let i="u">typeof navigator&&"function"==typeof navigator.share,s=window.location.href,o=`${n}
7546
+ ${s}`;a(!0);try{if(!i&&t)return void await Kt(o);let n=e.current;if(n)try{let e=await n.capture(),t=new File([e],r,{type:e.type||"image/png"});if(navigator.canShare?.({files:[t]}))return void await navigator.share({text:o,files:[t]})}catch(e){console.error("Failed to generate scene screenshot for sharing",e)}await navigator.share({text:o,url:s})}catch(e){e instanceof DOMException&&"AbortError"===e.name||console.error("Failed to share scene",e)}finally{a(!1)}},[l,e,t,r,n]);return{canShare:l,download:(0,ru.useCallback)(async()=>{let t=e.current;if(t){o(!0);try{var n;let e,i;n=await t.capture(),e=URL.createObjectURL(n),(i=document.createElement("a")).href=e,i.download=r,document.body.append(i),i.click(),i.remove(),URL.revokeObjectURL(e)}catch(e){console.error("Failed to download scene screenshot",e)}finally{o(!1)}}},[e,r]),isDownloading:s,isSharing:i,share:c}}function Kn({captureRef:e,className:t,canvasWrapperClassName:r,chrome:n="default",...i}){let{placement:a,type:s}=Wx(),{containerRef:o,isDragging:l,angle:c,rotation:u,setAngle:d,setRotation:h}=WS(),{t:p}=sr(),A=(0,ru.useRef)(null),f=(0,ru.useRef)(null),g=e??f,m=W9("(max-width: 639px)"),v=W9("(min-width: 768px)"),{canShare:b,isSharing:y,share:w}=Kr({captureRef:g,shareMessage:p(`shareMessage.${s}`)}),x=(0,ru.useCallback)(()=>{m&&A.current?.centerView()},[m]);return(0,rh.jsxs)("div",{className:VP("relative flex items-center justify-center overflow-hidden",t),...i,children:[(0,rh.jsx)(fW,{ref:A,disabled:l,children:(0,rh.jsx)(fq,{wrapperClass:"neurodyn-rzpp-wrapper size-full!",contentClass:"neurodyn-rzpp-content h-full! min-w-full sm:max-w-full",children:(0,rh.jsx)(Ke,{captureRef:g,className:r,onSizeChange:x})})}),"default"===n&&(0,rh.jsxs)(rh.Fragment,{children:[(0,rh.jsx)(q_,{className:"absolute bottom-4 left-4 sm:bottom-6 sm:left-6"}),"floor"===a&&(0,rh.jsxs)("div",{className:"bg-button-dark typo-button-normal absolute bottom-6 left-1/2 hidden h-9 -translate-x-1/2 items-center gap-1.5 rounded-lg px-3.75 text-text-white md:inline-flex",children:[(0,rh.jsx)("span",{className:"shrink-0",children:p("scene.position")}),(0,rh.jsx)(W3,{value:[u],onValueChange:([e])=>h(e??0),min:-180,max:180,step:1,className:"w-29.5 **:data-[slot=slider-range]:bg-transparent **:data-[slot=slider-thumb]:border-background-base-3 **:data-[slot=slider-thumb]]:bg-background-base-3 **:data-[slot=slider-track]:bg-icons-normal","aria-label":p("scene.position")})]}),(0,rh.jsxs)("div",{className:"absolute right-4 bottom-4 inline-flex items-center gap-2 sm:right-6 sm:bottom-6",children:[("wall"===a||"floor"===a&&!v)&&(0,rh.jsxs)(W0,{children:[(0,rh.jsx)(W1,{asChild:!0,children:(0,rh.jsxs)(VN,{variant:"contrast",size:m?"icon":"default",children:[(0,rh.jsx)(V2,{className:"size-5"}),(0,rh.jsx)("span",{className:"sr-only sm:not-sr-only",children:p("scene.tunePosition")})]})}),(0,rh.jsx)(W2,{className:"px-3 py-3.5 bg-button-dark border-button-dark text-text-white",side:"top",align:"end",portalContainer:o,children:(0,rh.jsxs)(WY,{children:[(0,rh.jsxs)(WX,{orientation:"horizontal",children:[(0,rh.jsx)(W$,{children:p("scene.rotation")}),(0,rh.jsx)(W3,{value:[u],onValueChange:([e])=>h(e??0),min:-180,max:180,step:1,className:"w-40.5 **:data-[slot=slider-range]:bg-transparent **:data-[slot=slider-thumb]:border-background-base-3 **:data-[slot=slider-thumb]]:bg-background-base-3 **:data-[slot=slider-track]:bg-icons-normal","aria-label":p("scene.rotation")})]}),"wall"===a&&(0,rh.jsxs)(WX,{orientation:"horizontal",children:[(0,rh.jsx)(W$,{children:p("scene.angle")}),(0,rh.jsx)(W3,{value:[c],onValueChange:([e])=>d(e??0),max:75,min:-75,step:1,className:"w-40.5 **:data-[slot=slider-range]:bg-transparent **:data-[slot=slider-thumb]:border-background-base-3 **:data-[slot=slider-thumb]]:bg-background-base-3 **:data-[slot=slider-track]:bg-icons-normal","aria-label":p("scene.angle")})]})]})})]}),"wall"===a&&(0,rh.jsxs)(VN,{variant:"contrast",size:m?"icon":"default",disabled:!b||y,onClick:w,children:[(0,rh.jsx)(V4,{className:"size-5"}),(0,rh.jsx)("span",{className:"sr-only sm:not-sr-only",children:p("scene.share")})]}),m&&"wall"===a&&(0,rh.jsxs)(W0,{children:[(0,rh.jsx)(W1,{asChild:!0,children:(0,rh.jsx)(VN,{variant:"contrast",size:"icon",children:(0,rh.jsx)(V3,{})})}),(0,rh.jsxs)(W2,{className:"grid gap-5",portalContainer:o,children:[(0,rh.jsx)(qy,{}),(0,rh.jsx)(qk,{})]})]})]})]})]})}function Ki({className:e,gridClassName:t,titleClassName:r,onOpenChange:n,...i}){let{t:a}=sr(),s=(0,ru.useRef)(null),{fetchNextMaterialsPage:o,hasNextPage:l,isFetchingNextPage:c,isLoading:u,materialItems:d,selectMaterial:h,selectedMaterialId:p}=qb({includeViewedObject:!0});(0,ru.useEffect)(()=>{let e=s.current;e&&!u&&!c&&l&&0!==d.length&&e.scrollHeight<=e.clientHeight&&o()},[o,l,c,u,d.length]);let A=(0,ru.useCallback)(e=>{let{clientHeight:t,scrollHeight:r,scrollTop:n}=e.currentTarget;n+t>=r-64&&o()},[o]),f=(0,ru.useCallback)(e=>{h(e)&&n(!1)},[n,h]);return(0,rh.jsxs)("div",{...i,className:VP("flex min-h-0 flex-col gap-3 overflow-hidden text-text-dark outline-none",e),"data-testid":"material-selection-panel",onPointerDownCapture:e=>{e.stopPropagation(),i.onPointerDownCapture?.(e)},onMouseDownCapture:e=>{e.stopPropagation(),i.onMouseDownCapture?.(e)},children:[(0,rh.jsx)("h2",{className:VP("typo-base-16 font-medium sm:typo-base-14 sm:font-semibold text-text-dark",r),children:a("floor.materialSelection.title")}),(0,rh.jsx)("div",{"data-testid":"material-selection-grid",ref:s,className:VP("min-h-0 flex-1 overflow-y-auto overflow-x-hidden overscroll-contain pr-1 [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden",t),onScroll:A,children:(0,rh.jsxs)("div",{className:"grid min-h-max grid-cols-3 gap-x-2 gap-y-2","data-testid":"material-selection-grid-items",children:[d.map(({materialId:e,material:t,tinuuid:r})=>{let n,i=e===p,a=(n=t.previews?.[0],n?.subRes?.small??n?.url);return(0,rh.jsxs)("button",{type:"button","data-selected":i,"aria-pressed":i,className:VP("group relative grid aspect-square min-w-0 place-items-center overflow-hidden rounded-lg border border-border bg-background-containers p-1 text-left transition hover:border-icons-normal focus-visible:ring-2 focus-visible:ring-icons-normal focus-visible:outline-hidden"),onClick:()=>f(e),onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.preventDefault(),f(e))},children:[a?(0,rh.jsx)("img",{src:a,alt:"",className:"size-full rounded-md object-cover"}):(0,rh.jsx)(V$,{className:"size-6 text-icons-normal"}),(0,rh.jsx)("span",{className:"sr-only",children:t.name}),i&&(0,rh.jsx)("span",{className:"absolute top-1 right-1 grid size-6 place-items-center rounded-full bg-icons-blue text-icons-white","data-testid":"material-selection-selected-check",children:(0,rh.jsx)(VK,{className:"size-4"})})]},`${r}-${e}`)}),(u||c)&&(0,rh.jsx)("div",{className:"col-span-3 grid h-16 place-items-center",children:(0,rh.jsx)(V8,{className:"size-6"})})]})})]})}function Ka({open:e,portalContainer:t,onOpenChange:r}){let{t:n}=sr();return(0,rh.jsx)(VO,{open:e,onOpenChange:r,children:(0,rh.jsxs)(Vz,{contentInsideOverlay:!0,"data-testid":"material-selection-mobile-overlay",className:"top-auto bottom-0 flex max-h-[calc(100svh-8px)] w-[calc(100%-16px)] !max-w-none translate-y-0 flex-col gap-2 overflow-hidden rounded-t-2xl rounded-b-none p-4 sm:hidden",portalContainer:t,showCloseButton:!1,children:[(0,rh.jsx)(VG,{className:"sr-only",children:n("floor.materialSelection.title")}),(0,rh.jsx)(VV,{className:"sr-only"}),(0,rh.jsx)(Ki,{className:"min-h-0",gridClassName:"max-h-none",onOpenChange:r}),(0,rh.jsx)(Vj,{className:"shrink-0 p-0",children:(0,rh.jsx)(VQ,{asChild:!0,children:(0,rh.jsx)(VN,{type:"button",variant:"outline",className:"w-full",children:n("close")})})})]})})}let Ks="data-material-selection-action",Ko="data-material-selection-panel";function Kl({actionLabel:e,actionClassName:t,actionPlacement:r,className:n,iconClassName:i,isOpen:a,materialName:s,previewClassName:o,previewUrl:l,testId:c,titleLabel:u,onClick:d,onPointerDown:h}){let{t:p}=sr(),{displayUnit:A,type:f}=Wx(),{containerRef:g}=WS(),{viewedObject:m}=WE(),{selectedDestinationUrl:v,sizeItems:b,selectedTinuuid:y,selectSize:w}=function(){var e;let{tinuuid:t,setMaterial:r,setTinuuid:n,apiKey:i,baseURL:a,source:s,widgetSession:o}=WE(),{type:l}=Wx(),{data:c}=s4({queryKey:Vk(t??void 0,{apiKey:i,baseURL:a,source:s,resourceType:l}),enabled:"rugs"===l&&!!t,placeholderData:tq,queryFn:({signal:e})=>{if(!t)throw Error("Tinuuid is required.");return VT(t,{apiKey:i,baseURL:a,signal:e,source:s,widgetSession:o,resourceType:l})}},sG,void 0),u=c?.kit?.uuid,d=c?.owner?.uuid;(0,ru.useEffect)(()=>{let e=c?.materials?.[0];c?.tinuuid===t&&e&&r(e)},[c,r,t]);let{data:h,fetchNextPage:p,hasNextPage:A,isFetchingNextPage:f,isFetchNextPageError:g}=s4({queryKey:["room-viewer","kit-objects",{apiKey:(e={apiKey:i,baseURL:a,source:s,resourceType:l}).apiKey??null,kitUuid:u??null,ownerUuid:d??null,resourceType:e.resourceType??null,source:e.source}],enabled:"rugs"===l&&!!u&&!!d,queryFn:({pageParam:e,signal:t})=>{if(!u||!d)throw Error("Kit uuid and owner uuid are required.");return VD(u,d,e,{apiKey:i,baseURL:a,signal:t,source:s,widgetSession:o,resourceType:l})},initialPageParam:0,getNextPageParam:(e,t,r)=>void 0!==e.pages_count?r+1<e.pages_count?r+1:void 0:e.objs?.length?r+1:void 0},s9,void 0);(0,ru.useEffect)(()=>{!A||f||g||p({cancelRefetch:!1})},[p,A,f,g]);let m=(0,ru.useMemo)(()=>h?.pages.flatMap(e=>e.objs??[])??[],[h]),v=(0,ru.useMemo)(()=>m.map(WW).filter(e=>null!==e),[m]);return{selectedDestinationUrl:c?.tinuuid===t?c.destinationUrl:void 0,sizeItems:v,selectedTinuuid:t,selectSize:e=>!!v.some(t=>t.tinuuid===e)&&(n(e),!0)}}(),x=p(`units.${A}`),C=b.find(e=>e.tinuuid===y),E=function(e){let t=e?.trim();if(!t||Wz.test(t)&&!/^https?:/i.test(t)||/^[./?#]/.test(t)&&!t.startsWith("//"))return;let r=t.startsWith("//")?`https:${t}`:/^https?:/i.test(t)?t:`https://${t}`;try{let e=new URL(r);if("http:"!==e.protocol&&"https:"!==e.protocol||!e.hostname)return;return e.href}catch{return}}("rugs"===f?v??(m?.tinuuid===y?m.destinationUrl:void 0):m?.destinationUrl),S=(0,rh.jsxs)(VN,{type:"button",variant:"outline",size:"sm",[Ks]:!0,"aria-expanded":a,className:VP("shrink-0","stacked"===r&&"w-fit",t),onPointerDown:h?e=>{e.preventDefault(),e.stopPropagation(),h()}:void 0,onClick:d,children:[a?(0,rh.jsx)(VY,{className:"size-4"}):(0,rh.jsx)(V1,{className:"size-4"}),e]});return(0,rh.jsxs)("div",{className:n,"data-testid":c,children:[(0,rh.jsx)("div",{className:o,children:l?(0,rh.jsx)("img",{src:l,alt:"",className:"size-full object-cover"}):(0,rh.jsx)(V$,{className:i})}),(0,rh.jsxs)("div",{className:"grid min-h-16 min-w-0 flex-1 content-center gap-2",children:[(0,rh.jsxs)("div",{className:"flex min-w-0 items-start justify-between gap-2",children:[(0,rh.jsxs)("div",{className:"min-w-0",children:[(0,rh.jsx)("div",{className:"sr-only",children:u}),(0,rh.jsx)("div",{className:"typo-button-normal truncate text-text-dark",children:s})]}),E&&(0,rh.jsx)("a",{href:E,target:"_blank",rel:"noopener noreferrer",className:"typo-base-12 shrink-0 text-button-primary underline-offset-2 hover:underline","data-testid":c?`${c}-description-link`:void 0,children:p("floor.scene.description")})]}),(0,rh.jsxs)("div",{className:"flex flex-nowrap items-center gap-2",children:["stacked"===r&&S,b.length>1&&!!C&&(0,rh.jsxs)(WP,{value:y??void 0,onValueChange:w,children:[(0,rh.jsx)(WN,{size:"sm",className:"w-fit shrink-0","data-testid":c?`${c}-size-select`:void 0,children:(0,rh.jsx)(WL,{})}),(0,rh.jsx)(WO,{portalContainer:g,children:b.map(e=>{var t;let r;return(0,rh.jsx)(WF,{value:e.tinuuid,children:(t=e.size,r=t.split("\xd7").map(e=>"cm"===A?e:Math.round(Wj(Number(e)/100,A)).toString()).join("\xd7"),`${r} ${x}`)},e.tinuuid)})})]})]})]}),"trailing"===r&&S]})}function Kc({actions:e,canShowAr:t,companyName:r,hasActiveError:n,material:i,portalContainer:a,ref:s,room:o,scene:l,showDialogCloseButton:c=!1}){let{t:u}=sr(),{type:d}=Wx(),[h,p]=(0,ru.useState)(!1),[A,f]=(0,ru.useState)(!1),g=(0,ru.useRef)(null),m=(0,ru.useRef)(!1),v=u(h?"floor.scene.hideCatalog":`resourceType.${d}.replaceProduct`),b=u(A?"floor.scene.hideCatalog":`resourceType.${d}.replaceProductShort`),y=u(`resourceType.${d}.productCardTitle`),{canShare:w,download:x,isDownloading:C,isSharing:E,share:S}=Kr({captureRef:g,fallbackToClipboard:!0,shareMessage:u(`shareMessage.${d}`)}),I=(0,ru.useCallback)(()=>{p(!1),f(!1)},[]);(0,ru.useImperativeHandle)(s,()=>({closeMaterialSelection:I}),[I]);let M=(0,ru.useCallback)(()=>{if(m.current){m.current=!1;return}p(!0),f(!1)},[]),B=(0,ru.useCallback)(()=>{m.current=!0,I()},[I]),k=(0,ru.useCallback)(()=>{f(!0),p(!1)},[]),T=(0,ru.useCallback)(()=>{I(),e.openInteriorSelection()},[e,I]);return(0,ru.useEffect)(()=>{if(h)return document.addEventListener("pointerdown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("pointerdown",e),document.removeEventListener("keydown",t)};function e(e){var t;(t=e.target)instanceof Element&&t.closest(`[${Ks}], [${Ko}]`)||p(!1)}function t(e){"Escape"===e.key&&p(!1)}},[h]),(0,rh.jsxs)(rh.Fragment,{children:[(0,rh.jsx)("div",{className:"absolute inset-0 bg-constant-black","data-testid":"floor-scene-background-base"}),(0,rh.jsx)("div",{"aria-hidden":!0,className:"absolute top-[-52px] right-[-1.36%] bottom-[-52px] left-[-1.36%] blur-[40px]","data-testid":"floor-blur-background",children:(0,rh.jsx)("img",{src:o.imageUrl,alt:"",className:"block size-full max-w-none object-cover object-center opacity-50"})}),(0,rh.jsxs)("div",{className:"pointer-events-none absolute top-0 right-0 left-0 z-20 flex min-h-22 items-start justify-between gap-4 bg-linear-to-b from-black/75 via-black/35 to-transparent px-4 pt-4 pb-8 text-constant-white sm:px-6 lg:min-h-25 lg:pt-6",children:[(0,rh.jsx)("div",{className:"min-w-0 pt-1",children:(0,rh.jsx)("h1",{"data-testid":"floor-scene-header-company",className:"typo-base-16 truncate font-medium lg:typo-base-18",children:r})}),(0,rh.jsxs)("div",{className:"pointer-events-auto inline-flex shrink-0 items-center gap-2",children:[(0,rh.jsxs)(VN,{type:"button",variant:"secondary","aria-label":u("floor.scene.share"),disabled:!w||E,onClick:S,className:"size-10 rounded-full px-0 lg:h-9 lg:w-auto lg:rounded-xl lg:px-3.5",children:[(0,rh.jsx)(V4,{className:"size-5"}),(0,rh.jsx)("span",{className:"hidden lg:inline",children:u("floor.scene.share")})]}),(0,rh.jsxs)(VN,{type:"button",variant:"secondary","aria-label":u("floor.scene.download"),disabled:C,onClick:x,className:"size-10 rounded-full px-0 lg:h-9 lg:w-auto lg:rounded-xl lg:px-3.5",children:[(0,rh.jsx)(VJ,{className:"size-5"}),(0,rh.jsx)("span",{className:"hidden lg:inline",children:u("floor.scene.download")})]}),c&&(0,rh.jsx)(VQ,{asChild:!0,children:(0,rh.jsxs)(VN,{type:"button",variant:"secondary","aria-label":u("close"),className:"size-10 rounded-full px-0 lg:h-9 lg:w-auto lg:rounded-xl lg:px-3.5",children:[(0,rh.jsx)("span",{className:"hidden lg:inline",children:u("close")}),(0,rh.jsx)(VY,{className:"!size-5"})]})})]})]}),(0,rh.jsx)(Kn,{captureRef:g,chrome:"none",className:"relative z-10 size-full min-h-0",canvasWrapperClassName:"p-0 sm:pt-0 sm:pb-0"},l.resetKey),(0,rh.jsxs)("div",{className:"pointer-events-none absolute right-6 bottom-6 left-6 z-20 hidden items-end justify-between gap-4 lg:flex","data-testid":"floor-desktop-cards",children:[(0,rh.jsxs)("div",{className:"pointer-events-auto flex min-w-0 items-stretch gap-3",children:[(0,rh.jsx)(Kl,{actionLabel:v,actionPlacement:"stacked",className:"flex min-h-24 w-fit max-w-100 items-center gap-4 rounded-2xl bg-background-containers p-4 text-left text-text-dark shadow-[var(--shadow-login)]",iconClassName:"size-6 text-icons-normal",isOpen:h,materialName:i.name,previewClassName:"grid size-16 shrink-0 place-items-center overflow-hidden bg-background-base",previewUrl:i.previewUrl,testId:"floor-desktop-product-card",titleLabel:y,onClick:h?I:M,onPointerDown:h?B:void 0}),(0,rh.jsxs)("div",{className:"flex h-24 w-[254px] items-center gap-4 overflow-hidden rounded-2xl bg-background-containers p-4 text-left text-text-dark shadow-[var(--shadow-login)]","data-testid":"floor-room-card",children:[(0,rh.jsx)("img",{src:o.imageUrl,alt:"",className:"size-16 shrink-0 rounded-lg object-cover"}),(0,rh.jsxs)("span",{className:"grid min-w-0 flex-1 content-center gap-2",children:[(0,rh.jsx)("span",{className:"typo-button-normal block min-h-[1.35em] truncate !leading-[1.35] text-text-dark","data-testid":"floor-desktop-room-name",children:o.name}),(0,rh.jsx)(VN,{type:"button",variant:"outline",size:"sm",className:"w-fit",onClick:T,children:u("floor.interiorSelection.chooseInterior")})]})]})]}),t&&(0,rh.jsxs)("div",{className:"pointer-events-auto flex h-24 w-[280px] items-center gap-4 overflow-hidden rounded-2xl bg-background-containers p-4 text-text-dark shadow-[var(--shadow-login)]","data-testid":"floor-ar-card",children:[(0,rh.jsx)("img",{src:o.imageUrl,alt:"",className:"size-16 shrink-0 rounded-lg object-cover"}),(0,rh.jsxs)("div",{className:"grid min-w-0 flex-1 content-center gap-2",children:[(0,rh.jsx)(q_,{buttonLabel:u("floor.scene.tryAtHome"),buttonVariant:"secondary",buttonSize:"sm",buttonClassName:"w-fit"}),(0,rh.jsx)("div",{className:"typo-base-12 truncate font-medium text-text-light",children:u("floor.scene.tryAtHomeBody")})]})]})]}),(0,rh.jsxs)("div",{className:"pointer-events-none absolute right-6 bottom-6 left-6 z-20 hidden items-end justify-between gap-2 sm:flex lg:hidden","data-testid":"floor-tablet-cards",children:[(0,rh.jsx)(Kl,{actionLabel:v,actionPlacement:"stacked",className:"pointer-events-auto flex min-h-[116px] w-fit max-w-[421px] items-center gap-4 rounded-2xl bg-background-containers p-4 text-left text-text-dark shadow-[var(--shadow-login)]",iconClassName:"size-6 text-icons-normal",isOpen:h,materialName:i.name,previewClassName:"grid size-16 shrink-0 place-items-center overflow-hidden bg-background-base",previewUrl:i.previewUrl,testId:"floor-tablet-product-card",titleLabel:y,onClick:h?I:M,onPointerDown:h?B:void 0}),(0,rh.jsxs)("div",{className:"pointer-events-auto grid w-[254px] gap-2",children:[(0,rh.jsxs)("div",{className:"flex h-[72px] items-center justify-between gap-3 overflow-hidden rounded-2xl bg-background-containers p-4 text-left text-text-dark shadow-[var(--shadow-login)]","data-testid":"floor-tablet-room-card",children:[(0,rh.jsxs)("span",{className:"flex min-w-0 items-center gap-2",children:[(0,rh.jsx)("img",{src:o.imageUrl,alt:"",className:"size-10 shrink-0 rounded-full object-cover"}),(0,rh.jsxs)("span",{className:"grid min-w-0",children:[(0,rh.jsx)("span",{className:"typo-base-12 truncate text-text-light",children:u("floor.scene.interiorCardTitle")}),(0,rh.jsx)("span",{className:"typo-button-normal min-h-[1.35em] truncate !leading-[1.35] text-text-dark","data-testid":"floor-tablet-room-name",children:o.name})]})]}),(0,rh.jsx)(VN,{type:"button",variant:"outline",size:"sm",className:"shrink-0",onClick:T,children:u("floor.interiorSelection.chooseInteriorShort")})]}),t&&(0,rh.jsx)(q_,{className:"w-full",buttonLabel:u("floor.scene.tryAtHome"),buttonLeadingIcon:(0,rh.jsx)(V9,{className:"size-5"}),buttonVariant:"secondary",buttonSize:"default",buttonClassName:"h-9 w-full rounded-xl"})]})]}),(0,rh.jsxs)("div",{className:"relative z-20 grid bg-background-containers text-text-dark shadow-[var(--shadow-login)] sm:hidden","data-testid":"floor-mobile-cards",children:[(0,rh.jsx)(Kl,{actionLabel:b,actionClassName:"w-[137px]",actionPlacement:"stacked",className:"flex items-center justify-start gap-4 border-b border-border-light bg-background-containers p-4 text-left",iconClassName:"size-5 text-icons-normal",isOpen:A,materialName:i.name,previewClassName:"grid size-16 shrink-0 place-items-center overflow-hidden bg-background-base",previewUrl:i.previewUrl,testId:"floor-mobile-product-card",titleLabel:y,onClick:A?I:k}),(0,rh.jsxs)("div",{className:"grid gap-4 bg-background-containers px-6 pt-4 pb-6","data-testid":"floor-mobile-bottom-actions",children:[(0,rh.jsxs)("div",{className:"flex w-full items-center justify-between gap-3 rounded-full bg-background-containers text-left",children:[(0,rh.jsxs)("span",{className:"flex min-w-0 items-center gap-2",children:[(0,rh.jsx)("img",{src:o.imageUrl,alt:"",className:"size-10 shrink-0 rounded-full object-cover"}),(0,rh.jsxs)("span",{className:"grid min-w-0",children:[(0,rh.jsx)("span",{className:"typo-base-12 truncate text-text-light",children:u("floor.scene.interiorCardTitle")}),(0,rh.jsx)("span",{className:"typo-button-normal min-h-[1.35em] truncate !leading-[1.35] text-text-dark","data-testid":"floor-mobile-room-name",children:o.name})]})]}),(0,rh.jsx)(VN,{type:"button",variant:"outline",size:"sm",className:"shrink-0",onClick:T,children:u("floor.interiorSelection.chooseInterior")})]}),t&&(0,rh.jsx)(q_,{className:"w-full",buttonLabel:u("floor.scene.tryAtHome"),buttonLeadingIcon:(0,rh.jsx)(V9,{className:"size-6"}),buttonVariant:"secondary",buttonSize:"lg",buttonClassName:"h-11 w-full rounded-xl"})]})]}),h&&!n&&(0,rh.jsx)(Ki,{[Ko]:!0,className:"absolute bottom-[152px] left-6 z-30 hidden max-h-[calc(100%-252px)] w-[348px] rounded-2xl bg-background-containers sm:flex lg:bottom-[132px] lg:max-h-[calc(100%-232px)]",gridClassName:"px-4 pb-4",titleClassName:"px-4 pt-4",onOpenChange:I}),(0,rh.jsx)(Ka,{open:A&&!n,portalContainer:a,onOpenChange:f}),(0,rh.jsx)("div",{"aria-hidden":!l.isLoading,className:VP("absolute inset-0 z-10 flex items-center justify-center bg-radial from-background-containers to-background-base-2 transition-opacity",l.isLoading?"opacity-100 pointer-events-auto duration-0":"opacity-0 pointer-events-none duration-250ms"),children:(0,rh.jsx)(V8,{variant:"logo"})})]})}function Ku({rooms:e,customRooms:t,selectedRoomId:r,isInvalidFile:n,uploadRetryRequestId:i=0,showCloseButton:a=!1,onSelectRoom:s,onUploadFile:o}){let l,{t:c}=sr(),u=(0,ru.useId)(),d=(0,ru.useRef)(null);function h(e){return e.map(e=>(0,rh.jsxs)("button",{type:"button",className:"group relative aspect-[4/3] overflow-hidden rounded-2xl bg-background-base text-left transition focus-visible:ring-2 focus-visible:ring-icons-normal focus-visible:outline-hidden","aria-pressed":e.id===r,onClick:()=>s(e.id),children:[(0,rh.jsx)("img",{src:e.image_url,alt:"",decoding:"async",className:"size-full scale-[1.02] transform-gpu object-cover transition duration-200 group-hover:scale-105"}),(0,rh.jsx)("span",{className:"typo-base-12 absolute inset-x-0 bottom-0 truncate bg-linear-to-t from-black/45 via-black/10 to-transparent px-3 py-2 text-constant-white",children:c(`rooms.${e.id}`,{defaultValue:e.name})})]},e.id))}return(0,ru.useEffect)(()=>{i>0&&d.current?.click()},[i]),(0,rh.jsxs)("section",{"aria-labelledby":"floor-interior-selection-title",className:"relative mx-auto grid h-auto min-h-0 max-h-[calc(100svh-8px)] w-full max-w-151 grid-rows-[auto_auto_minmax(0,1fr)_auto] gap-4 overflow-hidden rounded-t-2xl rounded-b-none bg-background-containers p-4 shadow-[var(--shadow-login)] sm:my-4 sm:max-h-[calc(100svh-32px)] sm:rounded-2xl sm:p-6","data-testid":"floor-interior-selection-panel",children:[a&&(l=(0,rh.jsx)(VN,{type:"button",variant:"outline",size:"icon",className:"absolute top-4 right-4 sm:top-6 sm:right-6","aria-label":c("close"),"data-testid":"floor-interior-selection-icon-close",children:(0,rh.jsx)(VY,{})}),(0,rh.jsx)(VQ,{asChild:!0,children:l})),(0,rh.jsx)("h2",{id:"floor-interior-selection-title",className:"typo-base-16 font-medium sm:typo-base-18 text-text-dark",children:c("floor.interiorSelection.title")}),(0,rh.jsxs)("div",{className:"grid gap-2","data-testid":"floor-interior-selection-upload",children:[(0,rh.jsxs)("label",{htmlFor:u,className:"flex min-h-15 cursor-pointer items-center justify-center gap-2 rounded-xl border border-dashed border-background-blue bg-background-blue-transparent px-4 text-center typo-button-normal text-background-blue opacity-80 transition hover:bg-background-blue-transparent/80",onDragOver:e=>e.preventDefault(),onDrop:function(e){e.preventDefault();let t=e.dataTransfer.files[0];t&&o(t)},children:[(0,rh.jsx)(Vq,{className:"size-5 text-background-blue"}),c("floor.interiorSelection.uploadPhoto"),(0,rh.jsx)("input",{ref:d,id:u,type:"file",accept:"image/*",className:"sr-only",onChange:function(e){let t=e.target.files?.[0];e.target.value="",t&&o(t)}})]}),n&&(0,rh.jsx)("p",{className:"typo-base-12 font-medium text-destructive",children:c("floor.interiorSelection.invalidFile")})]}),(0,rh.jsx)("div",{className:"grid min-h-0 overflow-y-auto overflow-x-hidden overscroll-contain pr-1 [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden","data-testid":"floor-interior-selection-scroll-content",children:(0,rh.jsxs)("div",{className:"grid min-h-max gap-4",children:[t.length>0&&(0,rh.jsxs)("div",{className:"grid gap-3",children:[(0,rh.jsx)("h3",{className:"typo-base-16 font-medium text-text-light",children:c("floor.interiorSelection.customTitle")}),(0,rh.jsx)("div",{className:"grid grid-cols-2 gap-3 sm:grid-cols-3","data-testid":"floor-custom-interior-selection-grid",children:h(t)})]}),(0,rh.jsxs)("div",{className:"grid gap-3",children:[(0,rh.jsx)("h3",{className:"typo-base-16 font-medium text-text-light",children:c("floor.interiorSelection.presetsTitle")}),(0,rh.jsx)("div",{className:"grid grid-cols-2 gap-3 sm:grid-cols-3","data-testid":"floor-preset-interior-selection-grid",children:h(e)})]})]})}),a&&(0,rh.jsx)(Vj,{className:"-mt-2 shrink-0 p-0 sm:mt-0",children:(0,rh.jsx)(VQ,{asChild:!0,children:(0,rh.jsx)(VN,{variant:"outline",className:"w-full",children:c("close")})})})]})}function Kd(e){return(0,rh.jsx)("div",{className:"absolute inset-0 z-20 grid items-end p-0 sm:items-center sm:p-4","data-testid":"floor-interior-selection-overlay",children:(0,rh.jsx)(Ku,{...e})})}function Kh({open:e,portalContainer:t,onOpenChange:r,...n}){let{t:i}=sr();return(0,rh.jsx)(VO,{open:e,onOpenChange:r,children:(0,rh.jsxs)(Vz,{contentInsideOverlay:!0,portalContainer:t,showCloseButton:!1,"data-testid":"floor-interior-selection-overlay",className:"top-auto bottom-0 grid max-h-[calc(100svh-8px)] w-[calc(100%-16px)] min-w-0 max-w-none translate-y-0 overflow-hidden rounded-t-2xl rounded-b-none border-none bg-transparent p-0 shadow-none sm:top-[50%] sm:bottom-auto sm:w-full sm:max-w-none sm:translate-y-[-50%] sm:rounded-none sm:p-4",children:[(0,rh.jsx)(VG,{className:"sr-only",children:i("floor.interiorSelection.title")}),(0,rh.jsx)(VV,{className:"sr-only"}),(0,rh.jsx)(Ku,{...n,showCloseButton:!0})]})})}async function Kp(e,t={}){let r=t.source??"default",n={image:e};if(G$({apiKey:t.apiKey,source:r})){let e=await t.widgetSession?.getTokenForRequest();return VA(n,{baseURL:t.baseURL,headers:{"x-api-key":t.apiKey,...e?{[VC]:e}:{}},signal:t.signal,timeout:0,params:{productType:G0({apiKey:t.apiKey,source:r})}})}return t.signal?Vo(n,{signal:t.signal,timeout:0}):Vo(n,{timeout:0})}let KA=[{id:0,label:"empty",rgb:[0,0,0]},{id:1,label:"floor",rgb:[32,208,96]},{id:2,label:"wall-1",rgb:[255,59,48]},{id:3,label:"wall-2",rgb:[10,132,255]},{id:4,label:"ceiling",rgb:[255,214,10]},{id:5,label:"plane-5",rgb:[191,90,242]},{id:6,label:"plane-6",rgb:[255,159,10]},{id:7,label:"plane-7",rgb:[100,210,255]},{id:8,label:"plane-8",rgb:[255,45,85]}];function Kf(){try{return"1"===window.localStorage.getItem("neurodyn-room-viewer:debug-mask-export")}catch{return!1}}async function Kg(e,t){var r,n,i;let a,s,o,l,c=await (r=e.planeIds.dataPng,new Promise((e,t)=>{let n=new Image;n.onload=()=>e(n),n.onerror=()=>t(Error("Failed to load room plane id mask image.")),n.crossOrigin="anonymous",n.src=r})),u=e.planeIds.width||c.naturalWidth||c.width,d=e.planeIds.height||c.naturalHeight||c.height,h=document.createElement("canvas"),p=h.getContext("2d",{willReadFrequently:!0});if(!p)throw Error("Failed to prepare room plane mask canvas.");h.width=u,h.height=d,p.drawImage(c,0,0,u,d);let A=p.getImageData(0,0,u,d),f=document.createElement("canvas"),g=f.getContext("2d");if(!g)throw Error("Failed to prepare room debug mask canvas.");f.width=u,f.height=d;for(let e=0;e<u*d;e++){let t=4*e,r=function(e){return KA.find(t=>t.id===e)??{id:e,label:`plane-${e}`,rgb:[73*e%255,151*e%255,211*e%255]}}(A.data[t]??0);A.data[t]=r.rgb[0],A.data[t+1]=r.rgb[1],A.data[t+2]=r.rgb[2],A.data[t+3]=255}g.putImageData(A,0,0),n=await new Promise((e,t)=>{f.toBlob(r=>{r?e(r):t(Error("Failed to export room plane mask image."))},"image/png")}),s=Array.from((a=t.lastIndexOf("."))>0?t.slice(0,a):t).map(e=>{let t=e.charCodeAt(0),r="."===e||"_"===e||"-"===e;return t>=48&&t<=57||t>=65&&t<=90||t>=97&&t<=122||r?e:"-"}).join("").split("-").filter(Boolean).join("-"),i=`${s||"room"}.debug-mask.colors.png`,o=URL.createObjectURL(n),(l=document.createElement("a")).href=o,l.download=i,l.style.display="none",document.body.append(l),l.click(),l.remove(),window.setTimeout(()=>URL.revokeObjectURL(o),1e3)}let Km="custom-interiors";function Kv(){return"u">typeof crypto&&"function"==typeof crypto.randomUUID?`custom-interior-${crypto.randomUUID()}`:`custom-interior-${Date.now()}-${Math.random().toString(36).slice(2)}`}function Kb(){let e="u"<typeof indexedDB?null:indexedDB;return e?new Promise((t,r)=>{let n=e.open("neurodyn-floor-custom-interiors",1);n.onupgradeneeded=()=>{let e=n.result;e.objectStoreNames.contains(Km)||e.createObjectStore(Km,{keyPath:"id"})},n.onerror=()=>r(n.error??Error("Failed to open Custom Interior store.")),n.onsuccess=()=>t(n.result)}):Promise.resolve(null)}async function Ky(e,t,r=new Date){let n=await Kb();if(!n)return null;let i={id:Kv(),schemaVersion:1,name:e.name,fileName:e.name,createdAt:r.toISOString(),imageBlob:e,scene:t};try{let e=n.transaction(Km,"readwrite");return e.objectStore(Km).put(i),await new Promise((t,r)=>{e.oncomplete=()=>t(),e.onerror=()=>r(e.error??Error("Custom Interior transaction failed.")),e.onabort=()=>r(e.error??Error("Custom Interior transaction aborted."))}),i}finally{n.close()}}async function Kw(){let e=await Kb();if(!e)return[];try{return await new Promise((t,r)=>{let n=e.transaction(Km,"readonly").objectStore(Km).getAll();n.onerror=()=>r(n.error??Error("Failed to read Custom Interiors.")),n.onsuccess=()=>{let e=n.result.filter(e=>1===e.schemaVersion).sort((e,t)=>Date.parse(t.createdAt)-Date.parse(e.createdAt));t(e)}})}finally{e.close()}}function Kx(e){let t=[];return{rooms:e.map(e=>{let r=URL.createObjectURL(e.imageBlob);return t.push(r),{id:e.id,name:e.name,image_url:r,scene:e.scene}}),revokeObjectUrls:()=>{for(let e of t)URL.revokeObjectURL(e);t.length=0}}}let KC={placementReady:!1,prepareReady:!1,artifactsReady:!1,assetsReady:!1};function KE(e){let t="dialog"===e?"interior-selection":"scene";return{step:t,hasSceneSelection:"scene"===t,sceneResetKey:0}}function KS(e,t){switch(t.type){case"open-interior-selection":case"return-to-interior-selection":return{...e,step:"interior-selection"};case"dismiss-interior-selection":case"recover-to-scene":return e.hasSceneSelection?{...e,step:"scene"}:e;case"start-custom-interior-processing":return{...e,step:"processing-custom-interior"};case"commit-interior-selection":return{step:"scene",hasSceneSelection:!0,sceneResetKey:e.sceneResetKey+1}}}function KI(e,t){return!e.aborted&&t()}async function KM({abortSignal:e,apiOptions:t,commitCustomInteriorSelection:r,downloadDebugMask:n,file:i,isActive:a,isDebugMaskExportEnabled:s,onDebugMaskError:o,onPersistenceError:l,onProcessingComplete:c,predictRoomScene:u,saveCustomInterior:d,trackRuntimeCustomInterior:h,waitForProcessingCompletion:p}){let A=await u(i,{...t,signal:e});if(!KI(e,a))return null;s()&&n(A,i.name).catch(o);let f=h(i,A);return KI(e,a)&&f&&(d(i,A).catch(l),c(),await p(),KI(e,a))?(r(f),f):null}function KB(){return new Promise(e=>window.setTimeout(e,250))}function Kk(e){console.error("Failed to export room debug mask",e)}function KT(e){console.error("Failed to persist Custom Interior",e)}function KR(e){console.error("Failed to prepare Custom Interior",e)}let KD=[{minimumProgress:0,translationKey:"floor.processing.stages.reading"},{minimumProgress:28,translationKey:"floor.processing.stages.mapping"},{minimumProgress:56,translationKey:"floor.processing.stages.lighting"},{minimumProgress:82,translationKey:"floor.processing.stages.finalizing"},{minimumProgress:100,translationKey:"floor.processing.stages.ready"}];function K_({isComplete:e,open:t,onCloseAnimationEnd:r,onOpenChange:n,portalContainer:i}){let{t:a}=sr(),s=(0,ru.useRef)(t),[o,l]=(0,ru.useState)(8),c=e?100:o,u=function(e){for(let t=KD.length-1;t>=0;t-=1){let r=KD[t];if(r&&e>=r.minimumProgress)return r}return KD[0]}(c);(0,ru.useEffect)(()=>{t&&!s.current&&l(8),s.current=t},[t]),(0,ru.useEffect)(()=>{if(!t||e)return;let r=window.setInterval(()=>{l(e=>Math.min(92,e+Math.max(2,Math.round((92-e)/8))))},650);return()=>window.clearInterval(r)},[e,t]);let d=(0,rh.jsxs)("div",{role:"status","aria-live":"polite",className:"grid content-start gap-4",children:[(0,rh.jsx)("h2",{className:"typo-base-18 font-medium text-text-dark",children:a("floor.processing.title")}),(0,rh.jsxs)("div",{"data-testid":"floor-processing-progress-panel",className:"grid min-h-[97px] min-w-0 content-center gap-2 overflow-hidden rounded-xl bg-background-base px-6 py-8",children:[(0,rh.jsxs)("div",{className:"flex min-w-0 items-center justify-between gap-3",children:[(0,rh.jsx)("span",{className:"typo-base-14 min-w-0 flex-1 truncate text-left font-medium text-text-light",children:a(u.translationKey)}),(0,rh.jsxs)("span",{className:"typo-base-14 shrink-0 font-medium text-text-dark",children:[c,"%"]})]}),(0,rh.jsx)(Wh,{value:c,"aria-label":a("floor.processing.progressLabel"),className:"h-1 bg-background-base-3 [&_[data-slot=progress-indicator]]:bg-button-dark [&_[data-slot=progress-indicator]]:duration-500 [&_[data-slot=progress-indicator]]:ease-out"})]})]});return(0,rh.jsx)(VO,{open:t,onOpenChange:n,children:(0,rh.jsxs)(Vz,{portalContainer:i,showCloseButton:!1,"data-testid":"floor-processing-card",className:"top-auto bottom-2 w-[calc(100%-16px)] !max-w-none translate-y-0 gap-4 overflow-hidden rounded-2xl p-6 text-center sm:top-[50%] sm:bottom-auto sm:w-full sm:!max-w-[377px] sm:translate-y-[-50%] sm:p-6",onInteractOutside:e=>{e.preventDefault()},onAnimationEnd:e=>{e.currentTarget===e.target&&"closed"===e.currentTarget.getAttribute("data-state")&&r?.()},children:[(0,rh.jsx)(VG,{className:"sr-only",children:a("floor.processing.title")}),(0,rh.jsx)(VV,{className:"sr-only",children:a(u.translationKey)}),d]})})}function KP({showDialogCloseButton:e=!1}){var t;let r,{name:n,type:i}=Wx(),{accessError:a,tinuuid:s,material:o,apiKey:l,baseURL:c,hasRooms:u,source:d,widgetSession:h,isViewerAccessPending:p,loadError:A,viewedObject:f}=WE(),{clearActiveError:g,handleAccessError:m}=function(){let{setAccessError:e,setLoadError:t}=WE();return{clearActiveError:(0,ru.useCallback)(()=>{e(null),t(null)},[e,t]),handleAccessError:e}}(),{room:v,sourceRooms:b}=WC(),{containerRef:y,setContainerRef:w,sceneLoad:x,isRoomScenePending:C}=WS(),{dialogPortalContainer:E,viewerSurface:S,viewerDialogOpen:I,onViewerDialogOpenChange:M}=Ww(Wf,"useRoomViewerSurface"),{t:B}=sr(),k=(0,ru.useRef)(null),T=a??A,R=B(`rooms.${v.id}`,{defaultValue:v.name}),D=(t=B("floor.scene.companyFallback"),f?.owner?.name??f?.brand??t),_="rugs"===i?f?.kit?.name??f?.name??o?.name??n:o?.name??f?.name??f?.kit?.name??n,P=(r=o?.previews?.[0],r?.subRes?.small??r?.url??f?.preview?.subRes?.small??f?.preview?.url??f?.mainPreview),L=function({activeError:e,apiKey:t,baseURL:r,clearActiveError:n,closeMaterialSelection:i,handleAccessError:a,hasDialogPortalContainer:s,hasRooms:o,isRoomScenePending:l,isViewerAccessPending:c,material:u,onViewerDialogOpenChange:d,sceneLoad:h,source:p,sourceRooms:A,viewerDialogOpen:f,viewerSurface:g,widgetSession:m}){let v=function(e){let{patchSceneLoad:t,setAngle:r,setRotation:n}=WS();return function(e,t){let[r,n]=(0,ru.useReducer)(KS,e,KE),i=(0,ru.useCallback)(e=>{e(),function({patchSceneLoad:e,setAngle:t,setRotation:r}){t(0),r(0),e(KC)}(t),n({type:"commit-interior-selection"})},[t]),a=(0,ru.useCallback)(()=>{n({type:"dismiss-interior-selection"})},[]),s=(0,ru.useCallback)(()=>{n({type:"open-interior-selection"})},[]),o=(0,ru.useCallback)(()=>{n({type:"recover-to-scene"})},[]),l=(0,ru.useCallback)(()=>{n({type:"return-to-interior-selection"})},[]),c=(0,ru.useCallback)(()=>{n({type:"start-custom-interior-processing"})},[]);return(0,ru.useMemo)(()=>({...r,commitInteriorSelection:i,dismissInteriorSelection:a,openInteriorSelection:s,recoverToScene:o,returnToInteriorSelection:l,startCustomInteriorProcessing:c}),[i,a,s,o,l,c,r])}(e,(0,ru.useMemo)(()=>({patchSceneLoad:t,setAngle:r,setRotation:n}),[t,r,n]))}(g),{appendRuntimeCustomInterior:b,customRooms:y}=function({listCustomInteriors:e}){let{appendRuntimeCustomInterior:t,customRooms:r,replaceRuntimeCustomInteriors:n}=function(){let[e,t]=(0,ru.useState)(()=>[]),r=(0,ru.useRef)(null),n=(0,ru.useCallback)(e=>{r.current?.revokeObjectUrls();let n=Kx(e);return r.current=n,t(n.rooms),n.rooms},[]),i=(0,ru.useCallback)((e,n)=>{let i=Kx([{id:Kv(),schemaVersion:1,name:e.name,fileName:e.name,createdAt:new Date().toISOString(),imageBlob:e,scene:n}]),a=i.rooms[0];if(!a)return i.revokeObjectUrls(),null;let s=r.current;return r.current={rooms:[],revokeObjectUrls:()=>{s?.revokeObjectUrls(),i.revokeObjectUrls()}},t(e=>[a,...e.filter(e=>e.id!==a.id)]),a},[]);return(0,ru.useEffect)(()=>()=>{r.current?.revokeObjectUrls()},[]),(0,ru.useMemo)(()=>({appendRuntimeCustomInterior:i,customRooms:e,replaceRuntimeCustomInteriors:n}),[i,e,n])}(),i=(0,ru.useRef)(!0);(0,ru.useEffect)(()=>(i.current=!0,()=>{i.current=!1}),[]);let a=(0,ru.useCallback)(async()=>{let t=await e();i.current&&n(t)},[e,n]);return(0,ru.useEffect)(()=>{a()},[a]),(0,ru.useMemo)(()=>({appendRuntimeCustomInterior:t,customRooms:r,replaceRuntimeCustomInteriors:n,refreshCustomInteriors:a}),[t,r,a,n])}({listCustomInteriors:Kw}),w=(0,ru.useMemo)(()=>new Set(A.map(e=>e.id)),[A]),{commitCustomInteriorSelection:x,selectInterior:C}=function(e){let{room:t,setRoomId:r,setRooms:n}=WC(),{widgetSession:i}=WE();return function({floorFlow:e,customRooms:t,selectedRoomId:r,onInteriorSelected:n,restoreSourceRooms:i,setRoomId:a,setRooms:s}){let o=(0,ru.useCallback)(t=>{e.commitInteriorSelection(()=>{s(e=>[t,...i(e).filter(e=>e.id!==t.id)]),a(t.id)}),n?.()},[e,n,i,a,s]),l=(0,ru.useCallback)(t=>{let o=t===r;o&&e.hasSceneSelection||(e.commitInteriorSelection(()=>{s(i),a(t)}),o||n?.())},[e,n,i,r,a,s]),c=(0,ru.useCallback)(n=>{if(n===r&&e.hasSceneSelection)return;let i=t.find(e=>e.id===n);i&&o(i)},[e.hasSceneSelection,o,t,r]),u=(0,ru.useCallback)(e=>{t.some(t=>t.id===e)?c(e):l(e)},[t,c,l]);return(0,ru.useMemo)(()=>({commitCustomInteriorSelection:o,selectInterior:u}),[o,u])}({...e,selectedRoomId:t.id,onInteriorSelected:()=>VM(i,"interior_selected"),setRoomId:r,setRooms:n})}({floorFlow:v,customRooms:y,restoreSourceRooms:(0,ru.useCallback)(e=>[...A,...e.filter(e=>!w.has(e.id))],[w,A])}),E=function(e){let{setIsRoomScenePending:t}=WS();return function({apiOptions:e,floorFlow:t,commitCustomInteriorSelection:r,downloadDebugMask:n,isDebugMaskExportEnabled:i,onAccessError:a,onDebugMaskError:s,onPersistenceError:o,onProcessingError:l,predictRoomScene:c,saveCustomInterior:u,setIsRoomScenePending:d,trackRuntimeCustomInterior:h,waitForProcessingCompletion:p}){let[A,f]=(0,ru.useState)(!1),[g,m]=(0,ru.useState)(!1),[v,b]=(0,ru.useState)(null),[y,w]=(0,ru.useState)(null),[x,C]=(0,ru.useState)(!1),[E,S]=(0,ru.useState)(0),I=(0,ru.useRef)(null),M=(0,ru.useRef)(!1),B=(0,ru.useRef)(!0),k=(0,ru.useRef)(v);v&&(k.current=v),(0,ru.useEffect)(()=>(B.current=!0,()=>{B.current=!1,I.current?.abort()}),[]);let T=(0,ru.useCallback)(()=>{b(null),w(null),C(!1)},[]),R=(0,ru.useCallback)(e=>{T(),f(!1),e()},[T]),D=(0,ru.useCallback)(async A=>{if(T(),!A.type.startsWith("image/"))return void f(!0);f(!1),m(!1),t.startCustomInteriorProcessing(),M.current=!0;let g=new AbortController;I.current?.abort(),I.current=g,d(!0);try{await KM({abortSignal:g.signal,apiOptions:e,commitCustomInteriorSelection:r,downloadDebugMask:n,file:A,isActive:()=>B.current,isDebugMaskExportEnabled:i,onDebugMaskError:s,onPersistenceError:o,onProcessingComplete:()=>{m(!0)},predictRoomScene:c,saveCustomInterior:u,trackRuntimeCustomInterior:h,waitForProcessingCompletion:p})}catch(t){if(g.signal.aborted)return;let e=G1(t);if(e){M.current&&C(!0),a(e);return}if(l(t),M.current){w("custom-interior-processing"),C(!0);return}b("custom-interior-processing")}finally{I.current===g&&(I.current=null,B.current&&d(!1))}},[e,t,r,n,i,a,s,o,l,c,T,u,d,h,p]),_=(0,ru.useCallback)(()=>{T(),f(!1),t.returnToInteriorSelection(),S(e=>e+1)},[t,T]),P=(0,ru.useCallback)(()=>{T(),t.returnToInteriorSelection()},[t,T]),L=(0,ru.useCallback)(({clearError:e,closeMaterialSelection:r})=>{e(),r(),t.hasSceneSelection&&t.recoverToScene()},[t]),N=(0,ru.useCallback)(()=>{M.current=!1,C(!1),y&&(b(y),w(null))},[y]),O=(0,ru.useCallback)(()=>B.current,[]);return(0,ru.useMemo)(()=>({displayedUploadError:v??k.current,isCustomInteriorProcessingComplete:g,isInvalidFile:A,isMounted:O,isProcessingDialogClosingForError:x,pendingUploadError:y,uploadError:v,uploadRetryRequestId:E,cancelUploadError:P,handleProcessingDialogCloseAnimationEnd:N,openInteriorSelection:R,processUploadFile:D,recoverFromActiveError:L,resetUploadErrorPresentation:T,tryUploadAgain:_}),[P,N,g,A,O,x,R,y,D,L,T,_,v,E])}({...e,setIsRoomScenePending:t})}({apiOptions:(0,ru.useMemo)(()=>({apiKey:t,baseURL:r,source:p,widgetSession:m}),[t,r,p,m]),floorFlow:v,commitCustomInteriorSelection:x,downloadDebugMask:Kg,isDebugMaskExportEnabled:Kf,onAccessError:a,onDebugMaskError:Kk,onPersistenceError:KT,onProcessingError:KR,predictRoomScene:Kp,saveCustomInterior:Ky,trackRuntimeCustomInterior:b,waitForProcessingCompletion:KB}),{dismissInteriorSelection:S,hasSceneSelection:I,openInteriorSelection:M,sceneResetKey:B,step:k}=v,{cancelUploadError:T,displayedUploadError:R,handleProcessingDialogCloseAnimationEnd:D,isCustomInteriorProcessingComplete:_,isInvalidFile:P,isProcessingDialogClosingForError:L,openInteriorSelection:N,pendingUploadError:O,processUploadFile:F,recoverFromActiveError:Q,resetUploadErrorPresentation:U,tryUploadAgain:z,uploadError:H,uploadRetryRequestId:j}=E,G=o&&I,V=(0,ru.useRef)(e),W=!!(e&&G&&u);e&&(V.current=e);let q=(0,ru.useCallback)(()=>{G&&(U(),S())},[S,G,U]),K=(0,ru.useCallback)(()=>{i(),N(M)},[i,M,N]),Y=(0,ru.useCallback)(()=>{Q({clearError:n,closeMaterialSelection:i})},[n,i,Q]),J=(0,ru.useCallback)(e=>{if(!e){if(G)return void q();d?.(!1)}},[q,G,d]),X=(0,ru.useCallback)(e=>{if(!e){if(W)return void Y();d?.(!1)}},[W,Y,d]),Z=(0,ru.useCallback)(e=>{e||T()},[T]);!function({fallbackMs:e,handleProcessingDialogCloseAnimationEnd:t,isProcessingDialogClosingForError:r}){(0,ru.useEffect)(()=>{if(!r)return;let n=window.setTimeout(t,e);return()=>window.clearTimeout(n)},[e,t,r])}({fallbackMs:220,handleProcessingDialogCloseAnimationEnd:D,isProcessingDialogClosingForError:L});let $=function({activeError:e,canRecoverFromActiveError:t,floorFlow:r,hasDialogPortalContainer:n,hasRooms:i,isProcessingDialogClosingForError:a,isRoomScenePending:s,isViewerAccessPending:o,pendingUploadError:l,sceneLoad:c,uploadError:u,viewerDialogOpen:d,viewerSurface:h}){let p="dialog"===h&&n,A=!p||d,f=i&&r.hasSceneSelection,g=i||"scene"!==r.step?r.step:"interior-selection",m=!o&&f&&(!e||t),v=f||p,b=!o&&!e&&v,y=!o&&!e&&!v&&"interior-selection"===g;return{activeErrorDialog:{open:!a&&!!e&&A,showCloseButton:!t},interiorSelection:{open:b&&"interior-selection"===g&&A,presentation:b?"dialog":y?"screen":null,shouldRender:b||y},processingDialog:{open:!e&&!u&&!l&&s&&"processing-custom-interior"===r.step&&A},scene:{isLoading:s||!Object.values(c).every(Boolean),resetKey:r.sceneResetKey,shouldRender:m,shouldRenderDialog:m},surface:{usesSiblingDialogFlow:p},uploadErrorDialog:{open:!a&&!e&&!!u&&A}}}({activeError:e,canRecoverFromActiveError:W,floorFlow:{hasSceneSelection:I,sceneResetKey:B,step:k},hasDialogPortalContainer:s,hasRooms:o,isProcessingDialogClosingForError:L,isRoomScenePending:l,isViewerAccessPending:c,pendingUploadError:O,sceneLoad:h,uploadError:H,viewerDialogOpen:f,viewerSurface:g});return{...$,activeErrorDialog:{...$.activeErrorDialog,onCancel:W?Y:void 0,onOpenChange:X,onTryAgain:W?Y:void 0,variant:e??V.current},customRooms:y,interiorSelection:{...$.interiorSelection,isInvalidFile:P,onOpenChange:J,onSelectRoom:C,onUploadFile:F,openFromScene:K,uploadRetryRequestId:j},sourceRooms:A,processingDialog:{...$.processingDialog,isComplete:_,onCloseAnimationEnd:D,onOpenChange:$.surface.usesSiblingDialogFlow?d:void 0},step:k,uploadErrorDialog:{...$.uploadErrorDialog,onCancel:T,onOpenChange:Z,onTryAgain:z,variant:R}}}({activeError:T,apiKey:l,baseURL:c,clearActiveError:g,closeMaterialSelection:(0,ru.useCallback)(()=>{k.current?.closeMaterialSelection()},[]),handleAccessError:m,hasDialogPortalContainer:null!==E,hasRooms:u,isRoomScenePending:C,isViewerAccessPending:p,material:o,onViewerDialogOpenChange:M,sceneLoad:x,source:d,sourceRooms:b,viewerDialogOpen:I,viewerSurface:S,widgetSession:h}),N=L.surface.usesSiblingDialogFlow?E:y,O=L.interiorSelection.shouldRender?"dialog"===L.interiorSelection.presentation?(0,rh.jsx)(Kh,{open:L.interiorSelection.open,portalContainer:N,rooms:L.sourceRooms,customRooms:L.customRooms,selectedRoomId:v.id,isInvalidFile:L.interiorSelection.isInvalidFile,uploadRetryRequestId:L.interiorSelection.uploadRetryRequestId,onOpenChange:L.interiorSelection.onOpenChange,onSelectRoom:L.interiorSelection.onSelectRoom,onUploadFile:L.interiorSelection.onUploadFile}):"screen"===L.interiorSelection.presentation?(0,rh.jsx)(Kd,{rooms:L.sourceRooms,customRooms:L.customRooms,selectedRoomId:v.id,isInvalidFile:L.interiorSelection.isInvalidFile,uploadRetryRequestId:L.interiorSelection.uploadRetryRequestId,showCloseButton:e,onSelectRoom:L.interiorSelection.onSelectRoom,onUploadFile:L.interiorSelection.onUploadFile}):null:null,F=(0,rh.jsx)(K_,{isComplete:L.processingDialog.isComplete,open:L.processingDialog.open,portalContainer:N,onCloseAnimationEnd:L.processingDialog.onCloseAnimationEnd,onOpenChange:L.processingDialog.onOpenChange}),Q=(0,rh.jsxs)(rh.Fragment,{children:[(0,rh.jsx)(W_,{variant:L.activeErrorDialog.variant,open:L.activeErrorDialog.open,portalContainer:N,showDialogCloseButton:e&&L.activeErrorDialog.showCloseButton,onOpenChange:L.activeErrorDialog.onOpenChange,onTryAgain:L.activeErrorDialog.onTryAgain,onCancel:L.activeErrorDialog.onCancel}),(0,rh.jsx)(W_,{variant:L.uploadErrorDialog.variant,open:L.uploadErrorDialog.open,portalContainer:N,onOpenChange:L.uploadErrorDialog.onOpenChange,onTryAgain:L.uploadErrorDialog.onTryAgain,onCancel:L.uploadErrorDialog.onCancel})]}),U=(0,rh.jsxs)("div",{ref:w,className:"relative grid size-full grid-rows-[minmax(0,1fr)_auto] overflow-hidden text-foreground sm:block","data-testid":"floor-viewer-root",children:[p?(0,rh.jsx)("div",{className:"flex size-full items-center justify-center bg-radial from-background-containers to-background-base-2",children:(0,rh.jsx)(V8,{variant:"logo"})}):L.scene.shouldRender?(0,rh.jsx)(Kc,{ref:k,actions:{openInteriorSelection:L.interiorSelection.openFromScene},canShowAr:!!s&&!(WR&&WD),companyName:D,hasActiveError:!!T,material:{name:_,previewUrl:P},portalContainer:N,room:{imageUrl:v.image_url,name:R},scene:{isLoading:L.scene.isLoading,resetKey:L.scene.resetKey},showDialogCloseButton:e}):null,!L.surface.usesSiblingDialogFlow&&O,!L.surface.usesSiblingDialogFlow&&F]});return L.surface.usesSiblingDialogFlow?(0,rh.jsxs)(rh.Fragment,{children:[(L.scene.shouldRenderDialog||p)&&(0,rh.jsx)(VO,{open:I,onOpenChange:M,children:(0,rh.jsxs)(Vz,{className:Wp,contentInsideOverlay:!0,portalContainer:E,showCloseButton:!1,onInteractOutside:e=>{e.preventDefault()},children:[(0,rh.jsx)(VG,{className:"sr-only",children:n}),(0,rh.jsx)(VV,{className:"sr-only"}),U]})}),O,F,Q]}):(0,rh.jsxs)(rh.Fragment,{children:[U,Q]})}function KL({className:e,...t}){return(0,rh.jsx)(jj,{"data-slot":"radio-group",className:VP("grid gap-3",e),...t})}function KN({checked:e,className:t,...r}){return(0,rh.jsx)("div",{className:VP("absolute top-1/2 left-1/2 size-6 -translate-x-1/2 -translate-y-1/2","flex items-center justify-center rounded-full",e?"bg-lime-400":"bg-background-base-2",t),...r,children:(0,rh.jsx)(c6,{className:"text-constant-white size-3.5",strokeWidth:4})})}function KO({className:e,variant:t="default",...r}){return(0,rh.jsxs)(jV,{"data-slot":"radio-group-item",className:VP("border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50","check"===t&&"size-6","inverted"===t&&"size-5 border-button-outline data-[state=checked]:border-border-red data-[state=checked]:border-4 data-[state=checked]:bg-constant-white cursor-pointer transition-all",e),...r,children:["check"===t&&(0,rh.jsx)("div",{className:"relative",children:(0,rh.jsx)(KN,{})}),"inverted"!==t&&(0,rh.jsx)(jW,{"data-slot":"radio-group-indicator",className:"relative flex items-center justify-center",children:"check"===t?(0,rh.jsx)(KN,{checked:!0}):(0,rh.jsx)(c7,{className:"fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2"})})]})}function KF({className:e,children:t,...r}){let{className:n,onReachEnd:i,...a}=r.swiperOptions??{},{t:s}=sr(),[o,l]=(0,ru.useState)(null),[c,u]=(0,ru.useState)(!0),[d,h]=(0,ru.useState)(!1),[p,A]=(0,ru.useState)(!1),f=(0,ru.useCallback)(e=>{u(e.isBeginning),h(e.isEnd),A(e.isLocked)},[]),g=(0,ru.useCallback)(e=>{l(e),f(e)},[f]),m=(0,ru.useCallback)(e=>{h(!0),i?.(e)},[i]);return(0,rh.jsxs)("div",{className:VP("relative w-full overflow-hidden",e),children:[(0,rh.jsx)(GF,{className:VP("w-full py-5",n),slidesPerView:"auto",slidesPerGroup:2,onSwiper:g,onReachBeginning:()=>u(!0),onReachEnd:m,onFromEdge:f,onLock:()=>A(!0),onUnlock:()=>A(!1),onResize:f,slidesOffsetBefore:24,slidesOffsetAfter:24,spaceBetween:12,...a,children:t}),(0,rh.jsxs)(VN,{className:VP("absolute top-1/2 left-8 -translate-y-1/2 z-1",{hidden:c||p}),variant:"contrast",size:"icon",onClick:()=>o?.slidePrev(),children:[(0,rh.jsx)(ue,{}),(0,rh.jsx)("span",{className:"sr-only",children:s("previousSlide")})]}),(0,rh.jsxs)(VN,{className:VP("absolute top-1/2 right-8 -translate-y-1/2 z-1",{hidden:d||p}),variant:"contrast",size:"icon",onClick:()=>o?.slideNext(),children:[(0,rh.jsx)(ut,{}),(0,rh.jsx)("span",{className:"sr-only",children:s("nextSlide")})]})]})}function KQ({className:e,...t}){let r=W9("(max-width: 640px)"),{fetchNextMaterialsPage:n,materialItems:i,selectMaterial:a,selectedMaterialId:s}=qb(),o=(0,ru.useCallback)(()=>{n()},[n]);return 0===i.length?null:(0,rh.jsxs)(rh.Fragment,{children:[!r&&(0,rh.jsx)(WK,{orientation:"vertical"}),(0,rh.jsx)("div",{className:VP(e),...t,children:(0,rh.jsx)(KL,{value:s||void 0,onValueChange:e=>{a(e)},children:(0,rh.jsx)(KF,{swiperOptions:{onReachEnd:o,className:"py-2 sm:py-5"},children:i.map(({materialId:e,material:t,tinuuid:n})=>(0,rh.jsx)(GQ,{className:VP("sm:w-25! w-18! transition-transform duration-200",e!==s&&"hover:scale-110"),children:(0,rh.jsxs)(WZ,{htmlFor:`material-${e}`,className:"size-full flex flex-col gap-1 has-data-[state=checked]:bg-transparent",children:[(0,rh.jsxs)("div",{className:"size-full relative sm:h-19 h-13 rounded-[0.75rem] overflow-hidden grid place-items-center sm:block",children:[(0,rh.jsx)("img",{src:t.previews?.[0]?.subRes?.small??t.previews?.[0]?.url,alt:t.name??"",className:"size-full object-cover"}),(0,rh.jsx)(KO,{value:e,id:`material-${e}`,variant:"check",className:VP("absolute sm:top-1.75 sm:right-1.75",{"sr-only":e!==s})})]}),!r&&(0,rh.jsx)("span",{className:VP("block w-full text-xs text-left text-text-light truncate",{"text-text-dark":e===s}),children:t.name})]})},`${n}-${e}`))})})})]})}function KU({className:e,...t}){let{t:r}=sr(),{placement:n}=Wx(),{rooms:i,room:a,setRoomId:s}=WC(),{isRoomScenePending:o,selectCustomRoomFile:l}=Ww(Wy,"useRoomViewerCustomRoomIntake"),c=W9("(max-width: 640px)"),u=(0,ru.useId)(),d=(0,ru.useCallback)((e,t)=>r(`rooms.${t}`,{defaultValue:e}),[r]),h=(0,ru.useCallback)(async e=>{let t=e.target.files?.[0];e.target.value="",t&&await l(t)},[l]);return(0,rh.jsx)("div",{className:VP(e),...t,children:(0,rh.jsx)(KL,{value:a.id,onValueChange:s,children:(0,rh.jsxs)(KF,{swiperOptions:{className:"py-2 sm:py-5 pb-3 sm:pb-5"},children:[(0,rh.jsx)(GQ,{className:"sm:w-25! w-21! h-auto",children:(0,rh.jsxs)(WZ,{htmlFor:u,className:VP("flex size-full cursor-pointer items-center justify-center rounded-[0.75rem] border border-dashed border-muted-foreground/40 bg-transparent px-2 text-center text-xs leading-tight text-muted-foreground transition-colors hover:border-foreground/40 hover:text-foreground",o&&"cursor-wait opacity-80"),"aria-disabled":o,children:[o?(0,rh.jsxs)(rh.Fragment,{children:[(0,rh.jsx)(V8,{className:"size-5"}),(0,rh.jsx)("span",{className:"sr-only",children:r("uploadOwnPhoto")})]}):r("uploadOwnPhoto"),(0,rh.jsx)("input",{id:u,type:"file",accept:"image/*",className:"sr-only",disabled:o,onChange:h})]})}),i.map(e=>(0,rh.jsx)(GQ,{className:VP("sm:w-25! w-21! transition-transform duration-200",e.id!==a.id&&"hover:scale-110"),children:(0,rh.jsxs)(WZ,{htmlFor:`room-${e.id}`,className:"size-full flex flex-col gap-1 has-data-[state=checked]:bg-transparent",children:[(0,rh.jsxs)("div",{className:"size-full relative h-17 sm:h-19 rounded-[0.75rem] overflow-hidden",children:[(0,rh.jsx)("img",{src:e.image_url,alt:d(e.name,e.id),className:"size-full object-cover",crossOrigin:"anonymous"}),(0,rh.jsx)(KO,{value:e.id,id:`room-${e.id}`,variant:"check",className:VP("absolute top-1.75 right-1.75",{"sr-only":e.id!==a.id})})]}),"floor"===n&&!c&&(0,rh.jsx)("span",{className:VP("block w-full text-xs text-left text-text-light truncate",{"text-text-dark":e.id===a.id}),children:d(e.name,e.id)})]})},e.id))]})})})}function Kz({className:e,...t}){let{placement:r}=Wx();return(0,rh.jsxs)("div",{className:VP("flex sm:items-end pl-0 overflow-hidden sm:flex-row flex-col py-3 sm:py-0",e),...t,children:[(0,rh.jsx)(KU,{className:VP("shrink-0",{"sm:min-w-148.5 min-w-full":"floor"===r,grow:"wall"===r})}),"wall"===r&&(0,rh.jsxs)("div",{className:"hidden gap-5 pr-6 pb-5 md:flex",children:[(0,rh.jsx)(qy,{}),(0,rh.jsx)(qk,{})]}),"floor"===r&&(0,rh.jsx)(KQ,{})]})}function KH({className:e,...t}){let{name:r}=Wx();return(0,rh.jsx)("div",{className:VP("h-16 flex items-center px-6",e),...t,children:(0,rh.jsx)("div",{className:"truncate",children:r})})}function Kj({variant:e,showDialogCloseButton:t=!1}){let{t:r}=sr();return(0,rh.jsxs)("div",{className:"flex size-full flex-col items-center justify-center gap-4 bg-radial from-background-containers to-background-base-2 p-4 text-center",children:[(0,rh.jsx)(VW,{className:"size-8 text-icons-light"}),(0,rh.jsx)("h2",{className:"typo-base-16 font-medium text-text-dark",children:r(`accessError.${e}`)}),t&&(0,rh.jsx)(VQ,{asChild:!0,children:(0,rh.jsx)(VN,{variant:"secondary",children:r("close")})})]})}function KG({showDialogCloseButton:e=!1}){let{placement:t}=Wx(),{isViewerAccessPending:r,accessError:n,hasRooms:i}=WE(),{setContainerRef:a,sceneLoad:s,isRoomScenePending:o}=WS(),{t:l}=sr(),c=r||o||i&&!Object.values(s).every(Boolean);return"floor"===t?(0,rh.jsx)(KP,{showDialogCloseButton:e}):n?(0,rh.jsx)("div",{ref:a,className:"relative size-full overflow-hidden bg-radial from-background-containers to-background-base-2 text-foreground",children:(0,rh.jsx)(Kj,{variant:n,showDialogCloseButton:e})}):(0,rh.jsxs)("div",{ref:a,className:"relative size-full bg-radial from-background-containers to-background-base-2 text-foreground overflow-hidden",children:[e&&(0,rh.jsx)(VQ,{asChild:!0,children:(0,rh.jsxs)(VN,{className:"absolute top-3 right-6 z-20",variant:"secondary",children:[l("close"),(0,rh.jsx)(c9,{})]})}),!r&&(i?(0,rh.jsxs)(rh.Fragment,{children:[(0,rh.jsx)(KH,{className:"absolute top-0 right-0 left-0 z-15"}),(0,rh.jsxs)("div",{className:"size-full max-w-full grid grid-rows-[1fr_auto]",children:[(0,rh.jsx)(Kn,{className:"size-full min-h-0"}),(0,rh.jsx)(Kz,{className:"bg-background"})]})]}):(0,rh.jsx)(KU,{className:"absolute inset-x-0 bottom-0 bg-background"})),(0,rh.jsx)("div",{"aria-hidden":!c,className:VP("absolute inset-0 z-10 flex items-center justify-center bg-radial from-background-containers to-background-base-2 transition-opacity",c?"opacity-100 pointer-events-auto duration-0":"opacity-0 pointer-events-none duration-250ms"),children:(0,rh.jsx)(V8,{variant:"logo"})})]})}let KV={poster:"wallart",carpet:"rugs"},KW={wallart:"wall",rugs:"floor",flooring:"floor"};function Kq(e){return"poster"===e||"carpet"===e?KV[e]:e}let KK=0,KY=[];function KJ(e,t,r){if(t===r)return e;let n=new Set(t.map(e=>e.id)),i=new Set(r.map(e=>e.id)),a=e.filter(e=>!n.has(e.id)&&!i.has(e.id));return a.length>0?[...a,...r]:r}function KX({children:e,src:t,tinuuid:r,type:n,viewerSurface:i,dialogPortalContainer:a=null,viewerDialogOpen:s=!0,onViewerDialogOpenChange:o,width:l,height:c,displayUnit:u,name:d,apiKey:h,baseURL:p,source:A,externalWidgetSession:f}){var g;let m=function(){let{t:e}=sr();return(0,ru.useMemo)(()=>[{value:.025,label:`2.5 ${e("units.cm")}`},{value:.05,label:`5 ${e("units.cm")}`}],[e])}(),v=qB(u),b=KW[n],y="floor"===b?qu:qc,w=G$({apiKey:h,baseURL:p,source:A}),[x,C]=(0,ru.useState)(r),[E,S]=(0,ru.useState)(null),[I,M]=(0,ru.useState)(m[0].value),[B,k]=(0,ru.useState)(v[0].value),[T,R]=(0,ru.useState)(0),[D,_]=(0,ru.useState)(0),[P,L]=(0,ru.useState)(!1),[N,O]=(0,ru.useState)(null),[F,Q]=(0,ru.useState)(()=>({layoutReady:!1,placementReady:!1,materialReady:!1,artifactsReady:!1,assetsReady:!1,prepareReady:!1})),[U,z]=(0,ru.useState)(!1),[H,j]=(0,ru.useState)(null),[G,V]=(0,ru.useState)(null),W=(0,ru.useRef)(null),q=(0,ru.useRef)(new Set),K=(0,ru.useRef)(null),Y=(0,ru.useRef)(!0),J=(0,ru.useRef)(!1),X="floor"===b,Z="default"===A&&void 0!==h,$=s4({queryKey:["room-viewer","activate",{apiKey:h??null,source:A}],enabled:Z,queryFn:({signal:e})=>Vl({productType:G0({apiKey:h,baseURL:p,source:A})},{baseURL:p,headers:{"x-api-key":h},signal:e})},sG,void 0),ee=G1($.error),et=(0,ru.useMemo)(()=>{let e=$.data;return VI(e?.widgetSession,{apiConfig:{baseURL:p,headers:{"x-api-key":h}}})},[$.data,h,p]),er=(0,ru.useMemo)(()=>f instanceof VS?f:VI(f,{apiConfig:{baseURL:p,headers:{"x-api-key":h}}})??et,[et,h,p,f]),en="shopify"===A?null!==er:Z&&$.isSuccess,ei=s4({queryKey:["room-viewer","rooms",{apiKey:(g={apiKey:h,baseURL:p,source:A,widgetSession:er}).apiKey??null,source:g.source,widgetSessionId:g.widgetSession?.sid??null}],enabled:w&&en,queryFn:async({signal:e})=>{try{return await V_({apiKey:h,baseURL:p,signal:e,source:A,widgetSession:er})}catch(e){if(G1(e))throw e;return[]}}},sG,void 0),ea=w?ei.data??KY:y,[es,eo]=(0,ru.useState)(()=>({rooms:ea,sourceRooms:ea})),el=(0,ru.useMemo)(()=>KJ(es.rooms,es.sourceRooms,ea),[es.rooms,es.sourceRooms,ea]),ec=(0,ru.useCallback)(e=>{eo(t=>{let r=KJ(t.rooms,t.sourceRooms,ea);return{rooms:"function"==typeof e?e(r):e,sourceRooms:ea}})},[ea]),[eu,ed]=(0,ru.useState)(()=>y[0].id),eh=el.find(e=>e.id===eu),ep=eh??el[0]??y[0],eA=el.length>0;!eh&&el[0]&&eu!==el[0].id&&ed(el[0].id);let ef=s4({queryKey:Vk(r??void 0,{apiKey:h,baseURL:p,source:A}),enabled:(!Z||$.isSuccess||$.isError&&null===ee)&&X&&null===E&&!!r,queryFn:async({signal:e})=>{if(!r)throw Error("Tinuuid is required.");return VT(r,{apiKey:h,baseURL:p,signal:e,source:A,widgetSession:er})}},sG,void 0),eg=ef.data??null,em=E?.native?.glbUrl??null,ev=G1(ef.error),eb=G1(ei.error),ey=w&&("shopify"===A?null===er||ei.isLoading:$.isSuccess&&ei.isLoading),ew=Z&&$.isLoading||ey,ex=$.error&&null===ee?"viewer-load-failed":null,eC=ef.error&&null===ev?"viewer-load-failed":null,eE=H??ee??eb??ev,eS=G??ex??eC,eI=(0,ru.useCallback)(e=>{Q(t=>Object.assign({},t,e))},[]);(0,ru.useEffect)(()=>{let e=new Set(el.map(e=>e.image_url));for(let t of Array.from(q.current))e.has(t)||(URL.revokeObjectURL(t),q.current.delete(t))},[el]),(0,ru.useEffect)(()=>{let e=q.current;return Y.current=!0,()=>{for(let t of(Y.current=!1,K.current?.abort(),Array.from(e)))URL.revokeObjectURL(t);e.clear()}},[]);let eM=(0,ru.useCallback)(async e=>{let t=null,r=new AbortController;K.current?.abort(),K.current=r,z(!0);try{t=URL.createObjectURL(e);let n=await Kp(e,{apiKey:h,baseURL:p,source:A,signal:r.signal,widgetSession:er});if(r.signal.aborted||!Y.current)return void URL.revokeObjectURL(t);Kf()&&Kg(n,e.name).catch(e=>{console.error("Failed to export room debug mask",e)});let i={id:(KK+=1,`room-custom-${KK}`),name:e.name,image_url:t,scene:n};q.current.add(t),eI({placementReady:!1,prepareReady:!1,artifactsReady:!1,assetsReady:!1}),ec(e=>[i,...e]),ed(i.id)}catch(n){if(t&&URL.revokeObjectURL(t),r.signal.aborted)return;let e=G1(n);if(e)return void j(e);console.error("Failed to prepare custom room scene",n)}finally{K.current===r&&(K.current=null,Y.current&&z(!1))}},[h,p,eI,ec,A,er]);(0,ru.useEffect)(()=>{if("dialog"!==i||!s){J.current=!1;return}J.current||er&&(VM(er,"widget_opened"),J.current=!0)},[s,i,er]),(0,ru.useEffect)(()=>{X&&(C(r),S(null),j(null),V(null))},[r,X]),(0,ru.useEffect)(()=>{j(null),V(null)},[h,A]),(0,ru.useEffect)(()=>{X&&eg&&null===E&&S(eg.materials?.[0]??null)},[E,eg,X]);let eB=(0,ru.useMemo)(()=>({type:n,placement:b,name:d,width:l,height:c,displayUnit:u}),[n,b,d,l,c,u]),ek=(0,ru.useMemo)(()=>({viewerSurface:i,dialogPortalContainer:a,viewerDialogOpen:s,onViewerDialogOpenChange:o}),[i,a,s,o]),eT=(0,ru.useMemo)(()=>({rooms:el,sourceRooms:ea,setRooms:ec,room:ep,setRoomId:ed}),[el,ep,ec,ea]),eR=(0,ru.useMemo)(()=>({src:t,glbUrl:em,tinuuid:x,viewedObject:eg,material:E,setTinuuid:C,setMaterial:S,apiKey:h,baseURL:p,source:A,widgetSession:er,hasRooms:eA,isViewerAccessPending:ew,accessError:eE,setAccessError:j,loadError:eS,setLoadError:V}),[t,em,x,eg,E,h,p,A,er,eA,ew,eE,eS]),eD=(0,ru.useMemo)(()=>({containerRef:N,setContainerRef:O,resourceRef:W,angle:T,setAngle:R,rotation:D,setRotation:_,isDragging:P,setIsDragging:L,sceneLoad:F,patchSceneLoad:eI,isRoomScenePending:U,setIsRoomScenePending:z}),[N,T,D,P,F,eI,U]),e_=(0,ru.useMemo)(()=>({frameWidth:I,setFrameWidth:M,matting:B,setMatting:k}),[I,B]),eP=(0,ru.useMemo)(()=>({isRoomScenePending:U,selectCustomRoomFile:eM}),[U,eM]);return(0,rh.jsx)(WA,{value:eB,children:(0,rh.jsx)(Wf,{value:ek,children:(0,rh.jsx)(Wg,{value:eT,children:(0,rh.jsx)(Wm,{value:eR,children:(0,rh.jsx)(Wv,{value:eD,children:(0,rh.jsx)(Wb,{value:e_,children:(0,rh.jsx)(Wy,{value:eP,children:e})})})})})})})}let KZ=new rc({defaultOptions:{queries:{gcTime:1/0,refetchOnMount:!1,refetchOnReconnect:!1,refetchOnWindowFocus:!1,retry:(e,t)=>{let r=function(e){if(ic(e))return e.response?.status}(t);return(void 0===r||!(r>=400)||!(r<500))&&e<2}}}});function K$({type:e,src:t,tinuuid:r,name:n,height:i,width:a,language:s,dimensionUnit:o="m",displayUnit:l="cm",apiKey:c,source:u="default",showDialogCloseButton:d=!1,viewerSurface:h="inline",dialogPortalContainer:p=null,viewerDialogOpen:A=!0,onViewerDialogOpenChange:f,widgetSession:g}){let{i18n:m}=sr(),v=c?.trim()||void 0,b=Kq(e),y="wall"===KW[b]?function(e,t,r="m"){return{width:WH(e??0,r),height:WH(t??0,r)}}(a,i,o):null;return(0,ru.useEffect)(()=>{},[e]),(0,ru.useEffect)(()=>{"string"==typeof s&&m.changeLanguage(s)},[m,s]),(0,rh.jsx)(rf,{client:KZ,children:(0,rh.jsx)(KX,{src:t??null,tinuuid:r??null,type:b,viewerSurface:h,dialogPortalContainer:p,viewerDialogOpen:A,onViewerDialogOpenChange:f,name:n,width:y?.width??0,height:y?.height??0,displayUnit:l,apiKey:v,baseURL:"shopify"===u?GZ:void 0,source:u,externalWidgetSession:g,children:(0,rh.jsx)(KG,{showDialogCloseButton:d})})})}function K0({type:e,src:t,tinuuid:r,width:n,height:i,dimensionUnit:a,displayUnit:s,name:o,language:l,apiKey:c,source:u,widgetSession:d,open:h,defaultOpen:p,onOpenChange:A,...f}){let[g,m]=(0,ru.useState)(null),v=KW[Kq(e)],[b,y]=(0,ru.useState)(p??!1),w=h??b,[x,C]=(0,ru.useState)(w),E=w||x;(0,ru.useEffect)(()=>{w&&C(!0)},[w]);let S=(0,rh.jsx)(K$,{type:e,src:t,tinuuid:r,name:o,height:i,width:n,dimensionUnit:a,displayUnit:s,language:l,apiKey:c,source:u,widgetSession:d,showDialogCloseButton:!0,viewerSurface:"dialog",dialogPortalContainer:g,viewerDialogOpen:w,onViewerDialogOpenChange:function(e){void 0===h&&y(e),A?.(e)}});return(0,rh.jsxs)(rh.Fragment,{children:[(0,aa.createPortal)((0,rh.jsx)("style",{children:GV.A}),document.head),(0,aa.createPortal)((0,rh.jsxs)(sx.div,{style:{display:"block",letterSpacing:"normal",zIndex:0x7fffffff},children:[(0,rh.jsx)("style",{children:GJ}),(0,rh.jsx)("div",{ref:m}),g&&(0,rh.jsx)(GG,{root:g,storageKey:"neurodyn-theme",defaultTheme:"light",children:(0,rh.jsx)(sn,{i18n:Gq,children:"floor"===v?E&&S:(0,rh.jsx)(VO,{...f,open:h,defaultOpen:p,onOpenChange:A,children:(0,rh.jsxs)(Vz,{className:Wp,contentInsideOverlay:!0,portalContainer:g,showCloseButton:!1,onInteractOutside:e=>{e.preventDefault()},children:[(0,rh.jsxs)(VH,{className:"sr-only",children:[(0,rh.jsx)(VG,{children:o}),(0,rh.jsx)(VV,{})]}),S]})})})})]}),document.body)]})}Vm({baseURL:"https://api.neurodyn.ai/v1/"}),Vn({baseURL:"https://api.neurodyn.ai/"});let K1=iM({clientName:"API node client",configureFunctionName:"configureNodeApiClient",defaultBaseURL:"https://api.vizbl.com"});K1.configureClientRuntime,K1.configureAccessTokenResolverRuntime,K1.configureHeadersResolverRuntime,K1.configureUnauthorizedHandlerRuntime,K1.isClientConfiguredRuntime,K1.assertClientConfiguredRuntime,K1.resetClientForTestsRuntime;let K2=K1.requestRuntime;async function K3(e){return K2(e)}async function K4(e,t={}){let{client:r=K3,...n}=t;return(await r({method:"POST",url:"/public/widget/activate-wallart",params:e,...n})).data}K1.requestWithoutUnauthorizedRecovery,K1.addResponseInterceptorRuntime,(eQ=tw||(tw={})).assertEqual=e=>{},eQ.assertIs=function(e){},eQ.assertNever=function(e){throw Error()},eQ.arrayToEnum=e=>{let t={};for(let r of e)t[r]=r;return t},eQ.getValidEnumValues=e=>{let t=eQ.objectKeys(e).filter(t=>"number"!=typeof e[e[t]]),r={};for(let n of t)r[n]=e[n];return eQ.objectValues(r)},eQ.objectValues=e=>eQ.objectKeys(e).map(function(t){return e[t]}),eQ.objectKeys="function"==typeof Object.keys?e=>Object.keys(e):e=>{let t=[];for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.push(r);return t},eQ.find=(e,t)=>{for(let r of e)if(t(r))return r},eQ.isInteger="function"==typeof Number.isInteger?e=>Number.isInteger(e):e=>"number"==typeof e&&Number.isFinite(e)&&Math.floor(e)===e,eQ.joinValues=function(e,t=" | "){return e.map(e=>"string"==typeof e?`'${e}'`:e).join(t)},eQ.jsonStringifyReplacer=(e,t)=>"bigint"==typeof t?t.toString():t,(tx||(tx={})).mergeShapes=(e,t)=>({...e,...t});let K9=tw.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),K5=e=>{switch(typeof e){case"undefined":return K9.undefined;case"string":return K9.string;case"number":return Number.isNaN(e)?K9.nan:K9.number;case"boolean":return K9.boolean;case"function":return K9.function;case"bigint":return K9.bigint;case"symbol":return K9.symbol;case"object":if(Array.isArray(e))return K9.array;if(null===e)return K9.null;if(e.then&&"function"==typeof e.then&&e.catch&&"function"==typeof e.catch)return K9.promise;if("u">typeof Map&&e instanceof Map)return K9.map;if("u">typeof Set&&e instanceof Set)return K9.set;if("u">typeof Date&&e instanceof Date)return K9.date;return K9.object;default:return K9.unknown}},K8=tw.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class K6 extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=e=>{this.issues=[...this.issues,e]},this.addIssues=(e=[])=>{this.issues=[...this.issues,...e]};const t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}format(e){let t=e||function(e){return e.message},r={_errors:[]},n=e=>{for(let i of e.issues)if("invalid_union"===i.code)i.unionErrors.map(n);else if("invalid_return_type"===i.code)n(i.returnTypeError);else if("invalid_arguments"===i.code)n(i.argumentsError);else if(0===i.path.length)r._errors.push(t(i));else{let e=r,n=0;for(;n<i.path.length;){let r=i.path[n];n===i.path.length-1?(e[r]=e[r]||{_errors:[]},e[r]._errors.push(t(i))):e[r]=e[r]||{_errors:[]},e=e[r],n++}}};return n(this),r}static assert(e){if(!(e instanceof K6))throw Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,tw.jsonStringifyReplacer,2)}get isEmpty(){return 0===this.issues.length}flatten(e=e=>e.message){let t={},r=[];for(let n of this.issues)if(n.path.length>0){let r=n.path[0];t[r]=t[r]||[],t[r].push(e(n))}else r.push(e(n));return{formErrors:r,fieldErrors:t}}get formErrors(){return this.flatten()}}K6.create=e=>new K6(e);let K7=(e,t)=>{let r;switch(e.code){case K8.invalid_type:r=e.received===K9.undefined?"Required":`Expected ${e.expected}, received ${e.received}`;break;case K8.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(e.expected,tw.jsonStringifyReplacer)}`;break;case K8.unrecognized_keys:r=`Unrecognized key(s) in object: ${tw.joinValues(e.keys,", ")}`;break;case K8.invalid_union:r="Invalid input";break;case K8.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${tw.joinValues(e.options)}`;break;case K8.invalid_enum_value:r=`Invalid enum value. Expected ${tw.joinValues(e.options)}, received '${e.received}'`;break;case K8.invalid_arguments:r="Invalid function arguments";break;case K8.invalid_return_type:r="Invalid function return type";break;case K8.invalid_date:r="Invalid date";break;case K8.invalid_string:"object"==typeof e.validation?"includes"in e.validation?(r=`Invalid input: must include "${e.validation.includes}"`,"number"==typeof e.validation.position&&(r=`${r} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?r=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?r=`Invalid input: must end with "${e.validation.endsWith}"`:tw.assertNever(e.validation):r="regex"!==e.validation?`Invalid ${e.validation}`:"Invalid";break;case K8.too_small:r="array"===e.type?`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:"string"===e.type?`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:"number"===e.type||"bigint"===e.type?`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:"date"===e.type?`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:"Invalid input";break;case K8.too_big:r="array"===e.type?`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:"string"===e.type?`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:"number"===e.type?`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:"bigint"===e.type?`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:"date"===e.type?`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:"Invalid input";break;case K8.custom:r="Invalid input";break;case K8.invalid_intersection_types:r="Intersection results could not be merged";break;case K8.not_multiple_of:r=`Number must be a multiple of ${e.multipleOf}`;break;case K8.not_finite:r="Number must be finite";break;default:r=t.defaultError,tw.assertNever(e)}return{message:r}};(eU=tC||(tC={})).errToObj=e=>"string"==typeof e?{message:e}:e||{},eU.toString=e=>"string"==typeof e?e:e?.message;let Ye=e=>{let{data:t,path:r,errorMaps:n,issueData:i}=e,a=[...r,...i.path||[]],s={...i,path:a};if(void 0!==i.message)return{...i,path:a,message:i.message};let o="";for(let e of n.filter(e=>!!e).slice().reverse())o=e(s,{data:t,defaultError:o}).message;return{...i,path:a,message:o}};function Yt(e,t){let r=Ye({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,K7,void 0].filter(e=>!!e)});e.common.issues.push(r)}class Yr{constructor(){this.value="valid"}dirty(){"valid"===this.value&&(this.value="dirty")}abort(){"aborted"!==this.value&&(this.value="aborted")}static mergeArray(e,t){let r=[];for(let n of t){if("aborted"===n.status)return Yn;"dirty"===n.status&&e.dirty(),r.push(n.value)}return{status:e.value,value:r}}static async mergeObjectAsync(e,t){let r=[];for(let e of t){let t=await e.key,n=await e.value;r.push({key:t,value:n})}return Yr.mergeObjectSync(e,r)}static mergeObjectSync(e,t){let r={};for(let n of t){let{key:t,value:i}=n;if("aborted"===t.status||"aborted"===i.status)return Yn;"dirty"===t.status&&e.dirty(),"dirty"===i.status&&e.dirty(),"__proto__"!==t.value&&(void 0!==i.value||n.alwaysSet)&&(r[t.value]=i.value)}return{status:e.value,value:r}}}let Yn=Object.freeze({status:"aborted"}),Yi=e=>({status:"dirty",value:e}),Ya=e=>({status:"valid",value:e}),Ys=e=>"u">typeof Promise&&e instanceof Promise;class Yo{constructor(e,t,r,n){this._cachedPath=[],this.parent=e,this.data=t,this._path=r,this._key=n}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}let Yl=(e,t)=>{if("valid"===t.status)return{success:!0,data:t.value};if(!e.common.issues.length)throw Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let t=new K6(e.common.issues);return this._error=t,this._error}}};function Yc(e){if(!e)return{};let{errorMap:t,invalid_type_error:r,required_error:n,description:i}=e;if(t&&(r||n))throw Error('Can\'t use "invalid_type_error" or "required_error" in conjunction with custom error map.');return t?{errorMap:t,description:i}:{errorMap:(t,i)=>{let{message:a}=e;return"invalid_enum_value"===t.code?{message:a??i.defaultError}:void 0===i.data?{message:a??n??i.defaultError}:"invalid_type"!==t.code?{message:i.defaultError}:{message:a??r??i.defaultError}},description:i}}class Yu{get description(){return this._def.description}_getType(e){return K5(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:K5(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Yr,ctx:{common:e.parent.common,data:e.data,parsedType:K5(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let t=this._parse(e);if(Ys(t))throw Error("Synchronous parse encountered promise.");return t}_parseAsync(e){return Promise.resolve(this._parse(e))}parse(e,t){let r=this.safeParse(e,t);if(r.success)return r.data;throw r.error}safeParse(e,t){let r={common:{issues:[],async:t?.async??!1,contextualErrorMap:t?.errorMap},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:K5(e)},n=this._parseSync({data:e,path:r.path,parent:r});return Yl(r,n)}"~validate"(e){let t={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:K5(e)};if(!this["~standard"].async)try{let r=this._parseSync({data:e,path:[],parent:t});return"valid"===r.status?{value:r.value}:{issues:t.common.issues}}catch(e){e?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(e=>"valid"===e.status?{value:e.value}:{issues:t.common.issues})}async parseAsync(e,t){let r=await this.safeParseAsync(e,t);if(r.success)return r.data;throw r.error}async safeParseAsync(e,t){let r={common:{issues:[],contextualErrorMap:t?.errorMap,async:!0},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:K5(e)},n=this._parse({data:e,path:r.path,parent:r});return Yl(r,await (Ys(n)?n:Promise.resolve(n)))}refine(e,t){return this._refinement((r,n)=>{let i=e(r),a=()=>n.addIssue({code:K8.custom,..."string"==typeof t||void 0===t?{message:t}:"function"==typeof t?t(r):t});return"u">typeof Promise&&i instanceof Promise?i.then(e=>!!e||(a(),!1)):!!i||(a(),!1)})}refinement(e,t){return this._refinement((r,n)=>!!e(r)||(n.addIssue("function"==typeof t?t(r,n):t),!1))}_refinement(e){return new Y3({schema:this,typeName:tE.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:e=>this["~validate"](e)}}optional(){return Y4.create(this,this._def)}nullable(){return Y9.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return YU.create(this)}promise(){return Y2.create(this,this._def)}or(e){return YH.create([this,e],this._def)}and(e){return YV.create(this,e,this._def)}transform(e){return new Y3({...Yc(this._def),schema:this,typeName:tE.ZodEffects,effect:{type:"transform",transform:e}})}default(e){return new Y5({...Yc(this._def),innerType:this,defaultValue:"function"==typeof e?e:()=>e,typeName:tE.ZodDefault})}brand(){return new Y7({typeName:tE.ZodBranded,type:this,...Yc(this._def)})}catch(e){return new Y8({...Yc(this._def),innerType:this,catchValue:"function"==typeof e?e:()=>e,typeName:tE.ZodCatch})}describe(e){return new this.constructor({...this._def,description:e})}pipe(e){return Je.create(this,e)}readonly(){return Jt.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}let Yd=/^c[^\s-]{8,}$/i,Yh=/^[0-9a-z]+$/,Yp=/^[0-9A-HJKMNP-TV-Z]{26}$/i,YA=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Yf=/^[a-z0-9_-]{21}$/i,Yg=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Ym=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Yv=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Yb=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Yy=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Yw=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Yx=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,YC=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,YE=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,YS="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",YI=RegExp(`^${YS}$`);function YM(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:null==e.precision&&(t=`${t}(\\.\\d+)?`);let r=e.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${r}`}class YB extends Yu{_parse(e){var t,r,n,i;let a;if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==K9.string){let t=this._getOrReturnCtx(e);return Yt(t,{code:K8.invalid_type,expected:K9.string,received:t.parsedType}),Yn}let s=new Yr;for(let o of this._def.checks)if("min"===o.kind)e.data.length<o.value&&(Yt(a=this._getOrReturnCtx(e,a),{code:K8.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),s.dirty());else if("max"===o.kind)e.data.length>o.value&&(Yt(a=this._getOrReturnCtx(e,a),{code:K8.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),s.dirty());else if("length"===o.kind){let t=e.data.length>o.value,r=e.data.length<o.value;(t||r)&&(a=this._getOrReturnCtx(e,a),t?Yt(a,{code:K8.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}):r&&Yt(a,{code:K8.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}),s.dirty())}else if("email"===o.kind)Yv.test(e.data)||(Yt(a=this._getOrReturnCtx(e,a),{validation:"email",code:K8.invalid_string,message:o.message}),s.dirty());else if("emoji"===o.kind)I||(I=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),I.test(e.data)||(Yt(a=this._getOrReturnCtx(e,a),{validation:"emoji",code:K8.invalid_string,message:o.message}),s.dirty());else if("uuid"===o.kind)YA.test(e.data)||(Yt(a=this._getOrReturnCtx(e,a),{validation:"uuid",code:K8.invalid_string,message:o.message}),s.dirty());else if("nanoid"===o.kind)Yf.test(e.data)||(Yt(a=this._getOrReturnCtx(e,a),{validation:"nanoid",code:K8.invalid_string,message:o.message}),s.dirty());else if("cuid"===o.kind)Yd.test(e.data)||(Yt(a=this._getOrReturnCtx(e,a),{validation:"cuid",code:K8.invalid_string,message:o.message}),s.dirty());else if("cuid2"===o.kind)Yh.test(e.data)||(Yt(a=this._getOrReturnCtx(e,a),{validation:"cuid2",code:K8.invalid_string,message:o.message}),s.dirty());else if("ulid"===o.kind)Yp.test(e.data)||(Yt(a=this._getOrReturnCtx(e,a),{validation:"ulid",code:K8.invalid_string,message:o.message}),s.dirty());else if("url"===o.kind)try{new URL(e.data)}catch{Yt(a=this._getOrReturnCtx(e,a),{validation:"url",code:K8.invalid_string,message:o.message}),s.dirty()}else"regex"===o.kind?(o.regex.lastIndex=0,o.regex.test(e.data)||(Yt(a=this._getOrReturnCtx(e,a),{validation:"regex",code:K8.invalid_string,message:o.message}),s.dirty())):"trim"===o.kind?e.data=e.data.trim():"includes"===o.kind?e.data.includes(o.value,o.position)||(Yt(a=this._getOrReturnCtx(e,a),{code:K8.invalid_string,validation:{includes:o.value,position:o.position},message:o.message}),s.dirty()):"toLowerCase"===o.kind?e.data=e.data.toLowerCase():"toUpperCase"===o.kind?e.data=e.data.toUpperCase():"startsWith"===o.kind?e.data.startsWith(o.value)||(Yt(a=this._getOrReturnCtx(e,a),{code:K8.invalid_string,validation:{startsWith:o.value},message:o.message}),s.dirty()):"endsWith"===o.kind?e.data.endsWith(o.value)||(Yt(a=this._getOrReturnCtx(e,a),{code:K8.invalid_string,validation:{endsWith:o.value},message:o.message}),s.dirty()):"datetime"===o.kind?(function(e){let t=`${YS}T${YM(e)}`,r=[];return r.push(e.local?"Z?":"Z"),e.offset&&r.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${r.join("|")})`,RegExp(`^${t}$`)})(o).test(e.data)||(Yt(a=this._getOrReturnCtx(e,a),{code:K8.invalid_string,validation:"datetime",message:o.message}),s.dirty()):"date"===o.kind?YI.test(e.data)||(Yt(a=this._getOrReturnCtx(e,a),{code:K8.invalid_string,validation:"date",message:o.message}),s.dirty()):"time"===o.kind?RegExp(`^${YM(o)}$`).test(e.data)||(Yt(a=this._getOrReturnCtx(e,a),{code:K8.invalid_string,validation:"time",message:o.message}),s.dirty()):"duration"===o.kind?Ym.test(e.data)||(Yt(a=this._getOrReturnCtx(e,a),{validation:"duration",code:K8.invalid_string,message:o.message}),s.dirty()):"ip"===o.kind?(t=e.data,!(("v4"===(r=o.version)||!r)&&Yb.test(t)||("v6"===r||!r)&&Yw.test(t))&&1&&(Yt(a=this._getOrReturnCtx(e,a),{validation:"ip",code:K8.invalid_string,message:o.message}),s.dirty())):"jwt"===o.kind?!function(e,t){if(!Yg.test(e))return!1;try{let[r]=e.split(".");if(!r)return!1;let n=r.replace(/-/g,"+").replace(/_/g,"/").padEnd(r.length+(4-r.length%4)%4,"="),i=JSON.parse(atob(n));if("object"!=typeof i||null===i||"typ"in i&&i?.typ!=="JWT"||!i.alg||t&&i.alg!==t)return!1;return!0}catch{return!1}}(e.data,o.alg)&&(Yt(a=this._getOrReturnCtx(e,a),{validation:"jwt",code:K8.invalid_string,message:o.message}),s.dirty()):"cidr"===o.kind?(n=e.data,!(("v4"===(i=o.version)||!i)&&Yy.test(n)||("v6"===i||!i)&&Yx.test(n))&&1&&(Yt(a=this._getOrReturnCtx(e,a),{validation:"cidr",code:K8.invalid_string,message:o.message}),s.dirty())):"base64"===o.kind?YC.test(e.data)||(Yt(a=this._getOrReturnCtx(e,a),{validation:"base64",code:K8.invalid_string,message:o.message}),s.dirty()):"base64url"===o.kind?YE.test(e.data)||(Yt(a=this._getOrReturnCtx(e,a),{validation:"base64url",code:K8.invalid_string,message:o.message}),s.dirty()):tw.assertNever(o);return{status:s.value,value:e.data}}_regex(e,t,r){return this.refinement(t=>e.test(t),{validation:t,code:K8.invalid_string,...tC.errToObj(r)})}_addCheck(e){return new YB({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...tC.errToObj(e)})}url(e){return this._addCheck({kind:"url",...tC.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...tC.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...tC.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...tC.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...tC.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...tC.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...tC.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...tC.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...tC.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...tC.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...tC.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...tC.errToObj(e)})}datetime(e){return"string"==typeof e?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:void 0===e?.precision?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...tC.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return"string"==typeof e?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:void 0===e?.precision?null:e?.precision,...tC.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...tC.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...tC.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t?.position,...tC.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...tC.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...tC.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...tC.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...tC.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...tC.errToObj(t)})}nonempty(e){return this.min(1,tC.errToObj(e))}trim(){return new YB({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new YB({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new YB({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>"datetime"===e.kind)}get isDate(){return!!this._def.checks.find(e=>"date"===e.kind)}get isTime(){return!!this._def.checks.find(e=>"time"===e.kind)}get isDuration(){return!!this._def.checks.find(e=>"duration"===e.kind)}get isEmail(){return!!this._def.checks.find(e=>"email"===e.kind)}get isURL(){return!!this._def.checks.find(e=>"url"===e.kind)}get isEmoji(){return!!this._def.checks.find(e=>"emoji"===e.kind)}get isUUID(){return!!this._def.checks.find(e=>"uuid"===e.kind)}get isNANOID(){return!!this._def.checks.find(e=>"nanoid"===e.kind)}get isCUID(){return!!this._def.checks.find(e=>"cuid"===e.kind)}get isCUID2(){return!!this._def.checks.find(e=>"cuid2"===e.kind)}get isULID(){return!!this._def.checks.find(e=>"ulid"===e.kind)}get isIP(){return!!this._def.checks.find(e=>"ip"===e.kind)}get isCIDR(){return!!this._def.checks.find(e=>"cidr"===e.kind)}get isBase64(){return!!this._def.checks.find(e=>"base64"===e.kind)}get isBase64url(){return!!this._def.checks.find(e=>"base64url"===e.kind)}get minLength(){let e=null;for(let t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(let t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return e}}YB.create=e=>new YB({checks:[],typeName:tE.ZodString,coerce:e?.coerce??!1,...Yc(e)});class Yk extends Yu{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){let t;if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==K9.number){let t=this._getOrReturnCtx(e);return Yt(t,{code:K8.invalid_type,expected:K9.number,received:t.parsedType}),Yn}let r=new Yr;for(let n of this._def.checks)"int"===n.kind?tw.isInteger(e.data)||(Yt(t=this._getOrReturnCtx(e,t),{code:K8.invalid_type,expected:"integer",received:"float",message:n.message}),r.dirty()):"min"===n.kind?(n.inclusive?e.data<n.value:e.data<=n.value)&&(Yt(t=this._getOrReturnCtx(e,t),{code:K8.too_small,minimum:n.value,type:"number",inclusive:n.inclusive,exact:!1,message:n.message}),r.dirty()):"max"===n.kind?(n.inclusive?e.data>n.value:e.data>=n.value)&&(Yt(t=this._getOrReturnCtx(e,t),{code:K8.too_big,maximum:n.value,type:"number",inclusive:n.inclusive,exact:!1,message:n.message}),r.dirty()):"multipleOf"===n.kind?0!==function(e,t){let r=(e.toString().split(".")[1]||"").length,n=(t.toString().split(".")[1]||"").length,i=r>n?r:n;return Number.parseInt(e.toFixed(i).replace(".",""))%Number.parseInt(t.toFixed(i).replace(".",""))/10**i}(e.data,n.value)&&(Yt(t=this._getOrReturnCtx(e,t),{code:K8.not_multiple_of,multipleOf:n.value,message:n.message}),r.dirty()):"finite"===n.kind?Number.isFinite(e.data)||(Yt(t=this._getOrReturnCtx(e,t),{code:K8.not_finite,message:n.message}),r.dirty()):tw.assertNever(n);return{status:r.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,tC.toString(t))}gt(e,t){return this.setLimit("min",e,!1,tC.toString(t))}lte(e,t){return this.setLimit("max",e,!0,tC.toString(t))}lt(e,t){return this.setLimit("max",e,!1,tC.toString(t))}setLimit(e,t,r,n){return new Yk({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:r,message:tC.toString(n)}]})}_addCheck(e){return new Yk({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:tC.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:tC.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:tC.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:tC.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:tC.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:tC.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:tC.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:tC.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:tC.toString(e)})}get minValue(){let e=null;for(let t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>"int"===e.kind||"multipleOf"===e.kind&&tw.isInteger(e.value))}get isFinite(){let e=null,t=null;for(let r of this._def.checks)if("finite"===r.kind||"int"===r.kind||"multipleOf"===r.kind)return!0;else"min"===r.kind?(null===t||r.value>t)&&(t=r.value):"max"===r.kind&&(null===e||r.value<e)&&(e=r.value);return Number.isFinite(t)&&Number.isFinite(e)}}Yk.create=e=>new Yk({checks:[],typeName:tE.ZodNumber,coerce:e?.coerce||!1,...Yc(e)});class YT extends Yu{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){let t;if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==K9.bigint)return this._getInvalidInput(e);let r=new Yr;for(let n of this._def.checks)"min"===n.kind?(n.inclusive?e.data<n.value:e.data<=n.value)&&(Yt(t=this._getOrReturnCtx(e,t),{code:K8.too_small,type:"bigint",minimum:n.value,inclusive:n.inclusive,message:n.message}),r.dirty()):"max"===n.kind?(n.inclusive?e.data>n.value:e.data>=n.value)&&(Yt(t=this._getOrReturnCtx(e,t),{code:K8.too_big,type:"bigint",maximum:n.value,inclusive:n.inclusive,message:n.message}),r.dirty()):"multipleOf"===n.kind?e.data%n.value!==BigInt(0)&&(Yt(t=this._getOrReturnCtx(e,t),{code:K8.not_multiple_of,multipleOf:n.value,message:n.message}),r.dirty()):tw.assertNever(n);return{status:r.value,value:e.data}}_getInvalidInput(e){let t=this._getOrReturnCtx(e);return Yt(t,{code:K8.invalid_type,expected:K9.bigint,received:t.parsedType}),Yn}gte(e,t){return this.setLimit("min",e,!0,tC.toString(t))}gt(e,t){return this.setLimit("min",e,!1,tC.toString(t))}lte(e,t){return this.setLimit("max",e,!0,tC.toString(t))}lt(e,t){return this.setLimit("max",e,!1,tC.toString(t))}setLimit(e,t,r,n){return new YT({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:r,message:tC.toString(n)}]})}_addCheck(e){return new YT({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:tC.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:tC.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:tC.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:tC.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:tC.toString(t)})}get minValue(){let e=null;for(let t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return e}}YT.create=e=>new YT({checks:[],typeName:tE.ZodBigInt,coerce:e?.coerce??!1,...Yc(e)});class YR extends Yu{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==K9.boolean){let t=this._getOrReturnCtx(e);return Yt(t,{code:K8.invalid_type,expected:K9.boolean,received:t.parsedType}),Yn}return Ya(e.data)}}YR.create=e=>new YR({typeName:tE.ZodBoolean,coerce:e?.coerce||!1,...Yc(e)});class YD extends Yu{_parse(e){let t;if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==K9.date){let t=this._getOrReturnCtx(e);return Yt(t,{code:K8.invalid_type,expected:K9.date,received:t.parsedType}),Yn}if(Number.isNaN(e.data.getTime()))return Yt(this._getOrReturnCtx(e),{code:K8.invalid_date}),Yn;let r=new Yr;for(let n of this._def.checks)"min"===n.kind?e.data.getTime()<n.value&&(Yt(t=this._getOrReturnCtx(e,t),{code:K8.too_small,message:n.message,inclusive:!0,exact:!1,minimum:n.value,type:"date"}),r.dirty()):"max"===n.kind?e.data.getTime()>n.value&&(Yt(t=this._getOrReturnCtx(e,t),{code:K8.too_big,message:n.message,inclusive:!0,exact:!1,maximum:n.value,type:"date"}),r.dirty()):tw.assertNever(n);return{status:r.value,value:new Date(e.data.getTime())}}_addCheck(e){return new YD({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:tC.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:tC.toString(t)})}get minDate(){let e=null;for(let t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return null!=e?new Date(e):null}get maxDate(){let e=null;for(let t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return null!=e?new Date(e):null}}YD.create=e=>new YD({checks:[],coerce:e?.coerce||!1,typeName:tE.ZodDate,...Yc(e)});class Y_ extends Yu{_parse(e){if(this._getType(e)!==K9.symbol){let t=this._getOrReturnCtx(e);return Yt(t,{code:K8.invalid_type,expected:K9.symbol,received:t.parsedType}),Yn}return Ya(e.data)}}Y_.create=e=>new Y_({typeName:tE.ZodSymbol,...Yc(e)});class YP extends Yu{_parse(e){if(this._getType(e)!==K9.undefined){let t=this._getOrReturnCtx(e);return Yt(t,{code:K8.invalid_type,expected:K9.undefined,received:t.parsedType}),Yn}return Ya(e.data)}}YP.create=e=>new YP({typeName:tE.ZodUndefined,...Yc(e)});class YL extends Yu{_parse(e){if(this._getType(e)!==K9.null){let t=this._getOrReturnCtx(e);return Yt(t,{code:K8.invalid_type,expected:K9.null,received:t.parsedType}),Yn}return Ya(e.data)}}YL.create=e=>new YL({typeName:tE.ZodNull,...Yc(e)});class YN extends Yu{constructor(){super(...arguments),this._any=!0}_parse(e){return Ya(e.data)}}YN.create=e=>new YN({typeName:tE.ZodAny,...Yc(e)});class YO extends Yu{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Ya(e.data)}}YO.create=e=>new YO({typeName:tE.ZodUnknown,...Yc(e)});class YF extends Yu{_parse(e){let t=this._getOrReturnCtx(e);return Yt(t,{code:K8.invalid_type,expected:K9.never,received:t.parsedType}),Yn}}YF.create=e=>new YF({typeName:tE.ZodNever,...Yc(e)});class YQ extends Yu{_parse(e){if(this._getType(e)!==K9.undefined){let t=this._getOrReturnCtx(e);return Yt(t,{code:K8.invalid_type,expected:K9.void,received:t.parsedType}),Yn}return Ya(e.data)}}YQ.create=e=>new YQ({typeName:tE.ZodVoid,...Yc(e)});class YU extends Yu{_parse(e){let{ctx:t,status:r}=this._processInputParams(e),n=this._def;if(t.parsedType!==K9.array)return Yt(t,{code:K8.invalid_type,expected:K9.array,received:t.parsedType}),Yn;if(null!==n.exactLength){let e=t.data.length>n.exactLength.value,i=t.data.length<n.exactLength.value;(e||i)&&(Yt(t,{code:e?K8.too_big:K8.too_small,minimum:i?n.exactLength.value:void 0,maximum:e?n.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:n.exactLength.message}),r.dirty())}if(null!==n.minLength&&t.data.length<n.minLength.value&&(Yt(t,{code:K8.too_small,minimum:n.minLength.value,type:"array",inclusive:!0,exact:!1,message:n.minLength.message}),r.dirty()),null!==n.maxLength&&t.data.length>n.maxLength.value&&(Yt(t,{code:K8.too_big,maximum:n.maxLength.value,type:"array",inclusive:!0,exact:!1,message:n.maxLength.message}),r.dirty()),t.common.async)return Promise.all([...t.data].map((e,r)=>n.type._parseAsync(new Yo(t,e,t.path,r)))).then(e=>Yr.mergeArray(r,e));let i=[...t.data].map((e,r)=>n.type._parseSync(new Yo(t,e,t.path,r)));return Yr.mergeArray(r,i)}get element(){return this._def.type}min(e,t){return new YU({...this._def,minLength:{value:e,message:tC.toString(t)}})}max(e,t){return new YU({...this._def,maxLength:{value:e,message:tC.toString(t)}})}length(e,t){return new YU({...this._def,exactLength:{value:e,message:tC.toString(t)}})}nonempty(e){return this.min(1,e)}}YU.create=(e,t)=>new YU({type:e,minLength:null,maxLength:null,exactLength:null,typeName:tE.ZodArray,...Yc(t)});class Yz extends Yu{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(null!==this._cached)return this._cached;let e=this._def.shape(),t=tw.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==K9.object){let t=this._getOrReturnCtx(e);return Yt(t,{code:K8.invalid_type,expected:K9.object,received:t.parsedType}),Yn}let{status:t,ctx:r}=this._processInputParams(e),{shape:n,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof YF&&"strip"===this._def.unknownKeys))for(let e in r.data)i.includes(e)||a.push(e);let s=[];for(let e of i){let t=n[e],i=r.data[e];s.push({key:{status:"valid",value:e},value:t._parse(new Yo(r,i,r.path,e)),alwaysSet:e in r.data})}if(this._def.catchall instanceof YF){let e=this._def.unknownKeys;if("passthrough"===e)for(let e of a)s.push({key:{status:"valid",value:e},value:{status:"valid",value:r.data[e]}});else if("strict"===e)a.length>0&&(Yt(r,{code:K8.unrecognized_keys,keys:a}),t.dirty());else if("strip"===e);else throw Error("Internal ZodObject error: invalid unknownKeys value.")}else{let e=this._def.catchall;for(let t of a){let n=r.data[t];s.push({key:{status:"valid",value:t},value:e._parse(new Yo(r,n,r.path,t)),alwaysSet:t in r.data})}}return r.common.async?Promise.resolve().then(async()=>{let e=[];for(let t of s){let r=await t.key,n=await t.value;e.push({key:r,value:n,alwaysSet:t.alwaysSet})}return e}).then(e=>Yr.mergeObjectSync(t,e)):Yr.mergeObjectSync(t,s)}get shape(){return this._def.shape()}strict(e){return tC.errToObj,new Yz({...this._def,unknownKeys:"strict",...void 0!==e?{errorMap:(t,r)=>{let n=this._def.errorMap?.(t,r).message??r.defaultError;return"unrecognized_keys"===t.code?{message:tC.errToObj(e).message??n}:{message:n}}}:{}})}strip(){return new Yz({...this._def,unknownKeys:"strip"})}passthrough(){return new Yz({...this._def,unknownKeys:"passthrough"})}extend(e){return new Yz({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new Yz({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:tE.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new Yz({...this._def,catchall:e})}pick(e){let t={};for(let r of tw.objectKeys(e))e[r]&&this.shape[r]&&(t[r]=this.shape[r]);return new Yz({...this._def,shape:()=>t})}omit(e){let t={};for(let r of tw.objectKeys(this.shape))e[r]||(t[r]=this.shape[r]);return new Yz({...this._def,shape:()=>t})}deepPartial(){return function e(t){if(t instanceof Yz){let r={};for(let n in t.shape){let i=t.shape[n];r[n]=Y4.create(e(i))}return new Yz({...t._def,shape:()=>r})}if(t instanceof YU)return new YU({...t._def,type:e(t.element)});if(t instanceof Y4)return Y4.create(e(t.unwrap()));if(t instanceof Y9)return Y9.create(e(t.unwrap()));if(t instanceof YW)return YW.create(t.items.map(t=>e(t)));else return t}(this)}partial(e){let t={};for(let r of tw.objectKeys(this.shape)){let n=this.shape[r];e&&!e[r]?t[r]=n:t[r]=n.optional()}return new Yz({...this._def,shape:()=>t})}required(e){let t={};for(let r of tw.objectKeys(this.shape))if(e&&!e[r])t[r]=this.shape[r];else{let e=this.shape[r];for(;e instanceof Y4;)e=e._def.innerType;t[r]=e}return new Yz({...this._def,shape:()=>t})}keyof(){return Y$(tw.objectKeys(this.shape))}}Yz.create=(e,t)=>new Yz({shape:()=>e,unknownKeys:"strip",catchall:YF.create(),typeName:tE.ZodObject,...Yc(t)}),Yz.strictCreate=(e,t)=>new Yz({shape:()=>e,unknownKeys:"strict",catchall:YF.create(),typeName:tE.ZodObject,...Yc(t)}),Yz.lazycreate=(e,t)=>new Yz({shape:e,unknownKeys:"strip",catchall:YF.create(),typeName:tE.ZodObject,...Yc(t)});class YH extends Yu{_parse(e){let{ctx:t}=this._processInputParams(e),r=this._def.options;if(t.common.async)return Promise.all(r.map(async e=>{let r={...t,common:{...t.common,issues:[]},parent:null};return{result:await e._parseAsync({data:t.data,path:t.path,parent:r}),ctx:r}})).then(function(e){for(let t of e)if("valid"===t.result.status)return t.result;for(let r of e)if("dirty"===r.result.status)return t.common.issues.push(...r.ctx.common.issues),r.result;let r=e.map(e=>new K6(e.ctx.common.issues));return Yt(t,{code:K8.invalid_union,unionErrors:r}),Yn});{let e,n=[];for(let i of r){let r={...t,common:{...t.common,issues:[]},parent:null},a=i._parseSync({data:t.data,path:t.path,parent:r});if("valid"===a.status)return a;"dirty"!==a.status||e||(e={result:a,ctx:r}),r.common.issues.length&&n.push(r.common.issues)}if(e)return t.common.issues.push(...e.ctx.common.issues),e.result;let i=n.map(e=>new K6(e));return Yt(t,{code:K8.invalid_union,unionErrors:i}),Yn}}get options(){return this._def.options}}YH.create=(e,t)=>new YH({options:e,typeName:tE.ZodUnion,...Yc(t)});let Yj=e=>{if(e instanceof YX)return Yj(e.schema);if(e instanceof Y3)return Yj(e.innerType());if(e instanceof YZ)return[e.value];if(e instanceof Y0)return e.options;if(e instanceof Y1)return tw.objectValues(e.enum);else if(e instanceof Y5)return Yj(e._def.innerType);else if(e instanceof YP)return[void 0];else if(e instanceof YL)return[null];else if(e instanceof Y4)return[void 0,...Yj(e.unwrap())];else if(e instanceof Y9)return[null,...Yj(e.unwrap())];else if(e instanceof Y7)return Yj(e.unwrap());else if(e instanceof Jt)return Yj(e.unwrap());else if(e instanceof Y8)return Yj(e._def.innerType);else return[]};class YG extends Yu{_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==K9.object)return Yt(t,{code:K8.invalid_type,expected:K9.object,received:t.parsedType}),Yn;let r=this.discriminator,n=t.data[r],i=this.optionsMap.get(n);return i?t.common.async?i._parseAsync({data:t.data,path:t.path,parent:t}):i._parseSync({data:t.data,path:t.path,parent:t}):(Yt(t,{code:K8.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),Yn)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,t,r){let n=new Map;for(let r of t){let t=Yj(r.shape[e]);if(!t.length)throw Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let i of t){if(n.has(i))throw Error(`Discriminator property ${String(e)} has duplicate value ${String(i)}`);n.set(i,r)}}return new YG({typeName:tE.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:n,...Yc(r)})}}class YV extends Yu{_parse(e){let{status:t,ctx:r}=this._processInputParams(e),n=(e,n)=>{if("aborted"===e.status||"aborted"===n.status)return Yn;let i=function e(t,r){let n=K5(t),i=K5(r);if(t===r)return{valid:!0,data:t};if(n===K9.object&&i===K9.object){let n=tw.objectKeys(r),i=tw.objectKeys(t).filter(e=>-1!==n.indexOf(e)),a={...t,...r};for(let n of i){let i=e(t[n],r[n]);if(!i.valid)return{valid:!1};a[n]=i.data}return{valid:!0,data:a}}if(n===K9.array&&i===K9.array){if(t.length!==r.length)return{valid:!1};let n=[];for(let i=0;i<t.length;i++){let a=e(t[i],r[i]);if(!a.valid)return{valid:!1};n.push(a.data)}return{valid:!0,data:n}}if(n===K9.date&&i===K9.date&&+t==+r)return{valid:!0,data:t};return{valid:!1}}(e.value,n.value);return i.valid?(("dirty"===e.status||"dirty"===n.status)&&t.dirty(),{status:t.value,value:i.data}):(Yt(r,{code:K8.invalid_intersection_types}),Yn)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([e,t])=>n(e,t)):n(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}}YV.create=(e,t,r)=>new YV({left:e,right:t,typeName:tE.ZodIntersection,...Yc(r)});class YW extends Yu{_parse(e){let{status:t,ctx:r}=this._processInputParams(e);if(r.parsedType!==K9.array)return Yt(r,{code:K8.invalid_type,expected:K9.array,received:r.parsedType}),Yn;if(r.data.length<this._def.items.length)return Yt(r,{code:K8.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),Yn;!this._def.rest&&r.data.length>this._def.items.length&&(Yt(r,{code:K8.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());let n=[...r.data].map((e,t)=>{let n=this._def.items[t]||this._def.rest;return n?n._parse(new Yo(r,e,r.path,t)):null}).filter(e=>!!e);return r.common.async?Promise.all(n).then(e=>Yr.mergeArray(t,e)):Yr.mergeArray(t,n)}get items(){return this._def.items}rest(e){return new YW({...this._def,rest:e})}}YW.create=(e,t)=>{if(!Array.isArray(e))throw Error("You must pass an array of schemas to z.tuple([ ... ])");return new YW({items:e,typeName:tE.ZodTuple,rest:null,...Yc(t)})};class Yq extends Yu{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:r}=this._processInputParams(e);if(r.parsedType!==K9.object)return Yt(r,{code:K8.invalid_type,expected:K9.object,received:r.parsedType}),Yn;let n=[],i=this._def.keyType,a=this._def.valueType;for(let e in r.data)n.push({key:i._parse(new Yo(r,e,r.path,e)),value:a._parse(new Yo(r,r.data[e],r.path,e)),alwaysSet:e in r.data});return r.common.async?Yr.mergeObjectAsync(t,n):Yr.mergeObjectSync(t,n)}get element(){return this._def.valueType}static create(e,t,r){return new Yq(t instanceof Yu?{keyType:e,valueType:t,typeName:tE.ZodRecord,...Yc(r)}:{keyType:YB.create(),valueType:e,typeName:tE.ZodRecord,...Yc(t)})}}class YK extends Yu{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:r}=this._processInputParams(e);if(r.parsedType!==K9.map)return Yt(r,{code:K8.invalid_type,expected:K9.map,received:r.parsedType}),Yn;let n=this._def.keyType,i=this._def.valueType,a=[...r.data.entries()].map(([e,t],a)=>({key:n._parse(new Yo(r,e,r.path,[a,"key"])),value:i._parse(new Yo(r,t,r.path,[a,"value"]))}));if(r.common.async){let e=new Map;return Promise.resolve().then(async()=>{for(let r of a){let n=await r.key,i=await r.value;if("aborted"===n.status||"aborted"===i.status)return Yn;("dirty"===n.status||"dirty"===i.status)&&t.dirty(),e.set(n.value,i.value)}return{status:t.value,value:e}})}{let e=new Map;for(let r of a){let n=r.key,i=r.value;if("aborted"===n.status||"aborted"===i.status)return Yn;("dirty"===n.status||"dirty"===i.status)&&t.dirty(),e.set(n.value,i.value)}return{status:t.value,value:e}}}}YK.create=(e,t,r)=>new YK({valueType:t,keyType:e,typeName:tE.ZodMap,...Yc(r)});class YY extends Yu{_parse(e){let{status:t,ctx:r}=this._processInputParams(e);if(r.parsedType!==K9.set)return Yt(r,{code:K8.invalid_type,expected:K9.set,received:r.parsedType}),Yn;let n=this._def;null!==n.minSize&&r.data.size<n.minSize.value&&(Yt(r,{code:K8.too_small,minimum:n.minSize.value,type:"set",inclusive:!0,exact:!1,message:n.minSize.message}),t.dirty()),null!==n.maxSize&&r.data.size>n.maxSize.value&&(Yt(r,{code:K8.too_big,maximum:n.maxSize.value,type:"set",inclusive:!0,exact:!1,message:n.maxSize.message}),t.dirty());let i=this._def.valueType;function a(e){let r=new Set;for(let n of e){if("aborted"===n.status)return Yn;"dirty"===n.status&&t.dirty(),r.add(n.value)}return{status:t.value,value:r}}let s=[...r.data.values()].map((e,t)=>i._parse(new Yo(r,e,r.path,t)));return r.common.async?Promise.all(s).then(e=>a(e)):a(s)}min(e,t){return new YY({...this._def,minSize:{value:e,message:tC.toString(t)}})}max(e,t){return new YY({...this._def,maxSize:{value:e,message:tC.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}YY.create=(e,t)=>new YY({valueType:e,minSize:null,maxSize:null,typeName:tE.ZodSet,...Yc(t)});class YJ extends Yu{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==K9.function)return Yt(t,{code:K8.invalid_type,expected:K9.function,received:t.parsedType}),Yn;function r(e,r){return Ye({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,K7,K7].filter(e=>!!e),issueData:{code:K8.invalid_arguments,argumentsError:r}})}function n(e,r){return Ye({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,K7,K7].filter(e=>!!e),issueData:{code:K8.invalid_return_type,returnTypeError:r}})}let i={errorMap:t.common.contextualErrorMap},a=t.data;if(this._def.returns instanceof Y2){let e=this;return Ya(async function(...t){let s=new K6([]),o=await e._def.args.parseAsync(t,i).catch(e=>{throw s.addIssue(r(t,e)),s}),l=await Reflect.apply(a,this,o);return await e._def.returns._def.type.parseAsync(l,i).catch(e=>{throw s.addIssue(n(l,e)),s})})}{let e=this;return Ya(function(...t){let s=e._def.args.safeParse(t,i);if(!s.success)throw new K6([r(t,s.error)]);let o=Reflect.apply(a,this,s.data),l=e._def.returns.safeParse(o,i);if(!l.success)throw new K6([n(o,l.error)]);return l.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new YJ({...this._def,args:YW.create(e).rest(YO.create())})}returns(e){return new YJ({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,t,r){return new YJ({args:e||YW.create([]).rest(YO.create()),returns:t||YO.create(),typeName:tE.ZodFunction,...Yc(r)})}}class YX extends Yu{get schema(){return this._def.getter()}_parse(e){let{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}}YX.create=(e,t)=>new YX({getter:e,typeName:tE.ZodLazy,...Yc(t)});class YZ extends Yu{_parse(e){if(e.data!==this._def.value){let t=this._getOrReturnCtx(e);return Yt(t,{received:t.data,code:K8.invalid_literal,expected:this._def.value}),Yn}return{status:"valid",value:e.data}}get value(){return this._def.value}}function Y$(e,t){return new Y0({values:e,typeName:tE.ZodEnum,...Yc(t)})}YZ.create=(e,t)=>new YZ({value:e,typeName:tE.ZodLiteral,...Yc(t)});class Y0 extends Yu{_parse(e){if("string"!=typeof e.data){let t=this._getOrReturnCtx(e),r=this._def.values;return Yt(t,{expected:tw.joinValues(r),received:t.parsedType,code:K8.invalid_type}),Yn}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let t=this._getOrReturnCtx(e),r=this._def.values;return Yt(t,{received:t.data,code:K8.invalid_enum_value,options:r}),Yn}return Ya(e.data)}get options(){return this._def.values}get enum(){let e={};for(let t of this._def.values)e[t]=t;return e}get Values(){let e={};for(let t of this._def.values)e[t]=t;return e}get Enum(){let e={};for(let t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return Y0.create(e,{...this._def,...t})}exclude(e,t=this._def){return Y0.create(this.options.filter(t=>!e.includes(t)),{...this._def,...t})}}Y0.create=Y$;class Y1 extends Yu{_parse(e){let t=tw.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(e);if(r.parsedType!==K9.string&&r.parsedType!==K9.number){let e=tw.objectValues(t);return Yt(r,{expected:tw.joinValues(e),received:r.parsedType,code:K8.invalid_type}),Yn}if(this._cache||(this._cache=new Set(tw.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let e=tw.objectValues(t);return Yt(r,{received:r.data,code:K8.invalid_enum_value,options:e}),Yn}return Ya(e.data)}get enum(){return this._def.values}}Y1.create=(e,t)=>new Y1({values:e,typeName:tE.ZodNativeEnum,...Yc(t)});class Y2 extends Yu{unwrap(){return this._def.type}_parse(e){let{ctx:t}=this._processInputParams(e);return t.parsedType!==K9.promise&&!1===t.common.async?(Yt(t,{code:K8.invalid_type,expected:K9.promise,received:t.parsedType}),Yn):Ya((t.parsedType===K9.promise?t.data:Promise.resolve(t.data)).then(e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap})))}}Y2.create=(e,t)=>new Y2({type:e,typeName:tE.ZodPromise,...Yc(t)});class Y3 extends Yu{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===tE.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:t,ctx:r}=this._processInputParams(e),n=this._def.effect||null,i={addIssue:e=>{Yt(r,e),e.fatal?t.abort():t.dirty()},get path(){return r.path}};if(i.addIssue=i.addIssue.bind(i),"preprocess"===n.type){let e=n.transform(r.data,i);if(r.common.async)return Promise.resolve(e).then(async e=>{if("aborted"===t.value)return Yn;let n=await this._def.schema._parseAsync({data:e,path:r.path,parent:r});return"aborted"===n.status?Yn:"dirty"===n.status||"dirty"===t.value?Yi(n.value):n});{if("aborted"===t.value)return Yn;let n=this._def.schema._parseSync({data:e,path:r.path,parent:r});return"aborted"===n.status?Yn:"dirty"===n.status||"dirty"===t.value?Yi(n.value):n}}if("refinement"===n.type){let e=e=>{let t=n.refinement(e,i);if(r.common.async)return Promise.resolve(t);if(t instanceof Promise)throw Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return e};if(!1!==r.common.async)return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(r=>"aborted"===r.status?Yn:("dirty"===r.status&&t.dirty(),e(r.value).then(()=>({status:t.value,value:r.value}))));{let n=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return"aborted"===n.status?Yn:("dirty"===n.status&&t.dirty(),e(n.value),{status:t.value,value:n.value})}}if("transform"===n.type)if(!1!==r.common.async)return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(e=>"valid"!==e.status?Yn:Promise.resolve(n.transform(e.value,i)).then(e=>({status:t.value,value:e})));else{let e=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if("valid"!==e.status)return Yn;let a=n.transform(e.value,i);if(a instanceof Promise)throw Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:a}}tw.assertNever(n)}}Y3.create=(e,t,r)=>new Y3({schema:e,typeName:tE.ZodEffects,effect:t,...Yc(r)}),Y3.createWithPreprocess=(e,t,r)=>new Y3({schema:t,effect:{type:"preprocess",transform:e},typeName:tE.ZodEffects,...Yc(r)});class Y4 extends Yu{_parse(e){return this._getType(e)===K9.undefined?Ya(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}Y4.create=(e,t)=>new Y4({innerType:e,typeName:tE.ZodOptional,...Yc(t)});class Y9 extends Yu{_parse(e){return this._getType(e)===K9.null?Ya(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}Y9.create=(e,t)=>new Y9({innerType:e,typeName:tE.ZodNullable,...Yc(t)});class Y5 extends Yu{_parse(e){let{ctx:t}=this._processInputParams(e),r=t.data;return t.parsedType===K9.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}Y5.create=(e,t)=>new Y5({innerType:e,typeName:tE.ZodDefault,defaultValue:"function"==typeof t.default?t.default:()=>t.default,...Yc(t)});class Y8 extends Yu{_parse(e){let{ctx:t}=this._processInputParams(e),r={...t,common:{...t.common,issues:[]}},n=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return Ys(n)?n.then(e=>({status:"valid",value:"valid"===e.status?e.value:this._def.catchValue({get error(){return new K6(r.common.issues)},input:r.data})})):{status:"valid",value:"valid"===n.status?n.value:this._def.catchValue({get error(){return new K6(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}}Y8.create=(e,t)=>new Y8({innerType:e,typeName:tE.ZodCatch,catchValue:"function"==typeof t.catch?t.catch:()=>t.catch,...Yc(t)});class Y6 extends Yu{_parse(e){if(this._getType(e)!==K9.nan){let t=this._getOrReturnCtx(e);return Yt(t,{code:K8.invalid_type,expected:K9.nan,received:t.parsedType}),Yn}return{status:"valid",value:e.data}}}Y6.create=e=>new Y6({typeName:tE.ZodNaN,...Yc(e)}),Symbol("zod_brand");class Y7 extends Yu{_parse(e){let{ctx:t}=this._processInputParams(e),r=t.data;return this._def.type._parse({data:r,path:t.path,parent:t})}unwrap(){return this._def.type}}class Je extends Yu{_parse(e){let{status:t,ctx:r}=this._processInputParams(e);if(r.common.async)return(async()=>{let e=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return"aborted"===e.status?Yn:"dirty"===e.status?(t.dirty(),Yi(e.value)):this._def.out._parseAsync({data:e.value,path:r.path,parent:r})})();{let e=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return"aborted"===e.status?Yn:"dirty"===e.status?(t.dirty(),{status:"dirty",value:e.value}):this._def.out._parseSync({data:e.value,path:r.path,parent:r})}}static create(e,t){return new Je({in:e,out:t,typeName:tE.ZodPipeline})}}class Jt extends Yu{_parse(e){let t=this._def.innerType._parse(e),r=e=>("valid"===e.status&&(e.value=Object.freeze(e.value)),e);return Ys(t)?t.then(e=>r(e)):r(t)}unwrap(){return this._def.innerType}}Jt.create=(e,t)=>new Jt({innerType:e,typeName:tE.ZodReadonly,...Yc(t)}),Yz.lazycreate,(ez=tE||(tE={})).ZodString="ZodString",ez.ZodNumber="ZodNumber",ez.ZodNaN="ZodNaN",ez.ZodBigInt="ZodBigInt",ez.ZodBoolean="ZodBoolean",ez.ZodDate="ZodDate",ez.ZodSymbol="ZodSymbol",ez.ZodUndefined="ZodUndefined",ez.ZodNull="ZodNull",ez.ZodAny="ZodAny",ez.ZodUnknown="ZodUnknown",ez.ZodNever="ZodNever",ez.ZodVoid="ZodVoid",ez.ZodArray="ZodArray",ez.ZodObject="ZodObject",ez.ZodUnion="ZodUnion",ez.ZodDiscriminatedUnion="ZodDiscriminatedUnion",ez.ZodIntersection="ZodIntersection",ez.ZodTuple="ZodTuple",ez.ZodRecord="ZodRecord",ez.ZodMap="ZodMap",ez.ZodSet="ZodSet",ez.ZodFunction="ZodFunction",ez.ZodLazy="ZodLazy",ez.ZodLiteral="ZodLiteral",ez.ZodEnum="ZodEnum",ez.ZodEffects="ZodEffects",ez.ZodNativeEnum="ZodNativeEnum",ez.ZodOptional="ZodOptional",ez.ZodNullable="ZodNullable",ez.ZodDefault="ZodDefault",ez.ZodCatch="ZodCatch",ez.ZodPromise="ZodPromise",ez.ZodBranded="ZodBranded",ez.ZodPipeline="ZodPipeline",ez.ZodReadonly="ZodReadonly";let Jr=YB.create,Jn=Yk.create;Y6.create,YT.create;let Ji=YR.create;YD.create,Y_.create,YP.create,YL.create,YN.create;let Ja=YO.create;YF.create,YQ.create,YU.create;let Js=Yz.create;Yz.strictCreate,YH.create,YG.create,YV.create,YW.create,Yq.create,YK.create,YY.create,YJ.create,YX.create,YZ.create;let Jo=Y0.create;Y1.create,Y2.create,Y3.create,Y4.create,Y9.create;let Jl=Y3.createWithPreprocess;Je.create;let Jc=Jo(["cm","inch"]),Ju=Jo(["different_fields","one_field"]),Jd=Jo(["left_bottom","center","right_bottom","left_center","right_center"]),Jh=Js({buttonLabel:Jr(),backgroundColor:Jr(),borderColor:Jr(),textColor:Jr(),borderRadius:Jn(),borderWidth:Jn()}),Jp=Js({units:Jc,productWidthAndHeight:Ju,metafieldForWidth:Jr().nullable(),metafieldForHeight:Jr().nullable(),metafieldForWidthAndHeight:Jr().nullable(),widgetPosition:Jd,_widgetSettings:Jh.optional(),isWidgetActive:Ji()}),JA=function(e){let t=e?.trim().replace(/\/+$/,"")??"";if(!t||t.includes("/v1/http")||t.endsWith("/v1"))return t;let r=t.indexOf("/http");return r>=0?`${t.slice(0,r)}/v1${t.slice(r)}`:`${t}/v1`}("/apps/vizbl-wall-art/http"),Jf=Js({token:Jr().trim().min(1),sid:Jr().trim().min(1),expiresIn:Jn().finite()}),Jg=Js({metafields:Jr().trim().min(1),posterPic:Jr().trim().min(1),title:Jr().trim().optional(),widgetSession:Ja().optional()}),Jm=Jl(e=>"string"==typeof e?JSON.parse(e):e,Js({metafield:Ja(),tinuuid:Jr().trim().optional()}));async function Jv(e,t){let r=await K4({productType:"wallart-shopify",variant_id:e,metafield_key:"poster_settings"},{baseURL:JA,signal:t});return function(e){let t,r,n=Jg.safeParse("string"!=typeof e?e:JSON.parse(e));if(!n.success)return null;let i=Jm.safeParse(n.data.metafields);if(!i.success)return null;let a=(t=function(e){if("string"!=typeof e)return e;try{return JSON.parse(e)}catch{return}}(i.data.metafield),(r=Jp.safeParse(t)).success?r.data:null);if(!a)return null;let s=Jf.safeParse(n.data.widgetSession);return{settings:a,posterPic:n.data.posterPic,title:n.data.title??null,tinuuid:i.data.tinuuid??null,widgetSession:s.success?s.data:null}}(r.body??r)}let Jb="44px",Jy="60px",Jw={left_center:{left:Jy,top:"50%",transform:"translateY(-50%)"},left_bottom:{left:Jy,bottom:Jb},center:{left:`calc(50% + ${Jy})`,bottom:Jb,transform:"translateX(-50%)"},right_bottom:{right:Jy,bottom:Jb},right_center:{right:Jy,top:"50%",transform:"translateY(-50%)"}},Jx=Jl(e=>"number"==typeof e&&Number.isFinite(e)?String(e):e,Jr().trim().regex(/^\d+$/));function JC(e){let t=Jx.safeParse(e);return t.success?t.data:null}function JE(e){return e?e instanceof HTMLInputElement||e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement?e.value:e.getAttribute("value"):null}let JS=["product-form","[data-main-product]",'[id*="MainProduct"]',".product",".product__info-wrapper",".product__info-container","#MainContent"],JI=[".product-recommendations",".related-products","[data-product-recommendations]"];var JM=i("./src/shopify.css?inline");function JB(){let e=function({documentRef:e=document,locationRef:t=window.location,analytics:r=window.ShopifyAnalytics}={}){var n;let i=e.body;if(i?.classList.contains("template-collection"))return!1;if(n=t.pathname,/(?:^|\/)products\/[^/]+/i.test(n)||r?.meta?.page?.pageType?.toLowerCase()==="product")return!0;let a=e.querySelector('meta[property="og:type"]')?.getAttribute("content");return!!(a?.trim().toLowerCase()==="product"||i?.classList.contains("template-product"))}();return{isProductPage:e,variantId:e?function({documentRef:e=document,locationRef:t=window.location}={}){return function(e=window.location){return JC(new URLSearchParams(e.search).get("variant"))}(t)??function(e=document){for(let{field:t}of Array.from(e.querySelectorAll('form[action*="/cart/add"]')).flatMap((t,r)=>{let n;return[...Array.from(t.querySelectorAll('input[name="id"], select[name="id"]')),...!(n=t.getAttribute("id"))?[]:Array.from(e.querySelectorAll('input[name="id"][form], select[name="id"][form]')).filter(e=>e.getAttribute("form")===n)].map((e,n)=>({field:e,formIndex:r,fieldIndex:n,score:function(e){let t=0,r=(e.getAttribute("id")??"").toLowerCase(),n=(e.getAttribute("class")??"").toLowerCase();for(let i of(r.includes("product-form")&&(t+=100),n.includes("product-form")&&(t+=80),JS))e.closest(i)&&(t+=25);for(let r of JI)e.closest(r)&&(t-=100);return t}(t)}))}).sort((e,t)=>t.score-e.score||e.formIndex-t.formIndex||e.fieldIndex-t.fieldIndex)){let e=JC(JE(t));if(e)return e}return null}(e)??function(e=document){for(let t of Array.from(e.querySelectorAll('[name="id"][form^="product-form"]'))){let e=JC(JE(t));if(e)return e}return null}(e)??function(e=document){let t=e.querySelector("[data-selected-variant-id]");return JC(t?.getAttribute("data-selected-variant-id")??null)}(e)}():null}}function Jk(){let e=function(){let[e,t]=(0,ru.useState)(JB);return(0,ru.useEffect)(()=>{let e=null,r=window.history.pushState,n=window.history.replaceState,i=()=>{null===e&&(e=window.requestAnimationFrame(()=>{e=null,t(e=>{let t=JB();return e.isProductPage===t.isProductPage&&e.variantId===t.variantId?e:t})}))};window.history.pushState=function(...e){let t=r.apply(this,e);return i(),t},window.history.replaceState=function(...e){let t=n.apply(this,e);return i(),t};let a=ai('body.template-product, body.template-collection, meta[property="og:type"], form[action*="/cart/add"], form[action*="/cart/add"] [name="id"], [name="id"][form], [data-selected-variant-id]',{initialize(e){let t;return{add(){t=(e=>{var t;let r=(t=e).matches("body")?["class"]:t.matches('meta[property="og:type"]')?["content"]:t.matches('form[action*="/cart/add"]')?["action","class","id"]:t.matches('form[action*="/cart/add"] [name="id"], [name="id"][form]')?["form","value"]:t.matches("[data-selected-variant-id]")?["data-selected-variant-id"]:[];if(0===r.length)return;let n=new MutationObserver(i);return n.observe(e,{attributes:!0,attributeFilter:r}),()=>{n.disconnect()}})(e),i()},remove(){t?.(),t=void 0,i()}}}});return document.addEventListener("change",i,!0),document.addEventListener("input",i,!0),document.addEventListener("click",i,!0),window.addEventListener("popstate",i),i(),()=>{null!==e&&window.cancelAnimationFrame(e),window.history.pushState=r,window.history.replaceState=n,a.abort(),document.removeEventListener("change",i,!0),document.removeEventListener("input",i,!0),document.removeEventListener("click",i,!0),window.removeEventListener("popstate",i)}},[]),e}(),[t,r]=(0,ru.useState)(!1),{data:n}=s4({queryKey:["vizbl-shopify-room-viewer","activation",e.variantId],queryFn:({signal:t})=>Jv(e.variantId??"",t),enabled:e.isProductPage&&null!==e.variantId,staleTime:3e5,gcTime:3e5,refetchOnWindowFocus:!1},sG,void 0),i=(0,ru.useCallback)(()=>{r(!0)},[]),a=(0,ru.useCallback)(e=>{r(e)},[]);if(!e.isProductPage||!e.variantId||!n?.settings.isWidgetActive)return null;let{settings:s,posterPic:o,title:l}=n,c=s._widgetSettings,u=function(e){if("one_field"===e.productWidthAndHeight){let[t,r]=e.metafieldForWidthAndHeight.split("x");return{width:Number(t),height:Number(r)}}return{width:Number(e.metafieldForWidth),height:Number(e.metafieldForHeight)}}(s),d="inch"===s.units?"in":"cm";return(0,rh.jsxs)(rh.Fragment,{children:[(0,rh.jsx)("button",{type:"button",onClick:i,style:{position:"fixed",zIndex:0x7ffffffe,display:"inline-flex",alignItems:"center",justifyContent:"center",padding:"13.522px 21.635px",borderStyle:"solid",borderColor:c?.borderColor??"rgba(65, 90, 229, 0.3)",borderWidth:c?.borderWidth??1,borderRadius:c?.borderRadius??121.053,background:c?.backgroundColor??"#ffffff",boxShadow:"0px 0px 20px 0px rgba(23, 32, 51, 0.14), 0px 16px 32px 0px rgba(23, 32, 51, 0.17)",color:c?.textColor??"#111111",boxSizing:"border-box",cursor:"pointer",maxWidth:"calc(100vw - 16px)",fontFamily:'Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',fontSize:18,fontWeight:600,letterSpacing:0,lineHeight:"18px",margin:0,appearance:"none",...Jw[s.widgetPosition]},children:c?.buttonLabel??"View in place"}),(0,rh.jsx)(K0,{open:t,onOpenChange:a,type:"wallart",source:"shopify",src:o,name:l??"",width:u.width,height:u.height,dimensionUnit:d,widgetSession:n.widgetSession}),t&&(0,aa.createPortal)((0,rh.jsx)("style",{children:JM.A}),document.head)]})}let JT="vizbl-shopify-room-viewer",JR=new rc({defaultOptions:{queries:{refetchOnMount:!1,refetchOnReconnect:!1,refetchOnWindowFocus:!1,retry:(e,t)=>{let r=function(e){if(ic(e))return e.response?.status}(t);return(void 0===r||!(r>=400)||!(r<500))&&e<2}}}});function JD(){let e,t=((e=document.getElementById(JT))||((e=document.createElement("div")).id=JT,document.body.appendChild(e)),e),r=iT.createRoot(t);r.render((0,ru.createElement)(rf,{client:JR},(0,ru.createElement)(Jk)));let n=ai(`#${JT}`,{remove(){n.abort(),r.unmount(),JD()}})}ik({baseURL:JA}),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",JD,{once:!0}):JD()})()})();