@roomle/embedding-lib 8.2.0 → 9.0.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/docs/md/web/embedding/CHANGELOG.md +251 -133
  2. package/{drag-ghost-BxqPJdhq.mjs → drag-ghost-BOwjMbG3.mjs} +1 -1
  3. package/{drag-ghost-CDFtC1pd.mjs → drag-ghost-BQ8r6NVo.mjs} +1 -1
  4. package/{drag-in-CV1E-DO6.mjs → drag-in-BP_E53zb.mjs} +2 -2
  5. package/{drag-in-ClPpCYyi.mjs → drag-in-QhL3zGC0.mjs} +2 -2
  6. package/embedding-plugins.js +1 -1
  7. package/embedding-plugins.min.js +1 -1
  8. package/{from-custom-view-Q9A-J7qV.mjs → from-custom-view-BM_zRJCf.mjs} +2 -2
  9. package/{from-custom-view-Sx6P6iDI.mjs → from-custom-view-D2Z1YmCx.mjs} +2 -2
  10. package/{from-website-DZJy_l42.mjs → from-website-CPVeVVMI.mjs} +2 -2
  11. package/{from-website-BmCO2xli.mjs → from-website-DlklVbxU.mjs} +2 -2
  12. package/hi-mcp-server-BiZlFkBm.mjs +4866 -0
  13. package/hi-mcp-server-DTQnrykg.mjs +5278 -0
  14. package/hi.js +110 -2
  15. package/hi.min.js +95 -2
  16. package/package.json +1 -1
  17. package/packages/embedding-lib/src/hi.d.ts +4 -0
  18. package/packages/embedding-lib/src/homag-intelligence/hi-mcp/agent-facing.d.ts +35 -0
  19. package/packages/embedding-lib/src/homag-intelligence/hi-mcp/hi-mcp-server.d.ts +3 -0
  20. package/packages/embedding-lib/src/homag-intelligence/hi-mcp/mcp-tool-types.d.ts +57 -0
  21. package/packages/embedding-lib/src/homag-intelligence/hi-mcp/mcp-tool.d.ts +13 -0
  22. package/packages/embedding-lib/src/homag-intelligence/hi-mcp/plan-history.d.ts +33 -0
  23. package/packages/embedding-lib/src/homag-intelligence/hi-mcp/planner-api.d.ts +32 -0
  24. package/packages/embedding-lib/src/homag-intelligence/hi-mcp/skills.d.ts +23 -0
  25. package/packages/embedding-lib/src/homag-intelligence/hi-mcp/tool-executors.d.ts +4 -0
  26. package/packages/embedding-lib/src/homag-intelligence/hi-mcp-tools.d.ts +11 -0
  27. package/packages/embedding-lib/src/homag-intelligence/hi-planning-assistant.d.ts +55 -0
  28. package/roomle-embedding-lib.js +64 -57
  29. package/roomle-embedding-lib.min.js +9 -2
