@eyeon/map 2.0.14 → 2.0.15

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 (42) hide show
  1. package/dist/assets/index.css +1 -1
  2. package/dist/chunks/MapViewer.js +1946 -1865
  3. package/dist/chunks/MapViewer.js.map +1 -1
  4. package/dist/chunks/stacking.js +853 -728
  5. package/dist/chunks/stacking.js.map +1 -1
  6. package/dist/chunks/wheelZoom.js +18 -18
  7. package/dist/core/index.d.ts +1 -0
  8. package/dist/core/index.d.ts.map +1 -1
  9. package/dist/core/index.js +184 -167
  10. package/dist/core/responsive.d.ts +51 -0
  11. package/dist/core/responsive.d.ts.map +1 -0
  12. package/dist/core/types.d.ts +6 -2
  13. package/dist/core/types.d.ts.map +1 -1
  14. package/dist/editor/MapEditor.d.ts +10 -2
  15. package/dist/editor/MapEditor.d.ts.map +1 -1
  16. package/dist/editor/draftOps.d.ts +2 -1
  17. package/dist/editor/draftOps.d.ts.map +1 -1
  18. package/dist/editor/editorSectionReturn.d.ts +4 -2
  19. package/dist/editor/editorSectionReturn.d.ts.map +1 -1
  20. package/dist/editor/index.css +30 -0
  21. package/dist/editor/index.d.ts +1 -1
  22. package/dist/editor/index.d.ts.map +1 -1
  23. package/dist/editor/index.js +3527 -3439
  24. package/dist/editor/index.js.map +1 -1
  25. package/dist/editor/panels/LeftRail.d.ts +4 -2
  26. package/dist/editor/panels/LeftRail.d.ts.map +1 -1
  27. package/dist/editor/panels/PreviewOverlay.d.ts +8 -3
  28. package/dist/editor/panels/PreviewOverlay.d.ts.map +1 -1
  29. package/dist/editor/previewDocument.d.ts +2 -1
  30. package/dist/editor/previewDocument.d.ts.map +1 -1
  31. package/dist/viewer/MapViewer.d.ts +8 -1
  32. package/dist/viewer/MapViewer.d.ts.map +1 -1
  33. package/dist/viewer/camera.d.ts +9 -0
  34. package/dist/viewer/camera.d.ts.map +1 -1
  35. package/dist/viewer/components/CameraRig.d.ts +12 -1
  36. package/dist/viewer/components/CameraRig.d.ts.map +1 -1
  37. package/dist/viewer/components/MapScene.d.ts +11 -3
  38. package/dist/viewer/components/MapScene.d.ts.map +1 -1
  39. package/dist/viewer/index.d.ts +1 -1
  40. package/dist/viewer/index.d.ts.map +1 -1
  41. package/dist/viewer/index.js +1 -1
  42. package/package.json +1 -1
