@neurodyn/room-viewer 0.0.32 → 0.0.33
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.
|
@@ -7595,7 +7595,7 @@ Defaulting to \`null\`.`));let u=C1(a,c)?a:null,d=C$(u)?o(u,c):void 0;return(0,e
|
|
|
7595
7595
|
font-style: normal;
|
|
7596
7596
|
font-display: swap;
|
|
7597
7597
|
}
|
|
7598
|
-
`,""]);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]}}},C3={};function C9(e){var t=C3[e];if(void 0!==t)return t.exports;var r=C3[e]={id:e,exports:{}};return C2[e](r,r.exports,C9),r.exports}C9.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return C9.d(t,{a:t}),t},C9.d=(e,t)=>{for(var r in t)C9.o(t,r)&&!C9.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},C9.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);let C4=(0,ep.createContext)({theme:"system",setTheme:()=>null});function C5({children:e,defaultTheme:t="system",storageKey:r="v-theme",root:n=window.document.documentElement,enableStorage:i=!1,...a}){let[s,o]=(0,ep.useState)(()=>i&&localStorage.getItem(r)||t);return(0,ep.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,eh.jsx)(C4,{...a,value:{theme:s,setTheme:e=>{i&&localStorage.setItem(r,e),o(e)}},children:e})}var C8=C9("../ui/src/styles/fonts.css?inline");let C6={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 18 or later with Safari, or Android 7.0 or later with Chrome.",appClipScanTitle:"Scan with your phone camera",appClipRequirement:"AR view works on iOS 18 or later"},legal:{termsOfUse:"Terms of Use",conjunction:"and",privacyPolicy:"Privacy Policy"},shareMessage:{"wall-panel":"Preview wall panels",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",share:"Share",angle:"Angle",rotation:"Rotation",reset:"Reset"},accessError:{unauthorized:"Invalid API key","payment-required":"Viewer temporarily unavailable"},loadError:{"viewer-load-failed":"We could not load the viewer. Please try again.","artwork-load-failed":"The image could not be loaded — its link is missing or incorrect in the widget settings.","room-load-failed":"The room photo could not be loaded. Please try again."},wallPanel:{loading:"Loading material",panelActions:"Panel {{number}} actions",retry:"Could not load. Select again to retry.",actions:"Panel actions",materials:"Materials",materialFallback:"Material {{number}}",rotate:"Rotate panel",delete:"Delete panel"},resourceType:{"wall-panel":{productCategory:"Wall panel",productCardTitle:"Selected panel",replaceProduct:"Replace panel",replaceProductShort:"Replace"},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:{flooring:"Choose flooring",rugs:"Choose a rug","wall-panel":"Choose a panel",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 18 или новее с Safari либо Android 7.0 или новее с Chrome.",appClipScanTitle:"Наведите камеру телефона",appClipRequirement:"AR-просмотр работает на iOS 18 и новее"},legal:{termsOfUse:"Условия использования",conjunction:"и",privacyPolicy:"Политика конфиденциальности"},shareMessage:{"wall-panel":"Примерить стеновые панели",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:"Настроить положение",share:"Поделиться",angle:"Угол",rotation:"Поворот",reset:"Сбросить"},accessError:{unauthorized:"Неверный API-ключ","payment-required":"Просмотр временно недоступен"},loadError:{"viewer-load-failed":"Не удалось загрузить просмотр. Попробуйте ещё раз.","artwork-load-failed":"Не удалось загрузить изображение — ссылка на него отсутствует или указана неверно в настройках виджета.","room-load-failed":"Не удалось загрузить фото комнаты. Попробуйте ещё раз."},wallPanel:{loading:"Загрузка материала",panelActions:"Действия с панелью {{number}}",retry:"Не удалось загрузить. Нажмите ещё раз.",actions:"Действия с панелью",materials:"Материалы",materialFallback:"Материал {{number}}",rotate:"Повернуть панель",delete:"Удалить панель"},resourceType:{"wall-panel":{productCategory:"Стеновая панель",productCardTitle:"Выбранная панель",replaceProduct:"Заменить панель",replaceProductShort:"Заменить"},rugs:{productCategory:"Ковер",productCardTitle:"Выбранный ковер",replaceProduct:"Заменить ковер",replaceProductShort:"Заменить"},flooring:{productCategory:"Напольное покрытие",productCardTitle:"Выбранное напольное покрытие",replaceProduct:"Заменить",replaceProductShort:"Заменить"}},floor:{scene:{companyFallback:"Компания",share:"Поделиться",download:"Скачать",hideCatalog:"Скрыть каталог",description:"Описание",interiorCardTitle:"Интерьер",tryAtHome:"Примерить дома",tryAtHomeBody:"Через камеру телефона"},materialSelection:{flooring:"Выберите покрытие",rugs:"Выберите ковёр","wall-panel":"Выберите панель",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:"Отменить"}}}}},C7=e3.createInstance();C7.use(t$).use({type:"3rdParty",init(t){((e={})=>{e8={...e8,...e}})(t.options.react),e=t}}).init({debug:!1,detection:{caches:[]},fallbackLng:"en",resources:C6,interpolation:{escapeValue:!1}});let Ee=/initial-value:([^;}]+)/i,Et=/inherits:\s*false(?:\s*;|\s*$)/i,Er=(U=(es=C9("./src/style.css?inline").A).replace(/:root\s*,\s*:host|:root/g,":host"),(z=Array.from(es.matchAll(/@property\s+(--[^{\s]+)\s*\{([^}]*)\}/g)).map(([,e,t])=>{if(!Et.test(t))return null;let r=t.match(Ee)?.[1].trim()??"initial";return` ${e}: ${r};`}).filter(e=>null!==e).join("\n"))?`${U}
|
|
7598
|
+
`,""]);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]}}},C3={};function C9(e){var t=C3[e];if(void 0!==t)return t.exports;var r=C3[e]={id:e,exports:{}};return C2[e](r,r.exports,C9),r.exports}C9.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return C9.d(t,{a:t}),t},C9.d=(e,t)=>{for(var r in t)C9.o(t,r)&&!C9.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},C9.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);let C4=(0,ep.createContext)({theme:"system",setTheme:()=>null});function C5({children:e,defaultTheme:t="system",storageKey:r="v-theme",root:n=window.document.documentElement,enableStorage:i=!1,...a}){let[s,o]=(0,ep.useState)(()=>i&&localStorage.getItem(r)||t);return(0,ep.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,eh.jsx)(C4,{...a,value:{theme:s,setTheme:e=>{i&&localStorage.setItem(r,e),o(e)}},children:e})}var C8=C9("../ui/src/styles/fonts.css?inline");let C6={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 18 or later with Safari, or Android 7.0 or later with Chrome.",appClipScanTitle:"Scan with your phone camera",appClipRequirement:"AR view works on iOS 18 or later"},legal:{termsOfUse:"Terms of Use",conjunction:"and",privacyPolicy:"Privacy Policy"},shareMessage:{"wall-panel":"Preview wall panels",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",share:"Share",angle:"Angle",rotation:"Rotation",reset:"Reset"},accessError:{unauthorized:"Invalid API key","payment-required":"Viewer temporarily unavailable"},loadError:{"viewer-load-failed":"We could not load the viewer. Please try again.","artwork-load-failed":"The image could not be loaded — its link is missing or incorrect in the widget settings.","room-load-failed":"The room photo could not be loaded. Please try again."},missingSurface:{floor:{title:"We couldn't find the floor",body:"Try a photo that shows the floor."},wall:{title:"We couldn't find a wall",body:"Try a photo that shows a wall."},uploadAnother:"Upload another photo"},wallPanel:{loading:"Loading material",panelActions:"Panel {{number}} actions",retry:"Could not load. Select again to retry.",actions:"Panel actions",materials:"Materials",materialFallback:"Material {{number}}",rotate:"Rotate panel",delete:"Delete panel"},resourceType:{"wall-panel":{productCategory:"Wall panel",productCardTitle:"Selected panel",replaceProduct:"Replace panel",replaceProductShort:"Replace"},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:{flooring:"Choose flooring",rugs:"Choose a rug","wall-panel":"Choose a panel",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 18 или новее с Safari либо Android 7.0 или новее с Chrome.",appClipScanTitle:"Наведите камеру телефона",appClipRequirement:"AR-просмотр работает на iOS 18 и новее"},legal:{termsOfUse:"Условия использования",conjunction:"и",privacyPolicy:"Политика конфиденциальности"},shareMessage:{"wall-panel":"Примерить стеновые панели",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:"Настроить положение",share:"Поделиться",angle:"Угол",rotation:"Поворот",reset:"Сбросить"},accessError:{unauthorized:"Неверный API-ключ","payment-required":"Просмотр временно недоступен"},loadError:{"viewer-load-failed":"Не удалось загрузить просмотр. Попробуйте ещё раз.","artwork-load-failed":"Не удалось загрузить изображение — ссылка на него отсутствует или указана неверно в настройках виджета.","room-load-failed":"Не удалось загрузить фото комнаты. Попробуйте ещё раз."},missingSurface:{floor:{title:"Не получилось найти пол",body:"Попробуйте фото, на котором виден пол."},wall:{title:"Не получилось найти стену",body:"Попробуйте фото, на котором видна стена."},uploadAnother:"Загрузить другое фото"},wallPanel:{loading:"Загрузка материала",panelActions:"Действия с панелью {{number}}",retry:"Не удалось загрузить. Нажмите ещё раз.",actions:"Действия с панелью",materials:"Материалы",materialFallback:"Материал {{number}}",rotate:"Повернуть панель",delete:"Удалить панель"},resourceType:{"wall-panel":{productCategory:"Стеновая панель",productCardTitle:"Выбранная панель",replaceProduct:"Заменить панель",replaceProductShort:"Заменить"},rugs:{productCategory:"Ковер",productCardTitle:"Выбранный ковер",replaceProduct:"Заменить ковер",replaceProductShort:"Заменить"},flooring:{productCategory:"Напольное покрытие",productCardTitle:"Выбранное напольное покрытие",replaceProduct:"Заменить",replaceProductShort:"Заменить"}},floor:{scene:{companyFallback:"Компания",share:"Поделиться",download:"Скачать",hideCatalog:"Скрыть каталог",description:"Описание",interiorCardTitle:"Интерьер",tryAtHome:"Примерить дома",tryAtHomeBody:"Через камеру телефона"},materialSelection:{flooring:"Выберите покрытие",rugs:"Выберите ковёр","wall-panel":"Выберите панель",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:"Отменить"}}}}},C7=e3.createInstance();C7.use(t$).use({type:"3rdParty",init(t){((e={})=>{e8={...e8,...e}})(t.options.react),e=t}}).init({debug:!1,detection:{caches:[]},fallbackLng:"en",resources:C6,interpolation:{escapeValue:!1}});let Ee=/initial-value:([^;}]+)/i,Et=/inherits:\s*false(?:\s*;|\s*$)/i,Er=(U=(es=C9("./src/style.css?inline").A).replace(/:root\s*,\s*:host|:root/g,":host"),(z=Array.from(es.matchAll(/@property\s+(--[^{\s]+)\s*\{([^}]*)\}/g)).map(([,e,t])=>{if(!Et.test(t))return null;let r=t.match(Ee)?.[1].trim()??"initial";return` ${e}: ${r};`}).filter(e=>null!==e).join("\n"))?`${U}
|
|
7599
7599
|
|
|
7600
7600
|
@layer base {
|
|
7601
7601
|
:host,
|
|
@@ -7606,7 +7606,7 @@ Defaulting to \`null\`.`));let u=C1(a,c)?a:null,d=C$(u)?o(u,c):void 0;return(0,e
|
|
|
7606
7606
|
::file-selector-button {
|
|
7607
7607
|
${z}
|
|
7608
7608
|
}
|
|
7609
|
-
}`:U);function En(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 Ei=En("/apps/vizbl-wall-art/http")??"";function Ea(e){return"shopify"===e.source||void 0!==e.apiKey}function Es(e){return"wall-panel"===e.resourceType?"panels":"rugs"===e.resourceType?"rugs":"flooring"===e.resourceType?"flooring":"shopify"===e.source?"wallart-shopify":"wallart"}function Eo(e){let t=Es(e);return"panels"===t?{query:void 0,config:{params:{productType:t}}}:{query:{productType:t},config:{}}}function El(e){if(!i0(e))return null;let t=e.response?.status;return 401===t?"unauthorized":402===t?"payment-required":null}function Ec(e){return iV.create({baseURL:e,timeout:3e4})}let Eu=new Set(["common","delete","get","head","post","put","patch","options","purge","link","unlink"]);function Ed(){return globalThis.process?.env?.NODE_ENV}function Eh(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}Eu.has(t)||r.push([n,String(i)])}}(t,r),r}function Ep(e){return!!("u">typeof FormData&&e instanceof FormData)||null!==e&&"object"==typeof e&&(e.constructor?.name==="FormData"||"function"==typeof e.getBoundary)}let EA=new Set(["authorization","cookie","set-cookie","x-xsrf-token"]);function Ef(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]=EA.has(e.toLowerCase())?"[redacted]":String(n));return r}function Eg(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 Ep(e)?"[FormData]":e}}function Em(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:Eg(e.requestConfig.data),requestHeaders:Ef(e.requestConfig.headers),responseHeaders:Ef(e.responseHeaders),responseBody:Eg(e.responseBody)};(e.status>=500||void 0!==e.error&&0===e.status?console.error:e.status>=400?console.warn:console.log)(n,i)}function Ev({clientName:e,configureFunctionName:t,defaultBaseURL:r}){let n=Ec(r),i=Ec(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||Ep(t.data))return t;let n=i3.from(t.headers);return n.has("Content-Type")||void 0!==(r=e.defaults.headers.common)&&i3.from(r).has("Content-Type")||n.set("Content-Type","application/json"),t.headers=n,t}(e,function(e){let t=i3.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=i3.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=Ed(),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&&Em({requestConfig:r,requestId:n,status:t.status,durationMs:Date.now()-a,responseHeaders:t.headers,responseBody:t.data}),t}catch(e){throw i&&Em({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=Eh(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"===Ed())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=i3.from(n);for(let[e,r]of Eh(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=i3.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=Ed())&&"testing"!==e)throw Error("resetApiClientForTests() can only be called in test environment.");n=Ec(r),i=Ec(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 Eb=Ev({clientName:"API node client",configureFunctionName:"configureNodeApiClient",defaultBaseURL:"https://api.vizbl.com"}),Ey=Eb.configureClientRuntime;Eb.configureAccessTokenResolverRuntime,Eb.configureHeadersResolverRuntime,Eb.configureUnauthorizedHandlerRuntime,Eb.isClientConfiguredRuntime,Eb.assertClientConfiguredRuntime,Eb.resetClientForTestsRuntime;let Ew=Eb.requestRuntime;async function Ex(e){return Ew(e)}function EC(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 EE(e,t={}){let{client:r=Ex,...n}=t,i=EC(e);return(await r({method:"POST",url:"/inference/room-planes/run-raw",data:i,...n})).data}async function ES(e,t={}){let{client:r=Ex,...n}=t;return(await r({method:"POST",url:"/layout/GetConfig",...n,headers:{...e,...n.headers}})).data}async function EM(e,t={}){let{client:r=Ex,...n}=t;return(await r({method:"POST",url:"/public/widget/activate-wallart",params:e,...n})).data}async function EI(e,t,r={}){let{client:n=Ex,...i}=r;return(await n({method:"POST",url:"/public/objects/public",params:t,data:e,...i})).data}async function EB(e,t={}){let{client:r=Ex,...n}=t;return(await r({method:"POST",url:"/public/widget/shopify/get-rooms",params:e,...n})).data}async function ET(e={}){let{client:t=Ex,...r}=e;return(await t({method:"POST",url:"/public/widget/get-rooms",...r})).data}async function Ek(e,t={}){let{client:r=Ex,...n}=t;return(await r({method:"POST",url:"/public/widget/token",data:e,...n})).data}async function ER({tinuuid:e},t,r={}){let{client:n=Ex,...i}=r;return(await n({method:"GET",url:`/public/objects/by-tinuuid/${e}`,params:t,...i})).data}async function EP(e,t={}){let{client:r=Ex,...n}=t,i=EC(e);return(await r({method:"POST",url:"/public/inference/room-planes/run-raw",data:i,...n})).data}async function ED(e,t={}){let{client:r=Ex,...n}=t;return(await r({method:"POST",url:"/public/widget/events",data:e,...n})).data}Eb.requestWithoutUnauthorizedRecovery,Eb.addResponseInterceptorRuntime;let E_=Ev({clientName:"API client",configureFunctionName:"configureApiClient",defaultBaseURL:"https://api.vizbl.com/v1"}),EL=E_.configureClientRuntime;E_.configureAccessTokenResolverRuntime,E_.configureHeadersResolverRuntime,E_.configureUnauthorizedHandlerRuntime,E_.isClientConfiguredRuntime,E_.assertClientConfiguredRuntime,E_.resetClientForTestsRuntime;let EF=E_.requestRuntime;async function EN(e){return EF(e)}async function EO(e,t={}){let{client:r=EN,...n}=t;return(await r({method:"POST",url:"/obj/Fetch",data:e,...n})).data}async function EQ(e,t={}){let{client:r=EN,...n}=t;return(await r({method:"POST",url:"/obj/GetKitItems",data:e,...n})).data}async function EU(e,t={}){let{client:r=EN,...n}=t;return(await r({method:"POST",url:"/obj/GetPublic",data:e,...n})).data}E_.requestWithoutUnauthorizedRecovery,E_.addResponseInterceptorRuntime;let Ez="x-widget-session-token",Ej=(e,t)=>ED(e,t);class EG{apiConfig;issueWidgetToken;now;refreshPromise=null;refreshThresholdMs;session;constructor(e,t={}){this.apiConfig=t.apiConfig,this.issueWidgetToken=t.issueWidgetToken??Ek,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{[Ez]:await this.getTokenForRequest()}}async getApiConfigForRequest(e){let t=await this.getTokenForRequest();return{...this.apiConfig,...e,headers:{...this.apiConfig?.headers,...e?.headers,[Ez]: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 EH(e,t){return e?.token&&e.sid&&Number.isFinite(e.expiresIn)?new EG(e,t):null}function EV(e,t,r={}){if(!e)return;let n=r.createWidgetEvent??Ej;e.getApiConfigForRequest(r.apiConfig).then(e=>n({event:t,timestamp:new Date().toISOString()},e)).catch(()=>{})}async function Eq(e){let t={"x-api-key":e.apiKey,...EW(e)},r=await e.widgetSession?.getTokenForRequest();return r&&(t[Ez]=r),t}function EW(e){return e.language?{Lang:e.language}:void 0}function EK(e,t){return["room-viewer","object",{apiKey:t.apiKey??null,language:t.language??null,source:t.source,tinuuid:e??null,resourceType:t.resourceType??null}]}function EJ(e,t,r){return["room-viewer","kit-objects",{apiKey:r.apiKey??null,language:r.language??null,kitUuid:e??null,ownerUuid:t??null,resourceType:r.resourceType??null,source:r.source}]}async function EY(e,t){if(!Ea(t))return EO({tinuuid:e},{headers:EW(t),signal:t.signal});let{query:r,config:n}=Eo(t);return ER({tinuuid:e},r,{...n,baseURL:t.baseURL,headers:await Eq(t),signal:t.signal})}async function EX(e,t,r){let n={page:t,owners:[e]};if(!Ea(r))return EU({...n,productType:"wall-panel"===r.resourceType?"panels":"rugs"===r.resourceType?"rugs":"flooring"===r.resourceType?"flooring":"wallart"},{headers:EW(r),signal:r.signal});let{query:i,config:a}=Eo(r),s=await EI({...n,productType:Es(r)},i,{...a,baseURL:r.baseURL,headers:await Eq(r),signal:r.signal});return{folder:s.folder,objs:s.objs,pages_count:s.pages_count}}async function EZ(e,t,r,n){let i=await EQ({folder:{uuid:e,type:"kit"},page:r},{baseURL:En(n.baseURL),headers:EW(n),signal:n.signal});return{folder:i.folder,objs:i.objs,pages_count:i.pagesCount}}async function E$(e){let t={baseURL:e.baseURL,headers:await Eq(e),signal:e.signal},r=Eo(e);return("shopify"===e.source?await EB(r.query,{...t,...r.config}):await ET(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}))}let E0={destination:"floor",ar:"appclip"},E1={"wall-panel":{handoff:null,surfaces:["wall"],lighting:"static-neutral-hdr",roomPresets:"wall-room-presets",chrome:"immersive-room",presentation:"immersive-panels",manipulation:"panel-group",productNameSource:"collection",catalogTitle:"wall-panel",introduction:"focus-resource",identity:"modelled-resource",composition:"single-listing",materialRole:"finish"},wallart:{handoff:{destination:"wall",ar:"webar-usdz"},surfaces:["wall"],lighting:"static-neutral-hdr",roomPresets:"wall-room-presets",chrome:"framed-scene",presentation:"framed-default",manipulation:"single-resource",productNameSource:"material",catalogTitle:"title",introduction:null,identity:"textured-resource",composition:"single-listing",materialRole:"product-identity"},rugs:{handoff:E0,surfaces:["floor"],lighting:"remote-neutral-hdr",roomPresets:"floor-room-presets",chrome:"immersive-room",presentation:"immersive-default",manipulation:"drag-with-rotation-handle",productNameSource:"collection",catalogTitle:"rugs",introduction:null,identity:"modelled-resource",composition:"sized-design",materialRole:"placeholder"},flooring:{handoff:E0,surfaces:["floor"],lighting:"remote-neutral-hdr",roomPresets:"floor-room-presets",chrome:"immersive-room",presentation:"immersive-default",manipulation:"rotate-on-floor",productNameSource:"collection",catalogTitle:"flooring",introduction:null,identity:"modelled-resource",composition:"color-design",materialRole:"product-identity"}};function E2(e){return E1[e].surfaces}function E3(...e){return si(al(e))}let E9=ss("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 E4({className:e,variant:t,size:r,asChild:n=!1,...i}){return(0,eh.jsx)(n?aa:"button",{"data-slot":"button",className:E3(E9({variant:t,size:r,className:e})),...i})}function E5({...e}){return(0,eh.jsx)(oB,{"data-slot":"dialog",...e})}function E8({...e}){return(0,eh.jsx)(oD,{"data-slot":"dialog-portal",...e})}function E6({...e}){return(0,eh.jsx)(oK,{"data-slot":"dialog-close",...e})}function E7({className:e,...t}){return(0,eh.jsx)(oL,{"data-slot":"dialog-overlay",className:E3("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 Se({className:e,children:t,contentInsideOverlay:r=!1,showCloseButton:n=!0,portalContainer:i,...a}){let s=(0,eh.jsxs)(oQ,{"data-slot":"dialog-content",className:E3("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,eh.jsxs)(oK,{"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,eh.jsx)(o5,{className:"size-6"}),(0,eh.jsx)("span",{className:"sr-only",children:"Close"})]})]});return(0,eh.jsx)(E8,{"data-slot":"dialog-portal",container:i,children:r?(0,eh.jsx)(E7,{children:s}):(0,eh.jsxs)(eh.Fragment,{children:[(0,eh.jsx)(E7,{}),s]})})}function St({className:e,...t}){return(0,eh.jsx)("div",{"data-slot":"dialog-header",className:E3("flex flex-col gap-2 text-left",e),...t})}function Sr({className:e,showCloseButton:t=!1,children:r,...n}){return(0,eh.jsxs)("div",{"data-slot":"dialog-footer",className:E3("flex flex-wrap items-center justify-start gap-2 pt-2",e),...n,children:[r,t&&(0,eh.jsx)(oK,{asChild:!0,children:(0,eh.jsx)(E4,{variant:"secondary",className:"text-text-dark",children:"Close"})})]})}function Sn({className:e,...t}){return(0,eh.jsx)(oH,{"data-slot":"dialog-title",className:E3("typo-base-18 text-text-dark",e),...t})}function Si({className:e,...t}){return(0,eh.jsx)(oq,{"data-slot":"dialog-description",className:E3("typo-base-16 text-text-light",e),...t})}function Sa(e){return(0,eh.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",...e,children:[(0,eh.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,eh.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,eh.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 Ss(e){return(0,eh.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",...e,children:(0,eh.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 So(e){return(0,eh.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",...e,children:(0,eh.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 Sl(e){return(0,eh.jsxs)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:[(0,eh.jsx)("g",{clipPath:"url(#clip0_3784_10212)",children:(0,eh.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,eh.jsx)("defs",{children:(0,eh.jsx)("clipPath",{id:"clip0_3784_10212",children:(0,eh.jsx)("rect",{width:"24",height:"24",fill:"white"})})})]})}function Sc(e){return(0,eh.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",...e,children:[(0,eh.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,eh.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 Su(e){return(0,eh.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",...e,children:(0,eh.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 Sd(e){return(0,eh.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",...e,children:[(0,eh.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,eh.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,eh.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 Sh(e){return(0,eh.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 13.3333 13.3343",fill:"none",...e,children:(0,eh.jsx)("path",{d:"M12.6667 2.66759H9.33333V1.55425C9.31769 1.12747 9.13347 0.724291 8.82105 0.433114C8.50862 0.141937 8.0935 -0.0134857 7.66667 0.000918958H5.66667C5.23984 -0.0134857 4.82471 0.141937 4.51229 0.433114C4.19986 0.724291 4.01564 1.12747 4 1.55425V2.66759H0.666667C0.489856 2.66759 0.320286 2.73782 0.195262 2.86285C0.0702379 2.98787 0 3.15744 0 3.33425C0 3.51106 0.0702379 3.68063 0.195262 3.80566C0.320286 3.93068 0.489856 4.00092 0.666667 4.00092H1.33333V11.3343C1.33333 11.8647 1.54405 12.3734 1.91912 12.7485C2.29419 13.1235 2.8029 13.3343 3.33333 13.3343H10C10.5304 13.3343 11.0391 13.1235 11.4142 12.7485C11.7893 12.3734 12 11.8647 12 11.3343V4.00092H12.6667C12.8435 4.00092 13.013 3.93068 13.1381 3.80566C13.2631 3.68063 13.3333 3.51106 13.3333 3.33425C13.3333 3.15744 13.2631 2.98787 13.1381 2.86285C13.013 2.73782 12.8435 2.66759 12.6667 2.66759ZM5.33333 1.55425C5.33333 1.44759 5.47333 1.33425 5.66667 1.33425H7.66667C7.86 1.33425 8 1.44759 8 1.55425V2.66759H5.33333V1.55425ZM10.6667 11.3343C10.6667 11.5111 10.5964 11.6806 10.4714 11.8057C10.3464 11.9307 10.1768 12.0009 10 12.0009H3.33333C3.15652 12.0009 2.98695 11.9307 2.86193 11.8057C2.7369 11.6806 2.66667 11.5111 2.66667 11.3343V4.00092H10.6667V11.3343Z",fill:"currentColor"})})}function Sp(e){return(0,eh.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",...e,children:[(0,eh.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,eh.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 SA(e){return(0,eh.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",...e,children:[(0,eh.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,eh.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,eh.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,eh.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,eh.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,eh.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,eh.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,eh.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 Sf(e){return(0,eh.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",...e,children:[(0,eh.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,eh.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,eh.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 Sg(e){return(0,eh.jsxs)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:[(0,eh.jsx)("g",{clipPath:"url(#clip0_3784_10281)",children:(0,eh.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,eh.jsx)("defs",{children:(0,eh.jsx)("clipPath",{id:"clip0_3784_10281",children:(0,eh.jsx)("rect",{width:"24",height:"24",fill:"currentColor"})})})]})}function Sm(e){return(0,eh.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",...e,children:[(0,eh.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,eh.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,eh.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,eh.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,eh.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 Sv(e){return(0,eh.jsx)("svg",{fill:"none",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",...e,children:(0,eh.jsx)("path",{d:"M6.05944 11.1406C6.47507 8.23438 8.97819 6 12.0001 6C13.6563 6 15.1563 6.67187 16.2438 7.75625L16.2626 7.775L16.5001 8H15.0032C14.4501 8 14.0032 8.44687 14.0032 9C14.0032 9.55313 14.4501 10 15.0032 10H19.0032C19.5563 10 20.0032 9.55313 20.0032 9V5C20.0032 4.44688 19.5563 4 19.0032 4C18.4501 4 18.0032 4.44688 18.0032 5V6.66875L17.6501 6.33437C16.2032 4.89375 14.2032 4 12.0001 4C7.96882 4 4.63444 6.98125 4.08132 10.8594C4.00319 11.4062 4.38132 11.9125 4.92819 11.9906C5.47507 12.0688 5.98132 11.6875 6.05944 11.1438V11.1406ZM19.9188 13.1406C19.9969 12.5938 19.6157 12.0875 19.0719 12.0094C18.5282 11.9312 18.0188 12.3125 17.9407 12.8562C17.5251 15.7625 15.0219 17.9969 12.0001 17.9969C10.3438 17.9969 8.84382 17.325 7.75632 16.2406L7.73757 16.2219L7.50007 15.9969H8.99694C9.55007 15.9969 9.99694 15.55 9.99694 14.9969C9.99694 14.4437 9.55007 13.9969 8.99694 13.9969L5.00007 14C4.73444 14 4.47819 14.1063 4.29069 14.2969C4.10319 14.4875 3.99694 14.7406 4.00007 15.0094L4.03132 18.9781C4.03444 19.5312 4.48757 19.975 5.04069 19.9688C5.59382 19.9625 6.03757 19.5125 6.03132 18.9594L6.01882 17.35L6.35319 17.6656C7.80007 19.1062 9.79694 20 12.0001 20C16.0313 20 19.3657 17.0187 19.9188 13.1406Z",fill:"currentColor"})})}function Sb(e){return(0,eh.jsxs)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:[(0,eh.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,eh.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 Sy({className:e,...t}){return(0,eh.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",className:E3("size-6",e),...t,children:[(0,eh.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,eh.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 Sw="var(--v-borders-medium)";function Sx({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,eh.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:E3("spinner-logo shrink-0","sm"===r?"size-9":"size-22",e),children:[(0,eh.jsx)("g",{className:"spinner-logo__intro-shell",children:(0,eh.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,eh.jsx)("circle",{className:"spinner-logo__intro-orb",cx:"46.27",cy:"45.8",r:"11.18",fill:"white",stroke:Sw,strokeWidth:t,strokeLinecap:"round",strokeLinejoin:"round"}),(0,eh.jsx)("circle",{className:"spinner-logo__result-ring",cx:"46.5",cy:"45.5",r:"33.46",fill:"white",stroke:Sw,strokeWidth:t,strokeLinecap:"round",strokeLinejoin:"round"}),(0,eh.jsx)("g",{transform:"translate(27.786 31.4489)",children:(0,eh.jsx)("g",{className:"spinner-logo__result-glyph spinner-logo__result-glyph--success",children:(0,eh.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:Sw})})}),(0,eh.jsx)("g",{transform:"translate(32.4879 31.4885)",children:(0,eh.jsx)("g",{className:"spinner-logo__result-glyph spinner-logo__result-glyph--error",children:(0,eh.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:Sw})})})]})}case"default":return(0,eh.jsx)(SA,{...o,role:i??"status","aria-live":a??"polite","aria-label":s??"Loading","data-slot":"spinner",className:E3("size-4 animate-spin",e)});default:return t}}let SC="inset-0 h-dvh 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",SE=(0,ep.createContext)(null),SS=(0,ep.createContext)(null),SM=(0,ep.createContext)(null),SI=(0,ep.createContext)(null),SB=(0,ep.createContext)(null),ST=(0,ep.createContext)(null),Sk=(0,ep.createContext)(null),SR=(0,ep.createContext)(null);function SP(e,t){let r=(0,ep.use)(e);if(!r)throw Error(`${t} must be used within a RoomViewerProvider`);return r}function SD(){return SP(SE,"useRoomViewerMetadata")}function S_(){return SP(SS,"useRoomViewerSurface")}function SL(){return SP(SM,"useRoomViewerRooms")}function SF(){return SP(SI,"useRoomViewerResource")}function SN(){return SP(SB,"useRoomViewerSceneState")}function SO(){return SP(ST,"useRoomViewerSceneActions")}function SQ(e){let{sceneGestures:t}=SO(),r=()=>t.getState()[e];return(0,ep.useSyncExternalStore)(t.subscribe,r,r)}function SU(){return SP(Sk,"useRoomViewerWallResourceControls")}function Sz(e,t){for(let r of Object.keys(t))if(t[r]!==e[r])return{...e,...t};return e}function Sj(e){return Object.entries(e).every(([e,t])=>"shadersReady"===e||t)}function SG(e){return Sj(e)&&e.shadersReady}let SH={placementReady:!1,prepareReady:!1,artifactsReady:!1,assetsReady:!1};function SV({className:e,...t}){return(0,eh.jsx)(li,{"data-slot":"label",className:E3("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 Sq({className:e,...t}){return(0,eh.jsx)("div",{"data-slot":"field-group",className:E3("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 SW=ss("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 SK({className:e,orientation:t="vertical",...r}){return(0,eh.jsx)("div",{role:"group","data-slot":"field","data-orientation":t,className:E3(SW({orientation:t}),e),...r})}function SJ({className:e,...t}){return(0,eh.jsx)(SV,{"data-slot":"field-label",className:E3("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 SY({className:e,...t}){return(0,eh.jsx)("div",{"data-slot":"field-label",className:E3("flex w-fit items-center gap-2 text-sm leading-snug font-medium group-data-[disabled=true]/field:opacity-50",e),...t})}function SX({...e}){return(0,eh.jsx)(cX,{"data-slot":"select",...e})}function SZ({...e}){return(0,eh.jsx)(c1,{"data-slot":"select-value",...e})}function S$({className:e,size:t="default",children:r,...n}){return(0,eh.jsxs)(c$,{"data-slot":"select-trigger","data-size":t,className:E3("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,eh.jsx)(c2,{asChild:!0,children:(0,eh.jsx)(Su,{className:"size-6"})})]})}function S0({className:e,children:t,position:r="item-aligned",align:n="center",portalContainer:i,...a}){return(0,eh.jsx)(c3,{container:i,children:(0,eh.jsxs)(c4,{"data-slot":"select-content",className:E3("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,eh.jsx)(S2,{}),(0,eh.jsx)(ua,{className:E3("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,eh.jsx)(S3,{})]})})}function S1({className:e,children:t,...r}){return(0,eh.jsxs)(up,{"data-slot":"select-item",className:E3("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,eh.jsx)("span",{"data-slot":"select-item-indicator",className:"absolute right-2 flex size-6 items-center justify-center",children:(0,eh.jsx)(um,{children:(0,eh.jsx)(So,{className:"size-5"})})}),(0,eh.jsx)(uf,{children:t})]})}function S2({className:e,...t}){return(0,eh.jsx)(ub,{"data-slot":"select-scroll-up-button",className:E3("flex cursor-default items-center justify-center py-1",e),...t,children:(0,eh.jsx)(o8,{className:"size-4"})})}function S3({className:e,...t}){return(0,eh.jsx)(uw,{"data-slot":"select-scroll-down-button",className:E3("flex cursor-default items-center justify-center py-1",e),...t,children:(0,eh.jsx)(o6,{className:"size-4"})})}var S9=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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"}}'),S4=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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"}}'),S5=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,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"},"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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"}}'),S8=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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"}}'),S6=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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"}}'),S7=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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"}}'),Me=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,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAIAAAB7GkOtAAAPDElEQVR4nO3dbW/azBaG0WL1//9kcqRGB+UBAsYej2f2vdanqk2JQ8y+/AqXP3SxLMvZiwDwH6YSQCgBAAglAAChBAAglAAAhBIAgFACABBKAABCCQBAKAEACCUAAKEEACCUAACEEgCAUAIAEEoAAEIJAEAoAQAIJQAAoQQAIJQAAIQSAIBQAgAQSgAAQgkAQCgBAAglAAChBAAglAAAhBIAgFACABBKAABCCQBAKAEACCUAAKEEACCUAACEEgCAUAIAEEoAAEIJAEAoAQAIJQAAoQQAIJQAAIQSAIBQAgAQSgAAQgkAQCgBAAglAAChBAAglAAAhBIAgFACABBKAABCCQBAKAEACCUAAKEEACCUAACEEgCAUAIAEEoAAEIJAEAoAQAIJQAAoQQAIJQAAIQSAIBQAgAQSgAAQgkAQCgBAAglAAChBAAglAAAhBIAgFACABBKAABCCQBAKAEACCUAAKEEACCUAACEEgCAUAIAEEoAAEIJAEAoAQAIJQAAoQQAIJQAAIQSAIBQAgAQSgAAQgkAQCgBAAglAAChBAAglAAAhBIAgFACABBKAABCCQBAKAEACCUAAKEEACCUAACEEgCAUAIAEEoAAEIJAEAoAQAIJQAAoQQAIJQAAIQSAIBQAgAQSgAAQgkAQCgBAAglAAChBAAglABAG9d/zl4K+IAAQANGPzMSAGhmWbygmIn1Ffay+c+kBAAglADAIewWML7L2QuQwtHhtEHvN874rKMAoQQAtrP5z9SsptCY6c8srKkAoQQANnKdD7MTANjC9KcAAYCWnABgIlZW+JjNf2oQAIBQAkCEhtvsLx7K8R/mYn2lvu+R3aQBpj+VWGVhrdcJcWKA6QgAk9kzZ4/+vxrAXASAOT5r9+dsNWehCQFgaHPNfacBmIv1lXE9Tvzb34wfAxjf37MXAO6tHO7X63WoLe6hFgbWsMoylqM37bc9/tv/ZfozI2stY1n+WfnFDgTBHgJAcfsjYfOfqqy4jKjVTsDTf7XfAN8EgEHt36x+MejXN0AtKEwAqPzJ7Dsrsv56pD3fBc4iAFTW7X0jNIAZCQDjOvRyoLbv7OY8MDOy1lLEidvgpj+TsuJSR6sGOJ5DCG8FQSk/3x+izxx/u/l/txh2FxiHdZGhbRiXQ22/D7UwcEcAKOju8wOO/l6vv+B2Naptf0ZjjSRXh0gY+ozM2snoxp+h63c4xv9ZiOIkMLR364GJz8gEgAl0vrBnj7slvF2VpAQM6HL2AqTw+m+lbQMefy8HNcYKwICslExm0kk6/r4LgaZ8LVHg6sk9NACacAgoa2bdDkm/HkaDLG2fYfrzh3VhKFEEoJMRXvZPp9sICxa1QT3vE049rgJKZAb15zlnQFbKOE+ve5l0a3oWpj9jsl7CsUx/hmXVTGEbH7gjAMzKljXs5CXExMZvwPhLSDJrJ3MzYWEzLx6mN2wDhl0w+OY+gAjOAHdm9DMFqymzGvb2BdOfWXgriIih0HxQ9v9xVr6L0elMfyYiAEXmwlljscO8G3zi/2T6MxfrKynT+WimP9OxyjI6gxUO4qUFbdgZYjouA2UCnT+zZf+ZapiClZXJmLDQitcS89EAaMILCSCUADAlOwGwn1cRsxqwAQMuErxgfWVi4wzc5Z+zlwI+Y5UFCCUAAKEEgLk58AKbefEwPQ2AbbxyqODcBigQk7LiUoQpDJ/ymqGOUxogPMzLugvbmf5MzepLKSYyrOfVQjUaACt5qVDE7YNiRv7EGBiKAMB2YsPUfCQkdRjH8BF7ALCd8w1MzeoLEEoAAEI5B0C1ozHOBMBK9gCopudxebFhagJAQd0a4CQwU7P6wkamP7OzBsMWpj8FWInhY6Y/NViPKejQc7OmP2VYlSni+s/ZSwEzEQCK+N4wPzoDNv+pxI1g1LEsy9E7AU8fXxWYlABQcz+gw3e5uV6vGsCMrLUUdOg4fnxw059JWXGp6aChbNZTiUNAlNX8lIDpv94pV2T5BX1KAKisVQNMlvVOvBj3+1v7Za3nmaK4neNg+afd4sBA7AEU8WJIPW6R/fzi9dtr887B1/sBHS4ehTEJQJy7OT7vWP/Ib1M+5MeHp6z99ZlxwFNGAylehFAjy/Cr/IhDQPCcUUJ5VnGCrJzprvwhhLUc/sPoJ4d1nWguACWZAJBOA4glAARZcyuAHpBDAEjx22R//BAxDSCEAMATGrCN520u7gOgPlMJnhIAyjL34TUBoPLo7/MRwTAp5wAoPv33Pw5UJQCU0mr6QwKHgCjoNv1txcMLtpKoo/nl/PpBbQJANW1P/GoAhQkAvKEBVCUAFGFMw6cEgIKax0BdKEkAYBUNoB4B6ME16T2Z1LCSwQRrSQvFCEAPBgcJTl/P7Wp/yvMFEMpbQVDEsiwdtkCv1+sUm5kvnooplp8+BACm91H5vr9YBnAICCCXAACEEgCAUAIAk13sCK0IAEAoAQAIJQDU4dJG+IgXTA8GEzAgg6kHpw2BAQkAQCgB6MEhIGBABhNAKAHowTkAYEACABBKAABCCQBAKAEACCUAAKEEACCUAMBn3NZHGVZlSjGdYT2vFoBQAgAQSgAAQv09ewGAje8f5YQHOwkAfKDJzL1er7fH2fNGgcf93w0/pnc8nJEAUM2yLMMOo9uCDbuEj4tnP6Mwv1qAUAIAEEoAKMhRi4YGP1rFHl4nsJauUIwVGiCUAFCTrfVWPJOF+dXCKuYg9VingVecBC5MACir4TZ7qxuAWywLNCMAAKEEACCU9wLifIMfG3H8h6oEgE5MQBiNANBG4fle+Edbw/WvhQkAe4XPR5iXAACrPr5G6esRAOANo78qR/cAQtkDAIL2VO7OaV///18yz3ULABDkt0hc38WjZCEK/kgArCEAAKEEoIeSO4/A7AwmgFACABBKAABCCUAPbqQEBiQAAKEEACCUAACEEgCAUAIAEEoAAEIJQA/eCgIYkMEEEEoAAEIJAEAoAQAIJQAAoQQAIJQAAIQSAIBQAgAQSgAAQgkAQCgBAAglAAChBAAglAAAhBIAgFACABBKAABCP9Sv5k8FwFsCABBKAABCCQBAKAEACCUAAKEEACCUAACEEgCAUALQw/V6PXsRAO4JAEAoAQAIJQAAoeoE4HK5/Pb3d//0+DcAgf7+KeF7oL8Y64//dLlcvr6+jl80gEHV2QPYwH4AkCw6ABoAJEsPQJ8GVP04IWBqRc4B7HTQ+QC7F8DIBOD5sN7QA+MemIsAPGeaA+U5Nt2D602BARUJgAkLEBoAVnI9EnBjHACEEgCAUAIAEEoAenBRKTAgAQAIJQAAoQSgB7cpAAOqEwBDFiA0AAB8RAAAQgkAQCgB6MF9AMCABAAglAAAhBIAgFACABBKAABCCQBAKAHowdtUAAMSAIBQAtCDG8GAAQkAQCgBAAglAKVcr9edXwDk+Hv2AtCAsQ6Hul6vy1Jwc1kA6oz+kisocBwjo86Gv/0A4CMCAPBG1d3rmj8VAG8JQKm3gnAUCFhPAGZl1gM7CQBAKJeBljo9ZbcAWE8AJlb1ygSgDxOk1PSXBGA98wIglAAAhBIAgFACABBKAABCCcCUXO8P7CcAAKEEACCUAEzJDV/AfuYIQCgB6OFyuTR/TOeBgZ0EACCUAACEEgCAUAIAEEoAAEIJAEAoAQAIJQAAoQQAIJQAAITeeC8AAKFvv1jzpwLgLQEACCUAAKEEoIevr6/mj1n1oCTQzd8/VRzxnvv7p/xtqW7/evpyAlQLwCxb90oADEIADpz4r0f8z8f5+ec1x3au16tDQMBOAnD+0fy7VNx9i6cVMf2B/QTgQD9H+fccXzPcXzzIz78ZpwHfS1L1VkkoTADO3HV4/Mu3Sbj9l/XnEvqM5p9BEgOYggB85m7aNj8i9P2Av830p0P/9dVHp7jFQAlgZAKwy+NVnk18fX09TvCPLh866FwFUIkAtPFiKG+bxXe7Aq/3DAA2EIDDvdiWX6nh9L9cLm5EAEoFYK5Z9vYI/uO/tvoBn9588PrB53pugbgAzOvp5aFPv6bn5aq//Wu3RQI6KPIyNo+OOP278ln97ctcAkQZyzC33bRlD6COI65J3XDFkRjDLASgiIOu+1zZgE+XZP+JcWC/mvs1aQ6dns0f/GlRLv/X9nsBL9gDYCx2DqAbewCMzp4BHMQeAF1tHuVr3v7IvgJ8RACYz+Os/87D+jvsAAEIupts54OP5u32/tPFVgX4SQDqaH4MZM/oH3PUHvTurdS2FL0LTACq2bDZ23MDv+332vNo9g9AACKMeQwn4T29KWCpu/kvALCKNmRaSk9/AYC9nFeoaqk+/QWAfsofiXJeoYwlYPR/EwDoVwU9GNwSM/q/CQD089tukDCMYAmb/gJAJ+WP/+zkRAKniCsejEwp6UkAAEI/xNQhIA5nq7bVW3o4hUBbAsAhDP2eXIHKNgIANdld4C0BgCxuTeBGACD6qJodhWQCADzh49USCADwhpPMVRW5VMM1J1Ty26fe/xlbjSQsSW8IYQ8AaMPphOkIAExg/M3/F5xOGJYAwEw3A8/O6YShCACMaOpN/k+5NeEsRVayqFcLBOpZhSXmPHDKzwlM7fLP2UtRjQAA09CAtgQAIFSFANgoAAgNAAAbCABAqOkD4PgPRPGSb2jup9KqAIFef2ZykzsGLr/Plkpjx53AQCkfZeDyeTN+fvHsMZh16Wd/3oGD9gBWfv3l4YtvX7Z/vMwyoOZYykmfXGC6j0z4+vpqO2FGnlfjLtmMzybQx6SfmTPa0p6/BHM9X8CMR4EGdzlpsac5CTzp7xVg2B2aCQJg9AOBvv5bhSMm4aCz1dAHyp8GaGLPjzzcHkDg7w9gsz33JZwfABMf4JS9olGGrwwAH3EIaIO752fEJ8uvEHhLAGq+G+jXP2cvBTA0s36/888BJLzjEsCARtwDeGSfACA0AN9kAKChWQ+tOCgEPD0VbDisN/cz5TcNOF+42fRPlt83wDZFpqcMAFQ+CQxAQ0UC4OoggNAAaABAbgA0ACA3ABoAkBsADQDIDQAAuQGwE5DAe0PBTjUDQA4NgM3KBsBcAHit8jsoeH8IgMQ9AAByA+AoEEBoAAB4QQAAQgkAQCgBAAglAAChBAAg1N+zFwA2XsXrRj/4s8//ABf9EDUsfmW3AAAAAElFTkSuQmCC"},"shading":{"width":128,"height":128,"neutral":128,"dataPng":"data:image/png;base64,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"}}'),Mt=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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"}}'),Mr=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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"}}'),Mn=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/nE4Y4kgM4mJvhdLQQoPN500030dhp4OznAHilQ4A7rhFuj5eFAG4P7bQa+Dy5BxQOugQEQK25bq36/w4lw93lcrkHPFBQQUkYBjkonSAUEbhzADZAa8FXdnKMsOBcovH5Oy6o54OKhwa0DbhDCU4Uhtd+BgGcBWGVgIx7Qb+rhdrBQWu986+tH7VrmbMlS0YeReYUkQQ4LFALwYoekaqJw/B8VEScTvPnUtwbuMMHuON6cn2cH86SAH5lPxYYttbjgNbpbFt9S0DXJc0Qz9mMfSRgTuntyO/qerRy0LqkaowwxdhhzC9uKHDfPAl+J0fCBOfqhvIJ0JDB6XyCPp2GE+GS/Y8//vhTTz3liSilVXF75tBve8AA1nHX2ajE5kAfMNdaiB3xERxkjyhzEGYANCGA5qzPwwHQxgEcz7mYWf1RegDdhVNo5kDPNohjBu6dBNw5iz3ccCUgI37jlrQ4tsZgYLrHHLTteskYcCN/Ox2ghCLKBNCuiz8KlOzkVxo1O234fL1jEswvBNC0uaaHMQpjPwoH3Llb/oj+wU4u7sGr8HwycOLOETcmEccC64CATN7AkGSzPGdLdsdBseHFSWuHHVrjEpzIHFw+CQYAGqSEKwAimPJoej58ghuPxk5sLP6PAzEHHHDMAezh4nzCxCorn9Lwb0oyRrPrNZUO1D13AGVLagzI95GVLk/RCbIWyhxIANCjhfiEEr0dzuUZ2eChuALbXDBw507oAVyQ6zjeZtT22CTY5wcffLAS0EW/y0H0iVYKAV0Ouoak2+qX254BAV1DUgaSpRO0iogmjwEwDgq4OqbsBxzDotpV2jUXtH9wOoirkfCLMAO//vWvscPsxBNlyLYqeiMjfnOSzMHANswRsFEXzcHaXrb0hu7X4iLPXbM4yhKQO0G2xhLg4ItfoQRMDXcDOk3+tkm4FEDzycFckCvcNwnQMyBQ7ThOpAeso6FFa7fow2rmQBraDpEtc4v+EgJaVdYdCc6dO6BzyfF2gmyKW2uMFsL2nn322WyDIGcZh8DVASX54yuKRTts7ME5AC0EuNH8fQp+wh9dlTZbGv4tW1I4yL2hq+I3ErAExxuGspGhjY516U9ZC3X9UQggCsR8ANtyphdrIAjmjOtAALoFoA26OTOhzYcS9tNFOOCZZ575zW9+syrNv4XewUVwULrCHLjZlizvAXOAjonswpq74/hSuRMULZSjpJoBfsUMQAkHGE0z2MnpBv7wfJwOQ+eAMs2fi/Cr0MENuKP90T/8xMaq+J2FgFsnKf1gzEF+woEHNTAeGztTe7WddsdWfwYBbWQiE6BdZb8BOM0AcuckPiwXBDRaOioePcM14QPEae/s4VwjdJy17gH5/nLDD/SzdDkoNMx5seOm2uI1cMkGlI9bQ75Uy4FayFFxDs85t6Uddl5MAoDVgISjXw2+l2WPIQeEfkBvwAywgePE6VyKDS6yJiC3/axzbp2RsT0YQLZEdRTcu95wS3n3NsYudctBMQNteE4C8EF1bxxnSRhMQIDoiyQEgDjtHXXElTle4wzuzhDAKGNj1NEqa54Wbod5OlhZHY052DiG2Kgi2isMet4cN4NLtcdnAkILhTtk/BkCQBB6oIQjGQRoDIAF/QMsdgWIAVw1Prg7DuAslD7H6BoBPQMCDlvFPXVb/W1JcieYswd+7tRfajmYG460HAwwnWv43TvnHmI0kOOjMUkQQwHmwpiIZw+xOe0BV8ATBWjnHYWLa9IJ/Ilrsh/EsbqgDzGYBH7iIqu4IQmcQ7/tBHNdYePwLZiYM9dzuOdBSVy//FeXno10ZgJaLYRoBrDDTKkTi4YDnUuaMyiDjEZYS8BN+iAGG9RFNH+YQCNhCaCKgRv/C3mreLAu4nMctK7RHGRj7bxE5xTXoKV/3EXy7e2IgNIJaOwQQCCIhm/MhxtAhwA6sACuBHi3XI1LYYdp9UDvAJj+wQgASjgYSmBiPSmftf8A99sn2UjDAIs5XzCrr9hYgv74rwfdqPSkICDGwwMtxCc/GXfjV04Bd5C5axLbMXDT0tkP3HhBsOIcAF/ZkIMXX3zxueeeg57VuPnfvl0G6mj8hHMEbNQSt+xEbl4spe9mArIZCH80CEAXORpwPxxogWndtHFQhga21efOSrIh7qgdBsaY3xdeeAH0OZIrbCPg9k3S7Qrt828ctd20SbrQtxZo1zTMEZDtcOkEmgFdUo5np5EfMNXN1yvlDsGHq2kY0DMAza90hWeffRbc6R+oJrQZDhUXXMWDjQlwxqftDV2b3AJx005kru3PEdDuXEJAiTOGJzpHAJ1AO4x4Co3azENUCnvCAPDp0FptY+AB3PlJF5ZOwGjABLpV1j9d0MX9ju1SOJhrmEvQ79rwOfSX9ICNHHTvMBPg8CoTYK4nbR9uDAE5EKONo3bQMDr4XEFjcM8k3i0bXgcK9Z3oARDABn+6yuY3cM+fczKniLoo7MgvnGvaXSf4DSRARygPxzIBOkI8tUNZQOcUsaZ1s8Ee0afVQ4YDAo6XAOyHs5icBQEqonUwruifO5ZJ1ylagsK+EDB38QEZY/1T+mhxhNohMQRwMDiyH4uq2hFrxKGAekk3H4jMQedBzMY1PqpJ4BO2Vrn537ETabXQEl28Ef25Rr3E5W3PXX5Aq4VKJ5AADiACEaMtDsYp4lfHAfYDlBJY8ysbOJoYAHCnsRuW0EnlU+RXu2j+AwK6Nrnrnrdj5uXeZ+FyfOLCX5cQgCfKVz6NArkTm8wnUEAAfcixLg7P45PIBHCZkws9dAV0FJ/GLVbF/9kdAUURtfGiFrJxJxhDtmTc0PpjG63UmAD0PtCzn0AQIWU8Ig7jJ3qAabZgCix6RCCDkjFblCsDCP0AiOBD042wvbYBxf/ZNQEZ/Y0EdENpbW/ozk6PLfly5bMjApwjwxGijUsAiZ6cfv8k0a5N+1FBQQkE0CHYwwauJ3ARiXOqEnqconljVNBAERVYxxwscZbmaJsbgoy9ph31AAjgV2JBfDrJzhVQQWKIUeUUNpyigA+dUayuuPNJq+cnTneMXXvAwPGfI6AbIBpHrccEjElaoru6cZElFmUJARzAV37leBOnIYATwYF2zXWMN9j2HSEDhXerGeA6jqKRdVZEl4DAd46MboxoTMDC8XAb2d+p5Vhie7v2fI6AbIeRiyfhAdljgEiF4xwkDd/sIAQD4GQ9F6RboKn4Fy7L8U7Tr4NxXR+0Ox7OrMyFJcZR0pt2LvtIQGse5gZi3aB0tgFBAFMCtH0DcDwpPo9uJfiibSJQapzOBCEnveHDv3NwQECUqNysChoHggYEDLzAXaDfTtEsUUFzRnjOBswR0HqibnOi4yy2jX26IADN43W4gmtU3dY3cfCFjuITC4wBWBvhbhRoRzIeD++OgG7UeiEBAzPQbf5zKqh0AuNxjoTZY29gm4M5ix7gqJjruAiAPWal2/CdNOZgVwlA1ZOTrObioAuJWTJhuY/ot5OUSwbSO6InQhERDmq1kASwk/lII6PaAE7nLLNO+AR3IAZfGztKCUw4V9WEqLs4AKdoMwFzMzMDH3RHkbiN0HfTVRcO4nZBQPSAucEwG1aDcPQL1pGISHs3LdekK1B2CQbXNJpE/BnC2AMxZuaus6O7BIynhbsH7GL8tZCAhT0gj3h3NBnQ2gADol0C+MlEIPEFcc4CUBOkdY3MHWIbZ+kTn/jERz7yEQZurg9gg1OAnljFb3/723VeUA7G3bZbyf5PN/4zZuLGocwNBcYqfnmHaJNTBuGgWJCtrwkNHGkcgq5AP3jve99LAq/ZjKyjP/744z/2sY/BAfNfXFz9w5F0Ha6wXiU5mIvfOFPf9f3ngj9zBHSXQy1RQQsDDDtCP7ygrh02HsdX9Q+6xakYc/9p1HzSzOHgzDPPBHEKS3z+85//5Cc/eeihh1owJeITdiCusOqiPE7P2oj+XCJb17u/cZPM8bcvBJRRRV4E1xKQU6bBV2dJx99F2Gyb7eyMPHoGDr761a+ykuCLX/zikUceid02Uu0KVgdory3SW0JAN19xEH8eE3DjTmTQhzYSsCSxrl2FWAjIeVqm4hrddOUBe+gQXkp/1HsGcTg48cQTTzrpJCxBpG1ZsMDaNsYtVuM83MGvxeRuTNFZYmkH5rcbNRpPSe6IgLysoywcywRgA4iDcqLpzexxLl5MdTRd7csyAjigE+QZXK7v8jz0FcPgP/3pT6suyuM5qTmPs50mXJhKvaT5d4Ogg4n7iK91ySvJkLn5z9kAjTCqHA0DlE7TO+3ln5rEGNn2/GRJG9u+BDghjPcJ+gyM12vENqrR5fkHg9SgJf2gmzg0njvbSECXwu4S6Kx/ysr6TADbcGDGgwrd1E/CasCKMSj/ddd20f/hAGtFrAs2ta1pp1NUXQ6WJKd00V8+yNqYujL2u3ZEQLihpl4Z4RFBrK6LAzQANPMc33ai2KGvCSwQYLiCT25ytTAFfOGIf2PEcU4dLfRwBgR0jdNO0S+BoLaKAV/DF6K9B9wuwfBSEdXgmgYudf+NERGDsx/I1mrO1i1M4+kuaB3s2bjIYmFvGzT/5ct42mVihYBsgZ2TsUil7pB5JaZGc33DzkicbqHFnPxJJ8AGYIQ1AOtYUHn+XVjFHWmMuWUdXfTnwqvdlKGNBMRoa26xXyQFtQYgCOCTI2nUaHwzG2jUZpwjFg6KRd7f/OY3Dz74YFzSuKYpdXKgg7CaS9jPufxlJeXuOsc4QtdlKwPazZIbL2SLK4eN2bi4tTg/kSQa8/LOAxuGM+HZULPz8hZUxEO1nNPJJ5988CSs6YilliZO0wMM26xu2Im0q1mWm82FiT0t+nMJuWUV2yAisnCNcU7ObSs6aQPgAGRxhFwZAOhGhHSHLGEJDSgfvFWGwf85CRwwILD6mTM5JkmsCzYtWZOeV5IuD5l1HfbBIpZy5GCSZ7B8am457ZJlmq0Rzj0gCLBWhDVBIcD8XDccf104CUwQCPqPLYEDYnNmVHAk4wAU0ToYJwHcMQQOqvS1+5dHDjYOC7ptf26aYS4+WLTQEgLayl5lMqDtAXw61rXugK69uVauk2E/HFwwCaGIf9+SAw88EA64jooLE0Ic6fUeAPpO1Q9qX8z1lcF6o3a1xcawWmj8skK2iz4Pw8M7yFxIQFt1pVSPantAnhFjwwEt11T1W4zbkijeD+fKAQTQ9kX/oIMO2n///ek9dhcX73Gfr1VLMTQ6rjzS7Qob190JwZJVle0y8UFg3LWJtKOXX345ZjJchNUuZh5U1ulWuBkQ4Dyw9Qt0+U1At0SEuYgQw4lwcNxxx33gAx+g4WMGDjjgAMiwbp89gAHB2ggvqRYzV29nycLruYHV3OB5bpFsni8y85KUgt/97ne///3vCWzJh8uvWkeoS0Du0/GMrQ+a3VArE7NtCRXTHThXN7TMKnLWMcccc+gkhxxyCJ9wQA+wiCsGgNtej4S7JfTmSnW3TLSmousyzeXPtuGjFv12LprpbBZb0ehMrXGcyZFs/+EPf+DxohNkArpFzzIBc2V5wwZAAOhbEtdsOJozf82QKvRSHsEwFXP44Yd/6lOfOnKSz33uc46fzSCiubxuhEsYtlvaa2NFq8zBkvFtO5Hb5SAnI4E7G7R6NA+NjhAYe+gNdGc6AW3qj5NASYmJjg1bdw4g02BdDmfbrTgpiCYiMrvr+qTCAaAfddRR9INjjz2WuUkIMD9OFeRCmtVc7bZCQ1t5ba6uXlsxq6vrB8lSZdWm8XTulbbz/PPP0+KczkbhugyRbSgBd/o1PeCVV14hzk6rzD2gRXxMQIlFG3/WBjDOiqI1zkqa81MW/HLnRx999DGTHDsJX7kTiOTKprAjK0sxWn19F/UGu32iW31xELXuDm4tfBHouwrX+AmtntZHezQf30R7QLdnSAB8GCmLfJNBkc0uAaLPTi1BFEcHLr6aYMvTOQrjTmKRTMjRSVBEqCP+iBP1Siz2/RoBiIpyeQXUjRxsHCq36BfVH+grLj+36BRmwJXp9AAU0UsvvfTHLbE3wIFuRjEApX+3U2DZBlh9Ur3H/RuKADXsPzfGPaD0+BcOYI8H358k0FcRYRLsOi4uc47+dQICi+5rAMr7LLRCpTLqXD8YBLSz159dnVA+dyZB57j00IIjroyg+fP8EEDbhxi2cY0wznCAvmoJ6Na4jq/xvLRxcx0kG5pNAUL7YXL4C6CH43/84x9///vfQZ9GwJ08vCWPTBIEqIi+9KUvcQXrN3FNmENnvkYAQ2SbG7RYhrR91UWpy8+tZM+h6KW5UnTdOYPBKuVMAPdmjVr6PhsWHzHPiecHKSda4QA1RTtlOxMQXqY3mW1Art4brc2YpQmEaj+Dyfyjug4aIAPuIQCVqHMJZ09uyVFJsAGoIHCz4XM1lerK6qMQ4MSN2RM8Oc2nLfwe7z0ANWd5So8J2UhA196WbPjAXXHblRFOB+Y8J2e6QR8bwONxKQwyF8le8txbQrKvEZ6PpsWIjZEDIKPVgxo97G9/+xufZjlAhp6YhRCfmYQ2IfT6oIdPQiDPWjUuVl1nRRhBZXzhehoup5qjgfOEGp8MvQFxbtQFyjxz1kvxAofijA4Wn1pcoV0GUtCXAJ0HfRJzjB0BuQYIDsAC5aO3Rwu1x5QeUMplZwJKFJrbMHRj9hU0OAT585//DD70Az7ZA9N//etf+eTfHZpwDMhE84eAI444AjsM1DYaOwEXXxFZZS/MuMDVJ6dN6eRyHNdlw7qYsWTZtz/wH+rl/CKaeLbiApXsiuztdBt+S4BroE0yMC5vZiAbNDfnp2iGPL9sgYIrtnJp1rm3FOXmH6PfGNPq/3CY635tqWANOK+++ipaiJ7xl7/8BQLY5gbQH/x79oI+/elPYwbQN9Y4cG5y7QX50iA6tflyKiILDNmguJxrvdkJ9MyxMZ7GlEcRImvx2ldy1+6WA2x9zWxsS8PP20YcuQh/bWYZWcpsfPnLX+avvXlO94/YcMFiSbdqvbh44Uop1RSv4FMBWCqFCITocyec8vwk4EMnACg7h20fRcSliEBkI0x0WttuZ3WO/jUCEIseq9lp8pqXF7YEuHke7gmqfKEcD+Zij8hJcmI6unYhYC7Ck5t8AT1SCmwZeadrpn2lBZS4Woh78LJ5DDwmwHsubT9mHw1/xlowC9XYqzhMZwYoMQ9g5eJTCxIjJMS9613vIi1XFcQnWboWXHcc4Czb6wQgvvkEWrioukyxg3uOpRvhgGdgp7VxTAvI+qc4oCWS3HV1iroP6FsCPMWxKATwVK5I4YJBc0E/SnB0X2SW3Y0Y8Tq1G2Uro1oKj+NUDFgDurZaj0hfyMWRvGxpv/32kwONMDbANXs6I4DJ1bYRgPADF83o06f0u30/Isf4Ri1OVido6FoCciy6DS0UT78kMOV0mjkO9HD4X9PTeGzLt0UUqG3+5Z2B2bfO6MfLA4x6WjTUbcvUa1GsVC9WEKBXFjd52mmn7TdJ9APEugYOKtUTlQAko4+OQ6PBrcUluEVUoe9uiqQXA/Hd5p/rMc6tPc5avsg92yU4iGS/UPrmSEmqszElAtEOZULj55gzmkfEr96S8nJDaPAwVLH9wDXZ1iTOhWRPOeWU/bYEDj760Y8yFLCAqEkVprZXArjoC0kgAHtiwSffzGoBfWuzi4WjActEtQSEo1mcnBb9exZIcBBXM09Nwyv64+af3/SW3eus6zPi+R1WmBzf38Zh6ACncrmyZfn4dzO3ZJdx7z8lgQO0EJP1pjUaCFoH487aLi9sF/QPYwqUkutvfCOB78KNRmrMK+rPBgE+v3Hz4lwWRzPQN3cs4L53S6LeYOii6AQ2N98UEvon56bltS7tW9zyCw1depffYHjZJPEqVV8fptPI+Mn8FF+i6v/yj9pthMT0f94uzMlwEYtO+yDrGbGzdi65SXKtsspQAmJQw4NFkKONF7boZw7u3S4tAabqq+ViZjgT0F323n3FqqtfaOD5Fbbg5esLfZUzQicAfV+pZzuzB1jL0sG2c/cQ8C9J3vOe92AJoJADfBAt6D4RIPrh8OWZv5xNllt6saiiH2/X0jWek1YLeWXNgASEA1pGv0Xb5JdtR0k4iyJazzAafrxGGMdPPvjVCWF7vNPpbBu71qOFAyaE/3VLQB8OmKPnRBWyd75PPSDQbwnwpRKib9SstPSAMsA1V+C+nrQExIAxytEWAkoArlR9yLjHffpWNi2wrnYhQGEbhnLJaz/1dOPNqGywPnL/JCzWYCDmcFr33bdp7JKAjH4hoKCfrUVg3eLeBtNDChPBgQNGyyRpjVsL3F3s2KKv9le/K2zPEUArLujn/wov69+25P3vfz+fJKeglLgHjIdLOeAYsndDANItv6xCzOhnaxFKJmMqgg9sSdkuHLTGwK+mKGcCsgFoh7hFLAZnq78iia/NLgSw07pZJXG2kM3nAZMcOAnoMwr7yle+QrocTHMAfg13u3sC5iSjXzR4wJ1FrB/cLl0OMg15dGaELifQFQscBOT3Z5f3w4C+UQ2nRkLyq+R9HbwGwFcolez2kk930JaAPkEhBsMQQLYW7SC8So5/4wkYo/9AkkD8oe2SaciqqUuAUaCcEFeKDuRX5BX049UY1rH1naddUfnAB6rJpcLlvZuFANJyIynxgx/8IA4owTgIwH6AvqntjmDeYALm0G8JyE1+QEDpCq0lKAREDygR5tD1WYwu6PjTutEPF/dkFzgE+qTFQcDHP/5xwtEQbOzIYbB29A0mAOmiXwgoOiejbyQr24M5FRQclJmGMEiORawWnHMLs/6x+ftuHV+N0cquCTAx/cMf/vBhhx1G/QLQt6YHD+i04zo39E0lIHuTQcCDjWT0g4CuDcjj5OCgZHrlqg+xwKi8Gize0BZv6fRFwef3ZHcEkAkKAeSGMv76xje+4UvdnOCUABOq30QCijs/JsAJv0JAVkGWBbNKc5jfGAS0KzIKAfmVSBHsxPwadcDeMs4C63N7su+YPLElEsAj67ytl6m+SQS046k59FX3gP7oJJY9UnwnO33WJBRpKC6QPaB1i7sElHekRkFtCQDrs3ty1pspbwoB3QHtHPpOJRpVBWu1pF0BAkz0CA4KAXLQXREVNiDX2Qi/09FWxN10gVDTLKs7s5G3GAFz0kXfSRUDBobmhS8KjT++JXLQEmBQt8uBb1CLxOawuldtiaFmCaAH0NhR1mdsF7oFB7wdCOiK7rMVeEDkvC3BPdAYmDxj8IMj0RX4Kr7SFLDMF+czj2CDRSerPUD0NblFDH9CAJc9fbtQ8IdfOeZtS0Ao60h78b3UYQZMADXiD0kQgK8CUqBvRpM5NQVTUyKUQD/aexbfLWiEGbhPS8K/eGU6wSlb8nYjIE+TaQMciAX6EeC0ZjAw4ZiDPg3WfLIuAaXNgr6xnSIS4LuR6DcMBaiyxHj11FNPRR3xK5zRHQN9ruPdvn0I0DJb81EvDbfHZW96aY5vneD0Ne6gb0zG6aogIBp1SwByWSNG9g0tmM3A9ZlHBGjbviqxRR+25O/tQIBuTyS0mlFj1ioQ2PwNssZICg/SoZMgOkVlinGgT8sdE+CJnuW7TVVT7CcgwXUsuTdA/wtf+MJhW/IWJiDjrtgJ8GV9Y46lwKxU68BV6OkEEaAHNStFWstcF3NAAMeb3CABYCrNMOeUJP+FqafQgOh7J3Pok+twwgknnDjJW4+Ap7aLfKANTLmNnDsnTCJGjwEgRuZqdGdr+dVkBUSrO0cA6LvQztfNKoDuQMy3VPFHJ08C+nCJDgR9X59a0CfGyeIvCSBJ8tRJ3qoEiH4kzmMVgMk3n9nwDZldMgnbMAE3kRuS38CJdAkAfdxMV/AAAAg8SURBVKvHi2kEM3xBIRyY5Qe1oAn6wE0X5EjY1d5k9AnxM/ELAaCP8dB6s0Es+qRJ3koEiL6xcosBW1wKgCLfD7Fmlbre2W0TbCIrySlZl/LmP3KKkZ8iPRIachEI+hC8wjRAM51rFAi2QJ+d2gyQ5SfRZ70RzR8CLI0IW6DPATAkAVhyGFVP7nUCYkmJQQg5sMq42WdOe5nbYvpb5EOoo/LqX76qi/IfmVtIAy8Vmk1vMSEOpMypYQCsidbGOBNJnyCzisg+6DPBwjZpz6AP4iof5txZiMpX2z50SgAkEZH+0Ic+tEcJyOi7tMrGHm8mRRHF5EnkCoa99aXikZka6ANE5OQwdMj1BbSovtTXlx6huACaXuIEGZ3AUZsJWAz9wJcZFdILQd8IM6nOoI/+AXd+PX4SCAB9AkooMYvWBPoc/LWvfc0B9h4iIByhLvrmvjFWiHJssfzGDJyoxOQ8uC/5Ev13v/vdok9T5cnlQCJ91amrPHKVScucozpsxaAJpp/5zGdcWwH06B/QJNBPmgmAsugFFwj0XQT52c9+lrMYyvnK7Yw+12FoLQFE986ZxFDr/z8BSkafZGwS4m2bGswo1ZCnEv2qQ+nMV0ZfAoAMFwXDSOwIDmjXvg4sli+UxA4zKuhn4IgXBMqACL6wCAHoH5QPOSbmOjDXCPrsoTdgkOWMrHRCGhl9KMQ+QwDoM4oE9D1KgK/0MNWbFT+sw7Lt51B+ztl3g5/0fGQFAwjuJGLySQs9bhKg4cmdX4QDD6YnmdSWu5QbOqN8gibYwR8s0g9AGUaZ55KASDxh3pG/4CcIA2jQpzegpkBfYrgI6PMT2gnoYSgmG/YKAQiLTFj2xhpHVtm9OgkcYIGjUqQN3MzLWMRiBSXjzDwnyoF0cNAHMrqCZQLYgAAGDXiucIDxQJX58ovIZtCFDXuei6mjUoIGrkY/AFyL0JB1YtoPn8It+nQLvmIz2KZNgL400BG5mgTwyHuLAFYcvjzJK1vCEjg4cLGuq0StDOZki5nYNnwMJi2Lx37nO98J+rRcng28SIdCgWAnjd8ZMpIDQ0w5qUSvVBrycitT/nGE8I6AEiZo6VCrU8SfompQR/ABE3QUdoI+lDhO5hRsAEwY4+PfIQAm9hwBrnlzeQjoo4jKqk8FNWW8yLqp6hMABaB3vOMdoI/TQrfgIdUYcMDz88C0Tb0mtJCvI/QdbDmLNLJr83qTWOjA39HtuFUwxUJAMJ4oio4xAaAfMgn2ABroiO973/sw1xxJC+AwCKAd0AjoiLQV59q4yT1EgKv3Xe4MxHAQaxRcjOgGUlZ1mXbo19BLNHasH7jQPFFB9An2xGKjvA7J4g15fXks6Y7ycPIRvYF/4YK0aK4MstbiQGCCVo+ColvwSZ+gZ6CIXCKJLmK85uw/6ohHZmMPEeCMvJPybKNq4ECPyBXoQQAbZX2dGpwWHbUNQ7Nfu10iNyLWfxlE4rPNdIuc6lhMmXsGG9w2eslRGP3MBZFRp8kKKbKCakJxcTDaiT7KiRgDNvYQAaafmPljBUJspm+F8jVFEbWOZg6gkY3sy2X1R33do8qkXRbQpuhGprRTabn0dC4ik9fextIrPmOejm5BGwdoOh/aXz6A3tXC2GFcMvhAMUIMRzLfsIcIiJQ3wwxWTDCZhT5hO6XlRpN0ATvRUHbyaXsXRF/fqA4pKekyEZ+eIiVBpylTUQLIxU+GrIOA6ChBA7dnYgsDLoIT0AAHKB/HcRCAG0qTOmJLXDy8hwgoi/FcBc42IzJXqbuIjrbGE2ozs4rQewlkVRSl7pudIK+MjM6RF6u6HZUR8pI0o0+lSE+Mpf31oklo3XQInVeHI3hiHHbCJNCD1sKE7CECYhVNlNUEGkYuOC3cq/EfVbYz8uEvCmUG1JUqHJnXBucl2qqsbom+SPD3J8vHRHaei3PsE1GVWokoN2zxq1E8YhK4OtwwQ2tUEM6Y/cPJBvrEXiHA9eOxmlX0CQK7cAXo8V6cdUHhqLgNQlg+Mtf6z1CGrS7VOXK9jm51vFLTI6qt5kxWq6fHqttYouy66KDBCQy0k8Ngha+4QHjDe4gAJOpsOU9re3emUC2khxPvRLZ18yQwUUoOx9dYO5fr0+SvpShwrvWVCy4g5nfiBZgr5kRFdI7QVGHD2TaTzIKjToXSmGIV+Bu/QmYfCVCbq6bDX3QqODjI6Md4VQtM7+aYaO9mE0Vl0FKTPySXNso1jkq1u8jBdrwSzrG1mZ6eJCK7iK8YyzkfUuWV6Stalz1HQLRrQ0DtusZYYSpPoWrUFSAIVXYIi6nm8rgRAc2vB4rqlm2t5VApuUI+G+IexbHYiFE6n1IiKw4t5cZaKr7yTQ22Llm2RwjIYyVgtRVnBzw30rw0PBaiRha0sTm6An5IFM7J4QQ/Y0FHeSF1W6q6revohFognkeI7gyRIWmAEj6dg3Lub101cY8QUJaOag9ELcpflHLh7QslisYQ8bx+plRl7NaqCwLaY7plBaM3SEZ8xs4oIadIQCwX2CsE5MVDan84iAKneRY3FuNlTMvLTtp63+WFBGVmuFSzKHzEYfmV77m+F18JVb04yUtbwvazSYIYVZMc7CECfppEbwe/M9caChDjrXS55tbGF34XrEtxulI+JzbmCmjmmi+xYoev4G6Bn5DcOWKPish1D3uFgFwgydkVF0OXOltdBVKgzBCX7bZmUakhlSvoFDLaIi/tTo4MoI3gRskf9U+oIy0zNOwtAqI8lTZATyYbyba0bu4B3XI4GcfCSqnN2JarKyjnkl2ZhrYQjMHzEBt+SJDx3HPP/R+L5hf9Cg+kHQAAAABJRU5ErkJggg=="}}');let Mi={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 Ma(e){return new URL(`public/room-example/${e}`,"https://cdn.neurodyn.ai/LG8wPakWNRI1O7ssxPuAcY61sOV3nsofvg4tHjAoumHFWIFoX9u0yeIk9K19I8_J55pBcLct6_ytKI9fCz4/").toString()}function Ms(e={}){return{...Mn,image:{...Mn.image,...e}}}let Mo=[{id:"room-example-11",name:"Room Example 11",image_url:Ma("room-example-11.jpg"),scene:S6},{id:"room-example-12",name:"Room Example 12",image_url:Ma("room-example-12.jpg"),scene:S7},{id:"room-example-13",name:"Room Example 13",image_url:Ma("room-example-13.jpg"),scene:Me},{id:"room-example-14",name:"Room Example 14",image_url:Ma("room-example-14.jpg"),scene:Mt},{id:"room-example-15",name:"Room Example 15",image_url:Ma("room-example-15.jpg"),scene:Mr}],Ml=[{id:"carpet-bathroom",name:"Bathroom",image_url:Ma("bathroom.jpg"),scene:S9},{id:"carpet-bedroom",name:"Bedroom",image_url:Ma("bedroom.jpg"),scene:S4},{id:"carpet-entryway",name:"Entryway",image_url:Ma("entryway.jpg"),scene:S5},{id:"carpet-living-room",name:"Living Room",image_url:Ma("living-room.jpg"),scene:S8}],Mc="RcSd3KphTyq_JQEjNCqKQA,gu0109ftQmS-UQkwcW010Q,nOfGLIZcRVeU93wOkHWSbg,ozzH5I2kQMW20ao-33C86A,DBA4wR-zT92vjtuOk9varg".split(",").map(e=>e.trim()).filter(Boolean);function Mu(e,t,{requiresMaterialModel:r,getCollapseKey:n}){var i;let a;return i=e.filter(e=>!!(e.tinuuid&&e.materials?.[0]&&function(e,t){if(!t)return!0;let r=e.materials?.[0]?.native?.glbUrl;return"string"==typeof r&&r.trim().length>0}(e,r)&&!(t?.uuid&&e.uuid===t.uuid||t?.tinuuid&&e.tinuuid===t.tinuuid))),a=new Set,i.filter(e=>{let t=n(e);return!a.has(t)&&(a.add(t),!0)})}let Md="vizbl-rug:";function Mh(e){return e.kit?.uuid??e.uuid??e.tinuuid??""}let Mp={"sized-design":{offersSizeVariants:!0,decodeVariant:function(e){if(!e?.startsWith(Md))return null;try{let t=JSON.parse(e.slice(Md.length));if("string"!=typeof t.size)return null;return{size:t.size,shape:"round"===t.shape?"round":"rect"}}catch{return null}},getCollapseKey:function(e){return e.kit?.uuid?e.kit.uuid:`object:${Mh(e)}`}},"color-design":{offersSizeVariants:!1,decodeVariant:function(e){let t="vizbl-flooring:";if(!e?.startsWith(t))return null;try{let r=JSON.parse(e.slice(t.length));return null!==r&&"object"==typeof r&&"color"in r&&"string"==typeof r.color?{color:r.color}:null}catch{return null}},getCollapseKey:Mh},"single-listing":{offersSizeVariants:!1,decodeVariant:null,getCollapseKey:Mh}},MA={"product-identity":{catalogsEveryMaterial:!0},finish:{catalogsEveryMaterial:!1},placeholder:{catalogsEveryMaterial:!1}};function Mf(e){return Mp[E1[e].composition]}let Mg={"modelled-resource":{takesDimensionProps:!1,materialSource:"object-glb",requiresMaterialModel:!0},"textured-resource":{takesDimensionProps:!0,materialSource:"artwork-src",requiresMaterialModel:!1}};function Mm(e){return Mg[E1[e].identity]}function Mv(e,t,r,n=""){return"material"===E1[e].productNameSource?r?.name??t?.name??t?.kit?.name??n:t?.kit?.name?.trim()||t?.name?.trim()||r?.name?.trim()||n}function Mb(e){return e.hid??""}function My({className:e,...t}){let{material:r,options:n,selectMaterial:i}=function(){let{material:e,setMaterial:t,setTinuuid:r,apiKey:n,baseURL:i,language:a,source:s,widgetSession:o}=SF(),l=rJ({queries:Mc.map(e=>({queryKey:EK(e,{apiKey:n,baseURL:i,language:a,source:s}),queryFn:({signal:t})=>EY(e,{apiKey:n,baseURL:i,language:a,signal:t,source:s,widgetSession:o})}))});(0,ep.useEffect)(()=>{let n=l[0]?.data,i=n?.materials?.[0],a=n?.tinuuid;null===e&&i&&a&&(t(i),r(a))},[e,l,t,r]);let c=(0,ep.useMemo)(()=>l.flatMap(e=>{let t=e.data,r=t?.materials?.[0];return t?.tinuuid&&r?.hid?[{material:r,materialId:r.hid,tinuuid:t.tinuuid}]:[]}),[l]),u=(0,ep.useCallback)(e=>{let n=c.find(t=>t.materialId===e);return!!n&&(t(n.material),r(n.tinuuid),!0)},[c,t,r]);return{material:e,options:c,selectMaterial:u}}(),{containerRef:a}=SN(),{t:s}=th();return(0,eh.jsxs)(SK,{className:E3("w-fit",e),...t,children:[(0,eh.jsx)(SJ,{className:"text-xs text-text-sub font-medium",children:s("material")}),(0,eh.jsxs)(SX,{value:r?.hid??void 0,onValueChange:i,children:[(0,eh.jsx)(S$,{className:"w-[145px]",size:"md",children:(0,eh.jsxs)(SZ,{placeholder:s("chooseMaterial"),children:[(0,eh.jsx)("div",{className:"size-5 rounded-full border border-border-light",style:{backgroundColor:`#${r?.miniature?.color?.hex}`}}),r?.miniature?.color?.name]})}),(0,eh.jsx)(S0,{portalContainer:a,children:n.map(({material:e,materialId:t,tinuuid:r})=>(0,eh.jsxs)(S1,{value:t,children:[(0,eh.jsx)("div",{className:"size-5 rounded-full border border-border-light",style:{backgroundColor:`#${e?.miniature?.color?.hex}`}}),e.miniature?.color?.name]},`${r}-${t}`))})]})]})}let Mw=(0,ep.createContext)(null),Mx=(0,ep.createContext)(null);function MC({value:e,defaultValue:t,onValueChange:r,...n}){let[i,a]=(0,ep.useState)(t),s=e??i,o=(0,ep.useMemo)(()=>({value:s}),[s]),l=(0,ep.useCallback)(t=>{r?.(t),void 0===e&&a(t)},[r,e]);return(0,eh.jsx)(Mw,{value:o,children:(0,eh.jsx)(dF,{"data-slot":"tabs",value:s,onValueChange:l,...n})})}let ME=ss("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"}}),MS=ss("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 MM({className:e,children:t,size:r="default",...n}){let i=(0,ep.use)(Mw),a=(0,ep.useRef)(null),s=(0,ep.useRef)(new Map),o=(0,ep.useRef)(null),l=(0,ep.useRef)(i?.value),c=(0,ep.useRef)(null),u=(0,ep.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,ep.useCallback)(()=>{null===c.current&&(c.current=requestAnimationFrame(()=>{u()}))},[u]),h=(0,ep.useCallback)((e,t)=>{t?s.current.set(e,t):s.current.delete(e),d()},[d]);(0,ep.useLayoutEffect)(()=>{l.current=i?.value,null!==c.current&&(cancelAnimationFrame(c.current),c.current=null),u()},[i?.value,u]),(0,ep.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,ep.useEffect)(()=>()=>{null!==c.current&&cancelAnimationFrame(c.current)},[]);let p=(0,ep.useMemo)(()=>({registerTrigger:h,size:r}),[h,r]);return(0,eh.jsx)(dO,{ref:a,"data-slot":"tabs-list",className:E3(MS({size:r}),e),...n,children:(0,eh.jsxs)(Mx,{value:p,children:[(0,eh.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 MI({className:e,size:t,children:r,value:n,...i}){let a=(0,ep.use)(Mx),s=(0,ep.useRef)(null),o=t??a?.size??"default",l=E3("relative z-10 inline-flex items-center justify-center","lg"===o?"gap-1.5":"gap-1");return(0,ep.useLayoutEffect)(()=>{if(a&&n)return a.registerTrigger(n,s.current),()=>{a.registerTrigger(n,null)}},[a,n]),(0,eh.jsx)(dU,{ref:s,"data-slot":"tabs-trigger",className:E3(ME({size:o}),"data-[state=active]:bg-transparent",e),value:n,...i,children:(0,eh.jsx)("span",{"data-slot":"tabs-trigger-content",className:l,children:r})})}function MB(e,t="m"){switch(t){case"cm":return e/100;case"in":return .0254*e;case"m":return e}}function MT(e,t){switch(t){case"cm":return 100*e;case"in":return e/.0254}}function Mk(e){let{t}=th();return(0,ep.useMemo)(()=>[{value:0,label:t("mattingOptions.none")},{value:.05,label:`${Number(MT(.05,e).toFixed(2)).toString()} ${t(`units.${e}`)}`}],[e,t])}function MR({className:e,...t}){let{displayUnit:r}=SD(),{matting:n,setMatting:i}=SU(),{t:a}=th(),s=Mk(r);return(0,eh.jsxs)(SK,{className:E3("w-fit",e),...t,children:[(0,eh.jsx)(SJ,{className:"text-xs text-text-sub font-medium",children:a("matting")}),(0,eh.jsx)(MC,{value:n.toString(),onValueChange:e=>i(Number(e)),children:(0,eh.jsx)(MM,{children:s.map(e=>(0,eh.jsx)(MI,{value:e.value.toString(),children:e.label},e.value))})})]})}function MP({className:e,...t}){return(0,eh.jsx)(d7,{"data-slot":"radio-group",className:E3("grid gap-3",e),...t})}function MD({checked:e,className:t,...r}){return(0,eh.jsx)("div",{className:E3("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,eh.jsx)(o7,{className:"text-constant-white size-3.5",strokeWidth:4})})}function M_({className:e,variant:t="default",...r}){return(0,eh.jsxs)(ht,{"data-slot":"radio-group-item",className:E3("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,eh.jsx)("div",{className:"relative",children:(0,eh.jsx)(MD,{})}),"inverted"!==t&&(0,eh.jsx)(hr,{"data-slot":"radio-group-indicator",className:"relative flex items-center justify-center",children:"check"===t?(0,eh.jsx)(MD,{checked:!0}):(0,eh.jsx)(le,{className:"fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2"})})]})}function ML(e){let t=e.image_url;if(!/^https?:\/\//i.test(t))return t;let r=new URL(t);return r.searchParams.set("v","1"),r.href}function MF({className:e,children:t,...r}){let{className:n,onReachEnd:i,...a}=r.swiperOptions??{},{t:s}=th(),[o,l]=(0,ep.useState)(null),[c,u]=(0,ep.useState)(!0),[d,h]=(0,ep.useState)(!1),[p,A]=(0,ep.useState)(!1),f=(0,ep.useCallback)(e=>{u(e.isBeginning),h(e.isEnd),A(e.isLocked)},[]),g=(0,ep.useCallback)(e=>{l(e),f(e)},[f]),m=(0,ep.useCallback)(e=>{h(!0),i?.(e)},[i]);return(0,eh.jsxs)("div",{className:E3("relative w-full overflow-hidden",e),children:[(0,eh.jsx)(h9,{className:E3("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,eh.jsxs)(E4,{className:E3("absolute top-1/2 left-8 -translate-y-1/2 z-1",{hidden:c||p}),variant:"contrast",size:"icon",onClick:()=>o?.slidePrev(),children:[(0,eh.jsx)(lt,{}),(0,eh.jsx)("span",{className:"sr-only",children:s("previousSlide")})]}),(0,eh.jsxs)(E4,{className:E3("absolute top-1/2 right-8 -translate-y-1/2 z-1",{hidden:d||p}),variant:"contrast",size:"icon",onClick:()=>o?.slideNext(),children:[(0,eh.jsx)(lr,{}),(0,eh.jsx)("span",{className:"sr-only",children:s("nextSlide")})]})]})}function MN({className:e,...t}){let{t:r}=th(),{rooms:n,room:i,setRoomId:a}=SL(),{isRoomScenePending:s,selectCustomRoomFile:o}=SP(SR,"useRoomViewerCustomRoomIntake"),l=(0,ep.useId)(),c=(0,ep.useCallback)((e,t)=>r(`rooms.${t}`,{defaultValue:e}),[r]),u=(0,ep.useCallback)(async e=>{let t=e.target.files?.[0];e.target.value="",t&&await o(t)},[o]);return(0,eh.jsx)("div",{className:E3(e),...t,children:(0,eh.jsx)(MP,{value:i.id,onValueChange:a,children:(0,eh.jsxs)(MF,{swiperOptions:{className:"py-2 sm:py-5 pb-3 sm:pb-5"},children:[(0,eh.jsx)(h4,{className:"sm:w-25! w-21! h-auto",children:(0,eh.jsxs)(SJ,{htmlFor:l,className:E3("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",s&&"cursor-wait opacity-80"),"aria-disabled":s,children:[s?(0,eh.jsxs)(eh.Fragment,{children:[(0,eh.jsx)(Sx,{className:"size-5"}),(0,eh.jsx)("span",{className:"sr-only",children:r("uploadOwnPhoto")})]}):r("uploadOwnPhoto"),(0,eh.jsx)("input",{id:l,type:"file",accept:"image/*",className:"sr-only",disabled:s,onChange:u})]})}),n.map(e=>(0,eh.jsx)(h4,{className:E3("sm:w-25! w-21! transition-transform duration-200",e.id!==i.id&&"hover:scale-110"),children:(0,eh.jsx)(SJ,{htmlFor:`room-${e.id}`,className:"size-full flex flex-col gap-1 has-data-[state=checked]:bg-transparent",children:(0,eh.jsxs)("div",{className:"size-full relative h-17 sm:h-19 rounded-[0.75rem] overflow-hidden",children:[(0,eh.jsx)("img",{crossOrigin:"anonymous",src:ML(e),alt:c(e.name,e.id),className:"size-full object-cover"}),(0,eh.jsx)(M_,{value:e.id,id:`room-${e.id}`,variant:"check",className:E3("absolute top-1.75 right-1.75",{"sr-only":e.id!==i.id})})]})})},e.id))]})})})}function MO({className:e,...t}){return(0,eh.jsxs)("div",{className:E3("flex sm:items-end pl-0 overflow-hidden sm:flex-row flex-col py-3 sm:py-0",e),...t,children:[(0,eh.jsx)(MN,{className:"shrink-0 grow"}),(0,eh.jsxs)("div",{className:"hidden gap-5 pr-6 pb-5 md:flex",children:[(0,eh.jsx)(My,{}),(0,eh.jsx)(MR,{})]})]})}function MQ({className:e,...t}){let{name:r}=SD();return(0,eh.jsx)("div",{className:E3("h-16 flex items-center px-6",e),...t,children:(0,eh.jsx)("div",{className:"truncate",children:r})})}function MU({variant:e,showDialogCloseButton:t=!1}){let{t:r}=th();return(0,eh.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,eh.jsx)(Sa,{className:"size-8 text-icons-light"}),(0,eh.jsx)("h2",{className:"typo-base-16 font-medium text-text-dark",children:r("viewer-load-failed"===e||"artwork-load-failed"===e||"room-load-failed"===e?`loadError.${e}`:`accessError.${e}`)}),t&&(0,eh.jsx)(E6,{asChild:!0,children:(0,eh.jsx)(E4,{variant:"secondary",children:r("close")})})]})}MM.displayName=dO.displayName,MI.displayName=dU.displayName,dj.displayName;let Mz="u"<typeof window;function Mj(e,{defaultValue:t=!1,initializeWithValue:r=!0}={}){let[n,i]=(0,ep.useState)(()=>{if(r)return Mz?t:window.matchMedia(e).matches;return t});return(0,ep.useEffect)(()=>{let t=window.matchMedia(e),r=()=>{i(t.matches)};return r(),t.addEventListener("change",r),()=>{t.removeEventListener("change",r)}},[e]),n}let MG={width:void 0,height:void 0};function MH(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 MV({...e}){return(0,eh.jsx)(bI,{"data-slot":"dropdown-menu",...e})}function Mq({...e}){return(0,eh.jsx)(bT,{"data-slot":"dropdown-menu-trigger",...e})}function MW({...e}){return(0,eh.jsx)(bD,{"data-slot":"dropdown-menu-group",...e})}function MK({className:e,sideOffset:t=4,portalContainer:r,...n}){return(0,eh.jsx)(bk,{container:r,children:(0,eh.jsx)(bP,{"data-slot":"dropdown-menu-content",sideOffset:t,className:E3("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 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-md",e),...n})})}function MJ({className:e,inset:t,variant:r="default",...n}){return(0,eh.jsx)(b_,{"data-slot":"dropdown-menu-item","data-inset":t,"data-variant":r,className:E3("relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden hover:bg-background-base focus:bg-background-base data-[highlighted]:bg-background-base data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:hover:bg-destructive/10 data-[highlighted][data-variant=destructive]:bg-destructive/10 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg:not([class*=text-])]:text-muted-foreground data-[variant=destructive]:[&_svg:not([class*=text-])]:text-inherit [&_svg]:pointer-events-none [&_svg]:shrink-0",t&&"pl-8",e),...n})}function MY({className:e,children:t,checked:r,indicatorPosition:n="left",...i}){return(0,eh.jsxs)(bL,{"data-slot":"dropdown-menu-checkbox-item",className:E3("relative flex cursor-default select-none items-center rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden hover:bg-background-base focus:bg-background-base data-[highlighted]:bg-background-base data-[disabled]:pointer-events-none data-[disabled]:opacity-50","right"===n&&"pr-8 pl-2",e),checked:r,...i,children:[(0,eh.jsx)("span",{className:E3("pointer-events-none absolute flex size-3.5 items-center justify-center","right"===n?"right-2":"left-2"),children:(0,eh.jsx)(bF,{children:(0,eh.jsx)(o7,{className:"size-4"})})}),t]})}function MX({className:e,...t}){return(0,eh.jsx)(bN,{"data-slot":"dropdown-menu-separator",className:E3("bg-border -mx-1 my-1 h-px",e),...t})}function MZ({material:e}){let t=e.previews?.[0]?.subRes?.small??e.previews?.[0]?.url,[r,n]=(0,ep.useState)();return t&&t!==r?(0,eh.jsx)("img",{src:t,alt:"",className:"size-5 shrink-0 rounded-xs object-cover",onError:()=>n(t)}):(0,eh.jsx)(Sp,{className:"size-5! shrink-0"})}let M$=(0,ep.memo)(()=>{let e=M7(),{containerRef:t}=SN(),{t:r}=th(),[n,i]=(0,ep.useState)(null);if(e?.menu&&e.menu!==n&&i(e.menu),!e)return null;let a=e.panels.find(t=>M4(t)===e.selected);return(0,eh.jsxs)(MV,{modal:!1,open:!!(e.menu&&a),onOpenChange:t=>!t&&e.closeMenu(),children:[(0,eh.jsx)(Mq,{asChild:!0,children:(0,eh.jsx)("button",{type:"button","data-panel-menu":"","aria-label":r("wallPanel.actions"),tabIndex:-1,style:{position:"fixed",left:n?.x??0,top:n?.y??0,width:1,height:1,pointerEvents:"none",opacity:0}})}),(0,eh.jsxs)(MK,{"data-panel-menu":"",onCloseAutoFocus:e=>e.preventDefault(),onEscapeKeyDown:r=>{r.preventDefault(),e.closeMenu();let n=Array.from(t?.querySelectorAll("[data-panel-key]")??[]).find(t=>t.dataset.panelKey===e.selected);n?.focus({preventScroll:!0})},portalContainer:t,collisionBoundary:t,collisionPadding:8,align:"start",className:"flex w-56 max-w-[var(--radix-dropdown-menu-content-available-width)] flex-col",style:{maxHeight:"var(--radix-dropdown-menu-content-available-height)"},children:[(0,eh.jsx)(MW,{"aria-label":r("wallPanel.materials"),className:"min-h-0 overflow-y-auto overscroll-contain",children:e.options.map(({material:t,number:n,error:i,loading:s})=>(0,eh.jsxs)(MY,{indicatorPosition:"right",checked:a?.materialId===t.hid,onCheckedChange:()=>e.chooseMaterial(t.hid),onSelect:e=>e.preventDefault(),className:"gap-2 [@media(pointer:coarse)]:min-h-11",children:[(0,eh.jsx)("span",{className:"pointer-events-none flex size-5 shrink-0 items-center justify-center",children:a?.requestedMaterialId===t.hid&&s?(0,eh.jsx)(Sx,{"aria-label":r("wallPanel.loading")}):a?.requestedMaterialId===t.hid&&i?(0,eh.jsx)("span",{role:"status","aria-label":r("wallPanel.retry"),children:(0,eh.jsx)(ln,{className:"size-3.5","aria-hidden":"true"})}):(0,eh.jsx)(MZ,{material:t})}),(0,eh.jsx)("span",{className:"min-w-0 flex-1",children:t.name?.trim()?t.name:r("wallPanel.materialFallback",{number:n})})]},t.hid))}),(0,eh.jsx)(MX,{}),(0,eh.jsx)(MW,{className:"shrink-0",children:(0,eh.jsxs)(MJ,{className:"[@media(pointer:coarse)]:min-h-11",onSelect:t=>{t.preventDefault(),e.rotate()},children:[(0,eh.jsx)(Sv,{className:"size-4!"}),r("wallPanel.rotate")]})}),(0,eh.jsx)(MX,{}),(0,eh.jsx)(MW,{className:"shrink-0",children:(0,eh.jsxs)(MJ,{className:"[@media(pointer:coarse)]:min-h-11",variant:"destructive",disabled:1===e.panels.length,onSelect:e.remove,children:[(0,eh.jsx)("span",{className:"flex size-4 shrink-0 items-center justify-center",children:(0,eh.jsx)(Sh,{className:"size-3!"})}),r("wallPanel.delete")]})})]})]})});function M0(e){let t=(0,ep.useRef)(e);return(0,ep.useLayoutEffect)(()=>{t.current=e}),t}M$.displayName="PanelMaterialMenu";let M1=null;async function M2(e){let{decoderPending:t}=e;return!!t&&t.then(()=>!1,()=>!0)}async function M3(e){let t,r=M1??=new bQ.Z(new i6.KPJ).setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.5.5/");try{({scene:t}=await new bU.B(new i6.KPJ).setDRACOLoader(r).setMeshoptDecoder(bO.f).loadAsync(e))}catch(e){throw await M2(r)&&M1===r&&(M1=null),e}let n=new i6.NRn().setFromObject(t),i=n.getSize(new i6.Pq0),a=n.getCenter(new i6.Pq0);return{scene:t,width:i.x,depth:i.z,mountingOffset:[-a.x,-a.y,-n.min.z]}}function M9(e){return{queryKey:["wall-panel-model",e],queryFn:()=>M3(e),staleTime:1/0,gcTime:1/0,retry:!1}}function M4(e){return`${e.x},${e.y}`}function M5(e,t,r){return{product:e,menu:null,generation:0,panels:[{x:0,y:0,turns:0,materialId:t}],selected:r?null:"0,0"}}let M8=(0,ep.createContext)(null);function M6({children:e}){let{type:t}=SD(),{viewerDialogOpen:r}=S_(),{containerRef:n}=SN(),i="panel-group"===E1[t].manipulation,{room:a}=SL(),s=function(e,t){let{tinuuid:r,selectedObject:n}=SF(),{viewerDialogOpen:i}=S_(),a=n?.tinuuid===r?n:null,s=a?.materials?.[0],o=Mj("(max-width: 639px)"),l=function(e,t,r){let[n,i]=(0,ep.useState)(()=>M5(e,t,r));(n.product!==e||t&&!n.panels[0]?.materialId)&&i({...n,product:e,menu:null,panels:n.panels.map(e=>({...e,materialId:t,requestedMaterialId:void 0}))});let a=(0,ep.useCallback)(()=>i(e=>e.menu?{...e,menu:null}:e),[]),s=(0,ep.useCallback)((e,t)=>i(r=>({...r,selected:e,menu:t})),[]),o=(0,ep.useCallback)(()=>i(e=>e.selected||e.menu?{...e,selected:null,menu:null}:e),[]),l=(0,ep.useCallback)(()=>i(e=>({...M5(e.product,t,r),generation:e.generation+1})),[t,r]),c=(0,ep.useCallback)(()=>i(e=>({...e,panels:e.panels.map(t=>M4(t)===e.selected?{...t,turns:(t.turns+1)%4}:t)})),[]),u=(0,ep.useCallback)(()=>i(e=>e.selected&&1!==e.panels.length?{...e,panels:e.panels.filter(t=>M4(t)!==e.selected),selected:null,menu:null}:e),[]),d=(0,ep.useCallback)(e=>i(t=>t.selected===e?t:{...t,selected:e}),[]),h=(0,ep.useCallback)(e=>i(r=>{let n=M4(e);return r.panels.some(e=>M4(e)===n)?r:{...r,panels:[...r.panels,{...e,turns:0,materialId:r.panels.find(e=>M4(e)===r.selected)?.materialId??t}],selected:n,menu:null}}),[t]),p=(0,ep.useCallback)(e=>i(t=>({...t,panels:t.panels.map(r=>M4(r)===t.selected?{...r,requestedMaterialId:e===r.materialId?void 0:e}:r)})),[]),A=(0,ep.useCallback)(e=>i(t=>{let r=t.panels.map(t=>{let r=t.requestedMaterialId;return r&&e.has(r)?{...t,materialId:r,requestedMaterialId:void 0}:t});return r.some((e,r)=>e!==t.panels[r])?{...t,panels:r}:t}),[]),f=(0,ep.useMemo)(()=>{let e=new Set(n.panels.map(M4)),t=new Map;for(let r of n.panels)for(let[n,i]of[[1,0],[-1,0],[0,1],[0,-1]]){let a={x:r.x+n,y:r.y+i},s=M4(a);e.has(s)||t.set(s,a)}return Array.from(t.values())},[n.panels]);return(0,ep.useMemo)(()=>({...n,neighbors:f,requestMaterial:p,applyReadyMaterials:A,openMenu:s,closeMenu:a,clearSelection:o,reset:l,rotate:c,remove:u,select:d,add:h}),[h,A,o,a,n,f,s,u,p,l,c,d])}(r,s?.hid??"",t&&o),c=function(e,t){let{apiKey:r,baseURL:n,language:i,source:a,widgetSession:s}=SF(),{type:o}=SD(),l=e?.kit?.uuid,c=e?.owner?.uuid,u={apiKey:r,baseURL:n,language:i,source:a,widgetSession:s,resourceType:o},{data:d,hasNextPage:h,fetchNextPage:p,isFetching:A,isFetchNextPageError:f}=r0({queryKey:[...EJ(l,c,u),"panel-materials"],enabled:t&&!!l,queryFn:async({pageParam:e,signal:t})=>{try{return await EZ(l,c??"",e,{...u,signal:t})}catch(r){if(0===e||t.aborted)throw r;return{objs:[],pages_count:void 0}}},initialPageParam:0,getNextPageParam:(e,t,r)=>{let n=e.pages_count??t[0]?.pages_count;return void 0!==n?r+1<n?r+1:void 0:e.objs?.length?r+1:void 0},retry:!1},r$,void 0);(0,ep.useEffect)(()=>{t&&h&&!A&&!f&&p({cancelRefetch:!1})},[d?.pages.length,t,p,h,A,f]);let g=(0,ep.useMemo)(()=>{if(!t||!l)return[];let r=new Map;for(let t of d?.pages.flatMap(e=>e.objs??[])??[])t.tinuuid&&t.tinuuid!==e?.tinuuid&&r.set(t.tinuuid,t);return Array.from(r.values())},[e?.tinuuid,d,t,l]),m=rJ({queries:g.map(e=>({queryKey:EK(e.tinuuid,u),queryFn:({signal:t})=>EY(e.tinuuid,{...u,signal:t}),enabled:t,retry:!1}))}),[v,b]=(0,ep.useState)({ids:[]}),y=v.resourceId===e?.tinuuid&&v.kitUuid===l,w=y?v.ids:[],x=new Set(w),C=new Map(g.flatMap((e,t)=>{let r=m[t]?.data;return r?[[e.tinuuid,r.materials??[]]]:[]})),E=Array.from(C.keys()).filter(e=>!x.has(e)),S=E.length?[...w,...E]:w;(!y||E.length)&&b({resourceId:e?.tinuuid,kitUuid:l,ids:S});let M=t?[...e?.materials??[],...S.flatMap(e=>C.get(e)??[])]:[],I=new Set;return M.flatMap((e,t)=>!e.hid||!e.native?.glbUrl||I.has(e.hid)?[]:(I.add(e.hid),[{material:e,number:t+1}]))}(a,e&&i),u=c.map(e=>e.material),d=rJ({queries:u.map(e=>({...M9(e.native.glbUrl),enabled:i&&!!(e.hid===s?.hid||l.panels.some(t=>t.requestedMaterialId===e.hid))}))}),h=!!d[u.findIndex(e=>e.hid===s?.hid)]?.data,p=function(e){let[t,r]=(0,ep.useState)(e);return t===e||t.length===e.length&&t.every((t,r)=>{let n=e[r];return t.material===n.material&&t.number===n.number&&t.model===n.model&&t.loading===n.loading&&t.error===n.error})?t:(r(e),e)}(u.map((e,t)=>({material:e,number:c[t].number,model:d[t]?.data,loading:d[t]?.isFetching??!1,error:d[t]?.isError??!1}))),A=p.filter(e=>e.model).map(e=>e.material.hid).join(","),{applyReadyMaterials:f,requestMaterial:g}=l;(0,ep.useEffect)(()=>{i&&f(new Set(A.split(",")))},[f,A,i,l.panels]);let m=M0(d),v=(0,ep.useCallback)(e=>{let t=p.findIndex(t=>t.material.hid===e);if(t<0)return;g(e);let r=m.current[t];r?.isError&&r.refetch()},[p,m,g]);return(0,ep.useMemo)(()=>({...l,isBaseModelReady:h,options:p,chooseMaterial:v}),[v,l,h,p])}(i,"focus-resource"===E1[t].introduction),{closeMenu:o}=s;(0,ep.useEffect)(()=>{o()},[a.id,o]);let{clearSelection:l,reset:c}=s;(0,ep.useEffect)(()=>{r||c()},[c,r]),(0,ep.useEffect)(()=>{if(!i||!r)return;let e=e=>{e.composedPath().some(e=>e instanceof Element&&("CANVAS"===e.tagName&&n?.contains(e)||e.matches("[data-neurodyn-room-viewer-product], [data-material-selection-panel], [data-material-selection-action]")||e.matches("[data-room-selection-panel], [data-panel-menu]")))||l()};return document.addEventListener("pointerdown",e),()=>document.removeEventListener("pointerdown",e)},[l,n,i,r]);let u=(0,ep.useMemo)(()=>i?s:null,[s,i]);return(0,eh.jsxs)(M8,{value:u,children:[e,i&&(0,eh.jsx)(M$,{})]})}function M7(){return(0,ep.use)(M8)}let Ie={toneMapping:4,toneMappingExposure:1.2,alpha:!0};async function It(e,t){return new Promise((r,n)=>{e.toBlob(e=>{e?r(e):n(Error(t))},"image/png")})}function Ir(e){return e.image.width/e.image.height}function In(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}function Ii(e,t){let r=new Image;return r.crossOrigin="anonymous",new Promise((n,i)=>{r.onload=()=>n(r),r.onerror=()=>i(Error(t)),r.src=e})}function Ia(e,t,r){let n=document.createElement("canvas"),i=n.getContext("2d");if(!i)throw Error("Failed to get 2D context for room scene maps.");return n.width=t,n.height=r,i.drawImage(e,0,0,t,r),i.getImageData(0,0,t,r)}async function Is(e,t){let[r,n]=await Promise.all([Ii(e.planeIds.dataPng,"Failed to decode room plane id map."),Ii(e.shading?.dataPng??t,"Failed to decode room shading map.")]),i=Ia(r,r.naturalWidth,r.naturalHeight),{width:a,height:s}=e.planeIds,o=a===i.width&&s===i.height?i:Ia(r,a,s);return{planeIds:i,planeIdMap:function(e,t,r){let n=new Uint8Array(t*r);for(let t=0;t<n.length;t++)n[t]=e.data[4*t]??0;return{data:n,width:t,height:r}}(o,a,s),shading:Ia(n,n.naturalWidth,n.naturalHeight)}}async function Io(e,t,r){let n,i=(n=new Map,t.traverse(e=>{!0===e.userData.excludeFromCapture&&(n.set(e,e.visible),e.visible=!1)}),()=>{n.forEach((e,t)=>{t.visible=e})});try{return e.render(t,r),await It(e.domElement,"Failed to create scene share image")}finally{i()}}let Il=(0,ep.memo)(({ref:e})=>{let{camera:t,gl:r,invalidate:n,scene:i}=f_();return(0,ep.useImperativeHandle)(e,()=>({capture:async()=>{n(),await new Promise(e=>requestAnimationFrame(()=>e()));try{return await Io(r,i,t)}finally{n()}}}),[t,r,n,i]),null});Il.displayName="CanvasCaptureBridge";class Ic extends ep.Component{state={hasFailed:!1};static getDerivedStateFromError(){return{hasFailed:!0}}componentDidCatch(e,t){console.error("Room viewer scene failed to render",e,t.componentStack),this.props.onError(e)}render(){return this.state.hasFailed?null:this.props.children}}let Iu="u"<typeof performance?()=>Date.now():()=>performance.now();async function Id(e,t){for(;;){await new Promise(e=>{if("u"<typeof MessageChannel)return void setTimeout(e,0);let t=new MessageChannel;t.port1.onmessage=()=>{t.port1.close(),e()},t.port2.postMessage(null)}),t?.throwIfAborted();let r=Iu()+8;do{let t=e.next();if(t.done)return t.value}while(Iu()<r)}}let Ih=new Float32Array(19),Ip=0;for(let e=-9;e<=9;e++){let t=Math.exp(-e*e/18);Ih[e+9]=t,Ip+=t}for(let e=0;e<Ih.length;e++)Ih[e]/=Ip;function IA(e,t){return Math.max(0,Math.min(t,e))}function If(e,t){let r=new Map,n=new Map;function i(){for(let[i,a]of Array.from(r)){if(r.size<=e)break;n.has(a)||(r.delete(i),t(i,a))}}return{get:e=>r.get(e),hold(e,a){n.set(a,{key:e,count:(n.get(a)?.count??0)+1});let s=r.get(e);r.delete(e),r.set(e,a),void 0===s||s===a||n.has(s)||t(e,s),i()},release(e){let a=n.get(e);if(a){if(a.count>1)return void a.count--;n.delete(e),r.get(a.key)===e?i():t(a.key,e)}}}}function Ig(e,t){let r=new Set;return{request(t){void 0===e.get(t)&&r.add(t)},clearPassed(n){r.forEach(r=>{r!==n&&void 0===e.get(r)&&t(r)}),r.clear()}}}async function Im(e,{neutralShadingPng:t,signal:r}){r?.throwIfAborted();let n=await Is(e.scene,t);return r?.throwIfAborted(),Id(function*({scene:e,surfaces:t},r){let n=function*(e,t,r=128){let{width:n,height:i}=t,a=n*i,s=Number.isFinite(r)&&r>0?r:128,o=new Uint8Array(a),l=new Float64Array(a);for(let r=0;r<i;r++)for(let a=0;a<n;a++){let c=r*n+a,u=Math.min(e.width-1,Math.floor((a+.5)*e.width/n)),d=Math.min(e.height-1,Math.floor((r+.5)*e.height/i));o[c]=e.data[(d*e.width+u)*4]??0,l[c]=(t.data[4*c]??s)/(2*s)}let c=l.slice();function u(e,t){let r=Math.ceil(3*t),s=Array.from({length:r+1},(e,r)=>Math.exp(-r*r/(2*t*t))),l=e;for(let e of[!0,!1]){let t=new Float64Array(a);for(let a=0;a<i;a++)for(let c=0;c<n;c++){let u=a*n+c,d=0,h=0;for(let t=-r;t<=r;t++){let r=e?c+t:c,p=e?a:a+t;if(r<0||r>=n||p<0||p>=i)continue;let A=p*n+r;if(o[u]!==o[A])continue;let f=s[Math.abs(t)];d+=l[A]*f,h+=f}t[u]=d/h}l=t}return l}yield;for(let e=0;e<4;e++){let t=new Float64Array(a),r=new Float64Array(a);for(let e=0;e<a;e++)e%n<n-1&&o[e]===o[e+1]&&(t[e]=c[e+1]-c[e]),e<a-n&&o[e]===o[e+n]&&(r[e]=c[e+n]-c[e]);let i=Math.max(.5,1/2**e);yield;let s=u(t,i);yield;let d=u(r,i);yield;for(let e=0;e<a;e++)s[e]=1/(Math.abs(s[e])+.001),d[e]=1/(Math.abs(d[e])+.001);let h=u(s,i);yield;let p=u(d,i);yield;let A=new Float64Array(a).fill(1);for(let e=0;e<a;e++)h[e]=e%n<n-1&&o[e]&&o[e]===o[e+1]?.004*h[e]/(Math.abs(t[e])+.02):0,p[e]=e<a-n&&o[e]&&o[e]===o[e+n]?.004*p[e]/(Math.abs(r[e])+.02):0,A[e]+=h[e]+p[e],h[e]&&(A[e+1]+=h[e]),p[e]&&(A[e+n]+=p[e]);let f=(e,t)=>{for(let r=0;r<a;r++){let i=A[r]*e[r];r%n&&(i-=h[r-1]*e[r-1]),r%n<n-1&&(i-=h[r]*e[r+1]),r>=n&&(i-=p[r-n]*e[r-n]),r<a-n&&(i-=p[r]*e[r+n]),t[r]=i}},g=new Float64Array(a),m=new Float64Array(a),v=new Float64Array(a);f(c,v);let b=0;for(let e=0;e<a;e++)g[e]=l[e]-v[e],m[e]=g[e]/A[e],b+=g[e]*m[e];let y=e=>{f(m,v);let t=0;for(let e=0;e<a;e++)t+=m[e]*v[e];if(t<=0)return null;let r=e/t,n=0;for(let e=0;e<a;e++)c[e]+=r*m[e],g[e]-=r*v[e],n+=g[e]*g[e]/A[e];let i=n/e;for(let e=0;e<a;e++)m[e]=g[e]/A[e]+i*m[e];return n};yield;for(let e=0;e<200&&b>1e-12;e++){let e=y(b);if(null===e)break;b=e,yield}}let d=new Float32Array(4*a);for(let e=0;e<a;e++)d.set([2*c[e],0,0,1],4*e);return d}(r.planeIds,r.shading,e.shading?.neutral),i=n.next();for(;!i.done;i=n.next())yield;let a=new Map;for(let n of e.planes){if(!t.includes(n.kind)||n.id<=0)continue;let e=function*(e,t){let r=2*e.width,n=2*e.height,i=new Float32Array(r*n),a=new Float32Array(r*n),s=new Uint8Array(r*n),o={minX:e.width,minY:e.height,maxX:-1,maxY:-1};for(let r=0;r<e.height;r++)(function(e,t,r,n){for(let i=0;i<t.width;i++)t.data[n*t.width+i]===r&&(e.minX=Math.min(e.minX,i),e.minY=Math.min(e.minY,n),e.maxX=Math.max(e.maxX,i),e.maxY=Math.max(e.maxY,n))})(o,e,t,r),yield;let{minX:l,minY:c,maxX:u,maxY:d}=o,h=u<0?r:Math.max(0,2*l-11),p=d<0?n:Math.max(0,2*c-11),A=u<0?-1:Math.min(r-1,(u+1)*2+11),f=d<0?-1:Math.min(n-1,(d+1)*2+11);for(let n=p;n<=f;n++)(function(e,t,r,n,i,a,s){let o=(i+.5)/2-.5,l=Math.floor(o),c=IA(l,e.height-1),u=IA(l+1,e.height-1),d=o-l;for(let o=a;o<=s;o++){let a=(o+.5)/2-.5,s=Math.floor(a),l=IA(s,e.width-1),h=IA(s+1,e.width-1),p=a-s,A=(e.data[c*e.width+l]===t?1-p:0)+(e.data[c*e.width+h]===t?p:0),f=(e.data[u*e.width+l]===t?1-p:0)+(e.data[u*e.width+h]===t?p:0);r[i*n+o]=A*(1-d)+f*d}})(e,t,i,r,n,h,A),yield;for(let e=p;e<=f;e++)(function(e,t,r,n,i,a){let s=n*r;for(let n=i;n<=a;n++){let i=0;if(n>=9&&n<r-9){let t=s+n-9;for(let r=0;r<Ih.length;r++)i+=e[t+r]*Ih[r]}else for(let t=-9;t<=9;t++)i+=e[s+IA(n+t,r-1)]*Ih[t+9];t[s+n]=i}})(i,a,r,e,h,A),yield;for(let e=p;e<=f;e++)(function(e,t,r,n,i,a,s){let o=i>=9&&i<n-9;for(let l=a;l<=s;l++){let a=0;if(o){let t=(i-9)*r+l;for(let n=0;n<Ih.length;n++,t+=r)a+=e[t]*Ih[n]}else for(let t=-9;t<=9;t++)a+=e[IA(i+t,n-1)*r+l]*Ih[t+9];t[i*r+l]=Math.round(255*a)}})(a,s,r,n,e,h,A),yield;return{data:s,width:r,height:n}}(r.planeIdMap,n.id),i=e.next();for(;!i.done;i=e.next())yield;a.set(n.id,i.value)}let s=function(e,t,r){let n=new Uint8Array(e.length);for(let t=0;t<e.length;t+=4)n.set([Math.max(0,Math.min(255,Math.round(128*e[t]))),0,0,255],t);let i=new i6.GYF(n,t,r,1023);return i.minFilter=1006,i.magFilter=1006,i.generateMipmaps=!1,i.needsUpdate=!0,i}(i.value,r.shading.width,r.shading.height),o=new Map;return a.forEach((e,t)=>o.set(t,function({data:e,width:t,height:r}){let n=new i6.GYF(e,t,r,1028);return n.minFilter=1006,n.magFilter=1006,n.wrapS=1001,n.wrapT=1001,n.generateMipmaps=!1,n.unpackAlignment=1,n.needsUpdate=!0,{data:e,width:t,height:r,texture:n}}(e))),{lightingTexture:s,planeIdMap:r.planeIdMap,masks:o}}(e,n),r)}function Iv(e){e.lightingTexture.dispose(),e.masks.forEach(e=>e.texture.dispose())}function Ib(e,t){let r=(e,t)=>e===t||null!==e&&null!==t&&e.dataPng===t.dataPng&&e.width===t.width&&e.height===t.height,n=e=>[...e.surfaces].sort().join();return e.roomId===t.roomId&&r(e.scene.planeIds,t.scene.planeIds)&&r(e.scene.shading,t.scene.shading)&&e.scene.shading?.neutral===t.scene.shading?.neutral&&e.scene.planes.length===t.scene.planes.length&&e.scene.planes.every((e,r)=>e.id===t.scene.planes[r].id&&e.kind===t.scene.planes[r].kind)&&n(e)===n(t)}let Iy={preparation:null,failed:!1},Iw=function(){let e=If(3,(e,t)=>Iv(t)),t=new WeakMap,r=new Set;function n(r,n){return t.set(n,r),e.hold(r.roomId,n),n}return{async acquire(i,{neutralShadingPng:a,signal:s}){let o,l=(o=e.get(i.roomId))&&Ib(t.get(o),i)?o:void 0;if(l)return n(i,l);s?.throwIfAborted();let c=Array.from(r).find(e=>Ib(e.request,i)),u=c??{request:i,controller:new AbortController,waiting:new Set},d=new Promise((e,t)=>{function i(){u.waiting.delete(a),t(s.reason),0===u.waiting.size&&(r.delete(u),u.controller.abort(s.reason))}function a(r){s?.removeEventListener("abort",i),"fulfilled"===r.status?e(n(u.request,r.value)):t(r.reason)}u.waiting.add(a),s?.addEventListener("abort",i,{once:!0})});if(!c){let e;r.add(u),e=e=>{r.delete(u),"fulfilled"===e.status&&0===u.waiting.size&&Iv(e.value),u.waiting.forEach(t=>t(e))},Im(u.request,{neutralShadingPng:a,signal:u.controller.signal}).then(t=>e({status:"fulfilled",value:t}),t=>e({status:"rejected",reason:t}))}return d},release:t=>e.release(t)}}(),Ix=new i6.Pq0(0,0,1),IC=new i6.Pq0(0,0,1),IE={floor:"normal-aligned",wall:"upright",ceiling:"normal-aligned"};function IS(e){return new i6.PTz().setFromUnitVectors(Ix,e.clone().normalize())}function IM(e,t,r){let n,i,a,s,o,l,{kind:c,planeId:u}=e.userData,d=(n=e.geometry.attributes.position,i=new i6.Pq0(n.getX(0),n.getY(0),n.getZ(0)),a=new i6.Pq0(n.getX(1),n.getY(1),n.getZ(1)),s=new i6.Pq0(n.getX(2),n.getY(2),n.getZ(2)),o=new i6.Pq0().crossVectors(a.sub(i),s.sub(i)).normalize(),l=r.position.clone().sub(t).normalize(),0>o.dot(l)&&o.multiplyScalar(-1),o),h=t.clone().addScaledVector(d,.05),p=function(e,t){if("normal-aligned"===IE[t])return IS(e);let r=e.clone().normalize(),n=IC.clone().addScaledVector(r,-IC.dot(r));if(1e-6>n.lengthSq())return IS(r);n.normalize();let i=new i6.Pq0().crossVectors(n,r).normalize(),a=new i6.kn4().makeBasis(i,n,r);return new i6.PTz().setFromRotationMatrix(a)}(d,c);return{position:h.toArray(),quaternion:p.toArray(),activePlaneId:u}}function II(e,t){return e.planes.filter(e=>t.includes(e.kind))}let IB=new Map;function IT(e){return{placementKey:e,resourcePose:null}}function Ik(e,t){return"reset-placement"===t.type?IT(t.placementKey):t.placementKey!==e.placementKey?e:{...e,resourcePose:t.resourcePose}}let IR=If(3,(e,t)=>{gg.clear(e),t.scene.traverse(e=>{if(e.isMesh)for(let t of(e.geometry.dispose(),Array.isArray(e.material)?e.material:[e.material])){for(let e of Object.values(t))e?.isTexture&&e.dispose();t.dispose()}})}),IP=Ig(IR,e=>gg.clear(e));function ID(e,t,r){let n=f_(e=>e.invalidate);!function(e,t){let{sceneGestures:r}=SO();(0,ep.useLayoutEffect)(()=>{let n=r.getState()[e];return t(n),r.subscribe(()=>{let i=r.getState()[e];Object.is(i,n)||(n=i,t(i))})},[r,e,t])}(e,(0,ep.useCallback)(e=>{t.current&&(t.current.rotation[r]=i6.cj9.degToRad(e),n())},[r,n,t]))}let I_="NEURODYN_ROOM_SCENE_PATCH";function IL(e,t,{shading:r=!0}={}){let n=e.onBeforeCompile,i=e.customProgramCacheKey.bind(e),a=e.side,s=e.transparent,o=e.alphaToCoverage;return e.side=2,e.transparent=!0,e.alphaToCoverage=!0,e.onBeforeCompile=(i,a)=>{n?.call(e,i,a),function(e,t,r){e.uniforms.uMask=t.activeMaskTextureUniform,e.uniforms.uRoomLighting={value:t.lightingTexture},e.uniforms.uViewport={value:t.viewport};let n=e.fragmentShader.includes("vec3 totalEmissiveRadiance")?"totalEmissiveRadiance":"vec3(0.0)",i=`
|
|
7609
|
+
}`:U);function En(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 Ei=En("/apps/vizbl-wall-art/http")??"";function Ea(e){return"shopify"===e.source||void 0!==e.apiKey}function Es(e){return"wall-panel"===e.resourceType?"panels":"rugs"===e.resourceType?"rugs":"flooring"===e.resourceType?"flooring":"shopify"===e.source?"wallart-shopify":"wallart"}function Eo(e){let t=Es(e);return"panels"===t?{query:void 0,config:{params:{productType:t}}}:{query:{productType:t},config:{}}}function El(e){if(!i0(e))return null;let t=e.response?.status;return 401===t?"unauthorized":402===t?"payment-required":null}function Ec(e){return iV.create({baseURL:e,timeout:3e4})}let Eu=new Set(["common","delete","get","head","post","put","patch","options","purge","link","unlink"]);function Ed(){return globalThis.process?.env?.NODE_ENV}function Eh(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}Eu.has(t)||r.push([n,String(i)])}}(t,r),r}function Ep(e){return!!("u">typeof FormData&&e instanceof FormData)||null!==e&&"object"==typeof e&&(e.constructor?.name==="FormData"||"function"==typeof e.getBoundary)}let EA=new Set(["authorization","cookie","set-cookie","x-xsrf-token"]);function Ef(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]=EA.has(e.toLowerCase())?"[redacted]":String(n));return r}function Eg(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 Ep(e)?"[FormData]":e}}function Em(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:Eg(e.requestConfig.data),requestHeaders:Ef(e.requestConfig.headers),responseHeaders:Ef(e.responseHeaders),responseBody:Eg(e.responseBody)};(e.status>=500||void 0!==e.error&&0===e.status?console.error:e.status>=400?console.warn:console.log)(n,i)}function Ev({clientName:e,configureFunctionName:t,defaultBaseURL:r}){let n=Ec(r),i=Ec(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||Ep(t.data))return t;let n=i3.from(t.headers);return n.has("Content-Type")||void 0!==(r=e.defaults.headers.common)&&i3.from(r).has("Content-Type")||n.set("Content-Type","application/json"),t.headers=n,t}(e,function(e){let t=i3.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=i3.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=Ed(),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&&Em({requestConfig:r,requestId:n,status:t.status,durationMs:Date.now()-a,responseHeaders:t.headers,responseBody:t.data}),t}catch(e){throw i&&Em({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=Eh(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"===Ed())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=i3.from(n);for(let[e,r]of Eh(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=i3.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=Ed())&&"testing"!==e)throw Error("resetApiClientForTests() can only be called in test environment.");n=Ec(r),i=Ec(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 Eb=Ev({clientName:"API node client",configureFunctionName:"configureNodeApiClient",defaultBaseURL:"https://api.vizbl.com"}),Ey=Eb.configureClientRuntime;Eb.configureAccessTokenResolverRuntime,Eb.configureHeadersResolverRuntime,Eb.configureUnauthorizedHandlerRuntime,Eb.isClientConfiguredRuntime,Eb.assertClientConfiguredRuntime,Eb.resetClientForTestsRuntime;let Ew=Eb.requestRuntime;async function Ex(e){return Ew(e)}function EC(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 EE(e,t={}){let{client:r=Ex,...n}=t,i=EC(e);return(await r({method:"POST",url:"/inference/room-planes/run-raw",data:i,...n})).data}async function ES(e,t={}){let{client:r=Ex,...n}=t;return(await r({method:"POST",url:"/layout/GetConfig",...n,headers:{...e,...n.headers}})).data}async function EM(e,t={}){let{client:r=Ex,...n}=t;return(await r({method:"POST",url:"/public/widget/activate-wallart",params:e,...n})).data}async function EI(e,t,r={}){let{client:n=Ex,...i}=r;return(await n({method:"POST",url:"/public/objects/public",params:t,data:e,...i})).data}async function EB(e,t={}){let{client:r=Ex,...n}=t;return(await r({method:"POST",url:"/public/widget/shopify/get-rooms",params:e,...n})).data}async function ET(e={}){let{client:t=Ex,...r}=e;return(await t({method:"POST",url:"/public/widget/get-rooms",...r})).data}async function Ek(e,t={}){let{client:r=Ex,...n}=t;return(await r({method:"POST",url:"/public/widget/token",data:e,...n})).data}async function ER({tinuuid:e},t,r={}){let{client:n=Ex,...i}=r;return(await n({method:"GET",url:`/public/objects/by-tinuuid/${e}`,params:t,...i})).data}async function EP(e,t={}){let{client:r=Ex,...n}=t,i=EC(e);return(await r({method:"POST",url:"/public/inference/room-planes/run-raw",data:i,...n})).data}async function ED(e,t={}){let{client:r=Ex,...n}=t;return(await r({method:"POST",url:"/public/widget/events",data:e,...n})).data}Eb.requestWithoutUnauthorizedRecovery,Eb.addResponseInterceptorRuntime;let E_=Ev({clientName:"API client",configureFunctionName:"configureApiClient",defaultBaseURL:"https://api.vizbl.com/v1"}),EL=E_.configureClientRuntime;E_.configureAccessTokenResolverRuntime,E_.configureHeadersResolverRuntime,E_.configureUnauthorizedHandlerRuntime,E_.isClientConfiguredRuntime,E_.assertClientConfiguredRuntime,E_.resetClientForTestsRuntime;let EF=E_.requestRuntime;async function EN(e){return EF(e)}async function EO(e,t={}){let{client:r=EN,...n}=t;return(await r({method:"POST",url:"/obj/Fetch",data:e,...n})).data}async function EQ(e,t={}){let{client:r=EN,...n}=t;return(await r({method:"POST",url:"/obj/GetKitItems",data:e,...n})).data}async function EU(e,t={}){let{client:r=EN,...n}=t;return(await r({method:"POST",url:"/obj/GetPublic",data:e,...n})).data}E_.requestWithoutUnauthorizedRecovery,E_.addResponseInterceptorRuntime;let Ez="x-widget-session-token",Ej=(e,t)=>ED(e,t);class EG{apiConfig;issueWidgetToken;now;refreshPromise=null;refreshThresholdMs;session;constructor(e,t={}){this.apiConfig=t.apiConfig,this.issueWidgetToken=t.issueWidgetToken??Ek,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{[Ez]:await this.getTokenForRequest()}}async getApiConfigForRequest(e){let t=await this.getTokenForRequest();return{...this.apiConfig,...e,headers:{...this.apiConfig?.headers,...e?.headers,[Ez]: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 EH(e,t){return e?.token&&e.sid&&Number.isFinite(e.expiresIn)?new EG(e,t):null}function EV(e,t,r={}){if(!e)return;let n=r.createWidgetEvent??Ej;e.getApiConfigForRequest(r.apiConfig).then(e=>n({event:t,timestamp:new Date().toISOString()},e)).catch(()=>{})}async function Eq(e){let t={"x-api-key":e.apiKey,...EW(e)},r=await e.widgetSession?.getTokenForRequest();return r&&(t[Ez]=r),t}function EW(e){return e.language?{Lang:e.language}:void 0}function EK(e,t){return["room-viewer","object",{apiKey:t.apiKey??null,language:t.language??null,source:t.source,tinuuid:e??null,resourceType:t.resourceType??null}]}function EJ(e,t,r){return["room-viewer","kit-objects",{apiKey:r.apiKey??null,language:r.language??null,kitUuid:e??null,ownerUuid:t??null,resourceType:r.resourceType??null,source:r.source}]}async function EY(e,t){if(!Ea(t))return EO({tinuuid:e},{headers:EW(t),signal:t.signal});let{query:r,config:n}=Eo(t);return ER({tinuuid:e},r,{...n,baseURL:t.baseURL,headers:await Eq(t),signal:t.signal})}async function EX(e,t,r){let n={page:t,owners:[e]};if(!Ea(r))return EU({...n,productType:"wall-panel"===r.resourceType?"panels":"rugs"===r.resourceType?"rugs":"flooring"===r.resourceType?"flooring":"wallart"},{headers:EW(r),signal:r.signal});let{query:i,config:a}=Eo(r),s=await EI({...n,productType:Es(r)},i,{...a,baseURL:r.baseURL,headers:await Eq(r),signal:r.signal});return{folder:s.folder,objs:s.objs,pages_count:s.pages_count}}async function EZ(e,t,r,n){let i=await EQ({folder:{uuid:e,type:"kit"},page:r},{baseURL:En(n.baseURL),headers:EW(n),signal:n.signal});return{folder:i.folder,objs:i.objs,pages_count:i.pagesCount}}async function E$(e){let t={baseURL:e.baseURL,headers:await Eq(e),signal:e.signal},r=Eo(e);return("shopify"===e.source?await EB(r.query,{...t,...r.config}):await ET(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}))}let E0={destination:"floor",ar:"appclip"},E1={"wall-panel":{handoff:null,surfaces:["wall"],missingSurfaceMessage:"wall",lighting:"static-neutral-hdr",roomPresets:"wall-room-presets",chrome:"immersive-room",presentation:"immersive-panels",manipulation:"panel-group",productNameSource:"collection",catalogTitle:"wall-panel",introduction:"focus-resource",identity:"modelled-resource",composition:"single-listing",materialRole:"finish"},wallart:{handoff:{destination:"wall",ar:"webar-usdz"},surfaces:["wall"],missingSurfaceMessage:"wall",lighting:"static-neutral-hdr",roomPresets:"wall-room-presets",chrome:"framed-scene",presentation:"framed-default",manipulation:"single-resource",productNameSource:"material",catalogTitle:"title",introduction:null,identity:"textured-resource",composition:"single-listing",materialRole:"product-identity"},rugs:{handoff:E0,surfaces:["floor"],missingSurfaceMessage:"floor",lighting:"remote-neutral-hdr",roomPresets:"floor-room-presets",chrome:"immersive-room",presentation:"immersive-default",manipulation:"drag-with-rotation-handle",productNameSource:"collection",catalogTitle:"rugs",introduction:null,identity:"modelled-resource",composition:"sized-design",materialRole:"placeholder"},flooring:{handoff:E0,surfaces:["floor"],missingSurfaceMessage:"floor",lighting:"remote-neutral-hdr",roomPresets:"floor-room-presets",chrome:"immersive-room",presentation:"immersive-default",manipulation:"rotate-on-floor",productNameSource:"collection",catalogTitle:"flooring",introduction:null,identity:"modelled-resource",composition:"color-design",materialRole:"product-identity"}};function E2(e){return E1[e].surfaces}function E3(...e){return si(al(e))}let E9=ss("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 E4({className:e,variant:t,size:r,asChild:n=!1,...i}){return(0,eh.jsx)(n?aa:"button",{"data-slot":"button",className:E3(E9({variant:t,size:r,className:e})),...i})}function E5({...e}){return(0,eh.jsx)(oB,{"data-slot":"dialog",...e})}function E8({...e}){return(0,eh.jsx)(oD,{"data-slot":"dialog-portal",...e})}function E6({...e}){return(0,eh.jsx)(oK,{"data-slot":"dialog-close",...e})}function E7({className:e,...t}){return(0,eh.jsx)(oL,{"data-slot":"dialog-overlay",className:E3("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 Se({className:e,children:t,contentInsideOverlay:r=!1,showCloseButton:n=!0,portalContainer:i,...a}){let s=(0,eh.jsxs)(oQ,{"data-slot":"dialog-content",className:E3("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,eh.jsxs)(oK,{"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,eh.jsx)(o5,{className:"size-6"}),(0,eh.jsx)("span",{className:"sr-only",children:"Close"})]})]});return(0,eh.jsx)(E8,{"data-slot":"dialog-portal",container:i,children:r?(0,eh.jsx)(E7,{children:s}):(0,eh.jsxs)(eh.Fragment,{children:[(0,eh.jsx)(E7,{}),s]})})}function St({className:e,...t}){return(0,eh.jsx)("div",{"data-slot":"dialog-header",className:E3("flex flex-col gap-2 text-left",e),...t})}function Sr({className:e,showCloseButton:t=!1,children:r,...n}){return(0,eh.jsxs)("div",{"data-slot":"dialog-footer",className:E3("flex flex-wrap items-center justify-start gap-2 pt-2",e),...n,children:[r,t&&(0,eh.jsx)(oK,{asChild:!0,children:(0,eh.jsx)(E4,{variant:"secondary",className:"text-text-dark",children:"Close"})})]})}function Sn({className:e,...t}){return(0,eh.jsx)(oH,{"data-slot":"dialog-title",className:E3("typo-base-18 text-text-dark",e),...t})}function Si({className:e,...t}){return(0,eh.jsx)(oq,{"data-slot":"dialog-description",className:E3("typo-base-16 text-text-light",e),...t})}function Sa(e){return(0,eh.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",...e,children:[(0,eh.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,eh.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,eh.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 Ss(e){return(0,eh.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",...e,children:(0,eh.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 So(e){return(0,eh.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",...e,children:(0,eh.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 Sl(e){return(0,eh.jsxs)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:[(0,eh.jsx)("g",{clipPath:"url(#clip0_3784_10212)",children:(0,eh.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,eh.jsx)("defs",{children:(0,eh.jsx)("clipPath",{id:"clip0_3784_10212",children:(0,eh.jsx)("rect",{width:"24",height:"24",fill:"white"})})})]})}function Sc(e){return(0,eh.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",...e,children:[(0,eh.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,eh.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 Su(e){return(0,eh.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",...e,children:(0,eh.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 Sd(e){return(0,eh.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 13.3333 13.3343",fill:"none",...e,children:(0,eh.jsx)("path",{d:"M12.6667 2.66759H9.33333V1.55425C9.31769 1.12747 9.13347 0.724291 8.82105 0.433114C8.50862 0.141937 8.0935 -0.0134857 7.66667 0.000918958H5.66667C5.23984 -0.0134857 4.82471 0.141937 4.51229 0.433114C4.19986 0.724291 4.01564 1.12747 4 1.55425V2.66759H0.666667C0.489856 2.66759 0.320286 2.73782 0.195262 2.86285C0.0702379 2.98787 0 3.15744 0 3.33425C0 3.51106 0.0702379 3.68063 0.195262 3.80566C0.320286 3.93068 0.489856 4.00092 0.666667 4.00092H1.33333V11.3343C1.33333 11.8647 1.54405 12.3734 1.91912 12.7485C2.29419 13.1235 2.8029 13.3343 3.33333 13.3343H10C10.5304 13.3343 11.0391 13.1235 11.4142 12.7485C11.7893 12.3734 12 11.8647 12 11.3343V4.00092H12.6667C12.8435 4.00092 13.013 3.93068 13.1381 3.80566C13.2631 3.68063 13.3333 3.51106 13.3333 3.33425C13.3333 3.15744 13.2631 2.98787 13.1381 2.86285C13.013 2.73782 12.8435 2.66759 12.6667 2.66759ZM5.33333 1.55425C5.33333 1.44759 5.47333 1.33425 5.66667 1.33425H7.66667C7.86 1.33425 8 1.44759 8 1.55425V2.66759H5.33333V1.55425ZM10.6667 11.3343C10.6667 11.5111 10.5964 11.6806 10.4714 11.8057C10.3464 11.9307 10.1768 12.0009 10 12.0009H3.33333C3.15652 12.0009 2.98695 11.9307 2.86193 11.8057C2.7369 11.6806 2.66667 11.5111 2.66667 11.3343V4.00092H10.6667V11.3343Z",fill:"currentColor"})})}function Sh(e){return(0,eh.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",...e,children:[(0,eh.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,eh.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 Sp(e){return(0,eh.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",...e,children:[(0,eh.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,eh.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,eh.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,eh.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,eh.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,eh.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,eh.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,eh.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 SA(e){return(0,eh.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",...e,children:[(0,eh.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,eh.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,eh.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 Sf(e){return(0,eh.jsxs)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:[(0,eh.jsx)("g",{clipPath:"url(#clip0_3784_10281)",children:(0,eh.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,eh.jsx)("defs",{children:(0,eh.jsx)("clipPath",{id:"clip0_3784_10281",children:(0,eh.jsx)("rect",{width:"24",height:"24",fill:"currentColor"})})})]})}function Sg(e){return(0,eh.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",...e,children:[(0,eh.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,eh.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,eh.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,eh.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,eh.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 Sm(e){return(0,eh.jsx)("svg",{fill:"none",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",...e,children:(0,eh.jsx)("path",{d:"M6.05944 11.1406C6.47507 8.23438 8.97819 6 12.0001 6C13.6563 6 15.1563 6.67187 16.2438 7.75625L16.2626 7.775L16.5001 8H15.0032C14.4501 8 14.0032 8.44687 14.0032 9C14.0032 9.55313 14.4501 10 15.0032 10H19.0032C19.5563 10 20.0032 9.55313 20.0032 9V5C20.0032 4.44688 19.5563 4 19.0032 4C18.4501 4 18.0032 4.44688 18.0032 5V6.66875L17.6501 6.33437C16.2032 4.89375 14.2032 4 12.0001 4C7.96882 4 4.63444 6.98125 4.08132 10.8594C4.00319 11.4062 4.38132 11.9125 4.92819 11.9906C5.47507 12.0688 5.98132 11.6875 6.05944 11.1438V11.1406ZM19.9188 13.1406C19.9969 12.5938 19.6157 12.0875 19.0719 12.0094C18.5282 11.9312 18.0188 12.3125 17.9407 12.8562C17.5251 15.7625 15.0219 17.9969 12.0001 17.9969C10.3438 17.9969 8.84382 17.325 7.75632 16.2406L7.73757 16.2219L7.50007 15.9969H8.99694C9.55007 15.9969 9.99694 15.55 9.99694 14.9969C9.99694 14.4437 9.55007 13.9969 8.99694 13.9969L5.00007 14C4.73444 14 4.47819 14.1063 4.29069 14.2969C4.10319 14.4875 3.99694 14.7406 4.00007 15.0094L4.03132 18.9781C4.03444 19.5312 4.48757 19.975 5.04069 19.9688C5.59382 19.9625 6.03757 19.5125 6.03132 18.9594L6.01882 17.35L6.35319 17.6656C7.80007 19.1062 9.79694 20 12.0001 20C16.0313 20 19.3657 17.0187 19.9188 13.1406Z",fill:"currentColor"})})}function Sv(e){return(0,eh.jsxs)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:[(0,eh.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,eh.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 Sb({className:e,...t}){return(0,eh.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",className:E3("size-6",e),...t,children:[(0,eh.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,eh.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 Sy="var(--v-borders-medium)";function Sw({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,eh.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:E3("spinner-logo shrink-0","sm"===r?"size-9":"size-22",e),children:[(0,eh.jsx)("g",{className:"spinner-logo__intro-shell",children:(0,eh.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,eh.jsx)("circle",{className:"spinner-logo__intro-orb",cx:"46.27",cy:"45.8",r:"11.18",fill:"white",stroke:Sy,strokeWidth:t,strokeLinecap:"round",strokeLinejoin:"round"}),(0,eh.jsx)("circle",{className:"spinner-logo__result-ring",cx:"46.5",cy:"45.5",r:"33.46",fill:"white",stroke:Sy,strokeWidth:t,strokeLinecap:"round",strokeLinejoin:"round"}),(0,eh.jsx)("g",{transform:"translate(27.786 31.4489)",children:(0,eh.jsx)("g",{className:"spinner-logo__result-glyph spinner-logo__result-glyph--success",children:(0,eh.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:Sy})})}),(0,eh.jsx)("g",{transform:"translate(32.4879 31.4885)",children:(0,eh.jsx)("g",{className:"spinner-logo__result-glyph spinner-logo__result-glyph--error",children:(0,eh.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:Sy})})})]})}case"default":return(0,eh.jsx)(Sp,{...o,role:i??"status","aria-live":a??"polite","aria-label":s??"Loading","data-slot":"spinner",className:E3("size-4 animate-spin",e)});default:return t}}let Sx="inset-0 h-dvh 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";function SC(e){return"room-load-failed"===e||"room-missing-surface"===e}let SE=(0,ep.createContext)(null),SS=(0,ep.createContext)(null),SM=(0,ep.createContext)(null),SI=(0,ep.createContext)(null),SB=(0,ep.createContext)(null),ST=(0,ep.createContext)(null),Sk=(0,ep.createContext)(null),SR=(0,ep.createContext)(null);function SP(e,t){let r=(0,ep.use)(e);if(!r)throw Error(`${t} must be used within a RoomViewerProvider`);return r}function SD(){return SP(SE,"useRoomViewerMetadata")}function S_(){return SP(SS,"useRoomViewerSurface")}function SL(){return SP(SM,"useRoomViewerRooms")}function SF(){return SP(SI,"useRoomViewerResource")}function SN(){return SP(SB,"useRoomViewerSceneState")}function SO(){return SP(ST,"useRoomViewerSceneActions")}function SQ(e){let{sceneGestures:t}=SO(),r=()=>t.getState()[e];return(0,ep.useSyncExternalStore)(t.subscribe,r,r)}function SU(){return SP(Sk,"useRoomViewerWallResourceControls")}function Sz(e,t){for(let r of Object.keys(t))if(t[r]!==e[r])return{...e,...t};return e}function Sj(e){return Object.entries(e).every(([e,t])=>"shadersReady"===e||t)}function SG(e){return Sj(e)&&e.shadersReady}let SH={placementReady:!1,prepareReady:!1,artifactsReady:!1,assetsReady:!1};function SV({className:e,...t}){return(0,eh.jsx)(li,{"data-slot":"label",className:E3("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 Sq({className:e,...t}){return(0,eh.jsx)("div",{"data-slot":"field-group",className:E3("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 SW=ss("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 SK({className:e,orientation:t="vertical",...r}){return(0,eh.jsx)("div",{role:"group","data-slot":"field","data-orientation":t,className:E3(SW({orientation:t}),e),...r})}function SJ({className:e,...t}){return(0,eh.jsx)(SV,{"data-slot":"field-label",className:E3("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 SY({className:e,...t}){return(0,eh.jsx)("div",{"data-slot":"field-label",className:E3("flex w-fit items-center gap-2 text-sm leading-snug font-medium group-data-[disabled=true]/field:opacity-50",e),...t})}function SX({...e}){return(0,eh.jsx)(cX,{"data-slot":"select",...e})}function SZ({...e}){return(0,eh.jsx)(c1,{"data-slot":"select-value",...e})}function S$({className:e,size:t="default",children:r,...n}){return(0,eh.jsxs)(c$,{"data-slot":"select-trigger","data-size":t,className:E3("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,eh.jsx)(c2,{asChild:!0,children:(0,eh.jsx)(Su,{className:"size-6"})})]})}function S0({className:e,children:t,position:r="item-aligned",align:n="center",portalContainer:i,...a}){return(0,eh.jsx)(c3,{container:i,children:(0,eh.jsxs)(c4,{"data-slot":"select-content",className:E3("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,eh.jsx)(S2,{}),(0,eh.jsx)(ua,{className:E3("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,eh.jsx)(S3,{})]})})}function S1({className:e,children:t,...r}){return(0,eh.jsxs)(up,{"data-slot":"select-item",className:E3("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,eh.jsx)("span",{"data-slot":"select-item-indicator",className:"absolute right-2 flex size-6 items-center justify-center",children:(0,eh.jsx)(um,{children:(0,eh.jsx)(So,{className:"size-5"})})}),(0,eh.jsx)(uf,{children:t})]})}function S2({className:e,...t}){return(0,eh.jsx)(ub,{"data-slot":"select-scroll-up-button",className:E3("flex cursor-default items-center justify-center py-1",e),...t,children:(0,eh.jsx)(o8,{className:"size-4"})})}function S3({className:e,...t}){return(0,eh.jsx)(uw,{"data-slot":"select-scroll-down-button",className:E3("flex cursor-default items-center justify-center py-1",e),...t,children:(0,eh.jsx)(o6,{className:"size-4"})})}var S9=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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"}}'),S4=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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"}}'),S5=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,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"},"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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"}}'),S8=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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"}}'),S6=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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"}}'),S7=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,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAIAAABMXPacAAAACXBIWXMAAAPoAAAD6AG1e1JrAAAd30lEQVR42u2d+bssVXWG+z8hwQkVnBElCEZQjCMqqPA4IY6gqIGo0QQvYAAJMl7QYKISjYJRvOBlUJEhAQyRPyov/dof69Suqq7uU+dcNHf9UE91dXVV9ffuvfbaYy2+u7R/GbDbb7/9eyv715X9W2Pfb+wHO+2HO+2OO+5wq/37JvajUftxn/3Hru0nO+2nS7vzzjvvWtrPGrur2J195s+xRdS/fWl1v6P+RN076v+wsap7r/roWHd+NM3mUvwn6yzqCyCi/+fSWhKt+hXPoib2jvWmevRtpf9Bn7WKT0ny4xIPpfEtREfKKXIPSV/VV/qfL61iuGundaTfAcC036o/lOTblK7iQ7oPJfYRxX88bCq4qegqPj2lt9J30r4AqvqVAXbXqAlpEc/TcUEAGHI1a/37dol9dse9XTJX7l7ROz4kyf/nfda6o+SJemQxVPYitClaW+tn2iTfcegTpZ9L940Sdau4orfqd9LviPoB0EviWQC1pK3lbQRV3LWKj3uYKnr25xV9RP0hfWs0MmKt+25d/y9W1vFCsUEANcSMz2G/ChoMvZHMFiXqiO5reVRXnv3xND5R6KFApereq35lEABDGLLjsy1aL6/DQeWov8swZq6gZdMCc1N9x0vLahG0k/zvvvvu8XxQpTdfLoYK2Op/xqUfitbXyj2OYYuSc6TA3KXiHd0rgEgfC4AOhkgfr7gDQPXy5Am0RsS1DmdE9xkjljzuT0dtU+l7w5JW8V7pa/K/e6fVTJBwKEV6/SPPAujENqb96oImpvcRfUe+nRKlTHEs03WfYkOid5L/3X0WALUyPAagbT9w21agWgCzV0e3E31E+p9Ntt703parSd1R/JdLqwBqRWwMQG9zjQCMhVoAs0TxPkdH/U68OKL1ROc+MZn3Jvmh6L6GPZG+AwALgNoA1ykAngGwUWSZQL6N5bfIAVPaW7YrUX+2iY3497Yg7ajfAVAZtABk0Pm/i7VBTutw4tN3H19OV3+uSGYijKr+0PGO8+kASAnfyQEdBote9Tul7kYRTq9viY0AmDGO3A5Ap9my09rcgZRMwH71RTUHtM3RLYPFWs/TBjkjGNY2IrbKdp6sbfLdpU1RvD5Gtjx/vqrH0xWD8+AcrjMEoLdPpsNgsZH0Q9Hk9DBmC7HmYtD71VBhk8fmh/njEaQGMyMApjBYTKnZDiX5Ka24a9XfNErp/WoLKr2KR1n+XT7W1rCokf/F3Xsj0ZTe4wwWa4vcKRWo7Wqkm0YmE20896zVPT6WjyRtW8ZsHq4M8r+4YwAcOnTonnvuuffee9mvLUIjDBa1yG0D/CnRy5Cr6ZU+ukxvbOmtDbUB4nQYvUFhdOePu4/WnJCWSnZSZ9L1awmHDi1NANMZDAKYUsxu6uW3DsO3sCkYOgmff40UtgWgxm233fad73zHVvoOAz1POmQQWv9TAYwzOLCyxaaeZ+uocVz3cTV/MWqbkuiEPWEQAIhOPxXq33rrrWCgi7AyQJneeFQAaxkc2GmLtVWtiWl/u/b0Iek7Et89zcbB9DLoAEAKErgAGLADg9uWVhnof9omuQAYYXCgsUUbdA6Fm0Npfzc+Z0j3KmunjWW8AaCXR29feTLBCIDbismAE9q/0AIYYtAPYNNSVwbbBZcT1f/lHDaEocPATFABIDTdtChuMRDjCBL19sm0ADoMDgzYYijsyf4Wpe509Xv9zC9ntZFOEhkEAH+5AogXqoYLMvScAgA7sM4WbcHblsAjjWVbRPdD3mYjWf17WzNoM0EAUA4LAPtunx2Y1f7ogsYbG0bG5g0NGhhXv7crdRb1k/SGGHQygQA6kSjJnGJgnwC0yX+K+mtHbfQ2JAypH+2m6N572qFha/uqWgC1GKgAeketzQ9givOZCGBKpN8r/Yi4Q0JPBNBh0HqhIQDYEQDQyQQbhZ5TAp5ep39oFzbxCrlX9UJDAKyLGYy2NjOANtW3ANLM2ev9Nwo3Oz15h3ZtvRe5Z2VtJmiL4hoIBYDDA48MgC2S/8SxY71dqROFjqBV1pEzexkMFQNDAL7XZ/MDmN7avLXz6QSdI+rfs4lVHnWnl0HNBCMACAufEwDm9f4tgF1KP5IhtgCQSPS5C2Ak9l87sKANOqtYu2TQITH0bfVCIwCsiwkg1bF9AjCx9jsRQNvI05a9HXV2yWAcT80EKZDWAti/QngW9TeNfDrqzKV1mxV6Y6HO2E3/7xEAQKXDyrAesK1/8ZHn4ysZ2Bq1nf9py96RknM3ACZ6oVoXqwBsj9snANwMTW+55RbuTQTWGTZL8ueWHKdE4inNK1O6WdrR2+MV173wPLYDjxcDFUDGnqjJPpUBqv+tb32LbQoDkwM3AwDq0wJ18OBBztRTTQfQm/x3A2D6mUofAJ1YqAWQBtH9BqD61113HSoLwF5/86MFAI9CGwj39sj0jsahBucpFag9Koo7AOrsidolIID9cEGo/89Lu/rqq60HZmhGZsvwNHRPOyZg6xJ4bSbYHwa9OYC/kxbp/QaA9CR/ttdff/0111xj7QMGbG+66aYbb7wR6e2bZmdiATCx0X/fAHRKgjYSTQ4wEtlXAN9eGuqzhcTNN98sg2QLvD8k7JAb8j9Dxe9GZcCeApDBcxSA6msUCRa5KRuuvfbaG264gSOuq8IjTh/h09vJPrERbSNxa2E7BUACodoz3BbC+9EfgMrfLobuB1cGmGtXxnE+WjZMdz7jjT+7B9BRvxdDG4y2VYG0x3UK4f0A8E8rw+Hg8Q8WI+GrPsdRn/K5t9d3LYCJzc7bRZmVQZsVOoRqbaB1QZbDRwYAKpMVril29dLYoVRwSIxV4gyL7J1TuHXy3y4f3LvTxk+oANrWiF4A+1EGoD6p21iIz/+w0zji6FQCUBjwoHihLcL/vQBwb2NrAbTlcNslsN8ASN24GpwM2yuuuOKb3/xm1GefI87iAwAPx+PyZE4L2TT6nNLb1WHQKttR/Fcr+xMGoN+/eWk4nKuuuorcgPps2eeIfRT6H6M0Hk5HNDLuYaMcMDGB96p/+PDhymCoDHjuArC8pZLFFi+EO2KLt8m+7T/O0eH2ZojpQx/mAvCrxg6vrB5s88FuADhAcW8B1DHANyzNANQoCOOZeBorYiaKOj1hPPwfAtDpyJ2YA4YAVAYjXmuWHIBKBOszA8gQVOSm0nv9ytjnSNa19BxbQzdt/9ko+Y84nF71x/NBC6D2i7VhqHndPple9VFmfgCa8X41jnA862lRANTpUSMDzTcqfocAVEFHpO/NB70s247JAEjvkznAuXm96u8hgOv7jMfKQrdOTxgHMNQANz3t/2rADk+z6ojaOLUOkcuaJnWeTHKAABwhShkZ9WcG0Lsmj7mBYsBZmTyZLdV8tLtm9wB6O1haAIc3tE5hkNzTCyDztnoBODLFmWJV/f0AgBkdwT+i20rVWwlYC2Dr5H94c+vNPR0AtS2odsoLwDAPBhSB1fMcAQAYqQDd01PfrpY8UgKvzQFbqH/fffe5dWcihtoaMQWAM4RhgPo3NLYfAG5ZGQzsGuv0BGzkf1oG46XuOIBqExkMAegMSwkAsrsAbuyzfQJg9ZhgFAbtUu0jAMYnHs0LYMg6GFoAveOCUgZkjfKqQ2zm+QGt+tyYW+beeL1a/9o7AGtL4Psm21oAnRyQ/oAWQHSIzQmgrpTooAeMXMZt0kSBAWBiAbB25tduAEwh0euIJgIwB2RknAmxtfkBWN1NlRjFDUPZNxbmq6GG6E3n3Q01eXYAbKd+L4ZaOxsqhI8kALSu6mvchuO2/zhSqNcFjTcBba3+vrmgDgAXSamjo2/qszkBfOUrX7Gpx/Qe0/PAgOdol23/swHQTteutTBywJ5HQdyGugblDC3PRLiZk6/bYZ+nGQGwdvLpdt5/lyFQZTAFQKcQDgB02HMAjsZG6MsvvxwSip6FcayS9A5JX1sF+5MA0GkNPQIAHIhheveWAHB4DM/RzgvbjQvaTwBDLihNEUODcxOD7h8AGdjmjPoOUk9IOiOADoPxRv9Z1O8NgSqAdnBuB4Ad5nsIoE7UZnCKPcB1/cO9A7BHhfDaSkBtCu0FEBdkd2HLYK8AWAeOQxyaHLmbesAuAey+CtYpAGqHTAWgP7CbhNpoh8GeLNbRu5j8RgB2z2DrTpi1/cMj6ncm6VUXlK6qDoP5AWRBWPNBJTGFwdYtQiNl8lCeaIdE9PYBtJ3AHek7r1vznxoFZbGO2l1YGcwchsbGl+vrnS650USBoa6Cocbq3lE9nbkuOYHb8dWmANp6gC0u5oNO64AjRWYGUN8OBgPXpWvX0g2SFkb7htCsResKj70A7I911dPpADoDbLMumx8rg+kAOssnulg0f9nWgVt3GjXWmTtk2rdFZqfz8jY75WUw/lqRADAzubx1BRD1sxD/FgA6fcu5rAy2AGBvq+UBFaODAzbzwKz2jcEOB2sP2jYig+kAOgxa9cNgFgDqy8dNAdjU6D7p7+CwzT8yLmOzyHQJfjWXjtX0g5CAgY2jEwF0GAwt1tqWzNsBCIPpAOqi1iSyg6M2MwBVVmi39gE5LK6afZMYnMYZtADCYHyV4pGq8kYAVJmrTSyEY/jbg+ts/nnCdrndUoyC/tpizN1gGgFbGHgCuWSEQS8Ax1evXXQ7ResuASj0FAk2Un9+ALWCJwY7BpCbGTJXLQ31OZXmUvZhYK/QCINeAJ45ZWX0A0fIDk6zmQE4RZKtES4AUN+B6c5euvLKK5H+H5d22WWXMWujw+DAn4sdGQBMxMDJILcYrGt4EK1Rn0kySP/1pTlzhoNhcOCo7RKA8/GcEiwD1Tftoz4nIf3Xvva1rxcLg6MKzjZNFRLXLc20j9tRfdyOACoD9vl23u7p/78AkDsMSP4o+41vfIPv2KI+PufvVyYDdr66tKPyzQBA9cMA36Kjt8jV+zNyQsW//OUv/12xo/LNA6AyQPSvroyUDgkBKP0Xl/a3S7vkkkuOyjcbgDBA8UtWhsp8xO0g/aWXXvrFYl9a2lH5ZgBw5cpkgNxfWNrFF1/8+c9/nuRPVgDGF/vsqHwzALiiGBiQG90/97nPXXTRRRdeeCE88D8A+EKfHZVvTgCXLw25oz5GMYD3xxcdBaD914D9d59NAnD5TgOAOQADgJEPAHA4Fze2////b4q99a1vfctb3nL66ae/8Y1vPPXUU0855ZS/amz2B0DWiQCefPLJ/yk2CMBWthiK1zSu/0F9eFgqVNv6b2RFHEodbmrB8/GPf/zss89G2Te96U2nnXbaqUtD1te//vUnnnjiy1/+8pe85CWvetWrpgPgIJfinLe//e3vete73vOe97zvfe87e2WbPvMjjzzy6KOPPvbYY70MxtV/4oknHn/88d48sbDOFUeEz/nSypCej5xACIT6MNgUwDHHHPMXSzv22GNf8IIXvPSlL0XBk08++QMf+IAAaF7lpsRaMAYAAp155pkKqr3hDW/gfAG8+MUv5iKvfOUrWwCc1gHAESgGwLvf/e4KgAc477zzxh++Th1k4MWvf/3rEQZT1Ofnv1vaQw89tANAmn0wEmPCfJyPVQHO4aOuaRzAXxdDl9e85jUw+MuloZ1JGEH5lv/v4ixEX1T3uCMA3vve9775zW9Wd7bmA9R87WtfK4DnP//5sIRHC6CjvlfgRgHAxQWg+qSqLMRAT5RrNDgnkjYuOqboAw8DANx///2//e1vhxhEfeT+/e9/P64+1/nNb34D0WcA2MKcchgAVgKI/QOAc3oZtABIcRUAEqA4DFDtec97HgqSfhGI0xBaBtydH3LxCy644KyzzuKrU5bGb7kCDNgXwHHHHcdFjl0a6sMAcc844wzPqZ5HjwQDriAArgyAqP/JT36SP0XbuwNAAUBTvOtGgkEAdIwzNiLDLACAag8//LAMEB1lOwCQm+QfAFGf81v1uSBcFzY5IL2FAYE/WpA6AEABUAG0DHoBhIEAUOQVr3gFDEi8L3rRiwSAamqnL+KH3AsApFPUxOlzDjtchC06nnTSSQB44QtfqPqf+cxnPv3pT3MFGJADOIfzyVhsuSm/0iNhfIT0O97xDgBE/Y985CMf/ehH+VNZEsVBV1k/NQD4lq4kGDgkUgDIDQMzARIHAFoLQPXZUX3O5Fe96j8D4LKV2foGj0uX1gugw6AFgBxhEACve93rTjjhBBiQhF/2spehDqKgHQA4AbcAA+71qU99CqV0OLoprsNFdCn8UPUprpEJtwkwbsd1+JZbqD5X1nFxBb0QR8gBqP/BD34Q9ZH+Yx/7GAz4p1kUSAD2v5IPXCZPAPRT0pcHAyR78MEHkV6h2akOx8SO+RH1OaKb4kwAVPUfeOCBDOt7FkBUxguNAKgMWgBnLO30paGgroD0i6b4HxiQA0jgCI0oSGPKfec73wkDAHCEbyk5OF9I/BZZOedtb3sb6nNrHTcPiYIEynp/fsWN+An3JWdwBTCcf/75gkT9c889F/XPXxrqE1Pwv9AaBgCwE9BlC1270/Efjo+iMGC0BAzMAaZxtiiL3E899dT/FuMjB/nWPEHy57SHlgYA1Iei44h1azsAVAYjAAychuJ0whjdC3Lw509eGiUBmYBCGAYmWxRBI/Q1qaI4RSvCcYTjyE2i5uBJS+MceJMweR5EcZQgt/BlBq4x45Bm1aRERUcCOSBRqfzQhz6E+nitT3ziE6jPpUhhOFtCAFyNy1HBlVzFEUgEgGumuEwenf4wQNa4eKX/wx/+8PTTT2er8ZXZAgBIbw5AfRCS/AGA+uwAowsgWm8R3SME/w0/TgJHQQBQVMIA9VGWLX78xKWdtDJURkfOgceHP/xhUjEBO56HBGJu1V3yxGpd34lXJ704wARf4SA+vYrDOxAUWUlSn/3sZ1E/Dboc4TjnqLIDDikFgefEGAsAB0oBgGfgLk8s7cmlmdJh8PROA4BZwYyiF+KPUAwIAPXZQX32ewDIYAsADoPAS5Dc3v/+9+PcYYCgig6D448/HsWhAh7yQQ0weBTlJp+ivkWW2VbXicr8DX4SZ/rg0tDFAo2vGFGBUsiUxXV8KTz6OtATfZEe/wMDqpwCcG0UHuPhpXF9n4rbWZBWP2PK5e4WBkhsJtCSCVRfQhYPYuDJvZEZYkch3LHtAMgAfhSVOGgyBKkbuUnduCZG72RYuSNqreOYxtnykcfiuBIncsA4yB/gV4jOGC+25G7+lcmKvyQMOHFBB4HdvzSuyUFnYOOp+MhPjOVrAJMYJqm7mgDiajB/1VsGRH231QKDZzCdLeZqJMmCZjJw6Xuyv/4uM1gym0VpMsCf9EvK4qADrUjFCCoDnSYikmbZMbCDBK6DYpMjySvmCa7maLgHlsYRvzWEZ/vo0h5bGjsGM+hiaq3uJSR0+pE4qd6vnioW6bOfS3WubP1gTgAdBmx7JxKZVFXH2M6tYpEDQMIYN70NB/W/7PDRPJGtGYUt/0RamEF3Ir96xOroIytLPhDq4yvrZAU/PrGyVLX09W4llJQez5PspRmYphY9GwACc2cXh4GTbXQINepK8o+JITswQHpcs2IhK+c7fNo4JI0zHGSoHR+5HcA4mX0UT8I3P+nQbEUAiY6Yf546rdXakKgCPVYsmabjuMKs5p5UAnKj3MtLaXw1AwAXOa4M8vIZGDjcU79vlVLvPzQBhn1+4hFkrVNxsrhJljd0sKlHUj5b0qC+2ciyDormhgSFyRYxFFGpfIx2sd+tzG/dsWJs3Ti1s1r5SkRXzby7OLfPJkp/0dIIt1sGDsVFL5Kt40HZogjq1EHkHnTWbuZuoKZTt7gIAWUGDhPPuKyOc2m1LKTGb0n4/CX+to5Ot2ZkpcV3RfrIrZnnLDCidaSMmYlr8465SkjJJXqhB1cW6Tk5TRc9AIhYqC6OS3/B0qi7jjBQFxNvHQteD9Z0nYkSriGVGVuojOhOLMia1X7MLHOvQFZLWKVZ87Q8x1Q/4mYnVGrgmx1NBdlaoQ1aA8rw9i6VnzDMBPUxdEeLXvWJ320/qKIfX4w2hnEGLvRa53m376526pkOJOs0uDi4qdvl26woOYfQIdZegR+CIbNQrZGlbpGXPJjDPG4ZEw8QlfloolbBmnvU2o/6Ui5raMeVrVKJrVZc/Fjx6LKS7cx5bBcj6tNyQAPkccUCgK6VIQa+jIMqvlV5x6ZnHnpelBMfkje3eJyfUIm1icZ5UW7TNOakQfFY7/WjGY78xHXqqtRp9kJfi4ckWCMCDpKZMkOPnxj1srW48uep8YnQ7GUwnbQfouHqyUKy/K/s2T4LgGp6Vd/eDwGwz5Z92pMDADxDDOjqkgGq2ZilRrZtWX5WBdPkouH0lTvLBjt303mcMqs4zWd6oTo9NvNY9Vd1sUtjLcT1tDqnw0YO54mY0jnfyEoGiaH1bFX9Wt66E1oCa0/7IwAaaVGfRjTVR267UBAd9dGaLfscoWMrADCaKjsMHM5FFcz2LAFoKJj3lNVUXNfJQ24qcb5iVFTWYD1Hr2UmcC1ZPmZWiOsuZRpIZr/WnkW7t3JQrbOytI6L39YFqzkoFX+VqqWyCiBUbGpOEWWysJkkQbmVc+O3ZwDQF4j6NBXYAIn69CDa+C4AFA8AOnjJGR7RKfFDAHARGdACQTMqDet4EgHowatDB0OkrAAyGTZvjUhRnBLCJJ8dT7DmEQB1fXcbMjMLM/uZQRbdU8/wNGTyNHfq9GMh+dvcixvx/DQ68Zzm9Sw6XLOmjYaZRLSguQb1aa6hSV31kVgA9v/RE4LKlgd85FualPmKgzolMg0UYUBHBwBoMFB951z6HAFwx2plZjv8FDrvNK5lQ2aH1+muKYo92YSfwrm+WqjumycMfw15M2HWLCKMVEcQOjNnM4s2j2E/Ac/vm0docaE3l9Zv3/aY1GMwXZ2b9637XHZB994555xjvyuJ2kEMAFB90zsMBMDxY1bGtzBgh69ocKd110lk9ueZ9rPsVjxJFK87AeBK7a6Yob9K2s8CCnWqvlOrTVadBRQ6yyjo3N2qgv9fLTJXmzOzJgCt0Fk72PmjxBdo7UQKu8z4g9Y6a6kj1M5CDH6sedH8t3AkCJ1KuHU0Vdyon48wAMAxfWa0anJIwq/SJ41npQO9h4k3jj6ZQDaJU83CaWWqK7nkfdNZ8cRwq3okdzzNjOIPjbgQkQe2P8C5WXaHkJIYk0C/jVpzTuqAXkSvoprGWmlNSVHfu1RaXb79mRxAP7Wt8/Q6OfQDuY+ZYODB/5D86WbC58S3GCkmadfVP7IqURZmqMtL1CVa/Hl9q65m1s7FJZfywFdO+w5kyxvLfGeZ5/UUvhWQUI1OMbrM6MAg+yI3+2RikjmiOynaQSu5RbiagfRakT7Ni5bJFvid9dpjcU0L4h+6TOmhJZ4hLTOCwfFPYNDh6OjJH/Qp0qvFOZTVdCLS0A82wlZiJxJOEruPO/Sqer9KhFP9fn5ijk5ZmiKLjxbauYgZxXfumu24rPuo7DATR75ghAaEZxRRjElBenItB50Zl+mhmrr7xqIsIVZrlHqbVO4eKGZQZI2hXSYwawVYq+dpF3Rdob4DFOzdpvfq1a9+tT3jmGMLHCZFZyH+ih7HDDQ7a2kAsKTN2qcdNyKJvBS9tVTH7MzSgyXc1AuJwQua27KkhrPb0NrUzQ4JGZWdYoVLwXeT5JXbWf+Ynt150TBL0qnFfnVrAkh5LgMjS6VPFVoGhrDWxk1JyhJXwR2fCUMphBERR4S4dqafuTT7DulTdFgZijuygyobAQ+lNx17zl7CBZFesticqbItBlQzdaj6V2ugaUjqcB30chatC4hb9Nnb4xieOsAUrdnxJYy+qFrP7mvqfC0R11Rr75LHq8mltpTY5pG2wgRF1gxU30yQtK+lEmdJoGOsy/Iaqi4QFAaUBOcsjR3yhAfPWxrRPWWR/y0zmTKtwyG9HPFVD7ajWdyliustU481OjYVW1W24cHE6BoVSEYx6GRx0i93x0ezhbdC8xh5FziQxJCJns47z/AeFVfrNJXrTBKhJfmbxjuT92uDbkJYKwfV+dQc0IFh7SyVnoBfEL9TD7Aqi3Nk7AZbUveFK/OPmakF4ARuth5nh5zuS58VV3+daLK+EIcdhVYdtg6HQkcEdaioI3YdMoyyTpjloC8XdeyUxWmWEHFsoYtY2A6Y1G1arsuApVDxOSNuXb0mDbQJZ+NzasJPV1IFYAuExQA/UYo42DhnU8P/AcVjY7MTfToIAAAAAElFTkSuQmCC"}}'),Me=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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"}}'),Mt=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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"}}'),Mr=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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"}}'),Mn=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 Mi={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 Ma(e){return new URL(`public/room-example/${e}`,"https://cdn.neurodyn.ai/LG8wPakWNRI1O7ssxPuAcY61sOV3nsofvg4tHjAoumHFWIFoX9u0yeIk9K19I8_J55pBcLct6_ytKI9fCz4/").toString()}function Ms(e={}){return{...Mn,image:{...Mn.image,...e}}}let Mo=[{id:"room-example-11",name:"Room Example 11",image_url:Ma("room-example-11.jpg"),scene:S6},{id:"room-example-12",name:"Room Example 12",image_url:Ma("room-example-12.jpg"),scene:S7},{id:"room-example-13",name:"Room Example 13",image_url:Ma("room-example-13.jpg"),scene:Me},{id:"room-example-14",name:"Room Example 14",image_url:Ma("room-example-14.jpg"),scene:Mt},{id:"room-example-15",name:"Room Example 15",image_url:Ma("room-example-15.jpg"),scene:Mr}],Ml=[{id:"carpet-bathroom",name:"Bathroom",image_url:Ma("bathroom.jpg"),scene:S9},{id:"carpet-bedroom",name:"Bedroom",image_url:Ma("bedroom.jpg"),scene:S4},{id:"carpet-entryway",name:"Entryway",image_url:Ma("entryway.jpg"),scene:S5},{id:"carpet-living-room",name:"Living Room",image_url:Ma("living-room.jpg"),scene:S8}],Mc="RcSd3KphTyq_JQEjNCqKQA,gu0109ftQmS-UQkwcW010Q,nOfGLIZcRVeU93wOkHWSbg,ozzH5I2kQMW20ao-33C86A,DBA4wR-zT92vjtuOk9varg".split(",").map(e=>e.trim()).filter(Boolean);function Mu(e,t,{requiresMaterialModel:r,getCollapseKey:n}){var i;let a;return i=e.filter(e=>!!(e.tinuuid&&e.materials?.[0]&&function(e,t){if(!t)return!0;let r=e.materials?.[0]?.native?.glbUrl;return"string"==typeof r&&r.trim().length>0}(e,r)&&!(t?.uuid&&e.uuid===t.uuid||t?.tinuuid&&e.tinuuid===t.tinuuid))),a=new Set,i.filter(e=>{let t=n(e);return!a.has(t)&&(a.add(t),!0)})}let Md="vizbl-rug:";function Mh(e){return e.kit?.uuid??e.uuid??e.tinuuid??""}let Mp={"sized-design":{offersSizeVariants:!0,decodeVariant:function(e){if(!e?.startsWith(Md))return null;try{let t=JSON.parse(e.slice(Md.length));if("string"!=typeof t.size)return null;return{size:t.size,shape:"round"===t.shape?"round":"rect"}}catch{return null}},getCollapseKey:function(e){return e.kit?.uuid?e.kit.uuid:`object:${Mh(e)}`}},"color-design":{offersSizeVariants:!1,decodeVariant:function(e){let t="vizbl-flooring:";if(!e?.startsWith(t))return null;try{let r=JSON.parse(e.slice(t.length));return null!==r&&"object"==typeof r&&"color"in r&&"string"==typeof r.color?{color:r.color}:null}catch{return null}},getCollapseKey:Mh},"single-listing":{offersSizeVariants:!1,decodeVariant:null,getCollapseKey:Mh}},MA={"product-identity":{catalogsEveryMaterial:!0},finish:{catalogsEveryMaterial:!1},placeholder:{catalogsEveryMaterial:!1}};function Mf(e){return Mp[E1[e].composition]}let Mg={"modelled-resource":{takesDimensionProps:!1,materialSource:"object-glb",requiresMaterialModel:!0},"textured-resource":{takesDimensionProps:!0,materialSource:"artwork-src",requiresMaterialModel:!1}};function Mm(e){return Mg[E1[e].identity]}function Mv(e,t,r,n=""){return"material"===E1[e].productNameSource?r?.name??t?.name??t?.kit?.name??n:t?.kit?.name?.trim()||t?.name?.trim()||r?.name?.trim()||n}function Mb(e){return e.hid??""}function My({className:e,...t}){let{material:r,options:n,selectMaterial:i}=function(){let{material:e,setMaterial:t,setTinuuid:r,apiKey:n,baseURL:i,language:a,source:s,widgetSession:o}=SF(),l=rJ({queries:Mc.map(e=>({queryKey:EK(e,{apiKey:n,baseURL:i,language:a,source:s}),queryFn:({signal:t})=>EY(e,{apiKey:n,baseURL:i,language:a,signal:t,source:s,widgetSession:o})}))});(0,ep.useEffect)(()=>{let n=l[0]?.data,i=n?.materials?.[0],a=n?.tinuuid;null===e&&i&&a&&(t(i),r(a))},[e,l,t,r]);let c=(0,ep.useMemo)(()=>l.flatMap(e=>{let t=e.data,r=t?.materials?.[0];return t?.tinuuid&&r?.hid?[{material:r,materialId:r.hid,tinuuid:t.tinuuid}]:[]}),[l]),u=(0,ep.useCallback)(e=>{let n=c.find(t=>t.materialId===e);return!!n&&(t(n.material),r(n.tinuuid),!0)},[c,t,r]);return{material:e,options:c,selectMaterial:u}}(),{containerRef:a}=SN(),{t:s}=th();return(0,eh.jsxs)(SK,{className:E3("w-fit",e),...t,children:[(0,eh.jsx)(SJ,{className:"text-xs text-text-sub font-medium",children:s("material")}),(0,eh.jsxs)(SX,{value:r?.hid??void 0,onValueChange:i,children:[(0,eh.jsx)(S$,{className:"w-[145px]",size:"md",children:(0,eh.jsxs)(SZ,{placeholder:s("chooseMaterial"),children:[(0,eh.jsx)("div",{className:"size-5 rounded-full border border-border-light",style:{backgroundColor:`#${r?.miniature?.color?.hex}`}}),r?.miniature?.color?.name]})}),(0,eh.jsx)(S0,{portalContainer:a,children:n.map(({material:e,materialId:t,tinuuid:r})=>(0,eh.jsxs)(S1,{value:t,children:[(0,eh.jsx)("div",{className:"size-5 rounded-full border border-border-light",style:{backgroundColor:`#${e?.miniature?.color?.hex}`}}),e.miniature?.color?.name]},`${r}-${t}`))})]})]})}let Mw=(0,ep.createContext)(null),Mx=(0,ep.createContext)(null);function MC({value:e,defaultValue:t,onValueChange:r,...n}){let[i,a]=(0,ep.useState)(t),s=e??i,o=(0,ep.useMemo)(()=>({value:s}),[s]),l=(0,ep.useCallback)(t=>{r?.(t),void 0===e&&a(t)},[r,e]);return(0,eh.jsx)(Mw,{value:o,children:(0,eh.jsx)(dF,{"data-slot":"tabs",value:s,onValueChange:l,...n})})}let ME=ss("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"}}),MS=ss("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 MM({className:e,children:t,size:r="default",...n}){let i=(0,ep.use)(Mw),a=(0,ep.useRef)(null),s=(0,ep.useRef)(new Map),o=(0,ep.useRef)(null),l=(0,ep.useRef)(i?.value),c=(0,ep.useRef)(null),u=(0,ep.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,ep.useCallback)(()=>{null===c.current&&(c.current=requestAnimationFrame(()=>{u()}))},[u]),h=(0,ep.useCallback)((e,t)=>{t?s.current.set(e,t):s.current.delete(e),d()},[d]);(0,ep.useLayoutEffect)(()=>{l.current=i?.value,null!==c.current&&(cancelAnimationFrame(c.current),c.current=null),u()},[i?.value,u]),(0,ep.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,ep.useEffect)(()=>()=>{null!==c.current&&cancelAnimationFrame(c.current)},[]);let p=(0,ep.useMemo)(()=>({registerTrigger:h,size:r}),[h,r]);return(0,eh.jsx)(dO,{ref:a,"data-slot":"tabs-list",className:E3(MS({size:r}),e),...n,children:(0,eh.jsxs)(Mx,{value:p,children:[(0,eh.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 MI({className:e,size:t,children:r,value:n,...i}){let a=(0,ep.use)(Mx),s=(0,ep.useRef)(null),o=t??a?.size??"default",l=E3("relative z-10 inline-flex items-center justify-center","lg"===o?"gap-1.5":"gap-1");return(0,ep.useLayoutEffect)(()=>{if(a&&n)return a.registerTrigger(n,s.current),()=>{a.registerTrigger(n,null)}},[a,n]),(0,eh.jsx)(dU,{ref:s,"data-slot":"tabs-trigger",className:E3(ME({size:o}),"data-[state=active]:bg-transparent",e),value:n,...i,children:(0,eh.jsx)("span",{"data-slot":"tabs-trigger-content",className:l,children:r})})}function MB(e,t="m"){switch(t){case"cm":return e/100;case"in":return .0254*e;case"m":return e}}function MT(e,t){switch(t){case"cm":return 100*e;case"in":return e/.0254}}function Mk(e){let{t}=th();return(0,ep.useMemo)(()=>[{value:0,label:t("mattingOptions.none")},{value:.05,label:`${Number(MT(.05,e).toFixed(2)).toString()} ${t(`units.${e}`)}`}],[e,t])}function MR({className:e,...t}){let{displayUnit:r}=SD(),{matting:n,setMatting:i}=SU(),{t:a}=th(),s=Mk(r);return(0,eh.jsxs)(SK,{className:E3("w-fit",e),...t,children:[(0,eh.jsx)(SJ,{className:"text-xs text-text-sub font-medium",children:a("matting")}),(0,eh.jsx)(MC,{value:n.toString(),onValueChange:e=>i(Number(e)),children:(0,eh.jsx)(MM,{children:s.map(e=>(0,eh.jsx)(MI,{value:e.value.toString(),children:e.label},e.value))})})]})}function MP({className:e,...t}){return(0,eh.jsx)(d7,{"data-slot":"radio-group",className:E3("grid gap-3",e),...t})}function MD({checked:e,className:t,...r}){return(0,eh.jsx)("div",{className:E3("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,eh.jsx)(o7,{className:"text-constant-white size-3.5",strokeWidth:4})})}function M_({className:e,variant:t="default",...r}){return(0,eh.jsxs)(ht,{"data-slot":"radio-group-item",className:E3("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,eh.jsx)("div",{className:"relative",children:(0,eh.jsx)(MD,{})}),"inverted"!==t&&(0,eh.jsx)(hr,{"data-slot":"radio-group-indicator",className:"relative flex items-center justify-center",children:"check"===t?(0,eh.jsx)(MD,{checked:!0}):(0,eh.jsx)(le,{className:"fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2"})})]})}function ML(e){let t=e.image_url;if(!/^https?:\/\//i.test(t))return t;let r=new URL(t);return r.searchParams.set("v","1"),r.href}function MF({className:e,children:t,...r}){let{className:n,onReachEnd:i,...a}=r.swiperOptions??{},{t:s}=th(),[o,l]=(0,ep.useState)(null),[c,u]=(0,ep.useState)(!0),[d,h]=(0,ep.useState)(!1),[p,A]=(0,ep.useState)(!1),f=(0,ep.useCallback)(e=>{u(e.isBeginning),h(e.isEnd),A(e.isLocked)},[]),g=(0,ep.useCallback)(e=>{l(e),f(e)},[f]),m=(0,ep.useCallback)(e=>{h(!0),i?.(e)},[i]);return(0,eh.jsxs)("div",{className:E3("relative w-full overflow-hidden",e),children:[(0,eh.jsx)(h9,{className:E3("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,eh.jsxs)(E4,{className:E3("absolute top-1/2 left-8 -translate-y-1/2 z-1",{hidden:c||p}),variant:"contrast",size:"icon",onClick:()=>o?.slidePrev(),children:[(0,eh.jsx)(lt,{}),(0,eh.jsx)("span",{className:"sr-only",children:s("previousSlide")})]}),(0,eh.jsxs)(E4,{className:E3("absolute top-1/2 right-8 -translate-y-1/2 z-1",{hidden:d||p}),variant:"contrast",size:"icon",onClick:()=>o?.slideNext(),children:[(0,eh.jsx)(lr,{}),(0,eh.jsx)("span",{className:"sr-only",children:s("nextSlide")})]})]})}function MN({className:e,...t}){let{t:r}=th(),{rooms:n,room:i,setRoomId:a}=SL(),{isRoomScenePending:s,selectCustomRoomFile:o}=SP(SR,"useRoomViewerCustomRoomIntake"),l=(0,ep.useId)(),c=(0,ep.useCallback)((e,t)=>r(`rooms.${t}`,{defaultValue:e}),[r]),u=(0,ep.useCallback)(async e=>{let t=e.target.files?.[0];e.target.value="",t&&await o(t)},[o]);return(0,eh.jsx)("div",{className:E3(e),...t,children:(0,eh.jsx)(MP,{value:i.id,onValueChange:a,children:(0,eh.jsxs)(MF,{swiperOptions:{className:"py-2 sm:py-5 pb-3 sm:pb-5"},children:[(0,eh.jsx)(h4,{className:"sm:w-25! w-21! h-auto",children:(0,eh.jsxs)(SJ,{htmlFor:l,className:E3("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",s&&"cursor-wait opacity-80"),"aria-disabled":s,children:[s?(0,eh.jsxs)(eh.Fragment,{children:[(0,eh.jsx)(Sw,{className:"size-5"}),(0,eh.jsx)("span",{className:"sr-only",children:r("uploadOwnPhoto")})]}):r("uploadOwnPhoto"),(0,eh.jsx)("input",{id:l,type:"file",accept:"image/*",className:"sr-only",disabled:s,onChange:u})]})}),n.map(e=>(0,eh.jsx)(h4,{className:E3("sm:w-25! w-21! transition-transform duration-200",e.id!==i.id&&"hover:scale-110"),children:(0,eh.jsx)(SJ,{htmlFor:`room-${e.id}`,className:"size-full flex flex-col gap-1 has-data-[state=checked]:bg-transparent",children:(0,eh.jsxs)("div",{className:"size-full relative h-17 sm:h-19 rounded-[0.75rem] overflow-hidden",children:[(0,eh.jsx)("img",{crossOrigin:"anonymous",src:ML(e),alt:c(e.name,e.id),className:"size-full object-cover"}),(0,eh.jsx)(M_,{value:e.id,id:`room-${e.id}`,variant:"check",className:E3("absolute top-1.75 right-1.75",{"sr-only":e.id!==i.id})})]})})},e.id))]})})})}function MO({className:e,...t}){return(0,eh.jsxs)("div",{className:E3("flex sm:items-end pl-0 overflow-hidden sm:flex-row flex-col py-3 sm:py-0",e),...t,children:[(0,eh.jsx)(MN,{className:"shrink-0 grow"}),(0,eh.jsxs)("div",{className:"hidden gap-5 pr-6 pb-5 md:flex",children:[(0,eh.jsx)(My,{}),(0,eh.jsx)(MR,{})]})]})}function MQ({className:e,...t}){let{name:r}=SD();return(0,eh.jsx)("div",{className:E3("h-16 flex items-center px-6",e),...t,children:(0,eh.jsx)("div",{className:"truncate",children:r})})}function MU({variant:e,missingSurfaceMessage:t,showDialogCloseButton:r=!1}){let{t:n}=th();return(0,eh.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,eh.jsx)(Sa,{className:"size-8 text-icons-light"}),"room-missing-surface"===e?(0,eh.jsxs)("div",{className:"grid gap-1",children:[(0,eh.jsx)("h2",{className:"typo-base-16 font-medium text-text-dark",children:n(`missingSurface.${t}.title`)}),(0,eh.jsx)("p",{className:"typo-base-14 text-text-base",children:n(`missingSurface.${t}.body`)})]}):(0,eh.jsx)("h2",{className:"typo-base-16 font-medium text-text-dark",children:n("viewer-load-failed"===e||"artwork-load-failed"===e||"room-load-failed"===e?`loadError.${e}`:`accessError.${e}`)}),r&&(0,eh.jsx)(E6,{asChild:!0,children:(0,eh.jsx)(E4,{variant:"secondary",children:n("close")})})]})}MM.displayName=dO.displayName,MI.displayName=dU.displayName,dj.displayName;let Mz="u"<typeof window;function Mj(e,{defaultValue:t=!1,initializeWithValue:r=!0}={}){let[n,i]=(0,ep.useState)(()=>{if(r)return Mz?t:window.matchMedia(e).matches;return t});return(0,ep.useEffect)(()=>{let t=window.matchMedia(e),r=()=>{i(t.matches)};return r(),t.addEventListener("change",r),()=>{t.removeEventListener("change",r)}},[e]),n}let MG={width:void 0,height:void 0};function MH(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 MV({...e}){return(0,eh.jsx)(bI,{"data-slot":"dropdown-menu",...e})}function Mq({...e}){return(0,eh.jsx)(bT,{"data-slot":"dropdown-menu-trigger",...e})}function MW({...e}){return(0,eh.jsx)(bD,{"data-slot":"dropdown-menu-group",...e})}function MK({className:e,sideOffset:t=4,portalContainer:r,...n}){return(0,eh.jsx)(bk,{container:r,children:(0,eh.jsx)(bP,{"data-slot":"dropdown-menu-content",sideOffset:t,className:E3("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 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-md",e),...n})})}function MJ({className:e,inset:t,variant:r="default",...n}){return(0,eh.jsx)(b_,{"data-slot":"dropdown-menu-item","data-inset":t,"data-variant":r,className:E3("relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden hover:bg-background-base focus:bg-background-base data-[highlighted]:bg-background-base data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:hover:bg-destructive/10 data-[highlighted][data-variant=destructive]:bg-destructive/10 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg:not([class*=text-])]:text-muted-foreground data-[variant=destructive]:[&_svg:not([class*=text-])]:text-inherit [&_svg]:pointer-events-none [&_svg]:shrink-0",t&&"pl-8",e),...n})}function MY({className:e,children:t,checked:r,indicatorPosition:n="left",...i}){return(0,eh.jsxs)(bL,{"data-slot":"dropdown-menu-checkbox-item",className:E3("relative flex cursor-default select-none items-center rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden hover:bg-background-base focus:bg-background-base data-[highlighted]:bg-background-base data-[disabled]:pointer-events-none data-[disabled]:opacity-50","right"===n&&"pr-8 pl-2",e),checked:r,...i,children:[(0,eh.jsx)("span",{className:E3("pointer-events-none absolute flex size-3.5 items-center justify-center","right"===n?"right-2":"left-2"),children:(0,eh.jsx)(bF,{children:(0,eh.jsx)(o7,{className:"size-4"})})}),t]})}function MX({className:e,...t}){return(0,eh.jsx)(bN,{"data-slot":"dropdown-menu-separator",className:E3("bg-border -mx-1 my-1 h-px",e),...t})}function MZ({material:e}){let t=e.previews?.[0]?.subRes?.small??e.previews?.[0]?.url,[r,n]=(0,ep.useState)();return t&&t!==r?(0,eh.jsx)("img",{src:t,alt:"",className:"size-5 shrink-0 rounded-xs object-cover",onError:()=>n(t)}):(0,eh.jsx)(Sh,{className:"size-5! shrink-0"})}let M$=(0,ep.memo)(()=>{let e=M7(),{containerRef:t}=SN(),{t:r}=th(),[n,i]=(0,ep.useState)(null);if(e?.menu&&e.menu!==n&&i(e.menu),!e)return null;let a=e.panels.find(t=>M4(t)===e.selected);return(0,eh.jsxs)(MV,{modal:!1,open:!!(e.menu&&a),onOpenChange:t=>!t&&e.closeMenu(),children:[(0,eh.jsx)(Mq,{asChild:!0,children:(0,eh.jsx)("button",{type:"button","data-panel-menu":"","aria-label":r("wallPanel.actions"),tabIndex:-1,style:{position:"fixed",left:n?.x??0,top:n?.y??0,width:1,height:1,pointerEvents:"none",opacity:0}})}),(0,eh.jsxs)(MK,{"data-panel-menu":"",onCloseAutoFocus:e=>e.preventDefault(),onEscapeKeyDown:r=>{r.preventDefault(),e.closeMenu();let n=Array.from(t?.querySelectorAll("[data-panel-key]")??[]).find(t=>t.dataset.panelKey===e.selected);n?.focus({preventScroll:!0})},portalContainer:t,collisionBoundary:t,collisionPadding:8,align:"start",className:"flex w-56 max-w-[var(--radix-dropdown-menu-content-available-width)] flex-col",style:{maxHeight:"var(--radix-dropdown-menu-content-available-height)"},children:[(0,eh.jsx)(MW,{"aria-label":r("wallPanel.materials"),className:"min-h-0 overflow-y-auto overscroll-contain",children:e.options.map(({material:t,number:n,error:i,loading:s})=>(0,eh.jsxs)(MY,{indicatorPosition:"right",checked:a?.materialId===t.hid,onCheckedChange:()=>e.chooseMaterial(t.hid),onSelect:e=>e.preventDefault(),className:"gap-2 [@media(pointer:coarse)]:min-h-11",children:[(0,eh.jsx)("span",{className:"pointer-events-none flex size-5 shrink-0 items-center justify-center",children:a?.requestedMaterialId===t.hid&&s?(0,eh.jsx)(Sw,{"aria-label":r("wallPanel.loading")}):a?.requestedMaterialId===t.hid&&i?(0,eh.jsx)("span",{role:"status","aria-label":r("wallPanel.retry"),children:(0,eh.jsx)(ln,{className:"size-3.5","aria-hidden":"true"})}):(0,eh.jsx)(MZ,{material:t})}),(0,eh.jsx)("span",{className:"min-w-0 flex-1",children:t.name?.trim()?t.name:r("wallPanel.materialFallback",{number:n})})]},t.hid))}),(0,eh.jsx)(MX,{}),(0,eh.jsx)(MW,{className:"shrink-0",children:(0,eh.jsxs)(MJ,{className:"[@media(pointer:coarse)]:min-h-11",onSelect:t=>{t.preventDefault(),e.rotate()},children:[(0,eh.jsx)(Sm,{className:"size-4!"}),r("wallPanel.rotate")]})}),(0,eh.jsx)(MX,{}),(0,eh.jsx)(MW,{className:"shrink-0",children:(0,eh.jsxs)(MJ,{className:"[@media(pointer:coarse)]:min-h-11",variant:"destructive",disabled:1===e.panels.length,onSelect:e.remove,children:[(0,eh.jsx)("span",{className:"flex size-4 shrink-0 items-center justify-center",children:(0,eh.jsx)(Sd,{className:"size-3!"})}),r("wallPanel.delete")]})})]})]})});function M0(e){let t=(0,ep.useRef)(e);return(0,ep.useLayoutEffect)(()=>{t.current=e}),t}M$.displayName="PanelMaterialMenu";let M1=null;async function M2(e){let{decoderPending:t}=e;return!!t&&t.then(()=>!1,()=>!0)}async function M3(e){let t,r=M1??=new bQ.Z(new i6.KPJ).setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.5.5/");try{({scene:t}=await new bU.B(new i6.KPJ).setDRACOLoader(r).setMeshoptDecoder(bO.f).loadAsync(e))}catch(e){throw await M2(r)&&M1===r&&(M1=null),e}let n=new i6.NRn().setFromObject(t),i=n.getSize(new i6.Pq0),a=n.getCenter(new i6.Pq0);return{scene:t,width:i.x,depth:i.z,mountingOffset:[-a.x,-a.y,-n.min.z]}}function M9(e){return{queryKey:["wall-panel-model",e],queryFn:()=>M3(e),staleTime:1/0,gcTime:1/0,retry:!1}}function M4(e){return`${e.x},${e.y}`}function M5(e,t,r){return{product:e,menu:null,generation:0,panels:[{x:0,y:0,turns:0,materialId:t}],selected:r?null:"0,0"}}let M8=(0,ep.createContext)(null);function M6({children:e}){let{type:t}=SD(),{viewerDialogOpen:r}=S_(),{containerRef:n}=SN(),i="panel-group"===E1[t].manipulation,{room:a}=SL(),s=function(e,t){let{tinuuid:r,selectedObject:n}=SF(),{viewerDialogOpen:i}=S_(),a=n?.tinuuid===r?n:null,s=a?.materials?.[0],o=Mj("(max-width: 639px)"),l=function(e,t,r){let[n,i]=(0,ep.useState)(()=>M5(e,t,r));(n.product!==e||t&&!n.panels[0]?.materialId)&&i({...n,product:e,menu:null,panels:n.panels.map(e=>({...e,materialId:t,requestedMaterialId:void 0}))});let a=(0,ep.useCallback)(()=>i(e=>e.menu?{...e,menu:null}:e),[]),s=(0,ep.useCallback)((e,t)=>i(r=>({...r,selected:e,menu:t})),[]),o=(0,ep.useCallback)(()=>i(e=>e.selected||e.menu?{...e,selected:null,menu:null}:e),[]),l=(0,ep.useCallback)(()=>i(e=>({...M5(e.product,t,r),generation:e.generation+1})),[t,r]),c=(0,ep.useCallback)(()=>i(e=>({...e,panels:e.panels.map(t=>M4(t)===e.selected?{...t,turns:(t.turns+1)%4}:t)})),[]),u=(0,ep.useCallback)(()=>i(e=>e.selected&&1!==e.panels.length?{...e,panels:e.panels.filter(t=>M4(t)!==e.selected),selected:null,menu:null}:e),[]),d=(0,ep.useCallback)(e=>i(t=>t.selected===e?t:{...t,selected:e}),[]),h=(0,ep.useCallback)(e=>i(r=>{let n=M4(e);return r.panels.some(e=>M4(e)===n)?r:{...r,panels:[...r.panels,{...e,turns:0,materialId:r.panels.find(e=>M4(e)===r.selected)?.materialId??t}],selected:n,menu:null}}),[t]),p=(0,ep.useCallback)(e=>i(t=>({...t,panels:t.panels.map(r=>M4(r)===t.selected?{...r,requestedMaterialId:e===r.materialId?void 0:e}:r)})),[]),A=(0,ep.useCallback)(e=>i(t=>{let r=t.panels.map(t=>{let r=t.requestedMaterialId;return r&&e.has(r)?{...t,materialId:r,requestedMaterialId:void 0}:t});return r.some((e,r)=>e!==t.panels[r])?{...t,panels:r}:t}),[]),f=(0,ep.useMemo)(()=>{let e=new Set(n.panels.map(M4)),t=new Map;for(let r of n.panels)for(let[n,i]of[[1,0],[-1,0],[0,1],[0,-1]]){let a={x:r.x+n,y:r.y+i},s=M4(a);e.has(s)||t.set(s,a)}return Array.from(t.values())},[n.panels]);return(0,ep.useMemo)(()=>({...n,neighbors:f,requestMaterial:p,applyReadyMaterials:A,openMenu:s,closeMenu:a,clearSelection:o,reset:l,rotate:c,remove:u,select:d,add:h}),[h,A,o,a,n,f,s,u,p,l,c,d])}(r,s?.hid??"",t&&o),c=function(e,t){let{apiKey:r,baseURL:n,language:i,source:a,widgetSession:s}=SF(),{type:o}=SD(),l=e?.kit?.uuid,c=e?.owner?.uuid,u={apiKey:r,baseURL:n,language:i,source:a,widgetSession:s,resourceType:o},{data:d,hasNextPage:h,fetchNextPage:p,isFetching:A,isFetchNextPageError:f}=r0({queryKey:[...EJ(l,c,u),"panel-materials"],enabled:t&&!!l,queryFn:async({pageParam:e,signal:t})=>{try{return await EZ(l,c??"",e,{...u,signal:t})}catch(r){if(0===e||t.aborted)throw r;return{objs:[],pages_count:void 0}}},initialPageParam:0,getNextPageParam:(e,t,r)=>{let n=e.pages_count??t[0]?.pages_count;return void 0!==n?r+1<n?r+1:void 0:e.objs?.length?r+1:void 0},retry:!1},r$,void 0);(0,ep.useEffect)(()=>{t&&h&&!A&&!f&&p({cancelRefetch:!1})},[d?.pages.length,t,p,h,A,f]);let g=(0,ep.useMemo)(()=>{if(!t||!l)return[];let r=new Map;for(let t of d?.pages.flatMap(e=>e.objs??[])??[])t.tinuuid&&t.tinuuid!==e?.tinuuid&&r.set(t.tinuuid,t);return Array.from(r.values())},[e?.tinuuid,d,t,l]),m=rJ({queries:g.map(e=>({queryKey:EK(e.tinuuid,u),queryFn:({signal:t})=>EY(e.tinuuid,{...u,signal:t}),enabled:t,retry:!1}))}),[v,b]=(0,ep.useState)({ids:[]}),y=v.resourceId===e?.tinuuid&&v.kitUuid===l,w=y?v.ids:[],x=new Set(w),C=new Map(g.flatMap((e,t)=>{let r=m[t]?.data;return r?[[e.tinuuid,r.materials??[]]]:[]})),E=Array.from(C.keys()).filter(e=>!x.has(e)),S=E.length?[...w,...E]:w;(!y||E.length)&&b({resourceId:e?.tinuuid,kitUuid:l,ids:S});let M=t?[...e?.materials??[],...S.flatMap(e=>C.get(e)??[])]:[],I=new Set;return M.flatMap((e,t)=>!e.hid||!e.native?.glbUrl||I.has(e.hid)?[]:(I.add(e.hid),[{material:e,number:t+1}]))}(a,e&&i),u=c.map(e=>e.material),d=rJ({queries:u.map(e=>({...M9(e.native.glbUrl),enabled:i&&!!(e.hid===s?.hid||l.panels.some(t=>t.requestedMaterialId===e.hid))}))}),h=!!d[u.findIndex(e=>e.hid===s?.hid)]?.data,p=function(e){let[t,r]=(0,ep.useState)(e);return t===e||t.length===e.length&&t.every((t,r)=>{let n=e[r];return t.material===n.material&&t.number===n.number&&t.model===n.model&&t.loading===n.loading&&t.error===n.error})?t:(r(e),e)}(u.map((e,t)=>({material:e,number:c[t].number,model:d[t]?.data,loading:d[t]?.isFetching??!1,error:d[t]?.isError??!1}))),A=p.filter(e=>e.model).map(e=>e.material.hid).join(","),{applyReadyMaterials:f,requestMaterial:g}=l;(0,ep.useEffect)(()=>{i&&f(new Set(A.split(",")))},[f,A,i,l.panels]);let m=M0(d),v=(0,ep.useCallback)(e=>{let t=p.findIndex(t=>t.material.hid===e);if(t<0)return;g(e);let r=m.current[t];r?.isError&&r.refetch()},[p,m,g]);return(0,ep.useMemo)(()=>({...l,isBaseModelReady:h,options:p,chooseMaterial:v}),[v,l,h,p])}(i,"focus-resource"===E1[t].introduction),{closeMenu:o}=s;(0,ep.useEffect)(()=>{o()},[a.id,o]);let{clearSelection:l,reset:c}=s;(0,ep.useEffect)(()=>{r||c()},[c,r]),(0,ep.useEffect)(()=>{if(!i||!r)return;let e=e=>{e.composedPath().some(e=>e instanceof Element&&("CANVAS"===e.tagName&&n?.contains(e)||e.matches("[data-neurodyn-room-viewer-product], [data-material-selection-panel], [data-material-selection-action]")||e.matches("[data-room-selection-panel], [data-panel-menu]")))||l()};return document.addEventListener("pointerdown",e),()=>document.removeEventListener("pointerdown",e)},[l,n,i,r]);let u=(0,ep.useMemo)(()=>i?s:null,[s,i]);return(0,eh.jsxs)(M8,{value:u,children:[e,i&&(0,eh.jsx)(M$,{})]})}function M7(){return(0,ep.use)(M8)}let Ie={toneMapping:4,toneMappingExposure:1.2,alpha:!0};async function It(e,t){return new Promise((r,n)=>{e.toBlob(e=>{e?r(e):n(Error(t))},"image/png")})}function Ir(e){return e.image.width/e.image.height}function In(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}function Ii(e,t){let r=new Image;return r.crossOrigin="anonymous",new Promise((n,i)=>{r.onload=()=>n(r),r.onerror=()=>i(Error(t)),r.src=e})}function Ia(e,t,r){let n=document.createElement("canvas"),i=n.getContext("2d");if(!i)throw Error("Failed to get 2D context for room scene maps.");return n.width=t,n.height=r,i.drawImage(e,0,0,t,r),i.getImageData(0,0,t,r)}async function Is(e,t){let[r,n]=await Promise.all([Ii(e.planeIds.dataPng,"Failed to decode room plane id map."),Ii(e.shading?.dataPng??t,"Failed to decode room shading map.")]),i=Ia(r,r.naturalWidth,r.naturalHeight),{width:a,height:s}=e.planeIds,o=a===i.width&&s===i.height?i:Ia(r,a,s);return{planeIds:i,planeIdMap:function(e,t,r){let n=new Uint8Array(t*r);for(let t=0;t<n.length;t++)n[t]=e.data[4*t]??0;return{data:n,width:t,height:r}}(o,a,s),shading:Ia(n,n.naturalWidth,n.naturalHeight)}}async function Io(e,t,r){let n,i=(n=new Map,t.traverse(e=>{!0===e.userData.excludeFromCapture&&(n.set(e,e.visible),e.visible=!1)}),()=>{n.forEach((e,t)=>{t.visible=e})});try{return e.render(t,r),await It(e.domElement,"Failed to create scene share image")}finally{i()}}let Il=(0,ep.memo)(({ref:e})=>{let{camera:t,gl:r,invalidate:n,scene:i}=f_();return(0,ep.useImperativeHandle)(e,()=>({capture:async()=>{n(),await new Promise(e=>requestAnimationFrame(()=>e()));try{return await Io(r,i,t)}finally{n()}}}),[t,r,n,i]),null});Il.displayName="CanvasCaptureBridge";class Ic extends ep.Component{state={hasFailed:!1};static getDerivedStateFromError(){return{hasFailed:!0}}componentDidCatch(e,t){console.error("Room viewer scene failed to render",e,t.componentStack),this.props.onError(e)}render(){return this.state.hasFailed?null:this.props.children}}let Iu="u"<typeof performance?()=>Date.now():()=>performance.now();async function Id(e,t){for(;;){await new Promise(e=>{if("u"<typeof MessageChannel)return void setTimeout(e,0);let t=new MessageChannel;t.port1.onmessage=()=>{t.port1.close(),e()},t.port2.postMessage(null)}),t?.throwIfAborted();let r=Iu()+8;do{let t=e.next();if(t.done)return t.value}while(Iu()<r)}}let Ih=new Float32Array(19),Ip=0;for(let e=-9;e<=9;e++){let t=Math.exp(-e*e/18);Ih[e+9]=t,Ip+=t}for(let e=0;e<Ih.length;e++)Ih[e]/=Ip;function IA(e,t){return Math.max(0,Math.min(t,e))}function If(e,t){let r=new Map,n=new Map;function i(){for(let[i,a]of Array.from(r)){if(r.size<=e)break;n.has(a)||(r.delete(i),t(i,a))}}return{get:e=>r.get(e),hold(e,a){n.set(a,{key:e,count:(n.get(a)?.count??0)+1});let s=r.get(e);r.delete(e),r.set(e,a),void 0===s||s===a||n.has(s)||t(e,s),i()},release(e){let a=n.get(e);if(a){if(a.count>1)return void a.count--;n.delete(e),r.get(a.key)===e?i():t(a.key,e)}}}}function Ig(e,t){let r=new Set;return{request(t){void 0===e.get(t)&&r.add(t)},clearPassed(n){r.forEach(r=>{r!==n&&void 0===e.get(r)&&t(r)}),r.clear()}}}async function Im(e,{neutralShadingPng:t,signal:r}){r?.throwIfAborted();let n=await Is(e.scene,t);return r?.throwIfAborted(),Id(function*({scene:e,surfaces:t},r){let n=function*(e,t,r=128){let{width:n,height:i}=t,a=n*i,s=Number.isFinite(r)&&r>0?r:128,o=new Uint8Array(a),l=new Float64Array(a);for(let r=0;r<i;r++)for(let a=0;a<n;a++){let c=r*n+a,u=Math.min(e.width-1,Math.floor((a+.5)*e.width/n)),d=Math.min(e.height-1,Math.floor((r+.5)*e.height/i));o[c]=e.data[(d*e.width+u)*4]??0,l[c]=(t.data[4*c]??s)/(2*s)}let c=l.slice();function u(e,t){let r=Math.ceil(3*t),s=Array.from({length:r+1},(e,r)=>Math.exp(-r*r/(2*t*t))),l=e;for(let e of[!0,!1]){let t=new Float64Array(a);for(let a=0;a<i;a++)for(let c=0;c<n;c++){let u=a*n+c,d=0,h=0;for(let t=-r;t<=r;t++){let r=e?c+t:c,p=e?a:a+t;if(r<0||r>=n||p<0||p>=i)continue;let A=p*n+r;if(o[u]!==o[A])continue;let f=s[Math.abs(t)];d+=l[A]*f,h+=f}t[u]=d/h}l=t}return l}yield;for(let e=0;e<4;e++){let t=new Float64Array(a),r=new Float64Array(a);for(let e=0;e<a;e++)e%n<n-1&&o[e]===o[e+1]&&(t[e]=c[e+1]-c[e]),e<a-n&&o[e]===o[e+n]&&(r[e]=c[e+n]-c[e]);let i=Math.max(.5,1/2**e);yield;let s=u(t,i);yield;let d=u(r,i);yield;for(let e=0;e<a;e++)s[e]=1/(Math.abs(s[e])+.001),d[e]=1/(Math.abs(d[e])+.001);let h=u(s,i);yield;let p=u(d,i);yield;let A=new Float64Array(a).fill(1);for(let e=0;e<a;e++)h[e]=e%n<n-1&&o[e]&&o[e]===o[e+1]?.004*h[e]/(Math.abs(t[e])+.02):0,p[e]=e<a-n&&o[e]&&o[e]===o[e+n]?.004*p[e]/(Math.abs(r[e])+.02):0,A[e]+=h[e]+p[e],h[e]&&(A[e+1]+=h[e]),p[e]&&(A[e+n]+=p[e]);let f=(e,t)=>{for(let r=0;r<a;r++){let i=A[r]*e[r];r%n&&(i-=h[r-1]*e[r-1]),r%n<n-1&&(i-=h[r]*e[r+1]),r>=n&&(i-=p[r-n]*e[r-n]),r<a-n&&(i-=p[r]*e[r+n]),t[r]=i}},g=new Float64Array(a),m=new Float64Array(a),v=new Float64Array(a);f(c,v);let b=0;for(let e=0;e<a;e++)g[e]=l[e]-v[e],m[e]=g[e]/A[e],b+=g[e]*m[e];let y=e=>{f(m,v);let t=0;for(let e=0;e<a;e++)t+=m[e]*v[e];if(t<=0)return null;let r=e/t,n=0;for(let e=0;e<a;e++)c[e]+=r*m[e],g[e]-=r*v[e],n+=g[e]*g[e]/A[e];let i=n/e;for(let e=0;e<a;e++)m[e]=g[e]/A[e]+i*m[e];return n};yield;for(let e=0;e<200&&b>1e-12;e++){let e=y(b);if(null===e)break;b=e,yield}}let d=new Float32Array(4*a);for(let e=0;e<a;e++)d.set([2*c[e],0,0,1],4*e);return d}(r.planeIds,r.shading,e.shading?.neutral),i=n.next();for(;!i.done;i=n.next())yield;let a=new Map;for(let n of e.planes){if(!t.includes(n.kind)||n.id<=0)continue;let e=function*(e,t){let r=2*e.width,n=2*e.height,i=new Float32Array(r*n),a=new Float32Array(r*n),s=new Uint8Array(r*n),o={minX:e.width,minY:e.height,maxX:-1,maxY:-1};for(let r=0;r<e.height;r++)(function(e,t,r,n){for(let i=0;i<t.width;i++)t.data[n*t.width+i]===r&&(e.minX=Math.min(e.minX,i),e.minY=Math.min(e.minY,n),e.maxX=Math.max(e.maxX,i),e.maxY=Math.max(e.maxY,n))})(o,e,t,r),yield;let{minX:l,minY:c,maxX:u,maxY:d}=o,h=u<0?r:Math.max(0,2*l-11),p=d<0?n:Math.max(0,2*c-11),A=u<0?-1:Math.min(r-1,(u+1)*2+11),f=d<0?-1:Math.min(n-1,(d+1)*2+11);for(let n=p;n<=f;n++)(function(e,t,r,n,i,a,s){let o=(i+.5)/2-.5,l=Math.floor(o),c=IA(l,e.height-1),u=IA(l+1,e.height-1),d=o-l;for(let o=a;o<=s;o++){let a=(o+.5)/2-.5,s=Math.floor(a),l=IA(s,e.width-1),h=IA(s+1,e.width-1),p=a-s,A=(e.data[c*e.width+l]===t?1-p:0)+(e.data[c*e.width+h]===t?p:0),f=(e.data[u*e.width+l]===t?1-p:0)+(e.data[u*e.width+h]===t?p:0);r[i*n+o]=A*(1-d)+f*d}})(e,t,i,r,n,h,A),yield;for(let e=p;e<=f;e++)(function(e,t,r,n,i,a){let s=n*r;for(let n=i;n<=a;n++){let i=0;if(n>=9&&n<r-9){let t=s+n-9;for(let r=0;r<Ih.length;r++)i+=e[t+r]*Ih[r]}else for(let t=-9;t<=9;t++)i+=e[s+IA(n+t,r-1)]*Ih[t+9];t[s+n]=i}})(i,a,r,e,h,A),yield;for(let e=p;e<=f;e++)(function(e,t,r,n,i,a,s){let o=i>=9&&i<n-9;for(let l=a;l<=s;l++){let a=0;if(o){let t=(i-9)*r+l;for(let n=0;n<Ih.length;n++,t+=r)a+=e[t]*Ih[n]}else for(let t=-9;t<=9;t++)a+=e[IA(i+t,n-1)*r+l]*Ih[t+9];t[i*r+l]=Math.round(255*a)}})(a,s,r,n,e,h,A),yield;return{data:s,width:r,height:n}}(r.planeIdMap,n.id),i=e.next();for(;!i.done;i=e.next())yield;a.set(n.id,i.value)}let s=function(e,t,r){let n=new Uint8Array(e.length);for(let t=0;t<e.length;t+=4)n.set([Math.max(0,Math.min(255,Math.round(128*e[t]))),0,0,255],t);let i=new i6.GYF(n,t,r,1023);return i.minFilter=1006,i.magFilter=1006,i.generateMipmaps=!1,i.needsUpdate=!0,i}(i.value,r.shading.width,r.shading.height),o=new Map;return a.forEach((e,t)=>o.set(t,function({data:e,width:t,height:r}){let n=new i6.GYF(e,t,r,1028);return n.minFilter=1006,n.magFilter=1006,n.wrapS=1001,n.wrapT=1001,n.generateMipmaps=!1,n.unpackAlignment=1,n.needsUpdate=!0,{data:e,width:t,height:r,texture:n}}(e))),{lightingTexture:s,planeIdMap:r.planeIdMap,masks:o}}(e,n),r)}function Iv(e){e.lightingTexture.dispose(),e.masks.forEach(e=>e.texture.dispose())}function Ib(e,t){let r=(e,t)=>e===t||null!==e&&null!==t&&e.dataPng===t.dataPng&&e.width===t.width&&e.height===t.height,n=e=>[...e.surfaces].sort().join();return e.roomId===t.roomId&&r(e.scene.planeIds,t.scene.planeIds)&&r(e.scene.shading,t.scene.shading)&&e.scene.shading?.neutral===t.scene.shading?.neutral&&e.scene.planes.length===t.scene.planes.length&&e.scene.planes.every((e,r)=>e.id===t.scene.planes[r].id&&e.kind===t.scene.planes[r].kind)&&n(e)===n(t)}let Iy={preparation:null,failed:!1},Iw=function(){let e=If(3,(e,t)=>Iv(t)),t=new WeakMap,r=new Set;function n(r,n){return t.set(n,r),e.hold(r.roomId,n),n}return{async acquire(i,{neutralShadingPng:a,signal:s}){let o,l=(o=e.get(i.roomId))&&Ib(t.get(o),i)?o:void 0;if(l)return n(i,l);s?.throwIfAborted();let c=Array.from(r).find(e=>Ib(e.request,i)),u=c??{request:i,controller:new AbortController,waiting:new Set},d=new Promise((e,t)=>{function i(){u.waiting.delete(a),t(s.reason),0===u.waiting.size&&(r.delete(u),u.controller.abort(s.reason))}function a(r){s?.removeEventListener("abort",i),"fulfilled"===r.status?e(n(u.request,r.value)):t(r.reason)}u.waiting.add(a),s?.addEventListener("abort",i,{once:!0})});if(!c){let e;r.add(u),e=e=>{r.delete(u),"fulfilled"===e.status&&0===u.waiting.size&&Iv(e.value),u.waiting.forEach(t=>t(e))},Im(u.request,{neutralShadingPng:a,signal:u.controller.signal}).then(t=>e({status:"fulfilled",value:t}),t=>e({status:"rejected",reason:t}))}return d},release:t=>e.release(t)}}(),Ix=new i6.Pq0(0,0,1),IC=new i6.Pq0(0,0,1),IE={floor:"normal-aligned",wall:"upright",ceiling:"normal-aligned"};function IS(e){return new i6.PTz().setFromUnitVectors(Ix,e.clone().normalize())}function IM(e,t,r){let n,i,a,s,o,l,{kind:c,planeId:u}=e.userData,d=(n=e.geometry.attributes.position,i=new i6.Pq0(n.getX(0),n.getY(0),n.getZ(0)),a=new i6.Pq0(n.getX(1),n.getY(1),n.getZ(1)),s=new i6.Pq0(n.getX(2),n.getY(2),n.getZ(2)),o=new i6.Pq0().crossVectors(a.sub(i),s.sub(i)).normalize(),l=r.position.clone().sub(t).normalize(),0>o.dot(l)&&o.multiplyScalar(-1),o),h=t.clone().addScaledVector(d,.05),p=function(e,t){if("normal-aligned"===IE[t])return IS(e);let r=e.clone().normalize(),n=IC.clone().addScaledVector(r,-IC.dot(r));if(1e-6>n.lengthSq())return IS(r);n.normalize();let i=new i6.Pq0().crossVectors(n,r).normalize(),a=new i6.kn4().makeBasis(i,n,r);return new i6.PTz().setFromRotationMatrix(a)}(d,c);return{position:h.toArray(),quaternion:p.toArray(),activePlaneId:u}}function II(e){let t=e.map(e=>e.kind),r=t.filter((e,r)=>t.indexOf(e)===r);return r.length>0?r.join(", "):"none"}function IB(e,t){return t.includes(e.kind)}function IT(e,t){return e.planes.filter(e=>IB(e,t))}function Ik(e,t){return!e.planes.some(e=>IB(e,t))}function IR({planes:e,source:t,surfaces:r}){console.warn(`Missing Surface in ${t}: the Resource needs ${r.join(" or ")}, the Scene has ${II(e)}.`)}let IP=new Map;function ID(e){return{placementKey:e,resourcePose:null}}function I_(e,t){return"reset-placement"===t.type?ID(t.placementKey):t.placementKey!==e.placementKey?e:{...e,resourcePose:t.resourcePose}}let IL=If(3,(e,t)=>{gg.clear(e),t.scene.traverse(e=>{if(e.isMesh)for(let t of(e.geometry.dispose(),Array.isArray(e.material)?e.material:[e.material])){for(let e of Object.values(t))e?.isTexture&&e.dispose();t.dispose()}})}),IF=Ig(IL,e=>gg.clear(e));function IN(e,t,r){let n=f_(e=>e.invalidate);!function(e,t){let{sceneGestures:r}=SO();(0,ep.useLayoutEffect)(()=>{let n=r.getState()[e];return t(n),r.subscribe(()=>{let i=r.getState()[e];Object.is(i,n)||(n=i,t(i))})},[r,e,t])}(e,(0,ep.useCallback)(e=>{t.current&&(t.current.rotation[r]=i6.cj9.degToRad(e),n())},[r,n,t]))}let IO="NEURODYN_ROOM_SCENE_PATCH";function IQ(e,t,{shading:r=!0}={}){let n=e.onBeforeCompile,i=e.customProgramCacheKey.bind(e),a=e.side,s=e.transparent,o=e.alphaToCoverage;return e.side=2,e.transparent=!0,e.alphaToCoverage=!0,e.onBeforeCompile=(i,a)=>{n?.call(e,i,a),function(e,t,r){e.uniforms.uMask=t.activeMaskTextureUniform,e.uniforms.uRoomLighting={value:t.lightingTexture},e.uniforms.uViewport={value:t.viewport};let n=e.fragmentShader.includes("vec3 totalEmissiveRadiance")?"totalEmissiveRadiance":"vec3(0.0)",i=`
|
|
7610
7610
|
{
|
|
7611
7611
|
vec2 _neurodynRoomUv = gl_FragCoord.xy / uViewport;
|
|
7612
7612
|
float _neurodynRoomMask = texture2D(uMask, vec2(_neurodynRoomUv.x, 1.0 - _neurodynRoomUv.y)).r;
|
|
@@ -7622,15 +7622,15 @@ ${z}
|
|
|
7622
7622
|
}
|
|
7623
7623
|
`,a=e.fragmentShader.replace("#include <common>",`
|
|
7624
7624
|
#include <common>
|
|
7625
|
-
#ifndef ${
|
|
7626
|
-
#define ${
|
|
7625
|
+
#ifndef ${IO}
|
|
7626
|
+
#define ${IO}
|
|
7627
7627
|
uniform sampler2D uMask;
|
|
7628
7628
|
uniform sampler2D uRoomLighting;
|
|
7629
7629
|
uniform vec2 uViewport;
|
|
7630
7630
|
#endif
|
|
7631
7631
|
`);if(a.includes("#include <output_fragment>")){e.fragmentShader=a.replace("#include <output_fragment>",`${i}
|
|
7632
7632
|
#include <output_fragment>`);return}e.fragmentShader=a.replace("#include <opaque_fragment>",`${i}
|
|
7633
|
-
#include <opaque_fragment>`)}(i,t,r)},e.customProgramCacheKey=()=>`${i()}|neurodyn-room-scene-v5|shading:${r}|maxRoomGain:${t.maxRoomGain}`,e.needsUpdate=!0,()=>{e.onBeforeCompile=n,e.customProgramCacheKey=i,e.side=a,e.transparent=s,e.alphaToCoverage=o,e.needsUpdate=!0}}function IF(e){let t=new Set;return e.traverse(e=>{if(!e.isMesh||!e.material)return;if(Array.isArray(e.material)){e.material=e.material.map(e=>{let r=e.clone();return t.add(r),r});return}let r=e.material.clone();t.add(r),e.material=r}),Array.from(t)}function IN(e,t,r){let n=e.clone().sub(t).applyQuaternion(r);return Math.atan2(n.y,n.x)}let IO={excludeFromCapture:!0};function IQ({resourceBounds:e}){let{resourceRef:t,sceneGestures:r}=SO(),n=gv("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABAAAAAQACAYAAAB/HSuDAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDkuMS1jMDAyIDc5LmI3YzY0Y2NmOSwgMjAyNC8wNy8xNi0xMjozOTowNCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDI2LjAgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QjYxMUY4MDQ3RTJDMTFGMTlCMkNBN0Y1RDJDNzNDQzYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QjYxMUY4MDU3RTJDMTFGMTlCMkNBN0Y1RDJDNzNDQzYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpCNjExRjgwMjdFMkMxMUYxOUIyQ0E3RjVEMkM3M0NDNiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpCNjExRjgwMzdFMkMxMUYxOUIyQ0E3RjVEMkM3M0NDNiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PiAtRloAAIYkSURBVHja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"),i=(0,ep.useRef)(null),a=(0,ep.useMemo)(()=>{let t,r;return r=1.15*Math.max((t=e.getSize(new i6.Pq0)).x,t.y),{positionZ:e.min.z-.001*r,side:r}},[e]);(0,ep.useLayoutEffect)(()=>{n.colorSpace="srgb",n.needsUpdate=!0},[n]);let s=e=>{if(!i.current)return;e.stopPropagation();let{pointerId:t,pointerTarget:n}=i.current;n.hasPointerCapture(t)&&n.releasePointerCapture(t),i.current=null,r.setIsDragging(!1)};return a.side<=0?null:(0,eh.jsxs)("mesh",{"position-z":a.positionZ,userData:IO,onPointerCancel:s,onPointerDown:e=>{var n;let a=t.current;if(!a||(n=e.object,e.intersections.map(e=>e.object)[0]!==n))return;e.stopPropagation(),e.nativeEvent.stopPropagation();let s=e.target;s.setPointerCapture(e.pointerId),a.updateWorldMatrix(!0,!1);let o=a.getWorldQuaternion(new i6.PTz),l=a.getWorldPosition(new i6.Pq0),c=new i6.Pq0(0,0,1).applyQuaternion(o);i.current={center:l,initialPoint:e.point.clone(),initialRotation:r.getState().rotation,plane:new i6.Zcv().setFromNormalAndCoplanarPoint(c,l),pointerId:e.pointerId,pointerTarget:s,surfaceQuaternion:o},r.setIsDragging(!0)},onPointerMove:e=>{let t=i.current;if(!t)return;e.stopPropagation();let n=e.ray.intersectPlane(t.plane,new i6.Pq0);n&&r.setRotation(function({center:e,currentPoint:t,initialPoint:r,initialRotation:n,surfaceQuaternion:i}){let a=i.clone().invert(),s=IN(r,e,a),o=IN(t,e,a);return((n+i6.cj9.radToDeg(o-s)+180)%360+360)%360-180}({...t,currentPoint:n}))},onPointerUp:s,children:[(0,eh.jsx)("planeGeometry",{args:[a.side,a.side]}),(0,eh.jsx)("meshBasicMaterial",{map:n,transparent:!0,depthWrite:!1,side:2,toneMapped:!1})]})}let IU=Math.PI/2;function Iz(e){let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId)}function Ij({glbUrl:e,position:t,quaternion:r,materialPatch:n}){let i,{type:a}=SD(),{resourceRef:s,sceneGestures:{setIsDragging:o}}=SO(),l=(IP.request(e),i=gg(e),(0,ep.useEffect)(()=>(IP.clearPassed(e),IR.hold(e,i),()=>IR.release(i)),[e,i]),i),{sceneInstance:c,materials:u,resourceBounds:d}=(0,ep.useMemo)(()=>{let e=l.scene.clone(!0),t=IF(e),r=new i6.NRn().setFromObject(e).applyMatrix4(new i6.kn4().makeRotationX(IU));return{sceneInstance:e,materials:t,resourceBounds:r}},[l]);(0,ep.useLayoutEffect)(()=>()=>u.forEach(e=>e.dispose()),[u]);let h=(0,ep.useRef)(null);return ID("rotation",h,"z"),(0,ep.useLayoutEffect)(()=>{let e=u.map(e=>IL(e,n));return()=>{e.forEach(e=>e())}},[u,n]),(0,eh.jsx)("group",{ref:s,position:t,quaternion:r,onPointerDown:e=>{"rotate-on-floor"!==E1[a].manipulation&&(e.nativeEvent.stopPropagation(),e.target.setPointerCapture(e.pointerId),o(!0))},onPointerUp:e=>{Iz(e),o(!1)},onPointerCancel:e=>{Iz(e),o(!1)},children:(0,eh.jsxs)("group",{ref:h,children:["drag-with-rotation-handle"===E1[a].manipulation?(0,eh.jsx)(IQ,{resourceBounds:d}):null,(0,eh.jsx)("group",{"rotation-x":IU,children:(0,eh.jsx)("primitive",{object:c})})]})})}function IG(e,t){(0,ep.useLayoutEffect)(()=>{let r=e.current;if(r)return IL(r,t)},[e,t])}let IH=[1,1,1];function IV({node:e,position:t,scale:r=IH,uvScale:n,materialPatch:i}){let a=(0,ep.useRef)(null);return(0,ep.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,ep.useLayoutEffect)(()=>{let e=a.current?.material;if(!e)return;let t=(Array.isArray(e)?e:[e]).map(e=>IL(e,i));return()=>{t.forEach(e=>e())}},[i,e]),(0,eh.jsx)(mw,{ref:a,object:e,position:t,scale:r})}function Iq({width:e,height:t,materialPatch:r}){let{material:n}=SF(),{nodes:i}=gg(n?.native?.glbUrl),a=(0,ep.useMemo)(()=>{let e=new i6.Pq0,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]);(0,ep.useLayoutEffect)(()=>()=>(function(e){for(let t of Object.values(e))for(let e of(t.geometry.dispose(),Array.isArray(t.material)?t.material:[t.material]))e.dispose()})(a.normalizedNodes),[a]);let 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,eh.jsxs)("group",{children:[(0,eh.jsx)(IV,{node:a.normalizedNodes.vizbl0,position:[-e/2+a.cornerSize.width/2-.001,t/2-a.cornerSize.height/2+.001,0],materialPatch:r}),(0,eh.jsx)(IV,{node:a.normalizedNodes.vizbl1,position:[0,t/2-a.barThickness.top/2+.001,0],scale:[l,1,1],uvScale:l,materialPatch:r}),(0,eh.jsx)(IV,{node:a.normalizedNodes.vizbl2,position:[e/2-a.cornerSize.width/2+.001,t/2-a.cornerSize.height/2+.001,0],materialPatch:r}),(0,eh.jsx)(IV,{node:a.normalizedNodes.vizbl3,position:[e/2-a.barThickness.right/2+.001,0,0],scale:[1,d,1],uvScale:d,materialPatch:r}),(0,eh.jsx)(IV,{node:a.normalizedNodes.vizbl4,position:[e/2-a.cornerSize.width/2+.001,-t/2+a.cornerSize.height/2-.001,0],materialPatch:r}),(0,eh.jsx)(IV,{node:a.normalizedNodes.vizbl5,position:[0,-t/2+a.barThickness.bottom/2-.001,0],scale:[c,1,1],uvScale:c,materialPatch:r}),(0,eh.jsx)(IV,{node:a.normalizedNodes.vizbl6,position:[-e/2+a.cornerSize.width/2-.001,-t/2+a.cornerSize.height/2-.001,0],materialPatch:r}),(0,eh.jsx)(IV,{node:a.normalizedNodes.vizbl7,position:[-e/2+a.barThickness.left/2-.001,0,0],scale:[1,u,1],uvScale:u,materialPatch:r})]})}function IW({width:e,height:t,position:r,quaternion:n,materialPatch:i}){let a=(0,ep.useRef)(null);return IG(a,i),(0,eh.jsxs)("mesh",{position:r,quaternion:n,children:[(0,eh.jsx)("planeGeometry",{args:[e,t]}),(0,eh.jsx)("meshStandardMaterial",{ref:a,color:"white"})]})}function IK({src:e,position:t,quaternion:r,materialPatch:n}){let{width:i,height:a}=SD(),{material:s}=SF(),{frameWidth:o,matting:l}=SU(),{resourceRef:c,sceneGestures:{setIsDragging:u}}=SO(),d=fO(i6.Tap,e),h=(0,ep.useRef)(null),p=(0,ep.useRef)(null);ID("rotation",p,"y"),ID("angle",p,"z"),IG(h,n);let A=i+2*l,f=a+2*l,g=l>0?A:i,m=l>0?f:a;return(0,eh.jsx)("group",{ref:c,position:t,quaternion:r,onPointerDown:()=>u(!0),onPointerUp:()=>u(!1),onPointerLeave:()=>u(!1),children:(0,eh.jsxs)("group",{ref:p,children:[s?.native?.glbUrl&&o>0&&(0,eh.jsx)(Iq,{width:g,height:m,materialPatch:n}),l>0&&(0,eh.jsx)(IW,{width:A,height:f,position:[0,0,.01],materialPatch:n}),(0,eh.jsxs)("mesh",{position:[0,0,.02],children:[(0,eh.jsx)("planeGeometry",{args:[i,a]}),(0,eh.jsx)("meshStandardMaterial",{ref:h,map:d})]})]})})}function IJ({model:e,patch:t}){let r=(0,ep.useMemo)(()=>{let t=new i6.nWS(1,1,{samples:4,depthBuffer:!1}),r=new i6.V9B({color:"white",side:2,toneMapped:!1,depthTest:!1,depthWrite:!1}),n=e.clone(!0);n.matrixAutoUpdate=!1;let i=new i6.Z58;i.add(n),i.overrideMaterial=r;let a=new i6.I9Y,s={value:2},o=new i6.V9B({map:t.texture,transparent:!0,depthTest:!1,depthWrite:!1,toneMapped:!1,fog:!1});return o.onBeforeCompile=e=>{e.uniforms.uMaskResolution={value:a},e.uniforms.uOutlineRadius=s,e.vertexShader="void main() { gl_Position = vec4(position.xy, 0.0, 1.0); }",e.fragmentShader=e.fragmentShader.replace("#include <common>",`#include <common>
|
|
7633
|
+
#include <opaque_fragment>`)}(i,t,r)},e.customProgramCacheKey=()=>`${i()}|neurodyn-room-scene-v5|shading:${r}|maxRoomGain:${t.maxRoomGain}`,e.needsUpdate=!0,()=>{e.onBeforeCompile=n,e.customProgramCacheKey=i,e.side=a,e.transparent=s,e.alphaToCoverage=o,e.needsUpdate=!0}}function IU(e){let t=new Set;return e.traverse(e=>{if(!e.isMesh||!e.material)return;if(Array.isArray(e.material)){e.material=e.material.map(e=>{let r=e.clone();return t.add(r),r});return}let r=e.material.clone();t.add(r),e.material=r}),Array.from(t)}function Iz(e,t,r){let n=e.clone().sub(t).applyQuaternion(r);return Math.atan2(n.y,n.x)}let Ij={excludeFromCapture:!0};function IG({resourceBounds:e}){let{resourceRef:t,sceneGestures:r}=SO(),n=gv("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABAAAAAQACAYAAAB/HSuDAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDkuMS1jMDAyIDc5LmI3YzY0Y2NmOSwgMjAyNC8wNy8xNi0xMjozOTowNCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDI2LjAgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QjYxMUY4MDQ3RTJDMTFGMTlCMkNBN0Y1RDJDNzNDQzYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QjYxMUY4MDU3RTJDMTFGMTlCMkNBN0Y1RDJDNzNDQzYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpCNjExRjgwMjdFMkMxMUYxOUIyQ0E3RjVEMkM3M0NDNiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpCNjExRjgwMzdFMkMxMUYxOUIyQ0E3RjVEMkM3M0NDNiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PiAtRloAAIYkSURBVHja7N0HvJ1FtTfgOekJLUDoRaR3EKQXEUG4WJAOAlIUARGw94rez3ZFvHopUhRFkSIqCChNepOOCApIEQHppPfzrcnMISfUlFN2eZ77+9+dHAKStTdJZr1rZjo6OzsTAMCr2CZyRGRC5FORp5QEAJrXICUAAF5mk8gnInt2vvBs6ph/wfgTw+B74vvfURoAaF4DlAAAqDaKnBm5dvqYF/Yc88vj0lNf2Cd1Tp6Y/9r8ygMAzc0EAACwbuSzKT/xHz9m0PhLz04v/u7UNPlvN6QhK6yT0oCB+cdMVyYA0AAAAJrTqpEjIwd3jhs9Ii/8R5//0zT5gRtSx5AF08AFF00dg4eoEgBoAAAATWqluvA/qHPKpAUnXPHb9OI5x6fJ/7h2xsJ/wPxLlR81ZYJKAYAGAADQhJZL5XC/gzunTV1w4rUXptHnnpQm3vnH1DF4/hkL/3w3UL4gqKMj/3BHBQGABgAA0EyWiBwSOTIW/otPvOYPacxvT04T7rwsdQwY/NIT/7z4n7Hu71AwANAAAACayai68P9IZNlJN12aXjjrx2nibX+Mhf+ANGDEqPLEv675u9b9nfW1w7l/AKABAAA0tIUih0eOyAv/yXdcO2PUf/wN58XqfnrqGD6qjvh3xP91vuJv7nipCTDLFoBpygoAGgAAQN8YUH/vHlpfB0fyHX1D6ro9fz8f8PfDNHXKqpPuuiGNPe+UNO7GP6Q0dWxKwxeNhf+Abkv+8uy/c8am/1kn//O3p3fMMgGwaGSp+jdNjkyNTKmZ6q0BAA0AAGh3HXXB3pX5IiMjC9YskMoT+/nq68huPya/zl8zoi7wB79OA+AlY889IT3zo6NnLM0HLLx46hiyWLfR/q7/37UB4JU6X/nloyKH5r7Ayxb+k2smRcZExnV7fbF+u+t1dLfXruS/NrH+/RPrPx8A0AAAgIZZ1OfF+yJ10b5wmvmEfImaUfXri9TF/EL173kj4+pCeHx9nVDzfLevjamvE+tCfFxdOI+p/5sfne+9B40csNgyafRvTkqT7rkqfscfmtLQBWYe9Nf9J1O/0P2v5a91zNoEuDJyfWR4bUYMq98eXpsYQ+q3889xpfrXR9SvvdGfN8bXRsAL3fJM5KnIfyJP1nT9mOfr6xQfRQCYgz/AdHZ2qgIAzDR/t0X9spGla5aMvKm+LpNmPpl/+Xp6el3QjqsL1acjz9UF7bN14fpcXay/UBe1o+uPn1STF7ZdT9bnZu/9ypEjIwd1Tp64wPjLzkmjzz0xTX7ghhnX/XUMXSB13+nfffE/S4NgyqQ0aIkV0pKnXJ06ho34Ynzl/81mcyQ3AwbX15yhtSGQazpft8bJAvXbi9bXUfXbi9UfN1/957zchFqv3CB4LPJ45N+1WfCv+rWnu9XYVAEAaAAA0IbyonLxuqhfqi7qV4y8uS7su57gv9ykNPOJdH59otui87Fui/kXuy3q+/vgvNUjn4zs2zlu9PAJl5+bXvz9aWny/denAUNGps7Bw1/x9H+WbQKzNgCOia98ta/+fJJmbonoysj6vixVGzNL1kbBEvV14Vf55+T34cn6Hj0c+WfN4zVPNsj7BAAaAAAwlxati/y8oF8tskpd4OeF/gqpPLnvbmwqT+efqAvFh+qi/om6SHyiLhS7RvCbzYaRT0T26Bw/dvD4S86ccSvA5EdvS2nYIqkjbw9Is44yzGgI9F8DYE7k7QVdWw+WSLM2d7re8+VSmTBY5GV/b560yBMDD0Yeqa/31fc/TxDkRo8DDgHQAACAftY1Sp73m69cF/lr19cl0qz77TvrQv6ButB7qC72Hq6LvK7x/FYfFd8olYmA3ae/+NzAcRf8NI0+/7Q09fG/pTRi0TRg0NAZh//lqYAZr1MnpEFLrNjoDYDZlT8PXVsMuqY+uhpC+XX5VLYqdJlcPzOPRqJA6a/1s/OPVBpCL/pPEAANAADoWXnv+LJ1gbZmZL3IqqmMty/+skV+XqzlJ7p/j9xdF2xde8LziP4k5Zxhk8jnIztPe/rfafxFZ6TRF5+Rpj5+T+oYvkjqGFjXwVMmpEGLr5iWPLUlGgCvJ9+kkKdClq6fs+Xq52vt2izI35+v248fWz9juaGUJwbuSqWp9FD9nAGABgAAvI58x31+cp/Htteti/0N62J/VLcflw9/+3dd4Ocns/mJ7P11kf+MRf4c2TGViYDtpj3zRBp3/k/TmAtPT1Ofvj91DB+VOqZPbaUJgLn+s1IqUwOj6mdxjfq6Vn3tfvbAmNoEuKN+Nu+qDYJ8BsF4HzcANAAAaEf5ZPf8pDU/Zc1P9N9av716mrkVfUq3xX1e7N+WZo7ve8ras3aqjYBtpz3xcBp73slp9B/PSNOefjQNWXG9tNRp17dzA+D1DKuf4+VrY+At9TOcmwPdt6DkhlWeGLg9cmvk3lSmB8YqIQAaAAC0kiHdFkgbd1vwL9Xtx/ynLpBuSWWvdU4+rT1fo+cKt77znshnI1tMffjeNOa8k9OEu25ISx1/aeoYMf834+tfVqLZslD9fK9Vk89eyNsJ8laCgfXH5MV/nhC4o37uc/J2Fc0tADQAAGgKeXGzZF3k56ehm6Uyzr9ctx+Tn4beWhc/N6fyhD8/2Z+gfA0hn6q/VyoTAW+Z+vjDadBiy6Q0ePCX4vv/rTzzJDfC8oGDeWvL+vW/jdwYGFD/+nOpTAfcVBsCeWIgn2th+wAAGgAA9Lt8cNrqdUGzeSpPOtfo9tfzE838NP/auuC/pzYAJitdw8uTG3tHjkxlb/vBqdyaQM9arP43kxsBW9bGQPetMHk6JjfMboxcl8qZAo8rGwAaAAD0tjzWnJ/ubxrZKpWn/F2HoOWR5jtTeaqfFyp5335+ejlR2Zr7zwqp3LBA38kTM6vW/87ydpk8SbNE/Wv5kMt8NsbVtSmQ/3t7OGmqAaABAMA8Lvzyifz5ieTbU3nC/5Y088nkg6mMKV+VyqhyHl12Nzr0vCG1IZCnBHLjLZ+lsUGauXUgn5dxU20K5IZAvoFA4w0ADQAAXteKdXGxTc1q9etT66Liz6k8dfxLKuP9njpC/8hnbaxb/3vNDbru0zjP1GZAV/IBm84RAEADAKDNrVAXENu+yoI/P1HMe/evTGUf/2PKBQ0rXzuYzxLYIvK2+rpo/WtPpDIZcEnk+lSmdSYpGYAGAACtLT81zCP920XeUb+d5Sf5t0Uur4v+fOjY08oFTWtEKlsGNqv/vecDOrvOEcjNvDwZ8MfaGPi7cgFoAADQ/Oari4D8hH/HVJ72D6t/Ld8/flnkilQO73OyOLSufGNHnhB4e/31YKvaJMjuq82AvMXnhqT5B6ABAEDTyAf35ad+70llFHip+vUHUjmwL48B5/H+R5QK2lY+LyBPAOVJoDwhsEn9ej48ME8B/SmV7T+5OThFuQA0AABoDPkp3gb1D/LvSmXUN8t3t+fr+C5O5Sn/3/1BHngNy6Zy08c7IzvU72f/qs2Ai1I5P+A/SgWgAQBA38p7+bdM5Sl/fnq3dP16PqzvkvqH9Xw133NKBcyhfO1gvmFgm8i7U9kukK8cnJDKdMDvU5kOyDeD+IMkgAYAAL0g3wOen8y9t/7BfFAqV3tdEzk/lf27+Sn/dKUCelBuMG6ayoRRnhDomg64O3JB5MJUGo4TlApAAwCAudP1FC4f3rd7ZL369SdTObArP4XLB3YZyQX6Sj5EdIPaCNg5zbxJJB8i+of661LeevSiUgFoAADwxov+DSO7Rt4XWbl+PY/256ds+WlbvqJvolIBDWD12gzI25G2SWUy6flUtiKdm8rBo24VANAAAKDK13Plw7feW/8QvXz9+vV1wZ/389+lTECDW6o2A95bX/OvbXlbQD5E8He1KfCEMgFoAAC0m3xyf76qL4/275xmXtV3deTs+gfmB5QJaFKLpnJ4YP41Lp8dMDIyOXJp/TXu8si/lQlAAwCgVeXx/nyQ1h6R3eqiPx/Yl6/oO6f+wfghZQJaTF78b1l/3XtPbQ5MS+UskzNqM8A2AQANAICmNzCVJ/271D/8vql+/crIr+sfgB9RJqBNLBTZOs2cfsrfH5vKAYJ5MiA3RB0gCKABANBU1q5/uH1/ZM36tXxd31l10f+gEgFtbuFUtgnkqah8bsCCkeciv6m/VuZzUFwtCKABANCQ8t3Yebx1n/qH2uyOyK9SuRrrH0oE8KoWSeXK09w03SGV2wQei5yZymTALUoEoAEA0N/yE6vtIh+I7BQZnMrT/Xz91a9rAwCA2bdc5N2R/VK5ISW7PZVm6nmRfyoRgAYAQF/K+/rzk6q9I6NS2bPatejPJ/lPViKAeZa3U+1Wf61dvX4tnxeQDw+8ODJaiQA0AAB6w5tT2ad6cGTd+rV8evWpqdxv/awSAfSKvCUgTwPsG9kzlZsFnknlrIBfRG5SIgANAIB5NTyyTeTAVE6tHhC5L/LzVA6qsq8foG/lwwN3rL8uv7N+LW8ROK3+uvyEEgFoAADMiVVTedJ0UCr7USemMt6fnzTlEf+pSgTQ71ZJ5eDV/eq3J0XOifwscpVfqwE0AABey7BUniYdksoBVFm+hio/Vcp7Tv+jRAANKW8ReHsqW7TymQH5QNb7aiMgN28fUSIADQCAbOVUnvbnPzgun8qBfvmAqTzmf7PyADSVfCVr3rL1ochaqUwB5LMCfhK5JuIPv4AGAECbyU+Lto0cGtm1fu2GyMmR85MD/QCa3cDI2yIfTOUWgXyGy521EXB2KocIAmgAALSwZVIZDz0sskZkbCr7+vOY/y3KA9CSVojslcqkVz7j5cX6a39uBtytPIAGAEBr2TiVcdD9U9nrn58CnZjKidFPKw9AW8hnA/xXmvWsl0vr7wcXpXLgK4AGAECT/kHvXZEjUxn3z34bOSFyRWSaEgG0rTwFdkAqUwGLRR6qvz/8MvK48gAaAADNIf9Bbu+68M/XQuX9/KekMub/D+UBoJuRqZwF85HIhpHxqRwCm5sBdykPoAEA0Jjy05y8t/+gyAKRv0b+N3Ju5HnlAeANbBc5IvK++v0LIj+OXKI0gAYAQGPYMvLxNPM0/3yK/49SGfOfrjwAzKG1IwemclPM/JHbIsencp3gWOUBNAAA+tbQyA6Rz0S2iEyJnJrKic63Kw8APWDxyPtT2VK2YuTRyEn195v/KA+gAQDQu/JezT3qwn/l+gewPOb/q8jDygNAL8hN591qI2DTVK4R/EltBPxdeQANAICetWgqo5hHp/JE5r7I91LZ3z9aeQDoI9tHjkozrxHsmj67WWkADQCAeZNP8T+kJj/9vy7yw1QOZnJfMwD9Zf3IJyP75j9Tp3LN7HcjNyoNoAEAMGfyXsuPpXIt08DIhamM+juJGYBGsloqE2r596u8VeDPkR+k0qgG0AAAeB35DuY8WrlfZEDkN6k8UTFaCUAjWzaVabV8jWDetnZD5P9F/qA0gAYAwKzeGvl0ZM/ItMjpkf9L5eolAGgWoyIfjHwilTNrbop8pzYCpigPoAEAtLONUznRP5+unH9BOiFyXOR+pQGgiS0c+VAqU215OuDO2gg4VyMA0AAA2s3Ln/gfn8rhfg8qDQAtZKFUDgr8VOTNkbsi39YIADQAgHawUSpP/HevC/8T68LfE38AWtnwVJren0/l4ECNAEADAGhZedQ/P/3YIzI9lSf+edTfE38A2km+KWCfyFdSmQi4JfL15LBAQAMAaAH5KcfnIgdGpqayx/9HyRN/ANrbgpH9U5mKWz6VwwLzrQHnKw2gAQA0m5UjH0vlOqQsn+ifn/g/oDQA8JIFIoelci7OYqlcH/jVyKVKA2gAAI1umVSuPsqnHg+K/DLyrcg9SgMAr2nRyMGRT0aWiPwulVsDblQaQAMAaDT5uqPDU3mCMTJyTuR/IjcrDQDMUSMgN9LzuTlDImdFvpE00gENAKAB5MOMDoh8LbJU5KpURhevUhoAmGtvihydyna6jshJqdwa8LDSABoAQH/IV/nlA4tWidyayonGFykLAPSYtVK5OnDfyNhUpuvyTTpPKw0wpwYoATAX3h65NpUx/9xFPDCyqcU/APS4PPq/XyrX6eabAr4WuTOVgwOHKg+gAQD0ljUjZ0euiKyeytVFG0ZOT+WKPwCgd/wlsl1kp8gTqVyre0tkF6UBNACAnrR45AepPIXYLXJsZO3I91IZRwQA+sbFkU0i+0cWipyXypWBWygN8EacAQC8nmGRD0e+nsrJ/mfVb9+rNADQ7/LvzYemcgbPiMipqRwU+IDSABoAwJzII4X5gL886n9NKnsOr1AWAGg4y0e+FDkkMqE2AY6LjFYaoDtbAICX2yCVw/zySGGeAPhAZBuLfwBoWI+mMrG3USpN+zytd0dkb6UBNACAV7NUKvv883V+b69/eHhL5BeR6coDAA0vHwq4QyrX9E6OnBm5LJWbegBsAQDSwMgHI9+MLBb5VSrj/vcrDQA0reGRIyNfTeV8gP+LfCPyH6WB9mUCANrb1qmMCp6Uyvjg9pF9Lf4BoOnlswC+m8oVvvm63iNSOcQ3vw5UHtAAANrHcpHTIlelcsjfR1K5UugypQGAlvJI5MBUtvfdF/lx5Ib6fUADAGhhueOfxwHviRwUOTGyVuSEyDTlAYCWdWVky1Sa/iumcrjvKZFllQbahzMAoH1sFfmfyMaR6yKfi1yrLADQdpZM5bDffHPAC5HPR05OHgZAyzMBAK1viVQO/rk6snLk8FT2/lv8A0B7ejJyaGTzVLYF5EnAK+v3AQ0AoEl9IHJXKuN+ecxv7VTG/l3rBwDkswDytoB8MOC6qUwIHhtZVGlAAwBoHutE/pjKqb+PRbaLHBJ5QmkAgG7y2P/xkfUjv4h8PHJnZC+lAQ0AoLENjXy5/sa9beSLqYzzXa40AMDreCiVycEdI2Mjv46cl8r2QaBFOAQQWkd+yp8P+Vsvcn4qh/zdqywAwBxaIPLpyJciE+qfKfKUgEMCocmZAIDml/fp/TByaSoH/h0Y2dniHwCYS2MiX4lsELk18r+pHB68kdKABgDQf3aL3BE5KvLTVJ7+n64sAEAPyH/GyFsK82HC+SDhmyNfi8ynNKABAPSdZSI/i5wbGR/ZKXJw5CmlAQB60NRUrgnMhwT+JvLVyC21MQBoAAC97MBUOvIHpHJVTx7Hu1hZAIBe9GBk91RuB1g4lQOG89lD8ysNaAAAPW+FVDrvedT/0cjWkU9GRisNANBHzk7lbIBf1j+H5GmA7ZUFNACAnnNQKk/9d418I5Wr/a5RFgCgHzwe2S/yvlTOA7gk8qPISKUBDQBg7q2Qyh28p0UeqAv/fCrvJKUBAPrZ7yNviZwa+Wgq0wDvVBbQAADm3IGR2yO7RL4e2TJyg7IAAA3kmciH6p9XhkT+FPl+cjYANKSOzs5OVYDGslTkB6kcspMbAEdY+AMATWBU5Fu1IXBvKlMBVygLNA4TANBY8h7/W+vi/5uRLSz+AYAmkacBDonsHVkklZsCckNghNKABgAwUz4055RUTvkfG9km8uXIBKUBAJrMWZENI2dEPhe5KpVriwENAGh720Vuinww8uPIxvU3SgCAZvXvyP6pnGm0WuTmyKeUBTQAoF0NTeVKv0tTOSgnX6VzZOQFpQEAWsTpqdwUcHHke5HLakMA6AcOAYT+sVYqV+ZsEvl15OORJ5UFAGhhn4x8JzI+lUOOf6Ek0LdMAEDf+3AqB/2tl8rY/z4W/wBAG8jXA24auT/y88hpqRwWCGgAQMtZMnJ25KTIXyJvrb/xAQC0i1sim0eOjRyUyjlIWysLaABAK/mv+hveHpFjUjn47x5lAQDa0KRUtgPk84/yOUj58ON8+9EgpQENAGhm+Teyb0YuikyJbB/5av2NDwCgnf0+skF9Pab+eenNygK9xyGA0HtWSmXEP4+15YP+joo8rSwAAK9wdCpnBIxJ5bykc5QEep4JAOgdedQ/H/S3ReTwVA76s/gHAHh1P4xsGXkslTOTjosMUxbQAIBGNjzyv/U3rkdTuebvRGUBAHhDN6ZyQODJqUwEXJHK1clAD7EFAHrOmqmM/OdF/08in46MVhYAgDl2YOSEyPRUrk3+tZLAvDMBAD1j38jNkfVTudLmUIt/AIC59rNUHqrcFzkzlS0CtgSABgD0qzzy/4PIGZG/Rzauv2EBADBv7krlMOU8WZkPU/5zZDVlgblnCwDMvVUjP01lr1r+jSnfZztWWQAAetzBkeNTuVY5T1ueqyQw50wAwNx5XyoH1bw1lX1ph1r8AwD0mnzO0qaRR1K5IvA7kYHKAhoA0JvybzTfiPw28kQq1/ydpiwAAL3ujshmqWy9/Ezkj5HllAVmny0AMPuWipwS2SmVw2g+GnlOWQAA+ly+JvC4yOOR/VO5MhB4AyYAYPbkff7X1sV/7ji/3+IfAKDf5FsB3h6ZFrk88jElAQ0A6AkfilwdmS/yzsj3lAQAoN9dmcpDmktTuZXpp/XPa4AGAMyxoZH/jZwcuT6VPWeXKgsAQMN4LJUJzfyA5sDIVclVgfCanAEAr275yM9SGS3LV87kK/4mKgsAQMPap/75bUJkv8gflARmZQIAXmnrVJ7458X/4ZEjLP4BABpePqQ5XxX4VOSCyGeVBDQA4PXk/f5X1f823hY5UUkAAJrG7amcC3B+5NuR05NzAUADAF5mUOTYVPb75wP/Nq2vAAA0l2ci76sNgA9ELouspCzgDADIlkzl1NgdIyelcq/sJGUBAGh6+0dOizwb2TN5wEObMwFAu1s/8ue6+P9E5DCLfwCAlvGLyDaRyfXPfAcrCRoA0J7encp+/2Ui703l/lgAAFrLdZEtIjdETk3lykDQAIA2ksf88+mwj9XfEC5QEgCAlvWvyA6Rn0c+FTknsrCyoAEArS0f9vfjyHGRi1M56f9uZQEAaHnjIgdEvhDZPXJpZBVloZ04BJB2MiqVq2B2ihwf+VhkirIAALSdfCBgPh8gHw64TyrbQqHlmQCgXayZysEvefGfD/s7wuIfAKBtnR3Zqn778sjeSoIGALSGbVLp6uYRr3wnrMP+AAC4OZWzoO6InBn5jJKgAQDN7f2pPPmfENk68nslAQCgeijyjsi5ke9ETowMVhY0AKD5fD7yy1S6u1vXVwAA6O7FyF6R70cOTeV2KDcE0JIcAkgrGhj5YSr7/H8bOTAyWlkAAHgD+YrA70VuS+WgwAeVBA0AaFwLRE5L5WqXfNL/UZFpygIAwGzK0wB5ivSJyG7JFCkaANCQlkrlif8mqdzv+i0lAQBgLuTDAfNWgOGpHCL9JyWhFTgDgFaxVuTKyMaRAyz+AQCYB9elcobUPyMXRw5REjQAoDFsHrkiskzkPZGfKwkAAPPor5HtU9kC8JPIJ5UEDQDoXztHro7kvSy5S3uhkgAA0EMej2wb+V3kfyI/UBI0AKB/HFx/Mb4nslUqp7UCAEBPGh/ZO3JS5GORn0aGKQvNaJAS0KQ+Hflu5PrILpGnlAQAgF4yKXJY5PnI5yJLpnJN4BiloZmYAKAZ/b+6+M8n/u9k8Q8AQB/5fOToyI6RiyJLKwnNxDWANJtTIh+M/CKVLQBTlQQAgD52YCpbAe6P7BB5SEloBiYAaBb5DtYz6uL/+/UXXYt/AAD6w88i70vlFqpLI+soCc3ABADNYGTkrMg7I1+NHKMkAAA0gHwQdd4KMCWV26muURI0AGDuLZrKSf9bpnL36rFKAgBAA9k4cn5kgVTOp7pKSdAAgDm3bOS8yEaRD6Sy7x8AABrNapELIsulcjvABUpCI3IGAI1qlciVdfG/l8U/AAAN7O+R7SP/SmUaYH8lQQMAZs8akctS6aDmvVRnKwkAAA3ukcg7IrdFfp7K4dXQUGwBoNGsHflTZP7IeyJXKwkAAE1kkchvIttEPhw5WUloFCYAaCQbRC5P5cq/d1j8AwDQhJ5L5UHWxZGfRI5SEjQAYFZvi/w5MjCV6/5uURIAAJrU2MgekT9Gfhj5ipKgAQDFtpELI+Mt/gEAaBHjIruncijg1yPHKAkaALS7HVPpjI6ui//blAQAgBZqAuRrAfPV1l+OfFdJ0ACgXf1XKh3RfGJqvjblbiUBAKDFTIq8P3JG5NOaAPSnQUpAP8lP/i+IPJjKk/9HlAQAgBZuAuwfmVCbANlnlAUNANpl8Z+f/N9fv23xDwBAOzg00qkJgAYA7aJr7P8hi38AANpMZ20CdNQmQEe3ZgBoANBSup78P2DxDwBAGzu0vn6qNgVMAqABQEsu/vOe/x0ijyoJAABtKi/6P1y/bRIADQBaytvr4v9fFv8AAPCSQ+uaLE8CTIl8QUnQAKCZvS3yh8hTkfcmY/8AANAlTwIcFlkg8vnI5MjXlAUNAJrR+pHfR8amsgXgHiUBAIBZ5EX/vpEBka9GRkeOVRZ6Q0dnZ6cq0BvWjlxRfyHLi/9blAQAAF7TsMh5qdyadUTkeCWhpw1QAnrB6pE/WvwDAMBsmxjZI3Jx5P8iBysJPc0EAD1ttcglkUVSOfzP4h8AAGbfiFS20W4XOSjyMyVBA4BGtEzkqsib6uL/WiUBAIA5tlAqE7WbpjIVcK6S0BNsAaCnLBz5XWSlyO4W/wAAMNdejOwa+VvkzMg7lAQNABrFyFTGlN4a2at+GwAAmHtPRHaKPBi5ILK1kjCvbAFgXg2P/CGybWT/yBlKAgAAPWbFVLbZLhjZJnK7kjC3TAAwr5+fU+vi/xMW/wAA0OP+GXlPJD+5zZO2KykJGgD0h59E9ol8NfID5QAAgF5xR+TdkUVTuSZweSVBA4C+9J3IByPHRo5RDgAA6FX5kO1dIqtEzkvlpgDQAKDXfTrymcgv6rcBAIDed0kq525tmMrVgMOVhDnhEEDm1EGR01LpOuYT/6cqCQAA9KnDIifUJsCeqZwPAG/IBABz4r118X9jbQRY/AMAQN87MfL1yO6RHykHs2uQEjCbNomcE/lrKqeQjlYSAADoN1+LjIwcHXm6NgTgddkCwOxYO3JZKqNFW0fuVxIAAOj/9Vzk7FQmAQ5PZTIANACYa0ukcuLoMpEtIrcrCQAANIx8EOBFkW1SuSXgd0qCBgBzY8HIn1IZ/89j/xcqCQAANJzFI1dEVo5sH7lGSdAAYE4MjvwqlXGiAyOnKwkAADSsFSI3RAZGtoz8Q0l4ObcA8FqOq4v/z1v8AwBAw3s48r5UtgScH1lMSdAAYHZ8IfKRVA4R+bZyAABAU7gp8v7IaqkcDjhcSejOFgBebu/ImZHfR3aLTFMSAABoKh+OnBQ5I3JAZLqSkA1SArrJp/znff83Rw6y+AcAgKb0k8jykS9GHktlWy+YAOAlq6Zy3d/EyFaRR5QEAACaWp4A2DdyeCrbe9EA0AAgjYpcXpsA+cTQW5UEAACa3rDIpfXP+DtELlESDQBVaG9DIr+N7BTZJfI7JQEAgJaxZCqTvoukMul7j5K0L7cA8P26+P+4xT8AALScJyO7pvLg7zfJ9YAaALStvOj/aOT4yHHKAQAALemuyD6pXA+YzwVwGLwGAG1m58ixqewJOlo5AACgpV2QygPAd0Z+qBztyRkA7WmdyHWpjANtGnlOSQAAoC38b+TI2gwwBawBQItbpC7+l41sEvmbkgAAQNvI4/8XRbaPvDtyoZJoANC6/7Hn0Z8dUzn472IlAQCAtpOvAb8hlQMBN4vcqyTtwRkA7eV7dfH/cYt/AABoW89EdkvlAeE5kYWVRAOA1vKhyMciJyd7fQAAoN3lmwH2jawVOdXaUAOA1rFl5MTI9ZGjlAMAAAi/j3wxskvkG8rR+pwB0PryYX95f09u9uQT//+lJAAAQDe/iuxT82vl0ACgOQ2NXBLZOrJV5FolAQAAXma+ulZYPZVDAe9QktZkC0BrO7Yu/g+z+AcAAF7DuMiekYmRsyOLKokGAM3lg5GPRI6PnKQcAADA67g/lUMBV0kOBdQAoKnksZ186F9+6v8J5QAAAGbDRZEvRHaOfFk5Wo8zAFrP4pGbIyMiG0UeURIAAGAO5G0Ae6RyO8DvlEMDgMaUJzr+EPmvyPaRy5QEAACYQwtGboosncpDxX8oSessGGkdx9TF/6ct/gEAgLk0OrJXZHDkzFSmi9EAoIG8L/LFVMZ1/kc5AACAeXBX5EORDSLHKUdrsAWgNawYuTXyVGTTyPNKAgAA9IAfRo6KHBI5RTk0AOhfQ1I57X/9yMaRO5QEAADoIUNT2V68ac2tStK8bAFoft9P5WCOwy3+AQCAHjYp8oFUzgX4ZWSkkmgA0D/2jnw0lVGcU5UDAADoBQ9FDoqsFjlBOZqXLQDNK//Hl8dv7o9sERmvJAAAQC/678gXIkdGfqwcGgD0jeGRqyJrpzL+f4+SAAAAvWxQ5NLI1qmcB/AXJWkutgA0p+/Vhf+hFv8AAEAfmRo5IPJcch6ABgB9Ys/IEZGTI79QDgAAoA89GjkwskqyDaDp2ALQXFZOZd//w6ns+x+rJAAAQD/IU8mfinw4lYeTaADQg/J+mysjG6cy/n+nkgAAAP1kSF2fbBh5a+RuJWl8tgA0j6+l8tT/KIt/AACgn02OfCAyMfLzyAgl0QCgZ7wz8sXIWZETlQMAAGgAD0QOj6wf+Y5yND5bABrfYpE7Ujlxc4PIs0oCAAA0kFMjB0d2ifxOOTQAmHvnRHaPbBv5s3IAAAANZsHIzZFFUjkT4F9K0phsAWhsh9XF/zct/gEAgAY1OnJAKtPLectyh5I0JhMAjWutVK78uy3ytsgUJQEAABrYZyPfjnw8cpxyaAAwe4ZGromsHVkvcr+SAAAAjb6+jFwW2TqyaSoPNGkgtgA0pq9HNop81OIfAABoEvnp8gcj4yKnpPJgEw0AXkce98+jM2dHTlMOAACgiTwc+UgqVwN+Szkaiy0AjWXhyC2pdMry6Zn/URIAAKAJ/SKyX2S7yOXKoQHAK/0kckhkp8jFygEAADSpRSO3p3IuwFsizyhJ/7MFoHG8ry7+T7T4BwAAmtyzkYMjy0a+rxyNwQRAY1gicnf9j2TjyBglAQAAWsCPUjncfNfIb5VDA4CUzorsmcp1GdcoBwAA0CLmj9wUGZXKVoDHlaT/2ALQ//aqi//vWfwDAAAtZmwqWwEWjxyvHP3LBED/WjpyV+Tfkc1TuS8TAACg1RwT+XLkgMjPlUMDoB39LrJzKvv+/6IcAABAi8pXnd8cWT6ybuRfStL3bAHoPwfUxf83LP4BAIAWNynyocjIyI+Vo3+YAOgfy0T+Gnk4smn9jwEAAKDVdW0FODByunJoALSDsyN7JKP/AABAexkWuTGyQmTtyGNK0ndsAeh7e9XF/39b/AMAAG1mYuTDkYUiP1KOvmUCoG8tGbk78nRko+TUfwAAoD19M/LFyN6Rs5RDA6AVdY3+bxW5VjkAAIA2NTxya2TRyFqRZ5Sk99kC0HfeWxf//2PxDwAAtLkJkcMii0e+rxx9wwRA31g4cntkSmS9yHglAQAAmHEOwEcj745cqBwaAK3gxMihkR0jf1IOAACAGRaM3BXJC9N1ImOVpPfYAtD7tqyL/9Ms/gEAAGYxOnJ0KtcCflM5epcJgN6V77i8JZXT/9eMPKUkAAAAr3BGZN/Ixsl16b3GBEDv+mQqJ1oeafEPAADwmj4TeSGV7dODlUMDoNnkJ/5fS2Xs/0zlAAAAeE2PRz4V2SBylHL0DlsAeqmukUsiW6cyAfCAkgAAALyu/ID6z6lsA8gPVB9Skp4vMD3v/ZHtIl+1+AcAAJgt01O5EnBo5Fjl6HkmAHreqMjfIk9GNopMUhIAAIDZ9o3IlyK7Rc5TDg2ARnZC5LDI2yNXKgcAAMAcmT9yR2RgZL1UrgqkB9gC0LM2r4v/Uy3+AQAA5srYyNGRFSJfVI6eYwKg5+SrKm6IrBhZPbn2DwAAYF6ck8o2gPUjdynHvDMB0HMOjWwY+azFPwAAwDz7dGRi5LhUblpjHpkA6BlLR/4auT+VbQDTlAQAAGCe5Qes347sHzlDOTQAGsHPIgdENovcqBwAAAA9Yljk9sjIyJqR55Vk7tkCMO+2qIv/Uyz+AQAAelTeAvCxyJLJgYDzzATAvMnXUnQd/Je7Ufb+AwAA9LyuAwHXTWX7NXPBBMC8OTCyUeQrFv8AAAC95jOpTAMcqxRzzwTA3BsVuS/yWGTjyGQlAQAA6DVfinwjsnvkN8qhAdCX8lUUR0e2jfxZOQAAAHrVfKmM/0+NrB8ZpyRzxhaAubNuXfyfZfEPAADQJ/KC/1ORlet6jDlkAmDu/DGydSoH/z2sHAAAAH2zho1cmsoV7GtEHlWS2WcCYM69J7JD5LsW/wAAAH0qP8H+dGRE5JvKMWdMAMyZ4ZE7IkMja0fGKgkAAECfOyFyWGTzVK5mZzaYAJgzh0RWTeX0SYt/AACA/nFMZEzk29a1s88EwOxbLHJv5J+RTSPTlQQAAKDf5AMBvxfZI3KucmgA9KSua/+2jFynHAAAAP0qXwt4VyrnAqyXXAv4hoxKzJ7VI0dEzrb4BwAAaAh5wf/ZyEqRDyvHGzMBMHvOiexSGwEPKAcAAEBDyA+1r4qsE1kt8h8lef1i8fq2juweOdbiHwAAoKHks9k+H1ko8jnleH0mAF5fbpBcHVkrldP/n1YSAACAhnNWKg9u14z8XTlee4HLa8tj/1tEvmnxDwAA0LC+9rJXXoUJgNc2NHJbKqMkq0QmKAkAAEDD6rq5bfPIDcrxSiYAXtuHUhkf+ZzFPwAAQMP7TmR85BileHUmAF7dgpH7Ik9FNkjlYAkAAAAa25drA+BdkYuUY1YmAF7dUZGlIl+y+AcAAGgaeRvAk5H/tt7VAJgdS6Yy9n955ELlAAAAaBpjIt+KrJ/KrQB0YwvAK32rNgC2ilyrHAAAAE1leOTu+u11UzkXgGQC4OVWiHwslb0iFv8AAADNJx/inrdzrxT5gHLMZAJgVj+NHBhZJ/JX5QAAAGhKgyJ3RuaPrJFMAcxgAmCm1eri/+cW/wAAAE1tauQrkeVTueKdZAKgu9Mj+0fWTOUKQAAAAJp4vRu5MfLmVB74Pt/uBTEBUKxWF/9nWPwDAAC0hPy0+/ORxSJHK4cJgC6/TOWKiLUj9ysHAABAy/hz5C2RVSJPt3MhTACktEHk/ZGTLf4BAABazjGRhSIfbfdCmABI6TeRd6dyMuQ//bcBAADQcq6MrJ/afAqg3ScA8tP/XSP/Z/EPAADQsr6eyhTAEe1chHafAMhP/3eIrBx50n8TAAAALeuqyHqpjacA2nkCYMM08+m/xT8AAEBr+1pq87MA2nkCID/93ymyYuQJ/y0AAAC0vCtTuREgT4G33RRAu04ArJPK0//TLP4BAADaRj4LYMHIke34k2/XCYDTI/tEVk8O/wMAAGgnV6YyBZDPAniqnX7i7TgBsFpk/8ivLP4BAADaTtcUwKHt9hNvxwmA/PR/v8jakXt99gEAANpOvhEgT4SvGnmxXX7S7TYBsHpd/P/S4h8AAKBtfSeyeOT97fSTbrcJgBMjH46sGbnPZx4AAKAtDYzcFVkglQfF49vhJ91OEwBLRw5K5fo/i38AAID2NS1yTGS5VM6IawvtNAHwrcjnIptEbvZ5BwAAaGuDI3dEhkTWikxu9Z9wu0wALBn5aOQSi38AAADClMj3IitH3tUOP+F2aQB8IDJ/5Js+4wAAAFR5i/iTka+kci6ABkCTy4c6fDxya+Ran28AAACqMancCLB+ZDsNgOa3dypbAP5fpNPnGwAAgG5Or42AT7T6T7TVDwHsOtQhj3LkQx2m+WwDAADwMt+NfDqyWeTGVv1JtvoEwM6RNSPHWvwDAADwGn4YmZTK4fEtq9UnAK6LvDmySmSczzQAAACv4WeRfVOZHv9HK/4EW3kCYKvI5pGTLP4BAAB4A/lKwEGRQ1r1J9jKEwDnRnaKrBB5ymcZAACAN/CnVB4krxh5utV+cq06AbB6ZLfIGRb/AAAAzKZ8JeD8qWwFaDmtOgGQD/37eCp7N/7mMwwAAMBsyDfI3RpZOLJaZGIr/eRacQJg0VT2bFxs8Q8AAMAcyLfH5QfKy0fe02o/uVZsAHwglZGN7/vsAgAAMId+G3ki8gkNgMY2JJV7G++OXOlzCwAAwBwaEzk5smlkEw2AxrVjKqc1/iiV0Q0AAACYUz+JTI4c1Uo/qVY7BPCqyJq1CTDGZxYAAIC5dHoqtwGsFHmkFX5CrTQBsH5k61RGNSz+AQAAmBc/TuVWgA+2yk+olSYAToocHFkj8oDPKgAAAPPo2lQmAFaOjGv2n0yrTACMiuwXucDiHwAAgB6SpwCWTC1yJWCrNAD2j4yInODzCQAAQA/JD5nzlYD5MMAODYD+NzhyWORvkct9PgEAAOgheew/nzO3WeStGgD9b9vIqpHjI9N9PgEAAOhBp0WmRg5p9p9IKxwCeH7kbalc/feszyYAAAA97LeR7SNvjjzdrD+JZp8AeFNkx8iZFv8AAAD0knwY4HyRfZr5J9HsDYCDUjkD4FSfRwAAAHrJVZH7Ioc38zq6mRsAwyMfitwcucXnEQAAgF6SzwA4KbJ6ZEsNgL63U2SZVA7/6/R5BAAAoBedHZkU+XCz/gSa+RDAS1K5hiEfwvCizyIAAAC97FeRXSMrRJ5stn/5Zp0AWDmV6/9+ZfEPAABAH8nbAIZG9mrGf/lmbQDsFxkYOcXnDwAAgD5yXeTeyKF1TaoB0Mtyt+XgVA7+u9PnDwAAgD6SDwP8SWSNyOYaAL3v7ZHlUhm9cPgfAAAAfSkfBjg5cmCz/Ys34yGAv09l//+bIs/57AEAANDHflvXpStGnm2Wf+lmmwDI1/7tGPmNxT8AAAD9JE+kLxjZrZn+pZutAbBHZEjkVJ83AAAA+smVkX9HPqgB0Ds6anH/HrnB5w0AAIB+MjFyemTjyDoaAD0vF3btyE9TOXkRAAAA+ssZ9XU/DYCel4s6PXKOzxkAAAD97L7IdXWtOlwDoOcsENk3ckXknz5nAAAA9LN8pV6eUF86so0GQM/ZPrJw5BSfMQAAABrE7yITIgdoAPScAyMvRi71+QIAAKBBPBs5P/LeyGIaAPMuj1PkCYDzIs/5fAEAANBAfpbKGQDv0QCYd++LDIv80ucKAACABnN15PFUJtc1AOZRLuLDtagAAADQSMZHfh3ZMrKSBsDcWzOyUS3mFJ8rAAAAGtDZkY7I7hoAc2/X+vornycAAAAa1C2R+1K5vr5h19mN3AAYFNkvcncNAAAANKJpkTMi60TW0wCYcxtGVkue/gMAAND48s11nZG9NQDm3B61eOf4HAEAANDg7o3cHNkrMkQDYPYNTuXwhOsjD/ocAQAA0AR+EXlTKhPtGgCzaeNatF/6/AAAANAk/pDKJPueGgCzb59atIt9fgAAAGgSj0Suqw2AYRoAb2x4LdbVkYd9fgAAAGgi+SD7pSNbaAC8sc0jiyWn/wMAANB88jaAKakcbK8B8AZykaYm4/8AAAA0n3+lsg3gfZERGgCvbUQt0jW1aAAAANBszowsEdlMA+C1bV6LdKbPCwAAAE0qT7TnyfaG2gbQaA2AnSPTIpf4vAAAANCk8kT79ZH3RoZqALzSkMgutUiP+LwAAADQxM6KLBXZSAPgld4aWSbya58TAAAAmtxFkempPOjWAHiZXWpxnP4PAABAs3s4ckNk18hgDYCZBtWi3BJ5yOcEAACAFnBuZIVUJt41AKp1IytGfuvzAQAAQIvoOuB+Rw2AmXaqr3/w+QAAAKBF3Bf5ayoT7/2+/m6EBkBHKncj/q0GAAAAWkE+5+6cyFqRNTUAUlollS0A59fiAAAAQKvI2wDyg+/tNABmFsH4PwAAAK3m1sgjkd01AMpeiP+kcgMAAAAAtJIpkYsim0WWbecGwOKRLVN5+j/J5wIAAIAWdH5df2/dzg2ArSJDazEAAACgFd0QGRPZpZ0bAO+JjItc5/MAAABAi3oxckVk28gC7dgAGB7ZMXJN5FmfBwAAAFpYnnxfJLJROzYA1o8skYz/AwAA0Poui0yPvKsdGwA71tc/+xwAAADQ4h6N3Bb5r/5ai/dnAyDv//9H5H6fAwAAANrAhZE1Iiu3UwNghVS2AOTx/2k+AwAAALSBS+vr29upAbBlpCOVPRAAAADQDvIWgGdSP50D0F8NgLz/P1//9xfvPwAAAG1iQioPwreJLNQODYBhqdx9eHXkOe8/AAAAbeSSyAKpH64D7I8GwHqRpVI5/AAAAADayVWpXAf4jnZoAHQdduD6PwAAANrNQ5G/RnZK5Wy8lm4A5DsP/5lc/wcAAED76UzlNoC1I8u3cgNg8cgmqTz9n+J9BwAAoA1dWtfjW7RyA2CDyNDIn7zfAAAAtKlbIpMi27VyA2D7VMYdbvJ+AwAA0KaejdyQykGAg1qxAZAPN8jdjbsjj3q/AQAAaGN/TOUMgNVbsQGwbGSdVPY6AAAAQDu7qr5u3ooNgE1TmQK43PsMAABAm7sn8nxkh1ZsAOTx/4mRW73PAAAAtLkxqZwDkG8CGNFKDYCBkW0id0ae8j4DAABAuiSyRGS1VmoA5IMNVo5c5v0FAACAGa6rr1u0UgNgk/q/dY33FwAAAGb4WypXAm7bSg2AbSKTI7d5fwEAAGCG8amcA7BVZHgrNADyyf9vr4v/p72/AAAA8JK8VX5UZI1WaAC8ObJq5ErvKwAAAMyi6xyAzVqhAbBBfb3K+woAAACzuDfyYiqT803fAMh7GaZE7vK+AgAAwCzGRW6KbBoZ0swNgI7aAMgdjce9rwAAAPAKeWJ+mcjKzdwAWCKydrL/HwAAAF5L1zkAGzdzA2C9yOBuPxkAAABgVvekciXgls3cAOg6xfB27ycAAAC8qmcid9cGQK+t03u7AbBN5KHIw95PAAAAeE3XpHIGwDLN2ABYMPKWyM2p3AIAAAAAvLq8dX5gKufoNV0DYJXaBLjG+wgAAACv6476ulUzNgA2qq+3eh8BAADgdT2ayhb6TZuxAbBFZELkXu8jAAAAvK7pkZsiG0RGNFMDIO9byPcX5qf/L3ofAQAA4A3dEFkoskYzNQCWSOX0wpu9fwAAADBb/lJf122mBsC69Z99o/cPAAAAZst9kbGRLZupAfDW+nqH9w8AAABmy/ORf6Sypb6jWRoAm0SejPzb+wcAAACz7fpUttSPaoYGwNDIW1J5+j/eewcAAACzLZ8DMCyyejM0AJapud77BgAAAHPk9vr6lmZoAKxVX2/1vgEAAMAceSgyOpVzABq+AbBZfb3X+wYAAABzJN8CcGcqZ+s1fAMgXwH4WORf3jcAAACYY3kbwAqRJRu5ATA4smH9l53qPQMAAIA5dmNkUGSVRm4ALJdKh+I27xcAAADMla4t9es1cgOg65qCO7xfAAAAMFfyQYDjIhs1cgMgX1PQGfmb9wsAAADmyouR+yLr9+S6vacbAHn//zORR71fAAAAMNduiawaWbARGwADI2tF/hGZ6L0CAACAuZavAhwWWakRGwCLRVaM3Ox9AgAAgHlyd31duxEbAHnxn68puNP7BAAAAPPkgcjUyLqN2ADoup7AAYAAAAAwb/L5eg+nchBgwzUA1oxMSeW6AgAAAGDu5af/90TWiAxttAZAHkvIIwrPe58AAABgnuUt9ktGlmmkBkA+mTDfAJDH/6d5jwAAAGCe5QmAjsibGqkBsGxk4chd3h8AAADoEQ/W1x65CaCnGgAr1n/W3d4fAAAA6LEGwORGawCsVV//6f0BAACAHvFiKmftrdFIDYD8LzMh8oj3BwAAAHpEZyrnAORb94Y1SgNg9VTuJ3zB+wMAAAA95r7IopGlGqEBkLsQK6dyAwAAAADQc7rW2is1QgNgsVQ6Efd5XwAAAKBHda21V2yEBsDKL/uXAgAAAHrGk5FJaebh+/3aAFihvt7rfQEAAIAe9UxtAjREAyCfRjg18rj3BQAAAHpUXm//PfLmyKD+bgDkLsQTkWe9LwAAANDj8sT9MpFR/dkA6EjlJMJHI5O9JwAAANDj8gTA0MgS/dkAWDiVGwBcAQgAAAC946H6unJ/NgDyFYALJAcAAgAAQG95sL6u1J8NgOVf9i8DAAAA9Kz/RMZGVu3PBkDX/7gbAAAAAKB35MV/Pntvlf5sAOT9B531XwQAAADoedMjj9QGwMD+agDkewifjDzv/QAAAIBek7feL1bT5w2AfAXgipF/RqZ4LwAAAKDX/CMyKM3DVYDz0gAYHlkhzbyOAAAAAOgd/6yvS/dHAyB3HfIVgG4AAAAAgN717/q6Qn80AJaqrw97HwAAAKBXPZ3K9vuV+rMBYAsAAAAA9H4DIB/Av2J/NADeXF+f9D4AAABAr5oceSyyXH80AHLXYVzkWe8DAAAA9Lp8EGA+BHBYXzcAVog8F3nBewAAAAC97uHI4pEF+7oBsGzk8chU7wEAAAD0ukcjg1K5la/PGgDzp9J1cAAgAAAA9I2uqwCX6csGQB43WEwDAAAAAPrMv+rr0n3ZAFi0/r2PqT8AAAD0if/0RwOg63/scfUHAACAPjEmMjrypr5sAHTdO/iU+gMAAECfNQCe6rYm75MGwJL19Un1BwAAgD6Rb+F7OpVb+fqsAZBPHJwQeU79AQAAoM/krfijIkP7qgGwVCpjBxPUHgAAAPq0ATAyskhfNQCWrQ2ASWoPAAAAfSZfBZif/i/YFw2A/PfkCYCn1R0AAAD61L/r68J90QBYILJQ5Al1BwAAgD7VdRvf4n3RAMhdhuEaAAAAANDnug7jX6avGgD57/u3ugMAAECfeiHSmfpoAqDroIH/qDsAAAD0qWcik1M5m6/XGwBLdPsfBQAAAPrO+FSmAPpkAqCrAfCiugMAAECfmprKQYCL9VUDYHpktLoDAABAn3s6MioysLcbAHnMII8cmAAAAACA/msADOntBkAeM5iQTAAAAABAfzUA8g19Q3u7AbBIKgcATlNzAAAA6HPPpjL+v1BvNgA66v+AGwAAAACgf3StyRfuzQbAkPo/8Kx6AwAAQL94vr726gRA3l8wUgMAAAAA+s0zfdUAmF8DAAAAAPrNc33RAFiw/j0aAAAAANA/xvZVAyBzBSAAAAD0j3GRzsgoDQAAAABoXZNqRvZFA+A59QYAAIB+MSGVbQC9eg1gVwNgjHoDAABAvzUAxqc+mgCwBQAAAAD6x5TaAFikNxsA89fXseoNAAAA/SYfBLhAbzYA8nhBPmlwkloDAABAv3kxMizS0VsNgDwBMDGVcQMAAACgf7wQmS8ytLcaAHkCII8ZmAAAAACA/pO35g/vzQZA7i6YAAAAAID+NaYu/gf3VgMg3wKQTxo0AQAAAAD9p88mAKarNQAAAPSb0ZGBfdEAAAAAAPrPuPo6SAMAAAAAWr8B0CsTAPnHDknlDAAAAACg/3Q9nB/eGw2AvPjPpwuOVWcAAADoV5Pra69MAAyqsQUAAAAA+lfXdP78vdEAyE//8xTABHUGAACAfjWlvvbKBMDk2gQYrc4AAADQrybV12Gz+zfkkf51I19Kbzw2MKxm18iab/Bj8zaB4yJXe08AAACgx3VNAAyekwbAdzsnjt9h2mMPpjRwtq4PfHPNq5s2NQ1caoXUMd8Cq8X31u/2LwUAAAD0jK7p/IFz0gB4tHPK5PT0tw5Pkx+4MXUMG5nKzoDp9Ye81rfL9zs7p6eOjvrdKRPTwEWWS0uecFkaON8CT7zsBwMAAAA9Y536ulfkrDQb5/XlFf2xAxYYOW7kPh9PKS/mBwyNrw6MDK4p3+6o3+6Y8e2h9WsD40uDX/qxnZPHpYV2PiQNXGyZ/M/+dmSa9wQAAAB61IjI16ZPHJ/S9Ok7xrc/ODt/U24A3Bc5dfg2O6dhG+yUpk96MXV0DHgp+YfMeO2Y+Zo6Uv32wPr9+GtTJqXBy6yTRrx7v/zPvSJymfcEAAAAety+kVVe+L8vpEm3Xpm//9nIIrPTAMh+kAYNGr3Q7oenNH3KjEmA7jo7X/ntzhnfLt/JOwCmT34hLbjroWnAwovnp/7HeD8AAACgx+V9+5+d8vfb05jzf5zGXPCz/LVlI4fMbgPg4chPh262Qxq+3g5p+qQxLy30OzrSzD3+aea3u740oxEweUIavMJGacROuQmRLoxc5T0BAACAHndQZKUxZx8/4+H9uBv/kCb99ab89SMjC89OAyA7rmPgoNEL7nnojCmAjlf80Jlf6ezWDOiY0QB4IY3c47A0YIGR+cT/r3s/AAAAoMctFvnU5DuvS+Ou/k0aMN8SKU0ancace0L+a/kwvg/PbgPg4chPhm66Qxr+1nelzgnPlcV+58xlf2dd/Hd0bwZMGpeGrLJlGrb9nvm7v4nc5j0BAACAHndYZOkxZ5+Qpk8eN+Ncvo4Ri6bx156fJt15Xf7rR9UmwRs2ALLvdwwc9PTIfeLvGTjrFX8vbQl4qR1QvtY5ZXRaaNcPpQHD5stP/7/j/QAAAIAeNypyxOQ7rp0x9j9gxCIzVuYdHYNT59RxafSvfpi3BCwdXzx6dhsAT0Z+MGTDbdJ8W+6R0vjnZiz5Zzz170izbAuY8e3JY9KQVTZPw96xW/7eeZE7vCcAAADQ4z4SWWLMOSelNG18uZVvhs7UMXxUGn/TBWni9X/KX/hoZIXZaQBk8U9Ljy+w++Gpc+h8qeOl8wA66j+6bAaY8fR/6ti00J4fyU//J8SXv+n9AAAAgB6Xn+x/dPItf07jbvx9SsMXTbNs0+8oq/vR5x6fOqdNXSi+97HZbQD8f/buBN7zsewf+H1m38e+7ztZs+9bKZIQkiyFCu3antS/52lfpYVCm4pIWklUyBJStiKKJPvOGGZj5vyve+77mIPBnJnzO+e3vN+v18fPnFnP9f2e5b6+95If+39jxHqbp3Fb7pFmTn34ma5CTxug5+n/qHVfmUbvNPvp/6mRG1wTAAAA6Hfv6541c/HHzvhGSjOfigH/kDnD9Lpcf8jIhdK0a/+Qpl/5u/zDfFLASvPSAMhOjtwzYZ8jU9fwcbOPFuj1587eGyDNnJYmvvE98fMjH483fdb1AAAAgH63WuTI6Zeek6b+9TcpjV7k2Sfz9azVz02BIUPT42edlGcBTEhzmQXwQg2APAvg2OHrbZ7Gbr9PmvXkQ3Oe/Oc9AaY/lkZvuGsaueUu+Q3fS+UEAQAAAKB/HZ2efmrspJ+eGGP8IXV/vq7n/aK8TL9r5MQ07drfpmmXnZvfdGhtHrxkAyDLswBuzU/5h4xbInXPerq2AOJPnZXS+H2PSF1Dh02KN3zV9QAAAIB+lwfwB03907lp2g0Xpq5Rizxv0N+jq+c/Q4enSWd8LXXPmDY+fnTMvDYAnoh8dthq66Vxr9w/dU95sCwDmPZIGr3RLmnkFq/Mv+b7kf+6JgAAANDvjk5Pzxg3+az89H9476H/M6P+Z5bq10kBXSMXStNvvChN/f2Z+Ydvimw4Lw2A7PTIP8bv/bY0ZMJys9f9pyEj08Q3vjs//X8wfu5Y1wMAAAD63bqRQ6Ze+Is09e/56f/E5/2Cruf8/zN7A4wYlyb9/Dtp1tQnRsQPPzyvDYAY8acvDVtxzTT+FfummQ89nMZs+uo0YtMd88/l4wLvck0AAACg331w1rQpYyblp/9DR85+Q57y3/3cX9X9/IZA14jxacYtl6VpF/w8/zAf3bfhvDQAsjMiN43b8/A0ZPHF04Q3vDMfOXB3svYfAAAAGmGTyP5Tf3dGmn7zxSmNHD9nhN/97OF+V9fcfntX6hoxIU36xclp1rQpee3Ah+e1AZBnAXxm2Eprp6X+3w/S8PW2yG/7euRh1wQAAAD63Ue6n3x8xOSffXv2QP6ZcX/3Cw34n70hYP6FeRnAjFsuT1PPzyv7Z88C2Lyru7t7Xv7yoZELI9tFbo1sFnnUNQEAAIB+tWXk0smnfXXog196Xxo6Ib+pa77+oFnTu9PwpVdJy5x8SRqyxLLnDJvH3zcz8sHInyPHG/wDAABAQ7yhe+bMoWnGtLTw/u9IXcOHl8f/PT2A7nnoB/R6zj9r2pPpqbtuTSOXWHa3YX34RzziOgAAAEBD/aFr6NDDxr/lf8b18597cV8aAEOf8woAAAD0r3MiG0QWeYlft2LkrFT26PvRPPy5N/WlAfBUfR3regAAAEDD3FbzYh6vr/+I/HVe/tAhffgHzJqP3wMAAAD0v54lAvO8Q2BfBvN5BsCMyBh1BgAAgEE1sr5Oa0QDYGbNCHUGAACAQdWzpH9GIxoA+Q/NswBGqzMAAAAMqlH1taEzAIarMwAAAAyqEY1sAOQZANPTnI0GAAAAgMHR0D0A8uA/LwFwDCAAAAC0cQOguzYARqkzAAAADKqe/fmmNKoBMDU5BhAAAACapQHQkBkAWe4smAEAAAAAg6tnf76GHAOYPZFKl2GIWgMAAMCgyfvz9SzVb0gD4PHaAHAUIAAAAAye8alM/5/eqAbA5NoAGKHWAAAAMGjG1QZAw2YA9DQAzAAAAACAwTMxlY36G7YJYM8SgJFqDQAAAINmfG0ANGwJwKTIsGQJAAAAAAymCbUBMKtRDYAn6usYtQYAAIBBbQA82ZffMD9LALLxag0AAACDIo/l84P5RweiATBRvQEAAGBQjEplf75JjWwATK6vC6k3AAAADIo8+M/HAD7SyAaAJQAAAAAw+A2Ahi8BeKy+LqzeAAAAMCjyEoChaYD2ANAAAAAAgMExtr4+3MgGwPTItGQPAAAAABgsi9TXxxrdAMh/wRLqDQAAAIPaAHi80Q2AfMyAJQAAAAAwOBatrw2dATAzlWMGFldvAAAAGNQGQENnAGR5l8HFIl1qDgAAAAMuj8m7U4NnAGR5l8Fxac6ugwAAAMDANgAmR6Y0ugHwQGRMZKKaAwAAwIDLy/IfisxodAPg/shwDQAAAAAY1AbAU41uANxXXyeoOQAAAAyoIbUB8PD8/Ma+ur++LqTuAAAAMKBGp7IHwP0D0QDo2WVwaXUHAACAAbVQbQLcNxANgEkaAAAAADAoFq5j+QFpADwSmRZZSt0BAABgQC1WX+8diAZAXgLwZGRZdQcAAIABtUh9HZA9AJ6qf9GS6g4AAAADqmc2/iMD0QDI7oksERmm9gAAADBglos8neZs0N/wBsBdqcwAGKP2AAAAMGCWiTw+kA2AuyMTIuPUHgAAAAbMCpFHI5MHqgFwT321DwAAAAAMjCF1HH7f/P7m+XGvBgAAAAAMqLwMf/HI7QPZALizvi6j/gAAADAgxkcWjdwxkA2AByPdGgAAAAAwYBat4/i7BrIB8HjNSuoPAAAAA2K5+nrvQDYA8m6DD2gAAAAAwIBZvr4O6AyApyP3p3L8AAAAANB4gzIDIPt3KusPJrgGAAAA0HArRh6NTBroBsB/IgvXJgAAAADQWCtH7ok8ORgNgK5UziAEAAAAGqerNgDujswa6AZAz6YDK7oOAAAA0FCL1vxnfv+ABWkA9Gw6sLLrAAAAAA2VZ9+PSWU/vkFpAMyIrOo6AAAAQEMtWV9vG4wGwORU1h5YAgAAAACNtUp9vWswGgAzU1l7kJcADHUtAAAAoGFWT2Xzv3sHowGQagNgpcg41wIAAAAaJi+/nxS5f7AaAP+KjIgs61oAAABAQ/QcAZgfwk8frAbArfV1GdcDAAAAGmJ0bQDcsiB/yII2AHqOH1jJ9QAAAICGWCSy6GA3AB5I5SjAtV0PAAAAaIiV6uutg9kAeKg2AdZxPQAAAKAhVmmGBsBTkdtT6UY4ChAAAAD63xqR7shdg9kAyG6ILB9ZyDUBAACAfrdm5MHIw4PdAPhnZGxkKdcEAAAA+l2eAXBb5InBbgD8q76u7poAAABAv8qz7VdMC3gCQH81AHr+Eau5LgAAANCv8mz7iZG/N0MD4P7Ik8lJAAAAANDfVq6vNzVDAyCvQchHEaznugAAAEC/Wqu+/qcZGgCzUtkIMC8BGOXaAAAAQL95WWRKWsAjAPurAZDltQh5Y4LlXRsAAADoN3m5fT4B4PFmagBkK7o2AAAA0C/yLPu1U1n/390sDYDb6qt9AAAAAKB/5Fn2ebb93/vjD+uvBsCdqZwEsKHrAwAAAP2i5wSAvzVTA+CxyO1pzu6EAAAAwIJ5WX29pZkaANn1kdUj41wjAAAAWGAbRyalfjgBoL8bANdEFo4s5xoBAADAAsszAG5P/XACQH83AG6qr+u4RgAAALBA8uZ/q0Su7q8/sL8bAN0aAAAAALDA8gkAEyLXNWMD4L6aTVwnAAAAWCDr1dd/NGMDYGrkxvqPHOpaAQAAwHxbPzIrzVlu31QNgCyfTbhCZGnXCgAAAObbyyP/jTzYrA2AvDnBsMiqrhUAAADMl1GRDSM3RJ5q1gbAjfX15a4XAAAAzJc8s37xyF/68w/t7wbAbZEnU+lUAAAAAH23Wn29uj//0P5uAEyOXJ/KDIAu1wwAAAD6bONId+RfzdwAyPJGgGtGFnXNAAAAoM82izwUub3ZGwB5jcLwyFquGQAAAPRJHk/nIwDz9P+nm70B8Nf6up7rBgAAAH2ybCqbAF7Z339wIxoA+ZzCSZGtXDcAAADok/Xr6zWt0ADIg/9/RDZt0J8PAAAA7WqTVDYA/FsrNACyKyIrR5Zy7QAAAGCebRm5M3JvqzQA8j4AI5KNAAEAAGBejU5lCcB1kRmt0gC4tr5u4foBAADAPFklskTk0kb84Y1qANweeUADAAAAAOZZwzYAbGQDYFrkqlQ2AhzhGgIAAMBL2joyM3JjKzUAsrwRYN4EcBXXEAAAAF7SVqmcqvdAqzUArqqv67uGAAAA8KIWi6ybysP07lZrANyQyq6F27mOAAAA8KJeFhkeuaxRf0EjGwD3RW5K5QzDLtcSAAAAXtBm9fWaRv0FQxr8DuTORZ7CsJhrCQAAAC9ox8j9kdtatQFweSqnAGzoWgIAAMBcjYlsEvlzZGqrNgD+Ul+3dD0BAABgrlaNLB65pJF/SaMbAP+N3BHZ3vUEAACAudqivl7Zyg2AfApAPsIgT2WY4JoCAADA82wbeTyV0/RatgGQXVgH/2u7pgAAAPAsQ1OZNX9tZFKrNwB69gHYynUFAACAZ1klskLkj43+iwaiAXBT5KFUjjQAAAAA5ti0vl7aDg2AafUd2TqVow0AAACAYuc6br6+HRoA2UWRRZJ9AAAAAKDHsMh2kWtSmTnfFg2Ay+qrfQAAAACgWDGyWuSCgfjLBqoBcHPkgcguri8AAADMtkV9vbidGgBTI1dEtoyMc40BAABg9mb5UyLXtVMDIPt9ZNHIOq4xAAAAHS6v/98pcnXk4XZrAPTsA7C96wwAAECHWzWyUuR3A/UXDmQD4KbIvZFXus4AAAB0uG0iXWmA1v8PdANgRuTCyNaRia41AAAAHSw/HH8icn07NgCy8yNjIhu71gAAAHSoUalsAHhJ5PF2bQDkkwC66zsKAAAAnWjdyBKRPwzkXzrQDYDbIv+K7JrKWgcAAADoNNvW1wvbuQEwK5VlAOtHlnbNAQAA6ECvjdyVymb5bdsASLUBMDyVHQ8BAACgkywS2SxyUSqb5bd1A+AvkSmR3Vx3AAAAOsymkbGR3wz0XzwYDYAHaxPgFZERrj0AAAAdJO+J93Tk0k5oAGRnR5aNrOXaAwAA0CGGRl4TuS5yT6c0AHqOOnil6w8AAECHWDWyWuR3g/GXD1YD4B+p7Hi4u+sPAABAh9i5vp7bSQ2Ap+o7vEVkcfcAAAAAHWCPyEOpLAHomAZA9tvIqMhW7gEAAADa3EKRbVKZ/v9kpzUALk/lOMA93QcAAAC0uS0j41LZFH9QDGYD4IHIFZFXpzITAAAAANpVPv5vRuSSTmwAZL+MLBXZ0L0AAABAmxoWeV3kL2kQjv9rlgbABfX1Ne4HAAAA2tS6kRUivxrMf8RgNwBuTuVIwL0iXe4JAAAA2tBu9fW3ndwA6E5lA4SXRVZzTwAAANCG8vT/WyM3dXIDIPtlfX2VewIAAIA2s0pks1Sm/8/s9AbA9ZH7I3u7LwAAAGgzO9XXcwb7H9IMDYCpqcwCyGciLuXeAAAAoI3sE3kgcpUGQPGLyKjILu4NAAAA2kR+yL1D5DeRKRoAxZWRxyN7uj8AAABoE9tHRqY5e99pAIRJkfMjr4gs5B4BAACgDeS97iZHLtUAeLYzIuMj27lHAAAAaHETI7tFzos8qgHwbJeksibiDe4TAAAAWlye/j8u8tNm+Qc1UwPgocjvIq+JTHCvAAAA0MLyw+186t0fNQDm7uepTJPY1r0CAABAi8rL219VB/8PagDM3e8j0yL7ul8AAABoUXlvu0UjpzfTP6rZGgD3RS6KvDZZBgAAAEBr2i8yPZVl7hoALyKfBrBIZBv3DAAAAC0mT//fI3Jh5H4NgBeXOyQzIvu7bwAAAGgxefr/QqnJpv83awPgvtoEeF2yDAAAAIDWckAqe9v9rtn+YUOatGCn1sH/9u4dAAAAWkQ+1S4fbf/b1GTT/5u5AfCHyJPJMgAAAABaxw61CXBaM/7jmrUB8HDk3MjuqWwICAAAAM3uwMjkyAUaAH2TTwPIywB2cQ8BAADQ5JaI7JbKw+zHNAD65oJatIPdRwAAADS5XSNjUtnTrik1cwNgUuSsyCsiS7uXAAAAaGJvjDwUuVADYP78ODI8sod7CQAAgCa1QioPr/ND7CkaAPPnisidkUPcTwAAADSp10WGRk5v5n9kszcApqUyC2CLyJruKQAAAJpwXJ0fWt8WuVwDYMGcGemK7O++AgAAoMmsG9k4lc3/ntYAWDDXRq6PHJDKlAoAAABoFvvV1580+z+0FRoA3ZEfRNaIbO7eAgAAoEmMSOXo+qsiN2kA9I+fRWYmmwECAADQPLaLLB/5bioPrzUA+sEdkfMjb4hMcI8BAADQBN6cyub1Z7fCP3ZICxX2e5GJkd3cYwAAAAyyxSN7RX4TuVcDoH/9LvJI5FD3GQAAAINsj8iYyLdb5R/cSg2AyZEfRXaOrOZeAwAAYJDko+oPj9wVuVQDoDFOrf/m/d1vAAAADJL1I1tETolM0QBojKsj10QOiwx3zwEAADAIDqivp7fSP7rVGgD5WIWTIitFtnXPAQAAMMDGprL7f576/w8NgMb6ZWR6KrMAAAAAYCC9OrJE5Fut9g9vxQbAA5GfRfaOLOPeAwAAYAC9NfJo5FwNgIFxYmRUZD/3HgAAAAMkn0j3yshpkUkaAAPj8shNkbdHhrkHAQAAGAAH13H091vxH9+qDYCZqWwGuFZka/cgAAAADTY6cmjkL5FrNQAG1k8iMyJvcx8CAADQYK+KLBv5eion1LWcru7u7la+AHndRd4McJXIve5HAAAAGuT3kU0iK0cea8V3YEiLX4C8DCBvBvhG9yIAAAANkpefvyKVtf+Pteo70eoNgD9F/h45MjLCPQkAAEADHFxfv9fK70SrNwDyZoAnpHIUw47uSQAAAPrZ+MhbIxdHbtAAGFxnRSZH3uW+BAAAoJ/tEVkslc3/WlqrbwLY4/jIOyJrRv7l/gQAAKAf5IfmV0aWi6wamdrq70w7OKm+vtX9CQAAQD/Ju/5vmspD56mt/s60ywyA7ILIBqkcCfi4+xQAAIAFdErkgFSe/t/Z6u/MkDa6MN+ILBp5vXsUAACABbRsKkfOn9UOg/92awCcH7k98p42e78AAAAYeIekctz8Ce3yDrXTQHlqvTB5GcB27lUAAADm09jIkZGrIldoADSnU2oj4Gj3KwAAAPMpH/2Xd/4/LjKrXd6pdtoEsEeeBXBUZI3ILe5bAAAA+ig/+V8+slrkyXZ5p9pxrfyJ9fUd7lkAAAD6aKtUjv77RjsN/rN2nAGQnRvZMrJ65CH3LwAAAPPoF5Fd6njynnZ6x9p1t/yvRBaKHOzeBQAAYB7lpeS7R37cboP/rF1nAOTGxvWR8ZG1U9kYEAAAAF5M3vTvvZH1Ije040C5HeVdGr8QWTGV7g0AAAC8mCUjh0XOa8fBfzs3ALK8buP+yIfa/P0EAABgwR2YyizyL7TrO9jOA+O8W+OXI5tEtnEvAwAA8ALGRd6TylLyizUAWtMPI1NSmQUAAAAAc7N3ZPnIZyLd7fpOtusmgL3lWQDvj2wcucZ9DQAAQC/DIlenMv1/rciMdn1HO2Ft/PGpdHDe5b4GAADgOfLG8euncpz8jHZ+RzthBkCWz3DcL5UjAW9xfwMAAFBdElkjslrkiXZ+Rztld/zPRYYmswAAAACYI28Yv23k5HYf/GedMgMg+1Vk58gqkQfc5wAAAB3v/MhWqcwAuLfd39khHXRh82aAY5NZAAAAAKS0UWSXyAmdMPjPOmkGQHZRKqcB5LUdZgEAAAB0rlNT2Ssujw/v6IR3eEiHXeBPpHK0w6HudQAAgI6Vj/t7U+S0Thn8Z502AyC7MrJCZPXIk+57AACAjvODyIGRdSM3dco7PaQDL/RnI0tHDnbPAwAAdJy16+D/1E4a/GedOANgeOTayMTImpEp7n8AAICOcVLk8MjLIjd30jveiTMAnop8MrJc5BD3PgAAQMdYNfLmyBmdNvjPOnEGQDYscn0qGwLmzR/MAgAAAGh/x0feEdkkcnWnvfNDOvSiP53KiQDLJ7MAAAAAOkHeCy6fCPfzThz8Z506AyDLewFck8peAHkTCCcCAAAAtK8vRj4Y2biOBTvOkA6++HkvgE+lMgvAiQAAAADtK+8Bl6f+/7xTB/9ZJ88AyPJeANdFJiSzAAAAANrVCZGjUgc//c+GdPhNkPcCyCcCmAUAAADQnlZO5di/n3Xy4D/r9BkAWc8sgHwiwDrJLAAAAIB28q3I21N5+n9tJxdiiHvhmVkAK0QOUg4AAIC2kY99f1vkh50++M/MACjyLICrIkumMgtgkpIAAAC0vDzwPzCVPd/+2enFMAOgyLMAjoksEzlSOQAAAFreWnXw/yOD/8IMgGe7KPLyyOqRB5QDAACgZeWB/wGRl0VuVg4zAJ7rE6kcCfhOpQAAAGhZm6by9P9bBv9zmAHwfH+IbJbKdJF7lAMAAKDl/D6yZWS1yH3KUZgB8HwfSeVIwI8pBQAAQMvZJvKKyDcM/p/NDIC5Oz2yX2TNyK3KAQAA0BLyQ+5L61gur/2/X0meXRye79P19X+VAgAAoGW8LrJV5HMG/89nBsALy5tFHBHZPHKVcgAAADS14ZGrI4umMgPgCSV5NjMAXlieBTAtlZMBAAAAaG6HR9aLfNTgf+7MAHhxefD/8ciukfOUAwAAoCnl49z/EXk0smFkppI8nxkAL+7YyEORz0SGKgcAAEBTel9k2cgxBv8aAPPr8cj/RV4eOVA5AAAAms6SkQ9E/hg5WzlemCUALy1vJPG3yOhUjpF4UkkAAACaxsmRt0a2iPxZOV6YGQAv7anIhyMrRt6rHAAAAE1jvTr4P9Xg/6WZATDv/pjKUoB1IncpBwAAwKA7N7JzZO3Ibcrx4swAmHcfjIyP/D+lAAAAGHSvTuXEtq8Y/M8bMwD65pTIIanMBLhWOQAAAAbFiMhfIktE1kxlA3deghkAffPxyLTIF5QCAABg0OQHs+unMkPb4H8emQHQdx+LfCqyZ+RXygEAADCgFovcHLkzslkqG7ejAdAQeR+AfCzgjMiGkalKAgAAMGCOjRwd2TGVzdqZR5YA9N3kyEcia0TepRwAAAADJp/K9p7Izwz++84MgPmXb7aN6w14p3IAAAA03DmRV9RxmJ3/+8gMgPn3gci4VPYDAAAAoLF2j7wm8iWD//ljBsCC+VbkiMjWkcuVAwAAoCFGR65P5fi/DSKTlKTvzABYMP8beThyXGSocgAAADTEuyOrpzIT2+BfA2BQPBD5eCpHTxymHAAAAP1u5VQevl4UOUs55p8lAAtuWOSqyPKRdSP3KwkAAEC/+Ulk38hGqSwDYD6ZAbDgno68N7JY5JPKAQAA0G9eFdkv8jWD/wVnBkD/OSVySGTLyJXKAQAAsEBGRa6JLBRZO1n7v8DMAOg/H4k8mkpnyoaAAAAAC+Z9deBv4z8NgKZzb+SYVDYEfJtyAAAAzLdVUtlw/Q+RHytH/7AEoH/lJ/9/iqyTSqfqbiUBAADos7Mju0bWi9ykHP3DDID+NTOV8ynHRz6vHAAAAH22Z2T3yBcM/vuXGQCNcVwqJwPkjtV5ygEAADBPJkb+Hpka2TjyhJJoADS7hetN+0S9aZ9UEgAAgJf0lVQ2/3tN5Fzl6F+WADRGPg3g6MiakQ8pBwAAwEvapA7+Tzf4bwwzABrrV6l0rvIsgOuVAwAAYK7yhuqXR1aPrB+5S0n6nxkAjZW7V9Mix0e6lAMAAGCu8h5q+Uj1Dxv8N44ZAANzI+dNAd8ZOUE5AAAAnmXlyI2Rv0R2iBikagC0rGGRiyMbRNaJ3KEkAAAAz8jr/V9Vx0w3KEfjWALQeE9H3hEZG/macgAAADzjoFSOT/+EwX/jmQEwcD4TOSbypsiPlQMAAOhwS0f+Frk7lfX/M5REA6BdjEplTctSkZdFHlASAACgg+UHo2+MbJ3KCQA0mCUAAyefBnBUZLHIF5UDAADoYPvUwf9xBv8DxwyAgfeNVE4EeG3kHOUAAAA6zKKRv0cmR14eeVJJNADa1cTItZGRkfUijygJAADQQb4feXNku8ilyjFwLAEYeJMiR0SWiXxZOQAAgA7y2jr4/4bB/8AzA2DwfDNyZLIUAAAA6AyLpLLr/1ORDSKPK4kGQKfISwGuiYyIbBh5WEkAAIA21jP1f5fI75Vj4FkCMHjyUoA8A2C5yJeUAwAAaGN71MH/1w3+B48ZAIOvZylA/oA4WzkAAIA2s1TkulQegm4UmaIkGgCdakLkL/U1fzDcpyQAAEAbOS1yQGT7yCXKMXgsARh8eeOLQ1Ppih2vHAAAQBvZrw7+jzP4H3xmADSPz0Y+EjkocqpyAAAALW75VKb+3xPZPJn6rwHAM0ZH/hxZIZVTAW5XEgAAoIWdG9k1slkqy54ZZJYANI+pkUMiYyInR7qUBAAAaFFH1MH/xw3+m4cZAM3ng5EvRo5OZZ0MAABAK1kncm3kqsjOkRlKogHAC1yTyPmRnSIbR65XEgAAoEWMiPwxlRPO1o/coiTNwxKA5pM7Mm9PZUnAD1LZGwAAAKAV5Cn/W0beY/CvAcC8+U9tAmwQ+bRyAAAALSBP9/9o5Kep7GtGk7EEoLnlGQAHR3aP/EY5AACAJrVo5K+pLAHIU/8fVhINAPpmYuSaVE4GeHnkXiUBAACa0GmRAyKvTmVPM5qQJQDNbVIqRwMuFTlROQAAgCZ0aB38f8Hgv7mZAdAa/l/kk5H3Rr6mHAAAQJNYK5VZyzdGtk6O/NMAYIENS6WTtkNk81TW1gAAAAymUZGLI+tGNoncpCTNzRKA1vB05M2pLAn4UWSCkgAAAIPsM5HNIkcZ/GsA0L/ujByWyhQbywAAAIDBtGfk6MgPUzm9jBZgCUDrOS6VvQDe7AMNAAAYBCtEro88GNk4MllJNABojJGRy9KcdTY3KgkAADBA8v5kv49sE9kicrWStA5LAFrP9MhBkZmRUyNjlAQAABggn0hlc/L3GvxrADAwbo4cHtkwlSUBAAAAjbZ75JjIGZETlKP1WALQ2vIHXd5x85BUNt8AAABohBVTOY78sVR2/n9USTQAGFijIxdFNqgfhH9XEgAAoJ+NSGXd/1Y1f1GS1mQJQGubmsp+AE9HfhwZryQAAEA/+3Rku8g7Df41ABhct6RyJGA+FeCbygEAAPSj/SIfTGXJ8UnK0dosAWgfn498OPKuyPHKAQAALKC1I3+O/DeydeRxJdEAoDnk8zjPj+wY2T5yqZIAAADzaVwdU6we2SJyg5JoANBclolcE3kqsknkfiUBAADmwympnDb2xlSO/aMN2AOgvdwT2T+yXCprdIYqCQAA0EfvqYP/Yw3+NQBobn+MvDeyS+SzygEAAPTBDpGvRi6IfEQ52oslAO3rB5GDI29K5YhAAACAF5NnEl8VmRnZNHKfkmgA0BrGRv4UWSOyVeQ6JQEAAF7AiMgfItvUXK4k7ccSgPb1ZGSfyPTIWZFFlAQAAHgBX4tsGznS4F8DgNZ0aypLAFZNZUmATQEBAIDnOqLmhMhJyqEBQOs6N/LhyO6RzygHAADQy/aRb0UujhytHO3NHgCdo2dTwIMipyoHAAB0vBUjV0aejmwRuVtJNABoD2NS6eptENmufqADAACdaXQqR4hvHNk68mclaX+WAHSOKZHXRyalsingckoCAAAdK6/13yxyuMG/BgDt6Y7IvpGlI2em0vUDAAA6y8dSWRr82cgpytE5LAHoTIdGvls/2N+iHAAA0DHeEDkj8ovI3srRWYYpQUf6XmSNVE4H+Gfk80oCAABtb9NUNge/IZWHgnQYMwA6V17+8dNUun771f8HAADaU94D7IrIqMhWkVuURAOAzrJQ5MLIepFtks0/AACgHeUTwX6fyqZ/r0xl9386kE0AO9tjqawBeijys8jySgIAAG3n+6k89X+rwb8GAJ0tT/3JJwMsmcpGIOOVBAAA2kbe6X+/ZMd/NACoLkvlNICNU+kODlUSAABoeYdHPhI5NfJR5UADgB49nxReH/micgAAQEvbJfLtVKb8v105yGwCyHPlTxK5U3h05DjlAACAlrNBKrN874nsWF9BA4DnGRY5O/LqyP6RnygJAAC0jBVSOelrsVRO+rpBSdAA4MUsHLkosk4qHcM/KQkAADS9cZE/RDaP7FS/p4dn2AOAuXk0lb0A7o/8OrKWkgAAQNOP7c6og/9DDP7RAKAv/h3ZKzIq8svIMkoCAABN64TIayLHRH6oHGgA0Fd/jewTWTPyi8hYJQEAgKbzicgRka9EPqccaAAwv34bOSyyWeS0VDYJBAAAmsNRkY9Hzop8SDnQAGBBfS/ywcjrUplaBAAADL6e78/zxn8HRmYqCS/G01zm1Zcjy0beG3ko8lElAQCAQbNz5MzI9ZEDItOVhJfiGED6Km8oclDk3ZFvKAcAAAy4dSNXpHJ611aRu5SEeWEGAH11eGTxyNcjkyOnKAkAAAyYNSLnRJ5KZQmAwT/zzAwA5sf4yPmRLSN7RM5WEgAAaLilIhdHVo5sn8osAJhnNgFkfuQn/3tH/hX5aWQ7JQEAgIZaqH7vnWcAvMHgHw0ABtJ9kV0jd0d+E9lUSQAAoCHGRH4W2SbypsgvlAQNAAbabaksAXiqNgFWVxIAAOj3MVveiHunyLsiP1YSNAAYLDdGXptKVzJvRrKikgAAQL/oipwUeX3kfyPHKwkaAAy2P0V2T2UzkvMiyyoJAAAssDz4z6dwfbIGNABoCn9MZWPAtVI5FWCikgAAwHz7UuStkW+m8vQfNABoKnkJwMGRjSK/jIxVEgAA6LNjIh+I/CjybuVAA4BmlT9J5WlKO6RyTIkmAAAAzLv3Rz4TOT1yaGSmkqABQDP7buTIVI4JzE2AMUoCAADzNPj/cuTnkUMiTysJGgC0ghMj761NgHxUyQglAQCAF/SOOvjPy2oPTOWobdAAoGV8LfJ/kdfVJsBIJQEAgOc5IpUj/i6NHBCZqiQ0wjAloME+kUqj6eORaZGDIt3KAgAAs+Xvj78VuSKyR2SykqABQCvLx5aMjnwwMiXyNiUBAIC0X+SHkb+mMmv2MSVBA4B28KH6mpsAeQbAEclMAAAAOnvw/5M6+H9N5EElQQOAdmsCdKVypmleFvBWJQEAoIMH/9fUwf8DSoIGAO3og/U1NwFmRd6uJAAAdJB907Of/Bv8owFA2zcBuutrV20CWA4AAEC76z3tf7dk2j8aAHSI5y4HODI56xQAgPaVd/vPG/5dnaz5RwOADtR7JsBCkTdFpisLAABtJm+AnY/6M+0fDQA6Wp4JkPcC+HAqMwEOTOWoQAAAaAdHRU6IXB7Zy+CfwTRECWgC/xP5RP2EeFZkrJIAANAG3l8H/5dEdjf4Z7B1dXfbe42m8b7IVyK/jeyTzAQAAKC1B/9fjvwmlVmujykJg80MAJrJcalMkdo18qvIRCUBAKAFHVMH/3l26z4G/zQLMwBoRodFvhO5on7CvEdJAABoEZ9PZX+rfNxf3vnfSVdoAMBLODTy3cjNkVdH/qskAAA0uRMjb4/8KJWHWgb/NBVLAGhW34vsF1k1cn5kFSUBAKBJDY18uw7+vxF5s8E/GgDQNz+N7BZZPnJxZGMlAQCgyYyJnBE5PPLpyLtTOeYamo4lALSC7SPnRGZGXhu5VEkAAGgCedPqn0d2inw88ikloZmZAUAryE//d45MjpwX2UVJAAAYZEum8pAqD/7fafCPBgD0n6siO0TuTWVPgIOUBACAQbJGKg+ptom8KXKCkqABAP3r36nMBPhr5IeRtyoJAAADbIPI7yMrRvaK/FhJ0ACAxsjHAb4y8rvIyclUKwAABk6e7p+f/I+v35P+UknQAIDGeiyyd+TMyMcix7qXAQBosPz9Z16KOqk2Ai5TElrNMCWgRT0Z2T9yf+ToVKZgHRiZpjQAAPSzIyPfjFwfeV0qs1Kh5XhqSivLZ1jmc1b/N/L6VHZhXVJZAADoRx+vg/8LI68y+KeVdXV3d6sC7aCnK/u3VDZjuU1JAABYAHm29NciR0V+msopVNOVBQ0AaA57prIvwKOR16ZydCAAAPRV3uTvR6lM9z8u8oHILGWh1VkCQDvJu7C+sn5yvqg2BAAAoC9WSGWzvzz4PyaV/aYM/mkLZgDQjtaszYC1Im+LfFtJAACYBxtFfhZZOXJwKrMAoG2YAUA7+mdku1TOaD058mklAQDgJewSuSSySOQVBv9oAEDreDCye+SUyEfrJ/DRygIAwFwcnsq0/3tTeZB0gZKgAQCt5YnIWyKfjBwYOS+ytLIAANDLZ1NZMnppZKdUTpWCtmQPADpF3gvgxFSOB9w3cq2SAAB0tLGRkyJvivw4lVkAU5WFdmYGAJ0i7wWQlwQslsoJAa9VEgCAjrV85Pd18P+p+mrwjwYAtJFzI1tH7ov8OvI+JQEA6DibpjLdf8tUnvp/XEnQAID2dGNkm8jvIl+JnBAZriwAAB0hLwXNO/3n6f87R76rJGgAQHt7KJXlAHnN11GRsyOLKwsAQFv7f5EzIzel8vT/QiWh09gEkE53dOTYyM2R/SJ/VxIAgLbSe7O/n0UOi0xSFjqRGQB0urwMIG8ImI8HvCKyp5IAALSNlVNZ+pkH/19IZQmAwT8aANDBzolsG7kj8ovI/ygJAEDL2yFyeWTzyJvr93imP6MBAMye+r9dKtPCPhf5UWSCsgAAtKQjUjn6eXptBPxASUADAHrLmwPuE/l05MDIHyNrKwsAQMsYETk+8q3IxanM8rxMWaCwCSDM3f6R70emRQ5O5aQAAACa1wqRH0a2j3wz8r7IDGWBOcwAgLk7I5WO8X2RX0c+oiQAAE1rx8hVdfCfp/+/w+AfNACgL/5amwB5Y8DPpnJu7CLKAgDQVN4dubAO+LdJ5cg/QAMA+qxnX4BPpXJszCWRDZUFAGDQ5Q2b85LNr6Vy1N+WkT8pC7wwewDAvNs78r3IyMjbUjkpAACAgbdO5LRUHsx8KZXlmjOVBV6cGQAw736eSmf5hlQ2mPlqZJSyAAAMqLxZc17vv0bkjZEPGfyDBgA0wk2RnSLfjbwncn794gMAQGMNj3wxcnrkX5HNU9m4GZhHlgDA/MvLAPIZs49FDov8UkkAABpilVSWYuZd/vO6/7zx3xPKAn1jBgDMv5MjW0XuT+WkgM9ERigLAEC/2iOVKf/5dKYjI4ca/IMGAAyGP9cvRj+OHBP5bWRlZQEAWGBDU3nA8qvIw6nsxXSissD8swQA+s87U9kYMC8JyJ3pXysJAMB8WSnyncjOqez2n6f8P6IssGDMAID+c3wqswEeSqVTnTepGa4sAAB9smfkmjr4f1fkQIN/0ACAZnRFKvsCnBr5YOSCyJrKAgDwkvLxyl9OZW+lvMdSnvJ/vLJA/7EEABrnramcEjA1lRMDTlcSAIC5Wi9yUh30513+j05lWSXQj8wAgMb5dmSzVM6p/XH9ojZRWQAAniU/NMkbK2+Yyj5Khxr8gwYAtKK8fm27yAmpzAL4U2RrZQEASIulssFfPlr5usjmqTz9BzQAoGU9mcoJAXtHlohclsqRgQAAnWrHyF8jB0Q+V3/8d2UBDQBoF3lDm7wk4NxUzrQ9L7KasgAAHSSfkPTpyIWRoZHdUnkwMl1poPFsAgiD4z2R4yKPR45KZY8AAIB2tm4q0/3zRn8/ibw3cp+ywMAxAwAGx9ciW0TuTGXtW17vtqiyAABt6l2pTPnfIHJEZH+Df9AAgE5yVSod8GMjb05lw8DXKAsA0EZWiPwy8vXIlZGNUzkZCdAAgI7zROQDkd0jMyPn1IbAWKUBAFrcQZFrI69LZZ3/TpGblQU0AKDT/SayaSpLAY6OXBHZQVkAgBaUTz36UeSHkbsi26ay0/8spQENAKB4OHJoKsfhLBO5KPLZyGilAQBaRH7af3XkwMjnU1nueJmygAYAMHenp7JBTn79SP2iuYWyAABNbPHId1JZ75+P9HtF/T5mitKABgDw4u5OZSZAzqqpLAn4RDIbAABoPnumspnxYZETUlnWeIGygAYA0Dd5FsBGqXTTPx65PLKVsgAATSA/9f925BepPPXfNfLOyKNKAxoAwPz5T2SvyCGR5SJ/inwhMl5pAIBBkp/657X+h6fy1H+TyHnKAhoAQP/IO+luGPlJ5EOpnKW7g7IAAAMoP4w4NZWn/tMiu6Xy1P8xpQENAKB/5b0B9o+8MZVpd/mkgGMjiygNANBgeTbi3yJvqt9/vDzyW2UBDQCgsc5IZTbA9yNHR66N7KEsAEADrBU5O3JK5PbItpEPRJ5QGtAAAAbGPZFDI6+NzIr8KnJaZHmlAQD6wfDIe1N50PCayMdS2Yz4MqWB1tTV3d2tCtD68hKAYyLvT2Xn3Q+nsisvAMD82Czy1ciWkT9G3he5TlmgtZkBAO3hkVSm4uUpeTdHTo5cmMraPACAeZUfKnwp8ufIyyJHRnY0+AcNAKD55Cl526cyAyB37PPxPJ9KjgwEAF7a61OZ7p8fKuSd/teLnKgsoAEANK+nIl+MrB/5aSrr9WwSCAC8kDUiP4+cFZlav2c4KHKH0oAGANAabonsV5M/1vMmgfn0gNWVBgAIoyL/E7khslfkM5GNU9nxH2hDNgGEzjAx8tHIByNTIp+MfKP+PwDQeXZLZcZgXud/Xm0EXK8s0N7MAIDOMCnyoVQ2Bbwi8vlUNvd5jdIAQEdZLXJ65DeRhSMHRnY1+AcNAKD95L0AXhk5uH7RPyeVZQFrKg0AtLXRac50//0jx6ayX9BpSgOdwxIA6FxLpLIkIO/0OyOVdX9fS2W2AADQPvaMfC6yVuR3kWNSOSkI6DBmAEDneqA2ADaK/CHyichfIvsqDQC0hQ1S2dDvF6nMAHhj5FUG/6ABAHSu61LZC+AN9XPCmalsBrSp0gBAS8qz/L5Yv8bnAf+nazPgDKWBzmYJANDbmMj7Ih9L5WigEyJfiNypNADQ9EZE3pLKrL4lIz+NfDxys9IAGgDAC1mpfsOQv4l4IpUnB44NBIDm9epU1vlvGPlrKsf//k5ZgN4sAQDm5vbIoZFt6zcR+djAfILAAUoDAE0l7+Xz68hvI0tF3h7ZwuAf0AAA+uqyyI514N+VylFBl9TGAAAweFZMZXbeNZFdI5+KrBs5OTJTeYC5sQQAmFdjI0dFPhxZNHJW5P8iNyoNAAyY/DU4P+U/pn5tPiWVo3xvVRpAAwDob8vUJsA7U5lF9M1UlgjYKBAAGidvzptn5H0ysmzkglQ27b1SaQANAKDR1kllo8B8fGDeKDAfN/StyENKAwD9aq868M9T/K+vX39/rSxAX9kDAJhf/4jsH9ky8uf6jckNqUxLHKs8ALDAdolcGvl5ZELk8MhmBv+ABgAwWPLUw1dEdovcETkxlacTb/Y5BgDmy+Z1kH9+KjPu/ieVp//fjcxQHkADABhs+fihrSKHRJ6KfL82B/ZQGgCYJ+tHzqxfP1+VyuZ+a0e+EJmsPMCCsgcA0AjDI4dG/jeydP1GJn/z8kulAYDnWTWVDXbfmsoRfnlPna9G/q00gAYA0CoWqY2AD0SWjFycytOM3ysNAKQ1Iu+OHBEZGvlO5HOR25QG0AAAWrkRcFjkQ5HFUjm66LORC5UGgA6Un/i/N3JkHfifWQf+1ykNoAEAtIs8+H9n/aZnYuTsVI4PvExpAOgAq9evgfmJf96L66z6dfAvSgNoAADtaplUjgt8T20EnBf5SrI0AID2tFr9mtf7iX8e+F+tNIAGANAp8gaB+SlIfhqSzzf+Y+S4VGYG+OQEQDsM/PPXuKPy992Rn0a+HLlKaQANAKCTGwF5j4B3RZaIXJHKWsizlQaAFpSP83t7zdA68P9SMtUf0AAAeEbeLPDwVE4NWDyVJyR5acAvIjOUB4Amt1kqG96+vv74R5FvGPgDGgAAL2zhVI4PzOsll4/8M5Upk6dGpikPAE1mp1Sm+eeB/8zINyMn1K9fABoAAPNgfGTfVJ6mrBn5b+RbkVMi9ysPAIMoT+3fNfLhyDaRJyLfqQP/W5UH0AAAmD8jaiMgHyG4RWRS5PjI9yK3KQ8AA2hM/Zr0wcjLIo9Ejo18N2lOAxoAAP3q1ZH3R16RyjTL/LTl28lRSgA01pKRt0TeEVkuckvk65GfRB5UHkADAKBxNo0cHdm//vicVJYHnKs0APSjvAQt7+b/tsjYVE6qyRv7/TwyXXkADQCAgbNqKk9j8ukBec+APBMgLw/IRy49qTwAzKcd68D/DfXHv06l0Xye0gAaAACDa4lUTg7IT2hWjtwTOTGVkwP+ozwAzINxkb1T2dF/81ROnsn7zeTlZtcqD6ABANBcRkVel8qGgXlX5lmpnMN8UirTNgHgufKRswfWgX9e339n5OTI9yN3Kw+gAQDQ/LasjYA35s93kctSOZ7pN5HJygPQ8bZKZQnZAZGRkatSWd//K18nAA0AgNa0eipPdvLygKVSWR6QZwTk5QGOEQToLBMje6TytD8fLZtPlDmjfl24VHkADQCA9pA3CXxtKrMCtqxvy8c35bObL4o8rUQAbWvdyCGRN0cWi/w3lWNk8zKxO5QH0AAAaF/5GME87fNNqRzrdHMqmzydmcraTwBaX/78/qrIYZHd6tv+kMr6/rwcbIoSARoAAJ1jychekSMj66cyCyAfIZh3fc6zAmYqEUDLWSuVdf1vSWVTv0mpPOnPn9vt5g9oAAB0uCGR7VPZJ2CfyLDIPyI/qA0BRwkCNLf8tP+Vqczuek19Wz79JT/t/3XkESUCNAA0AACea4XaBHhzZL36tp/VZsAFyZRRgGaSZ28dlMqSrqUjj6WyyWv+nP1X5QHQAACYF3lWwDaRg1OZSjo6lf0B8jeWecfovykRwKDIy7d2jxyaylF+WV629f1U1vZ72g+gAQAw3/JTpTyl9C29vtm8LJU1pfm86PuVCKChRqayVCsf67pvZFQqu/fnhmxuzP5diQA0AAD62wapzAh4Y2T5yNTaBMjNgIsjTyoRQL/ZqA748xT/vEQrb9b6y1Sm+Ocd/acpEYAGAECj5SUBO6ay9vR19cd3R05PZePAq5QIYL6snsqsq9xs3bS+7crIDyNnR+5SIgANAIDBktej5jOm89TUnerb8h4BP0lldsCNSgTwkp9HXx3Zv75mt6Yyxf/MZIo/gAYAQBNaI/L6yBtSWS6Q5aOo8syAcyP/ViKA2RaKbFcH/Xkm1ZjIfZGf14F//tz5tDIBaAAANP3n2MjGqRwpuF9k5fr2S2oz4LzI7coEdOCgf/v6eTFP858YeTyVBulpqezmby8VAA0AgJY1IpV1rHlmQN7MarlI/gR8QSpTW89PZTdrgHY0oQ76c0N0j9oEmJHKkX35Sf+FkYeUCUADAKDd5M0Ct+r1jfAy9e35BIGzIr9NlgkArW/hVKb35891u0YWrYP+36eyUWrewf9uZQLQAADoFGMjW0f2rs2ApevbL438IpWZAf9QJqBF5M9hO6Synj9vjDo+laNSe2Y75UH/vcoEoAEA0OnyzIBNaiNgz8hq9e1/69UM+GvkKaUCmsjqddCfP2/tHBkZeSKVNf0/S2V20/3KBKABAMDcDa/NgPwELT9JW6++/T+prJk9J3JV5FGlAgbYsMj6qWzgl6f2b1nffl8d9P86lVlMjygVgAYAAH33slTOxd49lSdt2aRUptXmb7Yvqc0BgEbIm/ZtUz8P5cZkz6kmt0R+mcoMpSuT3fsBNAAA6Fcr1m/E88yAHSOL1bdfncrRgnmGwN9TmYILML/WTmXn/t3qa97JP3/j+KfI2als5nd9ZJZSAWgAANB4+RvyfLzgrjXr1Lfnqbd5s618okBef2t2APBSFo9sFnlFZJden08eqJ9PcnMxzza6S6kANAAAGHx5qcAOqTyxy0cNLlTffkNtBuSztvNGgs7bBkalsr9IPqrvVfVzxtj6c39OZUbR7yLXRaYoF4AGAADNq2d2wCtTWbe7QX379FSm8F5QGwI3RiYrF7S9IZE1Utm0Lz/hz0uIlqw/l5/q/6EO+K+I3K5cABoAALSulVJ5wpen9+6Uyl4C2cP1G/78zf/lkZuS/QOgHQyrH/db1MF+Ts/mfbnpl5cHXZRKIzB/3E9XMgANAADaTz5mMK/v3TyVGQJbR5auP/dQbQhcUF//oSEALaHnCf/LIzvXj+s1689NS2X5T37Cn4/ouybyuJIBaAAA0HnG1oFDPl1gh8i2qWwIlj2WyvFe+WlhniFwcyqbggGDa1xklVSm9G9dP25Xqj83tQ7y89P9vHHf33zcAqABAMDcjE5lhsCWtSGQdwZfvv5c3gzshtoQyHsJ5CMH74g8rWzQUIumsmlf/njMG/flJ/09M3eejFyVytP9Sw34AdAAAGB+5d3CV6kDj/ykMc8UWKvXz9+eyq7hl9dByK3JSQPQHx9zG6WyVCdnw8iI+vP3RK5OpRGXP+ZyI+4xZQNAAwCARsibia1dmwF5cJJPHBhffy7vGfDPVJYO/CVybW0SWHPcOHn991tTmanxw8i/lKRljEzlSf4GdcCfP6bWSXOe7ufZNTekOU/489T+21JZ1w8AGgAADLg8+M+zAtatA5jcEMgbkPU8sZyUynni19fGQG4Q/CfyqNL1i91Td/fZqaurp9anRL5eB4o0j/zxkJtnPTNqNq4D/xV6/Zrb6oD/kvrxYjo/ABoAADS9pSKr1WbAhrUxsFyvpkDPTIH8ZDNvLnh1bQrcF5mlfH1yVPesmSc8duzRadRG26ZRO+6ZuoYOy82VkyLHR+5WogGX1+wvUwf4L+s12F+i16/JA/s8Q+bKev/ngf9dkaeUDwANAADaoSmweiqbmW1eX/N055H15/MXpjx9/d+pLB/Ia5tvq42BSfXneb635cH+vYdtk6bf+Kc0ZrNd04R9j0wjt9k9dXV15fXiJ0a+nUpzhf6V1+vnJ/i52ZVnvWxUB/z5ZI1xvX5dvo/zsZq54XVNvc/zBprTlRAADQAAOsUiqUyLzk9H8zKCLSKrpvL0tEceJOXNBW9MZbbADbVJcG+NBkBKJ91/1C5p+j//lNLMWal7yNA0ZpNXl0bApvlY+NmzAL5ZGwEPKlmfLZzK0/t8r65fB/i5eZX3wlio1697rN6bPUte/lHzcGSGMgKgAQAAz5aXCSxbB1t5X4GemQJ50LXYcxoDecr0bbU5cGsdfOXk6dV5mcHMTmoAzPjXVal7xNj4Ij8rzZr6SOoaNjqN3eK1adw+b0sjN8xHxac7I8fVRsATbrVnGZNKQ2qlVJpQea1+fpq/Vr0few/08yZ8eQnLTXWAnwf7/6n1tSM/ABoAALCA8nTrpWtjYLXaGFir/njFyLBev3ZqKqcP/KemZ2nBPbU5kJ+Ct8sT2V4zAK5MXSPHp9lf4vOegN2zUvczjYDd0/h93p5GlEZAbpjkjQJPS+Uc+Y743ieVtfn5Sf6SdaCfm0p5WcoK9R5a4jm/J98vd9WB/nX1nsr30X+Tky0A0AAAgAE3rA7cclatA7r89HbN+uM8a2Bkr1+fN1nLm+TdXQdzt9dBXn56e0dtEExO5Ql5K2zINqcB8K8rU9eI8aln/N+jOzcCpjyYhoxYKI3ZYe80Yb93pOGr51UXs5dTfLU2Alr9aLm85n5CKk/x84aTy9fXFep9sGJtAIztXZpU9pfIs0hyk+iWek/ckuY0i6b4EANAAwAAmt+Q2gDIMwfyvgIrpTJ7YOU6OFw2PXu/gR55UPhgzd29GgR5I72HUlnT/XBtJEwZ5EbBs2YApJHjnxn8v2AjYPxSafyO+6axe701DV8lr66Y/XT7S5EzUzl7vlkMTaV5s3Ad2C/c63r2DPDz9Vs8zWkCPdcjdTCfr2N+cn9rHfDnt91br+k0HyoAaAAAQHvL677H1QHk8rUh0DO4XLn+OA88J0ZGz+X3T6vNgp5lBQ/UxsBDvRoFj9TXPKNgav09Pa/9sQzhLZHvPdMAGDE+dXXN/ReWhkBX6p75dOqe+kAaMmGZNH6HfdK4vd+WhpVGwGWRYyO/Sv176sKQWr+cUfV1XK3r4r0G9oumOdP0F69ZrP6eoc/5M2fW2j9aB/O5QXN7r8H+PTV5qv7k5BQJADQAAICXkJ9AL1QHqQvVwWk+0jA/eV6yZvFeA9j864a9yJ+XB/953f2U+przWG0QPFZ//Hh9nfycpkFuGEyvP366/p59Ix/tvQfA3Af+9f/jB11dXfG2+J9ZT6fuKQ+kIQutlMbvckAat9dhadiyefVEuiTyf7WJMbzWYFgdiA/rNZAf2WswP6G+ju/144Xr/+dfM7Y2XMbMZTDf2+TaSOlpoOTGSn5Kf38d2N9X6/RYHfxPdosCgAYAAAykIXVAnDOxZqE6EO5pICyS5kxlX6j+/9iakb1eR7/EIPl5nr0EoCv1PPB+7jKAOU2B2XMByv/Peip1T34wdY1bPC18yDFp/AHveYHf9ZKmPqdh8WR9fbTm8fr6YK8fT6rpGdBP69XgAAD6wTAlAIB+NavXALivR8Hl0XY+/jA/Ve954j6i/v+I2hgYXd/eM4V+eP3/HSIHzP7bnxm2z2nyd8X/dnfVqf/d3XOWB8yeChD/6JlPxTD9oTRk0RXS+O32SqNevl3Pn/LDyJX1D8vv01N1YJ5fey9n6Hlbz+yEGb3+f6bbAgA0AACAObrrgHn6fPze6bMbAEPm1lPofmbwP/uZf1fvn3sqzXrywTRkwvJp3K7vT+P3OjwNWzEfnJCuiXwucpbLAgAaAABA8xj1rE5C95AY6M+avca/Kz33FID8n6dTmvpwSqMXSRN2fUcat98RafgqL8s/nU8COC5yRuqfzQkBAA0AAKBR8uA/1YF/2fCvZ/BfjgDsGrVQGrPTQWnC3kekEettnn/q+shX68DfcXgAoAEAALSSZ/b6zZv9T30wDRk+Pgb+B6eJe789DS8D/9sjX4p8P5X1/ACABgAA0Oyev2f/rNQ99bHUPWRoGrPFnmnCG96ZRm60bf6J/0ZOiHwnlV33AQANAACgVTzzwH/2doL5VL2ZadTLd5n9xH/UNv+fnTtGaSAKwgA8zxRLGknAOwTsLAPBNmBaa0vB2gt4ADsFq4S09h7HgL12MaQQdzOrrndY+D74L/B3M8N7F93g/5RZZj40BgAWAABAT9X7bZTvrxiezeP48jqq6TzK0aC98j9mHjLvWgIACwAAoJ9Ke/Zvdp9RnZ7H+Oo2qtmiG/xXf8P/m5oAwAIAAOj5AqCp6xjd3P288S/VsB381/H7zn+jHgCgNP/fAwMAPTbJvGROMs+Z+8yrWgCAzkGAAQBFK8fC4BJHagAAAABJRU5ErkJggg=="),i=(0,ep.useRef)(null),a=(0,ep.useMemo)(()=>{let t,r;return r=1.15*Math.max((t=e.getSize(new i6.Pq0)).x,t.y),{positionZ:e.min.z-.001*r,side:r}},[e]);(0,ep.useLayoutEffect)(()=>{n.colorSpace="srgb",n.needsUpdate=!0},[n]);let s=e=>{if(!i.current)return;e.stopPropagation();let{pointerId:t,pointerTarget:n}=i.current;n.hasPointerCapture(t)&&n.releasePointerCapture(t),i.current=null,r.setIsDragging(!1)};return a.side<=0?null:(0,eh.jsxs)("mesh",{"position-z":a.positionZ,userData:Ij,onPointerCancel:s,onPointerDown:e=>{var n;let a=t.current;if(!a||(n=e.object,e.intersections.map(e=>e.object)[0]!==n))return;e.stopPropagation(),e.nativeEvent.stopPropagation();let s=e.target;s.setPointerCapture(e.pointerId),a.updateWorldMatrix(!0,!1);let o=a.getWorldQuaternion(new i6.PTz),l=a.getWorldPosition(new i6.Pq0),c=new i6.Pq0(0,0,1).applyQuaternion(o);i.current={center:l,initialPoint:e.point.clone(),initialRotation:r.getState().rotation,plane:new i6.Zcv().setFromNormalAndCoplanarPoint(c,l),pointerId:e.pointerId,pointerTarget:s,surfaceQuaternion:o},r.setIsDragging(!0)},onPointerMove:e=>{let t=i.current;if(!t)return;e.stopPropagation();let n=e.ray.intersectPlane(t.plane,new i6.Pq0);n&&r.setRotation(function({center:e,currentPoint:t,initialPoint:r,initialRotation:n,surfaceQuaternion:i}){let a=i.clone().invert(),s=Iz(r,e,a),o=Iz(t,e,a);return((n+i6.cj9.radToDeg(o-s)+180)%360+360)%360-180}({...t,currentPoint:n}))},onPointerUp:s,children:[(0,eh.jsx)("planeGeometry",{args:[a.side,a.side]}),(0,eh.jsx)("meshBasicMaterial",{map:n,transparent:!0,depthWrite:!1,side:2,toneMapped:!1})]})}let IH=Math.PI/2;function IV(e){let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId)}function Iq({glbUrl:e,position:t,quaternion:r,materialPatch:n}){let i,{type:a}=SD(),{resourceRef:s,sceneGestures:{setIsDragging:o}}=SO(),l=(IF.request(e),i=gg(e),(0,ep.useEffect)(()=>(IF.clearPassed(e),IL.hold(e,i),()=>IL.release(i)),[e,i]),i),{sceneInstance:c,materials:u,resourceBounds:d}=(0,ep.useMemo)(()=>{let e=l.scene.clone(!0),t=IU(e),r=new i6.NRn().setFromObject(e).applyMatrix4(new i6.kn4().makeRotationX(IH));return{sceneInstance:e,materials:t,resourceBounds:r}},[l]);(0,ep.useLayoutEffect)(()=>()=>u.forEach(e=>e.dispose()),[u]);let h=(0,ep.useRef)(null);return IN("rotation",h,"z"),(0,ep.useLayoutEffect)(()=>{let e=u.map(e=>IQ(e,n));return()=>{e.forEach(e=>e())}},[u,n]),(0,eh.jsx)("group",{ref:s,position:t,quaternion:r,onPointerDown:e=>{"rotate-on-floor"!==E1[a].manipulation&&(e.nativeEvent.stopPropagation(),e.target.setPointerCapture(e.pointerId),o(!0))},onPointerUp:e=>{IV(e),o(!1)},onPointerCancel:e=>{IV(e),o(!1)},children:(0,eh.jsxs)("group",{ref:h,children:["drag-with-rotation-handle"===E1[a].manipulation?(0,eh.jsx)(IG,{resourceBounds:d}):null,(0,eh.jsx)("group",{"rotation-x":IH,children:(0,eh.jsx)("primitive",{object:c})})]})})}function IW(e,t){(0,ep.useLayoutEffect)(()=>{let r=e.current;if(r)return IQ(r,t)},[e,t])}let IK=[1,1,1];function IJ({node:e,position:t,scale:r=IK,uvScale:n,materialPatch:i}){let a=(0,ep.useRef)(null);return(0,ep.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,ep.useLayoutEffect)(()=>{let e=a.current?.material;if(!e)return;let t=(Array.isArray(e)?e:[e]).map(e=>IQ(e,i));return()=>{t.forEach(e=>e())}},[i,e]),(0,eh.jsx)(mw,{ref:a,object:e,position:t,scale:r})}function IY({width:e,height:t,materialPatch:r}){let{material:n}=SF(),{nodes:i}=gg(n?.native?.glbUrl),a=(0,ep.useMemo)(()=>{let e=new i6.Pq0,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]);(0,ep.useLayoutEffect)(()=>()=>(function(e){for(let t of Object.values(e))for(let e of(t.geometry.dispose(),Array.isArray(t.material)?t.material:[t.material]))e.dispose()})(a.normalizedNodes),[a]);let 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,eh.jsxs)("group",{children:[(0,eh.jsx)(IJ,{node:a.normalizedNodes.vizbl0,position:[-e/2+a.cornerSize.width/2-.001,t/2-a.cornerSize.height/2+.001,0],materialPatch:r}),(0,eh.jsx)(IJ,{node:a.normalizedNodes.vizbl1,position:[0,t/2-a.barThickness.top/2+.001,0],scale:[l,1,1],uvScale:l,materialPatch:r}),(0,eh.jsx)(IJ,{node:a.normalizedNodes.vizbl2,position:[e/2-a.cornerSize.width/2+.001,t/2-a.cornerSize.height/2+.001,0],materialPatch:r}),(0,eh.jsx)(IJ,{node:a.normalizedNodes.vizbl3,position:[e/2-a.barThickness.right/2+.001,0,0],scale:[1,d,1],uvScale:d,materialPatch:r}),(0,eh.jsx)(IJ,{node:a.normalizedNodes.vizbl4,position:[e/2-a.cornerSize.width/2+.001,-t/2+a.cornerSize.height/2-.001,0],materialPatch:r}),(0,eh.jsx)(IJ,{node:a.normalizedNodes.vizbl5,position:[0,-t/2+a.barThickness.bottom/2-.001,0],scale:[c,1,1],uvScale:c,materialPatch:r}),(0,eh.jsx)(IJ,{node:a.normalizedNodes.vizbl6,position:[-e/2+a.cornerSize.width/2-.001,-t/2+a.cornerSize.height/2-.001,0],materialPatch:r}),(0,eh.jsx)(IJ,{node:a.normalizedNodes.vizbl7,position:[-e/2+a.barThickness.left/2-.001,0,0],scale:[1,u,1],uvScale:u,materialPatch:r})]})}function IX({width:e,height:t,position:r,quaternion:n,materialPatch:i}){let a=(0,ep.useRef)(null);return IW(a,i),(0,eh.jsxs)("mesh",{position:r,quaternion:n,children:[(0,eh.jsx)("planeGeometry",{args:[e,t]}),(0,eh.jsx)("meshStandardMaterial",{ref:a,color:"white"})]})}function IZ({src:e,position:t,quaternion:r,materialPatch:n}){let{width:i,height:a}=SD(),{material:s}=SF(),{frameWidth:o,matting:l}=SU(),{resourceRef:c,sceneGestures:{setIsDragging:u}}=SO(),d=fO(i6.Tap,e),h=(0,ep.useRef)(null),p=(0,ep.useRef)(null);IN("rotation",p,"y"),IN("angle",p,"z"),IW(h,n);let A=i+2*l,f=a+2*l,g=l>0?A:i,m=l>0?f:a;return(0,eh.jsx)("group",{ref:c,position:t,quaternion:r,onPointerDown:()=>u(!0),onPointerUp:()=>u(!1),onPointerLeave:()=>u(!1),children:(0,eh.jsxs)("group",{ref:p,children:[s?.native?.glbUrl&&o>0&&(0,eh.jsx)(IY,{width:g,height:m,materialPatch:n}),l>0&&(0,eh.jsx)(IX,{width:A,height:f,position:[0,0,.01],materialPatch:n}),(0,eh.jsxs)("mesh",{position:[0,0,.02],children:[(0,eh.jsx)("planeGeometry",{args:[i,a]}),(0,eh.jsx)("meshStandardMaterial",{ref:h,map:d})]})]})})}function I$({model:e,patch:t}){let r=(0,ep.useMemo)(()=>{let t=new i6.nWS(1,1,{samples:4,depthBuffer:!1}),r=new i6.V9B({color:"white",side:2,toneMapped:!1,depthTest:!1,depthWrite:!1}),n=e.clone(!0);n.matrixAutoUpdate=!1;let i=new i6.Z58;i.add(n),i.overrideMaterial=r;let a=new i6.I9Y,s={value:2},o=new i6.V9B({map:t.texture,transparent:!0,depthTest:!1,depthWrite:!1,toneMapped:!1,fog:!1});return o.onBeforeCompile=e=>{e.uniforms.uMaskResolution={value:a},e.uniforms.uOutlineRadius=s,e.vertexShader="void main() { gl_Position = vec4(position.xy, 0.0, 1.0); }",e.fragmentShader=e.fragmentShader.replace("#include <common>",`#include <common>
|
|
7634
7634
|
uniform vec2 uMaskResolution;
|
|
7635
7635
|
uniform float uOutlineRadius;
|
|
7636
7636
|
`).replace("#include <map_fragment>",`
|
|
@@ -7645,5 +7645,5 @@ ${z}
|
|
|
7645
7645
|
}
|
|
7646
7646
|
if (coverage < 0.01) discard;
|
|
7647
7647
|
diffuseColor = vec4(1.0, 1.0, 1.0, coverage);
|
|
7648
|
-
`)},o.customProgramCacheKey=()=>"wall-panel-exterior-outline-v1",{mask:t,maskMaterial:r,maskModel:n,maskScene:i,material:o,resolution:a,radius:s,clearColor:new i6.Q1f}},[e]);return(0,ep.useLayoutEffect)(()=>IL(r.material,t,{shading:!1}),[r,t]),(0,ep.useLayoutEffect)(()=>()=>{r.mask.dispose(),r.maskMaterial.dispose(),r.material.dispose()},[r]),(0,eh.jsx)("mesh",{material:r.material,frustumCulled:!1,renderOrder:3,raycast:()=>{},onBeforeRender:(t,n,i)=>{let a=t.getRenderTarget(),s=t.getActiveCubeFace(),o=t.getActiveMipmapLevel(),l=t.autoClear,c=t.getClearAlpha();t.getClearColor(r.clearColor),t.getDrawingBufferSize(r.resolution);let{x:u,y:d}=r.resolution;(r.mask.width!==u||r.mask.height!==d)&&r.mask.setSize(u,d),r.radius.value=2*t.getPixelRatio(),e.updateWorldMatrix(!0,!0),r.maskModel.matrix.copy(e.matrixWorld);try{t.autoClear=!0,t.setClearColor(0,0),t.setRenderTarget(r.mask),t.render(r.maskScene,i)}finally{t.setRenderTarget(a,s,o),t.setClearColor(r.clearColor,c),t.autoClear=l}},children:(0,eh.jsx)("planeGeometry",{args:[2,2]})})}function IY({source:e,patch:t,isPointVisible:r,outlined:n}){let{model:i,materials:a}=(0,ep.useMemo)(()=>{let t=e.clone(!0),r=IF(t);return{model:t,materials:r}},[e]);return(0,ep.useLayoutEffect)(()=>{let e=a.map(e=>IL(e,t));return i.traverse(e=>{e instanceof i6.eaF&&(e.raycast=function(e,t){let n=[];i6.eaF.prototype.raycast.call(this,e,n),t.push(...n.filter(e=>!r||r(e.point)))})}),()=>e.forEach(e=>e())},[r,a,i,t]),(0,ep.useLayoutEffect)(()=>()=>a.forEach(e=>e.dispose()),[a]),(0,eh.jsxs)(eh.Fragment,{children:[(0,eh.jsx)("primitive",{object:i,dispose:null}),n&&(0,eh.jsx)(IJ,{model:i,patch:t})]})}function IX({size:e,patch:t,isPointVisible:r,onClick:n}){let[i,a]=(0,ep.useState)(!1),s=(0,ep.useMemo)(()=>{let e=document.createElement("canvas");e.width=e.height=256;let t=e.getContext("2d");if(t.lineJoin="miter",t.lineCap="round",t.beginPath(),i)t.rect(16,16,224,224);else for(let[e,r,n,i]of[[16,16,1,1],[240,16,-1,1],[16,240,1,-1],[240,240,-1,-1]])t.moveTo(e+22*n,r),t.lineTo(e,r),t.lineTo(e,r+22*i);t.strokeStyle="rgba(255,255,255,.80)",t.lineWidth=5,t.stroke(),t.strokeStyle=i?"#59636d":"rgba(70,80,90,.60)",t.lineWidth=2,t.stroke(),t.beginPath(),t.arc(128,128,29,0,2*Math.PI),t.fillStyle=i?"#ffffff":"#f5f6f7",t.fill(),t.strokeStyle="rgba(35,45,55,.32)",t.lineWidth=2,t.stroke(),t.beginPath(),t.moveTo(117,128),t.lineTo(139,128),t.moveTo(128,117),t.lineTo(128,139),t.strokeStyle="#35414d",t.lineWidth=3,t.stroke();let r=new i6.GOR(e);return r.colorSpace="srgb",r},[i]),o=(0,ep.useMemo)(()=>new i6.V9B({map:s,transparent:!0,depthWrite:!1,toneMapped:!1}),[s]);return(0,ep.useLayoutEffect)(()=>{let e=IL(o,t,{shading:!1});return o.alphaToCoverage=!1,e},[o,t]),(0,ep.useLayoutEffect)(()=>()=>{o.dispose(),s.dispose()},[o,s]),(0,eh.jsx)("mesh",{material:o,renderOrder:2,onPointerOver:()=>a(!0),onPointerOut:()=>a(!1),raycast:function(e,t){let n=[];i6.eaF.prototype.raycast.call(this,e,n),t.push(...n.filter(e=>!r||r(e.point)))},onPointerDown:e=>{e.stopPropagation(),e.nativeEvent.stopPropagation()},onClick:e=>{e.stopPropagation(),n()},children:(0,eh.jsx)("planeGeometry",{args:[e,e]})})}function IZ({isPointVisible:e,visible:t,dragging:r,panelKey:n,number:i,size:a,depth:s,patch:o}){let l=M7(),{t:c}=th(),{camera:u,gl:d}=f_(),h=(0,ep.useRef)(null),p=(0,ep.useRef)(null),A=(0,ep.useMemo)(()=>new i6.Pq0,[]),f=(0,ep.useMemo)(()=>{let e=document.createElement("canvas");e.width=e.height=128;let t=e.getContext("2d");for(let e of(t.beginPath(),t.arc(64,64,61,0,2*Math.PI),t.fillStyle="#f5f6f7",t.fill(),t.strokeStyle="rgba(35,45,55,.32)",t.lineWidth=2,t.stroke(),t.fillStyle="#35414d",[40,64,88]))t.beginPath(),t.arc(e,64,5,0,2*Math.PI),t.fill();let r=new i6.GOR(e);return r.colorSpace="srgb",r},[]),g=(0,ep.useMemo)(()=>new i6.V9B({map:f,transparent:!0,depthWrite:!1,toneMapped:!1}),[f]);(0,ep.useLayoutEffect)(()=>{let e=IL(g,o,{shading:!1});return g.alphaToCoverage=!1,e},[g,o]),(0,ep.useLayoutEffect)(()=>()=>{g.dispose(),f.dispose()},[g,f]),fL(()=>{h.current&&p.current&&(h.current.getWorldPosition(A),p.current.tabIndex=!r&&(!e||e(A))?0:-1)});let m=()=>{if(!h.current)return;A.set(.05,-.05,0),h.current.localToWorld(A).project(u);let e=d.domElement.getBoundingClientRect();l.openMenu(n,{x:e.left+(A.x+1)*e.width/2,y:e.top+(1-A.y)*e.height/2})};return(0,eh.jsxs)("group",{ref:h,position:[a/2-a/12-.05,-a/2+a/20+.05,s+.002],children:[(0,eh.jsx)("mesh",{name:"panel-actions",material:g,visible:t&&!r,renderOrder:3,raycast:function(n,i){if(!t||r)return;let a=[];i6.eaF.prototype.raycast.call(this,n,a),i.push(...a.filter(t=>t.uv&&.48>=Math.hypot(t.uv.x-.5,t.uv.y-.5)&&(!e||e(t.point))))},onPointerDown:e=>{e.stopPropagation(),e.nativeEvent.stopPropagation()},onPointerUp:e=>e.stopPropagation(),onClick:e=>{e.stopPropagation(),m()},children:(0,eh.jsx)("planeGeometry",{args:[.1,.1]})}),(0,eh.jsx)(mP,{style:{pointerEvents:"none"},children:(0,eh.jsx)("button",{ref:p,type:"button","data-panel-key":n,className:"sr-only","aria-label":c("wallPanel.panelActions",{number:i}),"aria-haspopup":"menu",onFocus:()=>l.select(n),onClick:e=>{e.stopPropagation(),m()}})})]})}function I$({glbUrl:e,position:t,quaternion:r,materialPatch:n,isPointVisible:i,onDragStart:a,onDrag:s,onDragEnd:o}){let{data:l}=r0({...M9(e),enabled:!0,suspense:!0,throwOnError:rH,placeholderData:void 0},rT,void 0),c=M7(),{room:u}=SL(),[d,h]=(0,ep.useState)(null),{resourceRef:p,sceneGestures:{setIsDragging:A}}=SO(),f=SQ("isDragging"),{gl:g}=f_(),m=f?"grabbing":d?.action?"pointer":d?"grab":"auto";(0,ep.useLayoutEffect)(()=>{let e=g.domElement.style.cursor;return g.domElement.style.cursor=m,()=>{g.domElement.style.cursor=e}},[g,m]);let v=(e,t)=>h(r=>r?.key===e&&r.action===t?r:{key:e,action:t}),b=(0,ep.useRef)(null),y=l.width,w=`${u.id}:${c.generation}`,[x,C]=(0,ep.useState)({size:y,roomKey:w,x:0,y:0});if(x.roomKey!==w)C({size:y,roomKey:w,x:0,y:0});else if(x.size!==y){let e=c.panels.reduce((e,t)=>({minX:Math.min(e.minX,t.x),maxX:Math.max(e.maxX,t.x),minY:Math.min(e.minY,t.y),maxY:Math.max(e.maxY,t.y)}),{minX:1/0,maxX:-1/0,minY:1/0,maxY:-1/0}),t=x.size-y;C({size:y,roomKey:w,x:x.x+(e.minX+e.maxX)/2*t,y:x.y+(e.minY+e.maxY)/2*t})}(0,ep.useLayoutEffect)(()=>()=>A(!1),[A]);let E=(e,t=!1)=>{let r=b.current;r&&r.pointerId===e.pointerId&&(e.stopPropagation(),b.current=null,e.target.releasePointerCapture(e.pointerId),A(!1),o(),t||r.moved||(c.select(r.key),c.closeMenu()))};return(0,eh.jsx)("group",{ref:p,position:t,quaternion:r,onPointerMissed:c.clearSelection,children:(0,eh.jsxs)("group",{position:[x.x,x.y,0],children:[c.panels.map((e,t)=>{let r=c.options.find(t=>t.material.hid===e.materialId)?.model??l;return(0,eh.jsxs)("group",{position:[e.x*y,e.y*y,0],onPointerOver:t=>{t.stopPropagation(),v(M4(e),"panel-actions"===t.object.name)},onPointerOut:()=>h(null),onPointerDown:t=>{0===t.button&&!b.current&&(t.stopPropagation(),t.nativeEvent.stopPropagation(),b.current={x:t.clientX,y:t.clientY,key:M4(e),moved:!1,pointerId:t.pointerId},t.target.setPointerCapture(t.pointerId),A(!0),a())},onPointerMove:t=>{v(M4(e),"panel-actions"===t.object.name);let r=b.current;r&&r.pointerId===t.pointerId&&(t.stopPropagation(),!r.moved&&Math.hypot(t.clientX-r.x,t.clientY-r.y)>4&&(r.moved=!0,c.select(r.key),c.closeMenu()),r.moved&&s())},onPointerUp:e=>E(e),onPointerCancel:e=>E(e,!0),children:[(0,eh.jsx)(IZ,{panelKey:M4(e),number:t+1,size:y,depth:r.depth,patch:n,isPointVisible:i,dragging:f,visible:c.selected===M4(e)||d?.key===M4(e)}),(0,eh.jsx)("group",{"rotation-z":-e.turns*Math.PI/2,children:(0,eh.jsx)("group",{position:r.mountingOffset,children:(0,eh.jsx)(IY,{outlined:c.selected===M4(e)||d?.key===M4(e),source:r.scene,patch:n,isPointVisible:i})})})]},M4(e))}),c.selected&&c.neighbors.map(e=>(0,eh.jsx)("group",{position:[e.x*y,e.y*y,.002],children:(0,eh.jsx)(IX,{size:y,patch:n,isPointVisible:i,onClick:()=>c.add(e)})},M4(e)))]})})}function I0(e){let{glbUrl:t}=SF();return t?(0,eh.jsx)(I$,{...e,glbUrl:t}):null}let I1={"modelled-resource":function({position:e,quaternion:t,materialPatch:r,onDrag:n,onDragEnd:i,onDragStart:a}){let{type:s}=SD(),{glbUrl:o}=SF();return o?"rotate-on-floor"===E1[s].manipulation?(0,eh.jsx)(Ij,{glbUrl:o,position:e,quaternion:t,materialPatch:r}):(0,eh.jsx)(mb,{autoTransform:!1,onDrag:n,onDragEnd:i,onDragStart:a,children:(0,eh.jsx)(Ij,{glbUrl:o,position:e,quaternion:t,materialPatch:r})}):null},"textured-resource":function({position:e,quaternion:t,materialPatch:r,onDrag:n,onDragEnd:i,onDragStart:a}){let{src:s,setLoadError:o}=SF();return s?(0,eh.jsx)(Ic,{onError:()=>o("artwork-load-failed"),children:(0,eh.jsx)(mb,{autoTransform:!1,onDrag:n,onDragEnd:i,onDragStart:a,children:(0,eh.jsx)(IK,{src:s,position:e,quaternion:t,materialPatch:r})})}):null}};function I2(e){e.setCrossOrigin("anonymous")}let I3=If(3,(e,t)=>{fO.clear(i6.Tap,e),t.dispose()}),I9=Ig(I3,e=>fO.clear(i6.Tap,e));function I4(){var e;let t,{room:r}=SL(),n=f_(e=>e.scene),i=(e=ML(r),I9.request(e),t=fO(i6.Tap,e,I2),(0,ep.useLayoutEffect)(()=>(I9.clearPassed(e),I3.hold(e,t),()=>I3.release(t)),[e,t]),t);return(0,ep.useLayoutEffect)(()=>(i.colorSpace="srgb",n.background=i,()=>{n.background===i&&(n.background=null)}),[n,i]),null}function I5({plane:e,geometry:t,setPlaneRef:r}){let n={planeId:e.id,kind:e.kind};return(0,eh.jsx)("mesh",{ref:t=>r(e,t),geometry:t,userData:n,children:(0,eh.jsx)("meshBasicMaterial",{visible:!1,side:2})})}let I8=(0,ep.memo)(()=>{let e,{type:t}=SD(),r=M7(),{setLoadError:n}=SF(),i="panel-group"===(e=E1[t]).manipulation?I0:I1[e.identity],{room:a}=SL(),{patchSceneLoad:s,resourceRef:o}=SO(),{gl:l,size:c,camera:u,invalidate:d,raycaster:h,pointer:p}=f_(),A=(0,ep.useMemo)(()=>a.scene??Ms(),[a.scene]),f=E2(t),g=function(e){let[t,r]=(0,ep.useState)(null);return(0,ep.useEffect)(()=>{let t=new AbortController,n=null;return Iw.acquire(e,{neutralShadingPng:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR4nGNoaGgAAAMEAYFL09IQAAAAAElFTkSuQmCC",signal:t.signal}).then(i=>{t.signal.aborted?Iw.release(i):(n=i,r({request:e,state:{preparation:i,failed:!1}}))},n=>{t.signal.aborted||(console.error(n),r({request:e,state:{preparation:null,failed:!0}}))}),()=>{t.abort(),n&&Iw.release(n)}},[e]),t?.request===e?t.state:Iy}((0,ep.useMemo)(()=>({roomId:a.id,scene:A,surfaces:f}),[a.id,A,f])),m=function({camera:e,invalidate:t,pointer:r,roomPreparation:{preparation:n,failed:i},raycaster:a,resourceRef:s,roomId:o,scene:l,surfaces:c}){let u=`${o}:${[...c].sort().join(",")}`,d=(0,ep.useMemo)(()=>({value:null}),[]),[h,p]=(0,ep.useReducer)(Ik,u,IT),A=(0,ep.useRef)(null),f=(0,ep.useRef)(null),g=(0,ep.useRef)(!1),m=(0,ep.useRef)(new Map),v=(0,ep.useRef)(null),b=h.placementKey===u,y=n?.planeIdMap??null,w=n?.masks??IB,x=b?h.resourcePose:null,C=(0,ep.useMemo)(()=>II(l,c),[l,c]),E=(0,ep.useMemo)(()=>C.map(e=>e.id),[C]),S=(0,ep.useMemo)(()=>new Map(l.planes.map(e=>{let t,r;return[e.id,(t=e.polygon3D.flatMap(e=>(function(e,t){let[r,n,i]=e;return[r*(Ir(t)*(t.camera.fx/t.camera.fy)),i,-n]})(e,l)),(r=new i6.LoY).setAttribute("position",new i6.qtW(t,3)),e.polygon3D.length>=4&&r.setIndex([0,1,2,0,2,3]),r)]})),[l]);(0,ep.useEffect)(()=>()=>S.forEach(e=>e.dispose()),[S]);let M=(0,ep.useMemo)(()=>({artifactsReady:null!==y,placementReady:null!==x,prepareReady:null!==x}),[y,x]),I=0===C.length?"no-allowed-surface":i?"plane-id-map-decode":null,B=(0,ep.useCallback)((e,t)=>{t?m.current.set(e.id,t):m.current.delete(e.id)},[]);(0,ep.useEffect)(()=>()=>{d.value=null},[d,w]),(0,ep.useEffect)(()=>{p({type:"reset-placement",placementKey:u}),A.current=null,f.current=null,g.current=!1,d.value=null,v.current=null},[d,u]);let T=(0,ep.useCallback)((r,n,i=null)=>{let a,o=IM(r,n,e),l=i?(a=new i6.Pq0(...i).applyQuaternion(new i6.PTz(...o.quaternion)).add(new i6.Pq0(...o.position)),{...o,position:a.toArray()}):o;A.current=l.activePlaneId,f.current=l,g.current=!0,d.value=w.get(l.activePlaneId)?.texture??null,s.current?.position.fromArray(l.position),s.current?.quaternion.fromArray(l.quaternion),t()},[d,e,t,w,s]),k=(0,ep.useCallback)(t=>y?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(In(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:A.current,allowedPlaneIds:E,camera:e,planeIdMap:y,planeMap:m.current,pointer:t,raycaster:a}):null,[E,e,y,a]);(0,ep.useEffect)(()=>{if(!y||null!==x)return;let r=function({allowedPlanes:e,camera:t,planeMap:r}){let n=e[0],i=n?r.get(n.id):null;return i?IM(i,function(e){let t=e.geometry.attributes.position,r=new i6.Pq0;for(let e=0;e<t.count;e++)r.add(new i6.Pq0(t.getX(e),t.getY(e),t.getZ(e)));return r.divideScalar(Math.max(1,t.count))}(i),t):null}({allowedPlanes:C,camera:e,planeMap:m.current});r&&(A.current=r.activePlaneId,f.current=r,d.value=w.get(r.activePlaneId)?.texture??null,p({type:"set-resource-pose",placementKey:u,resourcePose:r}),t())},[d,C,e,t,w,u,y,x]);let R=(0,ep.useCallback)(()=>{let t,n=k(r),i=f.current;if(!n||!i){v.current=null;return}let a=IM(n.object,n.point,e);t=new i6.PTz(...a.quaternion).invert(),v.current=new i6.Pq0(...i.position).sub(new i6.Pq0(...a.position)).applyQuaternion(t).toArray()},[e,k,r]),P=(0,ep.useCallback)(()=>{let e=k(r);e&&T(e.object,e.point,v.current)},[k,r,T]),D=(0,ep.useCallback)(()=>{v.current=null,g.current&&f.current&&(g.current=!1,p({type:"set-resource-pose",placementKey:u,resourcePose:f.current}))},[u]),_=(0,ep.useCallback)(t=>{let r,n=A.current,i=null===n?null:w.get(n);if(!i)return!1;let a=t.clone().project(e),s=function(e,t,r){if(t<0||t>1||r<0||r>1)return 0;let n=t*e.width-.5,i=r*e.height-.5,a=Math.floor(n),s=Math.floor(i),o=IA(a,e.width-1),l=IA(s,e.height-1),c=IA(a+1,e.width-1),u=IA(s+1,e.height-1),d=n-Math.floor(n),h=i-Math.floor(i);return((e.data[l*e.width+o]*(1-d)+e.data[l*e.width+c]*d)*(1-h)+(e.data[u*e.width+o]*(1-d)+e.data[u*e.width+c]*d)*h)/255}(i,(a.x+1)*.5,(1-a.y)*.5);return(r=IA((s-.4)/.29999999999999993,1))*r*(3-2*r)>.001},[e,w]);return{isPointerOnSurface:(0,ep.useCallback)(e=>{let t=y?In(e,y):null;return null!==t&&E.includes(t)},[E,y]),activeMaskTextureUniform:d,isPointVisible:_,failure:I,handleDrag:P,handleDragEnd:D,handleDragStart:R,planeGeometries:S,readiness:M,resourcePose:x,setPlaneRef:B}}({camera:u,invalidate:d,pointer:p,roomPreparation:g,raycaster:h,resourceRef:o,roomId:`${a.id}:${r?.generation??0}`,scene:A,surfaces:f});!function(e,t,r){let{gl:n}=f_(),{sceneGestures:{setRotation:i,setIsDragging:a}}=SO();(0,ep.useEffect)(()=>{if(!e)return;let r=n.domElement,s=null,o=e=>{e.preventDefault(),e.stopImmediatePropagation()},l=()=>{let e=s;s=null,e&&r.hasPointerCapture(e.id)&&r.releasePointerCapture(e.id),e&&a(!1)},c=e=>{if(s)return void o(e);if(!e.isPrimary||0!==e.button)return;let n=r.getBoundingClientRect();t(new i6.I9Y((e.clientX-n.left)/n.width*2-1,1-(e.clientY-n.top)/n.height*2))&&(o(e),s={id:e.pointerId,startX:e.clientX,lastX:e.clientX,rotating:!1},r.setPointerCapture(e.pointerId),a(!0))},u=e=>{if(!s||s.id!==e.pointerId||(o(e),!s.rotating&&5>Math.abs(e.clientX-s.startX)))return;s.rotating=!0;let t=e.clientX-s.lastX;s.lastX=e.clientX,i(e=>e+.5*t)},d=e=>{s?.id===e.pointerId&&(o(e),l())};return r.addEventListener("pointerdown",c,!0),r.addEventListener("pointermove",u,!0),r.addEventListener("pointerup",d,!0),r.addEventListener("pointercancel",d,!0),r.addEventListener("lostpointercapture",d,!0),window.addEventListener("blur",l),()=>{r.removeEventListener("pointerdown",c,!0),r.removeEventListener("pointermove",u,!0),r.removeEventListener("pointerup",d,!0),r.removeEventListener("pointercancel",d,!0),r.removeEventListener("lostpointercapture",d,!0),window.removeEventListener("blur",l),l()}},[e,n,t,r,a,i])}("rotate-on-floor"===E1[t].manipulation,m.isPointerOnSurface,a.id);let v=(0,ep.useMemo)(()=>new i6.I9Y(1,1),[]),b=g.preparation?.lightingTexture??null,y=(0,ep.useMemo)(()=>b&&{lightingTexture:b,viewport:v,activeMaskTextureUniform:m.activeMaskTextureUniform,maxRoomGain:1.1},[m.activeMaskTextureUniform,b,v]);(0,ep.useLayoutEffect)(()=>{u instanceof i6.ubm&&(u.fov=A.camera.fovYDeg),u.position.set(0,0,0),u.up.set(0,0,1),u.lookAt(0,1,0),u.updateProjectionMatrix(),d()},[u,d,A.camera.fovYDeg]),(0,ep.useLayoutEffect)(()=>{l.getDrawingBufferSize(v),v.set(Math.max(1,v.x),Math.max(1,v.y))},[l,c.height,c.width,v]);let{artifactsReady:w,placementReady:x,prepareReady:C}=m.readiness,E=m.failure;return(0,ep.useEffect)(()=>{s({artifactsReady:w,placementReady:x,prepareReady:C})},[w,s,x,C]),(0,ep.useEffect)(()=>{E&&(!function({failure:e,planes:t,resourceType:r}){let n,i;(i=(n=t.map(e=>e.kind)).filter((e,t)=>n.indexOf(e)===t)).length>0&&i.join(", ")}({failure:E,planes:A.planes,resourceType:t}),n("room-load-failed"))},[E,A.planes,n,t]),(0,eh.jsxs)(eh.Fragment,{children:[m.resourcePose&&y&&(0,eh.jsx)(i,{position:m.resourcePose.position,quaternion:m.resourcePose.quaternion,materialPatch:y,isPointVisible:m.isPointVisible,onDrag:m.handleDrag,onDragEnd:m.handleDragEnd,onDragStart:m.handleDragStart}),A.planes.map(e=>(0,eh.jsx)(I5,{plane:e,geometry:m.planeGeometries.get(e.id),setPlaneRef:m.setPlaneRef},e.id)),(0,eh.jsx)(Ic,{onError:()=>n("room-load-failed"),children:(0,eh.jsx)(I4,{})})]})});I8.displayName="Room";let I6=["room-viewer","layout-config"],I7=[Math.PI/2,0,0];function Be({onReadyChange:e}){return(0,ep.useLayoutEffect)(()=>(e?.(!0),()=>e?.(!1)),[e]),null}function Bt({onReadyChange:e}){var t;let r=r0({queryKey:I6,queryFn:()=>ES(),staleTime:1/0},rT,void 0);if(r.isPending)return null;let n=(t=r.data,t?.internal?.links?.find(e=>"hdr_neutral"===e.type)?.url?.trim()||void 0);return(0,eh.jsxs)(eh.Fragment,{children:[(0,eh.jsx)(vm,{files:n?[n]:void 0,preset:n?void 0:"warehouse",environmentRotation:I7,environmentIntensity:n?.5:.9}),(0,eh.jsx)(Be,{onReadyChange:e})]})}function Br({onReadyChange:e}){return(0,eh.jsxs)(eh.Fragment,{children:[(0,eh.jsx)(vm,{files:["https://cdn.neurodyn.ai/assets/hdr/neutral.hdr"],environmentRotation:I7}),(0,eh.jsx)(Be,{onReadyChange:e})]})}let Bn=(0,ep.memo)(({lighting:e,onReadyChange:t})=>"remote-neutral-hdr"===e?(0,eh.jsx)(Bt,{onReadyChange:t}):(0,eh.jsx)(Br,{onReadyChange:t}));Bn.displayName="RoomEnvironment";let Bi=(0,ep.memo)(({ref:e,target:t})=>{let{camera:r,gl:n}=f_();return(0,ep.useImperativeHandle)(e,()=>({getScreenPoint(){if(!t.current)return null;let e=t.current.getWorldPosition(new i6.Pq0).project(r),i=n.domElement.getBoundingClientRect();return{x:i.left+(e.x+1)*i.width/2,y:i.top+(1-e.y)*i.height/2}}}),[r,n,t]),null});Bi.displayName="SceneFocusBridge";let Ba=(0,ep.memo)(({sceneReady:e,onShadersReadyChange:t})=>{let r=fD(),n=(0,ep.useRef)("holding"),i=M0(t);return(0,ep.useEffect)(()=>{if(n.current="holding",!e)return void i.current(!1);let t=!0,{camera:a,gl:s,scene:o}=r.getState();o.matrixWorldAutoUpdate&&o.updateMatrixWorld(),null===a.parent&&a.matrixWorldAutoUpdate&&a.updateMatrixWorld();let l=()=>{t&&(t=!1,n.current="compiled",r.getState().invalidate())},c=()=>{t&&(t=!1,n.current="drawing",i.current(!0))},u=setTimeout(()=>{console.warn("Room viewer scene shaders did not finish compiling ahead in time"),l()},1e4);return s.domElement?.addEventListener("webglcontextlost",c),Promise.resolve().then(()=>s.compileAsync(o,a)).catch(e=>{console.error("Room viewer scene shaders failed to compile ahead",e)}).then(l),()=>{t=!1,clearTimeout(u),s.domElement?.removeEventListener("webglcontextlost",c)}},[i,e,r]),fL(({camera:e,gl:t,scene:r})=>{"holding"!==n.current&&(t.render(r,e),"compiled"===n.current&&(n.current="drawing",i.current(!0)))},1),null});Ba.displayName="ShaderPrecompile";let Bs=(0,ep.memo)(({sceneLightingReady:e})=>{let{sceneLoad:t}=SN(),{patchSceneLoad:r}=SO(),n=(0,ep.useCallback)(e=>{r({shadersReady:e})},[r]);return(0,eh.jsx)(Ba,{sceneReady:e&&Sj(t),onShadersReadyChange:n})});Bs.displayName="SceneShaderPrecompile";let Bo={position:[0,0,0],up:[0,0,1],near:.01,far:100},Bl=(0,ep.memo)(({className:e,ref:t,captureRef:r,contentKey:n,introductionTarget:i,focusRef:a,onSizeChange:s,...o})=>{let{type:l}=SD(),{glbUrl:c}=SF(),u=M7(),d=u?.isBaseModelReady??!0,{materialSource:h}=Mm(l),{room:p}=SL(),{patchSceneLoad:A}=SO(),f=vy(e=>e.active),[g,m]=(0,ep.useState)(!1),v=Ir((0,ep.useMemo)(()=>p.scene??Ms(),[p.scene])),b=(0,ep.useRef)(null),y=(0,ep.useRef)(!1),w=(0,ep.useCallback)(e=>{(b.current=e,"function"==typeof t)?t(e):t&&(t.current=e)},[t]),x=Mj("(max-width: 639px)"),{width:C,height:E}=function(e){let t,{ref:r,box:n="content-box"}=e,[{width:i,height:a},s]=(0,ep.useState)(MG),o=(t=(0,ep.useRef)(!1),(0,ep.useEffect)(()=>(t.current=!0,()=>{t.current=!1}),[]),(0,ep.useCallback)(()=>t.current,[])),l=(0,ep.useRef)({...MG}),c=(0,ep.useRef)(void 0);return c.current=e.onResize,(0,ep.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=MH(e,t,"inlineSize"),i=MH(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:b}),S=(0,ep.useMemo)(()=>{if(!C||!E||!v)return null;let e=C,t=E;return x?e=(t=E)*v:C/E>v?e=E*v:t=C/v,{width:e,height:t}},[C,E,v,x]);return(0,ep.useLayoutEffect)(()=>{S&&s?.(S.width,S.height)},[S,s]),(0,ep.useEffect)(()=>{if(!S||y.current)return;y.current=!0;let e=window.setTimeout(()=>{window.dispatchEvent(new Event("resize"))},250);return()=>{window.clearTimeout(e)}},[S]),(0,ep.useEffect)(()=>{A({layoutReady:null!==S})},[A,S]),(0,ep.useEffect)(()=>{"object-glb"===h&&A({materialReady:!!c&&d})},[c,h,d,A]),(0,ep.useEffect)(()=>{A({assetsReady:!f})},[n,f,A]),(0,eh.jsx)("div",{ref:w,className:E3("size-full flex items-center justify-center sm:pt-21 sm:pb-12",e),...o,children:S&&(0,eh.jsxs)(vE,{className:"touch-none bg-transparent",frameloop:"demand",camera:Bo,gl:Ie,style:{width:`${S.width}px`,height:`${S.height}px`},children:[(0,eh.jsxs)(ep.Suspense,{fallback:null,children:[(0,eh.jsx)(Il,{ref:r}),(0,eh.jsx)(ep.Suspense,{fallback:null,children:(0,eh.jsx)(I8,{},n)}),i&&a&&(0,eh.jsx)(Bi,{ref:a,target:i})]}),(0,eh.jsx)(ep.Suspense,{fallback:null,children:(0,eh.jsx)(Bn,{lighting:E1[l].lighting,onReadyChange:m})}),(0,eh.jsx)(Bs,{sceneLightingReady:g})]})})});Bl.displayName="CanvasWrapper";let Bc=(0,ep.memo)(({captureRef:e,introduction:t,className:r,canvasWrapperClassName:n,controls:i,contentKey:a,...s})=>{let o,l,c,u,d=SQ("isDragging"),h=(0,ep.useRef)(null),p=(0,ep.useRef)(null),A=(0,ep.useRef)(null),f=(o=(0,ep.useRef)(null),l=(0,ep.useRef)(!1),c=(0,ep.useCallback)(()=>{null!==o.current&&cancelAnimationFrame(o.current),o.current=null},[]),u=(0,ep.useCallback)(()=>{t&&(c(),t.onCancel())},[t,c]),(0,ep.useEffect)(()=>{if(!t){l.current=!1;return}if(!t.ready){l.current&&t.onCancel();return}return o.current=requestAnimationFrame(()=>{let e=h.current,r=A.current?.getScreenPoint(),n=e?.instance.wrapperComponent,i=e?.instance.contentComponent;if(!e||!r||!n||!i)return void t.onCancel();let{scale:a,positionX:s,positionY:c}=e.instance.transformState,u=n.getBoundingClientRect(),d=Math.min(e.instance.setup.maxScale,1.28*a),p=(e,t,r)=>r<t?(t-r)/2:Math.max(t-r,Math.min(0,e)),f=p(u.width/2-(r.x-u.left-s)/a*d,u.width,i.offsetWidth*d),g=p(u.height/2-(r.y-u.top-c)/a*d,u.height,i.offsetHeight*d);l.current=!0;let m=window.matchMedia("(prefers-reduced-motion: reduce)").matches,v=performance.now(),b=r=>{let n=m?1:Math.min(1,(r-v)/700),i=(1-Math.cos(Math.PI*n))/2;e.setTransform(s+(f-s)*i,c+(g-c)*i,a+(d-a)*i,0),n<1?o.current=requestAnimationFrame(b):(o.current=null,t.onComplete())};b(v)}),()=>{c()}},[A,t,c,h]),u),g=Mj("(max-width: 639px)"),m=(0,ep.useRef)(!!t);m.current=!!t;let v=(0,ep.useCallback)(()=>{g&&h.current?.centerView(void 0,m.current?0:void 0)},[g]),b=(0,ep.useRef)(a);return(0,ep.useLayoutEffect)(()=>{b.current!==a&&(b.current=a,h.current?.resetTransform(0),v())},[a,v]),(0,eh.jsxs)("div",{className:E3("relative flex items-center justify-center overflow-hidden",r),...s,onPointerDownCapture:e=>{f(),s.onPointerDownCapture?.(e)},onTouchStartCapture:e=>{f(),s.onTouchStartCapture?.(e)},onWheelCapture:e=>{f(),s.onWheelCapture?.(e)},children:[(0,eh.jsx)(p6,{ref:h,disabled:d,children:(0,eh.jsx)(p7,{wrapperClass:"neurodyn-rzpp-wrapper size-full!",contentClass:"neurodyn-rzpp-content h-full! min-w-full sm:max-w-full",children:(0,eh.jsx)(Bl,{captureRef:e??p,contentKey:a,introductionTarget:t?.target,focusRef:A,className:n,onSizeChange:v})})}),i]})});function Bu(e,t,{fadedOutIfMountedLoaded:r=!1}={}){let[n,i]=(0,ep.useState)(r&&!e);return e&&n&&i(!1),(0,ep.useEffect)(()=>{if(e)return;let r=!0;return Promise.allSettled((t.current?.getAnimations?.()??[]).map(e=>e.finished)).then(()=>{r&&i(!0)}),()=>{r=!1}},[e,t]),!e&&n}function Bd(e,t){return!Bu(e,t,{fadedOutIfMountedLoaded:!0})}function Bh({...e}){return(0,eh.jsx)(u_,{"data-slot":"popover",...e})}function Bp({...e}){return(0,eh.jsx)(uN,{"data-slot":"popover-trigger",...e})}function BA({className:e,align:t="center",sideOffset:r=4,portalContainer:n,...i}){return(0,eh.jsx)(uz,{container:n,children:(0,eh.jsx)(uG,{"data-slot":"popover-content",align:t,sideOffset:r,className:E3("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 Bf({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,ep.useMemo)(()=>Array.isArray(r)?r:Array.isArray(t)?t:[n],[r,t,n]);return(0,eh.jsxs)(u8,{"data-slot":"slider",defaultValue:t,value:r,min:n,max:i,"data-variant":a,"aria-label":s,"aria-labelledby":o,className:E3("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,eh.jsx)(di,{"data-slot":"slider-track",className:E3("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,eh.jsx)(ds,{"data-slot":"slider-range",className:E3("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,eh.jsx)(dc,{"data-slot":"slider-thumb","aria-label":s,"aria-labelledby":o,className:E3("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))]})}Bc.displayName="Scene";let Bg=/oklch\(([0-9.]+)\s+([0-9.]+)\s+([0-9.]+)\)/;function Bm(e,t){let r=e.match(Bg);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 Bv({data:e,foreground:t,background:r,robustness:n="M",className:i,...a}){let[s,o]=(0,ep.useState)(null);return((0,ep.useEffect)(()=>{(async()=>{try{let i=getComputedStyle(document.documentElement),a=t??i.getPropertyValue("--foreground"),s=r??i.getPropertyValue("--background"),l=Bm(a,[.21,.006,285.885]),c=Bm(s,[.985,0,0]),u=await xd.toString(e,{type:"svg",color:{dark:xc(xu({mode:"oklch",...l})),light:xc(xu({mode:"oklch",...c}))},width:200,errorCorrectionLevel:n,margin:0});o(u)}catch(e){console.error(e)}})()},[e,t,r,n]),s)?(0,eh.jsx)("div",{className:E3("size-full","[&_svg]:size-full",i),dangerouslySetInnerHTML:{__html:s},...a}):null}function Bb(){if(!h){let e=new Cj;h={os:e.getOS().name,type:e.getDevice().type}}return h}function By(){return"iOS"===Bb().os}function Bw(){return"Android"===Bb().os}function Bx(e,t){return!(!e||Bw()&&"mobile"===Bb().type||Bw()&&"appclip"===e.ar)&&("floor"!==e.destination||!!t)}async function BC(e){return await e.updateComplete,!e.canActivateAR&&navigator.xr?.isSessionSupported&&(await navigator.xr.isSessionSupported("immersive-ar").catch(()=>!1),await new Promise(e=>setTimeout(e))),e}async function BE(e){let t;await e.activateAR(),("session-started"===(t=e.getAttribute("ar-status"))||"object-placed"===t)&&await new Promise(t=>{let r=n=>{"not-presenting"===n.detail.status&&(e.removeEventListener("ar-status",r),t())};e.addEventListener("ar-status",r)})}function BS({className:e,buttonClassName:t,buttonLeadingIcon:n,buttonLabel:i,buttonSize:a,buttonVariant:s="contrast",...o}){let{type:l,width:c,height:u,name:d}=SD(),{handoff:h}=E1[l],{src:p,tinuuid:A,widgetSession:f}=SF(),{containerRef:g,resourceRef:m}=SN(),{t:v,i18n:b}=th(),y=function(){let{i18n:e}=th();return"ru"===(e.resolvedLanguage??e.language)?"arizo":"vizbl"}(),[w,x]=(0,ep.useState)(""),[C,E]=(0,ep.useState)(""),[S,M]=(0,ep.useState)(()=>f?.token),[I,B]=(0,ep.useState)(!1),[T,k]=(0,ep.useState)(!1),R=(0,ep.useRef)(null),P=(0,ep.useRef)(null),[D,_]=(0,ep.useState)(!1),L=(0,ep.useRef)(!1),F=b.resolvedLanguage??b.language,N=Mi[y],O=(0,ep.useMemo)(()=>(function({height:e,language:t,name:r,src:n,tenantConfig:i,tinuuid:a,handoff:s,type:o,width:l,widgetSessionToken:c,pageUrl:u}){if(!s)return null;if("floor"===s.destination&&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:F,name:d,src:p,tenantConfig:N,tinuuid:A,handoff:h,type:l,width:c,widgetSessionToken:S,pageUrl:"u"<typeof window?void 0:window.location.href}),[p,A,h,l,c,u,d,F,N,S]),Q=(0,ep.useMemo)(()=>{if(!A)return null;let e=new URL("https://appclip.apple.com/id");return e.searchParams.set("p","com.us.vizbl.Clip"),e.searchParams.set("tinuuid",A),e.toString()},[A]),U=(0,ep.useCallback)(e=>{R.current=e,e&&P.current?.resolve(e)},[]);function z(){P.current=null,_(!1)}async function j(){M(await f?.getTokenForRequest().catch(()=>f.token))}let G=async()=>{let e;if(h?.ar==="appclip"){if(!A)return;if(By()&&Q){EV(f,"appclip"),window.location.assign(Q);return}await j(),B(!0);return}if(!m.current||L.current)return;L.current=!0;try{e=await function(){if(!P.current){let e,t=new Promise(t=>{e=t});P.current={resolve:e,promise:Promise.resolve().then(r.bind(r,"../../node_modules/.pnpm/@google+model-viewer@4.2.0_three@0.185.1/node_modules/@google/model-viewer/lib/model-viewer.js")).then(()=>(_(!0),t),e=>{throw P.current=null,e})}}return P.current.promise.then(BC)}()}finally{L.current=!1}let t=m.current;if(!t)return void z();if(e.canActivateAR)try{k(!0);let e=t.clone(!0);if(e.position.set(0,0,0),e.quaternion.identity(),e.updateMatrix(),e.updateMatrixWorld(!0),By()){e.rotation.set(-Math.PI/2,0,0),e.updateMatrix(),e.updateMatrixWorld(!0);let t=new xp.U,r=await t.parseAsync(e,{ar:{anchoring:{type:"plane"},planeAnchoring:{alignment:"vertical"}}}),n=new File([r],"scene.usdz",{type:"model/vnd.usdz+zip"});x(URL.createObjectURL(n))}else{let t=new xh.r,r=await t.parseAsync(e,{binary:!0}),n=new File([r],"scene.glb",{type:"model/gltf-binary"});E(URL.createObjectURL(n))}}catch(e){throw z(),e}finally{k(!1)}else z(),await j(),B(!0)};if((0,ep.useEffect)(()=>{let e=R.current;return e&&(""!==w||""!==C)&&BE(e).finally(z),()=>{""!==w&&URL.revokeObjectURL(w),""!==C&&URL.revokeObjectURL(C)}},[w,C]),!Bx(h,A))return null;let H="appclip"===h.ar;return(0,eh.jsxs)("div",{className:E3(e),...o,children:[(0,eh.jsxs)(E4,{variant:s,size:a,disabled:T,onClick:G,className:t,children:[n,i??v("ar.viewInPlace")]}),(0,eh.jsx)(E5,{open:I,onOpenChange:B,children:(0,eh.jsxs)(Se,{className:"gap-6 sm:max-w-120",showCloseButton:!1,portalContainer:g,children:[(0,eh.jsx)("div",{className:"flex items-center justify-center p-10 bg-constant-white rounded-2xl",children:(0,eh.jsx)(Bv,{className:"size-48",robustness:"H",data:O??""})}),H?(0,eh.jsxs)("div",{className:"grid gap-2 text-center",children:[(0,eh.jsx)("p",{className:"text-lg text-text-sub font-medium",children:v("ar.appClipScanTitle")}),(0,eh.jsx)("p",{className:"text-sm text-text-light",children:v("ar.appClipRequirement")})]}):(0,eh.jsx)("p",{className:"text-lg text-center text-text-sub font-medium",children:v("ar.scanQrCode")}),(0,eh.jsxs)("p",{className:"text-xs text-center text-text-light",children:[!H&&(0,eh.jsxs)(eh.Fragment,{children:[v("ar.deviceRequirementsDisclaimer"),(0,eh.jsx)("br",{})]}),(0,eh.jsx)("a",{href:N.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:v("legal.termsOfUse")})," ",v("legal.conjunction")," ",(0,eh.jsx)("a",{href:N.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:v("legal.privacyPolicy")})]}),(0,eh.jsx)(E6,{asChild:!0,children:(0,eh.jsx)(E4,{variant:"contrast",size:"lg",children:v("close")})})]})}),D&&(0,eh.jsx)("model-viewer",{ref:U,className:"fixed w-px h-px opacity-0 pointer-events-none",src:C,iosSrc:w,reveal:"manual",ar:!0,cameraControls:!0,arPlacement:"wall",arModes:"webxr",arScale:"fixed",shadowIntensity:1,interactionPromptThreshold:100})]})}async function BM(e){await navigator.clipboard.writeText(e)}function BI({captureRef:e,fallbackToClipboard:t=!1,fileName:r="room-scene.png",shareMessage:n}){let[i,a]=(0,ep.useState)(!1),[s,o]=(0,ep.useState)(!1),l=(0,ep.useMemo)(()=>"u">typeof navigator&&"function"==typeof navigator.share||t&&"u">typeof navigator&&"function"==typeof navigator.clipboard?.writeText,[t]),c=(0,ep.useCallback)(async()=>{if(!l)return;let i="u">typeof navigator&&"function"==typeof navigator.share,s=window.location.href,o=`${n}
|
|
7649
|
-
${s}`;a(!0);try{if(!i&&t)return void await BM(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,ep.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 BB({captureRef:e}){let{type:t}=SD(),{containerRef:r}=SN(),{t:n}=th(),i=Mj("(max-width: 639px)"),{canShare:a,isSharing:s,share:o}=BI({captureRef:e,shareMessage:n(`shareMessage.${t}`)});return(0,eh.jsxs)(eh.Fragment,{children:[(0,eh.jsx)(BS,{className:"absolute bottom-4 left-4 sm:bottom-6 sm:left-6"}),(0,eh.jsxs)("div",{className:"absolute right-4 bottom-4 inline-flex items-center gap-2 sm:right-6 sm:bottom-6",children:[(0,eh.jsxs)(Bh,{children:[(0,eh.jsx)(Bp,{asChild:!0,children:(0,eh.jsxs)(E4,{variant:"contrast",size:i?"icon":"default",children:[(0,eh.jsx)(Sg,{className:"size-5"}),(0,eh.jsx)("span",{className:"sr-only sm:not-sr-only",children:n("scene.tunePosition")})]})}),(0,eh.jsx)(BA,{className:"px-3 py-3.5 bg-button-dark border-button-dark text-text-white",side:"top",align:"end",portalContainer:r,children:(0,eh.jsxs)(Sq,{children:[(0,eh.jsxs)(SK,{orientation:"horizontal",children:[(0,eh.jsx)(SY,{children:n("scene.rotation")}),(0,eh.jsx)(BT,{gesture:"rotation",min:-180,max:180,"aria-label":n("scene.rotation")})]}),(0,eh.jsxs)(SK,{orientation:"horizontal",children:[(0,eh.jsx)(SY,{children:n("scene.angle")}),(0,eh.jsx)(BT,{gesture:"angle",min:-75,max:75,"aria-label":n("scene.angle")})]})]})})]}),(0,eh.jsxs)(E4,{variant:"contrast",size:i?"icon":"default",disabled:!a||s,onClick:o,children:[(0,eh.jsx)(Sb,{className:"size-5"}),(0,eh.jsx)("span",{className:"sr-only sm:not-sr-only",children:n("scene.share")})]}),i&&(0,eh.jsxs)(Bh,{children:[(0,eh.jsx)(Bp,{asChild:!0,children:(0,eh.jsx)(E4,{variant:"contrast",size:"icon",children:(0,eh.jsx)(Sm,{})})}),(0,eh.jsxs)(BA,{className:"grid gap-5",portalContainer:r,children:[(0,eh.jsx)(My,{}),(0,eh.jsx)(MR,{})]})]})]})]})}function BT({gesture:e,min:t,max:r,"aria-label":n}){let i=SQ(e),{sceneGestures:{setAngle:a,setRotation:s}}=SO(),o="angle"===e?a:s;return(0,eh.jsx)(Bf,{value:[i],onValueChange:([e])=>o(e??0),min:t,max:r,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":n})}function Bk({variant:e,open:t,portalContainer:r,showDialogCloseButton:n=!1,onOpenChange:i,onTryAgain:a,onCancel:s}){let{t:o}=th(),l=e?o("custom-interior-processing"===e?"floor.error.processingBody":"viewer-load-failed"===e?"floor.error.loadBody":"artwork-load-failed"===e||"room-load-failed"===e?`loadError.${e}`:`accessError.${e}`):"";return(0,eh.jsx)(E5,{open:t,onOpenChange:i,children:(0,eh.jsxs)(Se,{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,eh.jsxs)("div",{className:"grid gap-1",children:[(0,eh.jsx)(Sn,{children:o("floor.error.title")}),(0,eh.jsx)(Si,{className:"typo-base-14 font-medium text-text-base",children:l})]}),(0,eh.jsxs)("div",{className:"grid gap-2",children:[a&&(0,eh.jsxs)(E4,{variant:"contrast",onClick:a,children:[(0,eh.jsx)(Sd,{"aria-hidden":"true"}),o("floor.error.tryAgain")]}),s&&(0,eh.jsx)(E4,{variant:"outline",onClick:s,children:o("floor.error.cancel")}),n&&(0,eh.jsx)(E6,{asChild:!0,children:(0,eh.jsx)(E4,{variant:"outline",children:o("close")})})]})]})})}function BR({rooms:e,customRooms:t,selectedRoomId:r,isInvalidFile:n,uploadRetryRequestId:i=0,showCloseButton:a=!1,onSelectRoom:s,onUploadFile:o}){let l,{t:c}=th(),u=(0,ep.useId)(),d=(0,ep.useRef)(null);function h(e){return e.map(e=>(0,eh.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,eh.jsx)("img",{crossOrigin:"anonymous",src:ML(e),alt:"",decoding:"async",className:"size-full scale-[1.02] transform-gpu object-cover transition duration-200 group-hover:scale-105"}),(0,eh.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,ep.useEffect)(()=>{i>0&&d.current?.click()},[i]),(0,eh.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","data-room-selection-panel":!0,children:[a&&(l=(0,eh.jsx)(E4,{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,eh.jsx)(Sl,{})}),(0,eh.jsx)(E6,{asChild:!0,children:l})),(0,eh.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,eh.jsxs)("div",{className:"grid gap-2","data-testid":"floor-interior-selection-upload",children:[(0,eh.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,eh.jsx)(Ss,{className:"size-5 text-background-blue"}),c("floor.interiorSelection.uploadPhoto"),(0,eh.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,eh.jsx)("p",{className:"typo-base-12 font-medium text-destructive",children:c("floor.interiorSelection.invalidFile")})]}),(0,eh.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,eh.jsxs)("div",{className:"grid min-h-max gap-4",children:[t.length>0&&(0,eh.jsxs)("div",{className:"grid gap-3",children:[(0,eh.jsx)("h3",{className:"typo-base-16 font-medium text-text-light",children:c("floor.interiorSelection.customTitle")}),(0,eh.jsx)("div",{className:"grid grid-cols-2 gap-3 sm:grid-cols-3","data-testid":"floor-custom-interior-selection-grid",children:h(t)})]}),(0,eh.jsxs)("div",{className:"grid gap-3",children:[(0,eh.jsx)("h3",{className:"typo-base-16 font-medium text-text-light",children:c("floor.interiorSelection.presetsTitle")}),(0,eh.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,eh.jsx)(Sr,{className:"-mt-2 shrink-0 p-0 sm:mt-0",children:(0,eh.jsx)(E6,{asChild:!0,children:(0,eh.jsx)(E4,{variant:"outline",className:"w-full",children:c("close")})})})]})}function BP(e){return(0,eh.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,eh.jsx)(BR,{...e})})}function BD({open:e,showCloseButton:t=!0,portalContainer:r,onOpenChange:n,...i}){let{t:a}=th();return(0,eh.jsx)(E5,{open:e,onOpenChange:n,children:(0,eh.jsxs)(Se,{contentInsideOverlay:!0,portalContainer:r,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,eh.jsx)(Sn,{className:"sr-only",children:a("floor.interiorSelection.title")}),(0,eh.jsx)(Si,{className:"sr-only"}),(0,eh.jsx)(BR,{...i,showCloseButton:t})]})})}let B_="data-material-selection-action",BL="data-material-selection-panel";function BF(){let{t:e}=th(),{type:t}=SD();return e(`floor.materialSelection.${E1[t].catalogTitle}`)}function BN({className:e,gridClassName:t,titleClassName:r,onOpenChange:n,...i}){let a=BF(),s=(0,ep.useRef)(null),{fetchNextMaterialsPage:o,hasNextPage:l,isFetchingNextPage:c,isLoading:u,materialItems:d,selectMaterial:h,selectedMaterialId:p}=function({includeEmbeddedObject:e=!1}={}){var t;let{material:r,tinuuid:n,embeddedObject:i,selectedObject:a,setMaterial:s,setTinuuid:o,apiKey:l,baseURL:c,language:u,source:d,widgetSession:h,setAccessError:p,setLoadError:A}=SF(),{type:f,name:g}=SD(),m=i?.owner?.uuid,{data:v,error:b,isFetchingNextPage:y,fetchNextPage:w,hasNextPage:x,isLoading:C}=r0({queryKey:["room-viewer","public-objects",{apiKey:(t={apiKey:l,baseURL:c,language:u,source:d,resourceType:f}).apiKey??null,language:t.language??null,ownerUuid:m??null,resourceType:t.resourceType??null,source:t.source}],enabled:!!m,queryFn:({pageParam:e,signal:t})=>{if(!m)throw Error("Owner uuid is required.");return EX(m,e,{apiKey:l,baseURL:c,language:u,signal:t,source:d,widgetSession:h,resourceType:f})},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},r$,void 0),{requiresMaterialModel:E}=Mm(f),{getCollapseKey:S}=Mf(f),{catalogsEveryMaterial:M}=MA[E1[f].materialRole],{composition:I,productNameSource:B}=E1[f],T=(0,ep.useMemo)(()=>v?.pages.flatMap(e=>e.objs??[])??[],[v]),k=(0,ep.useMemo)(()=>"material"===B?[]:T.filter(e=>e.tinuuid&&(!e.kit?.uuid||!e.kit.name?.trim())&&(!E||e.materials?.[0]?.native?.glbUrl)),[T,B,E]),R=rJ({queries:k.map(e=>({queryKey:EK(e.tinuuid,{apiKey:l,baseURL:c,language:u,source:d,resourceType:f}),queryFn:({signal:t})=>EY(e.tinuuid,{apiKey:l,baseURL:c,language:u,signal:t,source:d,widgetSession:h,resourceType:f})}))}),P=T.flatMap(e=>{let t=R[k.indexOf(e)];return t?.isPending||t?.isError?[]:[{...e,kit:t?.data?.kit?{...e.kit,...t.data.kit}:e.kit}]}),D=(0,ep.useMemo)(()=>{let t={requiresMaterialModel:E,getCollapseKey:S};if(e)return Mu([...i?.tinuuid&&i.materials?.[0]?[i]:[],...P],null,t);return Mu(P,i,t)},[i,P,S,e,E]),_=(0,ep.useMemo)(()=>D.flatMap(e=>{if(!e.tinuuid)return[];let t="color-design"===I&&e.kit?.uuid,r=M&&!t?e.materials:e.materials?.slice(0,1);return r?.map(t=>{let r=Mb(t);return r&&e.tinuuid?{materialId:r,productName:Mv(f,e,t,g),material:t,tinuuid:e.tinuuid}:null}).filter(e=>null!==e)??[]}),[M,I,D,f,g]),L="color-design"===I&&a?.tinuuid===n&&a?.kit?.uuid?D.find(e=>S(e)===S(a)):void 0,F=L?.tinuuid!==n&&L?Mb(L.materials?.[0]??{}):r?Mb(r):"",N=b??R.find(e=>e.error)?.error,O=D.find(e=>e.tinuuid===n),Q=D.find(e=>e.tinuuid&&e.materials?.[0]);(0,ep.useEffect)(()=>{let e=El(N);e?p(e):N&&A("viewer-load-failed")},[N,p,A]),(0,ep.useEffect)(()=>{v&&0===D.length&&x&&!y&&w()},[v,w,x,y,D.length]),(0,ep.useEffect)(()=>{if(null!==r)return;let e=O??Q,t=e?.materials?.[0];e&&t&&e.tinuuid&&(s(t),o(e.tinuuid))},[Q,O,r,s,o]);let U=(0,ep.useCallback)(()=>{!1===x||y||w()},[w,x,y]),z=(0,ep.useCallback)(e=>{let t=D.find(t=>t.materials?.some(t=>Mb(t)===e)),r=t?.materials?.find(t=>Mb(t)===e);return!!t&&!!r&&!!t.tinuuid&&(s(r),o(t.tinuuid),!0)},[D,s,o]);return{fetchNextMaterialsPage:U,hasNextPage:x,isFetchingNextPage:y,isLoading:C||R.some(e=>e.isPending),materialItems:_,selectMaterial:z,selectedMaterialId:F}}({includeEmbeddedObject:!0});(0,ep.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,ep.useCallback)(e=>{let{clientHeight:t,scrollHeight:r,scrollTop:n}=e.currentTarget;n+t>=r-64&&o()},[o]),f=(0,ep.useCallback)(e=>{h(e)&&n(!1)},[n,h]);return(0,eh.jsxs)("div",{...i,className:E3("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,eh.jsx)("h2",{className:E3("typo-base-16 font-medium sm:typo-base-14 sm:font-semibold text-text-dark",r),children:a}),(0,eh.jsx)("div",{"data-testid":"material-selection-grid",ref:s,className:E3("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,eh.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,productName:n})=>{let i,a=e===p,s=(i=t.previews?.[0],i?.subRes?.small??i?.url);return(0,eh.jsxs)("button",{type:"button","data-selected":a,"aria-pressed":a,className:"group flex min-w-0 flex-col gap-1 rounded-lg bg-background-containers text-left 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:[(0,eh.jsxs)("span",{className:"relative grid aspect-square w-full shrink-0 place-items-center overflow-hidden rounded-lg border border-border p-1 transition group-hover:border-icons-normal",children:[s?(0,eh.jsx)("img",{src:s,alt:"",className:"size-full rounded-md object-cover"}):(0,eh.jsx)(Sp,{className:"size-6 text-icons-normal"}),a&&(0,eh.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,eh.jsx)(So,{className:"size-4"})})]}),(0,eh.jsx)("span",{className:"typo-base-12 line-clamp-3 w-full wrap-anywhere text-text-base",children:n})]},`${r}-${e}`)}),(u||c)&&(0,eh.jsx)("div",{className:"col-span-3 grid h-16 place-items-center",children:(0,eh.jsx)(Sx,{className:"size-6"})})]})})]})}function BO({open:e,portalContainer:t,onOpenChange:r}){let{t:n}=th(),i=BF();return(0,eh.jsx)(E5,{open:e,onOpenChange:r,children:(0,eh.jsxs)(Se,{contentInsideOverlay:!0,"data-testid":"material-selection-mobile-overlay","data-material-selection-panel":"",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,eh.jsx)(Sn,{className:"sr-only",children:i}),(0,eh.jsx)(Si,{className:"sr-only"}),(0,eh.jsx)(BN,{className:"min-h-0",gridClassName:"max-h-none",onOpenChange:r}),(0,eh.jsx)(Sr,{className:"shrink-0 p-0",children:(0,eh.jsx)(E6,{asChild:!0,children:(0,eh.jsx)(E4,{type:"button",variant:"outline",className:"w-full",children:n("close")})})})]})})}function BQ({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,eh.jsx)(CK,{"data-slot":"progress",className:E3("relative h-2 w-full overflow-hidden rounded-full bg-primary/20",e),value:t,max:i,...n,children:(0,eh.jsx)(CY,{"data-slot":"progress-indicator",className:"h-full bg-primary transition-[width]",style:{width:`${a}%`}})})}let BU=[{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 Bz({isComplete:e,open:t,onCloseAnimationEnd:r,onOpenChange:n,portalContainer:i}){let{t:a}=th(),s=(0,ep.useRef)(t),[o,l]=(0,ep.useState)(8),c=e?100:o,u=function(e){for(let t=BU.length-1;t>=0;t-=1){let r=BU[t];if(r&&e>=r.minimumProgress)return r}return BU[0]}(c);(0,ep.useEffect)(()=>{t&&!s.current&&l(8),s.current=t},[t]),(0,ep.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,eh.jsxs)("div",{role:"status","aria-live":"polite",className:"grid content-start gap-4",children:[(0,eh.jsx)("h2",{className:"typo-base-18 font-medium text-text-dark",children:a("floor.processing.title")}),(0,eh.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,eh.jsxs)("div",{className:"flex min-w-0 items-center justify-between gap-3",children:[(0,eh.jsx)("span",{className:"typo-base-14 min-w-0 flex-1 truncate text-left font-medium text-text-light",children:a(u.translationKey)}),(0,eh.jsxs)("span",{className:"typo-base-14 shrink-0 font-medium text-text-dark",children:[c,"%"]})]}),(0,eh.jsx)(BQ,{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,eh.jsx)(E5,{open:t,onOpenChange:n,children:(0,eh.jsxs)(Se,{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,eh.jsx)(Sn,{className:"sr-only",children:a("floor.processing.title")}),(0,eh.jsx)(Si,{className:"sr-only",children:a(u.translationKey)}),d]})})}let Bj={desktop:[{slot:"product-card",container:"leading",appearance:"card",actionLabelResourceTypeKey:"replaceProduct",actionVariant:"outline",actionSize:"sm",actionWidth:"auto"},{slot:"room-card",container:"leading",appearance:"card",actionLabelKey:"floor.interiorSelection.chooseInterior",actionVariant:"outline",actionSize:"sm"},{slot:"ar-card",container:"trailing",appearance:"card",actionVariant:"secondary",actionSize:"sm"}],tablet:[{slot:"product-card",container:"leading",appearance:"compact-card",actionLabelResourceTypeKey:"replaceProduct",actionVariant:"outline",actionSize:"sm",actionWidth:"auto"},{slot:"room-card",container:"trailing",appearance:"framed-row",actionLabelKey:"floor.interiorSelection.chooseInteriorShort",actionVariant:"outline",actionSize:"sm"},{slot:"ar-card",container:"trailing",appearance:"inline-compact",actionVariant:"secondary",actionSize:"default"}],phone:[{slot:"product-card",container:"leading",appearance:"flow-card",actionLabelResourceTypeKey:"replaceProductShort",actionVariant:"outline",actionSize:"sm",actionWidth:"fixed"},{slot:"room-card",container:"trailing",appearance:"plain-row",actionLabelKey:"floor.interiorSelection.chooseInterior",actionVariant:"outline",actionSize:"sm"},{slot:"ar-card",container:"trailing",appearance:"inline-large",actionVariant:"secondary",actionSize:"lg"}]},BG={desktop:[{slot:"product-card",container:"leading",appearance:"card",actionLabelResourceTypeKey:"replaceProduct",actionVariant:"outline",actionSize:"sm",actionWidth:"auto"},{slot:"room-card",container:"leading",appearance:"card",actionLabelKey:"floor.interiorSelection.chooseInterior",actionVariant:"outline",actionSize:"sm"}],tablet:[{slot:"product-card",container:"leading",appearance:"compact-card",actionLabelResourceTypeKey:"replaceProduct",actionVariant:"outline",actionSize:"sm",actionWidth:"auto"},{slot:"room-card",container:"trailing",appearance:"framed-row",actionLabelKey:"floor.interiorSelection.chooseInteriorShort",actionVariant:"outline",actionSize:"sm"}],phone:[{slot:"product-card",container:"leading",appearance:"flow-card",actionLabelResourceTypeKey:"replaceProductShort",actionVariant:"outline",actionSize:"sm",actionWidth:"auto"},{slot:"room-card",container:"trailing",appearance:"plain-row",actionLabelKey:"floor.interiorSelection.chooseInterior",actionVariant:"outline",actionSize:"sm"}]},BH={"inline-compact":"h-9 w-full rounded-xl","inline-large":"h-11 w-full rounded-xl"},BV={"inline-compact":"size-5","inline-large":"size-6"},Bq={desktop:"floor-ar-card",tablet:void 0,phone:void 0},BW=/^[a-z][a-z\d+.-]*:/i,BK={card:"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)]","compact-card":"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)]","flow-card":"flex items-center justify-start gap-4 border-b border-border-light bg-background-containers p-4 text-left"},BJ={card:"size-6 text-icons-normal","compact-card":"size-6 text-icons-normal","flow-card":"size-5 text-icons-normal"},BY={desktop:"floor-desktop-product-card",tablet:"floor-tablet-product-card",phone:"floor-mobile-product-card"},BX={card:"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)]","framed-row":"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)]","plain-row":"flex w-full items-center justify-between gap-3 rounded-full bg-background-containers text-left"},BZ={desktop:"floor-room-card",tablet:"floor-tablet-room-card",phone:void 0},B$={desktop:"floor-desktop-room-name",tablet:"floor-tablet-room-name",phone:"floor-mobile-room-name"},B0={"product-card":function({actions:e,band:t,slot:r,presentation:n}){let i,{t:a}=th(),{displayUnit:s,name:o,type:l}=SD(),{containerRef:c}=SN(),{material:u,selectedObject:d,tinuuid:h}=SF(),{variantItems:p,selectedTinuuid:A,selectVariant:f}=function(){let{tinuuid:e,selectedObject:t,selectResourceVariant:r,apiKey:n,baseURL:i,language:a,source:s,widgetSession:o}=SF(),{type:l}=SD(),{decodeVariant:c}=Mf(l),u=t?.kit?.uuid,d=t?.owner?.uuid,{data:h,fetchNextPage:p,hasNextPage:A,isFetchingNextPage:f,isFetchNextPageError:g}=r0({queryKey:EJ(u,d,{apiKey:n,baseURL:i,language:a,source:s,resourceType:l}),enabled:!!c&&!!u&&!!d,queryFn:({pageParam:e,signal:t})=>{if(!u||!d)throw Error("Kit uuid and owner uuid are required.");return EZ(u,d,e,{apiKey:n,baseURL:i,language: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},r$,void 0);(0,ep.useEffect)(()=>{!A||f||g||p({cancelRefetch:!1})},[p,A,f,g]);let m=(0,ep.useMemo)(()=>h?.pages.flatMap(e=>e.objs??[])??[],[h]),v=(0,ep.useMemo)(()=>m.flatMap(e=>{let t=c?.(e.description);return e.tinuuid&&e.materials?.[0]&&t?[{tinuuid:e.tinuuid,...t}]:[]}),[m,c]);return{variantItems:v,selectedTinuuid:e,selectVariant:e=>!!v.some(t=>t.tinuuid===e)&&(r(e),!0)}}(),g=BY[t],m=a(`units.${s}`),v=e.isMaterialSelectionOpen,b=a(v?"floor.scene.hideCatalog":`resourceType.${l}.${n.actionLabelResourceTypeKey}`),y=Mv(l,d,u,o),w=(i=u?.previews?.[0],i?.subRes?.small??i?.url??d?.preview?.subRes?.small??d?.preview?.url??d?.mainPreview),x=p.find(e=>e.tinuuid===A),C=function(e){let t=e?.trim();if(!t||BW.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}}(d?.tinuuid===h?d.destinationUrl:void 0),E=v?e.onMaterialSelectionActionPointerDown:void 0;return(0,eh.jsxs)("div",{className:BK[n.appearance],"data-chrome-slot":r,"data-neurodyn-room-viewer-product":"","data-testid":g,children:[(0,eh.jsx)("div",{className:"grid size-16 shrink-0 place-items-center overflow-hidden bg-background-base",children:w?(0,eh.jsx)("img",{src:w,alt:"",className:"size-full object-cover"}):(0,eh.jsx)(Sp,{className:BJ[n.appearance]})}),(0,eh.jsxs)("div",{className:"grid min-h-16 min-w-0 flex-1 grid-cols-1 content-center gap-2",children:[(0,eh.jsxs)("div",{className:"flex min-w-0 items-start justify-between gap-2",children:[(0,eh.jsxs)("div",{className:"min-w-0",children:[(0,eh.jsx)("div",{className:"sr-only",children:a(`resourceType.${l}.productCardTitle`)}),(0,eh.jsx)("div",{className:"typo-button-normal truncate text-text-dark",children:y})]}),C&&(0,eh.jsx)("a",{href:C,target:"_blank",rel:"noopener noreferrer",className:"typo-base-12 shrink-0 text-button-primary underline-offset-2 hover:underline","data-testid":`${g}-description-link`,children:a("floor.scene.description")})]}),(0,eh.jsxs)("div",{className:"flex flex-nowrap items-center gap-2",children:[(0,eh.jsxs)(E4,{type:"button",variant:n.actionVariant,size:n.actionSize,[B_]:!0,"aria-expanded":v,className:E3("w-fit shrink-0","fixed"===n.actionWidth&&"w-[137px]"),onPointerDown:E?e=>{e.preventDefault(),e.stopPropagation(),E()}:void 0,onClick:v?e.closeMaterialSelection:e.openMaterialSelection,children:[v?(0,eh.jsx)(Sl,{className:"size-4"}):(0,eh.jsx)(Sf,{className:"size-4"}),b]}),p.length>1&&!!x&&(0,eh.jsxs)(SX,{value:A??void 0,onValueChange:f,children:[(0,eh.jsx)(S$,{size:"sm",className:"w-fit min-w-0 shrink *:data-[slot=select-value]:block *:data-[slot=select-value]:truncate","data-testid":`${g}-variant-select`,children:(0,eh.jsx)(SZ,{})}),(0,eh.jsx)(S0,{portalContainer:c,children:p.map(e=>{var t;let r;return(0,eh.jsx)(S1,{value:e.tinuuid,children:"color"in e?e.color:(t=e.size,r=t.split("\xd7").map(e=>"cm"===s?e:Math.round(MT(Number(e)/100,s)).toString()).join("\xd7"),`${r} ${m}`)},e.tinuuid)})})]})]})]})]})},"room-card":function({actions:e,band:t,slot:r,presentation:n}){let{t:i}=th(),{room:a}=SL(),s=i(`rooms.${a.id}`,{defaultValue:a.name}),o=(0,eh.jsx)(E4,{type:"button",variant:n.actionVariant,size:n.actionSize,className:"card"===n.appearance?"w-fit":"shrink-0",onClick:e.openInteriorSelection,children:i(n.actionLabelKey)});return"card"===n.appearance?(0,eh.jsxs)("div",{className:BX[n.appearance],"data-chrome-slot":r,"data-neurodyn-room-viewer-room":"","data-testid":BZ[t],children:[(0,eh.jsx)("img",{crossOrigin:"anonymous",src:ML(a),alt:"",className:"size-16 shrink-0 rounded-lg object-cover"}),(0,eh.jsxs)("span",{className:"grid min-w-0 flex-1 content-center gap-2",children:[(0,eh.jsx)("span",{className:"typo-button-normal block min-h-[1.35em] truncate !leading-[1.35] text-text-dark","data-testid":B$[t],children:s}),o]})]}):(0,eh.jsxs)("div",{className:BX[n.appearance],"data-chrome-slot":r,"data-neurodyn-room-viewer-room":"","data-testid":BZ[t],children:[(0,eh.jsxs)("span",{className:"flex min-w-0 items-center gap-2",children:[(0,eh.jsx)("img",{crossOrigin:"anonymous",src:ML(a),alt:"",className:"size-10 shrink-0 rounded-full object-cover"}),(0,eh.jsxs)("span",{className:"grid min-w-0",children:[(0,eh.jsx)("span",{className:"typo-base-12 truncate text-text-light",children:i("floor.scene.interiorCardTitle")}),(0,eh.jsx)("span",{className:"typo-button-normal min-h-[1.35em] truncate !leading-[1.35] text-text-dark","data-testid":B$[t],children:s})]})]}),o]})},"ar-card":function({band:e,slot:t,presentation:r}){let{t:n}=th(),{room:i}=SL(),{type:a}=SD(),{tinuuid:s}=SF();return Bx(E1[a].handoff,s)?"card"===r.appearance?(0,eh.jsxs)("div",{className:"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-chrome-slot":t,"data-neurodyn-room-viewer-try-at-home":"","data-testid":Bq[e],children:[(0,eh.jsx)("img",{crossOrigin:"anonymous",src:ML(i),alt:"",className:"size-16 shrink-0 rounded-lg object-cover"}),(0,eh.jsxs)("div",{className:"grid min-w-0 flex-1 content-center gap-2",children:[(0,eh.jsx)(BS,{buttonLabel:n("floor.scene.tryAtHome"),buttonVariant:r.actionVariant,buttonSize:r.actionSize,buttonClassName:"w-fit"}),(0,eh.jsx)("div",{className:"typo-base-12 truncate font-medium text-text-light",children:n("floor.scene.tryAtHomeBody")})]})]}):(0,eh.jsx)(BS,{className:"w-full","data-chrome-slot":t,"data-neurodyn-room-viewer-try-at-home":"",buttonLabel:n("floor.scene.tryAtHome"),buttonLeadingIcon:(0,eh.jsx)(Sy,{className:BV[r.appearance]}),buttonVariant:r.actionVariant,buttonSize:r.actionSize,buttonClassName:BH[r.appearance]}):null}};function B1({actions:e,band:t,entry:r}){let n=B0[r.slot];return(0,eh.jsx)(n,{actions:e,band:t,slot:r.slot,presentation:r})}function B2({actions:e,band:t,container:r}){let{type:n}=SD(),i="immersive-panels"===E1[n].presentation?BG:Bj;return(0,eh.jsx)(eh.Fragment,{children:i[t].filter(e=>e.container===r).map(r=>(0,eh.jsx)(B1,{actions:e,band:t,entry:r},r.slot))})}async function B3(e,t={}){let r=t.source??"default",n={image:e};if(Ea({apiKey:t.apiKey,source:r})){let e=await t.widgetSession?.getTokenForRequest();return EP(n,{baseURL:t.baseURL,headers:{"x-api-key":t.apiKey,...e?{[Ez]:e}:{}},signal:t.signal,timeout:0,params:{productType:Es({apiKey:t.apiKey,source:r,resourceType:t.resourceType})}})}return t.signal?EE(n,{signal:t.signal,timeout:0}):EE(n,{timeout:0})}let B9=[{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 B4(){try{return"1"===window.localStorage.getItem("neurodyn-room-viewer:debug-mask-export")}catch{return!1}}async function B5(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 B9.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 B8="custom-interiors";function B6(){return"u">typeof crypto&&"function"==typeof crypto.randomUUID?`custom-interior-${crypto.randomUUID()}`:`custom-interior-${Date.now()}-${Math.random().toString(36).slice(2)}`}function B7(){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(B8)||e.createObjectStore(B8,{keyPath:"id"})},n.onerror=()=>r(n.error??Error("Failed to open Custom Interior store.")),n.onsuccess=()=>t(n.result)}):Promise.resolve(null)}async function Te(e,t,r=new Date){let n=await B7();if(!n)return null;let i={id:B6(),schemaVersion:1,name:e.name,fileName:e.name,createdAt:r.toISOString(),imageBlob:e,scene:t};try{let e=n.transaction(B8,"readwrite");return e.objectStore(B8).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 Tt(){let e=await B7();if(!e)return[];try{return await new Promise((t,r)=>{let n=e.transaction(B8,"readonly").objectStore(B8).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 Tr(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}}}function Tn(e){let t="dialog"===e?"interior-selection":"scene";return{step:t,hasSceneSelection:"scene"===t,sceneResetKey:0}}function Ti(e,t){switch(t.type){case"clear-interior-selection":return{...e,step:"interior-selection",hasSceneSelection:!1,automaticRoomId:t.automaticRoomId};case"select-initial-room":return{step:"scene",hasSceneSelection:!0,sceneResetKey:e.sceneResetKey+1,automaticRoomId:t.roomId};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 Ta(e,t){return!e.aborted&&t()}async function Ts({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(!Ta(e,a))return null;s()&&n(A,i.name).catch(o);let f=h(i,A);return Ta(e,a)&&f&&(d(i,A).catch(l),c(),await p(),Ta(e,a))?(r(f),f):null}function To(){return new Promise(e=>window.setTimeout(e,250))}function Tl(e){console.error("Failed to export room debug mask",e)}function Tc(e){console.error("Failed to persist Custom Interior",e)}function Tu(e){console.error("Failed to prepare Custom Interior",e)}let Td={"immersive-room":function({showDialogCloseButton:e=!1}){var t;let{t:r}=th(),{name:n,type:i}=SD(),{accessError:a,glbUrl:s,apiKey:o,baseURL:l,hasRooms:c,source:u,widgetSession:d,isViewerAccessPending:h,loadError:p,selectedObject:A,tinuuid:f}=SF(),{clearActiveError:g,handleAccessError:m}=function(){let{setAccessError:e,setLoadError:t}=SF();return{clearActiveError:(0,ep.useCallback)(()=>{e(null),t(null)},[e,t]),handleAccessError:e}}(),{room:v,sourceRooms:b}=SL(),{resourceRef:y,containerRef:w,setContainerRef:x,sceneLoad:C,isRoomScenePending:E}=SN(),{dialogPortalContainer:S,viewerSurface:M,viewerDialogOpen:I,onViewerDialogOpenChange:B}=S_(),[T,k]=(0,ep.useState)(!1),[R,P]=(0,ep.useState)(!1),D=(0,ep.useRef)(null),_=(0,ep.useRef)(!1),L=a??p,F=!!L,N=(t=r("floor.scene.companyFallback"),A?.owner?.name??A?.brand??t),{canShare:O,download:Q,isDownloading:U,isSharing:z,share:j}=BI({captureRef:D,fallbackToClipboard:!0,shareMessage:r(`shareMessage.${i}`)}),G=(0,ep.useCallback)(()=>{k(!1),P(!1)},[]),H=(0,ep.useCallback)(()=>{if(_.current){_.current=!1;return}k(!0),P(!1)},[]),V=(0,ep.useCallback)(()=>{_.current=!0,G()},[G]),q=(0,ep.useCallback)(()=>{P(!0),k(!1)},[]),W=function({activeError:e,apiKey:t,baseURL:r,clearActiveError:n,closeMaterialSelection:i,glbUrl:a,handleAccessError:s,hasDialogPortalContainer:o,hasRooms:l,isRoomScenePending:c,isViewerAccessPending:u,onViewerDialogOpenChange:d,resourceType:h,sceneLoad:p,source:A,sourceRooms:f,viewerDialogOpen:g,viewerSurface:m,widgetSession:v}){let b=function(e){let{initialRoomId:t,room:r,sourceRooms:n}=SL(),{isViewerAccessPending:i,loadError:a,setLoadError:s}=SF(),{type:o}=SD(),{patchSceneLoad:l,sceneGestures:{setAngle:c,setRotation:u}}=SO(),d=(0,ep.useMemo)(()=>({patchSceneLoad:l,setAngle:c,setRotation:u}),[l,c,u]),h=n.find(e=>e.id===t),p=!!h&&(!h?.scene||II(h.scene,E2(o)).length>0),A=function(e,t,r){let[n,i]=(0,ep.useReducer)(Ti,e,Tn),[a,s]=(0,ep.useState)();!r?.isPending&&a!==r?.roomId&&(s(r?.roomId),r&&i(r.isAvailable?{type:"select-initial-room",roomId:r.roomId}:{type:"clear-interior-selection"}));let o=(0,ep.useCallback)(e=>{e(),function({patchSceneLoad:e,setAngle:t,setRotation:r}){t(0),r(0),e(SH)}(t),i({type:"commit-interior-selection"})},[t]),l=(0,ep.useCallback)(()=>{i({type:"dismiss-interior-selection"})},[]),c=(0,ep.useCallback)(()=>{i({type:"open-interior-selection"})},[]),u=(0,ep.useCallback)(()=>{i({type:"recover-to-scene"})},[]),d=(0,ep.useCallback)(()=>{i({type:"return-to-interior-selection"})},[]),h=(0,ep.useCallback)(()=>{i({type:"clear-interior-selection",automaticRoomId:n.automaticRoomId})},[n.automaticRoomId]),p=(0,ep.useCallback)(()=>{i({type:"start-custom-interior-processing"})},[]);return(0,ep.useMemo)(()=>({...n,commitInteriorSelection:o,dismissInteriorSelection:l,openInteriorSelection:c,recoverToScene:u,returnToInteriorSelection:d,clearInteriorSelection:h,startCustomInteriorProcessing:p}),[o,l,c,u,d,h,p,n])}(e,d,t?{roomId:t,isAvailable:p,isPending:i}:void 0),{automaticRoomId:f,clearInteriorSelection:g}=A;return(0,ep.useEffect)(()=>{f&&r.id===f&&"room-load-failed"===a&&(g(),s(null))},[f,g,a,r.id,s]),A}(m),{appendRuntimeCustomInterior:y,customRooms:w}=function({listCustomInteriors:e}){let{appendRuntimeCustomInterior:t,customRooms:r,replaceRuntimeCustomInteriors:n}=function(){let[e,t]=(0,ep.useState)(()=>[]),r=(0,ep.useRef)(null),n=(0,ep.useCallback)(e=>{r.current?.revokeObjectUrls();let n=Tr(e);return r.current=n,t(n.rooms),n.rooms},[]),i=(0,ep.useCallback)((e,n)=>{let i=Tr([{id:B6(),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,ep.useEffect)(()=>()=>{r.current?.revokeObjectUrls()},[]),(0,ep.useMemo)(()=>({appendRuntimeCustomInterior:i,customRooms:e,replaceRuntimeCustomInteriors:n}),[i,e,n])}(),i=(0,ep.useRef)(!0);(0,ep.useEffect)(()=>(i.current=!0,()=>{i.current=!1}),[]);let a=(0,ep.useCallback)(async()=>{let t=await e();i.current&&n(t)},[e,n]);return(0,ep.useEffect)(()=>{a()},[a]),(0,ep.useMemo)(()=>({appendRuntimeCustomInterior:t,customRooms:r,replaceRuntimeCustomInteriors:n,refreshCustomInteriors:a}),[t,r,a,n])}({listCustomInteriors:Tt}),x=(0,ep.useMemo)(()=>new Set(f.map(e=>e.id)),[f]),{commitCustomInteriorSelection:C,selectInterior:E}=function(e){let{room:t,setRoomId:r,setRooms:n}=SL(),{widgetSession:i}=SF();return function({floorFlow:e,customRooms:t,selectedRoomId:r,onInteriorSelected:n,restoreSourceRooms:i,setRoomId:a,setRooms:s}){let o=(0,ep.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,ep.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,ep.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,ep.useCallback)(e=>{t.some(t=>t.id===e)?c(e):l(e)},[t,c,l]);return(0,ep.useMemo)(()=>({commitCustomInteriorSelection:o,selectInterior:u}),[o,u])}({...e,selectedRoomId:t.id,onInteriorSelected:()=>EV(i,"interior_selected"),setRoomId:r,setRooms:n})}({floorFlow:b,customRooms:w,restoreSourceRooms:(0,ep.useCallback)(e=>[...f,...e.filter(e=>!x.has(e.id))],[x,f])}),S=function(e){let{setIsRoomScenePending:t}=SO();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,ep.useState)(!1),[g,m]=(0,ep.useState)(!1),[v,b]=(0,ep.useState)(null),[y,w]=(0,ep.useState)(null),[x,C]=(0,ep.useState)(!1),[E,S]=(0,ep.useState)(0),M=(0,ep.useRef)(null),I=(0,ep.useRef)(!1),B=(0,ep.useRef)(!0),T=(0,ep.useRef)(v);v&&(T.current=v),(0,ep.useEffect)(()=>(B.current=!0,()=>{B.current=!1,M.current?.abort()}),[]);let k=(0,ep.useCallback)(()=>{b(null),w(null),C(!1)},[]),R=(0,ep.useCallback)(e=>{k(),f(!1),e()},[k]),P=(0,ep.useCallback)(async A=>{if(k(),!A.type.startsWith("image/"))return void f(!0);f(!1),m(!1),t.startCustomInteriorProcessing(),I.current=!0;let g=new AbortController;M.current?.abort(),M.current=g,d(!0);try{await Ts({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=El(t);if(e){I.current&&C(!0),a(e);return}if(l(t),I.current){w("custom-interior-processing"),C(!0);return}b("custom-interior-processing")}finally{M.current===g&&(M.current=null,B.current&&d(!1))}},[e,t,r,n,i,a,s,o,l,c,k,u,d,h,p]),D=(0,ep.useCallback)(()=>{k(),f(!1),t.returnToInteriorSelection(),S(e=>e+1)},[t,k]),_=(0,ep.useCallback)(()=>{k(),t.returnToInteriorSelection()},[t,k]),L=(0,ep.useCallback)(({clearError:e,closeMaterialSelection:r})=>{e(),r(),t.hasSceneSelection&&t.recoverToScene()},[t]),F=(0,ep.useCallback)(()=>{I.current=!1,C(!1),y&&(b(y),w(null))},[y]),N=(0,ep.useCallback)(()=>B.current,[]);return(0,ep.useMemo)(()=>({displayedUploadError:v??T.current,isCustomInteriorProcessingComplete:g,isInvalidFile:A,isMounted:N,isProcessingDialogClosingForError:x,pendingUploadError:y,uploadError:v,uploadRetryRequestId:E,cancelUploadError:_,handleProcessingDialogCloseAnimationEnd:F,openInteriorSelection:R,processUploadFile:P,recoverFromActiveError:L,resetUploadErrorPresentation:k,tryUploadAgain:D}),[_,F,g,A,N,x,R,y,P,L,k,D,v,E])}({...e,setIsRoomScenePending:t})}({apiOptions:(0,ep.useMemo)(()=>({resourceType:h,apiKey:t,baseURL:r,source:A,widgetSession:v}),[t,r,h,A,v]),floorFlow:b,commitCustomInteriorSelection:C,downloadDebugMask:B5,isDebugMaskExportEnabled:B4,onAccessError:s,onDebugMaskError:Tl,onPersistenceError:Tc,onProcessingError:Tu,predictRoomScene:B3,saveCustomInterior:Te,trackRuntimeCustomInterior:y,waitForProcessingCompletion:To}),{dismissInteriorSelection:M,hasSceneSelection:I,openInteriorSelection:B,sceneResetKey:T,step:k}=b,{cancelUploadError:R,displayedUploadError:P,handleProcessingDialogCloseAnimationEnd:D,isCustomInteriorProcessingComplete:_,isInvalidFile:L,isProcessingDialogClosingForError:F,openInteriorSelection:N,pendingUploadError:O,processUploadFile:Q,recoverFromActiveError:U,resetUploadErrorPresentation:z,tryUploadAgain:j,uploadError:G,uploadRetryRequestId:H}=S,V=l&&I,q=(0,ep.useRef)(e),W=!!(e&&V&&a);e&&(q.current=e);let K=(0,ep.useCallback)(()=>{V&&(z(),M())},[M,V,z]),J=(0,ep.useCallback)(()=>{i(),N(B)},[i,B,N]),Y=(0,ep.useCallback)(()=>{U({clearError:n,closeMaterialSelection:i})},[n,i,U]),X=(0,ep.useCallback)(e=>{if(!e){if(V)return void K();d?.(!1)}},[K,V,d]),Z=(0,ep.useCallback)(e=>{if(!e){if(W)return void Y();d?.(!1)}},[W,Y,d]),$=(0,ep.useCallback)(e=>{e||R()},[R]);!function({fallbackMs:e,handleProcessingDialogCloseAnimationEnd:t,isProcessingDialogClosingForError:r}){(0,ep.useEffect)(()=>{if(!r)return;let n=window.setTimeout(t,e);return()=>window.clearTimeout(n)},[e,t,r])}({fallbackMs:220,handleProcessingDialogCloseAnimationEnd:D,isProcessingDialogClosingForError:F});let ee=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||!SG(c),resetKey:r.sceneResetKey,shouldRender:m,shouldRenderDialog:m},surface:{usesSiblingDialogFlow:p},uploadErrorDialog:{open:!a&&!e&&!!u&&A}}}({activeError:e,canRecoverFromActiveError:W,floorFlow:{hasSceneSelection:I,sceneResetKey:T,step:k},hasDialogPortalContainer:o,hasRooms:l,isProcessingDialogClosingForError:F,isRoomScenePending:c,isViewerAccessPending:u,pendingUploadError:O,sceneLoad:p,uploadError:G,viewerDialogOpen:g,viewerSurface:m});return{...ee,activeErrorDialog:{...ee.activeErrorDialog,onCancel:W?Y:void 0,onOpenChange:Z,onTryAgain:W?Y:void 0,variant:e??q.current},customRooms:w,interiorSelection:{...ee.interiorSelection,isInvalidFile:L,onOpenChange:X,onSelectRoom:E,onUploadFile:Q,openFromScene:J,uploadRetryRequestId:H},sourceRooms:f,processingDialog:{...ee.processingDialog,isComplete:_,onCloseAnimationEnd:D,onOpenChange:ee.surface.usesSiblingDialogFlow?d:void 0},step:k,uploadErrorDialog:{...ee.uploadErrorDialog,onCancel:R,onOpenChange:$,onTryAgain:j,variant:P}}}({activeError:L,apiKey:o,baseURL:l,clearActiveError:g,closeMaterialSelection:G,glbUrl:s,handleAccessError:m,hasDialogPortalContainer:null!==S,hasRooms:c,isRoomScenePending:E,isViewerAccessPending:h,onViewerDialogOpenChange:B,resourceType:i,sceneLoad:C,source:u,sourceRooms:b,viewerDialogOpen:I,viewerSurface:M,widgetSession:d}),K=(0,ep.useRef)(null),J=Bd(W.scene.isLoading,K),Y=Bu(W.scene.isLoading||!W.scene.shouldRender||!I,K),X=M7(),{pending:Z,finish:$}=function(e,t,r){let[n,i]=(0,ep.useState)({open:e,pending:e&&t,sceneKey:r});n.open!==e?i({open:e,pending:e&&t,sceneKey:r}):n.sceneKey!==r?i({...n,sceneKey:r,pending:n.pending&&null===n.sceneKey}):n.pending&&!t&&i({...n,pending:!1});let a=(0,ep.useCallback)(()=>i(e=>({...e,pending:!1})),[]);return{pending:e&&n.pending,finish:a}}(I,Mj("(max-width: 639px)")&&"focus-resource"===E1[i].introduction,W.scene.shouldRender?`${W.scene.resetKey}:${f??""}`:null),ee=X?.select,et=(0,ep.useCallback)(()=>{$(),ee?.("0,0")},[$,ee]),er=(0,ep.useMemo)(()=>Z?{ready:Y,target:y,onComplete:et,onCancel:$}:void 0,[Z,et,$,Y,y]),en=W.interiorSelection.openFromScene,ei=(0,ep.useCallback)(()=>{G(),en()},[G,en]),ea=(0,ep.useMemo)(()=>({isMaterialSelectionOpen:T,openMaterialSelection:H,closeMaterialSelection:G,onMaterialSelectionActionPointerDown:V,openInteriorSelection:ei}),[G,V,ei,H,T]),es=(0,ep.useMemo)(()=>({isMaterialSelectionOpen:R,openMaterialSelection:q,closeMaterialSelection:G,openInteriorSelection:ei}),[G,ei,q,R]);(0,ep.useEffect)(()=>{if(T)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(`[${B_}], [${BL}]`)||k(!1)}function t(e){"Escape"===e.key&&k(!1)}},[T]);let eo=W.surface.usesSiblingDialogFlow?S:w,el=(0,eh.jsxs)(eh.Fragment,{children:[(0,eh.jsx)("div",{className:"absolute inset-0 bg-constant-black","data-testid":"floor-scene-background-base"}),(0,eh.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,eh.jsx)("img",{crossOrigin:"anonymous",src:ML(v),alt:"",className:"block size-full max-w-none object-cover object-center opacity-50"})}),(0,eh.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,eh.jsx)("div",{className:"min-w-0 pt-1",children:(0,eh.jsx)("h1",{"data-testid":"floor-scene-header-company",className:"typo-base-16 truncate font-medium lg:typo-base-18",children:N})}),(0,eh.jsxs)("div",{className:"pointer-events-auto inline-flex shrink-0 items-center gap-2",children:[(0,eh.jsxs)(E4,{type:"button",variant:"secondary","aria-label":r("floor.scene.share"),"data-neurodyn-room-viewer-share":"",disabled:!O||z,onClick:j,className:"size-10 rounded-full px-0 lg:h-9 lg:w-auto lg:rounded-xl lg:px-3.5",children:[(0,eh.jsx)(Sb,{className:"size-5"}),(0,eh.jsx)("span",{className:"hidden lg:inline",children:r("floor.scene.share")})]}),(0,eh.jsxs)(E4,{type:"button",variant:"secondary","aria-label":r("floor.scene.download"),"data-neurodyn-room-viewer-download":"",disabled:U,onClick:Q,className:"size-10 rounded-full px-0 lg:h-9 lg:w-auto lg:rounded-xl lg:px-3.5",children:[(0,eh.jsx)(Sc,{className:"size-5"}),(0,eh.jsx)("span",{className:"hidden lg:inline",children:r("floor.scene.download")})]}),e&&(0,eh.jsx)(E6,{asChild:!0,children:(0,eh.jsxs)(E4,{type:"button",variant:"secondary","aria-label":r("close"),className:"size-10 rounded-full px-0 lg:h-9 lg:w-auto lg:rounded-xl lg:px-3.5",children:[(0,eh.jsx)("span",{className:"hidden lg:inline",children:r("close")}),(0,eh.jsx)(Sl,{className:"!size-5"})]})})]})]}),(0,eh.jsxs)("div",{className:"relative z-10 size-full min-h-0 min-w-0","data-testid":"floor-scene-viewport",children:[(0,eh.jsx)(Bc,{contentKey:W.scene.resetKey,introduction:er,captureRef:D,className:"relative z-10 size-full min-h-0",canvasWrapperClassName:"p-0 sm:pt-0 sm:pb-0"}),(0,eh.jsx)("div",{"aria-hidden":!W.scene.isLoading,className:E3("absolute inset-0 z-10 flex items-center justify-center bg-radial from-background-containers to-background-base-2 transition-opacity",W.scene.isLoading?"opacity-100 pointer-events-auto duration-0":"opacity-0 pointer-events-none duration-250ms"),ref:K,"data-testid":"floor-scene-loader",style:{transitionDuration:W.scene.isLoading?"0ms":"250ms"},children:J&&(0,eh.jsx)(Sx,{variant:"logo"})})]}),(0,eh.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,eh.jsx)("div",{className:"pointer-events-auto flex min-w-0 items-stretch gap-3",children:(0,eh.jsx)(B2,{actions:ea,band:"desktop",container:"leading"})}),(0,eh.jsx)("div",{className:"pointer-events-auto",children:(0,eh.jsx)(B2,{actions:ea,band:"desktop",container:"trailing"})})]}),(0,eh.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,eh.jsx)("div",{className:"pointer-events-auto flex min-w-0 items-stretch gap-3",children:(0,eh.jsx)(B2,{actions:ea,band:"tablet",container:"leading"})}),(0,eh.jsx)("div",{className:"pointer-events-auto grid w-[254px] gap-2",children:(0,eh.jsx)(B2,{actions:ea,band:"tablet",container:"trailing"})})]}),(0,eh.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,eh.jsx)("div",{className:"grid",children:(0,eh.jsx)(B2,{actions:es,band:"phone",container:"leading"})}),(0,eh.jsx)("div",{className:"grid gap-4 bg-background-containers px-6 pt-4 pb-6","data-testid":"floor-mobile-bottom-actions",children:(0,eh.jsx)(B2,{actions:es,band:"phone",container:"trailing"})})]}),T&&!F&&(0,eh.jsx)(BN,{[BL]:!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:G}),(0,eh.jsx)(BO,{open:R&&!F,portalContainer:eo,onOpenChange:P})]}),ec=W.interiorSelection.shouldRender?"dialog"===W.interiorSelection.presentation?(0,eh.jsx)(BD,{open:W.interiorSelection.open,showCloseButton:e||W.scene.shouldRender,portalContainer:eo,rooms:W.sourceRooms,customRooms:W.customRooms,selectedRoomId:v.id,isInvalidFile:W.interiorSelection.isInvalidFile,uploadRetryRequestId:W.interiorSelection.uploadRetryRequestId,onOpenChange:W.interiorSelection.onOpenChange,onSelectRoom:W.interiorSelection.onSelectRoom,onUploadFile:W.interiorSelection.onUploadFile}):"screen"===W.interiorSelection.presentation?(0,eh.jsx)(BP,{rooms:W.sourceRooms,customRooms:W.customRooms,selectedRoomId:v.id,isInvalidFile:W.interiorSelection.isInvalidFile,uploadRetryRequestId:W.interiorSelection.uploadRetryRequestId,showCloseButton:e,onSelectRoom:W.interiorSelection.onSelectRoom,onUploadFile:W.interiorSelection.onUploadFile}):null:null,eu=(0,eh.jsx)(Bz,{isComplete:W.processingDialog.isComplete,open:W.processingDialog.open,portalContainer:eo,onCloseAnimationEnd:W.processingDialog.onCloseAnimationEnd,onOpenChange:W.processingDialog.onOpenChange}),ed=(0,eh.jsxs)(eh.Fragment,{children:[(0,eh.jsx)(Bk,{variant:W.activeErrorDialog.variant,open:W.activeErrorDialog.open,portalContainer:eo,showDialogCloseButton:e&&W.activeErrorDialog.showCloseButton,onOpenChange:W.activeErrorDialog.onOpenChange,onTryAgain:W.activeErrorDialog.onTryAgain,onCancel:W.activeErrorDialog.onCancel}),(0,eh.jsx)(Bk,{variant:W.uploadErrorDialog.variant,open:W.uploadErrorDialog.open,portalContainer:eo,onOpenChange:W.uploadErrorDialog.onOpenChange,onTryAgain:W.uploadErrorDialog.onTryAgain,onCancel:W.uploadErrorDialog.onCancel})]}),eA=(0,eh.jsxs)("div",{ref:x,className:"relative grid size-full grid-rows-[minmax(0,1fr)_auto] overflow-hidden text-foreground sm:block","data-neurodyn-room-viewer-container":"","data-testid":"floor-viewer-root",children:[h?(0,eh.jsx)("div",{className:"flex size-full items-center justify-center bg-radial from-background-containers to-background-base-2",children:(0,eh.jsx)(Sx,{variant:"logo"})}):W.scene.shouldRender?el:null,!W.surface.usesSiblingDialogFlow&&ec,!W.surface.usesSiblingDialogFlow&&eu]});return W.surface.usesSiblingDialogFlow?(0,eh.jsxs)(eh.Fragment,{children:[(W.scene.shouldRenderDialog||h)&&(0,eh.jsx)(E5,{open:I,onOpenChange:B,children:(0,eh.jsxs)(Se,{className:SC,contentInsideOverlay:!0,portalContainer:S,showCloseButton:!1,onInteractOutside:e=>{e.preventDefault()},children:[(0,eh.jsx)(Sn,{className:"sr-only",children:n}),(0,eh.jsx)(Si,{className:"sr-only"}),eA]})}),ec,eu,ed]}):(0,eh.jsxs)(eh.Fragment,{children:[eA,ed]})},"framed-scene":function({showDialogCloseButton:e=!1}){let{name:t}=SD(),{isViewerAccessPending:r,accessError:n,loadError:i,setLoadError:a,hasRooms:s}=SF(),{setContainerRef:o,sceneLoad:l,isRoomScenePending:c}=SN(),{dialogPortalContainer:u,viewerSurface:d,viewerDialogOpen:h,onViewerDialogOpenChange:p}=S_(),{t:A}=th(),f=(0,ep.useRef)(null),g=r||c||s&&!SG(l),m=(0,ep.useRef)(null),v=Bd(g,m),b=(0,ep.useMemo)(()=>(0,eh.jsx)(BB,{captureRef:f}),[]),y=n??i,w=y?(0,eh.jsx)("div",{ref:o,"data-neurodyn-room-viewer-container":"",className:"relative size-full overflow-hidden bg-radial from-background-containers to-background-base-2 text-foreground",children:(0,eh.jsx)(MU,{variant:y,showDialogCloseButton:e})}):(0,eh.jsxs)("div",{ref:o,"data-neurodyn-room-viewer-container":"",className:"relative size-full bg-radial from-background-containers to-background-base-2 text-foreground overflow-hidden",children:[e&&(0,eh.jsx)(E6,{asChild:!0,children:(0,eh.jsxs)(E4,{className:"absolute top-3 right-6 z-20",variant:"secondary",children:[A("close"),(0,eh.jsx)(o5,{})]})}),!r&&(s?(0,eh.jsxs)(eh.Fragment,{children:[(0,eh.jsx)(MQ,{className:"absolute top-0 right-0 left-0 z-15"}),(0,eh.jsxs)("div",{className:"size-full max-w-full grid grid-rows-[1fr_auto]",children:[(0,eh.jsx)(Ic,{onError:()=>a("viewer-load-failed"),children:(0,eh.jsx)(Bc,{captureRef:f,className:"size-full min-h-0",controls:b})}),(0,eh.jsx)(MO,{className:"bg-background"})]})]}):(0,eh.jsx)(MN,{className:"absolute inset-x-0 bottom-0 bg-background"})),(0,eh.jsx)("div",{"aria-hidden":!g,className:E3("absolute inset-0 z-10 flex items-center justify-center bg-radial from-background-containers to-background-base-2 transition-opacity",g?"opacity-100 pointer-events-auto duration-0":"opacity-0 pointer-events-none duration-250ms"),ref:m,children:v&&(0,eh.jsx)(Sx,{variant:"logo"})})]});return"dialog"!==d?w:(0,eh.jsx)(E5,{open:h,onOpenChange:p,children:(0,eh.jsxs)(Se,{className:SC,contentInsideOverlay:!0,portalContainer:u,showCloseButton:!1,onInteractOutside:e=>{e.preventDefault()},children:[(0,eh.jsxs)(St,{className:"sr-only",children:[(0,eh.jsx)(Sn,{children:t}),(0,eh.jsx)(Si,{})]}),w]})})}};function Th({showDialogCloseButton:e=!1}){let{type:t}=SD(),r=Td[E1[t].chrome];return(0,eh.jsx)(r,{showDialogCloseButton:e})}let Tp=0,TA={angle:0,rotation:0,isDragging:!1};function Tf(){let e=TA,t=new Set;function r(r){return n=>{let i="function"==typeof n?n(e[r]):n;Object.is(i,e[r])||(e={...e,[r]:i},t.forEach(e=>e()))}}return{getState:()=>e,subscribe:e=>(t.add(e),()=>{t.delete(e)}),setAngle:r("angle"),setRotation:r("rotation"),setIsDragging:r("isDragging")}}let Tg=[];function Tm(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 Tv({children:e,src:t,tinuuid:r,roomId:n,type:i,viewerSurface:a,dialogPortalContainer:s=null,viewerDialogOpen:o=!0,onViewerDialogOpenChange:l,width:c,height:u,displayUnit:d,name:h,apiKey:p,baseURL:A,source:f,externalWidgetSession:g}){var m,v;let b=function(){let{t:e}=th();return(0,ep.useMemo)(()=>[{value:.025,label:`2.5 ${e("units.cm")}`},{value:.05,label:`5 ${e("units.cm")}`}],[e])}(),y=Mk(d),w=function(){let{i18n:e}=th();return"ru"===(e.resolvedLanguage??e.language)?"ru":"en"}(),x=Mm(i),C="immersive-room"===E1[i].chrome&&n?.trim()||void 0,E="finish"===E1[i].materialRole,{offersSizeVariants:S}=Mf(i),M="floor-room-presets"===E1[i].roomPresets?Ml:Mo,I=Ea({apiKey:p,baseURL:A,source:f}),[B,T]=(0,ep.useState)(r),[k,R]=(0,ep.useState)(null),P=(0,ep.useCallback)(e=>{R(null),T(e)},[]),D=(0,ep.useCallback)(e=>{R(e),T(e)},[]),[_,L]=(0,ep.useState)(null),[F,N]=(0,ep.useState)(b[0].value),[O,Q]=(0,ep.useState)(y[0].value),[U]=(0,ep.useState)(Tf),[z,j]=(0,ep.useState)(null),[G,H]=(0,ep.useState)(()=>({layoutReady:!1,placementReady:!1,materialReady:"artwork-src"===x.materialSource,artifactsReady:!1,assetsReady:!1,prepareReady:!1,shadersReady:!1})),[V,q]=(0,ep.useState)(!1),[W,K]=(0,ep.useState)(null),[J,Y]=(0,ep.useState)(null),X=(0,ep.useRef)(null),Z=(0,ep.useRef)(new Set),$=(0,ep.useRef)(null),ee=(0,ep.useRef)(!0),et=(0,ep.useRef)(!1),er="object-glb"===x.materialSource,en="default"===f&&void 0!==p,ei=Eo("wall-panel"===(m={apiKey:p,baseURL:A,source:f,resourceType:i}).resourceType?m:{...m,resourceType:void 0}),ea=r0({queryKey:["room-viewer","activate",{apiKey:p??null,source:f,resourceType:i}],enabled:en,queryFn:({signal:e})=>EM(ei.query,{...ei.config,baseURL:A,headers:{"x-api-key":p},signal:e})},rT,void 0),es=El(ea.error),eo=(0,ep.useMemo)(()=>{let e=ea.data;return EH(e?.widgetSession,{apiConfig:{baseURL:A,headers:{"x-api-key":p}}})},[ea.data,p,A]),el=g instanceof EG?g:null,ec=g instanceof EG?null:g,eu=ec?.token,ed=ec?.sid,eA=ec?.expiresIn,ef=(0,ep.useMemo)(()=>el||(EH({token:eu,sid:ed,expiresIn:eA},{apiConfig:{baseURL:A,headers:{"x-api-key":p}}})??eo),[eo,p,A,el,eu,ed,eA]),eg="shopify"===f?null!==ef:en&&ea.isSuccess,em=r0({queryKey:["room-viewer","rooms",{apiKey:(v={apiKey:p,baseURL:A,language:w,source:f,widgetSession:ef,resourceType:i}).apiKey??null,language:v.language??null,source:v.source,resourceType:v.resourceType??null,widgetSessionId:v.widgetSession?.sid??null}],enabled:I&&eg,queryFn:async({signal:e})=>{try{return await E$({apiKey:p,baseURL:A,language:w,signal:e,source:f,widgetSession:ef,resourceType:i})}catch(e){if(El(e))throw e;return[]}}},rT,void 0),ev=I?em.data??Tg:M,[eb,ey]=(0,ep.useState)(()=>({rooms:ev,sourceRooms:ev})),ew=(0,ep.useMemo)(()=>Tm(eb.rooms,eb.sourceRooms,ev),[eb.rooms,eb.sourceRooms,ev]),ex=(0,ep.useCallback)(e=>{ey(t=>{let r=Tm(t.rooms,t.sourceRooms,ev);return{rooms:"function"==typeof e?e(r):e,sourceRooms:ev}})},[ev]),[eC,eE]=(0,ep.useState)(()=>C??M[0].id),[eS,eM]=(0,ep.useState)(C);eS!==C&&(eM(C),C&&(eE(C),H(e=>Sz(e,SH)),Y(e=>"room-load-failed"===e?null:e)));let eI=ew.find(e=>e.id===eC),eB=eI??ew[0]??M[0],eT="rotate-on-floor"===E1[i].manipulation;(0,ep.useLayoutEffect)(()=>{C&&(U.setAngle(0),U.setRotation(0))},[C,U]),(0,ep.useEffect)(()=>{eT&&U.setRotation(0)},[eT,eB.id,U]);let ek=ew.length>0;!eI&&ew[0]&&eC!==ew[0].id&&eE(ew[0].id);let eR=!en||ea.isSuccess||ea.isError&&null===es,eP=r0({queryKey:EK(r??void 0,{apiKey:p,baseURL:A,language:w,source:f,resourceType:i}),enabled:eR&&er&&null===_&&!!r,queryFn:async({signal:e})=>{if(!r)throw Error("Tinuuid is required.");return EY(r,{apiKey:p,baseURL:A,language:w,signal:e,source:f,widgetSession:ef,resourceType:i})}},rT,void 0),eD=r0({queryKey:EK(B??void 0,{apiKey:p,baseURL:A,language:w,source:f,resourceType:i}),enabled:eR&&er&&!!B,placeholderData:rh,queryFn:async({signal:e})=>{if(!B)throw Error("Tinuuid is required.");return EY(B,{apiKey:p,baseURL:A,language:w,signal:e,source:f,widgetSession:ef,resourceType:i})}},rT,void 0),e_=eP.data??null,eL=eD.data??null,eF=e_?.materials?.[0]??null,eN=_?.native?.glbUrl??null,eO=El(eP.error),eQ=El(em.error),eU=I&&("shopify"===f?null===ef||em.isLoading:ea.isSuccess&&em.isLoading),ez=en&&ea.isLoading||eU,ej=ea.error&&null===es?"viewer-load-failed":null,eG=eP.error&&null===eO?"viewer-load-failed":null,eH="artwork-src"===x.materialSource&&("string"!=typeof t||0===t.trim().length)?"artwork-load-failed":null,eV=er&&!ez&&(!r||eP.isSuccess&&null===eF||null!==_&&null===eN)?"viewer-load-failed":null,eq=null!==k&&k===B&&(eD.isError||eD.isSuccess&&eL?.tinuuid===B&&!eL.materials?.[0]?.native?.glbUrl)?"viewer-load-failed":null,eW=W??es??eQ??eO,eK=J??eq??ej??eG??eV??eH,eJ=(0,ep.useCallback)(e=>{H(t=>Sz(t,e))},[]);(0,ep.useEffect)(()=>{let e=new Set(ew.map(e=>e.image_url));for(let t of Array.from(Z.current))e.has(t)||(URL.revokeObjectURL(t),Z.current.delete(t))},[ew]),(0,ep.useEffect)(()=>{let e=Z.current;return ee.current=!0,()=>{for(let t of(ee.current=!1,$.current?.abort(),Array.from(e)))URL.revokeObjectURL(t);e.clear()}},[]);let eY=(0,ep.useCallback)(async e=>{let t=null,r=new AbortController;$.current?.abort(),$.current=r,q(!0);try{t=URL.createObjectURL(e);let n=await B3(e,{resourceType:i,apiKey:p,baseURL:A,source:f,signal:r.signal,widgetSession:ef});if(r.signal.aborted||!ee.current)return void URL.revokeObjectURL(t);B4()&&B5(n,e.name).catch(e=>{console.error("Failed to export room debug mask",e)});let a={id:(Tp+=1,`room-custom-${Tp}`),name:e.name,image_url:t,scene:n};Z.current.add(t),eJ({placementReady:!1,prepareReady:!1,artifactsReady:!1,assetsReady:!1}),ex(e=>[a,...e]),eE(a.id)}catch(n){if(t&&URL.revokeObjectURL(t),r.signal.aborted)return;let e=El(n);if(e)return void K(e);console.error("Failed to prepare custom room scene",n)}finally{$.current===r&&($.current=null,ee.current&&q(!1))}},[p,A,eJ,ex,f,i,ef]);(0,ep.useEffect)(()=>{if("dialog"!==a||!o){et.current=!1;return}et.current||ef&&(EV(ef,"widget_opened"),et.current=!0)},[o,a,ef]),(0,ep.useEffect)(()=>{er&&(P(r),L(null),K(null),Y(null))},[r,P,er]),(0,ep.useEffect)(()=>{K(null),Y(null)},[p,f]),(0,ep.useEffect)(()=>{er&&e_&&null===_&&L(eF)},[_,eF,e_,er]),(0,ep.useEffect)(()=>{if(!er||!S&&!E&&k!==B||null===eL||eL.tinuuid!==B)return;let e=eL.materials?.[0];if(!e)return;let t=eL.materials?.some(e=>e===_||!!e.hid&&e.hid===_?.hid);if(k===B){R(null),L(e);return}(!t||E)&&_!==e&&L(e)},[E,_,S,eL,B,er,k]);let eX=(0,ep.useMemo)(()=>({type:i,name:h,width:c,height:u,displayUnit:d}),[i,h,c,u,d]),eZ=(0,ep.useMemo)(()=>({viewerSurface:a,dialogPortalContainer:s,viewerDialogOpen:o,onViewerDialogOpenChange:l}),[a,s,o,l]),e$=(0,ep.useMemo)(()=>({rooms:ew,sourceRooms:ev,setRooms:ex,room:eB,initialRoomId:C,setRoomId:eE}),[ew,eB,C,ex,ev]),e0=(0,ep.useMemo)(()=>({src:t,glbUrl:eN,tinuuid:B,embeddedObject:e_,selectedObject:eL,material:_,setTinuuid:P,selectResourceVariant:D,setMaterial:L,apiKey:p,baseURL:A,language:w,source:f,widgetSession:ef,hasRooms:ek,isViewerAccessPending:ez,accessError:eW,setAccessError:K,loadError:eK,setLoadError:Y}),[t,eN,B,e_,eL,_,P,D,p,A,w,f,ef,ek,ez,eW,eK]),e1=(0,ep.useMemo)(()=>({setContainerRef:j,resourceRef:X,sceneGestures:U,patchSceneLoad:eJ,setIsRoomScenePending:q}),[eJ,U]),e2=(0,ep.useMemo)(()=>({...e1,containerRef:z,sceneLoad:G,isRoomScenePending:V}),[e1,z,G,V]),e3=(0,ep.useMemo)(()=>({frameWidth:F,setFrameWidth:N,matting:O,setMatting:Q}),[F,O]),e9=(0,ep.useMemo)(()=>({isRoomScenePending:V,selectCustomRoomFile:eY}),[V,eY]);return(0,eh.jsx)(SE,{value:eX,children:(0,eh.jsx)(SS,{value:eZ,children:(0,eh.jsx)(SM,{value:e$,children:(0,eh.jsx)(SI,{value:e0,children:(0,eh.jsx)(ST,{value:e1,children:(0,eh.jsx)(SB,{value:e2,children:(0,eh.jsx)(Sk,{value:e3,children:(0,eh.jsx)(SR,{value:e9,children:(0,eh.jsx)(M6,{children:e})})})})})})})})})}let Tb={poster:"wallart",carpet:"rugs"};function Ty(e){return"poster"===e||"carpet"===e}i6.gPd.DEFAULT_ANISOTROPY=4;let Tw=new r4({defaultOptions:{queries:{gcTime:1/0,refetchOnMount:!1,refetchOnReconnect:!1,refetchOnWindowFocus:!1,retry:(e,t)=>{let r=function(e){if(i0(e))return e.response?.status}(t);return(void 0===r||!(r>=400)||!(r<500))&&e<2}}}});function Tx({type:e,src:t,tinuuid:r,roomId:n,name:i,height:a,width:s,language:o,dimensionUnit:l="m",displayUnit:c="cm",apiKey:u,source:d="default",showDialogCloseButton:h=!1,viewerSurface:p="inline",dialogPortalContainer:A=null,viewerDialogOpen:f=!0,onViewerDialogOpenChange:g,widgetSession:m}){let{i18n:v}=th(),b=u?.trim()||void 0,y=r?.trim()||void 0,w=Ty(e)?Tb[e]:e,x=Mm(w).takesDimensionProps?function(e,t,r="m"){return{width:MB(e??0,r),height:MB(t??0,r)}}(s,a,l):null;return(0,ep.useEffect)(()=>{Ty(e)&&Tb[e]},[e]),(0,ep.useEffect)(()=>{"string"==typeof o&&v.changeLanguage(o)},[v,o]),(0,eh.jsx)(rO,{client:Tw,children:(0,eh.jsx)(Tv,{src:t??null,tinuuid:y??null,roomId:n,type:w,viewerSurface:p,dialogPortalContainer:A,viewerDialogOpen:f,onViewerDialogOpenChange:g,name:i,width:x?.width??0,height:x?.height??0,displayUnit:c,apiKey:b,baseURL:"shopify"===d?Ei:void 0,source:d,externalWidgetSession:m,children:(0,eh.jsx)(Th,{showDialogCloseButton:h})})})}function TC({type:e,src:t,tinuuid:r,roomId:n,width:i,height:a,dimensionUnit:s,displayUnit:o,name:l,language:c,apiKey:u,source:d,widgetSession:h,disableClose:p=!1,open:A,defaultOpen:f,onOpenChange:g}){let[m,v]=(0,ep.useState)(null),b="immersive-room"===E1[Ty(e)?Tb[e]:e].chrome&&p,[y,w]=(0,ep.useState)(f??!1),x=A??y,[C,E]=(0,ep.useState)(x),S=x||C;(0,ep.useEffect)(()=>{x&&E(!0)},[x]);let M=M0({isCloseDisabled:b,onOpenChange:g,open:A}),I=(0,ep.useCallback)(e=>{let{isCloseDisabled:t,onOpenChange:r,open:n}=M.current;(e||!t)&&(void 0===n&&w(e),r?.(e))},[M]),B=(0,eh.jsx)(Tx,{type:e,src:t,tinuuid:r,roomId:n,name:l,height:a,width:i,dimensionUnit:s,displayUnit:o,language:c,apiKey:u,source:d,widgetSession:h,showDialogCloseButton:!b,viewerSurface:"dialog",dialogPortalContainer:m,viewerDialogOpen:x,onViewerDialogOpenChange:I});return(0,eh.jsxs)(eh.Fragment,{children:[(0,ef.createPortal)((0,eh.jsx)("style",{children:C8.A}),document.head),(0,ef.createPortal)((0,eh.jsxs)(tP.div,{"data-neurodyn-room-viewer-root":"",style:{display:"block",letterSpacing:"normal",zIndex:0x7fffffff},children:[(0,eh.jsx)("style",{children:":host{display:block!important;visibility:visible!important}"}),(0,eh.jsx)("style",{children:Er}),(0,eh.jsx)("div",{ref:v}),m&&(0,eh.jsx)(C5,{root:m,storageKey:"neurodyn-theme",defaultTheme:"light",children:(0,eh.jsx)(tp,{i18n:C7,children:S&&B})})]}),document.body)]})}EL({baseURL:"https://api.neurodyn.ai/v1/"}),Ey({baseURL:"https://api.neurodyn.ai/"});let TE=0;function TS(e,t){let r=e.getAttribute(t);return r?Number(r):void 0}window.__neurodynRoomViewerDialog?.destroy();let TM=new class{container=null;props=null;root=null;openState=!1;destroy(){this.root?.unmount(),this.root=null,this.container?.remove(),this.container=null,this.props=null,this.openState=!1}open(e){this.props=e,this.openState=!0,this.render()}handleOpenChange=e=>{this.openState=e,this.render()};ensureRoot(){return this.root||(this.container=document.createElement("div"),this.container.id=`neurodyn-room-viewer-dialog-root-${TE++}`,document.body.appendChild(this.container),this.root=(0,mx.createRoot)(this.container)),this.root}render(){this.props&&this.ensureRoot().render((0,ep.createElement)(TC,{...this.props,onOpenChange:this.handleOpenChange,open:this.openState}))}};function TI(e){let t=e.target instanceof Element?e.target.closest("[data-neurodyn-room-viewer-dialog]"):null;t&&TM.open(function(e,t={}){var r,n,i;let a,s,o;return{disableClose:void 0!==t.disableClose?t.disableClose:"true"===e.getAttribute("data-neurodyn-room-viewer-disable-close"),type:void 0!==t.type?t.type:e.getAttribute("data-neurodyn-room-viewer-type"),src:void 0!==t.src?t.src:e.getAttribute("data-neurodyn-room-viewer-src"),tinuuid:void 0!==t.tinuuid?t.tinuuid:e.getAttribute("data-neurodyn-room-viewer-tinuuid"),roomId:void 0!==t.roomId?t.roomId:e.getAttribute("data-neurodyn-room-viewer-room-id")??void 0,name:void 0!==t.name?t.name:e.getAttribute("data-neurodyn-room-viewer-name"),language:void 0!==t.language?t.language:e.getAttribute("data-neurodyn-room-viewer-language"),width:void 0!==t.width?t.width:TS(e,"data-neurodyn-room-viewer-width"),height:void 0!==t.height?t.height:TS(e,"data-neurodyn-room-viewer-height"),dimensionUnit:void 0!==t.dimensionUnit?t.dimensionUnit:(r="data-neurodyn-room-viewer-dimension-unit","m"===(a=e.getAttribute(r))||"cm"===a||"in"===a?a:void 0),displayUnit:void 0!==t.displayUnit?t.displayUnit:(n="data-neurodyn-room-viewer-display-unit","cm"===(s=e.getAttribute(n))||"in"===s?s:void 0),apiKey:void 0!==t.apiKey?t.apiKey:e.getAttribute("data-neurodyn-room-viewer-api-key"),source:void 0!==t.source?t.source:(i="data-neurodyn-room-viewer-source","default"===(o=e.getAttribute(i))||"shopify"===o?o:void 0)}}(t))}p={destroy:function(){document.removeEventListener("click",TI),TM.destroy(),window.__neurodynRoomViewerDialog===p&&(window.__neurodynRoomViewerDialog=void 0)}},document.addEventListener("click",TI),window.__neurodynRoomViewerDialog=p})()})();
|
|
7648
|
+
`)},o.customProgramCacheKey=()=>"wall-panel-exterior-outline-v1",{mask:t,maskMaterial:r,maskModel:n,maskScene:i,material:o,resolution:a,radius:s,clearColor:new i6.Q1f}},[e]);return(0,ep.useLayoutEffect)(()=>IQ(r.material,t,{shading:!1}),[r,t]),(0,ep.useLayoutEffect)(()=>()=>{r.mask.dispose(),r.maskMaterial.dispose(),r.material.dispose()},[r]),(0,eh.jsx)("mesh",{material:r.material,frustumCulled:!1,renderOrder:3,raycast:()=>{},onBeforeRender:(t,n,i)=>{let a=t.getRenderTarget(),s=t.getActiveCubeFace(),o=t.getActiveMipmapLevel(),l=t.autoClear,c=t.getClearAlpha();t.getClearColor(r.clearColor),t.getDrawingBufferSize(r.resolution);let{x:u,y:d}=r.resolution;(r.mask.width!==u||r.mask.height!==d)&&r.mask.setSize(u,d),r.radius.value=2*t.getPixelRatio(),e.updateWorldMatrix(!0,!0),r.maskModel.matrix.copy(e.matrixWorld);try{t.autoClear=!0,t.setClearColor(0,0),t.setRenderTarget(r.mask),t.render(r.maskScene,i)}finally{t.setRenderTarget(a,s,o),t.setClearColor(r.clearColor,c),t.autoClear=l}},children:(0,eh.jsx)("planeGeometry",{args:[2,2]})})}function I0({source:e,patch:t,isPointVisible:r,outlined:n}){let{model:i,materials:a}=(0,ep.useMemo)(()=>{let t=e.clone(!0),r=IU(t);return{model:t,materials:r}},[e]);return(0,ep.useLayoutEffect)(()=>{let e=a.map(e=>IQ(e,t));return i.traverse(e=>{e instanceof i6.eaF&&(e.raycast=function(e,t){let n=[];i6.eaF.prototype.raycast.call(this,e,n),t.push(...n.filter(e=>!r||r(e.point)))})}),()=>e.forEach(e=>e())},[r,a,i,t]),(0,ep.useLayoutEffect)(()=>()=>a.forEach(e=>e.dispose()),[a]),(0,eh.jsxs)(eh.Fragment,{children:[(0,eh.jsx)("primitive",{object:i,dispose:null}),n&&(0,eh.jsx)(I$,{model:i,patch:t})]})}function I1({size:e,patch:t,isPointVisible:r,onClick:n}){let[i,a]=(0,ep.useState)(!1),s=(0,ep.useMemo)(()=>{let e=document.createElement("canvas");e.width=e.height=256;let t=e.getContext("2d");if(t.lineJoin="miter",t.lineCap="round",t.beginPath(),i)t.rect(16,16,224,224);else for(let[e,r,n,i]of[[16,16,1,1],[240,16,-1,1],[16,240,1,-1],[240,240,-1,-1]])t.moveTo(e+22*n,r),t.lineTo(e,r),t.lineTo(e,r+22*i);t.strokeStyle="rgba(255,255,255,.80)",t.lineWidth=5,t.stroke(),t.strokeStyle=i?"#59636d":"rgba(70,80,90,.60)",t.lineWidth=2,t.stroke(),t.beginPath(),t.arc(128,128,29,0,2*Math.PI),t.fillStyle=i?"#ffffff":"#f5f6f7",t.fill(),t.strokeStyle="rgba(35,45,55,.32)",t.lineWidth=2,t.stroke(),t.beginPath(),t.moveTo(117,128),t.lineTo(139,128),t.moveTo(128,117),t.lineTo(128,139),t.strokeStyle="#35414d",t.lineWidth=3,t.stroke();let r=new i6.GOR(e);return r.colorSpace="srgb",r},[i]),o=(0,ep.useMemo)(()=>new i6.V9B({map:s,transparent:!0,depthWrite:!1,toneMapped:!1}),[s]);return(0,ep.useLayoutEffect)(()=>{let e=IQ(o,t,{shading:!1});return o.alphaToCoverage=!1,e},[o,t]),(0,ep.useLayoutEffect)(()=>()=>{o.dispose(),s.dispose()},[o,s]),(0,eh.jsx)("mesh",{material:o,renderOrder:2,onPointerOver:()=>a(!0),onPointerOut:()=>a(!1),raycast:function(e,t){let n=[];i6.eaF.prototype.raycast.call(this,e,n),t.push(...n.filter(e=>!r||r(e.point)))},onPointerDown:e=>{e.stopPropagation(),e.nativeEvent.stopPropagation()},onClick:e=>{e.stopPropagation(),n()},children:(0,eh.jsx)("planeGeometry",{args:[e,e]})})}function I2({isPointVisible:e,visible:t,dragging:r,panelKey:n,number:i,size:a,depth:s,patch:o}){let l=M7(),{t:c}=th(),{camera:u,gl:d}=f_(),h=(0,ep.useRef)(null),p=(0,ep.useRef)(null),A=(0,ep.useMemo)(()=>new i6.Pq0,[]),f=(0,ep.useMemo)(()=>{let e=document.createElement("canvas");e.width=e.height=128;let t=e.getContext("2d");for(let e of(t.beginPath(),t.arc(64,64,61,0,2*Math.PI),t.fillStyle="#f5f6f7",t.fill(),t.strokeStyle="rgba(35,45,55,.32)",t.lineWidth=2,t.stroke(),t.fillStyle="#35414d",[40,64,88]))t.beginPath(),t.arc(e,64,5,0,2*Math.PI),t.fill();let r=new i6.GOR(e);return r.colorSpace="srgb",r},[]),g=(0,ep.useMemo)(()=>new i6.V9B({map:f,transparent:!0,depthWrite:!1,toneMapped:!1}),[f]);(0,ep.useLayoutEffect)(()=>{let e=IQ(g,o,{shading:!1});return g.alphaToCoverage=!1,e},[g,o]),(0,ep.useLayoutEffect)(()=>()=>{g.dispose(),f.dispose()},[g,f]),fL(()=>{h.current&&p.current&&(h.current.getWorldPosition(A),p.current.tabIndex=!r&&(!e||e(A))?0:-1)});let m=()=>{if(!h.current)return;A.set(.05,-.05,0),h.current.localToWorld(A).project(u);let e=d.domElement.getBoundingClientRect();l.openMenu(n,{x:e.left+(A.x+1)*e.width/2,y:e.top+(1-A.y)*e.height/2})};return(0,eh.jsxs)("group",{ref:h,position:[a/2-a/12-.05,-a/2+a/20+.05,s+.002],children:[(0,eh.jsx)("mesh",{name:"panel-actions",material:g,visible:t&&!r,renderOrder:3,raycast:function(n,i){if(!t||r)return;let a=[];i6.eaF.prototype.raycast.call(this,n,a),i.push(...a.filter(t=>t.uv&&.48>=Math.hypot(t.uv.x-.5,t.uv.y-.5)&&(!e||e(t.point))))},onPointerDown:e=>{e.stopPropagation(),e.nativeEvent.stopPropagation()},onPointerUp:e=>e.stopPropagation(),onClick:e=>{e.stopPropagation(),m()},children:(0,eh.jsx)("planeGeometry",{args:[.1,.1]})}),(0,eh.jsx)(mP,{style:{pointerEvents:"none"},children:(0,eh.jsx)("button",{ref:p,type:"button","data-panel-key":n,className:"sr-only","aria-label":c("wallPanel.panelActions",{number:i}),"aria-haspopup":"menu",onFocus:()=>l.select(n),onClick:e=>{e.stopPropagation(),m()}})})]})}function I3({glbUrl:e,position:t,quaternion:r,materialPatch:n,isPointVisible:i,onDragStart:a,onDrag:s,onDragEnd:o}){let{data:l}=r0({...M9(e),enabled:!0,suspense:!0,throwOnError:rH,placeholderData:void 0},rT,void 0),c=M7(),{room:u}=SL(),[d,h]=(0,ep.useState)(null),{resourceRef:p,sceneGestures:{setIsDragging:A}}=SO(),f=SQ("isDragging"),{gl:g}=f_(),m=f?"grabbing":d?.action?"pointer":d?"grab":"auto";(0,ep.useLayoutEffect)(()=>{let e=g.domElement.style.cursor;return g.domElement.style.cursor=m,()=>{g.domElement.style.cursor=e}},[g,m]);let v=(e,t)=>h(r=>r?.key===e&&r.action===t?r:{key:e,action:t}),b=(0,ep.useRef)(null),y=l.width,w=`${u.id}:${c.generation}`,[x,C]=(0,ep.useState)({size:y,roomKey:w,x:0,y:0});if(x.roomKey!==w)C({size:y,roomKey:w,x:0,y:0});else if(x.size!==y){let e=c.panels.reduce((e,t)=>({minX:Math.min(e.minX,t.x),maxX:Math.max(e.maxX,t.x),minY:Math.min(e.minY,t.y),maxY:Math.max(e.maxY,t.y)}),{minX:1/0,maxX:-1/0,minY:1/0,maxY:-1/0}),t=x.size-y;C({size:y,roomKey:w,x:x.x+(e.minX+e.maxX)/2*t,y:x.y+(e.minY+e.maxY)/2*t})}(0,ep.useLayoutEffect)(()=>()=>A(!1),[A]);let E=(e,t=!1)=>{let r=b.current;r&&r.pointerId===e.pointerId&&(e.stopPropagation(),b.current=null,e.target.releasePointerCapture(e.pointerId),A(!1),o(),t||r.moved||(c.select(r.key),c.closeMenu()))};return(0,eh.jsx)("group",{ref:p,position:t,quaternion:r,onPointerMissed:c.clearSelection,children:(0,eh.jsxs)("group",{position:[x.x,x.y,0],children:[c.panels.map((e,t)=>{let r=c.options.find(t=>t.material.hid===e.materialId)?.model??l;return(0,eh.jsxs)("group",{position:[e.x*y,e.y*y,0],onPointerOver:t=>{t.stopPropagation(),v(M4(e),"panel-actions"===t.object.name)},onPointerOut:()=>h(null),onPointerDown:t=>{0===t.button&&!b.current&&(t.stopPropagation(),t.nativeEvent.stopPropagation(),b.current={x:t.clientX,y:t.clientY,key:M4(e),moved:!1,pointerId:t.pointerId},t.target.setPointerCapture(t.pointerId),A(!0),a())},onPointerMove:t=>{v(M4(e),"panel-actions"===t.object.name);let r=b.current;r&&r.pointerId===t.pointerId&&(t.stopPropagation(),!r.moved&&Math.hypot(t.clientX-r.x,t.clientY-r.y)>4&&(r.moved=!0,c.select(r.key),c.closeMenu()),r.moved&&s())},onPointerUp:e=>E(e),onPointerCancel:e=>E(e,!0),children:[(0,eh.jsx)(I2,{panelKey:M4(e),number:t+1,size:y,depth:r.depth,patch:n,isPointVisible:i,dragging:f,visible:c.selected===M4(e)||d?.key===M4(e)}),(0,eh.jsx)("group",{"rotation-z":-e.turns*Math.PI/2,children:(0,eh.jsx)("group",{position:r.mountingOffset,children:(0,eh.jsx)(I0,{outlined:c.selected===M4(e)||d?.key===M4(e),source:r.scene,patch:n,isPointVisible:i})})})]},M4(e))}),c.selected&&c.neighbors.map(e=>(0,eh.jsx)("group",{position:[e.x*y,e.y*y,.002],children:(0,eh.jsx)(I1,{size:y,patch:n,isPointVisible:i,onClick:()=>c.add(e)})},M4(e)))]})})}function I9(e){let{glbUrl:t}=SF();return t?(0,eh.jsx)(I3,{...e,glbUrl:t}):null}let I4={"modelled-resource":function({position:e,quaternion:t,materialPatch:r,onDrag:n,onDragEnd:i,onDragStart:a}){let{type:s}=SD(),{glbUrl:o}=SF();return o?"rotate-on-floor"===E1[s].manipulation?(0,eh.jsx)(Iq,{glbUrl:o,position:e,quaternion:t,materialPatch:r}):(0,eh.jsx)(mb,{autoTransform:!1,onDrag:n,onDragEnd:i,onDragStart:a,children:(0,eh.jsx)(Iq,{glbUrl:o,position:e,quaternion:t,materialPatch:r})}):null},"textured-resource":function({position:e,quaternion:t,materialPatch:r,onDrag:n,onDragEnd:i,onDragStart:a}){let{src:s,setLoadError:o}=SF();return s?(0,eh.jsx)(Ic,{onError:()=>o("artwork-load-failed"),children:(0,eh.jsx)(mb,{autoTransform:!1,onDrag:n,onDragEnd:i,onDragStart:a,children:(0,eh.jsx)(IZ,{src:s,position:e,quaternion:t,materialPatch:r})})}):null}};function I5(e){e.setCrossOrigin("anonymous")}let I8=If(3,(e,t)=>{fO.clear(i6.Tap,e),t.dispose()}),I6=Ig(I8,e=>fO.clear(i6.Tap,e));function I7(){var e;let t,{room:r}=SL(),n=f_(e=>e.scene),i=(e=ML(r),I6.request(e),t=fO(i6.Tap,e,I5),(0,ep.useLayoutEffect)(()=>(I6.clearPassed(e),I8.hold(e,t),()=>I8.release(t)),[e,t]),t);return(0,ep.useLayoutEffect)(()=>(i.colorSpace="srgb",n.background=i,()=>{n.background===i&&(n.background=null)}),[n,i]),null}function Be({plane:e,geometry:t,setPlaneRef:r}){let n={planeId:e.id,kind:e.kind};return(0,eh.jsx)("mesh",{ref:t=>r(e,t),geometry:t,userData:n,children:(0,eh.jsx)("meshBasicMaterial",{visible:!1,side:2})})}let Bt=(0,ep.memo)(()=>{let e,{type:t}=SD(),r=M7(),{setLoadError:n}=SF(),i="panel-group"===(e=E1[t]).manipulation?I9:I4[e.identity],{room:a}=SL(),{patchSceneLoad:s,resourceRef:o}=SO(),{gl:l,size:c,camera:u,invalidate:d,raycaster:h,pointer:p}=f_(),A=(0,ep.useMemo)(()=>a.scene??Ms(),[a.scene]),f=E2(t),g=function(e){let[t,r]=(0,ep.useState)(null);return(0,ep.useEffect)(()=>{let t=new AbortController,n=null;return Iw.acquire(e,{neutralShadingPng:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR4nGNoaGgAAAMEAYFL09IQAAAAAElFTkSuQmCC",signal:t.signal}).then(i=>{t.signal.aborted?Iw.release(i):(n=i,r({request:e,state:{preparation:i,failed:!1}}))},n=>{t.signal.aborted||(console.error(n),r({request:e,state:{preparation:null,failed:!0}}))}),()=>{t.abort(),n&&Iw.release(n)}},[e]),t?.request===e?t.state:Iy}((0,ep.useMemo)(()=>({roomId:a.id,scene:A,surfaces:f}),[a.id,A,f])),m=function({camera:e,invalidate:t,pointer:r,roomPreparation:{preparation:n,failed:i},raycaster:a,resourceRef:s,roomId:o,scene:l,surfaces:c}){let u=`${o}:${[...c].sort().join(",")}`,d=(0,ep.useMemo)(()=>({value:null}),[]),[h,p]=(0,ep.useReducer)(I_,u,ID),A=(0,ep.useRef)(null),f=(0,ep.useRef)(null),g=(0,ep.useRef)(!1),m=(0,ep.useRef)(new Map),v=(0,ep.useRef)(null),b=h.placementKey===u,y=n?.planeIdMap??null,w=n?.masks??IP,x=b?h.resourcePose:null,C=(0,ep.useMemo)(()=>IT(l,c),[l,c]),E=(0,ep.useMemo)(()=>C.map(e=>e.id),[C]),S=(0,ep.useMemo)(()=>new Map(l.planes.map(e=>{let t,r;return[e.id,(t=e.polygon3D.flatMap(e=>(function(e,t){let[r,n,i]=e;return[r*(Ir(t)*(t.camera.fx/t.camera.fy)),i,-n]})(e,l)),(r=new i6.LoY).setAttribute("position",new i6.qtW(t,3)),e.polygon3D.length>=4&&r.setIndex([0,1,2,0,2,3]),r)]})),[l]);(0,ep.useEffect)(()=>()=>S.forEach(e=>e.dispose()),[S]);let M=(0,ep.useMemo)(()=>({artifactsReady:null!==y,placementReady:null!==x,prepareReady:null!==x}),[y,x]),I=0===C.length?"no-allowed-surface":i?"plane-id-map-decode":null,B=(0,ep.useCallback)((e,t)=>{t?m.current.set(e.id,t):m.current.delete(e.id)},[]);(0,ep.useEffect)(()=>()=>{d.value=null},[d,w]),(0,ep.useEffect)(()=>{p({type:"reset-placement",placementKey:u}),A.current=null,f.current=null,g.current=!1,d.value=null,v.current=null},[d,u]);let T=(0,ep.useCallback)((r,n,i=null)=>{let a,o=IM(r,n,e),l=i?(a=new i6.Pq0(...i).applyQuaternion(new i6.PTz(...o.quaternion)).add(new i6.Pq0(...o.position)),{...o,position:a.toArray()}):o;A.current=l.activePlaneId,f.current=l,g.current=!0,d.value=w.get(l.activePlaneId)?.texture??null,s.current?.position.fromArray(l.position),s.current?.quaternion.fromArray(l.quaternion),t()},[d,e,t,w,s]),k=(0,ep.useCallback)(t=>y?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(In(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:A.current,allowedPlaneIds:E,camera:e,planeIdMap:y,planeMap:m.current,pointer:t,raycaster:a}):null,[E,e,y,a]);(0,ep.useEffect)(()=>{if(!y||null!==x)return;let r=function({allowedPlanes:e,camera:t,planeMap:r}){let n=e[0],i=n?r.get(n.id):null;return i?IM(i,function(e){let t=e.geometry.attributes.position,r=new i6.Pq0;for(let e=0;e<t.count;e++)r.add(new i6.Pq0(t.getX(e),t.getY(e),t.getZ(e)));return r.divideScalar(Math.max(1,t.count))}(i),t):null}({allowedPlanes:C,camera:e,planeMap:m.current});r&&(A.current=r.activePlaneId,f.current=r,d.value=w.get(r.activePlaneId)?.texture??null,p({type:"set-resource-pose",placementKey:u,resourcePose:r}),t())},[d,C,e,t,w,u,y,x]);let R=(0,ep.useCallback)(()=>{let t,n=k(r),i=f.current;if(!n||!i){v.current=null;return}let a=IM(n.object,n.point,e);t=new i6.PTz(...a.quaternion).invert(),v.current=new i6.Pq0(...i.position).sub(new i6.Pq0(...a.position)).applyQuaternion(t).toArray()},[e,k,r]),P=(0,ep.useCallback)(()=>{let e=k(r);e&&T(e.object,e.point,v.current)},[k,r,T]),D=(0,ep.useCallback)(()=>{v.current=null,g.current&&f.current&&(g.current=!1,p({type:"set-resource-pose",placementKey:u,resourcePose:f.current}))},[u]),_=(0,ep.useCallback)(t=>{let r,n=A.current,i=null===n?null:w.get(n);if(!i)return!1;let a=t.clone().project(e),s=function(e,t,r){if(t<0||t>1||r<0||r>1)return 0;let n=t*e.width-.5,i=r*e.height-.5,a=Math.floor(n),s=Math.floor(i),o=IA(a,e.width-1),l=IA(s,e.height-1),c=IA(a+1,e.width-1),u=IA(s+1,e.height-1),d=n-Math.floor(n),h=i-Math.floor(i);return((e.data[l*e.width+o]*(1-d)+e.data[l*e.width+c]*d)*(1-h)+(e.data[u*e.width+o]*(1-d)+e.data[u*e.width+c]*d)*h)/255}(i,(a.x+1)*.5,(1-a.y)*.5);return(r=IA((s-.4)/.29999999999999993,1))*r*(3-2*r)>.001},[e,w]);return{isPointerOnSurface:(0,ep.useCallback)(e=>{let t=y?In(e,y):null;return null!==t&&E.includes(t)},[E,y]),activeMaskTextureUniform:d,isPointVisible:_,failure:I,handleDrag:P,handleDragEnd:D,handleDragStart:R,planeGeometries:S,readiness:M,resourcePose:x,setPlaneRef:B}}({camera:u,invalidate:d,pointer:p,roomPreparation:g,raycaster:h,resourceRef:o,roomId:`${a.id}:${r?.generation??0}`,scene:A,surfaces:f});!function(e,t,r){let{gl:n}=f_(),{sceneGestures:{setRotation:i,setIsDragging:a}}=SO();(0,ep.useEffect)(()=>{if(!e)return;let r=n.domElement,s=null,o=e=>{e.preventDefault(),e.stopImmediatePropagation()},l=()=>{let e=s;s=null,e&&r.hasPointerCapture(e.id)&&r.releasePointerCapture(e.id),e&&a(!1)},c=e=>{if(s)return void o(e);if(!e.isPrimary||0!==e.button)return;let n=r.getBoundingClientRect();t(new i6.I9Y((e.clientX-n.left)/n.width*2-1,1-(e.clientY-n.top)/n.height*2))&&(o(e),s={id:e.pointerId,startX:e.clientX,lastX:e.clientX,rotating:!1},r.setPointerCapture(e.pointerId),a(!0))},u=e=>{if(!s||s.id!==e.pointerId||(o(e),!s.rotating&&5>Math.abs(e.clientX-s.startX)))return;s.rotating=!0;let t=e.clientX-s.lastX;s.lastX=e.clientX,i(e=>e+.5*t)},d=e=>{s?.id===e.pointerId&&(o(e),l())};return r.addEventListener("pointerdown",c,!0),r.addEventListener("pointermove",u,!0),r.addEventListener("pointerup",d,!0),r.addEventListener("pointercancel",d,!0),r.addEventListener("lostpointercapture",d,!0),window.addEventListener("blur",l),()=>{r.removeEventListener("pointerdown",c,!0),r.removeEventListener("pointermove",u,!0),r.removeEventListener("pointerup",d,!0),r.removeEventListener("pointercancel",d,!0),r.removeEventListener("lostpointercapture",d,!0),window.removeEventListener("blur",l),l()}},[e,n,t,r,a,i])}("rotate-on-floor"===E1[t].manipulation,m.isPointerOnSurface,a.id);let v=(0,ep.useMemo)(()=>new i6.I9Y(1,1),[]),b=g.preparation?.lightingTexture??null,y=(0,ep.useMemo)(()=>b&&{lightingTexture:b,viewport:v,activeMaskTextureUniform:m.activeMaskTextureUniform,maxRoomGain:1.1},[m.activeMaskTextureUniform,b,v]);(0,ep.useLayoutEffect)(()=>{u instanceof i6.ubm&&(u.fov=A.camera.fovYDeg),u.position.set(0,0,0),u.up.set(0,0,1),u.lookAt(0,1,0),u.updateProjectionMatrix(),d()},[u,d,A.camera.fovYDeg]),(0,ep.useLayoutEffect)(()=>{l.getDrawingBufferSize(v),v.set(Math.max(1,v.x),Math.max(1,v.y))},[l,c.height,c.width,v]);let{artifactsReady:w,placementReady:x,prepareReady:C}=m.readiness,E=m.failure;return(0,ep.useEffect)(()=>{s({artifactsReady:w,placementReady:x,prepareReady:C})},[w,s,x,C]),(0,ep.useEffect)(()=>{if(E){if("no-allowed-surface"===E){IR({planes:A.planes,source:"room-scene",surfaces:f}),n("room-missing-surface");return}!function({failure:e,planes:t,resourceType:r}){II(t)}({failure:E,planes:A.planes,resourceType:t}),n("room-load-failed")}},[E,A.planes,n,f,t]),(0,eh.jsxs)(eh.Fragment,{children:[m.resourcePose&&y&&(0,eh.jsx)(i,{position:m.resourcePose.position,quaternion:m.resourcePose.quaternion,materialPatch:y,isPointVisible:m.isPointVisible,onDrag:m.handleDrag,onDragEnd:m.handleDragEnd,onDragStart:m.handleDragStart}),A.planes.map(e=>(0,eh.jsx)(Be,{plane:e,geometry:m.planeGeometries.get(e.id),setPlaneRef:m.setPlaneRef},e.id)),(0,eh.jsx)(Ic,{onError:()=>n("room-load-failed"),children:(0,eh.jsx)(I7,{})})]})});Bt.displayName="Room";let Br=["room-viewer","layout-config"],Bn=[Math.PI/2,0,0];function Bi({onReadyChange:e}){return(0,ep.useLayoutEffect)(()=>(e?.(!0),()=>e?.(!1)),[e]),null}function Ba({onReadyChange:e}){var t;let r=r0({queryKey:Br,queryFn:()=>ES(),staleTime:1/0},rT,void 0);if(r.isPending)return null;let n=(t=r.data,t?.internal?.links?.find(e=>"hdr_neutral"===e.type)?.url?.trim()||void 0);return(0,eh.jsxs)(eh.Fragment,{children:[(0,eh.jsx)(vm,{files:n?[n]:void 0,preset:n?void 0:"warehouse",environmentRotation:Bn,environmentIntensity:n?.5:.9}),(0,eh.jsx)(Bi,{onReadyChange:e})]})}function Bs({onReadyChange:e}){return(0,eh.jsxs)(eh.Fragment,{children:[(0,eh.jsx)(vm,{files:["https://cdn.neurodyn.ai/assets/hdr/neutral.hdr"],environmentRotation:Bn}),(0,eh.jsx)(Bi,{onReadyChange:e})]})}let Bo=(0,ep.memo)(({lighting:e,onReadyChange:t})=>"remote-neutral-hdr"===e?(0,eh.jsx)(Ba,{onReadyChange:t}):(0,eh.jsx)(Bs,{onReadyChange:t}));Bo.displayName="RoomEnvironment";let Bl=(0,ep.memo)(({ref:e,target:t})=>{let{camera:r,gl:n}=f_();return(0,ep.useImperativeHandle)(e,()=>({getScreenPoint(){if(!t.current)return null;let e=t.current.getWorldPosition(new i6.Pq0).project(r),i=n.domElement.getBoundingClientRect();return{x:i.left+(e.x+1)*i.width/2,y:i.top+(1-e.y)*i.height/2}}}),[r,n,t]),null});Bl.displayName="SceneFocusBridge";let Bc=(0,ep.memo)(({sceneReady:e,onShadersReadyChange:t})=>{let r=fD(),n=(0,ep.useRef)("holding"),i=M0(t);return(0,ep.useEffect)(()=>{if(n.current="holding",!e)return void i.current(!1);let t=!0,{camera:a,gl:s,scene:o}=r.getState();o.matrixWorldAutoUpdate&&o.updateMatrixWorld(),null===a.parent&&a.matrixWorldAutoUpdate&&a.updateMatrixWorld();let l=()=>{t&&(t=!1,n.current="compiled",r.getState().invalidate())},c=()=>{t&&(t=!1,n.current="drawing",i.current(!0))},u=setTimeout(()=>{console.warn("Room viewer scene shaders did not finish compiling ahead in time"),l()},1e4);return s.domElement?.addEventListener("webglcontextlost",c),Promise.resolve().then(()=>s.compileAsync(o,a)).catch(e=>{console.error("Room viewer scene shaders failed to compile ahead",e)}).then(l),()=>{t=!1,clearTimeout(u),s.domElement?.removeEventListener("webglcontextlost",c)}},[i,e,r]),fL(({camera:e,gl:t,scene:r})=>{"holding"!==n.current&&(t.render(r,e),"compiled"===n.current&&(n.current="drawing",i.current(!0)))},1),null});Bc.displayName="ShaderPrecompile";let Bu=(0,ep.memo)(({sceneLightingReady:e})=>{let{sceneLoad:t}=SN(),{patchSceneLoad:r}=SO(),n=(0,ep.useCallback)(e=>{r({shadersReady:e})},[r]);return(0,eh.jsx)(Bc,{sceneReady:e&&Sj(t),onShadersReadyChange:n})});Bu.displayName="SceneShaderPrecompile";let Bd={position:[0,0,0],up:[0,0,1],near:.01,far:100},Bh=(0,ep.memo)(({className:e,ref:t,captureRef:r,contentKey:n,introductionTarget:i,focusRef:a,onSizeChange:s,...o})=>{let{type:l}=SD(),{glbUrl:c}=SF(),u=M7(),d=u?.isBaseModelReady??!0,{materialSource:h}=Mm(l),{room:p}=SL(),{patchSceneLoad:A}=SO(),f=vy(e=>e.active),[g,m]=(0,ep.useState)(!1),v=Ir((0,ep.useMemo)(()=>p.scene??Ms(),[p.scene])),b=(0,ep.useRef)(null),y=(0,ep.useRef)(!1),w=(0,ep.useCallback)(e=>{(b.current=e,"function"==typeof t)?t(e):t&&(t.current=e)},[t]),x=Mj("(max-width: 639px)"),{width:C,height:E}=function(e){let t,{ref:r,box:n="content-box"}=e,[{width:i,height:a},s]=(0,ep.useState)(MG),o=(t=(0,ep.useRef)(!1),(0,ep.useEffect)(()=>(t.current=!0,()=>{t.current=!1}),[]),(0,ep.useCallback)(()=>t.current,[])),l=(0,ep.useRef)({...MG}),c=(0,ep.useRef)(void 0);return c.current=e.onResize,(0,ep.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=MH(e,t,"inlineSize"),i=MH(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:b}),S=(0,ep.useMemo)(()=>{if(!C||!E||!v)return null;let e=C,t=E;return x?e=(t=E)*v:C/E>v?e=E*v:t=C/v,{width:e,height:t}},[C,E,v,x]);return(0,ep.useLayoutEffect)(()=>{S&&s?.(S.width,S.height)},[S,s]),(0,ep.useEffect)(()=>{if(!S||y.current)return;y.current=!0;let e=window.setTimeout(()=>{window.dispatchEvent(new Event("resize"))},250);return()=>{window.clearTimeout(e)}},[S]),(0,ep.useEffect)(()=>{A({layoutReady:null!==S})},[A,S]),(0,ep.useEffect)(()=>{"object-glb"===h&&A({materialReady:!!c&&d})},[c,h,d,A]),(0,ep.useEffect)(()=>{A({assetsReady:!f})},[n,f,A]),(0,eh.jsx)("div",{ref:w,className:E3("size-full flex items-center justify-center sm:pt-21 sm:pb-12",e),...o,children:S&&(0,eh.jsxs)(vE,{className:"touch-none bg-transparent",frameloop:"demand",camera:Bd,gl:Ie,style:{width:`${S.width}px`,height:`${S.height}px`},children:[(0,eh.jsxs)(ep.Suspense,{fallback:null,children:[(0,eh.jsx)(Il,{ref:r}),(0,eh.jsx)(ep.Suspense,{fallback:null,children:(0,eh.jsx)(Bt,{},n)}),i&&a&&(0,eh.jsx)(Bl,{ref:a,target:i})]}),(0,eh.jsx)(ep.Suspense,{fallback:null,children:(0,eh.jsx)(Bo,{lighting:E1[l].lighting,onReadyChange:m})}),(0,eh.jsx)(Bu,{sceneLightingReady:g})]})})});Bh.displayName="CanvasWrapper";let Bp=(0,ep.memo)(({captureRef:e,introduction:t,className:r,canvasWrapperClassName:n,controls:i,contentKey:a,...s})=>{let o,l,c,u,d=SQ("isDragging"),h=(0,ep.useRef)(null),p=(0,ep.useRef)(null),A=(0,ep.useRef)(null),f=(o=(0,ep.useRef)(null),l=(0,ep.useRef)(!1),c=(0,ep.useCallback)(()=>{null!==o.current&&cancelAnimationFrame(o.current),o.current=null},[]),u=(0,ep.useCallback)(()=>{t&&(c(),t.onCancel())},[t,c]),(0,ep.useEffect)(()=>{if(!t){l.current=!1;return}if(!t.ready){l.current&&t.onCancel();return}return o.current=requestAnimationFrame(()=>{let e=h.current,r=A.current?.getScreenPoint(),n=e?.instance.wrapperComponent,i=e?.instance.contentComponent;if(!e||!r||!n||!i)return void t.onCancel();let{scale:a,positionX:s,positionY:c}=e.instance.transformState,u=n.getBoundingClientRect(),d=Math.min(e.instance.setup.maxScale,1.28*a),p=(e,t,r)=>r<t?(t-r)/2:Math.max(t-r,Math.min(0,e)),f=p(u.width/2-(r.x-u.left-s)/a*d,u.width,i.offsetWidth*d),g=p(u.height/2-(r.y-u.top-c)/a*d,u.height,i.offsetHeight*d);l.current=!0;let m=window.matchMedia("(prefers-reduced-motion: reduce)").matches,v=performance.now(),b=r=>{let n=m?1:Math.min(1,(r-v)/700),i=(1-Math.cos(Math.PI*n))/2;e.setTransform(s+(f-s)*i,c+(g-c)*i,a+(d-a)*i,0),n<1?o.current=requestAnimationFrame(b):(o.current=null,t.onComplete())};b(v)}),()=>{c()}},[A,t,c,h]),u),g=Mj("(max-width: 639px)"),m=(0,ep.useRef)(!!t);m.current=!!t;let v=(0,ep.useCallback)(()=>{g&&h.current?.centerView(void 0,m.current?0:void 0)},[g]),b=(0,ep.useRef)(a);return(0,ep.useLayoutEffect)(()=>{b.current!==a&&(b.current=a,h.current?.resetTransform(0),v())},[a,v]),(0,eh.jsxs)("div",{className:E3("relative flex items-center justify-center overflow-hidden",r),...s,onPointerDownCapture:e=>{f(),s.onPointerDownCapture?.(e)},onTouchStartCapture:e=>{f(),s.onTouchStartCapture?.(e)},onWheelCapture:e=>{f(),s.onWheelCapture?.(e)},children:[(0,eh.jsx)(p6,{ref:h,disabled:d,children:(0,eh.jsx)(p7,{wrapperClass:"neurodyn-rzpp-wrapper size-full!",contentClass:"neurodyn-rzpp-content h-full! min-w-full sm:max-w-full",children:(0,eh.jsx)(Bh,{captureRef:e??p,contentKey:a,introductionTarget:t?.target,focusRef:A,className:n,onSizeChange:v})})}),i]})});function BA(e,t,{fadedOutIfMountedLoaded:r=!1}={}){let[n,i]=(0,ep.useState)(r&&!e);return e&&n&&i(!1),(0,ep.useEffect)(()=>{if(e)return;let r=!0;return Promise.allSettled((t.current?.getAnimations?.()??[]).map(e=>e.finished)).then(()=>{r&&i(!0)}),()=>{r=!1}},[e,t]),!e&&n}function Bf(e,t){return!BA(e,t,{fadedOutIfMountedLoaded:!0})}function Bg({...e}){return(0,eh.jsx)(u_,{"data-slot":"popover",...e})}function Bm({...e}){return(0,eh.jsx)(uN,{"data-slot":"popover-trigger",...e})}function Bv({className:e,align:t="center",sideOffset:r=4,portalContainer:n,...i}){return(0,eh.jsx)(uz,{container:n,children:(0,eh.jsx)(uG,{"data-slot":"popover-content",align:t,sideOffset:r,className:E3("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 Bb({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,ep.useMemo)(()=>Array.isArray(r)?r:Array.isArray(t)?t:[n],[r,t,n]);return(0,eh.jsxs)(u8,{"data-slot":"slider",defaultValue:t,value:r,min:n,max:i,"data-variant":a,"aria-label":s,"aria-labelledby":o,className:E3("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,eh.jsx)(di,{"data-slot":"slider-track",className:E3("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,eh.jsx)(ds,{"data-slot":"slider-range",className:E3("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,eh.jsx)(dc,{"data-slot":"slider-thumb","aria-label":s,"aria-labelledby":o,className:E3("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))]})}Bp.displayName="Scene";let By=/oklch\(([0-9.]+)\s+([0-9.]+)\s+([0-9.]+)\)/;function Bw(e,t){let r=e.match(By);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 Bx({data:e,foreground:t,background:r,robustness:n="M",className:i,...a}){let[s,o]=(0,ep.useState)(null);return((0,ep.useEffect)(()=>{(async()=>{try{let i=getComputedStyle(document.documentElement),a=t??i.getPropertyValue("--foreground"),s=r??i.getPropertyValue("--background"),l=Bw(a,[.21,.006,285.885]),c=Bw(s,[.985,0,0]),u=await xd.toString(e,{type:"svg",color:{dark:xc(xu({mode:"oklch",...l})),light:xc(xu({mode:"oklch",...c}))},width:200,errorCorrectionLevel:n,margin:0});o(u)}catch(e){console.error(e)}})()},[e,t,r,n]),s)?(0,eh.jsx)("div",{className:E3("size-full","[&_svg]:size-full",i),dangerouslySetInnerHTML:{__html:s},...a}):null}function BC(){if(!h){let e=new Cj;h={os:e.getOS().name,type:e.getDevice().type}}return h}function BE(){return"iOS"===BC().os}function BS(){return"Android"===BC().os}function BM(e,t){return!(!e||BS()&&"mobile"===BC().type||BS()&&"appclip"===e.ar)&&("floor"!==e.destination||!!t)}async function BI(e){return await e.updateComplete,!e.canActivateAR&&navigator.xr?.isSessionSupported&&(await navigator.xr.isSessionSupported("immersive-ar").catch(()=>!1),await new Promise(e=>setTimeout(e))),e}async function BB(e){let t;await e.activateAR(),("session-started"===(t=e.getAttribute("ar-status"))||"object-placed"===t)&&await new Promise(t=>{let r=n=>{"not-presenting"===n.detail.status&&(e.removeEventListener("ar-status",r),t())};e.addEventListener("ar-status",r)})}function BT({className:e,buttonClassName:t,buttonLeadingIcon:n,buttonLabel:i,buttonSize:a,buttonVariant:s="contrast",...o}){let{type:l,width:c,height:u,name:d}=SD(),{handoff:h}=E1[l],{src:p,tinuuid:A,widgetSession:f}=SF(),{containerRef:g,resourceRef:m}=SN(),{t:v,i18n:b}=th(),y=function(){let{i18n:e}=th();return"ru"===(e.resolvedLanguage??e.language)?"arizo":"vizbl"}(),[w,x]=(0,ep.useState)(""),[C,E]=(0,ep.useState)(""),[S,M]=(0,ep.useState)(()=>f?.token),[I,B]=(0,ep.useState)(!1),[T,k]=(0,ep.useState)(!1),R=(0,ep.useRef)(null),P=(0,ep.useRef)(null),[D,_]=(0,ep.useState)(!1),L=(0,ep.useRef)(!1),F=b.resolvedLanguage??b.language,N=Mi[y],O=(0,ep.useMemo)(()=>(function({height:e,language:t,name:r,src:n,tenantConfig:i,tinuuid:a,handoff:s,type:o,width:l,widgetSessionToken:c,pageUrl:u}){if(!s)return null;if("floor"===s.destination&&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:F,name:d,src:p,tenantConfig:N,tinuuid:A,handoff:h,type:l,width:c,widgetSessionToken:S,pageUrl:"u"<typeof window?void 0:window.location.href}),[p,A,h,l,c,u,d,F,N,S]),Q=(0,ep.useMemo)(()=>{if(!A)return null;let e=new URL("https://appclip.apple.com/id");return e.searchParams.set("p","com.us.vizbl.Clip"),e.searchParams.set("tinuuid",A),e.toString()},[A]),U=(0,ep.useCallback)(e=>{R.current=e,e&&P.current?.resolve(e)},[]);function z(){P.current=null,_(!1)}async function j(){M(await f?.getTokenForRequest().catch(()=>f.token))}let G=async()=>{let e;if(h?.ar==="appclip"){if(!A)return;if(BE()&&Q){EV(f,"appclip"),window.location.assign(Q);return}await j(),B(!0);return}if(!m.current||L.current)return;L.current=!0;try{e=await function(){if(!P.current){let e,t=new Promise(t=>{e=t});P.current={resolve:e,promise:Promise.resolve().then(r.bind(r,"../../node_modules/.pnpm/@google+model-viewer@4.2.0_three@0.185.1/node_modules/@google/model-viewer/lib/model-viewer.js")).then(()=>(_(!0),t),e=>{throw P.current=null,e})}}return P.current.promise.then(BI)}()}finally{L.current=!1}let t=m.current;if(!t)return void z();if(e.canActivateAR)try{k(!0);let e=t.clone(!0);if(e.position.set(0,0,0),e.quaternion.identity(),e.updateMatrix(),e.updateMatrixWorld(!0),BE()){e.rotation.set(-Math.PI/2,0,0),e.updateMatrix(),e.updateMatrixWorld(!0);let t=new xp.U,r=await t.parseAsync(e,{ar:{anchoring:{type:"plane"},planeAnchoring:{alignment:"vertical"}}}),n=new File([r],"scene.usdz",{type:"model/vnd.usdz+zip"});x(URL.createObjectURL(n))}else{let t=new xh.r,r=await t.parseAsync(e,{binary:!0}),n=new File([r],"scene.glb",{type:"model/gltf-binary"});E(URL.createObjectURL(n))}}catch(e){throw z(),e}finally{k(!1)}else z(),await j(),B(!0)};if((0,ep.useEffect)(()=>{let e=R.current;return e&&(""!==w||""!==C)&&BB(e).finally(z),()=>{""!==w&&URL.revokeObjectURL(w),""!==C&&URL.revokeObjectURL(C)}},[w,C]),!BM(h,A))return null;let H="appclip"===h.ar;return(0,eh.jsxs)("div",{className:E3(e),...o,children:[(0,eh.jsxs)(E4,{variant:s,size:a,disabled:T,onClick:G,className:t,children:[n,i??v("ar.viewInPlace")]}),(0,eh.jsx)(E5,{open:I,onOpenChange:B,children:(0,eh.jsxs)(Se,{className:"gap-6 sm:max-w-120",showCloseButton:!1,portalContainer:g,children:[(0,eh.jsx)("div",{className:"flex items-center justify-center p-10 bg-constant-white rounded-2xl",children:(0,eh.jsx)(Bx,{className:"size-48",robustness:"H",data:O??""})}),H?(0,eh.jsxs)("div",{className:"grid gap-2 text-center",children:[(0,eh.jsx)("p",{className:"text-lg text-text-sub font-medium",children:v("ar.appClipScanTitle")}),(0,eh.jsx)("p",{className:"text-sm text-text-light",children:v("ar.appClipRequirement")})]}):(0,eh.jsx)("p",{className:"text-lg text-center text-text-sub font-medium",children:v("ar.scanQrCode")}),(0,eh.jsxs)("p",{className:"text-xs text-center text-text-light",children:[!H&&(0,eh.jsxs)(eh.Fragment,{children:[v("ar.deviceRequirementsDisclaimer"),(0,eh.jsx)("br",{})]}),(0,eh.jsx)("a",{href:N.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:v("legal.termsOfUse")})," ",v("legal.conjunction")," ",(0,eh.jsx)("a",{href:N.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:v("legal.privacyPolicy")})]}),(0,eh.jsx)(E6,{asChild:!0,children:(0,eh.jsx)(E4,{variant:"contrast",size:"lg",children:v("close")})})]})}),D&&(0,eh.jsx)("model-viewer",{ref:U,className:"fixed w-px h-px opacity-0 pointer-events-none",src:C,iosSrc:w,reveal:"manual",ar:!0,cameraControls:!0,arPlacement:"wall",arModes:"webxr",arScale:"fixed",shadowIntensity:1,interactionPromptThreshold:100})]})}async function Bk(e){await navigator.clipboard.writeText(e)}function BR({captureRef:e,fallbackToClipboard:t=!1,fileName:r="room-scene.png",shareMessage:n}){let[i,a]=(0,ep.useState)(!1),[s,o]=(0,ep.useState)(!1),l=(0,ep.useMemo)(()=>"u">typeof navigator&&"function"==typeof navigator.share||t&&"u">typeof navigator&&"function"==typeof navigator.clipboard?.writeText,[t]),c=(0,ep.useCallback)(async()=>{if(!l)return;let i="u">typeof navigator&&"function"==typeof navigator.share,s=window.location.href,o=`${n}
|
|
7649
|
+
${s}`;a(!0);try{if(!i&&t)return void await Bk(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,ep.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 BP({captureRef:e}){let{type:t}=SD(),{containerRef:r}=SN(),{t:n}=th(),i=Mj("(max-width: 639px)"),{canShare:a,isSharing:s,share:o}=BR({captureRef:e,shareMessage:n(`shareMessage.${t}`)});return(0,eh.jsxs)(eh.Fragment,{children:[(0,eh.jsx)(BT,{className:"absolute bottom-4 left-4 sm:bottom-6 sm:left-6"}),(0,eh.jsxs)("div",{className:"absolute right-4 bottom-4 inline-flex items-center gap-2 sm:right-6 sm:bottom-6",children:[(0,eh.jsxs)(Bg,{children:[(0,eh.jsx)(Bm,{asChild:!0,children:(0,eh.jsxs)(E4,{variant:"contrast",size:i?"icon":"default",children:[(0,eh.jsx)(Sf,{className:"size-5"}),(0,eh.jsx)("span",{className:"sr-only sm:not-sr-only",children:n("scene.tunePosition")})]})}),(0,eh.jsx)(Bv,{className:"px-3 py-3.5 bg-button-dark border-button-dark text-text-white",side:"top",align:"end",portalContainer:r,children:(0,eh.jsxs)(Sq,{children:[(0,eh.jsxs)(SK,{orientation:"horizontal",children:[(0,eh.jsx)(SY,{children:n("scene.rotation")}),(0,eh.jsx)(BD,{gesture:"rotation",min:-180,max:180,"aria-label":n("scene.rotation")})]}),(0,eh.jsxs)(SK,{orientation:"horizontal",children:[(0,eh.jsx)(SY,{children:n("scene.angle")}),(0,eh.jsx)(BD,{gesture:"angle",min:-75,max:75,"aria-label":n("scene.angle")})]})]})})]}),(0,eh.jsxs)(E4,{variant:"contrast",size:i?"icon":"default",disabled:!a||s,onClick:o,children:[(0,eh.jsx)(Sv,{className:"size-5"}),(0,eh.jsx)("span",{className:"sr-only sm:not-sr-only",children:n("scene.share")})]}),i&&(0,eh.jsxs)(Bg,{children:[(0,eh.jsx)(Bm,{asChild:!0,children:(0,eh.jsx)(E4,{variant:"contrast",size:"icon",children:(0,eh.jsx)(Sg,{})})}),(0,eh.jsxs)(Bv,{className:"grid gap-5",portalContainer:r,children:[(0,eh.jsx)(My,{}),(0,eh.jsx)(MR,{})]})]})]})]})}function BD({gesture:e,min:t,max:r,"aria-label":n}){let i=SQ(e),{sceneGestures:{setAngle:a,setRotation:s}}=SO(),o="angle"===e?a:s;return(0,eh.jsx)(Bb,{value:[i],onValueChange:([e])=>o(e??0),min:t,max:r,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":n})}function B_({variant:e,missingSurfaceMessage:t,open:r,portalContainer:n,showDialogCloseButton:i=!1,onOpenChange:a,onTryAgain:s,onCancel:o}){let{t:l}=th(),c="custom-interior-missing-surface"===e||"room-missing-surface"===e,u=l(c?`missingSurface.${t}.title`:"floor.error.title"),d=c?l(`missingSurface.${t}.body`):e?l("custom-interior-processing"===e?"floor.error.processingBody":"viewer-load-failed"===e?"floor.error.loadBody":"artwork-load-failed"===e||"room-load-failed"===e?`loadError.${e}`:`accessError.${e}`):"";return(0,eh.jsx)(E5,{open:r,onOpenChange:a,children:(0,eh.jsxs)(Se,{portalContainer:n,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,eh.jsxs)("div",{className:"grid gap-1",children:[(0,eh.jsx)(Sn,{children:u}),(0,eh.jsx)(Si,{className:"typo-base-14 font-medium text-text-base",children:d})]}),(0,eh.jsxs)("div",{className:"grid gap-2",children:[s&&(0,eh.jsx)(E4,{variant:"contrast",onClick:s,children:c?(0,eh.jsxs)(eh.Fragment,{children:[(0,eh.jsx)(Ss,{"aria-hidden":"true"}),l("missingSurface.uploadAnother")]}):(0,eh.jsxs)(eh.Fragment,{children:[(0,eh.jsx)(Sm,{"aria-hidden":"true"}),l("floor.error.tryAgain")]})}),o&&(0,eh.jsx)(E4,{variant:"outline",onClick:o,children:l("floor.error.cancel")}),i&&(0,eh.jsx)(E6,{asChild:!0,children:(0,eh.jsx)(E4,{variant:"outline",children:l("close")})})]})]})})}function BL({rooms:e,customRooms:t,selectedRoomId:r,isInvalidFile:n,uploadRetryRequestId:i=0,showCloseButton:a=!1,onSelectRoom:s,onUploadFile:o}){let l,{t:c}=th(),u=(0,ep.useId)(),d=(0,ep.useRef)(null);function h(e){return e.map(e=>(0,eh.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,eh.jsx)("img",{crossOrigin:"anonymous",src:ML(e),alt:"",decoding:"async",className:"size-full scale-[1.02] transform-gpu object-cover transition duration-200 group-hover:scale-105"}),(0,eh.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,ep.useEffect)(()=>{i>0&&d.current?.click()},[i]),(0,eh.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","data-room-selection-panel":!0,children:[a&&(l=(0,eh.jsx)(E4,{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,eh.jsx)(Sl,{})}),(0,eh.jsx)(E6,{asChild:!0,children:l})),(0,eh.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,eh.jsxs)("div",{className:"grid gap-2","data-testid":"floor-interior-selection-upload",children:[(0,eh.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,eh.jsx)(Ss,{className:"size-5 text-background-blue"}),c("floor.interiorSelection.uploadPhoto"),(0,eh.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,eh.jsx)("p",{className:"typo-base-12 font-medium text-destructive",children:c("floor.interiorSelection.invalidFile")})]}),(0,eh.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,eh.jsxs)("div",{className:"grid min-h-max gap-4",children:[t.length>0&&(0,eh.jsxs)("div",{className:"grid gap-3",children:[(0,eh.jsx)("h3",{className:"typo-base-16 font-medium text-text-light",children:c("floor.interiorSelection.customTitle")}),(0,eh.jsx)("div",{className:"grid grid-cols-2 gap-3 sm:grid-cols-3","data-testid":"floor-custom-interior-selection-grid",children:h(t)})]}),(0,eh.jsxs)("div",{className:"grid gap-3",children:[(0,eh.jsx)("h3",{className:"typo-base-16 font-medium text-text-light",children:c("floor.interiorSelection.presetsTitle")}),(0,eh.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,eh.jsx)(Sr,{className:"-mt-2 shrink-0 p-0 sm:mt-0",children:(0,eh.jsx)(E6,{asChild:!0,children:(0,eh.jsx)(E4,{variant:"outline",className:"w-full",children:c("close")})})})]})}function BF(e){return(0,eh.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,eh.jsx)(BL,{...e})})}function BN({open:e,showCloseButton:t=!0,portalContainer:r,onOpenChange:n,...i}){let{t:a}=th();return(0,eh.jsx)(E5,{open:e,onOpenChange:n,children:(0,eh.jsxs)(Se,{contentInsideOverlay:!0,portalContainer:r,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,eh.jsx)(Sn,{className:"sr-only",children:a("floor.interiorSelection.title")}),(0,eh.jsx)(Si,{className:"sr-only"}),(0,eh.jsx)(BL,{...i,showCloseButton:t})]})})}let BO="data-material-selection-action",BQ="data-material-selection-panel";function BU(){let{t:e}=th(),{type:t}=SD();return e(`floor.materialSelection.${E1[t].catalogTitle}`)}function Bz({className:e,gridClassName:t,titleClassName:r,onOpenChange:n,...i}){let a=BU(),s=(0,ep.useRef)(null),{fetchNextMaterialsPage:o,hasNextPage:l,isFetchingNextPage:c,isLoading:u,materialItems:d,selectMaterial:h,selectedMaterialId:p}=function({includeEmbeddedObject:e=!1}={}){var t;let{material:r,tinuuid:n,embeddedObject:i,selectedObject:a,setMaterial:s,setTinuuid:o,apiKey:l,baseURL:c,language:u,source:d,widgetSession:h,setAccessError:p,setLoadError:A}=SF(),{type:f,name:g}=SD(),m=i?.owner?.uuid,{data:v,error:b,isFetchingNextPage:y,fetchNextPage:w,hasNextPage:x,isLoading:C}=r0({queryKey:["room-viewer","public-objects",{apiKey:(t={apiKey:l,baseURL:c,language:u,source:d,resourceType:f}).apiKey??null,language:t.language??null,ownerUuid:m??null,resourceType:t.resourceType??null,source:t.source}],enabled:!!m,queryFn:({pageParam:e,signal:t})=>{if(!m)throw Error("Owner uuid is required.");return EX(m,e,{apiKey:l,baseURL:c,language:u,signal:t,source:d,widgetSession:h,resourceType:f})},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},r$,void 0),{requiresMaterialModel:E}=Mm(f),{getCollapseKey:S}=Mf(f),{catalogsEveryMaterial:M}=MA[E1[f].materialRole],{composition:I,productNameSource:B}=E1[f],T=(0,ep.useMemo)(()=>v?.pages.flatMap(e=>e.objs??[])??[],[v]),k=(0,ep.useMemo)(()=>"material"===B?[]:T.filter(e=>e.tinuuid&&(!e.kit?.uuid||!e.kit.name?.trim())&&(!E||e.materials?.[0]?.native?.glbUrl)),[T,B,E]),R=rJ({queries:k.map(e=>({queryKey:EK(e.tinuuid,{apiKey:l,baseURL:c,language:u,source:d,resourceType:f}),queryFn:({signal:t})=>EY(e.tinuuid,{apiKey:l,baseURL:c,language:u,signal:t,source:d,widgetSession:h,resourceType:f})}))}),P=T.flatMap(e=>{let t=R[k.indexOf(e)];return t?.isPending||t?.isError?[]:[{...e,kit:t?.data?.kit?{...e.kit,...t.data.kit}:e.kit}]}),D=(0,ep.useMemo)(()=>{let t={requiresMaterialModel:E,getCollapseKey:S};if(e)return Mu([...i?.tinuuid&&i.materials?.[0]?[i]:[],...P],null,t);return Mu(P,i,t)},[i,P,S,e,E]),_=(0,ep.useMemo)(()=>D.flatMap(e=>{if(!e.tinuuid)return[];let t="color-design"===I&&e.kit?.uuid,r=M&&!t?e.materials:e.materials?.slice(0,1);return r?.map(t=>{let r=Mb(t);return r&&e.tinuuid?{materialId:r,productName:Mv(f,e,t,g),material:t,tinuuid:e.tinuuid}:null}).filter(e=>null!==e)??[]}),[M,I,D,f,g]),L="color-design"===I&&a?.tinuuid===n&&a?.kit?.uuid?D.find(e=>S(e)===S(a)):void 0,F=L?.tinuuid!==n&&L?Mb(L.materials?.[0]??{}):r?Mb(r):"",N=b??R.find(e=>e.error)?.error,O=D.find(e=>e.tinuuid===n),Q=D.find(e=>e.tinuuid&&e.materials?.[0]);(0,ep.useEffect)(()=>{let e=El(N);e?p(e):N&&A("viewer-load-failed")},[N,p,A]),(0,ep.useEffect)(()=>{v&&0===D.length&&x&&!y&&w()},[v,w,x,y,D.length]),(0,ep.useEffect)(()=>{if(null!==r)return;let e=O??Q,t=e?.materials?.[0];e&&t&&e.tinuuid&&(s(t),o(e.tinuuid))},[Q,O,r,s,o]);let U=(0,ep.useCallback)(()=>{!1===x||y||w()},[w,x,y]),z=(0,ep.useCallback)(e=>{let t=D.find(t=>t.materials?.some(t=>Mb(t)===e)),r=t?.materials?.find(t=>Mb(t)===e);return!!t&&!!r&&!!t.tinuuid&&(s(r),o(t.tinuuid),!0)},[D,s,o]);return{fetchNextMaterialsPage:U,hasNextPage:x,isFetchingNextPage:y,isLoading:C||R.some(e=>e.isPending),materialItems:_,selectMaterial:z,selectedMaterialId:F}}({includeEmbeddedObject:!0});(0,ep.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,ep.useCallback)(e=>{let{clientHeight:t,scrollHeight:r,scrollTop:n}=e.currentTarget;n+t>=r-64&&o()},[o]),f=(0,ep.useCallback)(e=>{h(e)&&n(!1)},[n,h]);return(0,eh.jsxs)("div",{...i,className:E3("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,eh.jsx)("h2",{className:E3("typo-base-16 font-medium sm:typo-base-14 sm:font-semibold text-text-dark",r),children:a}),(0,eh.jsx)("div",{"data-testid":"material-selection-grid",ref:s,className:E3("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,eh.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,productName:n})=>{let i,a=e===p,s=(i=t.previews?.[0],i?.subRes?.small??i?.url);return(0,eh.jsxs)("button",{type:"button","data-selected":a,"aria-pressed":a,className:"group flex min-w-0 flex-col gap-1 rounded-lg bg-background-containers text-left 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:[(0,eh.jsxs)("span",{className:"relative grid aspect-square w-full shrink-0 place-items-center overflow-hidden rounded-lg border border-border p-1 transition group-hover:border-icons-normal",children:[s?(0,eh.jsx)("img",{src:s,alt:"",className:"size-full rounded-md object-cover"}):(0,eh.jsx)(Sh,{className:"size-6 text-icons-normal"}),a&&(0,eh.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,eh.jsx)(So,{className:"size-4"})})]}),(0,eh.jsx)("span",{className:"typo-base-12 line-clamp-3 w-full wrap-anywhere text-text-base",children:n})]},`${r}-${e}`)}),(u||c)&&(0,eh.jsx)("div",{className:"col-span-3 grid h-16 place-items-center",children:(0,eh.jsx)(Sw,{className:"size-6"})})]})})]})}function Bj({open:e,portalContainer:t,onOpenChange:r}){let{t:n}=th(),i=BU();return(0,eh.jsx)(E5,{open:e,onOpenChange:r,children:(0,eh.jsxs)(Se,{contentInsideOverlay:!0,"data-testid":"material-selection-mobile-overlay","data-material-selection-panel":"",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,eh.jsx)(Sn,{className:"sr-only",children:i}),(0,eh.jsx)(Si,{className:"sr-only"}),(0,eh.jsx)(Bz,{className:"min-h-0",gridClassName:"max-h-none",onOpenChange:r}),(0,eh.jsx)(Sr,{className:"shrink-0 p-0",children:(0,eh.jsx)(E6,{asChild:!0,children:(0,eh.jsx)(E4,{type:"button",variant:"outline",className:"w-full",children:n("close")})})})]})})}function BG({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,eh.jsx)(CK,{"data-slot":"progress",className:E3("relative h-2 w-full overflow-hidden rounded-full bg-primary/20",e),value:t,max:i,...n,children:(0,eh.jsx)(CY,{"data-slot":"progress-indicator",className:"h-full bg-primary transition-[width]",style:{width:`${a}%`}})})}let BH=[{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 BV({isComplete:e,open:t,onCloseAnimationEnd:r,onOpenChange:n,portalContainer:i}){let{t:a}=th(),s=(0,ep.useRef)(t),[o,l]=(0,ep.useState)(8),c=e?100:o,u=function(e){for(let t=BH.length-1;t>=0;t-=1){let r=BH[t];if(r&&e>=r.minimumProgress)return r}return BH[0]}(c);(0,ep.useEffect)(()=>{t&&!s.current&&l(8),s.current=t},[t]),(0,ep.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,eh.jsxs)("div",{role:"status","aria-live":"polite",className:"grid content-start gap-4",children:[(0,eh.jsx)("h2",{className:"typo-base-18 font-medium text-text-dark",children:a("floor.processing.title")}),(0,eh.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,eh.jsxs)("div",{className:"flex min-w-0 items-center justify-between gap-3",children:[(0,eh.jsx)("span",{className:"typo-base-14 min-w-0 flex-1 truncate text-left font-medium text-text-light",children:a(u.translationKey)}),(0,eh.jsxs)("span",{className:"typo-base-14 shrink-0 font-medium text-text-dark",children:[c,"%"]})]}),(0,eh.jsx)(BG,{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,eh.jsx)(E5,{open:t,onOpenChange:n,children:(0,eh.jsxs)(Se,{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,eh.jsx)(Sn,{className:"sr-only",children:a("floor.processing.title")}),(0,eh.jsx)(Si,{className:"sr-only",children:a(u.translationKey)}),d]})})}let Bq={desktop:[{slot:"product-card",container:"leading",appearance:"card",actionLabelResourceTypeKey:"replaceProduct",actionVariant:"outline",actionSize:"sm",actionWidth:"auto"},{slot:"room-card",container:"leading",appearance:"card",actionLabelKey:"floor.interiorSelection.chooseInterior",actionVariant:"outline",actionSize:"sm"},{slot:"ar-card",container:"trailing",appearance:"card",actionVariant:"secondary",actionSize:"sm"}],tablet:[{slot:"product-card",container:"leading",appearance:"compact-card",actionLabelResourceTypeKey:"replaceProduct",actionVariant:"outline",actionSize:"sm",actionWidth:"auto"},{slot:"room-card",container:"trailing",appearance:"framed-row",actionLabelKey:"floor.interiorSelection.chooseInteriorShort",actionVariant:"outline",actionSize:"sm"},{slot:"ar-card",container:"trailing",appearance:"inline-compact",actionVariant:"secondary",actionSize:"default"}],phone:[{slot:"product-card",container:"leading",appearance:"flow-card",actionLabelResourceTypeKey:"replaceProductShort",actionVariant:"outline",actionSize:"sm",actionWidth:"fixed"},{slot:"room-card",container:"trailing",appearance:"plain-row",actionLabelKey:"floor.interiorSelection.chooseInterior",actionVariant:"outline",actionSize:"sm"},{slot:"ar-card",container:"trailing",appearance:"inline-large",actionVariant:"secondary",actionSize:"lg"}]},BW={desktop:[{slot:"product-card",container:"leading",appearance:"card",actionLabelResourceTypeKey:"replaceProduct",actionVariant:"outline",actionSize:"sm",actionWidth:"auto"},{slot:"room-card",container:"leading",appearance:"card",actionLabelKey:"floor.interiorSelection.chooseInterior",actionVariant:"outline",actionSize:"sm"}],tablet:[{slot:"product-card",container:"leading",appearance:"compact-card",actionLabelResourceTypeKey:"replaceProduct",actionVariant:"outline",actionSize:"sm",actionWidth:"auto"},{slot:"room-card",container:"trailing",appearance:"framed-row",actionLabelKey:"floor.interiorSelection.chooseInteriorShort",actionVariant:"outline",actionSize:"sm"}],phone:[{slot:"product-card",container:"leading",appearance:"flow-card",actionLabelResourceTypeKey:"replaceProductShort",actionVariant:"outline",actionSize:"sm",actionWidth:"auto"},{slot:"room-card",container:"trailing",appearance:"plain-row",actionLabelKey:"floor.interiorSelection.chooseInterior",actionVariant:"outline",actionSize:"sm"}]},BK={"inline-compact":"h-9 w-full rounded-xl","inline-large":"h-11 w-full rounded-xl"},BJ={"inline-compact":"size-5","inline-large":"size-6"},BY={desktop:"floor-ar-card",tablet:void 0,phone:void 0},BX=/^[a-z][a-z\d+.-]*:/i,BZ={card:"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)]","compact-card":"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)]","flow-card":"flex items-center justify-start gap-4 border-b border-border-light bg-background-containers p-4 text-left"},B$={card:"size-6 text-icons-normal","compact-card":"size-6 text-icons-normal","flow-card":"size-5 text-icons-normal"},B0={desktop:"floor-desktop-product-card",tablet:"floor-tablet-product-card",phone:"floor-mobile-product-card"},B1={card:"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)]","framed-row":"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)]","plain-row":"flex w-full items-center justify-between gap-3 rounded-full bg-background-containers text-left"},B2={desktop:"floor-room-card",tablet:"floor-tablet-room-card",phone:void 0},B3={desktop:"floor-desktop-room-name",tablet:"floor-tablet-room-name",phone:"floor-mobile-room-name"},B9={"product-card":function({actions:e,band:t,slot:r,presentation:n}){let i,{t:a}=th(),{displayUnit:s,name:o,type:l}=SD(),{containerRef:c}=SN(),{material:u,selectedObject:d,tinuuid:h}=SF(),{variantItems:p,selectedTinuuid:A,selectVariant:f}=function(){let{tinuuid:e,selectedObject:t,selectResourceVariant:r,apiKey:n,baseURL:i,language:a,source:s,widgetSession:o}=SF(),{type:l}=SD(),{decodeVariant:c}=Mf(l),u=t?.kit?.uuid,d=t?.owner?.uuid,{data:h,fetchNextPage:p,hasNextPage:A,isFetchingNextPage:f,isFetchNextPageError:g}=r0({queryKey:EJ(u,d,{apiKey:n,baseURL:i,language:a,source:s,resourceType:l}),enabled:!!c&&!!u&&!!d,queryFn:({pageParam:e,signal:t})=>{if(!u||!d)throw Error("Kit uuid and owner uuid are required.");return EZ(u,d,e,{apiKey:n,baseURL:i,language: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},r$,void 0);(0,ep.useEffect)(()=>{!A||f||g||p({cancelRefetch:!1})},[p,A,f,g]);let m=(0,ep.useMemo)(()=>h?.pages.flatMap(e=>e.objs??[])??[],[h]),v=(0,ep.useMemo)(()=>m.flatMap(e=>{let t=c?.(e.description);return e.tinuuid&&e.materials?.[0]&&t?[{tinuuid:e.tinuuid,...t}]:[]}),[m,c]);return{variantItems:v,selectedTinuuid:e,selectVariant:e=>!!v.some(t=>t.tinuuid===e)&&(r(e),!0)}}(),g=B0[t],m=a(`units.${s}`),v=e.isMaterialSelectionOpen,b=a(v?"floor.scene.hideCatalog":`resourceType.${l}.${n.actionLabelResourceTypeKey}`),y=Mv(l,d,u,o),w=(i=u?.previews?.[0],i?.subRes?.small??i?.url??d?.preview?.subRes?.small??d?.preview?.url??d?.mainPreview),x=p.find(e=>e.tinuuid===A),C=function(e){let t=e?.trim();if(!t||BX.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}}(d?.tinuuid===h?d.destinationUrl:void 0),E=v?e.onMaterialSelectionActionPointerDown:void 0;return(0,eh.jsxs)("div",{className:BZ[n.appearance],"data-chrome-slot":r,"data-neurodyn-room-viewer-product":"","data-testid":g,children:[(0,eh.jsx)("div",{className:"grid size-16 shrink-0 place-items-center overflow-hidden bg-background-base",children:w?(0,eh.jsx)("img",{src:w,alt:"",className:"size-full object-cover"}):(0,eh.jsx)(Sh,{className:B$[n.appearance]})}),(0,eh.jsxs)("div",{className:"grid min-h-16 min-w-0 flex-1 grid-cols-1 content-center gap-2",children:[(0,eh.jsxs)("div",{className:"flex min-w-0 items-start justify-between gap-2",children:[(0,eh.jsxs)("div",{className:"min-w-0",children:[(0,eh.jsx)("div",{className:"sr-only",children:a(`resourceType.${l}.productCardTitle`)}),(0,eh.jsx)("div",{className:"typo-button-normal truncate text-text-dark",children:y})]}),C&&(0,eh.jsx)("a",{href:C,target:"_blank",rel:"noopener noreferrer",className:"typo-base-12 shrink-0 text-button-primary underline-offset-2 hover:underline","data-testid":`${g}-description-link`,children:a("floor.scene.description")})]}),(0,eh.jsxs)("div",{className:"flex flex-nowrap items-center gap-2",children:[(0,eh.jsxs)(E4,{type:"button",variant:n.actionVariant,size:n.actionSize,[BO]:!0,"aria-expanded":v,className:E3("w-fit shrink-0","fixed"===n.actionWidth&&"w-[137px]"),onPointerDown:E?e=>{e.preventDefault(),e.stopPropagation(),E()}:void 0,onClick:v?e.closeMaterialSelection:e.openMaterialSelection,children:[v?(0,eh.jsx)(Sl,{className:"size-4"}):(0,eh.jsx)(SA,{className:"size-4"}),b]}),p.length>1&&!!x&&(0,eh.jsxs)(SX,{value:A??void 0,onValueChange:f,children:[(0,eh.jsx)(S$,{size:"sm",className:"w-fit min-w-0 shrink *:data-[slot=select-value]:block *:data-[slot=select-value]:truncate","data-testid":`${g}-variant-select`,children:(0,eh.jsx)(SZ,{})}),(0,eh.jsx)(S0,{portalContainer:c,children:p.map(e=>{var t;let r;return(0,eh.jsx)(S1,{value:e.tinuuid,children:"color"in e?e.color:(t=e.size,r=t.split("\xd7").map(e=>"cm"===s?e:Math.round(MT(Number(e)/100,s)).toString()).join("\xd7"),`${r} ${m}`)},e.tinuuid)})})]})]})]})]})},"room-card":function({actions:e,band:t,slot:r,presentation:n}){let{t:i}=th(),{room:a}=SL(),s=i(`rooms.${a.id}`,{defaultValue:a.name}),o=(0,eh.jsx)(E4,{type:"button",variant:n.actionVariant,size:n.actionSize,className:"card"===n.appearance?"w-fit":"shrink-0",onClick:e.openInteriorSelection,children:i(n.actionLabelKey)});return"card"===n.appearance?(0,eh.jsxs)("div",{className:B1[n.appearance],"data-chrome-slot":r,"data-neurodyn-room-viewer-room":"","data-testid":B2[t],children:[(0,eh.jsx)("img",{crossOrigin:"anonymous",src:ML(a),alt:"",className:"size-16 shrink-0 rounded-lg object-cover"}),(0,eh.jsxs)("span",{className:"grid min-w-0 flex-1 content-center gap-2",children:[(0,eh.jsx)("span",{className:"typo-button-normal block min-h-[1.35em] truncate !leading-[1.35] text-text-dark","data-testid":B3[t],children:s}),o]})]}):(0,eh.jsxs)("div",{className:B1[n.appearance],"data-chrome-slot":r,"data-neurodyn-room-viewer-room":"","data-testid":B2[t],children:[(0,eh.jsxs)("span",{className:"flex min-w-0 items-center gap-2",children:[(0,eh.jsx)("img",{crossOrigin:"anonymous",src:ML(a),alt:"",className:"size-10 shrink-0 rounded-full object-cover"}),(0,eh.jsxs)("span",{className:"grid min-w-0",children:[(0,eh.jsx)("span",{className:"typo-base-12 truncate text-text-light",children:i("floor.scene.interiorCardTitle")}),(0,eh.jsx)("span",{className:"typo-button-normal min-h-[1.35em] truncate !leading-[1.35] text-text-dark","data-testid":B3[t],children:s})]})]}),o]})},"ar-card":function({band:e,slot:t,presentation:r}){let{t:n}=th(),{room:i}=SL(),{type:a}=SD(),{tinuuid:s}=SF();return BM(E1[a].handoff,s)?"card"===r.appearance?(0,eh.jsxs)("div",{className:"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-chrome-slot":t,"data-neurodyn-room-viewer-try-at-home":"","data-testid":BY[e],children:[(0,eh.jsx)("img",{crossOrigin:"anonymous",src:ML(i),alt:"",className:"size-16 shrink-0 rounded-lg object-cover"}),(0,eh.jsxs)("div",{className:"grid min-w-0 flex-1 content-center gap-2",children:[(0,eh.jsx)(BT,{buttonLabel:n("floor.scene.tryAtHome"),buttonVariant:r.actionVariant,buttonSize:r.actionSize,buttonClassName:"w-fit"}),(0,eh.jsx)("div",{className:"typo-base-12 truncate font-medium text-text-light",children:n("floor.scene.tryAtHomeBody")})]})]}):(0,eh.jsx)(BT,{className:"w-full","data-chrome-slot":t,"data-neurodyn-room-viewer-try-at-home":"",buttonLabel:n("floor.scene.tryAtHome"),buttonLeadingIcon:(0,eh.jsx)(Sb,{className:BJ[r.appearance]}),buttonVariant:r.actionVariant,buttonSize:r.actionSize,buttonClassName:BK[r.appearance]}):null}};function B4({actions:e,band:t,entry:r}){let n=B9[r.slot];return(0,eh.jsx)(n,{actions:e,band:t,slot:r.slot,presentation:r})}function B5({actions:e,band:t,container:r}){let{type:n}=SD(),i="immersive-panels"===E1[n].presentation?BW:Bq;return(0,eh.jsx)(eh.Fragment,{children:i[t].filter(e=>e.container===r).map(r=>(0,eh.jsx)(B4,{actions:e,band:t,entry:r},r.slot))})}async function B8(e,t={}){let r=t.source??"default",n={image:e};if(Ea({apiKey:t.apiKey,source:r})){let e=await t.widgetSession?.getTokenForRequest();return EP(n,{baseURL:t.baseURL,headers:{"x-api-key":t.apiKey,...e?{[Ez]:e}:{}},signal:t.signal,timeout:0,params:{productType:Es({apiKey:t.apiKey,source:r,resourceType:t.resourceType})}})}return t.signal?EE(n,{signal:t.signal,timeout:0}):EE(n,{timeout:0})}let B6=[{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 B7(){try{return"1"===window.localStorage.getItem("neurodyn-room-viewer:debug-mask-export")}catch{return!1}}async function Te(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 B6.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 Tt="custom-interiors";function Tr(){return"u">typeof crypto&&"function"==typeof crypto.randomUUID?`custom-interior-${crypto.randomUUID()}`:`custom-interior-${Date.now()}-${Math.random().toString(36).slice(2)}`}function Tn(){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(Tt)||e.createObjectStore(Tt,{keyPath:"id"})},n.onerror=()=>r(n.error??Error("Failed to open Custom Interior store.")),n.onsuccess=()=>t(n.result)}):Promise.resolve(null)}async function Ti(e,t,r=new Date){let n=await Tn();if(!n)return null;let i={id:Tr(),schemaVersion:1,name:e.name,fileName:e.name,createdAt:r.toISOString(),imageBlob:e,scene:t};try{let e=n.transaction(Tt,"readwrite");return e.objectStore(Tt).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 Ta(){let e=await Tn();if(!e)return[];try{return await new Promise((t,r)=>{let n=e.transaction(Tt,"readonly").objectStore(Tt).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 Ts(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}}}function To(e){let t="dialog"===e?"interior-selection":"scene";return{step:t,hasSceneSelection:"scene"===t,sceneResetKey:0}}function Tl(e,t){switch(t.type){case"clear-interior-selection":return{...e,step:"interior-selection",hasSceneSelection:!1,automaticRoomId:t.automaticRoomId};case"select-initial-room":return{step:"scene",hasSceneSelection:!0,sceneResetKey:e.sceneResetKey+1,automaticRoomId:t.roomId};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 Tc(e,t){return!e.aborted&&t()}class Tu extends Error{constructor(){super("Room Photo has a Missing Surface."),this.name="CustomInteriorMissingSurfaceError"}}async function Td({abortSignal:e,apiOptions:t,commitCustomInteriorSelection:r,downloadDebugMask:n,file:i,isActive:a,isDebugMaskExportEnabled:s,onDebugMaskError:o,onPersistenceError:l,onProcessingComplete:c,predictRoomScene:u,saveCustomInterior:d,surfaces:h,trackRuntimeCustomInterior:p,waitForProcessingCompletion:A}){let f=await u(i,{...t,signal:e});if(!Tc(e,a))return null;if(s()&&n(f,i.name).catch(o),Ik(f,h))throw IR({planes:f.planes,source:"room-photo-upload",surfaces:h}),new Tu;let g=p(i,f);return Tc(e,a)&&g&&(d(i,f).catch(l),c(),await A(),Tc(e,a))?(r(g),g):null}function Th(){return new Promise(e=>window.setTimeout(e,250))}function Tp(e){console.error("Failed to export room debug mask",e)}function TA(e){console.error("Failed to persist Custom Interior",e)}function Tf(e){console.error("Failed to prepare Custom Interior",e)}let Tg={"immersive-room":function({showDialogCloseButton:e=!1}){var t;let{t:r}=th(),{name:n,type:i}=SD(),{missingSurfaceMessage:a}=E1[i],{accessError:s,glbUrl:o,apiKey:l,baseURL:c,hasRooms:u,source:d,widgetSession:h,isViewerAccessPending:p,loadError:A,selectedObject:f,tinuuid:g}=SF(),{clearActiveError:m,handleAccessError:v}=function(){let{setAccessError:e,setLoadError:t}=SF();return{clearActiveError:(0,ep.useCallback)(()=>{e(null),t(null)},[e,t]),handleAccessError:e}}(),{room:b,sourceRooms:y}=SL(),{resourceRef:w,containerRef:x,setContainerRef:C,sceneLoad:E,isRoomScenePending:S}=SN(),{dialogPortalContainer:M,viewerSurface:I,viewerDialogOpen:B,onViewerDialogOpenChange:T}=S_(),[k,R]=(0,ep.useState)(!1),[P,D]=(0,ep.useState)(!1),_=(0,ep.useRef)(null),L=(0,ep.useRef)(!1),F=s??A,N=!!F,O=(t=r("floor.scene.companyFallback"),f?.owner?.name??f?.brand??t),{canShare:Q,download:U,isDownloading:z,isSharing:j,share:G}=BR({captureRef:_,fallbackToClipboard:!0,shareMessage:r(`shareMessage.${i}`)}),H=(0,ep.useCallback)(()=>{R(!1),D(!1)},[]),V=(0,ep.useCallback)(()=>{if(L.current){L.current=!1;return}R(!0),D(!1)},[]),q=(0,ep.useCallback)(()=>{L.current=!0,H()},[H]),W=(0,ep.useCallback)(()=>{D(!0),R(!1)},[]),K=function({activeError:e,apiKey:t,baseURL:r,clearActiveError:n,closeMaterialSelection:i,glbUrl:a,handleAccessError:s,hasDialogPortalContainer:o,hasRooms:l,isRoomScenePending:c,isViewerAccessPending:u,onViewerDialogOpenChange:d,resourceType:h,sceneLoad:p,source:A,sourceRooms:f,viewerDialogOpen:g,viewerSurface:m,widgetSession:v}){let b=function(e){let{initialRoomId:t,room:r,sourceRooms:n}=SL(),{isViewerAccessPending:i,loadError:a,setLoadError:s}=SF(),{type:o}=SD(),{patchSceneLoad:l,sceneGestures:{setAngle:c,setRotation:u}}=SO(),d=(0,ep.useMemo)(()=>({patchSceneLoad:l,setAngle:c,setRotation:u}),[l,c,u]),h=n.find(e=>e.id===t),p=!!h&&(!h?.scene||IT(h.scene,E2(o)).length>0),A=function(e,t,r){let[n,i]=(0,ep.useReducer)(Tl,e,To),[a,s]=(0,ep.useState)();!r?.isPending&&a!==r?.roomId&&(s(r?.roomId),r&&i(r.isAvailable?{type:"select-initial-room",roomId:r.roomId}:{type:"clear-interior-selection"}));let o=(0,ep.useCallback)(e=>{e(),function({patchSceneLoad:e,setAngle:t,setRotation:r}){t(0),r(0),e(SH)}(t),i({type:"commit-interior-selection"})},[t]),l=(0,ep.useCallback)(()=>{i({type:"dismiss-interior-selection"})},[]),c=(0,ep.useCallback)(()=>{i({type:"open-interior-selection"})},[]),u=(0,ep.useCallback)(()=>{i({type:"recover-to-scene"})},[]),d=(0,ep.useCallback)(()=>{i({type:"return-to-interior-selection"})},[]),h=(0,ep.useCallback)(()=>{i({type:"clear-interior-selection",automaticRoomId:n.automaticRoomId})},[n.automaticRoomId]),p=(0,ep.useCallback)(()=>{i({type:"start-custom-interior-processing"})},[]);return(0,ep.useMemo)(()=>({...n,commitInteriorSelection:o,dismissInteriorSelection:l,openInteriorSelection:c,recoverToScene:u,returnToInteriorSelection:d,clearInteriorSelection:h,startCustomInteriorProcessing:p}),[o,l,c,u,d,h,p,n])}(e,d,t?{roomId:t,isAvailable:p,isPending:i}:void 0),{automaticRoomId:f,clearInteriorSelection:g}=A;return(0,ep.useEffect)(()=>{f&&r.id===f&&SC(a)&&(g(),s(null))},[f,g,a,r.id,s]),A}(m),y=E2(h),{appendRuntimeCustomInterior:w,customRooms:x}=function({listCustomInteriors:e,surfaces:t}){let{appendRuntimeCustomInterior:r,customRooms:n,replaceRuntimeCustomInteriors:i}=function(){let[e,t]=(0,ep.useState)(()=>[]),r=(0,ep.useRef)(null),n=(0,ep.useCallback)(e=>{r.current?.revokeObjectUrls();let n=Ts(e);return r.current=n,t(n.rooms),n.rooms},[]),i=(0,ep.useCallback)((e,n)=>{let i=Ts([{id:Tr(),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,ep.useEffect)(()=>()=>{r.current?.revokeObjectUrls()},[]),(0,ep.useMemo)(()=>({appendRuntimeCustomInterior:i,customRooms:e,replaceRuntimeCustomInteriors:n}),[i,e,n])}(),a=(0,ep.useRef)(!0);(0,ep.useEffect)(()=>(a.current=!0,()=>{a.current=!1}),[]);let s=(0,ep.useCallback)(async()=>{let r=await e();a.current&&i(r.filter(e=>!Ik(e.scene,t)))},[e,i,t]);return(0,ep.useEffect)(()=>{s()},[s]),(0,ep.useMemo)(()=>({appendRuntimeCustomInterior:r,customRooms:n,replaceRuntimeCustomInteriors:i,refreshCustomInteriors:s}),[r,n,s,i])}({listCustomInteriors:Ta,surfaces:y}),C=(0,ep.useMemo)(()=>new Set(f.map(e=>e.id)),[f]),{commitCustomInteriorSelection:E,selectInterior:S}=function(e){let{room:t,setRoomId:r,setRooms:n}=SL(),{widgetSession:i}=SF();return function({floorFlow:e,customRooms:t,selectedRoomId:r,onInteriorSelected:n,restoreSourceRooms:i,setRoomId:a,setRooms:s}){let o=(0,ep.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,ep.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,ep.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,ep.useCallback)(e=>{t.some(t=>t.id===e)?c(e):l(e)},[t,c,l]);return(0,ep.useMemo)(()=>({commitCustomInteriorSelection:o,selectInterior:u}),[o,u])}({...e,selectedRoomId:t.id,onInteriorSelected:()=>EV(i,"interior_selected"),setRoomId:r,setRooms:n})}({floorFlow:b,customRooms:x,restoreSourceRooms:(0,ep.useCallback)(e=>[...f,...e.filter(e=>!C.has(e.id))],[C,f])}),M=function(e){let{setIsRoomScenePending:t}=SO();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,surfaces:h,trackRuntimeCustomInterior:p,waitForProcessingCompletion:A}){let[f,g]=(0,ep.useState)(!1),[m,v]=(0,ep.useState)(!1),[b,y]=(0,ep.useState)(null),[w,x]=(0,ep.useState)(null),[C,E]=(0,ep.useState)(!1),[S,M]=(0,ep.useState)(0),I=(0,ep.useRef)(null),B=(0,ep.useRef)(!1),T=(0,ep.useRef)(!0),k=(0,ep.useRef)(b);b&&(k.current=b),(0,ep.useEffect)(()=>(T.current=!0,()=>{T.current=!1,I.current?.abort()}),[]);let R=(0,ep.useCallback)(()=>{y(null),x(null),E(!1)},[]),P=(0,ep.useCallback)(e=>{R(),g(!1),e()},[R]),D=(0,ep.useCallback)(async f=>{if(R(),!f.type.startsWith("image/"))return void g(!0);g(!1),v(!1),t.startCustomInteriorProcessing(),B.current=!0;let m=new AbortController;I.current?.abort(),I.current=m,d(!0);try{await Td({abortSignal:m.signal,apiOptions:e,commitCustomInteriorSelection:r,downloadDebugMask:n,file:f,isActive:()=>T.current,isDebugMaskExportEnabled:i,onDebugMaskError:s,onPersistenceError:o,onProcessingComplete:()=>{v(!0)},predictRoomScene:c,saveCustomInterior:u,surfaces:h,trackRuntimeCustomInterior:p,waitForProcessingCompletion:A})}catch(r){if(m.signal.aborted)return;let e=El(r);if(e){B.current&&E(!0),a(e);return}let t=r instanceof Tu?"custom-interior-missing-surface":"custom-interior-processing";if("custom-interior-processing"===t&&l(r),B.current){x(t),E(!0);return}y(t)}finally{I.current===m&&(I.current=null,T.current&&d(!1))}},[e,t,r,n,i,a,s,o,l,c,R,u,d,h,p,A]),_=(0,ep.useCallback)(()=>{R(),g(!1),t.returnToInteriorSelection(),M(e=>e+1)},[t,R]),L=(0,ep.useCallback)(()=>{R(),t.returnToInteriorSelection()},[t,R]),F=(0,ep.useCallback)(({clearError:e,closeMaterialSelection:r})=>{e(),r(),t.hasSceneSelection&&t.recoverToScene()},[t]),N=(0,ep.useCallback)(()=>{B.current=!1,E(!1),w&&(y(w),x(null))},[w]),O=(0,ep.useCallback)(()=>T.current,[]);return(0,ep.useMemo)(()=>({displayedUploadError:b??k.current,isCustomInteriorProcessingComplete:m,isInvalidFile:f,isMounted:O,isProcessingDialogClosingForError:C,pendingUploadError:w,uploadError:b,uploadRetryRequestId:S,cancelUploadError:L,handleProcessingDialogCloseAnimationEnd:N,openInteriorSelection:P,processUploadFile:D,recoverFromActiveError:F,resetUploadErrorPresentation:R,tryUploadAgain:_}),[L,N,m,f,O,C,P,w,D,F,R,_,b,S])}({...e,setIsRoomScenePending:t})}({apiOptions:(0,ep.useMemo)(()=>({resourceType:h,apiKey:t,baseURL:r,source:A,widgetSession:v}),[t,r,h,A,v]),floorFlow:b,commitCustomInteriorSelection:E,downloadDebugMask:Te,isDebugMaskExportEnabled:B7,onAccessError:s,onDebugMaskError:Tp,onPersistenceError:TA,onProcessingError:Tf,predictRoomScene:B8,saveCustomInterior:Ti,surfaces:y,trackRuntimeCustomInterior:w,waitForProcessingCompletion:Th}),{dismissInteriorSelection:I,hasSceneSelection:B,openInteriorSelection:T,sceneResetKey:k,step:R}=b,{cancelUploadError:P,displayedUploadError:D,handleProcessingDialogCloseAnimationEnd:_,isCustomInteriorProcessingComplete:L,isInvalidFile:F,isProcessingDialogClosingForError:N,openInteriorSelection:O,pendingUploadError:Q,processUploadFile:U,recoverFromActiveError:z,resetUploadErrorPresentation:j,tryUploadAgain:G,uploadError:H,uploadRetryRequestId:V}=M,q=l&&B,W=(0,ep.useRef)(e),K=!!(e&&q&&a);e&&(W.current=e);let J=(0,ep.useCallback)(()=>{q&&(j(),I())},[I,q,j]),Y=(0,ep.useCallback)(()=>{i(),O(T)},[i,T,O]),X=(0,ep.useCallback)(()=>{z({clearError:n,closeMaterialSelection:i})},[n,i,z]),Z=(0,ep.useCallback)(()=>{n(),Y()},[n,Y]),$=(0,ep.useCallback)(e=>{if(!e){if(q)return void J();d?.(!1)}},[J,q,d]),ee=(0,ep.useCallback)(e=>{if(!e){if(K)return void X();d?.(!1)}},[K,X,d]),et=(0,ep.useCallback)(e=>{e||P()},[P]);!function({fallbackMs:e,handleProcessingDialogCloseAnimationEnd:t,isProcessingDialogClosingForError:r}){(0,ep.useEffect)(()=>{if(!r)return;let n=window.setTimeout(t,e);return()=>window.clearTimeout(n)},[e,t,r])}({fallbackMs:220,handleProcessingDialogCloseAnimationEnd:_,isProcessingDialogClosingForError:N});let er=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||!SG(c),resetKey:r.sceneResetKey,shouldRender:m,shouldRenderDialog:m},surface:{usesSiblingDialogFlow:p},uploadErrorDialog:{open:!a&&!e&&!!u&&A}}}({activeError:e,canRecoverFromActiveError:K,floorFlow:{hasSceneSelection:B,sceneResetKey:k,step:R},hasDialogPortalContainer:o,hasRooms:l,isProcessingDialogClosingForError:N,isRoomScenePending:c,isViewerAccessPending:u,pendingUploadError:Q,sceneLoad:p,uploadError:H,viewerDialogOpen:g,viewerSurface:m});return{...er,activeErrorDialog:{...er.activeErrorDialog,onCancel:K?X:void 0,onOpenChange:ee,onTryAgain:"room-missing-surface"===e?Z:K?X:void 0,variant:e??W.current},customRooms:x,interiorSelection:{...er.interiorSelection,isInvalidFile:F,onOpenChange:$,onSelectRoom:S,onUploadFile:U,openFromScene:Y,uploadRetryRequestId:V},sourceRooms:f,processingDialog:{...er.processingDialog,isComplete:L,onCloseAnimationEnd:_,onOpenChange:er.surface.usesSiblingDialogFlow?d:void 0},step:R,uploadErrorDialog:{...er.uploadErrorDialog,onCancel:P,onOpenChange:et,onTryAgain:G,variant:D}}}({activeError:F,apiKey:l,baseURL:c,clearActiveError:m,closeMaterialSelection:H,glbUrl:o,handleAccessError:v,hasDialogPortalContainer:null!==M,hasRooms:u,isRoomScenePending:S,isViewerAccessPending:p,onViewerDialogOpenChange:T,resourceType:i,sceneLoad:E,source:d,sourceRooms:y,viewerDialogOpen:B,viewerSurface:I,widgetSession:h}),J=(0,ep.useRef)(null),Y=Bf(K.scene.isLoading,J),X=BA(K.scene.isLoading||!K.scene.shouldRender||!B,J),Z=M7(),{pending:$,finish:ee}=function(e,t,r){let[n,i]=(0,ep.useState)({open:e,pending:e&&t,sceneKey:r});n.open!==e?i({open:e,pending:e&&t,sceneKey:r}):n.sceneKey!==r?i({...n,sceneKey:r,pending:n.pending&&null===n.sceneKey}):n.pending&&!t&&i({...n,pending:!1});let a=(0,ep.useCallback)(()=>i(e=>({...e,pending:!1})),[]);return{pending:e&&n.pending,finish:a}}(B,Mj("(max-width: 639px)")&&"focus-resource"===E1[i].introduction,K.scene.shouldRender?`${K.scene.resetKey}:${g??""}`:null),et=Z?.select,er=(0,ep.useCallback)(()=>{ee(),et?.("0,0")},[ee,et]),en=(0,ep.useMemo)(()=>$?{ready:X,target:w,onComplete:er,onCancel:ee}:void 0,[$,er,ee,X,w]),ei=K.interiorSelection.openFromScene,ea=(0,ep.useCallback)(()=>{H(),ei()},[H,ei]),es=(0,ep.useMemo)(()=>({isMaterialSelectionOpen:k,openMaterialSelection:V,closeMaterialSelection:H,onMaterialSelectionActionPointerDown:q,openInteriorSelection:ea}),[H,q,ea,V,k]),eo=(0,ep.useMemo)(()=>({isMaterialSelectionOpen:P,openMaterialSelection:W,closeMaterialSelection:H,openInteriorSelection:ea}),[H,ea,W,P]);(0,ep.useEffect)(()=>{if(k)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(`[${BO}], [${BQ}]`)||R(!1)}function t(e){"Escape"===e.key&&R(!1)}},[k]);let el=K.surface.usesSiblingDialogFlow?M:x,ec=(0,eh.jsxs)(eh.Fragment,{children:[(0,eh.jsx)("div",{className:"absolute inset-0 bg-constant-black","data-testid":"floor-scene-background-base"}),(0,eh.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,eh.jsx)("img",{crossOrigin:"anonymous",src:ML(b),alt:"",className:"block size-full max-w-none object-cover object-center opacity-50"})}),(0,eh.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,eh.jsx)("div",{className:"min-w-0 pt-1",children:(0,eh.jsx)("h1",{"data-testid":"floor-scene-header-company",className:"typo-base-16 truncate font-medium lg:typo-base-18",children:O})}),(0,eh.jsxs)("div",{className:"pointer-events-auto inline-flex shrink-0 items-center gap-2",children:[(0,eh.jsxs)(E4,{type:"button",variant:"secondary","aria-label":r("floor.scene.share"),"data-neurodyn-room-viewer-share":"",disabled:!Q||j,onClick:G,className:"size-10 rounded-full px-0 lg:h-9 lg:w-auto lg:rounded-xl lg:px-3.5",children:[(0,eh.jsx)(Sv,{className:"size-5"}),(0,eh.jsx)("span",{className:"hidden lg:inline",children:r("floor.scene.share")})]}),(0,eh.jsxs)(E4,{type:"button",variant:"secondary","aria-label":r("floor.scene.download"),"data-neurodyn-room-viewer-download":"",disabled:z,onClick:U,className:"size-10 rounded-full px-0 lg:h-9 lg:w-auto lg:rounded-xl lg:px-3.5",children:[(0,eh.jsx)(Sc,{className:"size-5"}),(0,eh.jsx)("span",{className:"hidden lg:inline",children:r("floor.scene.download")})]}),e&&(0,eh.jsx)(E6,{asChild:!0,children:(0,eh.jsxs)(E4,{type:"button",variant:"secondary","aria-label":r("close"),className:"size-10 rounded-full px-0 lg:h-9 lg:w-auto lg:rounded-xl lg:px-3.5",children:[(0,eh.jsx)("span",{className:"hidden lg:inline",children:r("close")}),(0,eh.jsx)(Sl,{className:"!size-5"})]})})]})]}),(0,eh.jsxs)("div",{className:"relative z-10 size-full min-h-0 min-w-0","data-testid":"floor-scene-viewport",children:[(0,eh.jsx)(Bp,{contentKey:K.scene.resetKey,introduction:en,captureRef:_,className:"relative z-10 size-full min-h-0",canvasWrapperClassName:"p-0 sm:pt-0 sm:pb-0"}),(0,eh.jsx)("div",{"aria-hidden":!K.scene.isLoading,className:E3("absolute inset-0 z-10 flex items-center justify-center bg-radial from-background-containers to-background-base-2 transition-opacity",K.scene.isLoading?"opacity-100 pointer-events-auto duration-0":"opacity-0 pointer-events-none duration-250ms"),ref:J,"data-testid":"floor-scene-loader",style:{transitionDuration:K.scene.isLoading?"0ms":"250ms"},children:Y&&(0,eh.jsx)(Sw,{variant:"logo"})})]}),(0,eh.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,eh.jsx)("div",{className:"pointer-events-auto flex min-w-0 items-stretch gap-3",children:(0,eh.jsx)(B5,{actions:es,band:"desktop",container:"leading"})}),(0,eh.jsx)("div",{className:"pointer-events-auto",children:(0,eh.jsx)(B5,{actions:es,band:"desktop",container:"trailing"})})]}),(0,eh.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,eh.jsx)("div",{className:"pointer-events-auto flex min-w-0 items-stretch gap-3",children:(0,eh.jsx)(B5,{actions:es,band:"tablet",container:"leading"})}),(0,eh.jsx)("div",{className:"pointer-events-auto grid w-[254px] gap-2",children:(0,eh.jsx)(B5,{actions:es,band:"tablet",container:"trailing"})})]}),(0,eh.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,eh.jsx)("div",{className:"grid",children:(0,eh.jsx)(B5,{actions:eo,band:"phone",container:"leading"})}),(0,eh.jsx)("div",{className:"grid gap-4 bg-background-containers px-6 pt-4 pb-6","data-testid":"floor-mobile-bottom-actions",children:(0,eh.jsx)(B5,{actions:eo,band:"phone",container:"trailing"})})]}),k&&!N&&(0,eh.jsx)(Bz,{[BQ]:!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:H}),(0,eh.jsx)(Bj,{open:P&&!N,portalContainer:el,onOpenChange:D})]}),eu=K.interiorSelection.shouldRender?"dialog"===K.interiorSelection.presentation?(0,eh.jsx)(BN,{open:K.interiorSelection.open,showCloseButton:e||K.scene.shouldRender,portalContainer:el,rooms:K.sourceRooms,customRooms:K.customRooms,selectedRoomId:b.id,isInvalidFile:K.interiorSelection.isInvalidFile,uploadRetryRequestId:K.interiorSelection.uploadRetryRequestId,onOpenChange:K.interiorSelection.onOpenChange,onSelectRoom:K.interiorSelection.onSelectRoom,onUploadFile:K.interiorSelection.onUploadFile}):"screen"===K.interiorSelection.presentation?(0,eh.jsx)(BF,{rooms:K.sourceRooms,customRooms:K.customRooms,selectedRoomId:b.id,isInvalidFile:K.interiorSelection.isInvalidFile,uploadRetryRequestId:K.interiorSelection.uploadRetryRequestId,showCloseButton:e,onSelectRoom:K.interiorSelection.onSelectRoom,onUploadFile:K.interiorSelection.onUploadFile}):null:null,ed=(0,eh.jsx)(BV,{isComplete:K.processingDialog.isComplete,open:K.processingDialog.open,portalContainer:el,onCloseAnimationEnd:K.processingDialog.onCloseAnimationEnd,onOpenChange:K.processingDialog.onOpenChange}),eA=(0,eh.jsxs)(eh.Fragment,{children:[(0,eh.jsx)(B_,{missingSurfaceMessage:a,variant:K.activeErrorDialog.variant,open:K.activeErrorDialog.open,portalContainer:el,showDialogCloseButton:e&&K.activeErrorDialog.showCloseButton,onOpenChange:K.activeErrorDialog.onOpenChange,onTryAgain:K.activeErrorDialog.onTryAgain,onCancel:K.activeErrorDialog.onCancel}),(0,eh.jsx)(B_,{missingSurfaceMessage:a,variant:K.uploadErrorDialog.variant,open:K.uploadErrorDialog.open,portalContainer:el,onOpenChange:K.uploadErrorDialog.onOpenChange,onTryAgain:K.uploadErrorDialog.onTryAgain,onCancel:K.uploadErrorDialog.onCancel})]}),ef=(0,eh.jsxs)("div",{ref:C,className:"relative grid size-full grid-rows-[minmax(0,1fr)_auto] overflow-hidden text-foreground sm:block","data-neurodyn-room-viewer-container":"","data-testid":"floor-viewer-root",children:[p?(0,eh.jsx)("div",{className:"flex size-full items-center justify-center bg-radial from-background-containers to-background-base-2",children:(0,eh.jsx)(Sw,{variant:"logo"})}):K.scene.shouldRender?ec:null,!K.surface.usesSiblingDialogFlow&&eu,!K.surface.usesSiblingDialogFlow&&ed]});return K.surface.usesSiblingDialogFlow?(0,eh.jsxs)(eh.Fragment,{children:[(K.scene.shouldRenderDialog||p)&&(0,eh.jsx)(E5,{open:B,onOpenChange:T,children:(0,eh.jsxs)(Se,{className:Sx,contentInsideOverlay:!0,portalContainer:M,showCloseButton:!1,onInteractOutside:e=>{e.preventDefault()},children:[(0,eh.jsx)(Sn,{className:"sr-only",children:n}),(0,eh.jsx)(Si,{className:"sr-only"}),ef]})}),eu,ed,eA]}):(0,eh.jsxs)(eh.Fragment,{children:[ef,eA]})},"framed-scene":function({showDialogCloseButton:e=!1}){let{name:t,type:r}=SD(),{isViewerAccessPending:n,accessError:i,loadError:a,setLoadError:s,hasRooms:o}=SF(),{setContainerRef:l,sceneLoad:c,isRoomScenePending:u}=SN(),{dialogPortalContainer:d,viewerSurface:h,viewerDialogOpen:p,onViewerDialogOpenChange:A}=S_(),{t:f}=th(),g=(0,ep.useRef)(null),m=n||u||o&&!SG(c),v=(0,ep.useRef)(null),b=Bf(m,v),y=(0,ep.useMemo)(()=>(0,eh.jsx)(BP,{captureRef:g}),[]),w=i??a,x=w?(0,eh.jsx)("div",{ref:l,"data-neurodyn-room-viewer-container":"",className:"relative size-full overflow-hidden bg-radial from-background-containers to-background-base-2 text-foreground",children:(0,eh.jsx)(MU,{variant:w,missingSurfaceMessage:E1[r].missingSurfaceMessage,showDialogCloseButton:e})}):(0,eh.jsxs)("div",{ref:l,"data-neurodyn-room-viewer-container":"",className:"relative size-full bg-radial from-background-containers to-background-base-2 text-foreground overflow-hidden",children:[e&&(0,eh.jsx)(E6,{asChild:!0,children:(0,eh.jsxs)(E4,{className:"absolute top-3 right-6 z-20",variant:"secondary",children:[f("close"),(0,eh.jsx)(o5,{})]})}),!n&&(o?(0,eh.jsxs)(eh.Fragment,{children:[(0,eh.jsx)(MQ,{className:"absolute top-0 right-0 left-0 z-15"}),(0,eh.jsxs)("div",{className:"size-full max-w-full grid grid-rows-[1fr_auto]",children:[(0,eh.jsx)(Ic,{onError:()=>s("viewer-load-failed"),children:(0,eh.jsx)(Bp,{captureRef:g,className:"size-full min-h-0",controls:y})}),(0,eh.jsx)(MO,{className:"bg-background"})]})]}):(0,eh.jsx)(MN,{className:"absolute inset-x-0 bottom-0 bg-background"})),(0,eh.jsx)("div",{"aria-hidden":!m,className:E3("absolute inset-0 z-10 flex items-center justify-center bg-radial from-background-containers to-background-base-2 transition-opacity",m?"opacity-100 pointer-events-auto duration-0":"opacity-0 pointer-events-none duration-250ms"),ref:v,children:b&&(0,eh.jsx)(Sw,{variant:"logo"})})]});return"dialog"!==h?x:(0,eh.jsx)(E5,{open:p,onOpenChange:A,children:(0,eh.jsxs)(Se,{className:Sx,contentInsideOverlay:!0,portalContainer:d,showCloseButton:!1,onInteractOutside:e=>{e.preventDefault()},children:[(0,eh.jsxs)(St,{className:"sr-only",children:[(0,eh.jsx)(Sn,{children:t}),(0,eh.jsx)(Si,{})]}),x]})})}};function Tm({showDialogCloseButton:e=!1}){let{type:t}=SD(),r=Tg[E1[t].chrome];return(0,eh.jsx)(r,{showDialogCloseButton:e})}let Tv=0,Tb={angle:0,rotation:0,isDragging:!1};function Ty(){let e=Tb,t=new Set;function r(r){return n=>{let i="function"==typeof n?n(e[r]):n;Object.is(i,e[r])||(e={...e,[r]:i},t.forEach(e=>e()))}}return{getState:()=>e,subscribe:e=>(t.add(e),()=>{t.delete(e)}),setAngle:r("angle"),setRotation:r("rotation"),setIsDragging:r("isDragging")}}let Tw=[];function Tx(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 TC({children:e,src:t,tinuuid:r,roomId:n,type:i,viewerSurface:a,dialogPortalContainer:s=null,viewerDialogOpen:o=!0,onViewerDialogOpenChange:l,width:c,height:u,displayUnit:d,name:h,apiKey:p,baseURL:A,source:f,externalWidgetSession:g}){var m,v;let b=function(){let{t:e}=th();return(0,ep.useMemo)(()=>[{value:.025,label:`2.5 ${e("units.cm")}`},{value:.05,label:`5 ${e("units.cm")}`}],[e])}(),y=Mk(d),w=function(){let{i18n:e}=th();return"ru"===(e.resolvedLanguage??e.language)?"ru":"en"}(),x=Mm(i),C="immersive-room"===E1[i].chrome&&n?.trim()||void 0,E="finish"===E1[i].materialRole,{offersSizeVariants:S}=Mf(i),M="floor-room-presets"===E1[i].roomPresets?Ml:Mo,I=Ea({apiKey:p,baseURL:A,source:f}),[B,T]=(0,ep.useState)(r),[k,R]=(0,ep.useState)(null),P=(0,ep.useCallback)(e=>{R(null),T(e)},[]),D=(0,ep.useCallback)(e=>{R(e),T(e)},[]),[_,L]=(0,ep.useState)(null),[F,N]=(0,ep.useState)(b[0].value),[O,Q]=(0,ep.useState)(y[0].value),[U]=(0,ep.useState)(Ty),[z,j]=(0,ep.useState)(null),[G,H]=(0,ep.useState)(()=>({layoutReady:!1,placementReady:!1,materialReady:"artwork-src"===x.materialSource,artifactsReady:!1,assetsReady:!1,prepareReady:!1,shadersReady:!1})),[V,q]=(0,ep.useState)(!1),[W,K]=(0,ep.useState)(null),[J,Y]=(0,ep.useState)(null),X=(0,ep.useRef)(null),Z=(0,ep.useRef)(new Set),$=(0,ep.useRef)(null),ee=(0,ep.useRef)(!0),et=(0,ep.useRef)(!1),er="object-glb"===x.materialSource,en="default"===f&&void 0!==p,ei=Eo("wall-panel"===(m={apiKey:p,baseURL:A,source:f,resourceType:i}).resourceType?m:{...m,resourceType:void 0}),ea=r0({queryKey:["room-viewer","activate",{apiKey:p??null,source:f,resourceType:i}],enabled:en,queryFn:({signal:e})=>EM(ei.query,{...ei.config,baseURL:A,headers:{"x-api-key":p},signal:e})},rT,void 0),es=El(ea.error),eo=(0,ep.useMemo)(()=>{let e=ea.data;return EH(e?.widgetSession,{apiConfig:{baseURL:A,headers:{"x-api-key":p}}})},[ea.data,p,A]),el=g instanceof EG?g:null,ec=g instanceof EG?null:g,eu=ec?.token,ed=ec?.sid,eA=ec?.expiresIn,ef=(0,ep.useMemo)(()=>el||(EH({token:eu,sid:ed,expiresIn:eA},{apiConfig:{baseURL:A,headers:{"x-api-key":p}}})??eo),[eo,p,A,el,eu,ed,eA]),eg="shopify"===f?null!==ef:en&&ea.isSuccess,em=r0({queryKey:["room-viewer","rooms",{apiKey:(v={apiKey:p,baseURL:A,language:w,source:f,widgetSession:ef,resourceType:i}).apiKey??null,language:v.language??null,source:v.source,resourceType:v.resourceType??null,widgetSessionId:v.widgetSession?.sid??null}],enabled:I&&eg,queryFn:async({signal:e})=>{try{return await E$({apiKey:p,baseURL:A,language:w,signal:e,source:f,widgetSession:ef,resourceType:i})}catch(e){if(El(e))throw e;return[]}}},rT,void 0),ev=I?em.data??Tw:M,[eb,ey]=(0,ep.useState)(()=>({rooms:ev,sourceRooms:ev})),ew=(0,ep.useMemo)(()=>Tx(eb.rooms,eb.sourceRooms,ev),[eb.rooms,eb.sourceRooms,ev]),ex=(0,ep.useCallback)(e=>{ey(t=>{let r=Tx(t.rooms,t.sourceRooms,ev);return{rooms:"function"==typeof e?e(r):e,sourceRooms:ev}})},[ev]),[eC,eE]=(0,ep.useState)(()=>C??M[0].id),[eS,eM]=(0,ep.useState)(C);eS!==C&&(eM(C),C&&(eE(C),H(e=>Sz(e,SH)),Y(e=>SC(e)?null:e)));let eI=ew.find(e=>e.id===eC),eB=eI??ew[0]??M[0],eT="rotate-on-floor"===E1[i].manipulation;(0,ep.useLayoutEffect)(()=>{C&&(U.setAngle(0),U.setRotation(0))},[C,U]),(0,ep.useEffect)(()=>{eT&&U.setRotation(0)},[eT,eB.id,U]);let ek=ew.length>0;!eI&&ew[0]&&eC!==ew[0].id&&eE(ew[0].id);let eR=!en||ea.isSuccess||ea.isError&&null===es,eP=r0({queryKey:EK(r??void 0,{apiKey:p,baseURL:A,language:w,source:f,resourceType:i}),enabled:eR&&er&&null===_&&!!r,queryFn:async({signal:e})=>{if(!r)throw Error("Tinuuid is required.");return EY(r,{apiKey:p,baseURL:A,language:w,signal:e,source:f,widgetSession:ef,resourceType:i})}},rT,void 0),eD=r0({queryKey:EK(B??void 0,{apiKey:p,baseURL:A,language:w,source:f,resourceType:i}),enabled:eR&&er&&!!B,placeholderData:rh,queryFn:async({signal:e})=>{if(!B)throw Error("Tinuuid is required.");return EY(B,{apiKey:p,baseURL:A,language:w,signal:e,source:f,widgetSession:ef,resourceType:i})}},rT,void 0),e_=eP.data??null,eL=eD.data??null,eF=e_?.materials?.[0]??null,eN=_?.native?.glbUrl??null,eO=El(eP.error),eQ=El(em.error),eU=I&&("shopify"===f?null===ef||em.isLoading:ea.isSuccess&&em.isLoading),ez=en&&ea.isLoading||eU,ej=ea.error&&null===es?"viewer-load-failed":null,eG=eP.error&&null===eO?"viewer-load-failed":null,eH="artwork-src"===x.materialSource&&("string"!=typeof t||0===t.trim().length)?"artwork-load-failed":null,eV=er&&!ez&&(!r||eP.isSuccess&&null===eF||null!==_&&null===eN)?"viewer-load-failed":null,eq=null!==k&&k===B&&(eD.isError||eD.isSuccess&&eL?.tinuuid===B&&!eL.materials?.[0]?.native?.glbUrl)?"viewer-load-failed":null,eW=W??es??eQ??eO,eK=J??eq??ej??eG??eV??eH,eJ=(0,ep.useCallback)(e=>{H(t=>Sz(t,e))},[]);(0,ep.useEffect)(()=>{let e=new Set(ew.map(e=>e.image_url));for(let t of Array.from(Z.current))e.has(t)||(URL.revokeObjectURL(t),Z.current.delete(t))},[ew]),(0,ep.useEffect)(()=>{let e=Z.current;return ee.current=!0,()=>{for(let t of(ee.current=!1,$.current?.abort(),Array.from(e)))URL.revokeObjectURL(t);e.clear()}},[]);let eY=(0,ep.useCallback)(async e=>{let t=null,r=new AbortController;$.current?.abort(),$.current=r,q(!0);try{t=URL.createObjectURL(e);let n=await B8(e,{resourceType:i,apiKey:p,baseURL:A,source:f,signal:r.signal,widgetSession:ef});if(r.signal.aborted||!ee.current)return void URL.revokeObjectURL(t);B7()&&Te(n,e.name).catch(e=>{console.error("Failed to export room debug mask",e)});let a={id:(Tv+=1,`room-custom-${Tv}`),name:e.name,image_url:t,scene:n};Z.current.add(t),eJ({placementReady:!1,prepareReady:!1,artifactsReady:!1,assetsReady:!1}),ex(e=>[a,...e]),eE(a.id)}catch(n){if(t&&URL.revokeObjectURL(t),r.signal.aborted)return;let e=El(n);if(e)return void K(e);console.error("Failed to prepare custom room scene",n)}finally{$.current===r&&($.current=null,ee.current&&q(!1))}},[p,A,eJ,ex,f,i,ef]);(0,ep.useEffect)(()=>{if("dialog"!==a||!o){et.current=!1;return}et.current||ef&&(EV(ef,"widget_opened"),et.current=!0)},[o,a,ef]),(0,ep.useEffect)(()=>{er&&(P(r),L(null),K(null),Y(null))},[r,P,er]),(0,ep.useEffect)(()=>{K(null),Y(null)},[p,f]),(0,ep.useEffect)(()=>{er&&e_&&null===_&&L(eF)},[_,eF,e_,er]),(0,ep.useEffect)(()=>{if(!er||!S&&!E&&k!==B||null===eL||eL.tinuuid!==B)return;let e=eL.materials?.[0];if(!e)return;let t=eL.materials?.some(e=>e===_||!!e.hid&&e.hid===_?.hid);if(k===B){R(null),L(e);return}(!t||E)&&_!==e&&L(e)},[E,_,S,eL,B,er,k]);let eX=(0,ep.useMemo)(()=>({type:i,name:h,width:c,height:u,displayUnit:d}),[i,h,c,u,d]),eZ=(0,ep.useMemo)(()=>({viewerSurface:a,dialogPortalContainer:s,viewerDialogOpen:o,onViewerDialogOpenChange:l}),[a,s,o,l]),e$=(0,ep.useMemo)(()=>({rooms:ew,sourceRooms:ev,setRooms:ex,room:eB,initialRoomId:C,setRoomId:eE}),[ew,eB,C,ex,ev]),e0=(0,ep.useMemo)(()=>({src:t,glbUrl:eN,tinuuid:B,embeddedObject:e_,selectedObject:eL,material:_,setTinuuid:P,selectResourceVariant:D,setMaterial:L,apiKey:p,baseURL:A,language:w,source:f,widgetSession:ef,hasRooms:ek,isViewerAccessPending:ez,accessError:eW,setAccessError:K,loadError:eK,setLoadError:Y}),[t,eN,B,e_,eL,_,P,D,p,A,w,f,ef,ek,ez,eW,eK]),e1=(0,ep.useMemo)(()=>({setContainerRef:j,resourceRef:X,sceneGestures:U,patchSceneLoad:eJ,setIsRoomScenePending:q}),[eJ,U]),e2=(0,ep.useMemo)(()=>({...e1,containerRef:z,sceneLoad:G,isRoomScenePending:V}),[e1,z,G,V]),e3=(0,ep.useMemo)(()=>({frameWidth:F,setFrameWidth:N,matting:O,setMatting:Q}),[F,O]),e9=(0,ep.useMemo)(()=>({isRoomScenePending:V,selectCustomRoomFile:eY}),[V,eY]);return(0,eh.jsx)(SE,{value:eX,children:(0,eh.jsx)(SS,{value:eZ,children:(0,eh.jsx)(SM,{value:e$,children:(0,eh.jsx)(SI,{value:e0,children:(0,eh.jsx)(ST,{value:e1,children:(0,eh.jsx)(SB,{value:e2,children:(0,eh.jsx)(Sk,{value:e3,children:(0,eh.jsx)(SR,{value:e9,children:(0,eh.jsx)(M6,{children:e})})})})})})})})})}let TE={poster:"wallart",carpet:"rugs"};function TS(e){return"poster"===e||"carpet"===e}i6.gPd.DEFAULT_ANISOTROPY=4;let TM=new r4({defaultOptions:{queries:{gcTime:1/0,refetchOnMount:!1,refetchOnReconnect:!1,refetchOnWindowFocus:!1,retry:(e,t)=>{let r=function(e){if(i0(e))return e.response?.status}(t);return(void 0===r||!(r>=400)||!(r<500))&&e<2}}}});function TI({type:e,src:t,tinuuid:r,roomId:n,name:i,height:a,width:s,language:o,dimensionUnit:l="m",displayUnit:c="cm",apiKey:u,source:d="default",showDialogCloseButton:h=!1,viewerSurface:p="inline",dialogPortalContainer:A=null,viewerDialogOpen:f=!0,onViewerDialogOpenChange:g,widgetSession:m}){let{i18n:v}=th(),b=u?.trim()||void 0,y=r?.trim()||void 0,w=TS(e)?TE[e]:e,x=Mm(w).takesDimensionProps?function(e,t,r="m"){return{width:MB(e??0,r),height:MB(t??0,r)}}(s,a,l):null;return(0,ep.useEffect)(()=>{TS(e)&&TE[e]},[e]),(0,ep.useEffect)(()=>{"string"==typeof o&&v.changeLanguage(o)},[v,o]),(0,eh.jsx)(rO,{client:TM,children:(0,eh.jsx)(TC,{src:t??null,tinuuid:y??null,roomId:n,type:w,viewerSurface:p,dialogPortalContainer:A,viewerDialogOpen:f,onViewerDialogOpenChange:g,name:i,width:x?.width??0,height:x?.height??0,displayUnit:c,apiKey:b,baseURL:"shopify"===d?Ei:void 0,source:d,externalWidgetSession:m,children:(0,eh.jsx)(Tm,{showDialogCloseButton:h})})})}function TB({type:e,src:t,tinuuid:r,roomId:n,width:i,height:a,dimensionUnit:s,displayUnit:o,name:l,language:c,apiKey:u,source:d,widgetSession:h,disableClose:p=!1,open:A,defaultOpen:f,onOpenChange:g}){let[m,v]=(0,ep.useState)(null),b="immersive-room"===E1[TS(e)?TE[e]:e].chrome&&p,[y,w]=(0,ep.useState)(f??!1),x=A??y,[C,E]=(0,ep.useState)(x),S=x||C;(0,ep.useEffect)(()=>{x&&E(!0)},[x]);let M=M0({isCloseDisabled:b,onOpenChange:g,open:A}),I=(0,ep.useCallback)(e=>{let{isCloseDisabled:t,onOpenChange:r,open:n}=M.current;(e||!t)&&(void 0===n&&w(e),r?.(e))},[M]),B=(0,eh.jsx)(TI,{type:e,src:t,tinuuid:r,roomId:n,name:l,height:a,width:i,dimensionUnit:s,displayUnit:o,language:c,apiKey:u,source:d,widgetSession:h,showDialogCloseButton:!b,viewerSurface:"dialog",dialogPortalContainer:m,viewerDialogOpen:x,onViewerDialogOpenChange:I});return(0,eh.jsxs)(eh.Fragment,{children:[(0,ef.createPortal)((0,eh.jsx)("style",{children:C8.A}),document.head),(0,ef.createPortal)((0,eh.jsxs)(tP.div,{"data-neurodyn-room-viewer-root":"",style:{display:"block",letterSpacing:"normal",zIndex:0x7fffffff},children:[(0,eh.jsx)("style",{children:":host{display:block!important;visibility:visible!important}"}),(0,eh.jsx)("style",{children:Er}),(0,eh.jsx)("div",{ref:v}),m&&(0,eh.jsx)(C5,{root:m,storageKey:"neurodyn-theme",defaultTheme:"light",children:(0,eh.jsx)(tp,{i18n:C7,children:S&&B})})]}),document.body)]})}EL({baseURL:"https://api.neurodyn.ai/v1/"}),Ey({baseURL:"https://api.neurodyn.ai/"});let TT=0;function Tk(e,t){let r=e.getAttribute(t);return r?Number(r):void 0}window.__neurodynRoomViewerDialog?.destroy();let TR=new class{container=null;props=null;root=null;openState=!1;destroy(){this.root?.unmount(),this.root=null,this.container?.remove(),this.container=null,this.props=null,this.openState=!1}open(e){this.props=e,this.openState=!0,this.render()}handleOpenChange=e=>{this.openState=e,this.render()};ensureRoot(){return this.root||(this.container=document.createElement("div"),this.container.id=`neurodyn-room-viewer-dialog-root-${TT++}`,document.body.appendChild(this.container),this.root=(0,mx.createRoot)(this.container)),this.root}render(){this.props&&this.ensureRoot().render((0,ep.createElement)(TB,{...this.props,onOpenChange:this.handleOpenChange,open:this.openState}))}};function TP(e){let t=e.target instanceof Element?e.target.closest("[data-neurodyn-room-viewer-dialog]"):null;t&&TR.open(function(e,t={}){var r,n,i;let a,s,o;return{disableClose:void 0!==t.disableClose?t.disableClose:"true"===e.getAttribute("data-neurodyn-room-viewer-disable-close"),type:void 0!==t.type?t.type:e.getAttribute("data-neurodyn-room-viewer-type"),src:void 0!==t.src?t.src:e.getAttribute("data-neurodyn-room-viewer-src"),tinuuid:void 0!==t.tinuuid?t.tinuuid:e.getAttribute("data-neurodyn-room-viewer-tinuuid"),roomId:void 0!==t.roomId?t.roomId:e.getAttribute("data-neurodyn-room-viewer-room-id")??void 0,name:void 0!==t.name?t.name:e.getAttribute("data-neurodyn-room-viewer-name"),language:void 0!==t.language?t.language:e.getAttribute("data-neurodyn-room-viewer-language"),width:void 0!==t.width?t.width:Tk(e,"data-neurodyn-room-viewer-width"),height:void 0!==t.height?t.height:Tk(e,"data-neurodyn-room-viewer-height"),dimensionUnit:void 0!==t.dimensionUnit?t.dimensionUnit:(r="data-neurodyn-room-viewer-dimension-unit","m"===(a=e.getAttribute(r))||"cm"===a||"in"===a?a:void 0),displayUnit:void 0!==t.displayUnit?t.displayUnit:(n="data-neurodyn-room-viewer-display-unit","cm"===(s=e.getAttribute(n))||"in"===s?s:void 0),apiKey:void 0!==t.apiKey?t.apiKey:e.getAttribute("data-neurodyn-room-viewer-api-key"),source:void 0!==t.source?t.source:(i="data-neurodyn-room-viewer-source","default"===(o=e.getAttribute(i))||"shopify"===o?o:void 0)}}(t))}p={destroy:function(){document.removeEventListener("click",TP),TR.destroy(),window.__neurodynRoomViewerDialog===p&&(window.__neurodynRoomViewerDialog=void 0)}},document.addEventListener("click",TP),window.__neurodynRoomViewerDialog=p})()})();
|