@@ -97,6 +97,12 @@ var t = class {
97
97
  }, c = /* @__PURE__ */ function(e) {
98
98
  return e.BOTTOM_BAR = "bottom_bar", e.PARTLIST_BOUNDS = "partlist_bounds", e.INTERACTION_NOTES = "interaction_notes", e.PARAMETER_GROUPS = "parameter_groups", e;
99
99
  }({}), l = (e) => JSON.parse(JSON.stringify(e)), u = {
100
+ staging: !1,
101
+ theme: "scandinavian",
102
+ density: "balanced",
103
+ light: "soft",
104
+ stage: "alpha"
105
+ }, d = {
100
106
  mobileLandscape: !0,
101
107
  floorMaterialRootTag: "materials_root",
102
108
  buttons: {
@@ -124,35 +130,36 @@ var t = class {
124
130
  openCloseAnimation: !0,
125
131
  localExport3d: !1
126
132
  },
133
+ imageGenConfig: u,
127
134
  configuratorZoom: !1,
128
135
  rotationSnapDegrees: 10,
129
136
  interactionsCollapsed: !1
130
- }, d = (e) => (p(e), e?.customApiUrl && (e.customApiUrl = decodeURIComponent(e.customApiUrl)), e.shareUrl && (e.deeplink = e.shareUrl.replace(h, g)), e), f = (e) => e.trim() !== "" && Number.isFinite(Number(e.trim())), p = (e) => {
137
+ }, f = (e) => (m(e), e?.customApiUrl && (e.customApiUrl = decodeURIComponent(e.customApiUrl)), e.shareUrl && (e.deeplink = e.shareUrl.replace(g, _)), e), p = (e) => e.trim() !== "" && Number.isFinite(Number(e.trim())), m = (e) => {
131
138
  if (!e || typeof e != "object") return;
132
139
  let t = Object.keys(e);
133
140
  for (let n of t) {
134
141
  let t = e[n];
135
- if (!Array.isArray(t) && typeof t == "object" && t && p(t), Array.isArray(t)) for (let e of t) p(e);
136
- t === "true" || t === "false" ? e[n] = t === "true" : typeof t == "string" && f(t) && (e[n] = Number(t));
142
+ if (!Array.isArray(t) && typeof t == "object" && t && m(t), Array.isArray(t)) for (let e of t) m(e);
143
+ t === "true" || t === "false" ? e[n] = t === "true" : typeof t == "string" && p(t) && (e[n] = Number(t));
137
144
  }
138
- }, m = () => {
139
- let t = l(u);
145
+ }, h = () => {
146
+ let t = l(d);
140
147
  t.locale ||= e(null, !0), t.id === "(idle)" && delete t.id;
141
148
  let n = i();
142
- return n && a(n) && (t.configuratorId = "demoConfigurator"), t.customApiUrl = void 0, t.emails = !1, t;
143
- }, h = "<CONF_ID>", g = "#CONFIGURATIONID#", _ = (e) => {
149
+ return n && a(n) && (t.configuratorId = "demoConfigurator"), t.customApiUrl = "https://rubens.alpha.roomle.com/api/v2", t.emails = !1, t;
150
+ }, g = "<CONF_ID>", _ = "#CONFIGURATIONID#", v = (e) => {
144
151
  let t = e.featureFlags;
145
152
  if (!t || typeof t != "object" || Array.isArray(t)) return;
146
153
  let n = t;
147
154
  "enableTwoLevelCatalog" in n && typeof n.enableTwoLevelCatalog == "boolean" && (e.enableTwoLevelCatalog === !1 || e.enableTwoLevelCatalog === void 0) && (e.enableTwoLevelCatalog = n.enableTwoLevelCatalog), "webGpu" in n && typeof n.webGpu == "boolean" && (e.webGpu === !1 || e.webGpu === void 0) && (e.webGpu = n.webGpu);
148
- }, v = (e) => {
155
+ }, y = (e) => {
149
156
  e.featureFlags ||= {}, typeof e.featureFlags.realPartList != "boolean" && (e.featureFlags.realPartList = !0), typeof e.featureFlags.globalCallbacks != "boolean" && (e.featureFlags.globalCallbacks = !0), typeof e.featureFlags.mocAr != "boolean" && (e.featureFlags.mocAr = !1);
150
- }, y = (e, t) => {
151
- let n = l(t), r = m();
152
- v(r);
157
+ }, b = (e, t) => {
158
+ let n = l(t), r = h();
159
+ y(r);
153
160
  let i = o(o(r, e.settings || {}), n);
154
- return i.configuratorId = e.id, !i.overrideTenant && e.tenant && (i.overrideTenant = e.tenant), _(i), i;
155
- }, b = () => /(android)/i.test(navigator.userAgent), x = class {
161
+ return i.configuratorId = e.id, !i.overrideTenant && e.tenant && (i.overrideTenant = e.tenant), v(i), i;
162
+ }, x = () => /(android)/i.test(navigator.userAgent), S = class {
156
163
  _messageHandler = null;
157
164
  isSetupDone = !1;
158
165
  viewName = "main";
@@ -194,7 +201,7 @@ var t = class {
194
201
  setupPlugins(e, t, n = "website") {
195
202
  for (let r of e) typeof r == "string" && r === "dragIn" ? this.pluginsLoaded.push(new Promise((e, r) => {
196
203
  try {
197
- import("./drag-in-ClPpCYyi.mjs").then((e) => e.n).then(({ DragIn: i }) => {
204
+ import("./drag-in-QhL3zGC0.mjs").then((e) => e.n).then(({ DragIn: i }) => {
198
205
  let a = new i(this.ui, t, n, this.viewName);
199
206
  a.init().then(() => {
200
207
  this.plugins.dragIn = a, e();
@@ -216,7 +223,7 @@ var t = class {
216
223
  }
217
224
  }));
218
225
  }
219
- }, S = () => {
226
+ }, C = () => {
220
227
  let e, t;
221
228
  return {
222
229
  promise: new Promise((n, r) => {
@@ -229,7 +236,7 @@ var t = class {
229
236
  //#endregion
230
237
  //#region packages/common/src/utils/rapi-version.ts
231
238
  (/* @__PURE__ */ "/items./items/{id}./items/{id}/renderings./items/{id}/conversions./items/{id}/3d-exports./items/{id}/perspectiveImage./items/{id}/perspectiveImageHD./items/{id}/topImage./items/{id}/tags./items/{id}/tagConnections./items/{id}/additionalContents./items/{id}/assetProcessings./items/{id}/3dAssets/{format}./items/{id}/3dAssets/{format}/{dummyFileName}./configurations./configurations/{id}./configurations/{id}/shares./configurations/{id}/renderings./configurations/{id}/3d-exports./configurations/{id}/3dAssets/{format}./configurations/{id}/3dAssets/{format}/{dummyFileName}./auth/signin./auth/signout./auth/reset./auth/reset/confirm./auth/change/pwd./auth/context./assets/analyze./version".split(".")).map((e) => RegExp("^" + e.replace(/\{[^}]+\}/g, "[^/]+") + "/?$"));
232
- var C = /\/v[23]\/?$/, w = (e, t) => C.test(e) ? e.replace(C, "/v2") + t : e + t, T = {
239
+ var w = /\/v[23]\/?$/, T = (e, t) => w.test(e) ? e.replace(w, "/v2") + t : e + t, E = {
233
240
  SDK: "extended",
234
241
  CONFIGURATOR_SDK: "configurator",
235
242
  CALLBACKS: "callbacks",
@@ -237,22 +244,22 @@ var C = /\/v[23]\/?$/, w = (e, t) => C.test(e) ? e.replace(C, "/v2") + t : e + t
237
244
  ANALYTICS: "analytics",
238
245
  GLOBAL: "global",
239
246
  RAPI: "rapi"
240
- }, E = ".", D = T.SDK + "." + T.CALLBACKS, O = {
247
+ }, D = ".", O = E.SDK + "." + E.CALLBACKS, k = {
241
248
  REQUEST_BOOT: "requestBoot",
242
249
  SETUP: "setup",
243
250
  WEBSITE_READY: "websiteReady"
244
- }, k = {
251
+ }, A = {
245
252
  GET_METHODS: "getMethods",
246
253
  RETURN_METHODS: "returnMethods",
247
254
  REGISTER_CUSTOM_VIEW: "registerCustomView",
248
255
  REGISTER_CUSTOM_VIEW_DONE: "registerCustomViewDone"
249
- }, A = ["constructor", "callbacks"], j = (e) => e[0] !== "_" && !A.includes(e), M = (e, t, n = !1) => {
256
+ }, j = ["constructor", "callbacks"], M = (e) => e[0] !== "_" && !j.includes(e), N = (e, t, n = !1) => {
250
257
  if (!e) return [];
251
- let r = Object.getOwnPropertyNames(e), i = n ? T.CALLBACKS + "." : "";
252
- return r.filter(j).map((e) => t + "." + i + e);
253
- }, N = async (e, t) => {
258
+ let r = Object.getOwnPropertyNames(e), i = n ? E.CALLBACKS + "." : "";
259
+ return r.filter(M).map((e) => t + "." + i + e);
260
+ }, P = async (e, t) => {
254
261
  if (typeof e != "string") throw Error("Configurator ID is not a string type: \"" + typeof e + "\"");
255
- let n = t.customApiUrl ? t.customApiUrl : "https://api.roomle.com/v2", r = t.overrideTenant || 9, i = w(n, "/configurators/" + e), a = "03-" + window.btoa((/* @__PURE__ */ new Date()).toISOString() + ";anonymous;roomle_portal_v2"), o = new Request(i, {
262
+ let n = t.customApiUrl ? t.customApiUrl : "https://api.roomle.com/v2", r = t.overrideTenant || 9, i = T(n, "/configurators/" + e), a = "03-" + window.btoa((/* @__PURE__ */ new Date()).toISOString() + ";anonymous;roomle_portal_v2"), o = new Request(i, {
256
263
  method: "GET",
257
264
  headers: new Headers({
258
265
  apiKey: "roomle_portal_v2",
@@ -267,7 +274,7 @@ var C = /\/v[23]\/?$/, w = (e, t) => C.test(e) ? e.replace(C, "/v2") + t : e + t
267
274
  cache: "default"
268
275
  }), { configurator: s } = await (await fetch(o)).json();
269
276
  return s;
270
- }, P = "data-rml-interaction-container", F = (e, t, n) => {
277
+ }, F = "data-rml-interaction-container", I = (e, t, n) => {
271
278
  let r = null;
272
279
  Object.defineProperty(e, t, {
273
280
  get() {
@@ -277,28 +284,28 @@ var C = /\/v[23]\/?$/, w = (e, t) => C.test(e) ? e.replace(C, "/v2") + t : e + t
277
284
  e?.mute ? r = e.value : (console.warn("You override Roomle defined behaviour. To disalbe this warning pass in an object with the following properties"), console.warn("{ mute: true, value: () => void }"), r = e);
278
285
  }
279
286
  });
280
- }, I = () => window.innerHeight * .01 + "px", L = (e) => {
281
- e && setTimeout(() => e.style.setProperty(B, I()), 0);
282
- }, R = "rml-styles", z = 450, B = "--rml-full-height", V = {
287
+ }, L = () => window.innerHeight * .01 + "px", R = (e) => {
288
+ e && setTimeout(() => e.style.setProperty(V, L()), 0);
289
+ }, z = "rml-styles", B = 450, V = "--rml-full-height", H = {
283
290
  CONTAINER: "rml-container",
284
291
  FILL: "rml-fill",
285
292
  POSITION: "rml-pos",
286
293
  TRANSITION: "rml-transition",
287
294
  ANDROID_HEIGHT: "rml-android-height",
288
295
  OVERFLOW_HIDDEN: "rml-overflow-hidden"
289
- }, H = /* @__PURE__ */ new Map(), U = class extends x {
296
+ }, U = /* @__PURE__ */ new Map(), W = class extends S {
290
297
  static createPlanner(e, t, n, r = []) {
291
298
  return this._create(e, t, n, r);
292
299
  }
293
300
  static async connect(e, n = []) {
294
- let r = new x();
301
+ let r = new S();
295
302
  r.viewName = e;
296
- let { resolve: i, promise: a } = S(), { resolve: o, promise: s } = S(), c = new t("custom-view-" + e, window, window.parent, ({ message: e, args: t }) => {
303
+ let { resolve: i, promise: a } = C(), { resolve: o, promise: s } = C(), c = new t("custom-view-" + e, window, window.parent, ({ message: e, args: t }) => {
297
304
  switch (e) {
298
- case k.REGISTER_CUSTOM_VIEW_DONE:
305
+ case A.REGISTER_CUSTOM_VIEW_DONE:
299
306
  i();
300
307
  break;
301
- case k.RETURN_METHODS:
308
+ case A.RETURN_METHODS:
302
309
  r.handleSetup(t[0]), o();
303
310
  break;
304
311
  default: if (r.isSetupDone) return r.executeMessage({
@@ -309,7 +316,7 @@ var C = /\/v[23]\/?$/, w = (e, t) => C.test(e) ? e.replace(C, "/v2") + t : e + t
309
316
  });
310
317
  r.setMessageHandler(c);
311
318
  let l = [e];
312
- return c.sendMessage(k.REGISTER_CUSTOM_VIEW, l), await a, c.sendMessage(k.GET_METHODS, l), await s, r.setupPlugins(n, document.body, "custom-view"), await Promise.allSettled(r.pluginsLoaded), r;
319
+ return c.sendMessage(A.REGISTER_CUSTOM_VIEW, l), await a, c.sendMessage(A.GET_METHODS, l), await s, r.setupPlugins(n, document.body, "custom-view"), await Promise.allSettled(r.pluginsLoaded), r;
313
320
  }
314
321
  static createConfigurator(e, t, n, r = []) {
315
322
  return this._create(e, t, n, r);
@@ -323,10 +330,10 @@ var C = /\/v[23]\/?$/, w = (e, t) => C.test(e) ? e.replace(C, "/v2") + t : e + t
323
330
  static async _create(e, t, n, r) {
324
331
  return new Promise(async (i, a) => {
325
332
  try {
326
- let a = d(n), s = m();
327
- v(s);
328
- let c = await N(e, o(s, a));
329
- n = y(c, a);
333
+ let a = f(n), s = h();
334
+ y(s);
335
+ let c = await P(e, o(s, a));
336
+ n = b(c, a);
330
337
  let l = new this(c, t, n, r, i);
331
338
  return await Promise.allSettled(l.pluginsLoaded), l;
332
339
  } catch (e) {
@@ -341,51 +348,51 @@ var C = /\/v[23]\/?$/, w = (e, t) => C.test(e) ? e.replace(C, "/v2") + t : e + t
341
348
  _iframe;
342
349
  constructor(e, n, r, i, a) {
343
350
  if (super(), !e || typeof e.id != "string") throw Error("Please provide a correct configuratorId, you get the correct ID from your Roomle Contact Person");
344
- if (H.has(n)) throw Error("There is already an instance on this DOM element");
345
- if (!document.getElementById(R)) {
351
+ if (U.has(n)) throw Error("There is already an instance on this DOM element");
352
+ if (!document.getElementById(z)) {
346
353
  let e = r.zIndex || 9999999, t = document.createElement("style");
347
- t.type = "text/css", t.id = R;
348
- let n = "transition:all ease-in-out " + z + "ms;", i = ["-webkit-", "-o-"].reduce((e, t) => e += t + n, "") + n, a = I();
354
+ t.type = "text/css", t.id = z;
355
+ let n = "transition:all ease-in-out " + B + "ms;", i = ["-webkit-", "-o-"].reduce((e, t) => e += t + n, "") + n, a = L();
349
356
  t.innerHTML = `
350
- .${V.CONTAINER}{${B}:${a};}
351
- .${V.POSITION}{position:fixed;top:0;left:0;z-index:${e};opacity:0}
352
- .${V.TRANSITION}{${i}}
353
- .${V.FILL}{width:100%;height:100%;opacity:1}
354
- .${V.ANDROID_HEIGHT}{height:calc(var(${B},1vh)*100)}
355
- .${V.OVERFLOW_HIDDEN}{overflow:hidden}
357
+ .${H.CONTAINER}{${V}:${a};}
358
+ .${H.POSITION}{position:fixed;top:0;left:0;z-index:${e};opacity:0}
359
+ .${H.TRANSITION}{${i}}
360
+ .${H.FILL}{width:100%;height:100%;opacity:1}
361
+ .${H.ANDROID_HEIGHT}{height:calc(var(${V},1vh)*100)}
362
+ .${H.OVERFLOW_HIDDEN}{overflow:hidden}
356
363
  `, document.head.appendChild(t);
357
364
  }
358
365
  this._executeMessage = this._executeMessage.bind(this);
359
366
  let o = new t("website", window, null, this._executeMessage);
360
- this.setMessageHandler(o), this._onResize = this._onResize.bind(this), b() && window.addEventListener("resize", this._onResize), this._container = n, this._initData = r, this._configuratorSettings = e;
367
+ this.setMessageHandler(o), this._onResize = this._onResize.bind(this), x() && window.addEventListener("resize", this._onResize), this._container = n, this._initData = r, this._configuratorSettings = e;
361
368
  let s = this._createIframe();
362
- this._onUseFullPage = this._onUseFullPage.bind(this), this._onBackToWebsite = this._onBackToWebsite.bind(this), this._waitForIframe = a, this._container.appendChild(s), this._iframe = s, this.setupPlugins(i, this._iframe), H.set(n, !0);
369
+ this._onUseFullPage = this._onUseFullPage.bind(this), this._onBackToWebsite = this._onBackToWebsite.bind(this), this._waitForIframe = a, this._container.appendChild(s), this._iframe = s, this.setupPlugins(i, this._iframe), U.set(n, !0);
363
370
  }
364
371
  teardown() {
365
- this._container && H.delete(this._container);
372
+ this._container && U.delete(this._container);
366
373
  let e = this._container.querySelector("iframe");
367
374
  e && this._container.removeChild(e), window.removeEventListener("resize", this._onResize);
368
375
  }
369
376
  _createIframe() {
370
377
  let e = document.createElement("iframe"), t = this._configuratorSettings?.url || "https://www.roomle.com/t/cp/";
371
- return this._initData.useLocalRoomle && (t = location.href.replace("embedding.html", "")), location.href.includes("roomle.gitlab.io") && (t = location.href.replace("embedding.html", "index.html")), this._initData.overrideServerUrl && (t = this._initData.overrideServerUrl), e.src = t, e.classList.add(V.CONTAINER), e.classList.add(V.FILL), e;
378
+ return this._initData.useLocalRoomle && (t = location.href.replace("embedding.html", "")), location.href.includes("roomle.gitlab.io") && (t = location.href.replace("embedding.html", "index.html")), this._initData.overrideServerUrl && (t = this._initData.overrideServerUrl), e.src = t, e.classList.add(H.CONTAINER), e.classList.add(H.FILL), e;
372
379
  }
373
380
  _onResize() {
374
- L(this._iframe);
381
+ R(this._iframe);
375
382
  }
376
383
  _onUseFullPage() {
377
- this._iframe.classList.add(V.POSITION), document.documentElement.classList.add(V.OVERFLOW_HIDDEN), window.document.body.classList.add(V.OVERFLOW_HIDDEN), b() && (L(this._iframe), this._iframe.classList.add(V.ANDROID_HEIGHT));
384
+ this._iframe.classList.add(H.POSITION), document.documentElement.classList.add(H.OVERFLOW_HIDDEN), window.document.body.classList.add(H.OVERFLOW_HIDDEN), x() && (R(this._iframe), this._iframe.classList.add(H.ANDROID_HEIGHT));
378
385
  }
379
386
  _onBackToWebsite() {
380
- this._iframe.classList.remove(V.POSITION), this._iframe.classList.remove(V.ANDROID_HEIGHT), document.documentElement.classList.remove(V.OVERFLOW_HIDDEN), window.document.body.classList.remove(V.OVERFLOW_HIDDEN);
387
+ this._iframe.classList.remove(H.POSITION), this._iframe.classList.remove(H.ANDROID_HEIGHT), document.documentElement.classList.remove(H.OVERFLOW_HIDDEN), window.document.body.classList.remove(H.OVERFLOW_HIDDEN);
381
388
  }
382
389
  _executeMessage({ message: e, args: t }, n) {
383
- if (n.source && n.source === this._iframe?.contentWindow) return e === O.REQUEST_BOOT ? this._messageHandler ? (this._messageHandler.setOutgoingMessageBus(n.source), Promise.resolve({ result: this._initData })) : (console.error("MessageHandler not set"), Promise.resolve({ error: "MessageHandler not set" })) : e === O.SETUP ? (this.handleSetup(t[0]), F(this.ui.callbacks, "onUseFullPage", this._onUseFullPage), F(this.ui.callbacks, "onBackToWebsite", this._onBackToWebsite), this._waitForIframe(this), setTimeout(() => {
390
+ if (n.source && n.source === this._iframe?.contentWindow) return e === k.REQUEST_BOOT ? this._messageHandler ? (this._messageHandler.setOutgoingMessageBus(n.source), Promise.resolve({ result: this._initData })) : (console.error("MessageHandler not set"), Promise.resolve({ error: "MessageHandler not set" })) : e === k.SETUP ? (this.handleSetup(t[0]), I(this.ui.callbacks, "onUseFullPage", this._onUseFullPage), I(this.ui.callbacks, "onBackToWebsite", this._onBackToWebsite), this._waitForIframe(this), setTimeout(() => {
384
391
  if (!this._messageHandler) {
385
392
  console.error("MessageHandler not set");
386
393
  return;
387
394
  }
388
- this._messageHandler.sendMessage(O.WEBSITE_READY);
395
+ this._messageHandler.sendMessage(k.WEBSITE_READY);
389
396
  }, 0), Promise.resolve({ result: null })) : this.executeMessage({
390
397
  message: e,
391
398
  args: t
@@ -393,4 +400,4 @@ var C = /\/v[23]\/?$/, w = (e, t) => C.test(e) ? e.replace(C, "/v2") + t : e + t
393
400
  }
394
401
  };
395
402
  //#endregion
396
- export { O as HANDSHAKE_MESSAGES, P as INTERACTION_CONTAINER_SELECTOR, T as NAMESPACE, E as NAMESPACE_SEPARATOR, D as SDK_CALLBACK, k as WELL_KNOWN_MESSAGES, U as default, N as getConfiguratorSettings, M as getMethodNames, j as isExposable };
403
+ export { k as HANDSHAKE_MESSAGES, F as INTERACTION_CONTAINER_SELECTOR, E as NAMESPACE, D as NAMESPACE_SEPARATOR, O as SDK_CALLBACK, A as WELL_KNOWN_MESSAGES, W as default, P as getConfiguratorSettings, N as getMethodNames, M as isExposable };
@@ -102,6 +102,13 @@ var t = class {
102
102
  openCloseAnimation: !0,
103
103
  localExport3d: !1
104
104
  },
105
+ imageGenConfig: {
106
+ staging: !1,
107
+ theme: "scandinavian",
108
+ density: "balanced",
109
+ light: "soft",
110
+ stage: "alpha"
111
+ },
105
112
  configuratorZoom: !1,
106
113
  rotationSnapDegrees: 10,
107
114
  interactionsCollapsed: !1
@@ -134,7 +141,7 @@ var t = class {
134
141
  return r && ((e) => {
135
142
  let t = /* @__PURE__ */ new RegExp(/^(10\.|172\.(1[6-9]|2\d|3[01])\.|192\.168\.)/);
136
143
  return !!(n.includes(e) || t.test(e) || e.endsWith("roomle.com") || e.endsWith("gitlab.io") || e.endsWith("gitlab.com"));
137
- })(r) && (t.configuratorId = "demoConfigurator"), t.customApiUrl = void 0, t.emails = !1, t;
144
+ })(r) && (t.configuratorId = "demoConfigurator"), t.customApiUrl = "https://rubens.alpha.roomle.com/api/v2", t.emails = !1, t;
138
145
  }, d = (e) => {
139
146
  e.featureFlags ||= {}, typeof e.featureFlags.realPartList != "boolean" && (e.featureFlags.realPartList = !0), typeof e.featureFlags.globalCallbacks != "boolean" && (e.featureFlags.globalCallbacks = !0), typeof e.featureFlags.mocAr != "boolean" && (e.featureFlags.mocAr = !1);
140
147
  }, f = () => /(android)/i.test(navigator.userAgent), p = class {
@@ -175,7 +182,7 @@ var t = class {
175
182
  setupPlugins(e, t, n = "website") {
176
183
  for (let r of e) typeof r == "string" && r === "dragIn" ? this.pluginsLoaded.push(new Promise((e, r) => {
177
184
  try {
178
- import("./drag-in-CV1E-DO6.mjs").then((e) => e.n).then(({ DragIn: i }) => {
185
+ import("./drag-in-BP_E53zb.mjs").then((e) => e.n).then(({ DragIn: i }) => {
179
186
  let a = new i(this.ui, t, n, this.viewName);
180
187
  a.init().then(() => {
181
188
  this.plugins.dragIn = a, e();