@@ -1,23 +1,23 @@
1
- import Zt from "ngraph.graph";
2
- import jt from "ngraph.path";
3
- const qt = "transparent";
4
- function pt(t) {
1
+ import qt from "ngraph.graph";
2
+ import Qt from "ngraph.path";
3
+ const Jt = "transparent";
4
+ function mt(t) {
5
5
  const e = (t ?? "").trim().toLowerCase();
6
- return e === qt || e === "none";
6
+ return e === Jt || e === "none";
7
7
  }
8
- const wt = "#E9F7FC", Qt = [
8
+ const Pt = "#E9F7FC", te = [
9
9
  "green-area",
10
10
  "water-area",
11
11
  "parking-lane",
12
12
  "parking-icon",
13
13
  "walking-path"
14
- ], Jt = {
14
+ ], ee = {
15
15
  "green-area": "GREEN_AREA_COLOR",
16
16
  "water-area": "WATER_COLOR",
17
17
  "parking-lane": "PARKING_LANE_COLOR",
18
18
  "parking-icon": "PARKING_ICON_COLOR",
19
19
  "walking-path": "WALKABLE_COLOR"
20
- }, Pt = {
20
+ }, Ft = {
21
21
  "green-area": {
22
22
  fill: "#C4DDAB",
23
23
  renderOrder: 2,
@@ -39,65 +39,65 @@ const wt = "#E9F7FC", Qt = [
39
39
  extrudeHeight: 1
40
40
  },
41
41
  "walking-path": {
42
- fill: wt,
42
+ fill: Pt,
43
43
  renderOrder: 2,
44
44
  extrudeHeight: 1
45
45
  }
46
46
  };
47
- function z(t) {
48
- const e = Pt[t];
47
+ function W(t) {
48
+ const e = Ft[t];
49
49
  return e.fill ?? e.stroke ?? "";
50
50
  }
51
- function te() {
51
+ function ne() {
52
52
  return {
53
- GREEN_AREA_COLOR: z("green-area"),
54
- WATER_COLOR: z("water-area"),
55
- PARKING_LANE_COLOR: z("parking-lane"),
56
- PARKING_ICON_COLOR: z("parking-icon"),
57
- WALKABLE_COLOR: z("walking-path")
53
+ GREEN_AREA_COLOR: W("green-area"),
54
+ WATER_COLOR: W("water-area"),
55
+ PARKING_LANE_COLOR: W("parking-lane"),
56
+ PARKING_ICON_COLOR: W("parking-icon"),
57
+ WALKABLE_COLOR: W("walking-path")
58
58
  };
59
59
  }
60
- function Ft(t) {
60
+ function Dt(t) {
61
61
  return t.toLowerCase().replace(/[-_]+/g, " ").replace(/\s+/g, " ").trim();
62
62
  }
63
- function ee(t, e) {
64
- const n = Ft(e);
63
+ function oe(t, e) {
64
+ const n = Dt(e);
65
65
  return !!(t === n || t.startsWith(`${n} `) || t === `${n}s` || t.startsWith(`${n}s `));
66
66
  }
67
- function ne(t) {
67
+ function re(t) {
68
68
  if (!t) return null;
69
- const e = Ft(t);
69
+ const e = Dt(t);
70
70
  if (!e) return null;
71
- const n = [...Qt].sort((o, r) => r.length - o.length);
71
+ const n = [...te].sort((o, r) => r.length - o.length);
72
72
  for (const o of n)
73
- if (ee(e, o)) return o;
73
+ if (oe(e, o)) return o;
74
74
  return null;
75
75
  }
76
- function oe(t, e, n) {
77
- const o = Jt[e];
76
+ function ie(t, e, n) {
77
+ const o = ee[e];
78
78
  if (!o) return t;
79
79
  const r = n == null ? void 0 : n[o];
80
- return typeof r != "string" ? t : pt(r) ? t.fill ? { ...t, fill: "transparent" } : t.stroke ? { ...t, stroke: "transparent" } : t : r.trim() ? t.fill ? { ...t, fill: r } : t.stroke ? { ...t, stroke: r } : t : t;
80
+ return typeof r != "string" ? t : mt(r) ? t.fill ? { ...t, fill: "transparent" } : t.stroke ? { ...t, stroke: "transparent" } : t : r.trim() ? t.fill ? { ...t, fill: r } : t.stroke ? { ...t, stroke: r } : t : t;
81
81
  }
82
- function mt(t, e) {
83
- const n = ne(t);
84
- return n ? oe(Pt[n], n, e) : null;
82
+ function xt(t, e) {
83
+ const n = re(t);
84
+ return n ? ie(Ft[n], n, e) : null;
85
85
  }
86
- function re(t, e) {
86
+ function se(t, e) {
87
87
  const n = (e == null ? void 0 : e.omitStaticLayers) === !0, o = /* @__PURE__ */ new Set();
88
88
  for (const r of t) {
89
89
  const s = r.sourceSvgId;
90
- s && (n && mt(s) || o.add(s));
90
+ s && (n && xt(s) || o.add(s));
91
91
  }
92
92
  return o;
93
93
  }
94
- function Wn(t) {
95
- return re(
94
+ function qn(t) {
95
+ return se(
96
96
  t.flatMap((e) => [...e.shapes]),
97
97
  { omitStaticLayers: !0 }
98
98
  );
99
99
  }
100
- const U = {
100
+ const V = {
101
101
  MAP_STYLE: "2D",
102
102
  MAP_BACKGROUND_COLOR: "#FFFFFF",
103
103
  ACCENT_COLOR: "#2563eb",
@@ -113,46 +113,46 @@ const U = {
113
113
  OVERLAY_COLOR: "#000000",
114
114
  OVERLAY_OPACITY: 0.15,
115
115
  PARKING_ZONE_COLOR: "#cbd5e1",
116
- ...te(),
116
+ ...ne(),
117
117
  KIOSK_SIZE: 12,
118
118
  ZOOM_STEP: 0.5,
119
119
  CAMERA_MAX_DISTANCE: 2e3,
120
120
  CAMERA_MIN_DISTANCE: 50
121
- }, ie = "#f5f5f5", se = /* @__PURE__ */ new Set(["#f8fafc", "#f1efea"]), ce = "#86efac", ae = "#7dd3fc", le = "#e2e8f0", ue = 500;
121
+ }, ae = "#f5f5f5", ce = /* @__PURE__ */ new Set(["#f8fafc", "#f1efea"]), le = "#86efac", ue = "#7dd3fc", fe = "#e2e8f0", de = 500;
122
122
  function Yt(t) {
123
123
  const e = typeof t == "number" ? t : Number(t);
124
- return !Number.isFinite(e) || e <= 0 ? 0 : Math.min(e, ue);
124
+ return !Number.isFinite(e) || e <= 0 ? 0 : Math.min(e, de);
125
125
  }
126
- function fe(...t) {
127
- const e = Object.assign({}, U, ...t.filter(Boolean));
128
- return e.MAP_BACKGROUND_COLOR.toLowerCase() === ie && (e.MAP_BACKGROUND_COLOR = U.MAP_BACKGROUND_COLOR), se.has(e.WALKABLE_COLOR.toLowerCase()) && (e.WALKABLE_COLOR = wt), e.GREEN_AREA_COLOR.toLowerCase() === ce && (e.GREEN_AREA_COLOR = U.GREEN_AREA_COLOR), e.WATER_COLOR.toLowerCase() === ae && (e.WATER_COLOR = U.WATER_COLOR), e.STORE_DEFAULT_COLOR.toLowerCase() === le && (e.STORE_DEFAULT_COLOR = U.STORE_DEFAULT_COLOR), e.STORE_RADIUS = Yt(e.STORE_RADIUS), e;
126
+ function he(...t) {
127
+ const e = Object.assign({}, V, ...t.filter(Boolean));
128
+ return e.MAP_BACKGROUND_COLOR.toLowerCase() === ae && (e.MAP_BACKGROUND_COLOR = V.MAP_BACKGROUND_COLOR), ce.has(e.WALKABLE_COLOR.toLowerCase()) && (e.WALKABLE_COLOR = Pt), e.GREEN_AREA_COLOR.toLowerCase() === le && (e.GREEN_AREA_COLOR = V.GREEN_AREA_COLOR), e.WATER_COLOR.toLowerCase() === ue && (e.WATER_COLOR = V.WATER_COLOR), e.STORE_DEFAULT_COLOR.toLowerCase() === fe && (e.STORE_DEFAULT_COLOR = V.STORE_DEFAULT_COLOR), e.STORE_RADIUS = Yt(e.STORE_RADIUS), e;
129
129
  }
130
- const de = [
130
+ const ye = [
131
131
  "unit",
132
132
  "amenity",
133
133
  "kiosk_screen",
134
134
  "connector",
135
135
  "entrance",
136
136
  "parking_zone"
137
- ], ht = 1e4, zn = 2.5, he = "entrance", Un = 36, ye = 8;
138
- function Vn(t) {
137
+ ], ht = 1e4, Qn = 2.5, pe = "entrance", Jn = 36, me = 8;
138
+ function to(t) {
139
139
  var e;
140
- return t.kind === "entrance" && ((e = t.label) == null ? void 0 : e.imageKey) === he;
140
+ return t.kind === "entrance" && ((e = t.label) == null ? void 0 : e.imageKey) === pe;
141
141
  }
142
- function Hn(t) {
143
- return Math.max(ye, t);
142
+ function eo(t) {
143
+ return Math.max(me, t);
144
144
  }
145
- const Zn = ["left", "center", "right"], xe = "center";
146
- function jn(t) {
145
+ const no = ["left", "center", "right"], xe = "center";
146
+ function oo(t) {
147
147
  return t === "left" || t === "right" ? t : xe;
148
148
  }
149
- function qn(t, e) {
149
+ function ro(t, e) {
150
150
  return e === "left" ? t.minX : e === "right" ? t.maxX : (t.minX + t.maxX) / 2;
151
151
  }
152
- function Qn(t) {
152
+ function io(t) {
153
153
  return t === "left" ? "start" : t === "right" ? "end" : "middle";
154
154
  }
155
- const nt = 12, pe = nt, me = 4, ge = [
155
+ const nt = 12, be = nt, ge = 4, Ie = [
156
156
  "retail_name",
157
157
  "retail_logo",
158
158
  "retail_text",
@@ -161,21 +161,21 @@ const nt = 12, pe = nt, me = 4, ge = [
161
161
  "connector",
162
162
  "custom_text",
163
163
  "custom_image"
164
- ], be = new Set(ge);
165
- function V(t, e) {
164
+ ], ke = new Set(Ie);
165
+ function U(t, e) {
166
166
  const n = typeof t == "number" ? t : Number(t);
167
167
  return Number.isFinite(n) ? n : e;
168
168
  }
169
- const Ie = /^(?:|[+\-]|[+\-]?\.(?:0*)?)$/;
170
- function ke(t) {
169
+ const _e = /^(?:|[+\-]|[+\-]?\.(?:0*)?)$/;
170
+ function Se(t) {
171
171
  const e = t.trim();
172
- if (Ie.test(e))
172
+ if (_e.test(e))
173
173
  return { render: 0, complete: !1 };
174
174
  const n = Number(e);
175
175
  return Number.isFinite(n) ? { render: n, complete: !0 } : { render: 0, complete: !1 };
176
176
  }
177
- function Jn(t) {
178
- const e = ke(t);
177
+ function so(t) {
178
+ const e = Se(t);
179
179
  return e.complete ? { display: String(e.render), render: e.render } : { display: "0", render: 0 };
180
180
  }
181
181
  function P(t) {
@@ -183,7 +183,7 @@ function P(t) {
183
183
  const e = String(t).trim();
184
184
  return e || null;
185
185
  }
186
- function _e(t) {
186
+ function Ae(t) {
187
187
  if (t == null) return null;
188
188
  const e = String(t);
189
189
  return e === "" ? null : e;
@@ -193,16 +193,16 @@ function it(t) {
193
193
  const e = Number(t);
194
194
  return Number.isFinite(e) ? e : null;
195
195
  }
196
- function Ae(t) {
197
- return typeof t == "string" && be.has(t);
196
+ function Ce(t) {
197
+ return typeof t == "string" && ke.has(t);
198
198
  }
199
- function Dt(t) {
199
+ function Kt(t) {
200
200
  return t === "amenity" ? "amenity" : t === "kiosk_screen" ? "kiosk" : t === "connector" ? "connector" : "retail_name";
201
201
  }
202
- function to(t) {
202
+ function ao(t) {
203
203
  return t === "amenity" ? "amenity" : t === "kiosk_screen" ? "kiosk" : t === "unit" || t === "parking_zone" ? "retailer" : "none";
204
204
  }
205
- function eo(t, e) {
205
+ function co(t, e) {
206
206
  return {
207
207
  shapeId: t,
208
208
  targetType: "none",
@@ -213,7 +213,7 @@ function eo(t, e) {
213
213
  unitNumber: null,
214
214
  customLabel: null,
215
215
  customImageKey: null,
216
- layerType: Dt(e),
216
+ layerType: Kt(e),
217
217
  size: nt,
218
218
  rotate: 0,
219
219
  offsetX: 0,
@@ -222,10 +222,10 @@ function eo(t, e) {
222
222
  textColor: null
223
223
  };
224
224
  }
225
- function no(t, e = "unit") {
225
+ function lo(t, e = "unit") {
226
226
  const n = t.layerType ?? t.layer_type, o = t.unitStatus ?? t.unit_status ?? "vacant";
227
227
  return {
228
- shapeId: V(
228
+ shapeId: U(
229
229
  t.shapeId ?? t.shape_id,
230
230
  0
231
231
  ),
@@ -243,20 +243,20 @@ function no(t, e = "unit") {
243
243
  unitNumber: P(
244
244
  t.unitNumber ?? t.unit_number
245
245
  ),
246
- customLabel: _e(
246
+ customLabel: Ae(
247
247
  t.customLabel ?? t.custom_label
248
248
  ),
249
249
  customImageKey: P(
250
250
  t.customImageKey ?? t.custom_image_key
251
251
  ),
252
- layerType: Ae(n) ? n : Dt(e),
253
- size: V(t.size, nt),
254
- rotate: V(t.rotate, 0),
255
- offsetX: V(
252
+ layerType: Ce(n) ? n : Kt(e),
253
+ size: U(t.size, nt),
254
+ rotate: U(t.rotate, 0),
255
+ offsetX: U(
256
256
  t.offsetX ?? t.offset_x,
257
257
  0
258
258
  ),
259
- offsetY: V(
259
+ offsetY: U(
260
260
  t.offsetY ?? t.offset_y,
261
261
  0
262
262
  ),
@@ -266,63 +266,63 @@ function no(t, e = "unit") {
266
266
  textColor: P(
267
267
  t.textColor ?? t.text_color
268
268
  ),
269
- align: Se(t.align)
269
+ align: Oe(t.align)
270
270
  };
271
271
  }
272
- function Se(t) {
272
+ function Oe(t) {
273
273
  if (t === "left" || t === "right" || t === "center") return t;
274
274
  }
275
- function oo(t, e) {
275
+ function uo(t, e) {
276
276
  const n = (t.location ?? "").trim();
277
277
  return e && n && n !== "-" ? `${t.name} (${n})` : t.name;
278
278
  }
279
- function ro(t, e) {
279
+ function fo(t, e) {
280
280
  var o;
281
281
  const n = (o = t == null ? void 0 : t.bgColor) == null ? void 0 : o.trim();
282
- return pt(n) ? "transparent" : n || e;
282
+ return mt(n) ? "transparent" : n || e;
283
283
  }
284
- function io(t, e) {
284
+ function ho(t, e) {
285
285
  var o;
286
286
  const n = (o = t == null ? void 0 : t.textColor) == null ? void 0 : o.trim();
287
- return pt(n) ? "transparent" : n || e;
287
+ return mt(n) ? "transparent" : n || e;
288
288
  }
289
- function so(t) {
289
+ function yo(t) {
290
290
  const e = t.trim();
291
291
  if (!e || !/^\d+$/.test(e)) return null;
292
292
  const n = Number(e);
293
293
  return Number.isSafeInteger(n) && n > 0 ? n : null;
294
294
  }
295
- function co(t, e) {
295
+ function po(t, e) {
296
296
  var r;
297
297
  const n = e == null ? void 0 : e.trim();
298
298
  if (n) return n;
299
299
  const o = (r = t == null ? void 0 : t.customLabel) == null ? void 0 : r.trim();
300
300
  return o || ((t == null ? void 0 : t.amenityId) != null ? `Amenity ${t.amenityId}` : null);
301
301
  }
302
- function ao(t, e) {
302
+ function mo(t, e) {
303
303
  var r;
304
304
  const n = (r = t == null ? void 0 : t.customLabel) == null ? void 0 : r.trim();
305
305
  if (n) return n;
306
306
  const o = e == null ? void 0 : e.trim();
307
307
  return o || ((t == null ? void 0 : t.kioskId) != null ? `Kiosk ${t.kioskId}` : null);
308
308
  }
309
- function Y(t) {
309
+ function D(t) {
310
310
  var e, n;
311
311
  return t ? t.targetType === "retailer" ? t.retailerId != null : t.targetType === "amenity" ? t.amenityId != null || !!((e = t.customLabel) != null && e.trim()) : t.targetType === "kiosk" ? t.kioskId != null || !!((n = t.customLabel) != null && n.trim()) : !1 : !1;
312
312
  }
313
- const Ce = /* @__PURE__ */ new Set([
313
+ const Re = /* @__PURE__ */ new Set([
314
314
  "unit",
315
315
  "parking_zone",
316
316
  "amenity",
317
317
  "kiosk_screen"
318
318
  ]);
319
- function Kt(t, e, n) {
319
+ function Bt(t, e, n) {
320
320
  var o, r;
321
321
  return t.kind === "label" || t.kind === "entrance" ? t.label : t.kind === "connector" || (e == null ? void 0 : e.layerType) === "connector" ? e ? kt(
322
322
  { style: t.style ?? {}, label: t.label },
323
323
  e,
324
324
  n
325
- ).label : t.label : Ce.has(t.kind) ? !e || !Y(e) ? !((o = t.label) != null && o.text) && !((r = t.label) != null && r.imageKey) ? t.label : {
325
+ ).label : t.label : Re.has(t.kind) ? !e || !D(e) ? !((o = t.label) != null && o.text) && !((r = t.label) != null && r.imageKey) ? t.label : {
326
326
  ...t.label,
327
327
  text: void 0,
328
328
  imageKey: void 0
@@ -332,35 +332,35 @@ function Kt(t, e, n) {
332
332
  n
333
333
  ).label : t.label;
334
334
  }
335
- function Le(t, e) {
336
- if (Y(t)) {
335
+ function Ee(t, e) {
336
+ if (D(t)) {
337
337
  if (t.layerType === "retail_text" || t.layerType === "custom_text")
338
338
  return t.customLabel ?? void 0;
339
339
  if (t.layerType === "retail_name")
340
340
  return (e == null ? void 0 : e.name) ?? t.customLabel ?? void 0;
341
341
  }
342
342
  }
343
- function Bt(t, e, n) {
344
- if (!(!Y(t) || !t) && !(t.layerType !== "retail_logo" && t.layerType !== "custom_image"))
345
- return Oe(t, e) ?? P(n == null ? void 0 : n.imageKey) ?? void 0;
343
+ function zt(t, e, n) {
344
+ if (!(!D(t) || !t) && !(t.layerType !== "retail_logo" && t.layerType !== "custom_image"))
345
+ return ve(t, e) ?? P(n == null ? void 0 : n.imageKey) ?? void 0;
346
346
  }
347
- function lo(t, e) {
347
+ function xo(t, e) {
348
348
  var n, o;
349
- if (!(!Y(t) || !t)) {
349
+ if (!(!D(t) || !t)) {
350
350
  if (t.layerType === "kiosk") return "kiosk";
351
351
  if (t.layerType === "amenity")
352
352
  return ((n = e == null ? void 0 : e.find((r) => r.id === t.amenityId)) == null ? void 0 : n.code) ?? ((o = t.customLabel) == null ? void 0 : o.trim()) ?? void 0;
353
353
  }
354
354
  }
355
- function ve(t, e) {
355
+ function Le(t, e) {
356
356
  const n = Number.isFinite(t) && t > 0 ? t : nt;
357
- return (e == null ? void 0 : e.layerType) === "retail_logo" ? n * me : n;
357
+ return (e == null ? void 0 : e.layerType) === "retail_logo" ? n * ge : n;
358
358
  }
359
- function uo(t) {
359
+ function bo(t) {
360
360
  const e = t.assignment, n = t.label;
361
361
  return {
362
- size: ve(
363
- (e == null ? void 0 : e.size) ?? (n == null ? void 0 : n.size) ?? pe
362
+ size: Le(
363
+ (e == null ? void 0 : e.size) ?? (n == null ? void 0 : n.size) ?? be
364
364
  ),
365
365
  rotate: (e == null ? void 0 : e.rotate) ?? (n == null ? void 0 : n.rotate) ?? 0,
366
366
  offsetX: (e == null ? void 0 : e.offsetX) ?? (n == null ? void 0 : n.offsetX) ?? 0,
@@ -368,12 +368,12 @@ function uo(t) {
368
368
  iconColor: (e == null ? void 0 : e.textColor) ?? (n == null ? void 0 : n.color) ?? null
369
369
  };
370
370
  }
371
- function fo(t, e) {
371
+ function go(t, e) {
372
372
  var n;
373
- return Y(t) ? (t == null ? void 0 : t.layerType) === "kiosk" || (t == null ? void 0 : t.layerType) === "amenity" || Bt(t, null, e) ? !0 : !!((n = e == null ? void 0 : e.text) != null && n.trim()) : !1;
373
+ return D(t) ? (t == null ? void 0 : t.layerType) === "kiosk" || (t == null ? void 0 : t.layerType) === "amenity" || zt(t, null, e) ? !0 : !!((n = e == null ? void 0 : e.text) != null && n.trim()) : !1;
374
374
  }
375
- function Oe(t, e) {
376
- if (Y(t)) {
375
+ function ve(t, e) {
376
+ if (D(t)) {
377
377
  if (t.layerType === "retail_logo")
378
378
  return P(e == null ? void 0 : e.logoKey) ?? P(e == null ? void 0 : e.logoUrl) ?? P(t.customImageKey) ?? void 0;
379
379
  if (t.layerType === "custom_image")
@@ -390,7 +390,7 @@ function It(t) {
390
390
  const e = t[0];
391
391
  return t.some((n) => n !== e);
392
392
  }
393
- function ho(t) {
393
+ function Io(t) {
394
394
  const e = t.map((o) => o.bgColor ?? ""), n = t.map((o) => o.textColor ?? "");
395
395
  return {
396
396
  size: st(t.map((o) => o.size)),
@@ -400,7 +400,7 @@ function ho(t) {
400
400
  textColorMixed: It(n)
401
401
  };
402
402
  }
403
- function yo(t, e) {
403
+ function ko(t, e) {
404
404
  return {
405
405
  ...t,
406
406
  ...e.size != null ? { size: e.size } : {},
@@ -409,7 +409,7 @@ function yo(t, e) {
409
409
  };
410
410
  }
411
411
  function kt(t, e, n) {
412
- const o = Bt(e, n, t.label), r = Y(e) ? o ? void 0 : Le(e, n) ?? t.label.text : void 0;
412
+ const o = zt(e, n, t.label), r = D(e) ? o ? void 0 : Ee(e, n) ?? t.label.text : void 0;
413
413
  return {
414
414
  style: {
415
415
  ...t.style,
@@ -428,10 +428,10 @@ function kt(t, e, n) {
428
428
  }
429
429
  };
430
430
  }
431
- function xo(t) {
431
+ function _o(t) {
432
432
  return t === "PORTAL" ? "editor" : "viewer";
433
433
  }
434
- const ct = {
434
+ const at = {
435
435
  search: !1,
436
436
  amenities: !1,
437
437
  floors: !0,
@@ -439,34 +439,34 @@ const ct = {
439
439
  kioskOrigin: !1,
440
440
  fetchDraft: !1,
441
441
  storeModal: !1
442
- }, Re = {
442
+ }, Me = {
443
443
  /** v1 WP_SITE / MapBox HOST WEBSITE. */
444
- WEBSITE: { ...ct, storeModal: !0 },
444
+ WEBSITE: { ...at, storeModal: !0 },
445
445
  /** Assign mode: click shapes, no public directory chrome. */
446
- PORTAL_ASSIGN: ct,
446
+ PORTAL_ASSIGN: at,
447
447
  DISPLAY_APP: {
448
- ...ct,
448
+ ...at,
449
449
  kioskOrigin: !0
450
450
  }
451
451
  };
452
- function Me(t) {
453
- return Re[t];
452
+ function Ne(t) {
453
+ return Me[t];
454
454
  }
455
- function po(t) {
455
+ function So(t) {
456
456
  return t !== "WEBSITE";
457
457
  }
458
- function mo(t) {
458
+ function Ao(t) {
459
459
  return t !== "PORTAL";
460
460
  }
461
- function Ee(t, e, n) {
461
+ function Te(t, e, n) {
462
462
  var o;
463
463
  return t === "DISPLAY_APP" && e != null && n.kind === "kiosk_screen" && !n.orphanedAt && ((o = n.assignment) == null ? void 0 : o.kioskId) === e;
464
464
  }
465
- function go(t, e, n) {
465
+ function Co(t, e, n) {
466
466
  var o;
467
467
  for (const r of t.levels) {
468
468
  const s = r.shapes.find(
469
- (u) => Ee(e, n, u)
469
+ (u) => Te(e, n, u)
470
470
  );
471
471
  if (s)
472
472
  return {
@@ -489,27 +489,27 @@ function q(t) {
489
489
  function Q(t) {
490
490
  return !t || typeof t != "object" ? null : _(t.url);
491
491
  }
492
- function bo(t, e) {
492
+ function Oo(t, e) {
493
493
  var n;
494
- return !e || !Me(t).storeModal ? !1 : e.kind === "unit" ? ((n = e.assignment) == null ? void 0 : n.retailerId) != null : e.kind === "amenity" ? Y(e.assignment) : !1;
494
+ return !e || !Ne(t).storeModal ? !1 : e.kind === "unit" ? ((n = e.assignment) == null ? void 0 : n.retailerId) != null : e.kind === "amenity" ? D(e.assignment) : !1;
495
495
  }
496
- function Ne(t, e) {
496
+ function we(t, e) {
497
497
  for (const n of t.levels) {
498
498
  const o = n.shapes.find((r) => r.id === e);
499
499
  if (o) return { level: n, shape: o };
500
500
  }
501
501
  return null;
502
502
  }
503
- function Te(t, e) {
503
+ function Pe(t, e) {
504
504
  var o, r, s, u;
505
- const n = ((o = t.assignment) == null ? void 0 : o.amenityId) != null ? e == null ? void 0 : e.find((c) => c.id === t.assignment.amenityId) : void 0;
505
+ const n = ((o = t.assignment) == null ? void 0 : o.amenityId) != null ? e == null ? void 0 : e.find((a) => a.id === t.assignment.amenityId) : void 0;
506
506
  return _((r = t.assignment) == null ? void 0 : r.customLabel) || _(n == null ? void 0 : n.name) || _((s = t.label) == null ? void 0 : s.text) || _((u = t.assignment) == null ? void 0 : u.unitNumber) || t.key;
507
507
  }
508
- function Io(t, e) {
508
+ function Ro(t, e) {
509
509
  var s, u;
510
- const n = Ne(t, e);
510
+ const n = we(t, e);
511
511
  if (!n) return null;
512
- const o = n.shape.kind === "amenity" ? "amenity" : "store", r = n.level.anchors.find((c) => c.shapeId === e);
512
+ const o = n.shape.kind === "amenity" ? "amenity" : "store", r = n.level.anchors.find((a) => a.shapeId === e);
513
513
  return {
514
514
  shapeId: e,
515
515
  levelId: n.level.id,
@@ -517,43 +517,43 @@ function Io(t, e) {
517
517
  kind: o,
518
518
  retailerId: ((s = n.shape.assignment) == null ? void 0 : s.retailerId) ?? null,
519
519
  amenityId: ((u = n.shape.assignment) == null ? void 0 : u.amenityId) ?? null,
520
- name: Te(n.shape, t.amenities)
520
+ name: Pe(n.shape, t.amenities)
521
521
  };
522
522
  }
523
- function we(t) {
523
+ function Fe(t) {
524
524
  const e = /* @__PURE__ */ new Map();
525
525
  for (const n of t ?? [])
526
526
  (n == null ? void 0 : n.id) != null && e.set(n.id, n);
527
527
  return e;
528
528
  }
529
- function Pe(t, e) {
529
+ function De(t, e) {
530
530
  var n, o;
531
531
  return _(t == null ? void 0 : t.logoUrl) || _(t == null ? void 0 : t.logoKey) || _((n = e.label) == null ? void 0 : n.imageKey) || _((o = e.assignment) == null ? void 0 : o.customImageKey);
532
532
  }
533
- function ko(t, e) {
534
- var s, u, c, i;
535
- const n = we(e ?? t.retailers), o = /* @__PURE__ */ new Map();
533
+ function Eo(t, e) {
534
+ var s, u, a, i;
535
+ const n = Fe(e ?? t.retailers), o = /* @__PURE__ */ new Map();
536
536
  for (const h of t.levels)
537
- for (const p of h.shapes) {
538
- const a = (s = p.assignment) == null ? void 0 : s.retailerId;
539
- if (a == null || p.kind !== "unit") continue;
540
- const m = n.get(a), l = h.anchors.find((y) => y.shapeId === p.id), d = {
541
- id: a,
542
- name: _(m == null ? void 0 : m.name) || _((u = p.label) == null ? void 0 : u.text) || _((c = p.assignment) == null ? void 0 : c.customLabel) || `Store ${a}`,
543
- location: _(m == null ? void 0 : m.location) || _((i = p.assignment) == null ? void 0 : i.unitNumber),
544
- phone: _(m == null ? void 0 : m.phone),
545
- description: _(m == null ? void 0 : m.description),
546
- logoUrl: Pe(m, p),
547
- globalRetailerId: (m == null ? void 0 : m.globalRetailerId) ?? null,
548
- shapeId: p.id,
537
+ for (const m of h.shapes) {
538
+ const c = (s = m.assignment) == null ? void 0 : s.retailerId;
539
+ if (c == null || m.kind !== "unit") continue;
540
+ const x = n.get(c), l = h.anchors.find((y) => y.shapeId === m.id), d = {
541
+ id: c,
542
+ name: _(x == null ? void 0 : x.name) || _((u = m.label) == null ? void 0 : u.text) || _((a = m.assignment) == null ? void 0 : a.customLabel) || `Store ${c}`,
543
+ location: _(x == null ? void 0 : x.location) || _((i = m.assignment) == null ? void 0 : i.unitNumber),
544
+ phone: _(x == null ? void 0 : x.phone),
545
+ description: _(x == null ? void 0 : x.description),
546
+ logoUrl: De(x, m),
547
+ globalRetailerId: (x == null ? void 0 : x.globalRetailerId) ?? null,
548
+ shapeId: m.id,
549
549
  levelId: h.id,
550
550
  anchorId: (l == null ? void 0 : l.id) ?? null
551
- }, f = o.get(a);
552
- (!f || f.anchorId == null && d.anchorId != null) && o.set(a, d);
551
+ }, f = o.get(c);
552
+ (!f || f.anchorId == null && d.anchorId != null) && o.set(c, d);
553
553
  }
554
- return Array.from(o.values()).sort((h, p) => h.name.localeCompare(p.name));
554
+ return Array.from(o.values()).sort((h, m) => h.name.localeCompare(m.name));
555
555
  }
556
- function _o(t, e) {
556
+ function Lo(t, e) {
557
557
  const n = /* @__PURE__ */ new Map();
558
558
  for (const o of t)
559
559
  o.globalRetailerId != null && n.set(o.globalRetailerId, (n.get(o.globalRetailerId) ?? 0) + 1);
@@ -565,18 +565,18 @@ function _o(t, e) {
565
565
  };
566
566
  });
567
567
  }
568
- function Ao(t, e) {
568
+ function vo(t, e) {
569
569
  return (t == null ? void 0 : t.anchorId) == null || (e == null ? void 0 : e.anchorId) == null ? null : {
570
570
  fromAnchorId: t.anchorId,
571
571
  toAnchorId: e.anchorId,
572
572
  toLevelId: e.levelId
573
573
  };
574
574
  }
575
- function So(t) {
575
+ function Mo(t) {
576
576
  const e = t.replace(/\D/g, "").slice(-10);
577
577
  return e.length === 10 ? `${e.slice(0, 3)}.${e.slice(3, 6)}.${e.slice(-4)}` : t;
578
578
  }
579
- function Co(t) {
579
+ function No(t) {
580
580
  if (!t || typeof t != "object") return null;
581
581
  const e = t, n = e.global_retailer && typeof e.global_retailer == "object" ? e.global_retailer : null, o = q(e.id);
582
582
  if (o == null) return null;
@@ -592,33 +592,33 @@ function Co(t) {
592
592
  globalRetailerId: q(n == null ? void 0 : n.id) || q(e.global_retailer_id) || q(e.globalRetailerId)
593
593
  };
594
594
  }
595
- function Fe(t) {
595
+ function Ye(t) {
596
596
  return t === "WEBSITE" || t === "DISPLAY_APP";
597
597
  }
598
- function Ye(t) {
598
+ function Ke(t) {
599
599
  const e = (t.sourceSvgId ?? t.key ?? "").trim().toLowerCase().replace(/_/g, "-");
600
600
  return e === "escalator" || e.startsWith("escalator-") ? "escalator" : e === "elevator" || e.startsWith("elevator-") ? "elevator" : null;
601
601
  }
602
- function De(t, e) {
603
- return Ye(t) ? e.has(t.id) : t.kind === "amenity" || t.kind === "kiosk_screen" ? Y(t.assignment) : !0;
602
+ function Be(t, e) {
603
+ return Ke(t) ? e.has(t.id) : t.kind === "amenity" || t.kind === "kiosk_screen" ? D(t.assignment) : !0;
604
604
  }
605
- function Lo(t, e, n) {
606
- return Fe(e) ? De(t, n) : !0;
605
+ function To(t, e, n) {
606
+ return Ye(e) ? Be(t, n) : !0;
607
607
  }
608
- function Ke(t) {
608
+ function ze(t) {
609
609
  return /^https?:\/\//i.test(t.trim());
610
610
  }
611
- function vo(t, e) {
612
- return !e || !Ke(t) ? t : e + encodeURIComponent(t);
611
+ function wo(t, e) {
612
+ return !e || !ze(t) ? t : e + encodeURIComponent(t);
613
613
  }
614
- function Oo(t, e) {
614
+ function Po(t, e) {
615
615
  return t.map((n) => ({ x: n.x, y: e - n.y }));
616
616
  }
617
617
  function F(t, e) {
618
618
  const n = t.x - e.x, o = t.y - e.y;
619
619
  return Math.hypot(n, o);
620
620
  }
621
- function Be(t) {
621
+ function $e(t) {
622
622
  if (t.length === 0)
623
623
  return { minX: 0, minY: 0, maxX: 0, maxY: 0 };
624
624
  let e = t[0].x, n = t[0].y, o = t[0].x, r = t[0].y;
@@ -628,7 +628,7 @@ function Be(t) {
628
628
  }
629
629
  return { minX: e, minY: n, maxX: o, maxY: r };
630
630
  }
631
- function Ro(t, e) {
631
+ function Fo(t, e) {
632
632
  return {
633
633
  minX: Math.min(t.minX, e.minX),
634
634
  minY: Math.min(t.minY, e.minY),
@@ -643,31 +643,31 @@ function Xe(t) {
643
643
  e += o.x, n += o.y;
644
644
  return { x: e / t.length, y: n / t.length };
645
645
  }
646
- function $e(t, e) {
646
+ function Ge(t, e) {
647
647
  let n = !1;
648
648
  for (let o = 0, r = e.length - 1; o < e.length; r = o++) {
649
- const s = e[o].x, u = e[o].y, c = e[r].x, i = e[r].y;
650
- u > t.y != i > t.y && t.x < (c - s) * (t.y - u) / (i - u + Number.EPSILON) + s && (n = !n);
649
+ const s = e[o].x, u = e[o].y, a = e[r].x, i = e[r].y;
650
+ u > t.y != i > t.y && t.x < (a - s) * (t.y - u) / (i - u + Number.EPSILON) + s && (n = !n);
651
651
  }
652
652
  return n;
653
653
  }
654
- function Mo(t, e) {
655
- return e.some((n) => $e(t, n));
654
+ function Do(t, e) {
655
+ return e.some((n) => Ge(t, n));
656
656
  }
657
- function Ge(t, e, n) {
657
+ function We(t, e, n) {
658
658
  const o = n.x - e.x, r = n.y - e.y, s = o * o + r * r;
659
659
  if (s === 0)
660
660
  return { point: { ...e }, t: 0, distance: F(t, e) };
661
661
  let u = ((t.x - e.x) * o + (t.y - e.y) * r) / s;
662
662
  u = Math.max(0, Math.min(1, u));
663
- const c = { x: e.x + u * o, y: e.y + u * r };
664
- return { point: c, t: u, distance: F(t, c) };
663
+ const a = { x: e.x + u * o, y: e.y + u * r };
664
+ return { point: a, t: u, distance: F(t, a) };
665
665
  }
666
- function Eo(t, e) {
666
+ function Yo(t, e) {
667
667
  if (e.length < 2) return null;
668
668
  let n = null;
669
669
  for (let o = 0; o < e.length - 1; o++) {
670
- const r = Ge(t, e[o], e[o + 1]);
670
+ const r = We(t, e[o], e[o + 1]);
671
671
  (!n || r.distance < n.distance) && (n = { point: r.point, segmentIndex: o, distance: r.distance });
672
672
  }
673
673
  return n;
@@ -675,56 +675,56 @@ function Eo(t, e) {
675
675
  function _t(t, e, n, o, r = 8) {
676
676
  const s = [];
677
677
  for (let u = 0; u <= r; u++) {
678
- const c = u / r, i = 1 - c;
678
+ const a = u / r, i = 1 - a;
679
679
  s.push({
680
- x: i * i * i * t.x + 3 * i * i * c * e.x + 3 * i * c * c * n.x + c * c * c * o.x,
681
- y: i * i * i * t.y + 3 * i * i * c * e.y + 3 * i * c * c * n.y + c * c * c * o.y
680
+ x: i * i * i * t.x + 3 * i * i * a * e.x + 3 * i * a * a * n.x + a * a * a * o.x,
681
+ y: i * i * i * t.y + 3 * i * i * a * e.y + 3 * i * a * a * n.y + a * a * a * o.y
682
682
  });
683
683
  }
684
684
  return s;
685
685
  }
686
- function At(t, e, n, o = 6) {
686
+ function St(t, e, n, o = 6) {
687
687
  const r = [];
688
688
  for (let s = 0; s <= o; s++) {
689
- const u = s / o, c = 1 - u;
689
+ const u = s / o, a = 1 - u;
690
690
  r.push({
691
- x: c * c * t.x + 2 * c * u * e.x + u * u * n.x,
692
- y: c * c * t.y + 2 * c * u * e.y + u * u * n.y
691
+ x: a * a * t.x + 2 * a * u * e.x + u * u * n.x,
692
+ y: a * a * t.y + 2 * a * u * e.y + u * u * n.y
693
693
  });
694
694
  }
695
695
  return r;
696
696
  }
697
- const We = 8;
698
- function ze(t, e, n, o, r, s, u) {
697
+ const Ve = 8;
698
+ function Ue(t, e, n, o, r, s, u) {
699
699
  if (t.x === u.x && t.y === u.y) return [{ ...t }];
700
- let c = Math.abs(e), i = Math.abs(n);
701
- if (c === 0 || i === 0 || !Number.isFinite(c) || !Number.isFinite(i))
700
+ let a = Math.abs(e), i = Math.abs(n);
701
+ if (a === 0 || i === 0 || !Number.isFinite(a) || !Number.isFinite(i))
702
702
  return [{ ...t }, { ...u }];
703
- const h = o % 360 * Math.PI / 180, p = Math.cos(h), a = Math.sin(h), m = (t.x - u.x) / 2, l = (t.y - u.y) / 2, d = p * m + a * l, f = -a * m + p * l, y = d * d / (c * c) + f * f / (i * i);
703
+ const h = o % 360 * Math.PI / 180, m = Math.cos(h), c = Math.sin(h), x = (t.x - u.x) / 2, l = (t.y - u.y) / 2, d = m * x + c * l, f = -c * x + m * l, y = d * d / (a * a) + f * f / (i * i);
704
704
  if (y > 1) {
705
705
  const T = Math.sqrt(y);
706
- c *= T, i *= T;
706
+ a *= T, i *= T;
707
707
  }
708
- const g = c * c, I = i * i, x = g * I - g * f * f - I * d * d, b = g * f * f + I * d * d, k = Math.sqrt(Math.max(0, x / b)) * (r === s ? -1 : 1), S = k * c * f / i, A = -k * i * d / c, C = p * S - a * A + (t.x + u.x) / 2, R = a * S + p * A + (t.y + u.y) / 2, v = (d - S) / c, D = (f - A) / i, E = (-d - S) / c, K = (-f - A) / i, $ = Math.atan2(D, v);
709
- let L = Math.atan2(v * K - D * E, v * E + D * K);
710
- !s && L > 0 ? L -= 2 * Math.PI : s && L < 0 && (L += 2 * Math.PI);
711
- const O = Math.abs(L) / (Math.PI / 2) * We, B = Math.max(1, Math.round(O)), N = [{ ...t }];
708
+ const b = a * a, I = i * i, p = b * I - b * f * f - I * d * d, g = b * f * f + I * d * d, k = Math.sqrt(Math.max(0, p / g)) * (r === s ? -1 : 1), A = k * a * f / i, S = -k * i * d / a, C = m * A - c * S + (t.x + u.x) / 2, L = c * A + m * S + (t.y + u.y) / 2, R = (d - A) / a, Y = (f - S) / i, M = (-d - A) / a, K = (-f - S) / i, $ = Math.atan2(Y, R);
709
+ let O = Math.atan2(R * K - Y * M, R * M + Y * K);
710
+ !s && O > 0 ? O -= 2 * Math.PI : s && O < 0 && (O += 2 * Math.PI);
711
+ const E = Math.abs(O) / (Math.PI / 2) * Ve, B = Math.max(1, Math.round(E)), N = [{ ...t }];
712
712
  for (let T = 1; T <= B; T++) {
713
- const W = $ + L * T / B, Z = Math.cos(W), j = Math.sin(W);
713
+ const G = $ + O * T / B, Z = Math.cos(G), j = Math.sin(G);
714
714
  N.push({
715
- x: C + c * p * Z - i * a * j,
716
- y: R + c * a * Z + i * p * j
715
+ x: C + a * m * Z - i * c * j,
716
+ y: L + a * c * Z + i * m * j
717
717
  });
718
718
  }
719
719
  return N[N.length - 1] = { ...u }, N;
720
720
  }
721
- const Ue = /[\s,]/;
722
- function Xt(t) {
721
+ const He = /[\s,]/;
722
+ function $t(t) {
723
723
  const e = [];
724
724
  let n = 0, o = "", r = 0;
725
725
  for (; n < t.length; ) {
726
726
  const s = t[n];
727
- if (Ue.test(s)) {
727
+ if (He.test(s)) {
728
728
  n++;
729
729
  continue;
730
730
  }
@@ -737,7 +737,7 @@ function Xt(t) {
737
737
  e.push(s), n++, r++;
738
738
  continue;
739
739
  }
740
- const c = n;
740
+ const a = n;
741
741
  let i = 0;
742
742
  for ((s === "+" || s === "-") && n++; n < t.length && t[n] >= "0" && t[n] <= "9"; )
743
743
  n++, i++;
@@ -752,103 +752,103 @@ function Xt(t) {
752
752
  n = h;
753
753
  }
754
754
  if (i === 0) {
755
- n = c + 1;
755
+ n = a + 1;
756
756
  continue;
757
757
  }
758
- e.push(t.slice(c, n)), r++;
758
+ e.push(t.slice(a, n)), r++;
759
759
  }
760
760
  return e;
761
761
  }
762
- function $t(t) {
763
- const e = Xt(t), n = [];
764
- let o = [], r = 0, s = 0, u = 0, c = 0, i = null, h = 0, p = "";
765
- const a = () => Number(e[h++]);
762
+ function Xt(t) {
763
+ const e = $t(t), n = [];
764
+ let o = [], r = 0, s = 0, u = 0, a = 0, i = null, h = 0, m = "";
765
+ const c = () => Number(e[h++]);
766
766
  for (; h < e.length; ) {
767
- const m = e[h];
768
- switch (/[a-zA-Z]/.test(m) && (p = m, h++), p) {
767
+ const x = e[h];
768
+ switch (/[a-zA-Z]/.test(x) && (m = x, h++), m) {
769
769
  case "M":
770
770
  case "m": {
771
- const l = p === "m", d = a(), f = a();
772
- r = l ? r + d : d, s = l ? s + f : f, o.length > 0 && n.push(o), o = [{ x: r, y: s }], u = r, c = s, i = null, p = l ? "l" : "L";
771
+ const l = m === "m", d = c(), f = c();
772
+ r = l ? r + d : d, s = l ? s + f : f, o.length > 0 && n.push(o), o = [{ x: r, y: s }], u = r, a = s, i = null, m = l ? "l" : "L";
773
773
  break;
774
774
  }
775
775
  case "L":
776
776
  case "l": {
777
- const l = p === "l", d = a(), f = a();
777
+ const l = m === "l", d = c(), f = c();
778
778
  r = l ? r + d : d, s = l ? s + f : f, o.push({ x: r, y: s }), i = null;
779
779
  break;
780
780
  }
781
781
  case "H":
782
782
  case "h": {
783
- const l = p === "h", d = a();
783
+ const l = m === "h", d = c();
784
784
  r = l ? r + d : d, o.push({ x: r, y: s }), i = null;
785
785
  break;
786
786
  }
787
787
  case "V":
788
788
  case "v": {
789
- const l = p === "v", d = a();
789
+ const l = m === "v", d = c();
790
790
  s = l ? s + d : d, o.push({ x: r, y: s }), i = null;
791
791
  break;
792
792
  }
793
793
  case "C":
794
794
  case "c": {
795
- const l = p === "c", d = l ? r + a() : a(), f = l ? s + a() : a(), y = l ? r + a() : a(), g = l ? s + a() : a(), I = l ? r + a() : a(), x = l ? s + a() : a(), b = _t(
795
+ const l = m === "c", d = l ? r + c() : c(), f = l ? s + c() : c(), y = l ? r + c() : c(), b = l ? s + c() : c(), I = l ? r + c() : c(), p = l ? s + c() : c(), g = _t(
796
796
  { x: r, y: s },
797
797
  { x: d, y: f },
798
- { x: y, y: g },
799
- { x: I, y: x }
798
+ { x: y, y: b },
799
+ { x: I, y: p }
800
800
  );
801
- o.push(...b.slice(1)), i = { x: y, y: g }, r = I, s = x;
801
+ o.push(...g.slice(1)), i = { x: y, y: b }, r = I, s = p;
802
802
  break;
803
803
  }
804
804
  case "Q":
805
805
  case "q": {
806
- const l = p === "q", d = l ? r + a() : a(), f = l ? s + a() : a(), y = l ? r + a() : a(), g = l ? s + a() : a(), I = At(
806
+ const l = m === "q", d = l ? r + c() : c(), f = l ? s + c() : c(), y = l ? r + c() : c(), b = l ? s + c() : c(), I = St(
807
807
  { x: r, y: s },
808
808
  { x: d, y: f },
809
- { x: y, y: g }
809
+ { x: y, y: b }
810
810
  );
811
- o.push(...I.slice(1)), i = { x: d, y: f }, r = y, s = g;
811
+ o.push(...I.slice(1)), i = { x: d, y: f }, r = y, s = b;
812
812
  break;
813
813
  }
814
814
  case "S":
815
815
  case "s": {
816
- const l = p === "s", d = i ? 2 * r - i.x : r, f = i ? 2 * s - i.y : s, y = l ? r + a() : a(), g = l ? s + a() : a(), I = l ? r + a() : a(), x = l ? s + a() : a(), b = _t(
816
+ const l = m === "s", d = i ? 2 * r - i.x : r, f = i ? 2 * s - i.y : s, y = l ? r + c() : c(), b = l ? s + c() : c(), I = l ? r + c() : c(), p = l ? s + c() : c(), g = _t(
817
817
  { x: r, y: s },
818
818
  { x: d, y: f },
819
- { x: y, y: g },
820
- { x: I, y: x }
819
+ { x: y, y: b },
820
+ { x: I, y: p }
821
821
  );
822
- o.push(...b.slice(1)), i = { x: y, y: g }, r = I, s = x;
822
+ o.push(...g.slice(1)), i = { x: y, y: b }, r = I, s = p;
823
823
  break;
824
824
  }
825
825
  case "T":
826
826
  case "t": {
827
- const l = p === "t", d = i ? 2 * r - i.x : r, f = i ? 2 * s - i.y : s, y = l ? r + a() : a(), g = l ? s + a() : a(), I = At(
827
+ const l = m === "t", d = i ? 2 * r - i.x : r, f = i ? 2 * s - i.y : s, y = l ? r + c() : c(), b = l ? s + c() : c(), I = St(
828
828
  { x: r, y: s },
829
829
  { x: d, y: f },
830
- { x: y, y: g }
830
+ { x: y, y: b }
831
831
  );
832
- o.push(...I.slice(1)), i = { x: d, y: f }, r = y, s = g;
832
+ o.push(...I.slice(1)), i = { x: d, y: f }, r = y, s = b;
833
833
  break;
834
834
  }
835
835
  case "A":
836
836
  case "a": {
837
- const l = p === "a", d = a(), f = a(), y = a(), g = a() !== 0, I = a() !== 0, x = l ? r + a() : a(), b = l ? s + a() : a(), k = ze(
837
+ const l = m === "a", d = c(), f = c(), y = c(), b = c() !== 0, I = c() !== 0, p = l ? r + c() : c(), g = l ? s + c() : c(), k = Ue(
838
838
  { x: r, y: s },
839
839
  d,
840
840
  f,
841
841
  y,
842
- g,
842
+ b,
843
843
  I,
844
- { x, y: b }
844
+ { x: p, y: g }
845
845
  );
846
- o.push(...k.slice(1)), i = null, r = x, s = b;
846
+ o.push(...k.slice(1)), i = null, r = p, s = g;
847
847
  break;
848
848
  }
849
849
  case "Z":
850
850
  case "z": {
851
- o.push({ x: u, y: c }), n.push(o), o = [], r = u, s = c, i = null;
851
+ o.push({ x: u, y: a }), n.push(o), o = [], r = u, s = a, i = null;
852
852
  break;
853
853
  }
854
854
  default:
@@ -858,7 +858,7 @@ function $t(t) {
858
858
  }
859
859
  return o.length > 0 && n.push(o), n;
860
860
  }
861
- function Ve(t) {
861
+ function Ze(t) {
862
862
  const e = t.match(
863
863
  /^\s*M\s*(-?\d*\.?\d+(?:e[-+]?\d+)?)[\s,]+(-?\d*\.?\d+(?:e[-+]?\d+)?)/i
864
864
  );
@@ -866,56 +866,56 @@ function Ve(t) {
866
866
  const n = Number(e[1]), o = Number(e[2]);
867
867
  return Number.isFinite(n) && Number.isFinite(o) ? { x: n, y: o } : null;
868
868
  }
869
- function He(t) {
869
+ function je(t) {
870
870
  var r, s;
871
871
  const e = (r = t.paths[0]) == null ? void 0 : r.d;
872
872
  if (!e || t.polygons.length === 0) return !1;
873
- const n = Ve(e), o = (s = t.polygons[0]) == null ? void 0 : s[0];
873
+ const n = Ze(e), o = (s = t.polygons[0]) == null ? void 0 : s[0];
874
874
  return !n || !o ? !1 : Math.abs(n.x - o.x) > 0.01 || Math.abs(n.y - o.y) > 0.01;
875
875
  }
876
876
  function Gt(t) {
877
- if (!He(t)) return t;
878
- const e = t.paths.flatMap((n) => $t(n.d));
877
+ if (!je(t)) return t;
878
+ const e = t.paths.flatMap((n) => Xt(n.d));
879
879
  return e.length === 0 ? t : { paths: t.paths, polygons: e };
880
880
  }
881
- function Ze(t) {
881
+ function qe(t) {
882
882
  const e = t.map((o) => ({
883
883
  d: o,
884
884
  closed: /z/i.test(o)
885
- })), n = t.flatMap((o) => $t(o));
885
+ })), n = t.flatMap((o) => Xt(o));
886
886
  return { paths: e, polygons: n };
887
887
  }
888
- function gt(t) {
888
+ function bt(t) {
889
889
  const e = t.polygons.flat();
890
- return Be(e);
890
+ return $e(e);
891
891
  }
892
- function je(t) {
892
+ function Qe(t) {
893
893
  return Xe(t.polygons.flat());
894
894
  }
895
- function No(t, e, n = 0, o = [15, 45, 90]) {
895
+ function Ko(t, e, n = 0, o = [15, 45, 90]) {
896
896
  const r = e.x - t.x, s = e.y - t.y, u = Math.hypot(r, s);
897
897
  if (u === 0) return { ...e };
898
898
  const i = Math.atan2(s, r) * 180 / Math.PI - n;
899
- let h = i, p = 1 / 0;
900
- for (const m of o) {
901
- const l = Math.round(i / m) * m, d = Math.abs(i - l);
902
- d < p && (p = d, h = l);
899
+ let h = i, m = 1 / 0;
900
+ for (const x of o) {
901
+ const l = Math.round(i / x) * x, d = Math.abs(i - l);
902
+ d < m && (m = d, h = l);
903
903
  }
904
- const a = (h + n) * Math.PI / 180;
904
+ const c = (h + n) * Math.PI / 180;
905
905
  return {
906
- x: t.x + Math.cos(a) * u,
907
- y: t.y + Math.sin(a) * u
906
+ x: t.x + Math.cos(c) * u,
907
+ y: t.y + Math.sin(c) * u
908
908
  };
909
909
  }
910
- function To(t, e) {
910
+ function Bo(t, e) {
911
911
  return Math.atan2(e.y - t.y, e.x - t.x) * 180 / Math.PI;
912
912
  }
913
- function qe(t) {
913
+ function Je(t) {
914
914
  if (!t) return null;
915
915
  const e = t.trim().split(/[\s,]+/).map(Number);
916
916
  return e.length !== 4 || e.some((n) => Number.isNaN(n)) ? null : { x: e[0], y: e[1], width: e[2], height: e[3] };
917
917
  }
918
- const Qe = {
918
+ const tn = {
919
919
  fill: "fill",
920
920
  "fill-opacity": "fill-opacity",
921
921
  stroke: "stroke",
@@ -923,7 +923,7 @@ const Qe = {
923
923
  "stroke-opacity": "stroke-opacity",
924
924
  opacity: "opacity"
925
925
  };
926
- function Je(t) {
926
+ function en(t) {
927
927
  const e = {};
928
928
  for (const n of t.split(";")) {
929
929
  const o = n.indexOf(":");
@@ -933,14 +933,14 @@ function Je(t) {
933
933
  }
934
934
  return e;
935
935
  }
936
- function tn(t) {
936
+ function nn(t) {
937
937
  const e = /* @__PURE__ */ new Map(), n = t.replace(/\/\*[\s\S]*?\*\//g, "");
938
938
  for (const o of n.matchAll(/([^{]+)\{([^}]*)\}/g)) {
939
- const r = o[1].split(",").map((u) => u.trim()), s = Je(o[2]);
939
+ const r = o[1].split(",").map((u) => u.trim()), s = en(o[2]);
940
940
  for (const u of r) {
941
- const c = u.match(/^\.([a-zA-Z0-9_-]+)$/);
942
- if (!c) continue;
943
- const i = c[1];
941
+ const a = u.match(/^\.([a-zA-Z0-9_-]+)$/);
942
+ if (!a) continue;
943
+ const i = a[1];
944
944
  e.set(i, {
945
945
  ...e.get(i) || {},
946
946
  ...s
@@ -949,42 +949,42 @@ function tn(t) {
949
949
  }
950
950
  return e;
951
951
  }
952
- function en(t, e) {
952
+ function on(t, e) {
953
953
  const n = {};
954
954
  for (const o of t.split(/\s+/).map((r) => r.trim()).filter(Boolean))
955
955
  Object.assign(n, e.get(o) || {});
956
956
  return n;
957
957
  }
958
- function nn(t) {
958
+ function rn(t) {
959
959
  const e = [], n = t.replace(/<!--[\s\S]*?-->/g, "");
960
960
  for (const r of n.matchAll(/<style\b[^>]*>([\s\S]*?)<\/style>/gi))
961
961
  e.push(r[1]);
962
962
  if (e.length === 0) return t;
963
963
  const o = /* @__PURE__ */ new Map();
964
964
  for (const r of e)
965
- for (const [s, u] of tn(r))
965
+ for (const [s, u] of nn(r))
966
966
  o.set(s, { ...o.get(s) || {}, ...u });
967
967
  return o.size === 0 ? t : t.replace(
968
968
  /<(path|polygon|polyline|line|rect|g|circle|ellipse)\b([^>]*)>/gi,
969
969
  (r, s, u) => {
970
- const c = /\/\s*$/.test(u), i = u.replace(/\/\s*$/, ""), h = i.match(/\bclass\s*=\s*["']([^"']*)["']/i);
970
+ const a = /\/\s*$/.test(u), i = u.replace(/\/\s*$/, ""), h = i.match(/\bclass\s*=\s*["']([^"']*)["']/i);
971
971
  if (!h) return r;
972
- const p = en(h[1], o);
973
- let a = i;
974
- for (const [m, l] of Object.entries(p)) {
975
- const d = Qe[m];
976
- d && (new RegExp(`\\b${d}\\s*=`, "i").test(a) || (a += ` ${d}="${l}"`));
972
+ const m = on(h[1], o);
973
+ let c = i;
974
+ for (const [x, l] of Object.entries(m)) {
975
+ const d = tn[x];
976
+ d && (new RegExp(`\\b${d}\\s*=`, "i").test(c) || (c += ` ${d}="${l}"`));
977
977
  }
978
- return `<${s}${a}${c ? " /" : ""}>`;
978
+ return `<${s}${c}${a ? " /" : ""}>`;
979
979
  }
980
980
  );
981
981
  }
982
- function St(t) {
983
- var c, i, h, p, a;
984
- const e = {}, n = (c = t.match(/\bfill\s*=\s*["']([^"']*)["']/i)) == null ? void 0 : c[1], o = (i = t.match(/\bstroke\s*=\s*["']([^"']*)["']/i)) == null ? void 0 : i[1], r = (h = t.match(/\bstroke-width\s*=\s*["']?(-?[\d.]+)/i)) == null ? void 0 : h[1], s = (p = t.match(/\bopacity\s*=\s*["']?(-?[\d.]+)/i)) == null ? void 0 : p[1], u = (a = t.match(/\bfill-opacity\s*=\s*["']?(-?[\d.]+)/i)) == null ? void 0 : a[1];
982
+ function At(t) {
983
+ var a, i, h, m, c;
984
+ const e = {}, n = (a = t.match(/\bfill\s*=\s*["']([^"']*)["']/i)) == null ? void 0 : a[1], o = (i = t.match(/\bstroke\s*=\s*["']([^"']*)["']/i)) == null ? void 0 : i[1], r = (h = t.match(/\bstroke-width\s*=\s*["']?(-?[\d.]+)/i)) == null ? void 0 : h[1], s = (m = t.match(/\bopacity\s*=\s*["']?(-?[\d.]+)/i)) == null ? void 0 : m[1], u = (c = t.match(/\bfill-opacity\s*=\s*["']?(-?[\d.]+)/i)) == null ? void 0 : c[1];
985
985
  return n && n.toLowerCase() !== "none" && (e.fill = n), o && o.toLowerCase() !== "none" && (e.stroke = o), r != null && !Number.isNaN(Number(r)) && (e.strokeWidth = Number(r)), s != null && !Number.isNaN(Number(s)) ? e.opacity = Number(s) : u != null && !Number.isNaN(Number(u)) && (e.opacity = Number(u)), e;
986
986
  }
987
- function at(t, e) {
987
+ function ct(t, e) {
988
988
  return {
989
989
  fill: e.fill ?? t.fill,
990
990
  stroke: e.stroke ?? t.stroke,
@@ -1003,23 +1003,23 @@ function H(t, e) {
1003
1003
  f: t.b * e.e + t.d * e.f + t.f
1004
1004
  };
1005
1005
  }
1006
- function on(t, e) {
1006
+ function sn(t, e) {
1007
1007
  return {
1008
1008
  x: t.a * e.x + t.c * e.y + t.e,
1009
1009
  y: t.b * e.x + t.d * e.y + t.f
1010
1010
  };
1011
1011
  }
1012
- function rn(t, e = 1e-9) {
1012
+ function an(t, e = 1e-9) {
1013
1013
  return Math.abs(t.a - 1) < e && Math.abs(t.b) < e && Math.abs(t.c) < e && Math.abs(t.d - 1) < e && Math.abs(t.e) < e && Math.abs(t.f) < e;
1014
1014
  }
1015
1015
  function lt(t, e) {
1016
1016
  return { a: 1, b: 0, c: 0, d: 1, e: t, f: e };
1017
1017
  }
1018
- function sn(t) {
1018
+ function cn(t) {
1019
1019
  const e = t * Math.PI / 180, n = Math.cos(e), o = Math.sin(e);
1020
1020
  return { a: n, b: o, c: -o, d: n, e: 0, f: 0 };
1021
1021
  }
1022
- function cn(t, e) {
1022
+ function ln(t, e) {
1023
1023
  switch (t) {
1024
1024
  case "matrix":
1025
1025
  return e.length < 6 ? null : { a: e[0], b: e[1], c: e[2], d: e[3], e: e[4], f: e[5] };
@@ -1032,7 +1032,7 @@ function cn(t, e) {
1032
1032
  }
1033
1033
  case "rotate": {
1034
1034
  if (e.length < 1) return null;
1035
- const n = sn(e[0]);
1035
+ const n = cn(e[0]);
1036
1036
  if (e.length < 3) return n;
1037
1037
  const o = e[1], r = e[2];
1038
1038
  return H(
@@ -1049,7 +1049,7 @@ function cn(t, e) {
1049
1049
  }
1050
1050
  }
1051
1051
  const Ct = /([a-zA-Z]+)\s*\(([^)]*)\)/g;
1052
- function Lt(t) {
1052
+ function Ot(t) {
1053
1053
  if (!t) return yt;
1054
1054
  let e = yt;
1055
1055
  Ct.lastIndex = 0;
@@ -1057,31 +1057,31 @@ function Lt(t) {
1057
1057
  for (; (n = Ct.exec(t)) !== null; ) {
1058
1058
  const o = n[1].toLowerCase(), r = n[2].trim().split(/[\s,]+/).filter(Boolean).map(Number);
1059
1059
  if (r.some((u) => Number.isNaN(u))) continue;
1060
- const s = cn(o, r);
1060
+ const s = ln(o, r);
1061
1061
  s && (e = H(e, s));
1062
1062
  }
1063
1063
  return e;
1064
1064
  }
1065
- function G(t) {
1065
+ function X(t) {
1066
1066
  if (!Number.isFinite(t)) return "0";
1067
1067
  const e = Math.round(t * 1e4) / 1e4;
1068
1068
  return Object.is(e, -0) ? "0" : String(e);
1069
1069
  }
1070
- function an(t, e, n, o) {
1071
- const r = o * Math.PI / 180, s = Math.cos(r), u = Math.sin(r), c = s * e, i = u * e, h = -u * n, p = s * n, a = t.a * c + t.c * i, m = t.b * c + t.d * i, l = t.a * h + t.c * p, d = t.b * h + t.d * p, f = (a + d) / 2, y = (a - d) / 2, g = (m + l) / 2, I = (m - l) / 2, x = Math.hypot(f, I), b = Math.hypot(y, g), k = Math.abs(x + b), S = Math.abs(x - b), A = Math.atan2(g, y), R = (Math.atan2(I, f) + A) / 2 * (180 / Math.PI);
1072
- return { rx: k, ry: S, phiDeg: R };
1070
+ function un(t, e, n, o) {
1071
+ const r = o * Math.PI / 180, s = Math.cos(r), u = Math.sin(r), a = s * e, i = u * e, h = -u * n, m = s * n, c = t.a * a + t.c * i, x = t.b * a + t.d * i, l = t.a * h + t.c * m, d = t.b * h + t.d * m, f = (c + d) / 2, y = (c - d) / 2, b = (x + l) / 2, I = (x - l) / 2, p = Math.hypot(f, I), g = Math.hypot(y, b), k = Math.abs(p + g), A = Math.abs(p - g), S = Math.atan2(b, y), L = (Math.atan2(I, f) + S) / 2 * (180 / Math.PI);
1072
+ return { rx: k, ry: A, phiDeg: L };
1073
1073
  }
1074
- function ln(t, e) {
1075
- if (!t || rn(e)) return t;
1076
- const n = Xt(t), o = [], r = e.a * e.d - e.b * e.c < 0;
1077
- let s = 0, u = "", c = 0, i = 0, h = 0, p = 0;
1078
- const a = () => {
1074
+ function fn(t, e) {
1075
+ if (!t || an(e)) return t;
1076
+ const n = $t(t), o = [], r = e.a * e.d - e.b * e.c < 0;
1077
+ let s = 0, u = "", a = 0, i = 0, h = 0, m = 0;
1078
+ const c = () => {
1079
1079
  const d = Number(n[s++]);
1080
1080
  return Number.isNaN(d) ? 0 : d;
1081
- }, m = (d, ...f) => {
1082
- o.push(d + (f.length ? " " + f.map(G).join(" ") : ""));
1081
+ }, x = (d, ...f) => {
1082
+ o.push(d + (f.length ? " " + f.map(X).join(" ") : ""));
1083
1083
  }, l = (d, f) => {
1084
- const y = on(e, { x: d, y: f });
1084
+ const y = sn(e, { x: d, y: f });
1085
1085
  return [y.x, y.y];
1086
1086
  };
1087
1087
  for (; s < n.length; ) {
@@ -1089,63 +1089,63 @@ function ln(t, e) {
1089
1089
  switch (/[a-zA-Z]/.test(d) && (u = d, s++), u) {
1090
1090
  case "M":
1091
1091
  case "m": {
1092
- const f = u === "m", y = a(), g = a();
1093
- c = f ? c + y : y, i = f ? i + g : g, h = c, p = i, m("M", ...l(c, i)), u = f ? "l" : "L";
1092
+ const f = u === "m", y = c(), b = c();
1093
+ a = f ? a + y : y, i = f ? i + b : b, h = a, m = i, x("M", ...l(a, i)), u = f ? "l" : "L";
1094
1094
  break;
1095
1095
  }
1096
1096
  case "L":
1097
1097
  case "l": {
1098
- const f = u === "l", y = a(), g = a();
1099
- c = f ? c + y : y, i = f ? i + g : g, m("L", ...l(c, i));
1098
+ const f = u === "l", y = c(), b = c();
1099
+ a = f ? a + y : y, i = f ? i + b : b, x("L", ...l(a, i));
1100
1100
  break;
1101
1101
  }
1102
1102
  case "H":
1103
1103
  case "h": {
1104
- const f = u === "h", y = a();
1105
- c = f ? c + y : y, m("L", ...l(c, i));
1104
+ const f = u === "h", y = c();
1105
+ a = f ? a + y : y, x("L", ...l(a, i));
1106
1106
  break;
1107
1107
  }
1108
1108
  case "V":
1109
1109
  case "v": {
1110
- const f = u === "v", y = a();
1111
- i = f ? i + y : y, m("L", ...l(c, i));
1110
+ const f = u === "v", y = c();
1111
+ i = f ? i + y : y, x("L", ...l(a, i));
1112
1112
  break;
1113
1113
  }
1114
1114
  case "C":
1115
1115
  case "c": {
1116
- const f = u === "c", y = f ? c + a() : a(), g = f ? i + a() : a(), I = f ? c + a() : a(), x = f ? i + a() : a(), b = f ? c + a() : a(), k = f ? i + a() : a();
1117
- m("C", ...l(y, g), ...l(I, x), ...l(b, k)), c = b, i = k;
1116
+ const f = u === "c", y = f ? a + c() : c(), b = f ? i + c() : c(), I = f ? a + c() : c(), p = f ? i + c() : c(), g = f ? a + c() : c(), k = f ? i + c() : c();
1117
+ x("C", ...l(y, b), ...l(I, p), ...l(g, k)), a = g, i = k;
1118
1118
  break;
1119
1119
  }
1120
1120
  case "S":
1121
1121
  case "s": {
1122
- const f = u === "s", y = f ? c + a() : a(), g = f ? i + a() : a(), I = f ? c + a() : a(), x = f ? i + a() : a();
1123
- m("S", ...l(y, g), ...l(I, x)), c = I, i = x;
1122
+ const f = u === "s", y = f ? a + c() : c(), b = f ? i + c() : c(), I = f ? a + c() : c(), p = f ? i + c() : c();
1123
+ x("S", ...l(y, b), ...l(I, p)), a = I, i = p;
1124
1124
  break;
1125
1125
  }
1126
1126
  case "Q":
1127
1127
  case "q": {
1128
- const f = u === "q", y = f ? c + a() : a(), g = f ? i + a() : a(), I = f ? c + a() : a(), x = f ? i + a() : a();
1129
- m("Q", ...l(y, g), ...l(I, x)), c = I, i = x;
1128
+ const f = u === "q", y = f ? a + c() : c(), b = f ? i + c() : c(), I = f ? a + c() : c(), p = f ? i + c() : c();
1129
+ x("Q", ...l(y, b), ...l(I, p)), a = I, i = p;
1130
1130
  break;
1131
1131
  }
1132
1132
  case "T":
1133
1133
  case "t": {
1134
- const f = u === "t", y = f ? c + a() : a(), g = f ? i + a() : a();
1135
- m("T", ...l(y, g)), c = y, i = g;
1134
+ const f = u === "t", y = f ? a + c() : c(), b = f ? i + c() : c();
1135
+ x("T", ...l(y, b)), a = y, i = b;
1136
1136
  break;
1137
1137
  }
1138
1138
  case "A":
1139
1139
  case "a": {
1140
- const f = u === "a", y = a(), g = a(), I = a(), x = a(), b = a(), k = f ? c + a() : a(), S = f ? i + a() : a(), A = an(e, y, g, I), [C, R] = l(k, S);
1140
+ const f = u === "a", y = c(), b = c(), I = c(), p = c(), g = c(), k = f ? a + c() : c(), A = f ? i + c() : c(), S = un(e, y, b, I), [C, L] = l(k, A);
1141
1141
  o.push(
1142
- `A ${G(A.rx)} ${G(A.ry)} ${G(A.phiDeg)} ${x ? 1 : 0} ${(b ? 1 : 0) ^ (r ? 1 : 0)} ${G(C)} ${G(R)}`
1143
- ), c = k, i = S;
1142
+ `A ${X(S.rx)} ${X(S.ry)} ${X(S.phiDeg)} ${p ? 1 : 0} ${(g ? 1 : 0) ^ (r ? 1 : 0)} ${X(C)} ${X(L)}`
1143
+ ), a = k, i = A;
1144
1144
  break;
1145
1145
  }
1146
1146
  case "Z":
1147
1147
  case "z": {
1148
- o.push("Z"), c = h, i = p;
1148
+ o.push("Z"), a = h, i = m;
1149
1149
  break;
1150
1150
  }
1151
1151
  default:
@@ -1155,7 +1155,7 @@ function ln(t, e) {
1155
1155
  }
1156
1156
  return o.join(" ");
1157
1157
  }
1158
- const un = [
1158
+ const dn = [
1159
1159
  { prefix: "walkable", kind: "walkable" },
1160
1160
  { prefix: "void", kind: "void" },
1161
1161
  { prefix: "unit", kind: "unit" },
@@ -1182,7 +1182,7 @@ const un = [
1182
1182
  { prefix: "parking-icon", kind: "parking_icon" },
1183
1183
  { prefix: "walking-path", kind: "walkable" },
1184
1184
  { prefix: "water", kind: "water" }
1185
- ], fn = [
1185
+ ], hn = [
1186
1186
  { prefix: "parking-zone", kind: "parking_zone" },
1187
1187
  { prefix: "parking-lane", kind: "parking_zone" },
1188
1188
  { prefix: "parking-icon", kind: "parking_icon" },
@@ -1203,23 +1203,23 @@ const un = [
1203
1203
  { prefix: "elevator-", kind: "connector" },
1204
1204
  { prefix: "stairs-", kind: "connector" }
1205
1205
  ];
1206
- function xt(t) {
1206
+ function pt(t) {
1207
1207
  const e = ot(t);
1208
1208
  return e === "route path" || e.startsWith("route path ");
1209
1209
  }
1210
1210
  function Wt(t) {
1211
1211
  const e = ot(t);
1212
- return e === "routes" || e === "route" || e === "wayfinding" || e === "wayfinding routes" || xt(t);
1212
+ return e === "routes" || e === "route" || e === "wayfinding" || e === "wayfinding routes" || pt(t);
1213
1213
  }
1214
- const dn = [
1215
- ...de,
1214
+ const yn = [
1215
+ ...ye,
1216
1216
  "walkable",
1217
1217
  "void"
1218
- ], hn = 8;
1219
- function yn(t, e = "floor") {
1220
- if (Vt(t))
1218
+ ], pn = 8;
1219
+ function mn(t, e = "floor") {
1220
+ if (Ht(t))
1221
1221
  return { kind: null, guessed: !1 };
1222
- const n = t.toLowerCase(), o = e === "base" ? fn : un;
1222
+ const n = t.toLowerCase(), o = e === "base" ? hn : dn;
1223
1223
  for (const { prefix: r, kind: s } of o)
1224
1224
  if (n === r || n.startsWith(r))
1225
1225
  return { kind: s, guessed: !1 };
@@ -1228,18 +1228,18 @@ function yn(t, e = "floor") {
1228
1228
  function ot(t) {
1229
1229
  return t.toLowerCase().replace(/[-_]+/g, " ").replace(/\s+/g, " ").trim();
1230
1230
  }
1231
- function bt(t) {
1231
+ function gt(t) {
1232
1232
  return /non[-_ ]?interactive/i.test(t);
1233
1233
  }
1234
- function zt(t) {
1235
- return bt(t) ? !1 : /^interactive( items)?( \d+)?$/.test(ot(t));
1234
+ function Vt(t) {
1235
+ return gt(t) ? !1 : /^interactive( items)?( \d+)?$/.test(ot(t));
1236
1236
  }
1237
1237
  function Ut(t) {
1238
1238
  const e = ot(t);
1239
1239
  return e === "stores" || e === "store layer" || e === "units" || e === "unit layer";
1240
1240
  }
1241
- function Vt(t) {
1242
- return zt(t) || bt(t) || Ut(t) || Wt(t);
1241
+ function Ht(t) {
1242
+ return Vt(t) || gt(t) || Ut(t) || Wt(t);
1243
1243
  }
1244
1244
  function ut(t) {
1245
1245
  return t.interactiveContainer || t.nonInteractiveContainer || t.storeFolder;
@@ -1248,11 +1248,11 @@ function w(t, e) {
1248
1248
  const n = t.match(new RegExp(`\\b${e}\\s*=\\s*["']([^"']*)["']`, "i"));
1249
1249
  return n ? n[1] : null;
1250
1250
  }
1251
- function X(t, e) {
1251
+ function z(t, e) {
1252
1252
  const n = t.match(new RegExp(`\\b${e}\\s*=\\s*["']?(-?[\\d.]+)`, "i"));
1253
1253
  return n ? Number(n[1]) : 0;
1254
1254
  }
1255
- function vt(t) {
1255
+ function Rt(t) {
1256
1256
  return /\bdata-interactive\s*=\s*["']?(true|1|yes)/i.test(t);
1257
1257
  }
1258
1258
  function xn(t) {
@@ -1260,10 +1260,10 @@ function xn(t) {
1260
1260
  (e) => !!e
1261
1261
  );
1262
1262
  }
1263
- function pn(t) {
1264
- return t.some(bt) ? { interactiveContainer: !1, nonInteractiveContainer: !0, storeFolder: !1 } : t.some(zt) ? { interactiveContainer: !0, nonInteractiveContainer: !1, storeFolder: !1 } : t.some(Ut) ? { interactiveContainer: !1, nonInteractiveContainer: !1, storeFolder: !0 } : { interactiveContainer: !1, nonInteractiveContainer: !1, storeFolder: !1 };
1263
+ function bn(t) {
1264
+ return t.some(gt) ? { interactiveContainer: !1, nonInteractiveContainer: !0, storeFolder: !1 } : t.some(Vt) ? { interactiveContainer: !0, nonInteractiveContainer: !1, storeFolder: !1 } : t.some(Ut) ? { interactiveContainer: !1, nonInteractiveContainer: !1, storeFolder: !0 } : { interactiveContainer: !1, nonInteractiveContainer: !1, storeFolder: !1 };
1265
1265
  }
1266
- function mn(t) {
1266
+ function gn(t) {
1267
1267
  const e = t.trim().split(/[\s,]+/).map(Number);
1268
1268
  if (e.length < 4) return "";
1269
1269
  let n = `M ${e[0]} ${e[1]}`;
@@ -1271,153 +1271,153 @@ function mn(t) {
1271
1271
  n += ` L ${e[o]} ${e[o + 1]}`;
1272
1272
  return n += " Z", n;
1273
1273
  }
1274
- function gn(t, e, n, o) {
1274
+ function In(t, e, n, o) {
1275
1275
  return `M ${t} ${e} L ${n} ${o}`;
1276
1276
  }
1277
- function bn(t, e) {
1277
+ function kn(t, e) {
1278
1278
  if (t === "path")
1279
1279
  return w(e, "d") ?? void 0;
1280
1280
  if (t === "polygon" || t === "polyline") {
1281
1281
  const n = w(e, "points");
1282
- return n ? mn(n) : void 0;
1282
+ return n ? gn(n) : void 0;
1283
1283
  }
1284
1284
  if (t === "line")
1285
- return gn(
1286
- X(e, "x1"),
1287
- X(e, "y1"),
1288
- X(e, "x2"),
1289
- X(e, "y2")
1285
+ return In(
1286
+ z(e, "x1"),
1287
+ z(e, "y1"),
1288
+ z(e, "x2"),
1289
+ z(e, "y2")
1290
1290
  );
1291
1291
  if (t === "rect") {
1292
- const n = X(e, "x"), o = X(e, "y"), r = X(e, "width"), s = X(e, "height");
1292
+ const n = z(e, "x"), o = z(e, "y"), r = z(e, "width"), s = z(e, "height");
1293
1293
  return `M ${n} ${o} L ${n + r} ${o} L ${n + r} ${o + s} L ${n} ${o + s} Z`;
1294
1294
  }
1295
1295
  }
1296
- function In(t) {
1297
- const e = nn(t).replace(/<!--[\s\S]*?-->/g, ""), n = e.match(/viewBox\s*=\s*["']([^"']+)["']/i), o = qe(n == null ? void 0 : n[1]), r = [], s = [], u = [], c = [];
1296
+ function _n(t) {
1297
+ const e = rn(t).replace(/<!--[\s\S]*?-->/g, ""), n = e.match(/viewBox\s*=\s*["']([^"']+)["']/i), o = Je(n == null ? void 0 : n[1]), r = [], s = [], u = [], a = [];
1298
1298
  let i = 0;
1299
- const h = () => c.some((x) => x.routeContainer), p = () => {
1300
- for (let b = c.length - 1; b >= 0; b--) {
1301
- const k = c[b].style;
1299
+ const h = () => a.some((p) => p.routeContainer), m = () => {
1300
+ for (let g = a.length - 1; g >= 0; g--) {
1301
+ const k = a[g].style;
1302
1302
  if (k.fill || k.stroke || k.strokeWidth != null || k.opacity != null)
1303
1303
  break;
1304
1304
  }
1305
- let x = {};
1306
- for (const b of c)
1307
- x = at(x, b.style);
1308
- return x;
1309
- }, a = () => {
1310
- for (let x = c.length - 1; x >= 0; x--) {
1311
- if (c[x].nonInteractiveContainer) return !1;
1312
- if (c[x].interactiveContainer || c[x].storeFolder) return !0;
1305
+ let p = {};
1306
+ for (const g of a)
1307
+ p = ct(p, g.style);
1308
+ return p;
1309
+ }, c = () => {
1310
+ for (let p = a.length - 1; p >= 0; p--) {
1311
+ if (a[p].nonInteractiveContainer) return !1;
1312
+ if (a[p].interactiveContainer || a[p].storeFolder) return !0;
1313
1313
  }
1314
1314
  return !1;
1315
- }, m = () => c.length > 0 ? c[c.length - 1].matrix : yt, l = () => {
1316
- for (let x = c.length - 1; x >= 0; x--) {
1317
- const b = c[x];
1318
- if (!ut(b) && b.id) {
1319
- b.hasNamedChild = !0;
1315
+ }, x = () => a.length > 0 ? a[a.length - 1].matrix : yt, l = () => {
1316
+ for (let p = a.length - 1; p >= 0; p--) {
1317
+ const g = a[p];
1318
+ if (!ut(g) && g.id) {
1319
+ g.hasNamedChild = !0;
1320
1320
  return;
1321
1321
  }
1322
1322
  }
1323
1323
  }, d = () => {
1324
- for (let x = c.length - 1; x >= 0; x--) {
1325
- const b = c[x];
1326
- if (!ut(b) && b.id)
1327
- return b;
1324
+ for (let p = a.length - 1; p >= 0; p--) {
1325
+ const g = a[p];
1326
+ if (!ut(g) && g.id)
1327
+ return g;
1328
1328
  }
1329
1329
  return null;
1330
- }, f = (x) => {
1331
- if (x.routeContainer) {
1332
- for (const b of x.collectedPaths) y("path", b);
1330
+ }, f = (p) => {
1331
+ if (p.routeContainer) {
1332
+ for (const g of p.collectedPaths) y("path", g);
1333
1333
  return;
1334
1334
  }
1335
- ut(x) || !x.id || x.collectedPaths.length === 0 || (x.hasNamedChild && u.push(
1336
- `Group ${x.id} mixes named children with ${x.collectedPaths.length} unnamed path(s); the unnamed paths were merged into a single shape "${x.id}" — give them ids if they are separate shapes`
1335
+ ut(p) || !p.id || p.collectedPaths.length === 0 || (p.hasNamedChild && u.push(
1336
+ `Group ${p.id} mixes named children with ${p.collectedPaths.length} unnamed path(s); the unnamed paths were merged into a single shape "${p.id}" — give them ids if they are separate shapes`
1337
1337
  ), r.push({
1338
- id: x.id,
1338
+ id: p.id,
1339
1339
  tag: "g",
1340
- d: x.collectedPaths.join(" "),
1341
- interactive: x.inInteractive,
1342
- style: at(p(), x.style)
1340
+ d: p.collectedPaths.join(" "),
1341
+ interactive: p.inInteractive,
1342
+ style: ct(m(), p.style)
1343
1343
  }));
1344
- }, y = (x, b) => {
1345
- if (!b) return;
1346
- const k = x === "polyline" || x === "polygon" || x === "path" ? b.replace(/\s*Z\s*$/i, "") : b;
1344
+ }, y = (p, g) => {
1345
+ if (!g) return;
1346
+ const k = p === "polyline" || p === "polygon" || p === "path" ? g.replace(/\s*Z\s*$/i, "") : g;
1347
1347
  s.includes(k) || s.push(k);
1348
- }, g = /<(\/?)(path|polygon|polyline|line|rect|g)\b([^>]*)(\/?)>/gi;
1348
+ }, b = /<(\/?)(path|polygon|polyline|line|rect|g)\b([^>]*)(\/?)>/gi;
1349
1349
  let I;
1350
- for (; (I = g.exec(e)) !== null; ) {
1351
- const x = I[1] === "/", b = I[2].toLowerCase(), k = I[3] ?? "", S = I[4] === "/" || /\/\s*$/.test(k);
1352
- if (x) {
1353
- if (b === "g") {
1354
- const O = c.pop();
1355
- O && f(O);
1350
+ for (; (I = b.exec(e)) !== null; ) {
1351
+ const p = I[1] === "/", g = I[2].toLowerCase(), k = I[3] ?? "", A = I[4] === "/" || /\/\s*$/.test(k);
1352
+ if (p) {
1353
+ if (g === "g") {
1354
+ const E = a.pop();
1355
+ E && f(E);
1356
1356
  }
1357
1357
  continue;
1358
1358
  }
1359
- if (b === "g") {
1360
- const O = w(k, "id"), B = xn(k), { interactiveContainer: N, nonInteractiveContainer: T, storeFolder: W } = pn(B), Z = a();
1361
- O && l();
1359
+ if (g === "g") {
1360
+ const E = w(k, "id"), B = xn(k), { interactiveContainer: N, nonInteractiveContainer: T, storeFolder: G } = bn(B), Z = c();
1361
+ E && l();
1362
1362
  const j = {
1363
- id: O,
1363
+ id: E,
1364
1364
  interactiveContainer: N,
1365
1365
  nonInteractiveContainer: T,
1366
- storeFolder: W,
1367
- inInteractive: N || W || vt(k) || Z && !T,
1366
+ storeFolder: G,
1367
+ inInteractive: N || G || Rt(k) || Z && !T,
1368
1368
  collectedPaths: [],
1369
- style: St(k),
1370
- matrix: H(m(), Lt(w(k, "transform"))),
1369
+ style: At(k),
1370
+ matrix: H(x(), Ot(w(k, "transform"))),
1371
1371
  hasNamedChild: !1,
1372
1372
  routeContainer: B.some(Wt) || h()
1373
1373
  };
1374
- S || c.push(j);
1374
+ A || a.push(j);
1375
1375
  continue;
1376
1376
  }
1377
- const A = w(k, "id"), C = bn(b, k), R = H(m(), Lt(w(k, "transform"))), v = C && ln(C, R), D = vt(k) || a(), E = at(p(), St(k)), K = w(k, "data-name");
1378
- if (A != null && xt(A) || K != null && xt(K) || !A && h()) {
1379
- y(b, v);
1377
+ const S = w(k, "id"), C = kn(g, k), L = H(x(), Ot(w(k, "transform"))), R = C && fn(C, L), Y = Rt(k) || c(), M = ct(m(), At(k)), K = w(k, "data-name");
1378
+ if (S != null && pt(S) || K != null && pt(K) || !S && h()) {
1379
+ y(g, R);
1380
1380
  continue;
1381
1381
  }
1382
- if (A) {
1383
- l(), v && r.push({ id: A, tag: b, d: v, interactive: D, style: E });
1382
+ if (S) {
1383
+ l(), R && r.push({ id: S, tag: g, d: R, interactive: Y, style: M });
1384
1384
  continue;
1385
1385
  }
1386
- if (!v) continue;
1387
- const L = d();
1388
- L ? (L.collectedPaths.push(v), !L.style.fill && E.fill && (L.style = E)) : D && (i += 1, r.push({
1386
+ if (!R) continue;
1387
+ const O = d();
1388
+ O ? (O.collectedPaths.push(R), !O.style.fill && M.fill && (O.style = M)) : Y && (i += 1, r.push({
1389
1389
  id: `interactive-anon-${i}`,
1390
- tag: b,
1391
- d: v,
1390
+ tag: g,
1391
+ d: R,
1392
1392
  interactive: !0,
1393
- style: E
1393
+ style: M
1394
1394
  }));
1395
1395
  }
1396
- for (; c.length > 0; )
1397
- f(c.pop());
1396
+ for (; a.length > 0; )
1397
+ f(a.pop());
1398
1398
  return { viewbox: o, elements: r, routePathDs: s, warnings: u };
1399
1399
  }
1400
- function kn(t) {
1400
+ function Sn(t) {
1401
1401
  return t.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "").slice(0, 80);
1402
1402
  }
1403
- function _n(t, e) {
1404
- var r, s, u, c;
1405
- const n = mt(e), o = {};
1406
- return n != null && n.fill ? o.fill = n.fill : (r = t.style) != null && r.fill && (o.fill = t.style.fill), n != null && n.stroke ? o.stroke = n.stroke : (s = t.style) != null && s.stroke && (o.stroke = t.style.stroke), (n == null ? void 0 : n.strokeWidth) != null ? o.strokeWidth = n.strokeWidth : ((u = t.style) == null ? void 0 : u.strokeWidth) != null && (o.strokeWidth = t.style.strokeWidth), ((c = t.style) == null ? void 0 : c.opacity) != null && (o.opacity = t.style.opacity), (n == null ? void 0 : n.extrudeHeight) != null && (o.extrudeHeight = n.extrudeHeight), o;
1407
- }
1408
1403
  function An(t, e) {
1404
+ var r, s, u, a;
1405
+ const n = xt(e), o = {};
1406
+ return n != null && n.fill ? o.fill = n.fill : (r = t.style) != null && r.fill && (o.fill = t.style.fill), n != null && n.stroke ? o.stroke = n.stroke : (s = t.style) != null && s.stroke && (o.stroke = t.style.stroke), (n == null ? void 0 : n.strokeWidth) != null ? o.strokeWidth = n.strokeWidth : ((u = t.style) == null ? void 0 : u.strokeWidth) != null && (o.strokeWidth = t.style.strokeWidth), ((a = t.style) == null ? void 0 : a.opacity) != null && (o.opacity = t.style.opacity), (n == null ? void 0 : n.extrudeHeight) != null && (o.extrudeHeight = n.extrudeHeight), o;
1407
+ }
1408
+ function Cn(t, e) {
1409
1409
  return t == null && e == null ? !0 : t == null || e == null ? !1 : Math.abs(t.x - e.x) < 0.01 && Math.abs(t.y - e.y) < 0.01 && Math.abs(t.width - e.width) < 0.01 && Math.abs(t.height - e.height) < 0.01;
1410
1410
  }
1411
- function wo(t, e = "floor", n = {}) {
1412
- const o = In(t), r = [], s = [], u = [], c = [...o.warnings], i = [];
1413
- let h = 0, p = 0, a = 0;
1414
- const m = n.previousViewbox != null && o.viewbox != null && !An(n.previousViewbox, o.viewbox);
1415
- m && c.push(
1411
+ function zo(t, e = "floor", n = {}) {
1412
+ const o = _n(t), r = [], s = [], u = [], a = [...o.warnings], i = [];
1413
+ let h = 0, m = 0, c = 0;
1414
+ const x = n.previousViewbox != null && o.viewbox != null && !Cn(n.previousViewbox, o.viewbox);
1415
+ x && a.push(
1416
1416
  "SVG viewBox differs from the stored artboard — re-upload blocked until the designer restores the original viewBox"
1417
1417
  );
1418
1418
  for (const l of o.elements) {
1419
- if (Vt(l.id)) continue;
1420
- let { kind: d, guessed: f } = yn(l.id, e);
1419
+ if (Ht(l.id)) continue;
1420
+ let { kind: d, guessed: f } = mn(l.id, e);
1421
1421
  l.interactive && !d && (d = "unit", f = !0);
1422
1422
  const y = {
1423
1423
  sourceSvgId: l.id,
@@ -1432,31 +1432,31 @@ function wo(t, e = "floor", n = {}) {
1432
1432
  continue;
1433
1433
  }
1434
1434
  if (!l.d) {
1435
- c.push(`Element ${l.id} has no drawable geometry`);
1435
+ a.push(`Element ${l.id} has no drawable geometry`);
1436
1436
  continue;
1437
1437
  }
1438
1438
  if (e === "base") {
1439
- const x = mt(l.id) != null;
1440
- if (!(!x && (dn.includes(d) || !!l.interactive))) {
1439
+ const p = xt(l.id) != null;
1440
+ if (!(!p && (yn.includes(d) || !!l.interactive))) {
1441
1441
  r.push({
1442
1442
  ...y,
1443
- message: x ? "Static decoration — rendered from outdoor SVG" : "Decoration — not persisted; rendered from outdoor SVG"
1443
+ message: p ? "Static decoration — rendered from outdoor SVG" : "Decoration — not persisted; rendered from outdoor SVG"
1444
1444
  });
1445
1445
  continue;
1446
1446
  }
1447
1447
  }
1448
- f && (u.push(y), y.message = y.message ?? "Guessed kind from interactive/fallback rule"), r.push(y), d === "walkable" && h++, d === "void" && p++, d === "unit" && a++;
1449
- const g = Ze([l.d]), I = gt(g);
1448
+ f && (u.push(y), y.message = y.message ?? "Guessed kind from interactive/fallback rule"), r.push(y), d === "walkable" && h++, d === "void" && m++, d === "unit" && c++;
1449
+ const b = qe([l.d]), I = bt(b);
1450
1450
  i.push({
1451
- key: kn(l.id),
1451
+ key: Sn(l.id),
1452
1452
  kind: d,
1453
- geometry: g,
1453
+ geometry: b,
1454
1454
  bbox: I,
1455
1455
  sourceSvgId: l.id,
1456
- style: _n(l, l.id)
1456
+ style: An(l, l.id)
1457
1457
  });
1458
1458
  }
1459
- return e === "floor" && h === 0 && c.push(
1459
+ return e === "floor" && h === 0 && a.push(
1460
1460
  "No walkable layer found — auto-skeleton will be unavailable for this level"
1461
1461
  ), {
1462
1462
  report: {
@@ -1464,30 +1464,30 @@ function wo(t, e = "floor", n = {}) {
1464
1464
  unrecognized: s,
1465
1465
  guessed: u,
1466
1466
  walkableCount: h,
1467
- voidCount: p,
1468
- unitCount: a,
1469
- warnings: c
1467
+ voidCount: m,
1468
+ unitCount: c,
1469
+ warnings: a
1470
1470
  },
1471
1471
  shapes: i,
1472
1472
  viewbox: o.viewbox,
1473
1473
  routePathDs: o.routePathDs,
1474
- viewBoxChanged: m
1474
+ viewBoxChanged: x
1475
1475
  };
1476
1476
  }
1477
- function Po(t, e, n, o = {}) {
1478
- const r = o.driftThreshold ?? hn, s = new Map(
1477
+ function $o(t, e, n, o = {}) {
1478
+ const r = o.driftThreshold ?? pn, s = new Map(
1479
1479
  e.filter((i) => i.sourceSvgId).map((i) => [i.sourceSvgId, i])
1480
- ), u = /* @__PURE__ */ new Set(), c = [];
1480
+ ), u = /* @__PURE__ */ new Set(), a = [];
1481
1481
  for (const i of t) {
1482
1482
  const h = s.get(i.sourceSvgId);
1483
1483
  if (u.add(i.sourceSvgId), !h)
1484
- c.push({
1484
+ a.push({
1485
1485
  sourceSvgId: i.sourceSvgId,
1486
1486
  change: "added",
1487
1487
  newKind: i.kind
1488
1488
  });
1489
1489
  else if (h.kind !== i.kind)
1490
- c.push({
1490
+ a.push({
1491
1491
  sourceSvgId: i.sourceSvgId,
1492
1492
  change: "kind_changed",
1493
1493
  existingShapeId: h.id,
@@ -1497,14 +1497,14 @@ function Po(t, e, n, o = {}) {
1497
1497
  geometryLocked: h.geometryLocked
1498
1498
  });
1499
1499
  else {
1500
- let p = "unchanged";
1500
+ let m = "unchanged";
1501
1501
  if (h.bbox) {
1502
- const a = (h.bbox.minX + h.bbox.maxX) / 2, m = (h.bbox.minY + h.bbox.maxY) / 2, l = je(i.geometry);
1503
- Math.hypot(l.x - a, l.y - m) > r && (p = "moved");
1502
+ const c = (h.bbox.minX + h.bbox.maxX) / 2, x = (h.bbox.minY + h.bbox.maxY) / 2, l = Qe(i.geometry);
1503
+ Math.hypot(l.x - c, l.y - x) > r && (m = "moved");
1504
1504
  }
1505
- c.push({
1505
+ a.push({
1506
1506
  sourceSvgId: i.sourceSvgId,
1507
- change: p,
1507
+ change: m,
1508
1508
  existingShapeId: h.id,
1509
1509
  existingKind: h.kind,
1510
1510
  newKind: i.kind,
@@ -1514,7 +1514,7 @@ function Po(t, e, n, o = {}) {
1514
1514
  }
1515
1515
  }
1516
1516
  for (const i of e)
1517
- i.sourceSvgId && !u.has(i.sourceSvgId) && c.push({
1517
+ i.sourceSvgId && !u.has(i.sourceSvgId) && a.push({
1518
1518
  sourceSvgId: i.sourceSvgId,
1519
1519
  change: "removed",
1520
1520
  existingShapeId: i.id,
@@ -1522,19 +1522,19 @@ function Po(t, e, n, o = {}) {
1522
1522
  geometryLocked: i.geometryLocked
1523
1523
  });
1524
1524
  return {
1525
- items: c,
1525
+ items: a,
1526
1526
  shapes: t,
1527
1527
  viewbox: n
1528
1528
  };
1529
1529
  }
1530
- const M = 1e-6, Sn = 15 * Math.PI / 180, Cn = 1e-3, J = Math.PI * 2;
1531
- function Ot(t, e) {
1532
- return Math.abs(t.x - e.x) < M && Math.abs(t.y - e.y) < M;
1530
+ const v = 1e-6, On = 15 * Math.PI / 180, Rn = 1e-3, J = Math.PI * 2;
1531
+ function Et(t, e) {
1532
+ return Math.abs(t.x - e.x) < v && Math.abs(t.y - e.y) < v;
1533
1533
  }
1534
1534
  function ft(t, e) {
1535
1535
  return { x: t.x + e.x, y: t.y + e.y };
1536
1536
  }
1537
- function Rt(t, e) {
1537
+ function Lt(t, e) {
1538
1538
  return { x: t.x - e.x, y: t.y - e.y };
1539
1539
  }
1540
1540
  function tt(t, e) {
@@ -1546,60 +1546,60 @@ function dt(t, e, n) {
1546
1546
  y: t.y + Math.sin(n) * e
1547
1547
  };
1548
1548
  }
1549
- function Ln(t) {
1549
+ function En(t) {
1550
1550
  const e = [];
1551
1551
  for (const n of t) {
1552
1552
  const o = e[e.length - 1];
1553
- o && Ot(o, n) || e.push(n);
1553
+ o && Et(o, n) || e.push(n);
1554
1554
  }
1555
- return e.length >= 2 && Ot(e[0], e[e.length - 1]) && e.pop(), e;
1555
+ return e.length >= 2 && Et(e[0], e[e.length - 1]) && e.pop(), e;
1556
1556
  }
1557
- function Fo(t, e) {
1558
- const n = Yt(e), o = Ln(t);
1557
+ function Xo(t, e) {
1558
+ const n = Yt(e), o = En(t);
1559
1559
  if (o.length < 3 || n <= 0) return t;
1560
- const r = o.length, s = new Array(r), u = new Array(r), c = new Array(r), i = new Array(r), h = new Array(r).fill(0), p = new Array(r).fill(0), a = new Array(r).fill(!1);
1560
+ const r = o.length, s = new Array(r), u = new Array(r), a = new Array(r), i = new Array(r), h = new Array(r).fill(0), m = new Array(r).fill(0), c = new Array(r).fill(!1);
1561
1561
  for (let l = 0; l < r; l++) {
1562
- const d = o[(l - 1 + r) % r], f = o[l], y = o[(l + 1) % r], g = F(d, f), I = F(f, y);
1563
- if (c[l] = I, g < M || I < M) {
1562
+ const d = o[(l - 1 + r) % r], f = o[l], y = o[(l + 1) % r], b = F(d, f), I = F(f, y);
1563
+ if (a[l] = I, b < v || I < v) {
1564
1564
  s[l] = { x: 1, y: 0 }, u[l] = { x: 1, y: 0 }, i[l] = 0;
1565
1565
  continue;
1566
1566
  }
1567
- s[l] = tt(Rt(f, d), 1 / g), u[l] = tt(Rt(y, f), 1 / I);
1568
- const x = s[l].x * u[l].y - s[l].y * u[l].x, b = s[l].x * u[l].x + s[l].y * u[l].y;
1569
- i[l] = Math.atan2(x, b);
1567
+ s[l] = tt(Lt(f, d), 1 / b), u[l] = tt(Lt(y, f), 1 / I);
1568
+ const p = s[l].x * u[l].y - s[l].y * u[l].x, g = s[l].x * u[l].x + s[l].y * u[l].y;
1569
+ i[l] = Math.atan2(p, g);
1570
1570
  const k = Math.abs(i[l]);
1571
- if (k < Sn) continue;
1572
- const S = Math.PI - k, A = Math.tan(S / 2);
1573
- if (A < M || S <= M || S >= Math.PI - M) continue;
1574
- const C = n / A;
1575
- h[l] = C, p[l] = C, a[l] = !0;
1571
+ if (k < On) continue;
1572
+ const A = Math.PI - k, S = Math.tan(A / 2);
1573
+ if (S < v || A <= v || A >= Math.PI - v) continue;
1574
+ const C = n / S;
1575
+ h[l] = C, m[l] = C, c[l] = !0;
1576
1576
  }
1577
1577
  for (let l = 0; l < r; l++) {
1578
- const d = (l + 1) % r, f = p[l] + h[d], y = Math.max(0, c[l] - Cn);
1579
- if (f <= y || f <= M) continue;
1580
- const g = y / f;
1581
- p[l] *= g, h[d] *= g;
1578
+ const d = (l + 1) % r, f = m[l] + h[d], y = Math.max(0, a[l] - Rn);
1579
+ if (f <= y || f <= v) continue;
1580
+ const b = y / f;
1581
+ m[l] *= b, h[d] *= b;
1582
1582
  }
1583
- const m = [];
1583
+ const x = [];
1584
1584
  for (let l = 0; l < r; l++) {
1585
- const d = o[l], f = Math.min(h[l], p[l]), y = Math.abs(i[l]), g = Math.PI - y, I = f * Math.tan(g / 2);
1586
- if (!a[l] || I < M || f < M) {
1587
- m.push({ ...d });
1585
+ const d = o[l], f = Math.min(h[l], m[l]), y = Math.abs(i[l]), b = Math.PI - y, I = f * Math.tan(b / 2);
1586
+ if (!c[l] || I < v || f < v) {
1587
+ x.push({ ...d });
1588
1588
  continue;
1589
1589
  }
1590
- const x = ft(d, tt(s[l], -f)), b = ft(d, tt(u[l], f)), k = i[l] > 0 ? 1 : -1, S = ft(x, {
1590
+ const p = ft(d, tt(s[l], -f)), g = ft(d, tt(u[l], f)), k = i[l] > 0 ? 1 : -1, A = ft(p, {
1591
1591
  x: -s[l].y * k * I,
1592
1592
  y: s[l].x * k * I
1593
- }), A = Math.atan2(x.y - S.y, x.x - S.x), C = Math.atan2(b.y - S.y, b.x - S.x), R = (C - A + J) % J, v = (A - C + J) % J, D = dt(S, I, A + R / 2), E = dt(S, I, A - v / 2), K = F(D, d) <= F(E, d), $ = K ? R : v, L = Math.max(8, Math.min(28, Math.ceil($ * I / 2)));
1594
- for (let O = 0; O <= L; O++) {
1595
- const B = O / L, N = K ? A + $ * B : A - $ * B;
1596
- m.push(dt(S, I, N));
1593
+ }), S = Math.atan2(p.y - A.y, p.x - A.x), C = Math.atan2(g.y - A.y, g.x - A.x), L = (C - S + J) % J, R = (S - C + J) % J, Y = dt(A, I, S + L / 2), M = dt(A, I, S - R / 2), K = F(Y, d) <= F(M, d), $ = K ? L : R, O = Math.max(8, Math.min(28, Math.ceil($ * I / 2)));
1594
+ for (let E = 0; E <= O; E++) {
1595
+ const B = E / O, N = K ? S + $ * B : S - $ * B;
1596
+ x.push(dt(A, I, N));
1597
1597
  }
1598
1598
  }
1599
- return m;
1599
+ return x;
1600
1600
  }
1601
- function vn(t, e, n = []) {
1602
- const o = Zt(), r = new Map(t.map((i) => [i.id, i])), s = new Map(n.map((i) => [i.id, i])), u = t.map((i) => ({
1601
+ function Ln(t, e, n = []) {
1602
+ const o = qt(), r = new Map(t.map((i) => [i.id, i])), s = new Map(n.map((i) => [i.id, i])), u = t.map((i) => ({
1603
1603
  id: i.id,
1604
1604
  levelId: i.levelId,
1605
1605
  x: i.x,
@@ -1610,35 +1610,35 @@ function vn(t, e, n = []) {
1610
1610
  }));
1611
1611
  for (const i of u)
1612
1612
  o.addNode(i.id, i);
1613
- const c = [];
1613
+ const a = [];
1614
1614
  for (const i of e) {
1615
- const h = r.get(i.fromAnchorId), p = r.get(i.toAnchorId);
1616
- if (!h || !p) continue;
1617
- let a = i.weight;
1618
- a == null && (a = F(h, p), h.levelId !== p.levelId && (a += ht));
1619
- let m = i.accessible;
1615
+ const h = r.get(i.fromAnchorId), m = r.get(i.toAnchorId);
1616
+ if (!h || !m) continue;
1617
+ let c = i.weight;
1618
+ c == null && (c = F(h, m), h.levelId !== m.levelId && (c += ht));
1619
+ let x = i.accessible;
1620
1620
  if (i.kind === "connector" && h.connectorId != null) {
1621
1621
  const d = s.get(h.connectorId);
1622
- d && (m = d.accessible);
1622
+ d && (x = d.accessible);
1623
1623
  }
1624
1624
  const l = {
1625
1625
  id: i.id,
1626
1626
  from: i.fromAnchorId,
1627
1627
  to: i.toAnchorId,
1628
- weight: a,
1628
+ weight: c,
1629
1629
  directed: i.directed,
1630
- accessible: m,
1630
+ accessible: x,
1631
1631
  kind: i.kind
1632
1632
  };
1633
- c.push(l), o.addLink(i.fromAnchorId, i.toAnchorId, l), i.directed || o.addLink(i.toAnchorId, i.fromAnchorId, l);
1633
+ a.push(l), o.addLink(i.fromAnchorId, i.toAnchorId, l), i.directed || o.addLink(i.toAnchorId, i.fromAnchorId, l);
1634
1634
  }
1635
- return { graph: o, nodes: u, edges: c, anchorById: r };
1635
+ return { graph: o, nodes: u, edges: a, anchorById: r };
1636
1636
  }
1637
- function On(t, e, n, o = {}) {
1637
+ function vn(t, e, n, o = {}) {
1638
1638
  const { graph: r, anchorById: s } = t;
1639
1639
  if (!s.has(e) || !s.has(n))
1640
1640
  return null;
1641
- const c = jt.nba(r, {
1641
+ const a = Qt.nba(r, {
1642
1642
  oriented: !0,
1643
1643
  distance(l, d, f) {
1644
1644
  const y = f.data;
@@ -1647,50 +1647,50 @@ function On(t, e, n, o = {}) {
1647
1647
  heuristic(l, d) {
1648
1648
  const f = s.get(l.id), y = s.get(d.id);
1649
1649
  if (!f || !y) return 0;
1650
- let g = F(f, y);
1651
- return f.levelId !== y.levelId && (g += ht), g;
1650
+ let b = F(f, y);
1651
+ return f.levelId !== y.levelId && (b += ht), b;
1652
1652
  }
1653
1653
  }).find(e, n);
1654
- if (!c || c.length === 0) return null;
1655
- const h = c.reverse().map((l) => l.id), p = [], a = [];
1656
- let m = 0;
1654
+ if (!a || a.length === 0) return null;
1655
+ const h = a.reverse().map((l) => l.id), m = [], c = [];
1656
+ let x = 0;
1657
1657
  for (let l = 0; l < h.length; l++) {
1658
1658
  const d = s.get(h[l]);
1659
- if (p.push({ x: d.x, y: d.y, levelId: d.levelId }), l > 0) {
1659
+ if (m.push({ x: d.x, y: d.y, levelId: d.levelId }), l > 0) {
1660
1660
  const f = s.get(h[l - 1]);
1661
- m += F(f, d), f.levelId !== d.levelId && (m += ht, a.push({
1661
+ x += F(f, d), f.levelId !== d.levelId && (x += ht, c.push({
1662
1662
  fromLevelId: f.levelId,
1663
1663
  toLevelId: d.levelId,
1664
1664
  connectorId: d.connectorId ?? f.connectorId
1665
1665
  }));
1666
1666
  }
1667
1667
  }
1668
- return { anchorIds: h, points: p, totalWeight: m, levelChanges: a };
1668
+ return { anchorIds: h, points: m, totalWeight: x, levelChanges: c };
1669
1669
  }
1670
- function Yo(t, e, n, o = {}) {
1670
+ function Go(t, e, n, o = {}) {
1671
1671
  let r = null;
1672
1672
  for (const s of n) {
1673
- const u = On(t, e, s, o);
1673
+ const u = vn(t, e, s, o);
1674
1674
  u && (!r || u.totalWeight < r.totalWeight) && (r = u);
1675
1675
  }
1676
1676
  return r;
1677
1677
  }
1678
- function Do(t) {
1679
- const e = fe(t.theme), n = new Map(
1678
+ function Wo(t) {
1679
+ const e = he(t.theme), n = new Map(
1680
1680
  t.assignments.map((i) => [i.shapeId, i])
1681
1681
  ), o = new Map(
1682
1682
  (t.retailers ?? []).map((i) => [i.id, i])
1683
1683
  ), r = t.resolveSvgUrl ?? ((i) => i), s = t.levels.filter((i) => i.isActive).sort((i, h) => i.ordering - h.ordering).map((i) => {
1684
- const h = t.shapes.filter((a) => a.levelId === i.id).map((a) => {
1685
- const m = Gt(a.geometry), l = n.get(a.id) ?? null, d = (l == null ? void 0 : l.retailerId) != null ? o.get(l.retailerId) ?? null : null, f = d && !t.persistMediaKeys ? { ...d, logoKey: null } : d;
1684
+ const h = t.shapes.filter((c) => c.levelId === i.id).map((c) => {
1685
+ const x = Gt(c.geometry), l = n.get(c.id) ?? null, d = (l == null ? void 0 : l.retailerId) != null ? o.get(l.retailerId) ?? null : null, f = d && !t.persistMediaKeys ? { ...d, logoKey: null } : d;
1686
1686
  return {
1687
- ...a,
1688
- geometry: m,
1689
- bbox: m === a.geometry ? a.bbox : gt(m),
1687
+ ...c,
1688
+ geometry: x,
1689
+ bbox: x === c.geometry ? c.bbox : bt(x),
1690
1690
  assignment: l,
1691
- label: Kt(a, l, f)
1691
+ label: Bt(c, l, f)
1692
1692
  };
1693
- }), p = t.anchors.filter((a) => a.levelId === i.id);
1693
+ }), m = t.anchors.filter((c) => c.levelId === i.id);
1694
1694
  return {
1695
1695
  id: i.id,
1696
1696
  buildingId: i.buildingId,
@@ -1702,9 +1702,9 @@ function Do(t) {
1702
1702
  viewbox: i.sourceViewbox,
1703
1703
  transform: i.transform,
1704
1704
  shapes: h,
1705
- anchors: p
1705
+ anchors: m
1706
1706
  };
1707
- }), { nodes: u, edges: c } = vn(
1707
+ }), { nodes: u, edges: a } = Ln(
1708
1708
  t.anchors,
1709
1709
  t.edges,
1710
1710
  t.connectors
@@ -1723,14 +1723,14 @@ function Do(t) {
1723
1723
  connectors: t.connectors,
1724
1724
  amenities: t.amenities.filter((i) => i.isActive),
1725
1725
  retailers: (t.retailers ?? []).map(
1726
- (i) => Rn(i, !!t.persistMediaKeys)
1726
+ (i) => Mn(i, !!t.persistMediaKeys)
1727
1727
  ),
1728
- graph: { nodes: u, edges: c },
1728
+ graph: { nodes: u, edges: a },
1729
1729
  responsiveOverrides: t.responsiveOverrides,
1730
1730
  publishedAt: t.publishedAt ?? (/* @__PURE__ */ new Date()).toISOString()
1731
1731
  };
1732
1732
  }
1733
- function Rn(t, e) {
1733
+ function Mn(t, e) {
1734
1734
  return {
1735
1735
  id: t.id,
1736
1736
  name: t.name,
@@ -1742,16 +1742,16 @@ function Rn(t, e) {
1742
1742
  globalRetailerId: t.globalRetailerId ?? null
1743
1743
  };
1744
1744
  }
1745
- function Ko(t) {
1745
+ function Vo(t) {
1746
1746
  let e = !1;
1747
1747
  const n = t.levels.map((o) => {
1748
1748
  let r = !1;
1749
1749
  const s = o.shapes.map((u) => {
1750
- const c = Gt(u.geometry), i = Kt(u, u.assignment), h = c !== u.geometry, p = i !== u.label;
1751
- return !h && !p ? u : (r = !0, {
1750
+ const a = Gt(u.geometry), i = Bt(u, u.assignment), h = a !== u.geometry, m = i !== u.label;
1751
+ return !h && !m ? u : (r = !0, {
1752
1752
  ...u,
1753
- geometry: c,
1754
- bbox: h ? gt(c) : u.bbox,
1753
+ geometry: a,
1754
+ bbox: h ? bt(a) : u.bbox,
1755
1755
  label: i
1756
1756
  });
1757
1757
  });
@@ -1759,7 +1759,115 @@ function Ko(t) {
1759
1759
  });
1760
1760
  return e ? { ...t, levels: n } : t;
1761
1761
  }
1762
- const Mn = [
1762
+ const Uo = [
1763
+ "admin_portal",
1764
+ "desktop",
1765
+ "tablet",
1766
+ "mobile",
1767
+ "display_app"
1768
+ ], Ho = [
1769
+ { id: "admin_portal", label: "Admin Portal" },
1770
+ { id: "desktop", label: "Desktop" },
1771
+ { id: "tablet", label: "Tablet" },
1772
+ { id: "mobile", label: "Mobile" },
1773
+ { id: "display_app", label: "Kiosk App" }
1774
+ ], Nn = 1024, Tn = 767;
1775
+ function Zo(t) {
1776
+ return t === "admin_portal" || t === "display_app" || t === "desktop" || t === "tablet" || t === "mobile";
1777
+ }
1778
+ function jo(t, e) {
1779
+ return t === "PORTAL_ASSIGN" ? "admin_portal" : t === "DISPLAY_APP" ? "display_app" : e > Nn ? "desktop" : e > Tn ? "tablet" : "mobile";
1780
+ }
1781
+ function qo(t, e) {
1782
+ return `${t ?? "none"}:${e}`;
1783
+ }
1784
+ function vt(t) {
1785
+ return t ? t.x === 0 && t.y === 0 && t.z === 0 : !0;
1786
+ }
1787
+ function Zt(t) {
1788
+ var n;
1789
+ if (!t) return !0;
1790
+ const e = (n = t.camera) == null ? void 0 : n.zoom;
1791
+ return typeof e == "number" && Number.isFinite(e) && e > 0 ? !1 : vt(t.camera) && vt(t.controls);
1792
+ }
1793
+ function Qo(t, e, n) {
1794
+ if (!(t != null && t.length) || e == null) return null;
1795
+ const o = t.find(
1796
+ (r) => r.levelId === e && r.device === n
1797
+ );
1798
+ return !o || Zt(o) ? null : o;
1799
+ }
1800
+ function Jo(t) {
1801
+ const e = t.camera.zoom;
1802
+ return {
1803
+ zoom: typeof e == "number" && Number.isFinite(e) && e > 0 ? e : 0,
1804
+ position: [t.camera.x, t.camera.y, t.camera.z],
1805
+ target: [t.controls.x, t.controls.y, t.controls.z]
1806
+ };
1807
+ }
1808
+ function tr(t) {
1809
+ return {
1810
+ camera: {
1811
+ x: t.position[0],
1812
+ y: t.position[1],
1813
+ z: t.position[2],
1814
+ zoom: t.zoom
1815
+ },
1816
+ controls: {
1817
+ x: t.target[0],
1818
+ y: t.target[1],
1819
+ z: t.target[2]
1820
+ }
1821
+ };
1822
+ }
1823
+ const wn = {
1824
+ x: 0,
1825
+ y: 0,
1826
+ z: 0,
1827
+ zoom: 0
1828
+ }, Pn = { x: 0, y: 0, z: 0 };
1829
+ function er(t, e) {
1830
+ return {
1831
+ levelId: t,
1832
+ device: e,
1833
+ camera: { ...wn },
1834
+ controls: { ...Pn }
1835
+ };
1836
+ }
1837
+ function Fn(t, e) {
1838
+ const n = {
1839
+ id: e.id ?? 0,
1840
+ mapId: e.mapId ?? 0,
1841
+ levelId: e.levelId,
1842
+ device: e.device,
1843
+ camera: e.camera,
1844
+ controls: e.controls
1845
+ }, o = t.findIndex(
1846
+ (s) => s.levelId === e.levelId && s.device === e.device
1847
+ );
1848
+ if (o < 0) return [...t, n];
1849
+ const r = t.slice();
1850
+ return r[o] = {
1851
+ ...t[o],
1852
+ ...n,
1853
+ id: e.id ?? t[o].id,
1854
+ mapId: e.mapId ?? t[o].mapId
1855
+ }, r;
1856
+ }
1857
+ function nr(t, e) {
1858
+ let n = t;
1859
+ for (const o of e) {
1860
+ if (Zt(o)) {
1861
+ n = n.filter(
1862
+ (r) => !(r.levelId === o.levelId && r.device === o.device)
1863
+ );
1864
+ continue;
1865
+ }
1866
+ n = Fn(n, o);
1867
+ }
1868
+ return n;
1869
+ }
1870
+ const Dn = [
1763
1871
  "floorplate",
1764
1872
  "walkable",
1765
1873
  "decor",
@@ -1768,23 +1876,23 @@ const Mn = [
1768
1876
  "water",
1769
1877
  "parking_zone"
1770
1878
  ];
1771
- function En(t) {
1879
+ function Yn(t) {
1772
1880
  return t === "void";
1773
1881
  }
1774
- function Bo(t) {
1775
- return Mn.includes(t);
1882
+ function or(t) {
1883
+ return Dn.includes(t);
1776
1884
  }
1777
- function Ht(t) {
1778
- return En(t.kind) && !t.orphanedAt;
1885
+ function jt(t) {
1886
+ return Yn(t.kind) && !t.orphanedAt;
1779
1887
  }
1780
- function Nn(t) {
1781
- return (t.shapes ?? []).some(Ht);
1888
+ function Kn(t) {
1889
+ return (t.shapes ?? []).some(jt);
1782
1890
  }
1783
- function Xo(t) {
1891
+ function rr(t) {
1784
1892
  var n;
1785
1893
  const e = [];
1786
1894
  for (const o of t.shapes ?? [])
1787
- if (Ht(o))
1895
+ if (jt(o))
1788
1896
  for (const r of ((n = o.geometry) == null ? void 0 : n.polygons) ?? [])
1789
1897
  r.length >= 3 && e.push(r);
1790
1898
  return e;
@@ -1795,77 +1903,77 @@ function Mt(t) {
1795
1903
  e += t[o].x * t[n].y - t[n].x * t[o].y;
1796
1904
  return e / 2;
1797
1905
  }
1798
- function Tn(t) {
1906
+ function Bn(t) {
1799
1907
  return t.slice().reverse();
1800
1908
  }
1801
- function wn(t, e) {
1909
+ function zn(t, e) {
1802
1910
  const n = Mt(t), o = Mt(e);
1803
- return n === 0 || o === 0 ? e : Math.sign(n) === Math.sign(o) ? Tn(e) : e;
1911
+ return n === 0 || o === 0 ? e : Math.sign(n) === Math.sign(o) ? Bn(e) : e;
1804
1912
  }
1805
- function Et(t) {
1913
+ function Nt(t) {
1806
1914
  let e = 1 / 0, n = 1 / 0, o = -1 / 0, r = -1 / 0;
1807
1915
  for (const s of t)
1808
1916
  s.x < e && (e = s.x), s.y < n && (n = s.y), s.x > o && (o = s.x), s.y > r && (r = s.y);
1809
1917
  return { minX: e, minY: n, maxX: o, maxY: r };
1810
1918
  }
1811
- function Pn(t, e) {
1812
- const n = Et(t), o = Et(e);
1919
+ function $n(t, e) {
1920
+ const n = Nt(t), o = Nt(e);
1813
1921
  return n.minX <= o.maxX && n.maxX >= o.minX && n.minY <= o.maxY && n.maxY >= o.minY;
1814
1922
  }
1815
- function $o(t, e) {
1816
- return e.filter((n) => n.length >= 3 && Pn(t, n)).map((n) => wn(t, n));
1923
+ function ir(t, e) {
1924
+ return e.filter((n) => n.length >= 3 && $n(t, n)).map((n) => zn(t, n));
1817
1925
  }
1818
- const Go = "#e8eef4", Wo = "#64748b", zo = "#475569";
1819
- function Fn(t, e) {
1926
+ const sr = "#e8eef4", ar = "#64748b", cr = "#475569";
1927
+ function Xn(t, e) {
1820
1928
  return t.ordering - e.ordering || t.levelIndex - e.levelIndex;
1821
1929
  }
1822
1930
  function et(t) {
1823
1931
  return t.kind === "outdoor";
1824
1932
  }
1825
- function Yn(t, e) {
1933
+ function Gn(t, e) {
1826
1934
  const n = t.filter(et), o = e == null ? null : t.find((r) => r.id === e) ?? null;
1827
1935
  return !o || et(o) || n.some((r) => r.id === o.id) ? n : [...n, o];
1828
1936
  }
1829
- function Dn(t, e) {
1937
+ function Wn(t, e) {
1830
1938
  if (e == null) return [];
1831
1939
  const n = rt(t), o = n.findIndex((u) => u.id === e);
1832
1940
  if (o < 0) return [];
1833
1941
  const r = [];
1834
1942
  let s = n[o];
1835
- for (let u = o; u < n.length - 1 && Nn(s); u++) {
1836
- const c = n[u + 1];
1837
- if (!c) break;
1838
- r.unshift(c), s = c;
1943
+ for (let u = o; u < n.length - 1 && Kn(s); u++) {
1944
+ const a = n[u + 1];
1945
+ if (!a) break;
1946
+ r.unshift(a), s = a;
1839
1947
  }
1840
1948
  return r;
1841
1949
  }
1842
- function Uo(t, e) {
1843
- return Dn(t, e).at(-1) ?? null;
1950
+ function lr(t, e) {
1951
+ return Wn(t, e).at(-1) ?? null;
1844
1952
  }
1845
- function Vo(t, e, n) {
1953
+ function ur(t, e, n) {
1846
1954
  const o = t.find((s) => s.id === n);
1847
1955
  if (!o || !et(o)) return n;
1848
1956
  const r = e == null ? null : t.find((s) => s.id === e) ?? null;
1849
- return r && !et(r) ? r.id : Kn(t) ?? n;
1957
+ return r && !et(r) ? r.id : Vn(t) ?? n;
1850
1958
  }
1851
1959
  function rt(t) {
1852
- return t.filter((e) => e.kind === "floor").slice().sort(Fn);
1960
+ return t.filter((e) => e.kind === "floor").slice().sort(Xn);
1853
1961
  }
1854
- function Ho(t) {
1962
+ function fr(t) {
1855
1963
  return rt(t);
1856
1964
  }
1857
- function Zo(t) {
1965
+ function dr(t) {
1858
1966
  return rt(t).length > 1;
1859
1967
  }
1860
- function jo(t) {
1968
+ function hr(t) {
1861
1969
  return t.some((e) => e.kind === "floor");
1862
1970
  }
1863
- const qo = "This map doesn’t have any floors yet.";
1864
- function Kn(t) {
1971
+ const yr = "This map doesn’t have any floors yet.";
1972
+ function Vn(t) {
1865
1973
  var e, n;
1866
1974
  return ((e = rt(t).at(-1)) == null ? void 0 : e.id) ?? ((n = t[0]) == null ? void 0 : n.id) ?? null;
1867
1975
  }
1868
- function Nt(t) {
1976
+ function Tt(t) {
1869
1977
  return {
1870
1978
  minX: t.x,
1871
1979
  minY: t.y,
@@ -1876,20 +1984,20 @@ function Nt(t) {
1876
1984
  size: Math.max(t.width, t.height, 100)
1877
1985
  };
1878
1986
  }
1879
- function Bn(t, e) {
1880
- const n = e.scale || 1, o = (e.rotate || 0) * Math.PI / 180, r = Math.cos(o), s = Math.sin(o), u = t.x * n, c = t.y * n;
1987
+ function Un(t, e) {
1988
+ const n = e.scale || 1, o = (e.rotate || 0) * Math.PI / 180, r = Math.cos(o), s = Math.sin(o), u = t.x * n, a = t.y * n;
1881
1989
  return {
1882
- x: u * r - c * s + (e.translateX || 0),
1883
- y: u * s + c * r + (e.translateY || 0)
1990
+ x: u * r - a * s + (e.translateX || 0),
1991
+ y: u * s + a * r + (e.translateY || 0)
1884
1992
  };
1885
1993
  }
1886
- function Xn(t, e) {
1994
+ function Hn(t, e) {
1887
1995
  const n = [
1888
1996
  { x: t.minX, y: t.minY },
1889
1997
  { x: t.maxX, y: t.minY },
1890
1998
  { x: t.minX, y: t.maxY },
1891
1999
  { x: t.maxX, y: t.maxY }
1892
- ].map((c) => e ? Bn(c, e) : c), o = Math.min(
2000
+ ].map((a) => e ? Un(a, e) : a), o = Math.min(
1893
2001
  n[0].x,
1894
2002
  n[1].x,
1895
2003
  n[2].x,
@@ -1920,7 +2028,7 @@ function Xn(t, e) {
1920
2028
  size: Math.max(s - o, u - r, 100)
1921
2029
  };
1922
2030
  }
1923
- function Tt(t, e) {
2031
+ function wt(t, e) {
1924
2032
  const n = Math.min(t.minX, e.minX), o = Math.min(t.minY, e.minY), r = Math.max(t.maxX, e.maxX), s = Math.max(t.maxY, e.maxY);
1925
2033
  return {
1926
2034
  minX: n,
@@ -1932,21 +2040,21 @@ function Tt(t, e) {
1932
2040
  size: Math.max(r - n, s - o, 100)
1933
2041
  };
1934
2042
  }
1935
- function Qo(t, e, n) {
1936
- let o = n ? Nt(n) : null;
1937
- for (const r of Yn(t, e)) {
2043
+ function pr(t, e, n) {
2044
+ let o = n ? Tt(n) : null;
2045
+ for (const r of Gn(t, e)) {
1938
2046
  if (r.viewbox) {
1939
- const s = Nt(r.viewbox);
1940
- o = o ? Tt(o, s) : s;
2047
+ const s = Tt(r.viewbox);
2048
+ o = o ? wt(o, s) : s;
1941
2049
  }
1942
2050
  for (const s of r.shapes) {
1943
- const u = Xn(s.bbox);
1944
- o = o ? Tt(o, u) : u;
2051
+ const u = Hn(s.bbox);
2052
+ o = o ? wt(o, u) : u;
1945
2053
  }
1946
2054
  }
1947
2055
  return o ?? { minX: 0, minY: 0, maxX: 500, maxY: 500, cx: 250, cy: 250, size: 500 };
1948
2056
  }
1949
- function Jo(t, e) {
2057
+ function mr(t, e) {
1950
2058
  if (!t && !e) return { x: 0, y: 0, width: 1e3, height: 800 };
1951
2059
  if (!t) return e;
1952
2060
  if (!e) return t;
@@ -1954,165 +2062,182 @@ function Jo(t, e) {
1954
2062
  return { x: n, y: o, width: r - n, height: s - o };
1955
2063
  }
1956
2064
  export {
1957
- Do as $,
1958
- ge as A,
1959
- fo as B,
1960
- pe as C,
2065
+ Xe as $,
2066
+ Ie as A,
2067
+ St as B,
2068
+ be as C,
1961
2069
  nt as D,
1962
- he as E,
2070
+ wn as E,
1963
2071
  ht as F,
1964
- lo as G,
1965
- kt as H,
2072
+ Se as G,
2073
+ Ee as H,
1966
2074
  yt as I,
1967
- Be as J,
1968
- Ro as K,
1969
- Zn as L,
1970
- qo as M,
1971
- Qo as N,
1972
- Go as O,
1973
- Ze as P,
1974
- ho as Q,
1975
- me as R,
1976
- Mn as S,
1977
- qt as T,
1978
- Xe as U,
1979
- Hn as V,
1980
- wt as W,
1981
- Yt as X,
1982
- yn as Y,
1983
- Jn as Z,
1984
- Fn as _,
1985
- Un as a,
1986
- qe as a$,
1987
- vn as a0,
1988
- uo as a1,
1989
- Dt as a2,
1990
- to as a3,
1991
- Kn as a4,
1992
- Po as a5,
1993
- F as a6,
1994
- eo as a7,
1995
- Tt as a8,
1996
- Fo as a9,
1997
- xt as aA,
1998
- Bo as aB,
1999
- Ut as aC,
2000
- pt as aD,
2001
- Ee as aE,
2002
- En as aF,
2003
- ao as aG,
2004
- qn as aH,
2005
- Qn as aI,
2006
- Nn as aJ,
2007
- xo as aK,
2008
- at as aL,
2009
- fe as aM,
2010
- H as aN,
2011
- Eo as aO,
2012
- Uo as aP,
2013
- Gt as aQ,
2014
- jn as aR,
2015
- ot as aS,
2016
- Ft as aT,
2017
- Ko as aU,
2018
- Co as aV,
2019
- Wn as aW,
2020
- so as aX,
2021
- no as aY,
2022
- In as aZ,
2023
- Lt as a_,
2024
- Yo as aa,
2025
- On as ab,
2026
- Ne as ac,
2027
- go as ad,
2028
- Oo as ae,
2029
- Ho as af,
2030
- rt as ag,
2031
- So as ah,
2032
- gt as ai,
2033
- je as aj,
2034
- jo as ak,
2035
- wn as al,
2036
- $o as am,
2037
- wo as an,
2038
- nn as ao,
2039
- Ht as ap,
2040
- Ae as aq,
2041
- Vn as ar,
2042
- He as as,
2043
- rn as at,
2044
- zt as au,
2045
- Vt as av,
2046
- mo as aw,
2047
- bt as ax,
2048
- et as ay,
2049
- Wt as az,
2075
+ D as J,
2076
+ zt as K,
2077
+ no as L,
2078
+ yr as M,
2079
+ Le as N,
2080
+ sr as O,
2081
+ go as P,
2082
+ xo as Q,
2083
+ Nn as R,
2084
+ Dn as S,
2085
+ Jt as T,
2086
+ kt as U,
2087
+ $e as V,
2088
+ Pt as W,
2089
+ Fo as X,
2090
+ pr as Y,
2091
+ qe as Z,
2092
+ Io as _,
2093
+ Jn as a,
2094
+ Yo as a$,
2095
+ eo as a0,
2096
+ Yt as a1,
2097
+ mn as a2,
2098
+ so as a3,
2099
+ Xn as a4,
2100
+ Wo as a5,
2101
+ Ln as a6,
2102
+ bo as a7,
2103
+ Kt as a8,
2104
+ ao as a9,
2105
+ Zo as aA,
2106
+ Zt as aB,
2107
+ vt as aC,
2108
+ to as aD,
2109
+ je as aE,
2110
+ an as aF,
2111
+ Vt as aG,
2112
+ Ht as aH,
2113
+ Ao as aI,
2114
+ gt as aJ,
2115
+ et as aK,
2116
+ Wt as aL,
2117
+ pt as aM,
2118
+ or as aN,
2119
+ Ut as aO,
2120
+ mt as aP,
2121
+ Te as aQ,
2122
+ Yn as aR,
2123
+ mo as aS,
2124
+ ro as aT,
2125
+ io as aU,
2126
+ Kn as aV,
2127
+ _o as aW,
2128
+ ct as aX,
2129
+ nr as aY,
2130
+ he as aZ,
2131
+ H as a_,
2132
+ Vn as aa,
2133
+ jo as ab,
2134
+ $o as ac,
2135
+ F as ad,
2136
+ er as ae,
2137
+ co as af,
2138
+ wt as ag,
2139
+ Xo as ah,
2140
+ Go as ai,
2141
+ vn as aj,
2142
+ we as ak,
2143
+ Qo as al,
2144
+ Co as am,
2145
+ Po as an,
2146
+ fr as ao,
2147
+ rt as ap,
2148
+ Mo as aq,
2149
+ bt as ar,
2150
+ Qe as as,
2151
+ hr as at,
2152
+ zn as au,
2153
+ ir as av,
2154
+ zo as aw,
2155
+ rn as ax,
2156
+ jt as ay,
2157
+ Ce as az,
2050
2158
  xe as b,
2051
- $t as b0,
2052
- $e as b1,
2053
- Mo as b2,
2054
- Et as b3,
2055
- Mt as b4,
2056
- Pn as b5,
2057
- Ge as b6,
2058
- Kt as b7,
2059
- St as b8,
2060
- vo as b9,
2061
- Xo as bA,
2062
- bo as bB,
2063
- Io as bC,
2064
- _o as bD,
2065
- Ao as bE,
2066
- ko as bF,
2067
- mt as ba,
2068
- ne as bb,
2069
- ro as bc,
2070
- io as bd,
2071
- oo as be,
2072
- Dn as bf,
2073
- Tn as bg,
2074
- Xn as bh,
2075
- Ke as bi,
2076
- Zo as bj,
2077
- No as bk,
2078
- z as bl,
2079
- te as bm,
2080
- re as bn,
2081
- Xt as bo,
2082
- ln as bp,
2083
- Jo as bq,
2084
- Ln as br,
2085
- Nt as bs,
2086
- po as bt,
2087
- Me as bu,
2088
- Fe as bv,
2089
- Vo as bw,
2090
- Yn as bx,
2091
- De as by,
2092
- Lo as bz,
2093
- U as c,
2094
- zn as d,
2095
- hn as e,
2096
- dn as f,
2097
- de as g,
2098
- ye as h,
2099
- zo as i,
2100
- Wo as j,
2101
- Qt as k,
2102
- Pt as l,
2103
- Jt as m,
2104
- co as n,
2105
- To as o,
2106
- yo as p,
2107
- Bn as q,
2108
- on as r,
2109
- ze as s,
2110
- _t as t,
2111
- At as u,
2112
- ke as v,
2113
- Le as w,
2114
- Y as x,
2115
- Bt as y,
2116
- ve as z
2159
+ lr as b0,
2160
+ Gt as b1,
2161
+ oo as b2,
2162
+ ot as b3,
2163
+ Dt as b4,
2164
+ Vo as b5,
2165
+ No as b6,
2166
+ qn as b7,
2167
+ Jo as b8,
2168
+ yo as b9,
2169
+ Ko as bA,
2170
+ W as bB,
2171
+ ne as bC,
2172
+ se as bD,
2173
+ $t as bE,
2174
+ fn as bF,
2175
+ mr as bG,
2176
+ En as bH,
2177
+ Fn as bI,
2178
+ Tt as bJ,
2179
+ So as bK,
2180
+ Ne as bL,
2181
+ Ye as bM,
2182
+ ur as bN,
2183
+ Gn as bO,
2184
+ Be as bP,
2185
+ To as bQ,
2186
+ rr as bR,
2187
+ Oo as bS,
2188
+ Ro as bT,
2189
+ Lo as bU,
2190
+ vo as bV,
2191
+ Eo as bW,
2192
+ lo as ba,
2193
+ _n as bb,
2194
+ Ot as bc,
2195
+ Je as bd,
2196
+ Xt as be,
2197
+ Ge as bf,
2198
+ Do as bg,
2199
+ Nt as bh,
2200
+ Mt as bi,
2201
+ $n as bj,
2202
+ tr as bk,
2203
+ We as bl,
2204
+ Bt as bm,
2205
+ At as bn,
2206
+ wo as bo,
2207
+ xt as bp,
2208
+ re as bq,
2209
+ fo as br,
2210
+ ho as bs,
2211
+ qo as bt,
2212
+ uo as bu,
2213
+ Wn as bv,
2214
+ Bn as bw,
2215
+ Hn as bx,
2216
+ ze as by,
2217
+ dr as bz,
2218
+ V as c,
2219
+ Qn as d,
2220
+ Pn as e,
2221
+ pe as f,
2222
+ pn as g,
2223
+ yn as h,
2224
+ ye as i,
2225
+ me as j,
2226
+ cr as k,
2227
+ ar as l,
2228
+ Uo as m,
2229
+ Ho as n,
2230
+ Tn as o,
2231
+ ge as p,
2232
+ te as q,
2233
+ Ft as r,
2234
+ ee as s,
2235
+ po as t,
2236
+ Bo as u,
2237
+ ko as v,
2238
+ Un as w,
2239
+ sn as x,
2240
+ Ue as y,
2241
+ _t as z
2117
2242
  };
2118
2243
  //# sourceMappingURL=stacking.js.map