mirage-engine 0.3.11 → 0.3.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,31 +1,31 @@
1
- var _e = Object.defineProperty, Fe = Object.defineProperties;
1
+ var Oe = Object.defineProperty, _e = Object.defineProperties;
2
2
  var Ne = Object.getOwnPropertyDescriptors;
3
3
  var we = Object.getOwnPropertySymbols;
4
4
  var ze = Object.prototype.hasOwnProperty, Xe = Object.prototype.propertyIsEnumerable;
5
- var me = (s, e, t) => e in s ? _e(s, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[e] = t, J = (s, e) => {
5
+ var me = (s, e, t) => e in s ? Oe(s, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[e] = t, j = (s, e) => {
6
6
  for (var t in e || (e = {}))
7
7
  ze.call(e, t) && me(s, t, e[t]);
8
8
  if (we)
9
9
  for (var t of we(e))
10
10
  Xe.call(e, t) && me(s, t, e[t]);
11
11
  return s;
12
- }, xe = (s, e) => Fe(s, Ne(e));
12
+ }, xe = (s, e) => _e(s, Ne(e));
13
13
  var u = (s, e, t) => (me(s, typeof e != "symbol" ? e + "" : e, t), t);
14
14
  var Ee = (s, e, t) => new Promise((r, i) => {
15
- var c = (a) => {
15
+ var l = (o) => {
16
16
  try {
17
- o(t.next(a));
18
- } catch (l) {
19
- i(l);
17
+ a(t.next(o));
18
+ } catch (c) {
19
+ i(c);
20
20
  }
21
- }, n = (a) => {
21
+ }, n = (o) => {
22
22
  try {
23
- o(t.throw(a));
24
- } catch (l) {
25
- i(l);
23
+ a(t.throw(o));
24
+ } catch (c) {
25
+ i(c);
26
26
  }
27
- }, o = (a) => a.done ? r(a.value) : Promise.resolve(a.value).then(c, n);
28
- o((t = t.apply(s, e)).next());
27
+ }, a = (o) => o.done ? r(o.value) : Promise.resolve(o.value).then(l, n);
28
+ a((t = t.apply(s, e)).next());
29
29
  });
30
30
  import * as y from "three";
31
31
  const Ae = {
@@ -34,7 +34,7 @@ const Ae = {
34
34
  INCLUDE_SELF: "include-self",
35
35
  EXCLUDE_SELF: "exclude-self",
36
36
  END: "end"
37
- }, K = {
37
+ }, q = {
38
38
  NAME: "data-mirage-dom",
39
39
  KEY: "mirageDom",
40
40
  VALUES: {
@@ -54,16 +54,16 @@ const Ae = {
54
54
  CAPTURE_8: "8",
55
55
  CAPTURE_9: "9",
56
56
  CAPTURE_10: "10"
57
- }, _ = {
57
+ }, O = {
58
58
  NAME: "data-mirage-travel",
59
59
  KEY: "mirageTravel",
60
60
  VALUES: Ce,
61
61
  MAX_LAYERS: Object.keys(Ce).length - 1
62
- }, W = {
62
+ }, V = {
63
63
  NAME: "data-mirage-filter",
64
64
  KEY: "mirageFilter",
65
65
  VALUES: Ae
66
- }, G = {
66
+ }, P = {
67
67
  NAME: "data-mirage-select",
68
68
  KEY: "mirageSelect",
69
69
  VALUES: Ae
@@ -76,7 +76,7 @@ const Ae = {
76
76
  VALUES: {
77
77
  FRONT: "front"
78
78
  }
79
- }, de = 0, Q = 1, ce = 2, Ye = 4, ue = 8, ve = 16;
79
+ }, de = 0, K = 1, ce = 2, Ye = 4, ue = 8, ve = 16;
80
80
  function We(s) {
81
81
  const e = s.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)/);
82
82
  return e ? {
@@ -120,7 +120,7 @@ class De {
120
120
  u(this, "onScrollChange", /* @__PURE__ */ new Set());
121
121
  u(this, "onRender", /* @__PURE__ */ new Set());
122
122
  u(this, "onTransitionFinished", (e) => {
123
- this.target.contains(e.target) && this.mutationTimer === null && (this.cssTimer && clearTimeout(this.cssTimer), this.pendingStyles.size == 0 && (this.pendingMask |= Q | ce, this.cssTimer = window.setTimeout(() => {
123
+ this.target.contains(e.target) && this.mutationTimer === null && (this.cssTimer && clearTimeout(this.cssTimer), this.pendingStyles.size == 0 && (this.pendingMask |= K | ce, this.cssTimer = window.setTimeout(() => {
124
124
  this.isDomDirty = !0, this.cssTimer = null;
125
125
  }, 50)));
126
126
  });
@@ -139,35 +139,35 @@ class De {
139
139
  this.onBeforeRender.forEach((r) => r()), this.isDomDirty && (this.isDomDirty = !1, this.onLayoutChange.forEach((r) => r(this.pendingMask, this.pendingDeletions)), this.pendingDeletions.clear(), this.pendingMask = de);
140
140
  const e = window.scrollX, t = window.scrollY;
141
141
  (e !== this.lastScrollX || t !== this.lastScrollY) && (this.onScrollChange.forEach((r) => r(e, t)), this.lastScrollX = e, this.lastScrollY = t, this.scrollTimer && clearTimeout(this.scrollTimer), this.scrollTimer = window.setTimeout(() => {
142
- this.pendingMask |= Q, this.isDomDirty = !0, this.scrollTimer = null;
142
+ this.pendingMask |= K, this.isDomDirty = !0, this.scrollTimer = null;
143
143
  }, 150)), this.pendingStyles.size > 0 && (this.onStyleChange.forEach((r) => r(this.pendingStyles)), this.pendingStyles.clear()), this.onRender.forEach((r) => r()), requestAnimationFrame(this.renderLoop);
144
144
  });
145
- var i, c;
145
+ var i, l;
146
146
  this.target = e;
147
147
  const r = (i = t.resizeDebounce) != null ? i : !0;
148
148
  r === !1 ? this.resizeConfig = { enabled: !1, delay: 0 } : r === !0 ? this.resizeConfig = { enabled: !0, delay: 150 } : this.resizeConfig = {
149
149
  enabled: !0,
150
- delay: (c = r.delay) != null ? c : 150,
150
+ delay: (l = r.delay) != null ? l : 150,
151
151
  onStart: r.onStart,
152
152
  onEnd: r.onEnd
153
153
  }, this.observer = new MutationObserver((n) => {
154
- let o = de;
155
- for (const a of n)
156
- if (a.type === "childList")
157
- o |= ue, a.removedNodes.length > 0 && a.removedNodes.forEach((l) => {
158
- l instanceof HTMLElement && this.pendingDeletions.add(l);
154
+ let a = de;
155
+ for (const o of n)
156
+ if (o.type === "childList")
157
+ a |= ue, o.removedNodes.length > 0 && o.removedNodes.forEach((c) => {
158
+ c instanceof HTMLElement && this.pendingDeletions.add(c);
159
159
  });
160
- else if (a.type === "attributes")
161
- if (a.attributeName === "style") {
162
- o |= Q | ce;
163
- const l = a.target, d = He(l.style);
164
- this.pendingStyles.set(l, d);
160
+ else if (o.type === "attributes")
161
+ if (o.attributeName === "style") {
162
+ a |= K | ce;
163
+ const c = o.target, d = He(c.style);
164
+ this.pendingStyles.set(c, d);
165
165
  } else
166
- a.attributeName === "class" ? o |= Q | ce : a.attributeName && a.attributeName.startsWith("data-") && (o |= Q | ce, a.attributeName.startsWith("data-mirage") && (o |= ue));
166
+ o.attributeName === "class" ? a |= K | ce : o.attributeName && o.attributeName.startsWith("data-") && (a |= K | ce, o.attributeName.startsWith("data-mirage") && (a |= ue));
167
167
  else
168
- a.type === "characterData" && (o |= ve | Q);
169
- if (o !== de) {
170
- if (this.pendingMask |= o, o & ue) {
168
+ o.type === "characterData" && (a |= ve | K);
169
+ if (a !== de) {
170
+ if (this.pendingMask |= a, a & ue) {
171
171
  this.clearTimers(), this.isDomDirty = !0;
172
172
  return;
173
173
  }
@@ -192,12 +192,12 @@ class De {
192
192
  this.mutationTimer && (clearTimeout(this.mutationTimer), this.mutationTimer = null), this.cssTimer && (clearTimeout(this.cssTimer), this.cssTimer = null), this.scrollTimer && (clearTimeout(this.scrollTimer), this.scrollTimer = null);
193
193
  }
194
194
  }
195
- const $ = 1, te = 2, U = {
195
+ const W = 1, te = 2, B = {
196
196
  BASE: 0,
197
197
  SELECTED: 1,
198
198
  getCaptureLayer: (s) => 31 - s,
199
199
  HIDDEN: 31
200
- }, Te = Object.values(W.VALUES);
200
+ }, Te = Object.values(V.VALUES);
201
201
  class ke {
202
202
  /**
203
203
  * Calculates or retrieves the exact alphabetic baseline (in pixels) for the given font.
@@ -215,13 +215,13 @@ class ke {
215
215
  return 0;
216
216
  const t = document.createElement("div"), r = document.createElement("span"), i = document.createElement("img");
217
217
  t.style.visibility = "hidden", t.style.position = "absolute", t.style.top = "0px", t.style.left = "0px", t.style.font = e, t.style.margin = "0", t.style.padding = "0", t.style.border = "none", r.style.margin = "0", r.style.padding = "0", r.style.border = "none", r.style.lineHeight = "normal", i.width = 1, i.height = 1, i.style.verticalAlign = "baseline", r.appendChild(document.createTextNode("Hidden Text")), t.appendChild(r), t.appendChild(i), document.body.appendChild(t);
218
- const c = i.offsetTop - r.offsetTop;
219
- return document.body.removeChild(t), c;
218
+ const l = i.offsetTop - r.offsetTop;
219
+ return document.body.removeChild(t), l;
220
220
  }
221
221
  }
222
222
  u(ke, "cache", /* @__PURE__ */ new Map());
223
223
  class Pe extends y.MeshBasicMaterial {
224
- constructor(t, r, i, c, n = 2) {
224
+ constructor(t, r, i, l, n = 2) {
225
225
  super({
226
226
  transparent: !0,
227
227
  side: y.FrontSide,
@@ -232,34 +232,34 @@ class Pe extends y.MeshBasicMaterial {
232
232
  u(this, "qualityFactor");
233
233
  if (this.canvas = document.createElement("canvas"), this.ctx = this.canvas.getContext("2d"), !this.ctx)
234
234
  throw new Error("[Mirage] Failed to create canvas context");
235
- this.qualityFactor = n, this.map = new y.CanvasTexture(this.canvas), this.map.colorSpace = y.LinearSRGBColorSpace, this.map.minFilter = y.LinearFilter, this.map.magFilter = y.LinearFilter, this.updateText(t, r, i, c);
235
+ this.qualityFactor = n, this.map = new y.CanvasTexture(this.canvas), this.map.colorSpace = y.LinearSRGBColorSpace, this.map.minFilter = y.LinearFilter, this.map.magFilter = y.LinearFilter, this.updateText(t, r, i, l);
236
236
  }
237
237
  wrapText(t, r) {
238
238
  const i = t.split(`
239
- `), c = [];
239
+ `), l = [];
240
240
  return i.forEach((n) => {
241
- const o = n.match(/[^\s\-]+\-?|\-|\s+/g) || [];
242
- if (o.length === 0) {
243
- c.push("");
241
+ const a = n.match(/[^\s\-]+\-?|\-|\s+/g) || [];
242
+ if (a.length === 0) {
243
+ l.push("");
244
244
  return;
245
245
  }
246
- let a = o[0];
247
- for (let l = 1; l < o.length; l++) {
248
- const d = o[l];
249
- this.ctx.measureText(a + d).width <= r + 2 ? a += d : (a && c.push(a), a = d.trimStart());
246
+ let o = a[0];
247
+ for (let c = 1; c < a.length; c++) {
248
+ const d = a[c];
249
+ this.ctx.measureText(o + d).width <= r + 2 ? o += d : (o && l.push(o), o = d.trimStart());
250
250
  }
251
- a && c.push(a);
252
- }), c;
251
+ o && l.push(o);
252
+ }), l;
253
253
  }
254
- updateText(t, r, i, c, n) {
254
+ updateText(t, r, i, l, n) {
255
255
  n !== void 0 && (this.qualityFactor = n);
256
- const a = (window.devicePixelRatio || 1) * this.qualityFactor, l = i * a, d = c * a;
257
- this.canvas.width !== l || this.canvas.height !== d ? (this.canvas.width = l, this.canvas.height = d) : this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height), this.ctx.setTransform(a, 0, 0, a, 0, 0), this.ctx.font = r.font, this.ctx.fillStyle = r.color, this.ctx.textBaseline = "alphabetic", this.ctx.globalAlpha = 1;
258
- const h = this.wrapText(t, i), f = r.lineHeight, p = ke.getBaseline(r.font);
259
- h.forEach((g, v) => {
260
- const b = v * f + p;
256
+ const o = (window.devicePixelRatio || 1) * this.qualityFactor, c = i * o, d = l * o;
257
+ this.canvas.width !== c || this.canvas.height !== d ? (this.canvas.width = c, this.canvas.height = d) : this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height), this.ctx.setTransform(o, 0, 0, o, 0, 0), this.ctx.font = r.font, this.ctx.fillStyle = r.color, this.ctx.textBaseline = "alphabetic", this.ctx.globalAlpha = 1;
258
+ const h = this.wrapText(t, i), g = r.lineHeight, v = ke.getBaseline(r.font);
259
+ h.forEach((p, m) => {
260
+ const w = m * g + v;
261
261
  let L = 0;
262
- r.textAlign === "center" ? L = i / 2 : r.textAlign === "right" && (L = i), this.ctx.textAlign = r.textAlign, this.ctx.fillText(g, L, b);
262
+ r.textAlign === "center" ? L = i / 2 : r.textAlign === "right" && (L = i), this.ctx.textAlign = r.textAlign, this.ctx.fillText(p, L, w);
263
263
  }), this.map && (this.map.needsUpdate = !0);
264
264
  }
265
265
  dispose() {
@@ -279,8 +279,8 @@ function le(s) {
279
279
  /rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*([\d.]+))?\)/
280
280
  );
281
281
  if (e) {
282
- const t = parseInt(e[1], 10), r = parseInt(e[2], 10), i = parseInt(e[3], 10), c = e[4] !== void 0 ? parseFloat(e[4]) : 1;
283
- return { color: new y.Color(`rgb(${t}, ${r}, ${i})`), alpha: c };
282
+ const t = parseInt(e[1], 10), r = parseInt(e[2], 10), i = parseInt(e[3], 10), l = e[4] !== void 0 ? parseFloat(e[4]) : 1;
283
+ return { color: new y.Color(`rgb(${t}, ${r}, ${i})`), alpha: l };
284
284
  }
285
285
  return { color: new y.Color(s), alpha: 1 };
286
286
  }
@@ -288,16 +288,16 @@ function Ge(s) {
288
288
  const e = [];
289
289
  let t = "", r = 0;
290
290
  for (let i = 0; i < s.length; i++) {
291
- const c = s[i];
292
- if (c === "(")
291
+ const l = s[i];
292
+ if (l === "(")
293
293
  r++;
294
- else if (c === ")")
294
+ else if (l === ")")
295
295
  r--;
296
- else if (c === "," && r === 0) {
296
+ else if (l === "," && r === 0) {
297
297
  e.push(t.trim()), t = "";
298
298
  continue;
299
299
  }
300
- t += c;
300
+ t += l;
301
301
  }
302
302
  return t && e.push(t.trim()), e;
303
303
  }
@@ -308,47 +308,47 @@ function $e(s) {
308
308
  if (!e)
309
309
  return null;
310
310
  const t = e[1], r = Ge(t);
311
- let i = Math.PI, c = 0;
311
+ let i = Math.PI, l = 0;
312
312
  const n = r[0].trim();
313
313
  if (n.startsWith("to "))
314
- n === "to top" ? i = 0 : n === "to right" ? i = Math.PI / 2 : n === "to bottom" ? i = Math.PI : n === "to left" ? i = Math.PI * 1.5 : n === "to top right" || n === "to right top" ? i = Math.PI / 4 : n === "to bottom right" || n === "to right bottom" ? i = Math.PI * 0.75 : n === "to bottom left" || n === "to left bottom" ? i = Math.PI * 1.25 : (n === "to top left" || n === "to left top") && (i = Math.PI * 1.75), c = 1;
314
+ n === "to top" ? i = 0 : n === "to right" ? i = Math.PI / 2 : n === "to bottom" ? i = Math.PI : n === "to left" ? i = Math.PI * 1.5 : n === "to top right" || n === "to right top" ? i = Math.PI / 4 : n === "to bottom right" || n === "to right bottom" ? i = Math.PI * 0.75 : n === "to bottom left" || n === "to left bottom" ? i = Math.PI * 1.25 : (n === "to top left" || n === "to left top") && (i = Math.PI * 1.75), l = 1;
315
315
  else if (n.endsWith("deg") || n.endsWith("rad") || n.endsWith("turn")) {
316
- const a = parseFloat(n);
317
- n.endsWith("deg") ? i = a * (Math.PI / 180) : n.endsWith("rad") ? i = a : n.endsWith("turn") && (i = a * Math.PI * 2), c = 1;
318
- }
319
- const o = [];
320
- for (let a = c; a < r.length && !(o.length >= 8); a++) {
321
- const l = r[a].trim(), d = l.lastIndexOf(" ");
322
- let h = l, f = null;
323
- if (d !== -1 && !l.endsWith(")")) {
324
- const g = l.substring(d + 1);
325
- (g.endsWith("%") || g.endsWith("px") || !isNaN(parseFloat(g))) && (h = l.substring(0, d).trim(), f = g);
316
+ const o = parseFloat(n);
317
+ n.endsWith("deg") ? i = o * (Math.PI / 180) : n.endsWith("rad") ? i = o : n.endsWith("turn") && (i = o * Math.PI * 2), l = 1;
318
+ }
319
+ const a = [];
320
+ for (let o = l; o < r.length && !(a.length >= 8); o++) {
321
+ const c = r[o].trim(), d = c.lastIndexOf(" ");
322
+ let h = c, g = null;
323
+ if (d !== -1 && !c.endsWith(")")) {
324
+ const p = c.substring(d + 1);
325
+ (p.endsWith("%") || p.endsWith("px") || !isNaN(parseFloat(p))) && (h = c.substring(0, d).trim(), g = p);
326
326
  }
327
- const p = le(h);
328
- o.push({
329
- color: p.color,
330
- alpha: p.alpha,
331
- rawStop: f,
327
+ const v = le(h);
328
+ a.push({
329
+ color: v.color,
330
+ alpha: v.alpha,
331
+ rawStop: g,
332
332
  stop: 0
333
333
  });
334
334
  }
335
- if (o.length > 0) {
336
- for (let l = 0; l < o.length; l++)
337
- o[l].rawStop !== null && (o[l].stop = parseFloat(o[l].rawStop) / 100);
338
- o[0].rawStop === null && (o[0].stop = 0), o.length > 1 && o[o.length - 1].rawStop === null && (o[o.length - 1].stop = 1);
339
- let a = 0;
340
- for (let l = 1; l < o.length; l++)
341
- if (o[l].rawStop !== null || l === o.length - 1) {
342
- const d = l - a;
335
+ if (a.length > 0) {
336
+ for (let c = 0; c < a.length; c++)
337
+ a[c].rawStop !== null && (a[c].stop = parseFloat(a[c].rawStop) / 100);
338
+ a[0].rawStop === null && (a[0].stop = 0), a.length > 1 && a[a.length - 1].rawStop === null && (a[a.length - 1].stop = 1);
339
+ let o = 0;
340
+ for (let c = 1; c < a.length; c++)
341
+ if (a[c].rawStop !== null || c === a.length - 1) {
342
+ const d = c - o;
343
343
  if (d > 1) {
344
- const h = o[a].stop, p = (o[l].stop - h) / d;
345
- for (let g = 1; g < d; g++)
346
- o[a + g].stop = h + p * g;
344
+ const h = a[o].stop, v = (a[c].stop - h) / d;
345
+ for (let p = 1; p < d; p++)
346
+ a[o + p].stop = h + v * p;
347
347
  }
348
- a = l;
348
+ o = c;
349
349
  }
350
350
  }
351
- return { angle: i, stops: o };
351
+ return { angle: i, stops: a };
352
352
  }
353
353
  const qe = `varying vec2 vUv;
354
354
  varying vec4 vScreenPos;
@@ -512,30 +512,30 @@ baseColor = blendSrcOver(baseColor, texColor);`, Re = {
512
512
  baseColorChunk: Qe
513
513
  };
514
514
  function Ze(s, e, t, r = null, i) {
515
- var x;
516
- const c = r !== null || !!s.imageSrc;
515
+ var E;
516
+ const l = r !== null || !!s.imageSrc;
517
517
  let n = "";
518
- const o = {};
518
+ const a = {};
519
519
  if (i != null && i.uniforms)
520
- for (const [C, w] of Object.entries(i.uniforms))
521
- typeof w == "number" ? (n += `uniform float ${C};
522
- `, o[C] = { value: w }) : Array.isArray(w) ? w.length === 2 ? (n += `uniform vec2 ${C};
523
- `, o[C] = { value: new y.Vector2(...w) }) : w.length === 3 ? (n += `uniform vec3 ${C};
524
- `, o[C] = { value: new y.Vector3(...w) }) : w.length === 4 && (n += `uniform vec4 ${C};
525
- `, o[C] = { value: new y.Vector4(...w) }) : (n += `uniform float ${C};
526
- `, o[C] = { value: w });
527
- const a = i !== void 0, l = (c || a ? Le.declChunk : "") + `
520
+ for (const [S, x] of Object.entries(i.uniforms))
521
+ typeof x == "number" ? (n += `uniform float ${S};
522
+ `, a[S] = { value: x }) : Array.isArray(x) ? x.length === 2 ? (n += `uniform vec2 ${S};
523
+ `, a[S] = { value: new y.Vector2(...x) }) : x.length === 3 ? (n += `uniform vec3 ${S};
524
+ `, a[S] = { value: new y.Vector3(...x) }) : x.length === 4 && (n += `uniform vec4 ${S};
525
+ `, a[S] = { value: new y.Vector4(...x) }) : (n += `uniform float ${S};
526
+ `, a[S] = { value: x });
527
+ const o = i !== void 0, c = (l || o ? Le.declChunk : "") + `
528
528
  ` + n, d = `vec2 screenUv = (vScreenPos.xy / vScreenPos.w) * 0.5 + 0.5;
529
529
  `, h = s.isTraveler ? `vec2 resultUv = screenUv;
530
530
  ` : `vec2 resultUv = vUv * uTextureRepeat + uTextureOffset;
531
- `, f = c || a ? d + h + ((i == null ? void 0 : i.uvModifier) || "") : "", p = c || a ? Le.baseColorChunk : "", g = (i == null ? void 0 : i.colorModifier) || "", v = Re.fragmentShader.replace("#INJECT_DECLARATIONS", l).replace("#INJECT_UV_MODIFIER", f).replace("#INJECT_BASE_COLOR", p).replace("#INJECT_COLOR_MODIFIER", g), b = le(s.backgroundColor), L = le(s.borderColor), M = {
531
+ `, g = l || o ? d + h + ((i == null ? void 0 : i.uvModifier) || "") : "", v = l || o ? Le.baseColorChunk : "", p = (i == null ? void 0 : i.colorModifier) || "", m = Re.fragmentShader.replace("#INJECT_DECLARATIONS", c).replace("#INJECT_UV_MODIFIER", g).replace("#INJECT_BASE_COLOR", v).replace("#INJECT_COLOR_MODIFIER", p), w = le(s.backgroundColor), L = le(s.borderColor), M = {
532
532
  uSize: { value: new y.Vector2(e, t) },
533
533
  uBgColor: {
534
534
  value: new y.Vector4(
535
- b.color.r,
536
- b.color.g,
537
- b.color.b,
538
- b.alpha
535
+ w.color.r,
536
+ w.color.g,
537
+ w.color.b,
538
+ w.alpha
539
539
  )
540
540
  },
541
541
  uBorderColor: {
@@ -548,7 +548,7 @@ function Ze(s, e, t, r = null, i) {
548
548
  },
549
549
  uBorderRadius: { value: new y.Vector4(0, 0, 0, 0) },
550
550
  uBorderWidth: { value: re(s.borderWidth) },
551
- uOpacity: { value: (x = s.opacity) != null ? x : 1 },
551
+ uOpacity: { value: (E = s.opacity) != null ? E : 1 },
552
552
  uTexture: { value: null },
553
553
  uTextureRepeat: { value: new y.Vector2(1, 1) },
554
554
  uTextureOffset: { value: new y.Vector2(0, 0) },
@@ -559,24 +559,24 @@ function Ze(s, e, t, r = null, i) {
559
559
  },
560
560
  uGradientStops: { value: new Float32Array(8) }
561
561
  };
562
- Ie(M.uBorderRadius.value, s.borderRadius, Math.min(e, t)), c && (M.uTexture.value = r);
563
- const S = new y.ShaderMaterial({
564
- uniforms: J(J({}, M), o),
562
+ Ie(M.uBorderRadius.value, s.borderRadius, Math.min(e, t)), l && (M.uTexture.value = r);
563
+ const T = new y.ShaderMaterial({
564
+ uniforms: j(j({}, M), a),
565
565
  vertexShader: Re.vertexShader,
566
- fragmentShader: v,
566
+ fragmentShader: m,
567
567
  transparent: !0,
568
568
  side: y.FrontSide
569
569
  // for better performance
570
570
  });
571
- return s.backgroundImage && ye(S, { backgroundImage: s.backgroundImage }), S;
571
+ return s.backgroundImage && ye(T, { backgroundImage: s.backgroundImage }), T;
572
572
  }
573
573
  function et(s, e, t, r, i) {
574
- const c = re(e.borderWidth);
574
+ const l = re(e.borderWidth);
575
575
  ye(s, {
576
576
  width: t,
577
577
  height: r,
578
578
  borderRadius: e.borderRadius,
579
- borderWidth: c,
579
+ borderWidth: l,
580
580
  backgroundColor: e.backgroundColor,
581
581
  borderColor: e.borderColor,
582
582
  opacity: e.opacity,
@@ -585,7 +585,7 @@ function et(s, e, t, r, i) {
585
585
  });
586
586
  }
587
587
  function ye(s, e) {
588
- var r, i, c;
588
+ var r, i, l;
589
589
  if (e.width !== void 0 && e.height !== void 0 && s.uniforms.uSize.value.set(e.width, e.height), e.borderRadius !== void 0) {
590
590
  const n = e.width !== void 0 && e.height !== void 0 ? Math.min(e.width, e.height) : Math.min(s.uniforms.uSize.value.x, s.uniforms.uSize.value.y);
591
591
  Ie(s.uniforms.uBorderRadius.value, e.borderRadius, n);
@@ -645,15 +645,15 @@ function ye(s, e) {
645
645
  e.opacity !== void 0 && (s.uniforms.uOpacity.value = e.opacity), e.bgOpacity !== void 0 && (s.uniforms.uBgColor.value.w = e.bgOpacity), e.borderOpacity !== void 0 && (s.uniforms.uBorderColor.value.w = e.borderOpacity), s.uniforms.uTexture && e.texture !== void 0 && (s.uniforms.uTexture.value = e.texture);
646
646
  const t = e.texture !== void 0 ? e.texture : (r = s.uniforms.uTexture) == null ? void 0 : r.value;
647
647
  if (t && (t.image instanceof ImageBitmap || t.image instanceof HTMLImageElement || t.image instanceof HTMLCanvasElement)) {
648
- const n = t.image.naturalWidth || t.image.videoWidth || t.image.width, o = t.image.naturalHeight || t.image.videoHeight || t.image.height, a = (i = e.width) != null ? i : s.uniforms.uSize.value.x, l = (c = e.height) != null ? c : s.uniforms.uSize.value.y;
649
- if (n && o && a && l) {
650
- const d = n / o, h = a / l;
648
+ const n = t.image.naturalWidth || t.image.videoWidth || t.image.width, a = t.image.naturalHeight || t.image.videoHeight || t.image.height, o = (i = e.width) != null ? i : s.uniforms.uSize.value.x, c = (l = e.height) != null ? l : s.uniforms.uSize.value.y;
649
+ if (n && a && o && c) {
650
+ const d = n / a, h = o / c;
651
651
  if (d > h) {
652
- const f = h / d;
653
- s.uniforms.uTextureRepeat.value.set(f, 1), s.uniforms.uTextureOffset.value.set((1 - f) / 2, 0);
652
+ const g = h / d;
653
+ s.uniforms.uTextureRepeat.value.set(g, 1), s.uniforms.uTextureOffset.value.set((1 - g) / 2, 0);
654
654
  } else {
655
- const f = d / h;
656
- s.uniforms.uTextureRepeat.value.set(1, f), s.uniforms.uTextureOffset.value.set(0, (1 - f) / 2);
655
+ const g = d / h;
656
+ s.uniforms.uTextureRepeat.value.set(1, g), s.uniforms.uTextureOffset.value.set(0, (1 - g) / 2);
657
657
  }
658
658
  }
659
659
  } else
@@ -662,17 +662,17 @@ function ye(s, e) {
662
662
  const n = $e(e.backgroundImage);
663
663
  if (n) {
664
664
  s.uniforms.uGradientCount.value = n.stops.length, s.uniforms.uGradientAngle.value = n.angle;
665
- for (let o = 0; o < 8; o++)
666
- if (o < n.stops.length) {
667
- const a = n.stops[o];
668
- s.uniforms.uGradientColors.value[o].set(
669
- a.color.r,
670
- a.color.g,
671
- a.color.b,
672
- a.alpha
673
- ), s.uniforms.uGradientStops.value[o] = a.stop;
665
+ for (let a = 0; a < 8; a++)
666
+ if (a < n.stops.length) {
667
+ const o = n.stops[a];
668
+ s.uniforms.uGradientColors.value[a].set(
669
+ o.color.r,
670
+ o.color.g,
671
+ o.color.b,
672
+ o.alpha
673
+ ), s.uniforms.uGradientStops.value[a] = o.stop;
674
674
  } else
675
- s.uniforms.uGradientColors.value[o].set(0, 0, 0, 0), s.uniforms.uGradientStops.value[o] = 1;
675
+ s.uniforms.uGradientColors.value[a].set(0, 0, 0, 0), s.uniforms.uGradientStops.value[a] = 1;
676
676
  } else
677
677
  s.uniforms.uGradientCount.value = 0;
678
678
  }
@@ -680,7 +680,7 @@ function ye(s, e) {
680
680
  n !== "width" && n !== "height" && n !== "borderRadius" && n !== "borderWidth" && n !== "backgroundColor" && n !== "borderColor" && n !== "opacity" && n !== "bgOpacity" && n !== "borderOpacity" && n !== "texture" && n !== "backgroundImage" && s.uniforms[n] !== void 0 && (s.uniforms[n].value !== void 0 && s.uniforms[n].value !== null && typeof s.uniforms[n].value.set == "function" ? Array.isArray(e[n]) ? s.uniforms[n].value.set(...e[n]) : e[n] !== void 0 && (e[n].copy ? s.uniforms[n].value.copy(e[n]) : s.uniforms[n].value = e[n]) : s.uniforms[n].value = e[n]);
681
681
  }
682
682
  function Ie(s, e, t = 0) {
683
- var a, l, d, h;
683
+ var o, c, d, h;
684
684
  if (e == null) {
685
685
  s.set(0, 0, 0, 0);
686
686
  return;
@@ -693,37 +693,37 @@ function Ie(s, e, t = 0) {
693
693
  s.set(e[0], e[1], e[2], e[3]);
694
694
  return;
695
695
  }
696
- const r = e.split("/")[0].trim().split(/\s+/), i = re(r[0], t), c = re((a = r[1]) != null ? a : r[0], t), n = re((l = r[2]) != null ? l : r[0], t), o = re((h = (d = r[3]) != null ? d : r[1]) != null ? h : r[0], t);
697
- s.set(i, c, n, o);
696
+ const r = e.split("/")[0].trim().split(/\s+/), i = re(r[0], t), l = re((o = r[1]) != null ? o : r[0], t), n = re((c = r[2]) != null ? c : r[0], t), a = re((h = (d = r[3]) != null ? d : r[1]) != null ? h : r[0], t);
697
+ s.set(i, l, n, a);
698
698
  }
699
- const H = {
700
- create(s, e, t, r, i, c = 2, n = null, o) {
699
+ const Y = {
700
+ create(s, e, t, r, i, l = 2, n = null, a) {
701
701
  return s === "BOX" ? Ze(
702
702
  e,
703
703
  r,
704
704
  i,
705
705
  n,
706
- o
706
+ a
707
707
  ) : s === "TEXT" ? new Pe(
708
708
  t || "",
709
709
  e,
710
710
  r,
711
711
  i,
712
- c
712
+ l
713
713
  ) : new y.MeshBasicMaterial({ visible: !1 });
714
714
  },
715
- update(s, e, t, r, i, c, n = 2, o) {
715
+ update(s, e, t, r, i, l, n = 2, a) {
716
716
  e === "BOX" ? et(
717
717
  s,
718
718
  t,
719
719
  i,
720
- c,
721
- o
720
+ l,
721
+ a
722
722
  ) : e === "TEXT" && s.updateText(
723
723
  r || "",
724
724
  t,
725
725
  i,
726
- c,
726
+ l,
727
727
  n
728
728
  );
729
729
  },
@@ -741,8 +741,8 @@ class tt {
741
741
  this.onUpdate = e, t && (this.observer = new IntersectionObserver(
742
742
  (r) => {
743
743
  for (const i of r) {
744
- const c = i.target;
745
- i.isIntersecting ? this.loadTexture(c) : this.disposeTexture(c);
744
+ const l = i.target;
745
+ i.isIntersecting ? this.loadTexture(l) : this.disposeTexture(l);
746
746
  }
747
747
  },
748
748
  { rootMargin: "300px" }
@@ -766,9 +766,9 @@ class tt {
766
766
  try {
767
767
  let r;
768
768
  if (t.startsWith("data:image/svg+xml"))
769
- r = yield new Promise((c, n) => {
770
- const o = new Image();
771
- o.onload = () => c(o), o.onerror = n, o.src = t;
769
+ r = yield new Promise((l, n) => {
770
+ const a = new Image();
771
+ a.onload = () => l(a), a.onerror = n, a.src = t;
772
772
  });
773
773
  else {
774
774
  const n = yield (yield fetch(t)).blob();
@@ -818,21 +818,21 @@ class rt {
818
818
  u(this, "registry");
819
819
  u(this, "targetRect");
820
820
  u(this, "travelersByLayer", Array.from(
821
- { length: _.MAX_LAYERS },
821
+ { length: O.MAX_LAYERS },
822
822
  () => /* @__PURE__ */ new Set()
823
823
  ));
824
824
  u(this, "textureManager");
825
825
  // private meshMap: Map<HTMLElement, THREE.Mesh> = new Map();
826
826
  u(this, "fixedMeshes", /* @__PURE__ */ new Set());
827
- var o, a, l, d, h;
828
- this.target = e, this.mountContainer = r, this.registry = i, this.mode = (o = t.mode) != null ? o : "overlay", this.canvasSize = (a = t.canvasSize) != null ? a : "viewport", this.clipArea = (l = t.travelerClipArea) != null ? l : 1, this.targetLayer = (d = t.layer) != null ? d : "base", this.textureManager = new tt((f, p) => {
829
- const g = this.registry.get(f);
830
- g && g.material instanceof y.ShaderMaterial && H.forceUpdateUniforms(g.material, { texture: p });
827
+ var a, o, c, d, h;
828
+ this.target = e, this.mountContainer = r, this.registry = i, this.mode = (a = t.mode) != null ? a : "overlay", this.canvasSize = (o = t.canvasSize) != null ? o : "viewport", this.clipArea = (c = t.travelerClipArea) != null ? c : 1, this.targetLayer = (d = t.layer) != null ? d : "base", this.textureManager = new tt((g, v) => {
829
+ const p = this.registry.get(g);
830
+ p && p.material instanceof y.ShaderMaterial && Y.forceUpdateUniforms(p.material, { texture: v });
831
831
  }, this.isViewport), this.canvas = document.createElement("canvas"), this.scene = new y.Scene(), this.targetRect = this.target.getBoundingClientRect();
832
- const c = this.isViewport ? window.innerWidth + this.overscan * 2 : this.targetRect.width, n = this.isViewport ? window.innerHeight + this.overscan * 2 : this.targetRect.height;
832
+ const l = this.isViewport ? window.innerWidth + this.overscan * 2 : this.targetRect.width, n = this.isViewport ? window.innerHeight + this.overscan * 2 : this.targetRect.height;
833
833
  this.camera = new y.OrthographicCamera(
834
- c / -2,
835
- c / 2,
834
+ l / -2,
835
+ l / 2,
836
836
  n / 2,
837
837
  n / -2,
838
838
  1,
@@ -843,16 +843,16 @@ class rt {
843
843
  antialias: !0
844
844
  // [new]
845
845
  // premultipliedAlpha: true
846
- }), y.ColorManagement.enabled = !1, this.renderer.outputColorSpace = y.LinearSRGBColorSpace, this.renderer.setPixelRatio(window.devicePixelRatio), this.renderer.setSize(c, n), this.applyTextQuality((h = t.quality) != null ? h : "medium");
846
+ }), y.ColorManagement.enabled = !1, this.renderer.outputColorSpace = y.LinearSRGBColorSpace, this.renderer.setPixelRatio(window.devicePixelRatio), this.renderer.setSize(l, n), this.applyTextQuality((h = t.quality) != null ? h : "medium");
847
847
  }
848
848
  get isViewport() {
849
849
  return this.mode === "overlay" && this.canvasSize === "viewport";
850
850
  }
851
851
  getSceneLayer() {
852
- return typeof this.targetLayer == "number" ? this.targetLayer : this.targetLayer === "selected" ? U.SELECTED : U.BASE;
852
+ return typeof this.targetLayer == "number" ? this.targetLayer : this.targetLayer === "selected" ? B.SELECTED : B.BASE;
853
853
  }
854
854
  createRenderTarget() {
855
- for (let e = 0; e < _.MAX_LAYERS; e++) {
855
+ for (let e = 0; e < O.MAX_LAYERS; e++) {
856
856
  const t = this.isViewport ? window.innerWidth + this.overscan * 2 : this.targetRect.width, r = this.isViewport ? window.innerHeight + this.overscan * 2 : this.targetRect.height;
857
857
  this.renderTargets.push(
858
858
  new y.WebGLRenderTarget(
@@ -899,12 +899,12 @@ class rt {
899
899
  updateUniforms(e, t) {
900
900
  const r = this.registry.get(e);
901
901
  r && (r.traverse((i) => {
902
- i.isMesh && i.material && H.forceUpdateUniforms(
902
+ i.isMesh && i.material && Y.forceUpdateUniforms(
903
903
  i.material,
904
904
  t
905
905
  );
906
906
  }), r.userData.nativeMesh && r.userData.nativeMesh.traverse((i) => {
907
- i.isMesh && i.material && H.forceUpdateUniforms(
907
+ i.isMesh && i.material && Y.forceUpdateUniforms(
908
908
  i.material,
909
909
  t
910
910
  );
@@ -920,17 +920,17 @@ class rt {
920
920
  this.camera.left = e / -2, this.camera.right = e / 2, this.camera.top = t / 2, this.camera.bottom = t / -2, this.camera.updateProjectionMatrix();
921
921
  }
922
922
  syncScene(e, t) {
923
- const r = this.target.getBoundingClientRect(), i = this.isViewport ? window.innerWidth + this.overscan * 2 : r.width, c = this.isViewport ? window.innerHeight + this.overscan * 2 : r.height, n = this.isViewport ? this.canvas.clientWidth : this.targetRect.width, o = this.isViewport ? this.canvas.clientHeight : this.targetRect.height, a = Math.abs(i - n) > 0.1 || Math.abs(c - o) > 0.1, l = this.mode === "overlay" && (Math.abs(r.top - this.targetRect.top) > 0.1 || Math.abs(r.left - this.targetRect.left) > 0.1);
924
- a ? (this.targetRect = r, this.setSize(i, c), this.updateCanvasLayout()) : l ? (this.targetRect = r, this.updateCanvasLayout()) : this.targetRect = r, this.renderOrder = 0, this.reconcileNode(e), t.size > 0 && t.forEach((d) => {
923
+ const r = this.target.getBoundingClientRect(), i = this.isViewport ? window.innerWidth + this.overscan * 2 : r.width, l = this.isViewport ? window.innerHeight + this.overscan * 2 : r.height, n = this.isViewport ? this.canvas.clientWidth : this.targetRect.width, a = this.isViewport ? this.canvas.clientHeight : this.targetRect.height, o = Math.abs(i - n) > 0.1 || Math.abs(l - a) > 0.1, c = this.mode === "overlay" && (Math.abs(r.top - this.targetRect.top) > 0.1 || Math.abs(r.left - this.targetRect.left) > 0.1);
924
+ o ? (this.targetRect = r, this.setSize(i, l), this.updateCanvasLayout()) : c ? (this.targetRect = r, this.updateCanvasLayout()) : this.targetRect = r, this.renderOrder = 0, this.reconcileNode(e), t.size > 0 && t.forEach((d) => {
925
925
  const h = this.registry.get(d);
926
926
  if (h) {
927
927
  this.scene.remove(h);
928
- for (const f of this.travelersByLayer)
929
- f.delete(h);
928
+ for (const g of this.travelersByLayer)
929
+ g.delete(h);
930
930
  this.fixedMeshes.delete(h), h.geometry.dispose(), h.userData.nativeMesh && (this.scene.remove(h.userData.nativeMesh), Array.isArray(h.userData.nativeMesh.material) ? h.userData.nativeMesh.material.forEach(
931
- (f) => f.dispose()
932
- ) : h.userData.nativeMesh.material.dispose(), h.userData.nativeMesh.geometry.dispose()), h.traverse((f) => {
933
- f instanceof y.Mesh && (f.geometry && f.geometry.dispose(), f.material && (Array.isArray(f.material) ? f.material.forEach((p) => p.dispose()) : f.material.dispose()));
931
+ (g) => g.dispose()
932
+ ) : h.userData.nativeMesh.material.dispose(), h.userData.nativeMesh.geometry.dispose()), h.traverse((g) => {
933
+ g instanceof y.Mesh && (g.geometry && g.geometry.dispose(), g.material && (Array.isArray(g.material) ? g.material.forEach((v) => v.dispose()) : g.material.dispose()));
934
934
  }), this.registry.remove(d), this.textureManager.unregister(d);
935
935
  }
936
936
  });
@@ -940,24 +940,24 @@ class rt {
940
940
  // => 이후 activeElements를 이용하여 mesh를 정리!!!+ map에서도 삭제
941
941
  // private reconcileNode(node: SceneNode, activeElements: Set<HTMLElement>) {
942
942
  reconcileNode(e) {
943
- var i, c;
943
+ var i, l;
944
944
  let t = this.registry.get(e.element);
945
945
  const r = JSON.stringify(e.shaderHooks || null);
946
946
  if (t && t.userData.shaderHash !== r && (this.scene.remove(t), t.geometry.dispose(), t.material instanceof y.Material && t.material.dispose(), this.registry.remove(e.element), t = void 0), !t) {
947
- const n = new y.PlaneGeometry(1, 1), o = e.isTraveler ? (i = this.renderTargets[e.captureLayer - 2]) == null ? void 0 : i.texture : this.textureManager.get(e.element), a = H.create(
947
+ const n = new y.PlaneGeometry(1, 1), a = e.isTraveler ? (i = this.renderTargets[e.captureLayer - 2]) == null ? void 0 : i.texture : this.textureManager.get(e.element), o = Y.create(
948
948
  "BOX",
949
949
  e.styles,
950
950
  "",
951
951
  e.rect.width,
952
952
  e.rect.height,
953
953
  this.qualityFactor,
954
- o,
954
+ a,
955
955
  e.shaderHooks
956
956
  );
957
- t = new y.Mesh(n, a), e.type === "TEXT" && (t.name = "BG_MESH"), this.scene.add(t), this.registry.register(e.element, t), t.userData.baseMaterial = a, t.userData.domElement = e.element, t.userData.shaderHash = r;
957
+ t = new y.Mesh(n, o), e.type === "TEXT" && (t.name = "BG_MESH"), this.scene.add(t), this.registry.register(e.element, t), t.userData.baseMaterial = o, t.userData.domElement = e.element, t.userData.shaderHash = r;
958
958
  }
959
- if ((c = e.nativeStyles) != null && c.transform ? t.userData.nativeTransform = e.nativeStyles.transform : t.userData.nativeTransform = void 0, this.updateMeshProperties(t, e), this.updateMeshLayers(t, e), e.isTraveler)
960
- for (let n = 0; n < _.MAX_LAYERS; n++)
959
+ if ((l = e.nativeStyles) != null && l.transform ? t.userData.nativeTransform = e.nativeStyles.transform : t.userData.nativeTransform = void 0, this.updateMeshProperties(t, e), this.updateMeshLayers(t, e), e.isTraveler)
960
+ for (let n = 0; n < O.MAX_LAYERS; n++)
961
961
  n === e.captureLayer - 2 ? this.travelersByLayer[n].add(t) : this.travelersByLayer[n].delete(t);
962
962
  else
963
963
  for (const n of this.travelersByLayer)
@@ -973,34 +973,34 @@ class rt {
973
973
  ));
974
974
  }
975
975
  reconcileTextChild(e, t, r) {
976
- var l;
976
+ var c;
977
977
  const i = t.textLines || [
978
978
  { text: t.textContent || "", rect: t.rect }
979
- ], c = r ? t.nativeStyles : t.textStyles, n = JSON.stringify(c) + t.textContent + i.map((d) => d.text).join("|"), o = (l = e.userData) == null ? void 0 : l.textChildStyleHash;
980
- if (t.dirtyMask & ve || n !== o) {
979
+ ], l = r ? t.nativeStyles : t.textStyles, n = JSON.stringify(l) + t.textContent + i.map((d) => d.text).join("|"), a = (c = e.userData) == null ? void 0 : c.textChildStyleHash;
980
+ if (t.dirtyMask & ve || n !== a) {
981
981
  e.children.filter(
982
- (g) => g.name.startsWith("TEXT_CHILD")
983
- ).forEach((g) => {
984
- var b;
985
- const v = g;
986
- (b = v.material.map) == null || b.dispose(), v.geometry.dispose(), e.remove(v);
982
+ (p) => p.name.startsWith("TEXT_CHILD")
983
+ ).forEach((p) => {
984
+ var w;
985
+ const m = p;
986
+ (w = m.material.map) == null || w.dispose(), m.geometry.dispose(), e.remove(m);
987
987
  });
988
- const h = t.rect, f = h.x + h.width / 2, p = h.y + h.height / 2;
989
- i.forEach((g, v) => {
990
- const b = H.create(
988
+ const h = t.rect, g = h.x + h.width / 2, v = h.y + h.height / 2;
989
+ i.forEach((p, m) => {
990
+ const w = Y.create(
991
991
  "TEXT",
992
- c,
993
- g.text,
994
- g.rect.width,
995
- g.rect.height,
992
+ l,
993
+ p.text,
994
+ p.rect.width,
995
+ p.rect.height,
996
996
  this.qualityFactor
997
- ), L = new y.PlaneGeometry(1, 1), M = new y.Mesh(L, b);
998
- M.name = `TEXT_CHILD_${v}`;
999
- const S = t.rect.width === 0 ? 1 : g.rect.width / t.rect.width, x = t.rect.height === 0 ? 1 : g.rect.height / t.rect.height;
1000
- M.scale.set(S, x, 1);
1001
- const C = g.rect.x + g.rect.width / 2, w = g.rect.y + g.rect.height / 2, T = C - f, A = -(w - p);
997
+ ), L = new y.PlaneGeometry(1, 1), M = new y.Mesh(L, w);
998
+ M.name = `TEXT_CHILD_${m}`;
999
+ const T = t.rect.width === 0 ? 1 : p.rect.width / t.rect.width, E = t.rect.height === 0 ? 1 : p.rect.height / t.rect.height;
1000
+ M.scale.set(T, E, 1);
1001
+ const S = p.rect.x + p.rect.width / 2, x = p.rect.y + p.rect.height / 2, R = S - g, A = -(x - v);
1002
1002
  M.position.set(
1003
- t.rect.width === 0 ? 0 : T / t.rect.width,
1003
+ t.rect.width === 0 ? 0 : R / t.rect.width,
1004
1004
  t.rect.height === 0 ? 0 : A / t.rect.height,
1005
1005
  5e-3
1006
1006
  ), e.add(M);
@@ -1009,52 +1009,54 @@ class rt {
1009
1009
  e.children.forEach((d) => {
1010
1010
  if (!d.name.startsWith("TEXT_CHILD"))
1011
1011
  return;
1012
- const h = d, f = t.visibility & $ ? U.BASE : U.HIDDEN;
1013
- if (h.layers.set(f), t.visibility & te && h.layers.enable(U.SELECTED), t.visibility & $)
1014
- if (!r && t.nativeLayer !== void 0 && t.nativeStyles !== void 0)
1015
- for (let p = t.captureLayer; p < t.nativeLayer; p++)
1016
- h.layers.enable(U.getCaptureLayer(p));
1017
- else if (r && t.nativeLayer !== void 0)
1018
- for (let p = Math.max(t.captureLayer, t.nativeLayer); p <= _.MAX_LAYERS + 1; p++)
1019
- h.layers.enable(U.getCaptureLayer(p));
1020
- else
1021
- for (let p = t.captureLayer; p <= _.MAX_LAYERS + 1; p++)
1022
- h.layers.enable(U.getCaptureLayer(p));
1012
+ const h = d;
1013
+ if (r && t.nativeLayer !== void 0)
1014
+ h.layers.set(B.HIDDEN), t.visibility & W && h.layers.enable(B.getCaptureLayer(t.nativeLayer));
1015
+ else {
1016
+ const g = t.visibility & W ? B.BASE : B.HIDDEN;
1017
+ if (h.layers.set(g), t.visibility & te && h.layers.enable(B.SELECTED), t.visibility & W)
1018
+ if (!r && t.nativeLayer !== void 0 && t.nativeStyles !== void 0)
1019
+ for (let v = t.captureLayer; v <= O.MAX_LAYERS + 1; v++)
1020
+ v !== t.nativeLayer && h.layers.enable(B.getCaptureLayer(v));
1021
+ else
1022
+ for (let v = t.captureLayer; v <= O.MAX_LAYERS + 1; v++)
1023
+ h.layers.enable(B.getCaptureLayer(v));
1024
+ }
1023
1025
  });
1024
1026
  }
1025
1027
  updateMeshProperties(e, t) {
1026
- var S, x, C;
1027
- const { rect: r, styles: i } = t, c = this.renderer.getPixelRatio(), n = this.renderer.domElement.width / c, o = this.renderer.domElement.height / c;
1028
+ var T, E, S;
1029
+ const { rect: r, styles: i } = t, l = this.renderer.getPixelRatio(), n = this.renderer.domElement.width / l, a = this.renderer.domElement.height / l;
1028
1030
  e.material = e.userData.baseMaterial, e.scale.set(r.width, r.height, 1), e.userData.domRect = {
1029
1031
  x: r.x,
1030
1032
  y: r.y,
1031
1033
  width: r.width,
1032
1034
  height: r.height
1033
1035
  };
1034
- const a = 1e-3;
1036
+ const o = 1e-3;
1035
1037
  this.renderOrder++;
1036
- const l = this.targetRect.left + window.scrollX, d = this.targetRect.top + window.scrollY;
1037
- let h, f;
1038
+ const c = this.targetRect.left + window.scrollX, d = this.targetRect.top + window.scrollY;
1039
+ let h, g;
1038
1040
  if (this.isViewport)
1039
- h = r.x - window.innerWidth / 2 + r.width / 2, f = -r.y + window.innerHeight / 2 - r.height / 2;
1041
+ h = r.x - window.innerWidth / 2 + r.width / 2, g = -r.y + window.innerHeight / 2 - r.height / 2;
1040
1042
  else {
1041
- const w = r.x - l, T = r.y - d;
1042
- h = w - n / 2 + r.width / 2, f = -T + o / 2 - r.height / 2;
1043
+ const x = r.x - c, R = r.y - d;
1044
+ h = x - n / 2 + r.width / 2, g = -R + a / 2 - r.height / 2;
1043
1045
  }
1044
1046
  e.position.set(
1045
1047
  h,
1046
- f,
1047
- i.zIndex + this.renderOrder * a
1048
+ g,
1049
+ i.zIndex + this.renderOrder * o
1048
1050
  );
1049
- const p = r.x, g = r.y;
1050
- e.userData.basePosition = { x: h, y: f }, e.userData.originalBasePosition = { x: h, y: f }, e.userData.baseSize = { width: r.width, height: r.height }, e.userData.baseDOM = { x: p, y: g }, e.userData.isFixed = t.isFixed, e.userData.initialScroll = { x: window.scrollX, y: window.scrollY };
1051
- const v = t.element.nodeType === Node.TEXT_NODE ? t.element.parentElement : t.element, b = window.getComputedStyle(v);
1051
+ const v = r.x, p = r.y;
1052
+ e.userData.basePosition = { x: h, y: g }, e.userData.originalBasePosition = { x: h, y: g }, e.userData.baseSize = { width: r.width, height: r.height }, e.userData.baseDOM = { x: v, y: p }, e.userData.isFixed = t.isFixed, e.userData.initialScroll = { x: window.scrollX, y: window.scrollY };
1053
+ const m = t.element.nodeType === Node.TEXT_NODE ? t.element.parentElement : t.element, w = window.getComputedStyle(m);
1052
1054
  let L = 0, M = 0;
1053
- if (b.transform && b.transform !== "none") {
1054
- const w = new DOMMatrix(b.transform);
1055
- L = w.m41, M = w.m42;
1055
+ if (w.transform && w.transform !== "none") {
1056
+ const x = new DOMMatrix(w.transform);
1057
+ L = x.m41, M = x.m42;
1056
1058
  }
1057
- if (e.userData.baseTransform = { x: L, y: M }, delete e.userData.originRatioX, delete e.userData.originRatioY, H.update(
1059
+ if (e.userData.baseTransform = { x: L, y: M }, delete e.userData.originRatioX, delete e.userData.originRatioY, Y.update(
1058
1060
  e.userData.baseMaterial,
1059
1061
  "BOX",
1060
1062
  i,
@@ -1062,179 +1064,188 @@ class rt {
1062
1064
  r.width,
1063
1065
  r.height,
1064
1066
  this.qualityFactor,
1065
- t.isTraveler ? (S = this.renderTargets[t.captureLayer - 2]) == null ? void 0 : S.texture : this.textureManager.get(t.element)
1067
+ t.isTraveler ? (T = this.renderTargets[t.captureLayer - 2]) == null ? void 0 : T.texture : this.textureManager.get(t.element)
1066
1068
  ), t.nativeStyles && t.nativeRect) {
1067
1069
  if (!e.userData.nativeMesh) {
1068
- const X = H.create(
1070
+ const _ = Y.create(
1069
1071
  "BOX",
1070
1072
  t.nativeStyles,
1071
1073
  "",
1072
1074
  t.nativeRect.width,
1073
1075
  t.nativeRect.height,
1074
1076
  this.qualityFactor,
1075
- t.isTraveler ? (x = this.renderTargets[t.captureLayer - 2]) == null ? void 0 : x.texture : this.textureManager.get(t.element),
1077
+ t.isTraveler ? (E = this.renderTargets[t.captureLayer - 2]) == null ? void 0 : E.texture : this.textureManager.get(t.element),
1076
1078
  t.shaderHooks
1077
- ), N = new y.Mesh(e.geometry, X);
1079
+ ), N = new y.Mesh(e.geometry, _);
1078
1080
  t.type === "TEXT" && (N.name = "BG_MESH"), this.scene.add(N), e.userData.nativeMesh = N;
1079
1081
  }
1080
- const w = e.userData.nativeMesh;
1081
- let T, A;
1082
+ const x = e.userData.nativeMesh;
1083
+ let R, A;
1082
1084
  if (this.isViewport)
1083
- T = t.nativeRect.x - window.innerWidth / 2 + t.nativeRect.width / 2, A = -t.nativeRect.y + window.innerHeight / 2 - t.nativeRect.height / 2;
1085
+ R = t.nativeRect.x - window.innerWidth / 2 + t.nativeRect.width / 2, A = -t.nativeRect.y + window.innerHeight / 2 - t.nativeRect.height / 2;
1084
1086
  else {
1085
- const X = t.nativeRect.x - l, N = t.nativeRect.y - d;
1086
- T = X - n / 2 + t.nativeRect.width / 2, A = -N + o / 2 - t.nativeRect.height / 2;
1087
+ const _ = t.nativeRect.x - c, N = t.nativeRect.y - d;
1088
+ R = _ - n / 2 + t.nativeRect.width / 2, A = -N + a / 2 - t.nativeRect.height / 2;
1087
1089
  }
1088
- let I = t.nativeRect.width, q = t.nativeRect.height, ie = T, se = A;
1090
+ let U = t.nativeRect.width, G = t.nativeRect.height, ie = R, se = A;
1089
1091
  if (t.nativeStyles.transform) {
1090
- const X = t.nativeStyles.transform, N = X.match(/scale\(([\d.]+%?)\)/);
1092
+ const _ = t.nativeStyles.transform, N = _.match(/scale\(([\d.]+%?)\)/);
1091
1093
  if (N) {
1092
- let B = parseFloat(N[1]);
1093
- N[1].includes("%") && (B /= 100), I *= B, q *= B;
1094
+ let f = parseFloat(N[1]);
1095
+ N[1].includes("%") && (f /= 100), U *= f, G *= f;
1094
1096
  }
1095
- const Z = X.match(/translate\(([^,]+),\s*([^)]+)\)/);
1097
+ const J = _.match(/scaleX\(([\d.]+%?)\)/);
1098
+ if (J) {
1099
+ let f = parseFloat(J[1]);
1100
+ J[1].includes("%") && (f /= 100), U *= f;
1101
+ }
1102
+ const Q = _.match(/scaleY\(([\d.]+%?)\)/);
1103
+ if (Q) {
1104
+ let f = parseFloat(Q[1]);
1105
+ Q[1].includes("%") && (f /= 100), G *= f;
1106
+ }
1107
+ const Z = _.match(/translate\(([^,]+),\s*([^)]+)\)/);
1096
1108
  if (Z) {
1097
- const B = Z[1].trim(), F = Z[2].trim();
1098
- let m = parseFloat(B);
1099
- B.includes("%") && (m = m / 100 * t.nativeRect.width);
1100
- let R = parseFloat(F);
1101
- F.includes("%") && (R = R / 100 * t.nativeRect.height), ie += m, se -= R;
1109
+ const f = Z[1].trim(), b = Z[2].trim();
1110
+ let k = parseFloat(f);
1111
+ f.includes("%") && (k = k / 100 * t.nativeRect.width);
1112
+ let F = parseFloat(b);
1113
+ b.includes("%") && (F = F / 100 * t.nativeRect.height), ie += k, se -= F;
1102
1114
  }
1103
- const ne = X.match(/translateX\(([^)]+)\)/);
1115
+ const ne = _.match(/translateX\(([^)]+)\)/);
1104
1116
  if (ne) {
1105
- const B = ne[1].trim();
1106
- let F = parseFloat(B);
1107
- B.includes("%") && (F = F / 100 * t.nativeRect.width), ie += F;
1117
+ const f = ne[1].trim();
1118
+ let b = parseFloat(f);
1119
+ f.includes("%") && (b = b / 100 * t.nativeRect.width), ie += b;
1108
1120
  }
1109
- const oe = X.match(/translateY\(([^)]+)\)/);
1110
- if (oe) {
1111
- const B = oe[1].trim();
1112
- let F = parseFloat(B);
1113
- B.includes("%") && (F = F / 100 * t.nativeRect.height), se -= F;
1121
+ const ae = _.match(/translateY\(([^)]+)\)/);
1122
+ if (ae) {
1123
+ const f = ae[1].trim();
1124
+ let b = parseFloat(f);
1125
+ f.includes("%") && (b = b / 100 * t.nativeRect.height), se -= b;
1114
1126
  }
1115
1127
  }
1116
- w.scale.set(I, q, 1), w.position.set(
1128
+ x.scale.set(U, G, 1), x.position.set(
1117
1129
  ie,
1118
1130
  se,
1119
- t.nativeStyles.zIndex + this.renderOrder * a
1120
- ), H.update(
1121
- w.material,
1131
+ t.nativeStyles.zIndex + this.renderOrder * o
1132
+ ), Y.update(
1133
+ x.material,
1122
1134
  "BOX",
1123
1135
  t.nativeStyles,
1124
1136
  "",
1125
1137
  t.nativeRect.width,
1126
1138
  t.nativeRect.height,
1127
1139
  this.qualityFactor,
1128
- t.isTraveler ? (C = this.renderTargets[t.captureLayer - 2]) == null ? void 0 : C.texture : this.textureManager.get(t.element)
1140
+ t.isTraveler ? (S = this.renderTargets[t.captureLayer - 2]) == null ? void 0 : S.texture : this.textureManager.get(t.element)
1129
1141
  );
1130
1142
  } else
1131
1143
  e.userData.nativeMesh && (this.scene.remove(e.userData.nativeMesh), e.userData.nativeMesh.material instanceof y.Material && e.userData.nativeMesh.material.dispose(), delete e.userData.nativeMesh);
1132
1144
  }
1133
1145
  updateMeshLayers(e, t) {
1134
- const r = t.visibility & $ ? U.BASE : U.HIDDEN;
1135
- if (e.layers.set(r), t.visibility & te && e.layers.enable(U.SELECTED), e.userData.nativeMesh && t.nativeLayer !== void 0) {
1146
+ const r = t.visibility & W ? B.BASE : B.HIDDEN;
1147
+ if (e.layers.set(r), t.visibility & te && e.layers.enable(B.SELECTED), e.userData.nativeMesh && t.nativeLayer !== void 0) {
1136
1148
  const i = e.userData.nativeMesh;
1137
- if (i.layers.set(U.HIDDEN), t.visibility & $) {
1138
- for (let c = t.captureLayer; c < t.nativeLayer; c++)
1139
- e.layers.enable(U.getCaptureLayer(c));
1140
- for (let c = Math.max(t.captureLayer, t.nativeLayer); c <= _.MAX_LAYERS + 1; c++)
1141
- i.layers.enable(U.getCaptureLayer(c));
1149
+ if (i.layers.set(B.HIDDEN), t.visibility & W) {
1150
+ i.layers.enable(B.getCaptureLayer(t.nativeLayer));
1151
+ for (let l = t.captureLayer; l <= O.MAX_LAYERS + 1; l++)
1152
+ l !== t.nativeLayer && e.layers.enable(B.getCaptureLayer(l));
1142
1153
  }
1143
- } else if (t.visibility & $)
1144
- for (let i = t.captureLayer; i <= _.MAX_LAYERS + 1; i++)
1145
- e.layers.enable(U.getCaptureLayer(i));
1154
+ } else if (t.visibility & W)
1155
+ for (let i = t.captureLayer; i <= O.MAX_LAYERS + 1; i++)
1156
+ e.layers.enable(B.getCaptureLayer(i));
1146
1157
  }
1147
1158
  captureRenderTarget(e, t, r) {
1148
1159
  if (e.size === 0 || !r)
1149
1160
  return;
1150
- const i = new y.Color(), c = this.renderer.getClearAlpha();
1161
+ const i = new y.Color(), l = this.renderer.getClearAlpha();
1151
1162
  this.renderer.getClearColor(i), this.renderer.setClearColor(0, 0), this.renderer.setRenderTarget(r), this.renderer.clear(), this.renderer.autoClear = !1, this.renderer.setScissorTest(!0), this.camera.layers.set(t);
1152
- const n = new y.Vector3(), o = this.isViewport ? window.innerWidth + this.overscan * 2 : this.targetRect.width, a = this.isViewport ? window.innerHeight + this.overscan * 2 : this.targetRect.height, l = this.renderer.getPixelRatio();
1163
+ const n = new y.Vector3(), a = this.isViewport ? window.innerWidth + this.overscan * 2 : this.targetRect.width, o = this.isViewport ? window.innerHeight + this.overscan * 2 : this.targetRect.height, c = this.renderer.getPixelRatio();
1153
1164
  for (const d of e) {
1154
1165
  n.setFromMatrixPosition(d.matrixWorld), n.project(this.camera);
1155
- const h = (n.x + 1) / 2 * o, f = (n.y + 1) / 2 * a;
1156
- let p = 0, g = 1;
1157
- typeof this.clipArea == "number" ? g = this.clipArea : this.clipArea.endsWith("%") ? g = parseFloat(this.clipArea) / 100 : this.clipArea.endsWith("px") && (p = parseFloat(this.clipArea));
1158
- const v = d.scale.x * g + 0.5, b = d.scale.y * g + 0.5, L = h - v / 2, M = f - b / 2, S = (L * this.qualityFactor - p) / l, x = (M * this.qualityFactor - p) / l, C = (v * this.qualityFactor + p * 2) / l, w = (b * this.qualityFactor + p * 2) / l;
1159
- this.renderer.setScissor(S, x, C, w), this.renderer.render(this.scene, this.camera);
1166
+ const h = (n.x + 1) / 2 * a, g = (n.y + 1) / 2 * o;
1167
+ let v = 0, p = 1;
1168
+ typeof this.clipArea == "number" ? p = this.clipArea : this.clipArea.endsWith("%") ? p = parseFloat(this.clipArea) / 100 : this.clipArea.endsWith("px") && (v = parseFloat(this.clipArea));
1169
+ const m = d.scale.x * p + 0.5, w = d.scale.y * p + 0.5, L = h - m / 2, M = g - w / 2, T = (L * this.qualityFactor - v) / c, E = (M * this.qualityFactor - v) / c, S = (m * this.qualityFactor + v * 2) / c, x = (w * this.qualityFactor + v * 2) / c;
1170
+ this.renderer.setScissor(T, E, S, x), this.renderer.render(this.scene, this.camera);
1160
1171
  }
1161
- this.renderer.setScissorTest(!1), this.renderer.autoClear = !0, this.renderer.setRenderTarget(null), this.camera.layers.set(this.getSceneLayer()), this.renderer.setClearColor(i, c);
1172
+ this.renderer.setScissorTest(!1), this.renderer.autoClear = !0, this.renderer.setRenderTarget(null), this.camera.layers.set(this.getSceneLayer()), this.renderer.setClearColor(i, l);
1162
1173
  }
1163
1174
  render() {
1164
- for (let e = 0; e < _.MAX_LAYERS; e++) {
1175
+ for (let e = 0; e < O.MAX_LAYERS; e++) {
1165
1176
  const t = e + 1;
1166
1177
  this.captureRenderTarget(
1167
1178
  this.travelersByLayer[e],
1168
- U.getCaptureLayer(t),
1179
+ B.getCaptureLayer(t),
1169
1180
  this.renderTargets[e]
1170
1181
  );
1171
1182
  }
1172
1183
  this.renderer.render(this.scene, this.camera);
1173
1184
  }
1174
1185
  syncMeshesByDOM() {
1175
- const e = this.targetRect.left + window.scrollX, t = this.targetRect.top + window.scrollY, r = this.renderer.getPixelRatio(), i = this.renderer.domElement.width / r, c = this.renderer.domElement.height / r;
1186
+ const e = this.targetRect.left + window.scrollX, t = this.targetRect.top + window.scrollY, r = this.renderer.getPixelRatio(), i = this.renderer.domElement.width / r, l = this.renderer.domElement.height / r;
1176
1187
  this.scene.children.forEach((n) => {
1177
- const o = n;
1178
- if (!o.userData || !o.userData.domElement)
1188
+ const a = n;
1189
+ if (!a.userData || !a.userData.domElement)
1179
1190
  return;
1180
- const a = o.userData.domElement;
1181
- if (!a.isConnected)
1191
+ const o = a.userData.domElement;
1192
+ if (!o.isConnected)
1182
1193
  return;
1183
- let l;
1184
- if (a.nodeType === Node.TEXT_NODE) {
1194
+ let c;
1195
+ if (o.nodeType === Node.TEXT_NODE) {
1185
1196
  const h = document.createRange();
1186
- h.selectNode(a), l = h.getBoundingClientRect();
1197
+ h.selectNode(o), c = h.getBoundingClientRect();
1187
1198
  } else
1188
- l = a.getBoundingClientRect();
1189
- const d = o.userData.domRect;
1190
- if (!d || Math.abs(l.x - d.x) > 0.5 || Math.abs(l.y - d.y) > 0.5 || Math.abs(l.width - d.width) > 0.5 || Math.abs(l.height - d.height) > 0.5) {
1191
- o.userData.domRect = {
1192
- x: l.x,
1193
- y: l.y,
1194
- width: l.width,
1195
- height: l.height
1199
+ c = o.getBoundingClientRect();
1200
+ const d = a.userData.domRect;
1201
+ if (!d || Math.abs(c.x - d.x) > 0.5 || Math.abs(c.y - d.y) > 0.5 || Math.abs(c.width - d.width) > 0.5 || Math.abs(c.height - d.height) > 0.5) {
1202
+ a.userData.domRect = {
1203
+ x: c.x,
1204
+ y: c.y,
1205
+ width: c.width,
1206
+ height: c.height
1196
1207
  };
1197
- let h, f;
1208
+ let h, g;
1198
1209
  if (this.isViewport)
1199
- h = l.x - window.innerWidth / 2 + l.width / 2, f = -l.y + window.innerHeight / 2 - l.height / 2;
1210
+ h = c.x - window.innerWidth / 2 + c.width / 2, g = -c.y + window.innerHeight / 2 - c.height / 2;
1200
1211
  else {
1201
- const p = l.x - e, g = l.y - t;
1202
- h = p - i / 2 + l.width / 2, f = -g + c / 2 - l.height / 2;
1212
+ const v = c.x - e, p = c.y - t;
1213
+ h = v - i / 2 + c.width / 2, g = -p + l / 2 - c.height / 2;
1203
1214
  }
1204
- if (o.position.setX(h), o.position.setY(f), o.scale.set(l.width, l.height, 1), o.updateMatrixWorld(), o.material instanceof y.ShaderMaterial && H.forceUpdateUniforms(o.material, {
1205
- width: l.width,
1206
- height: l.height
1207
- }), o.userData.nativeMesh) {
1208
- const p = o.userData.nativeMesh;
1209
- let g = l.width, v = l.height, b = h, L = f;
1210
- if (o.userData.nativeTransform) {
1211
- const M = o.userData.nativeTransform, S = M.match(/scale\(([\d.]+%?)\)/);
1212
- if (S) {
1213
- let T = parseFloat(S[1]);
1214
- S[1].includes("%") && (T /= 100), g *= T, v *= T;
1215
+ if (a.position.setX(h), a.position.setY(g), a.scale.set(c.width, c.height, 1), a.updateMatrixWorld(), a.material instanceof y.ShaderMaterial && Y.forceUpdateUniforms(a.material, {
1216
+ width: c.width,
1217
+ height: c.height
1218
+ }), a.userData.nativeMesh) {
1219
+ const v = a.userData.nativeMesh;
1220
+ let p = c.width, m = c.height, w = h, L = g;
1221
+ if (a.userData.nativeTransform) {
1222
+ const M = a.userData.nativeTransform, T = M.match(/scale\(([\d.]+%?)\)/);
1223
+ if (T) {
1224
+ let R = parseFloat(T[1]);
1225
+ T[1].includes("%") && (R /= 100), p *= R, m *= R;
1215
1226
  }
1216
- const x = M.match(/translate\(([^,]+),\s*([^)]+)\)/);
1217
- if (x) {
1218
- const T = x[1].trim(), A = x[2].trim();
1219
- let I = parseFloat(T);
1220
- T.includes("%") && (I = I / 100 * l.width);
1221
- let q = parseFloat(A);
1222
- A.includes("%") && (q = q / 100 * l.height), b += I, L -= q;
1227
+ const E = M.match(/translate\(([^,]+),\s*([^)]+)\)/);
1228
+ if (E) {
1229
+ const R = E[1].trim(), A = E[2].trim();
1230
+ let U = parseFloat(R);
1231
+ R.includes("%") && (U = U / 100 * c.width);
1232
+ let G = parseFloat(A);
1233
+ A.includes("%") && (G = G / 100 * c.height), w += U, L -= G;
1223
1234
  }
1224
- const C = M.match(/translateX\(([^)]+)\)/);
1225
- if (C) {
1226
- const T = C[1].trim();
1227
- let A = parseFloat(T);
1228
- T.includes("%") && (A = A / 100 * l.width), b += A;
1235
+ const S = M.match(/translateX\(([^)]+)\)/);
1236
+ if (S) {
1237
+ const R = S[1].trim();
1238
+ let A = parseFloat(R);
1239
+ R.includes("%") && (A = A / 100 * c.width), w += A;
1229
1240
  }
1230
- const w = M.match(/translateY\(([^)]+)\)/);
1231
- if (w) {
1232
- const T = w[1].trim();
1233
- let A = parseFloat(T);
1234
- T.includes("%") && (A = A / 100 * l.height), L -= A;
1241
+ const x = M.match(/translateY\(([^)]+)\)/);
1242
+ if (x) {
1243
+ const R = x[1].trim();
1244
+ let A = parseFloat(R);
1245
+ R.includes("%") && (A = A / 100 * c.height), L -= A;
1235
1246
  }
1236
1247
  }
1237
- p.position.setX(b), p.position.setY(L), p.scale.set(g, v, 1), p.updateMatrixWorld();
1248
+ v.position.setX(w), v.position.setY(L), v.scale.set(p, m, 1), v.updateMatrixWorld();
1238
1249
  }
1239
1250
  }
1240
1251
  });
@@ -1242,17 +1253,17 @@ class rt {
1242
1253
  }
1243
1254
  function it(s) {
1244
1255
  const e = s.textContent || "", t = [];
1245
- let r = "", i = null, c = -1;
1246
- const n = (l, d) => {
1247
- for (let h = 0; h < l.length; h++) {
1248
- const f = l[h], p = document.createRange();
1249
- p.setStart(s, d + h), p.setEnd(s, d + h + 1);
1250
- const g = p.getBoundingClientRect();
1251
- if (g.width === 0 && g.height === 0) {
1252
- r += f;
1256
+ let r = "", i = null, l = -1;
1257
+ const n = (c, d) => {
1258
+ for (let h = 0; h < c.length; h++) {
1259
+ const g = c[h], v = document.createRange();
1260
+ v.setStart(s, d + h), v.setEnd(s, d + h + 1);
1261
+ const p = v.getBoundingClientRect();
1262
+ if (p.width === 0 && p.height === 0) {
1263
+ r += g;
1253
1264
  continue;
1254
1265
  }
1255
- c === -1 || Math.abs(g.top - c) > g.height / 2 ? (r && i && t.push({
1266
+ l === -1 || Math.abs(p.top - l) > p.height / 2 ? (r && i && t.push({
1256
1267
  text: r,
1257
1268
  rect: {
1258
1269
  left: i.left,
@@ -1260,31 +1271,31 @@ function it(s) {
1260
1271
  width: i.right - i.left,
1261
1272
  height: i.bottom - i.top
1262
1273
  }
1263
- }), r = f, i = {
1264
- left: g.left,
1265
- top: g.top,
1266
- right: g.right,
1267
- bottom: g.bottom
1268
- }, c = g.top) : (r += f, i && (i.left = Math.min(i.left, g.left), i.top = Math.min(i.top, g.top), i.right = Math.max(i.right, g.right), i.bottom = Math.max(
1274
+ }), r = g, i = {
1275
+ left: p.left,
1276
+ top: p.top,
1277
+ right: p.right,
1278
+ bottom: p.bottom
1279
+ }, l = p.top) : (r += g, i && (i.left = Math.min(i.left, p.left), i.top = Math.min(i.top, p.top), i.right = Math.max(i.right, p.right), i.bottom = Math.max(
1269
1280
  i.bottom,
1270
- g.bottom
1281
+ p.bottom
1271
1282
  )));
1272
1283
  }
1273
- }, o = e.match(/[^\s\-]+\-?|\-|\s+/g) || [];
1274
- let a = 0;
1275
- for (const l of o) {
1284
+ }, a = e.match(/[^\s\-]+\-?|\-|\s+/g) || [];
1285
+ let o = 0;
1286
+ for (const c of a) {
1276
1287
  const d = document.createRange();
1277
- d.setStart(s, a), d.setEnd(s, a + l.length);
1288
+ d.setStart(s, o), d.setEnd(s, o + c.length);
1278
1289
  const h = d.getClientRects();
1279
1290
  if (h.length > 1)
1280
- n(l, a);
1291
+ n(c, o);
1281
1292
  else {
1282
- const f = h.length === 1 ? h[0] : d.getBoundingClientRect();
1283
- if (f.width === 0 && f.height === 0) {
1284
- r += l, a += l.length;
1293
+ const g = h.length === 1 ? h[0] : d.getBoundingClientRect();
1294
+ if (g.width === 0 && g.height === 0) {
1295
+ r += c, o += c.length;
1285
1296
  continue;
1286
1297
  }
1287
- c === -1 || Math.abs(f.top - c) > f.height / 2 ? (r && i && t.push({
1298
+ l === -1 || Math.abs(g.top - l) > g.height / 2 ? (r && i && t.push({
1288
1299
  text: r,
1289
1300
  rect: {
1290
1301
  left: i.left,
@@ -1292,17 +1303,17 @@ function it(s) {
1292
1303
  width: i.right - i.left,
1293
1304
  height: i.bottom - i.top
1294
1305
  }
1295
- }), r = l, i = {
1296
- left: f.left,
1297
- top: f.top,
1298
- right: f.right,
1299
- bottom: f.bottom
1300
- }, c = f.top) : (r += l, i && (i.left = Math.min(i.left, f.left), i.top = Math.min(i.top, f.top), i.right = Math.max(i.right, f.right), i.bottom = Math.max(
1306
+ }), r = c, i = {
1307
+ left: g.left,
1308
+ top: g.top,
1309
+ right: g.right,
1310
+ bottom: g.bottom
1311
+ }, l = g.top) : (r += c, i && (i.left = Math.min(i.left, g.left), i.top = Math.min(i.top, g.top), i.right = Math.max(i.right, g.right), i.bottom = Math.max(
1301
1312
  i.bottom,
1302
- f.bottom
1313
+ g.bottom
1303
1314
  )));
1304
1315
  }
1305
- a += l.length;
1316
+ o += c.length;
1306
1317
  }
1307
1318
  return r && i && t.push({
1308
1319
  text: r,
@@ -1313,7 +1324,7 @@ function it(s) {
1313
1324
  height: i.bottom - i.top
1314
1325
  }
1315
1326
  }), t.filter(
1316
- (l) => l.text.trim().length > 0 && l.rect.width > 0 && l.rect.height > 0
1327
+ (c) => c.text.trim().length > 0 && c.rect.width > 0 && c.rect.height > 0
1317
1328
  );
1318
1329
  }
1319
1330
  function Me(s) {
@@ -1332,73 +1343,73 @@ function Me(s) {
1332
1343
  letterSpacing: r
1333
1344
  };
1334
1345
  }
1335
- function Ue(s, e = Q | ce | Ye | ve | ue, t, r = 1, i = 0, c = 2, n, o) {
1336
- var N, Z, ne, oe, B, F;
1346
+ function Ue(s, e = K | ce | Ye | ve | ue, t, r = 1, i = 0, l = 2, n, a) {
1347
+ var N, J, Q, Z, ne, ae;
1337
1348
  if (s.nodeType === Node.TEXT_NODE) {
1338
- const m = s;
1339
- if (!m.textContent || !m.textContent.trim())
1349
+ const f = s;
1350
+ if (!f.textContent || !f.textContent.trim())
1340
1351
  return null;
1341
- const R = m.textContent.replace(/\s+/g, " ");
1342
- if (R.length === 0)
1352
+ const b = f.textContent.replace(/\s+/g, " ");
1353
+ if (b.length === 0)
1343
1354
  return null;
1344
- const O = it(m);
1345
- if (O.length === 0)
1355
+ const k = it(f);
1356
+ if (k.length === 0)
1346
1357
  return null;
1347
- const V = m.parentElement, k = V ? window.getComputedStyle(V) : null;
1348
- if (!k)
1358
+ const F = f.parentElement, I = F ? window.getComputedStyle(F) : null;
1359
+ if (!I)
1349
1360
  return null;
1350
- const P = Math.min(...O.map((E) => E.rect.left)), z = Math.min(...O.map((E) => E.rect.top)), j = Math.max(...O.map((E) => E.rect.left + E.rect.width)), D = Math.max(...O.map((E) => E.rect.top + E.rect.height));
1361
+ const H = Math.min(...k.map((C) => C.rect.left)), z = Math.min(...k.map((C) => C.rect.top)), $ = Math.max(...k.map((C) => C.rect.left + C.rect.width)), D = Math.max(...k.map((C) => C.rect.top + C.rect.height));
1351
1362
  return {
1352
1363
  id: Math.random().toString(36).substring(2, 9),
1353
1364
  type: "TEXT",
1354
- element: m,
1365
+ element: f,
1355
1366
  rect: {
1356
- x: P + window.scrollX,
1367
+ x: H + window.scrollX,
1357
1368
  y: z + window.scrollY,
1358
- width: j - P,
1369
+ width: $ - H,
1359
1370
  height: D - z
1360
1371
  },
1361
1372
  styles: {
1362
1373
  backgroundColor: "transparent",
1363
1374
  backgroundImage: "",
1364
- opacity: V && V.dataset[K.KEY] === K.VALUES.HIDE ? 1 : parseFloat(k.opacity),
1365
- zIndex: (isNaN(parseInt(k.zIndex)) ? 0 : parseInt(k.zIndex)) + i,
1375
+ opacity: F && F.dataset[q.KEY] === q.VALUES.HIDE ? 1 : parseFloat(I.opacity),
1376
+ zIndex: (isNaN(parseInt(I.zIndex)) ? 0 : parseInt(I.zIndex)) + i,
1366
1377
  borderRadius: "0px",
1367
1378
  borderColor: "transparent",
1368
1379
  borderWidth: "0px",
1369
1380
  isTraveler: !1
1370
1381
  },
1371
- textContent: R,
1372
- textLines: O.map((E) => ({
1373
- text: E.text.trim(),
1382
+ textContent: b,
1383
+ textLines: k.map((C) => ({
1384
+ text: C.text.trim(),
1374
1385
  rect: {
1375
- x: E.rect.left + window.scrollX,
1376
- y: E.rect.top + window.scrollY,
1377
- width: E.rect.width,
1378
- height: E.rect.height
1386
+ x: C.rect.left + window.scrollX,
1387
+ y: C.rect.top + window.scrollY,
1388
+ width: C.rect.width,
1389
+ height: C.rect.height
1379
1390
  }
1380
1391
  })),
1381
- textStyles: Me(k),
1392
+ textStyles: Me(I),
1382
1393
  dirtyMask: e,
1383
1394
  visibility: t,
1384
1395
  isTraveler: !1,
1385
1396
  captureLayer: r,
1386
- isFixed: k.position === "fixed",
1397
+ isFixed: I.position === "fixed",
1387
1398
  nativeLayer: n,
1388
- nativeStyles: o ? J(J({
1399
+ nativeStyles: a ? j(j({
1389
1400
  backgroundColor: "transparent",
1390
1401
  backgroundImage: "",
1391
- opacity: V && V.dataset[K.KEY] === K.VALUES.HIDE ? 1 : parseFloat(k.opacity),
1392
- zIndex: (isNaN(parseInt(k.zIndex)) ? 0 : parseInt(k.zIndex)) + i,
1402
+ opacity: F && F.dataset[q.KEY] === q.VALUES.HIDE ? 1 : parseFloat(I.opacity),
1403
+ zIndex: (isNaN(parseInt(I.zIndex)) ? 0 : parseInt(I.zIndex)) + i,
1393
1404
  borderRadius: "0px",
1394
1405
  borderColor: "transparent",
1395
1406
  borderWidth: "0px",
1396
1407
  isTraveler: !1
1397
- }, Me(k)), o) : void 0,
1398
- nativeRect: o ? {
1399
- x: P + window.scrollX,
1408
+ }, Me(I)), a) : void 0,
1409
+ nativeRect: a ? {
1410
+ x: H + window.scrollX,
1400
1411
  y: z + window.scrollY,
1401
- width: j - P,
1412
+ width: $ - H,
1402
1413
  height: D - z
1403
1414
  } : void 0,
1404
1415
  children: []
@@ -1406,213 +1417,213 @@ function Ue(s, e = Q | ce | Ye | ve | ue, t, r = 1, i = 0, c = 2, n, o) {
1406
1417
  }
1407
1418
  if (s.nodeType !== Node.ELEMENT_NODE)
1408
1419
  return null;
1409
- const a = s, l = a.dataset[W.KEY];
1420
+ const o = s, c = o.dataset[V.KEY];
1410
1421
  let d = t, h = t;
1411
- if (l) {
1412
- const m = new Set(l.split(/\s+/));
1413
- for (const R of m)
1414
- if (!Te.includes(R))
1422
+ if (c) {
1423
+ const f = new Set(c.split(/\s+/));
1424
+ for (const b of f)
1425
+ if (!Te.includes(b))
1415
1426
  throw new Error(
1416
- `[MirageEngine] Invalid filter token: '${R}'. Expected one of: 'include-tree', 'exclude-tree', 'include-self', 'exclude-self', 'end'.`
1427
+ `[MirageEngine] Invalid filter token: '${b}'. Expected one of: 'include-tree', 'exclude-tree', 'include-self', 'exclude-self', 'end'.`
1417
1428
  );
1418
- if (m.has(W.VALUES.END))
1429
+ if (f.has(V.VALUES.END))
1419
1430
  return null;
1420
- if (m.has(W.VALUES.INCLUDE_TREE) && m.has(W.VALUES.EXCLUDE_TREE))
1431
+ if (f.has(V.VALUES.INCLUDE_TREE) && f.has(V.VALUES.EXCLUDE_TREE))
1421
1432
  throw new Error(
1422
1433
  "[MirageEngine] Conflicting filters: 'include-tree' and 'exclude-tree' cannot be used together on the same element."
1423
1434
  );
1424
- if (m.has(W.VALUES.INCLUDE_SELF) && m.has(W.VALUES.EXCLUDE_SELF))
1435
+ if (f.has(V.VALUES.INCLUDE_SELF) && f.has(V.VALUES.EXCLUDE_SELF))
1425
1436
  throw new Error(
1426
1437
  "[MirageEngine] Conflicting filters: 'include-self' and 'exclude-self' cannot be used together on the same element."
1427
1438
  );
1428
- m.has(W.VALUES.INCLUDE_TREE) ? d = d | $ : m.has(W.VALUES.EXCLUDE_TREE) && (d = d & ~$), h = d, m.has(W.VALUES.INCLUDE_SELF) ? h = h | $ : m.has(W.VALUES.EXCLUDE_SELF) && (h = h & ~$);
1439
+ f.has(V.VALUES.INCLUDE_TREE) ? d = d | W : f.has(V.VALUES.EXCLUDE_TREE) && (d = d & ~W), h = d, f.has(V.VALUES.INCLUDE_SELF) ? h = h | W : f.has(V.VALUES.EXCLUDE_SELF) && (h = h & ~W);
1429
1440
  }
1430
- const f = a.dataset[G.KEY];
1431
- if (f) {
1432
- const m = new Set(f.split(/\s+/));
1433
- for (const R of m)
1434
- if (!Te.includes(R))
1441
+ const g = o.dataset[P.KEY];
1442
+ if (g) {
1443
+ const f = new Set(g.split(/\s+/));
1444
+ for (const b of f)
1445
+ if (!Te.includes(b))
1435
1446
  throw new Error(
1436
- `[MirageEngine] Invalid select token: '${R}'. Expected one of: 'include-tree', 'exclude-tree', 'include-self', 'exclude-self', 'end'.`
1447
+ `[MirageEngine] Invalid select token: '${b}'. Expected one of: 'include-tree', 'exclude-tree', 'include-self', 'exclude-self', 'end'.`
1437
1448
  );
1438
- if (m.has(G.VALUES.END))
1449
+ if (f.has(P.VALUES.END))
1439
1450
  return null;
1440
- if (m.has(G.VALUES.INCLUDE_TREE) && m.has(G.VALUES.EXCLUDE_TREE))
1451
+ if (f.has(P.VALUES.INCLUDE_TREE) && f.has(P.VALUES.EXCLUDE_TREE))
1441
1452
  throw new Error(
1442
1453
  "[MirageEngine] Conflicting selects: 'include-tree' and 'exclude-tree' cannot be used together on the same element."
1443
1454
  );
1444
- if (m.has(G.VALUES.INCLUDE_SELF) && m.has(G.VALUES.EXCLUDE_SELF))
1455
+ if (f.has(P.VALUES.INCLUDE_SELF) && f.has(P.VALUES.EXCLUDE_SELF))
1445
1456
  throw new Error(
1446
1457
  "[MirageEngine] Conflicting selects: 'include-self' and 'exclude-self' cannot be used together on the same element."
1447
1458
  );
1448
- m.has(G.VALUES.INCLUDE_TREE) ? d = d | te : m.has(G.VALUES.EXCLUDE_TREE) && (d = d & ~te), h = d, m.has(G.VALUES.INCLUDE_SELF) ? h = h | te : m.has(G.VALUES.EXCLUDE_SELF) && (h = h & ~te);
1449
- }
1450
- const p = a.dataset[_.KEY];
1451
- let g = !1, v = o ? J({}, o) : {}, b = n;
1452
- if (p) {
1453
- let m = 1;
1454
- const R = p.indexOf("{"), O = p.lastIndexOf("}");
1455
- let V = p;
1456
- if (R !== -1 && O !== -1 && O > R) {
1457
- V = p.substring(0, R).trim();
1458
- const D = p.substring(R, O + 1);
1459
+ f.has(P.VALUES.INCLUDE_TREE) ? d = d | te : f.has(P.VALUES.EXCLUDE_TREE) && (d = d & ~te), h = d, f.has(P.VALUES.INCLUDE_SELF) ? h = h | te : f.has(P.VALUES.EXCLUDE_SELF) && (h = h & ~te);
1460
+ }
1461
+ const v = o.dataset[O.KEY];
1462
+ let p = !1, m = a ? j({}, a) : {}, w = n;
1463
+ if (v) {
1464
+ let f = 1;
1465
+ const b = v.indexOf("{"), k = v.lastIndexOf("}");
1466
+ let F = v;
1467
+ if (b !== -1 && k !== -1 && k > b) {
1468
+ F = v.substring(0, b).trim();
1469
+ const D = v.substring(b, k + 1);
1459
1470
  try {
1460
- v = new Function("return " + D)();
1461
- } catch (E) {
1471
+ m = new Function("return " + D)();
1472
+ } catch (C) {
1462
1473
  console.warn(
1463
1474
  `[MirageEngine] Failed to parse travel styles JSON: ${D}`
1464
1475
  );
1465
1476
  }
1466
1477
  }
1467
- const k = V.split(/\s+/);
1468
- let P = !1;
1469
- const z = k.indexOf(_.VALUES.TRAVELER);
1478
+ const I = F.split(/\s+/);
1479
+ let H = !1;
1480
+ const z = I.indexOf(O.VALUES.TRAVELER);
1470
1481
  if (z !== -1) {
1471
- g = !0, P = !0;
1472
- const D = k[z + 1];
1482
+ p = !0, H = !0;
1483
+ const D = I[z + 1];
1473
1484
  if (D && !isNaN(parseInt(D, 10)))
1474
- m = parseInt(D, 10);
1485
+ f = parseInt(D, 10);
1475
1486
  else {
1476
- const E = k.find((ee) => !isNaN(parseInt(ee, 10)));
1477
- E && (m = parseInt(E, 10));
1487
+ const C = I.find((ee) => !isNaN(parseInt(ee, 10)));
1488
+ C && (f = parseInt(C, 10));
1478
1489
  }
1479
1490
  }
1480
- const j = k.indexOf(_.VALUES.NATIVE);
1481
- if (j !== -1) {
1482
- const D = k[j + 1];
1491
+ const $ = I.indexOf(O.VALUES.NATIVE);
1492
+ if ($ !== -1) {
1493
+ const D = I[$ + 1];
1483
1494
  if (D && !isNaN(parseInt(D, 10)))
1484
- b = parseInt(D, 10);
1485
- else if (!g) {
1486
- const E = k.find((ee) => !isNaN(parseInt(ee, 10)));
1487
- E && (b = parseInt(E, 10));
1495
+ w = parseInt(D, 10);
1496
+ else if (!p) {
1497
+ const C = I.find((ee) => !isNaN(parseInt(ee, 10)));
1498
+ C && (w = parseInt(C, 10));
1488
1499
  }
1489
1500
  }
1490
- if (P) {
1491
- const D = m + 1;
1501
+ if (H) {
1502
+ const D = f + 1;
1492
1503
  if (D < r)
1493
1504
  throw new Error(
1494
- `[MirageEngine] Traveler layer (${m}) cannot be smaller than inherited capture layer (${r - 1}).`
1505
+ `[MirageEngine] Traveler layer (${f}) cannot be smaller than inherited capture layer (${r - 1}).`
1495
1506
  );
1496
- r = Math.min(D, _.MAX_LAYERS + 1);
1507
+ r = Math.min(D, O.MAX_LAYERS + 1);
1497
1508
  }
1498
1509
  }
1499
- const L = a.dataset[Ve.KEY];
1510
+ const L = o.dataset[Ve.KEY];
1500
1511
  let M;
1501
1512
  L && (M = JSON.parse(L));
1502
- const S = a.getBoundingClientRect(), x = window.getComputedStyle(a);
1503
- if (S.width === 0 || S.height === 0 || x.display === "none")
1513
+ const T = o.getBoundingClientRect(), E = window.getComputedStyle(o);
1514
+ if (T.width === 0 || T.height === 0 || E.display === "none")
1504
1515
  return null;
1505
- let C = a.getAttribute("data-mid");
1506
- C || (C = Math.random().toString(36).substring(2, 11), a.setAttribute("data-mid", C));
1507
- const w = parseInt(x.zIndex), T = (isNaN(w) ? 0 : w) + i;
1516
+ let S = o.getAttribute("data-mid");
1517
+ S || (S = Math.random().toString(36).substring(2, 11), o.setAttribute("data-mid", S));
1518
+ const x = parseInt(E.zIndex), R = (isNaN(x) ? 0 : x) + i;
1508
1519
  let A;
1509
- if (a.tagName === "IMG")
1510
- A = a.src;
1511
- else if (a.tagName.toLowerCase() === "svg") {
1512
- const m = a.cloneNode(!0), R = v == null ? void 0 : v.color, O = v == null ? void 0 : v.fill, V = v == null ? void 0 : v.stroke, k = v == null ? void 0 : v.opacity, P = (E, ee) => {
1513
- const Y = window.getComputedStyle(E), ae = ee, Be = Y.fill === Y.color, Oe = Y.stroke === Y.color, fe = O || (Be ? R : void 0) || Y.fill;
1514
- fe && fe !== "none" && (ae.style.fill = fe);
1515
- const ge = V || (Oe ? R : void 0) || Y.stroke;
1516
- ge && ge !== "none" && (ae.style.stroke = ge), Y.strokeWidth && Y.strokeWidth !== "0px" && (ae.style.strokeWidth = Y.strokeWidth);
1517
- const be = R || Y.color;
1518
- be && (ae.style.color = be);
1519
- const pe = k || Y.opacity;
1520
- pe && pe !== "1" && (ae.style.opacity = pe);
1521
- for (let he = 0; he < E.children.length; he++)
1522
- P(E.children[he], ee.children[he]);
1520
+ if (o.tagName === "IMG")
1521
+ A = o.src;
1522
+ else if (o.tagName.toLowerCase() === "svg") {
1523
+ const f = o.cloneNode(!0), b = m == null ? void 0 : m.color, k = m == null ? void 0 : m.fill, F = m == null ? void 0 : m.stroke, I = m == null ? void 0 : m.opacity, H = (C, ee) => {
1524
+ const X = window.getComputedStyle(C), oe = ee, Be = X.fill === X.color, Fe = X.stroke === X.color, fe = k || (Be ? b : void 0) || X.fill;
1525
+ fe && fe !== "none" && (oe.style.fill = fe);
1526
+ const ge = F || (Fe ? b : void 0) || X.stroke;
1527
+ ge && ge !== "none" && (oe.style.stroke = ge), X.strokeWidth && X.strokeWidth !== "0px" && (oe.style.strokeWidth = X.strokeWidth);
1528
+ const be = b || X.color;
1529
+ be && (oe.style.color = be);
1530
+ const pe = I || X.opacity;
1531
+ pe && pe !== "1" && (oe.style.opacity = pe);
1532
+ for (let he = 0; he < C.children.length; he++)
1533
+ H(C.children[he], ee.children[he]);
1523
1534
  };
1524
- P(a, m);
1525
- const z = a.getBoundingClientRect(), j = window.devicePixelRatio * c;
1526
- m.hasAttribute("viewBox") || m.setAttribute("viewBox", `0 0 ${z.width} ${z.height}`), m.setAttribute("width", (z.width * j).toString()), m.setAttribute("height", (z.height * j).toString());
1527
- let D = new XMLSerializer().serializeToString(m);
1535
+ H(o, f);
1536
+ const z = o.getBoundingClientRect(), $ = window.devicePixelRatio * l;
1537
+ f.hasAttribute("viewBox") || f.setAttribute("viewBox", `0 0 ${z.width} ${z.height}`), f.setAttribute("width", (z.width * $).toString()), f.setAttribute("height", (z.height * $).toString());
1538
+ let D = new XMLSerializer().serializeToString(f);
1528
1539
  D.includes("xmlns=") || (D = D.replace(
1529
1540
  "<svg",
1530
1541
  '<svg xmlns="http://www.w3.org/2000/svg"'
1531
1542
  )), A = `data:image/svg+xml;utf8,${encodeURIComponent(D)}`;
1532
- } else if (x.backgroundImage && x.backgroundImage !== "none") {
1533
- const m = x.backgroundImage.match(/url\(['"]?(.*?)['"]?\)/);
1534
- m && (A = m[1]);
1535
- }
1536
- const I = {
1537
- backgroundColor: x.backgroundColor,
1538
- backgroundImage: x.backgroundImage,
1539
- opacity: a.dataset[K.KEY] === K.VALUES.HIDE ? 1 : parseFloat(x.opacity),
1540
- zIndex: T,
1541
- borderRadius: x.borderRadius,
1542
- borderColor: x.borderColor,
1543
- borderWidth: x.borderWidth,
1543
+ } else if (E.backgroundImage && E.backgroundImage !== "none") {
1544
+ const f = E.backgroundImage.match(/url\(['"]?(.*?)['"]?\)/);
1545
+ f && (A = f[1]);
1546
+ }
1547
+ const U = {
1548
+ backgroundColor: E.backgroundColor,
1549
+ backgroundImage: E.backgroundImage,
1550
+ opacity: o.dataset[q.KEY] === q.VALUES.HIDE ? 1 : parseFloat(E.opacity),
1551
+ zIndex: R,
1552
+ borderRadius: E.borderRadius,
1553
+ borderColor: E.borderColor,
1554
+ borderWidth: E.borderWidth,
1544
1555
  imageSrc: A,
1545
- isTraveler: g
1546
- }, q = I;
1556
+ isTraveler: p
1557
+ }, G = U;
1547
1558
  let ie, se;
1548
- const X = [];
1549
- return a.tagName.toLowerCase() !== "svg" && Array.from(a.childNodes).forEach((m) => {
1550
- const R = m.nodeType === Node.TEXT_NODE ? h : d, O = Ue(
1551
- m,
1559
+ const _ = [];
1560
+ return o.tagName.toLowerCase() !== "svg" && Array.from(o.childNodes).forEach((f) => {
1561
+ const b = f.nodeType === Node.TEXT_NODE ? h : d, k = Ue(
1562
+ f,
1552
1563
  e,
1553
- R,
1564
+ b,
1554
1565
  r,
1555
- T,
1556
- c,
1557
- m.nodeType === Node.TEXT_NODE ? b : void 0,
1558
- m.nodeType === Node.TEXT_NODE && Object.keys(v).length > 0 ? v : void 0
1566
+ R,
1567
+ l,
1568
+ f.nodeType === Node.TEXT_NODE ? w : void 0,
1569
+ f.nodeType === Node.TEXT_NODE && Object.keys(m).length > 0 ? m : void 0
1559
1570
  );
1560
- O && X.push(O);
1571
+ k && _.push(k);
1561
1572
  }), {
1562
- id: C,
1573
+ id: S,
1563
1574
  type: "BOX",
1564
- element: a,
1575
+ element: o,
1565
1576
  rect: {
1566
- x: S.left + window.scrollX,
1567
- y: S.top + window.scrollY,
1568
- width: S.width,
1569
- height: S.height
1577
+ x: T.left + window.scrollX,
1578
+ y: T.top + window.scrollY,
1579
+ width: T.width,
1580
+ height: T.height
1570
1581
  },
1571
- styles: q,
1582
+ styles: G,
1572
1583
  textContent: ie,
1573
1584
  textStyles: se,
1574
1585
  dirtyMask: e,
1575
1586
  visibility: h,
1576
- isTraveler: g,
1587
+ isTraveler: p,
1577
1588
  captureLayer: r,
1578
- nativeLayer: b,
1579
- nativeStyles: b !== void 0 ? xe(J({}, I), {
1580
- backgroundColor: (N = v.backgroundColor) != null ? N : I.backgroundColor,
1581
- backgroundImage: (Z = v.backgroundImage) != null ? Z : I.backgroundImage,
1582
- opacity: (ne = v.opacity) != null ? ne : I.opacity,
1583
- zIndex: v.zIndex !== void 0 ? v.zIndex + T : I.zIndex,
1584
- borderRadius: (oe = v.borderRadius) != null ? oe : I.borderRadius,
1585
- borderColor: (B = v.borderColor) != null ? B : I.borderColor,
1586
- borderWidth: (F = v.borderWidth) != null ? F : I.borderWidth,
1587
- isTraveler: I.isTraveler,
1588
- transform: v.transform
1589
+ nativeLayer: w,
1590
+ nativeStyles: w !== void 0 ? xe(j({}, U), {
1591
+ backgroundColor: (N = m.backgroundColor) != null ? N : U.backgroundColor,
1592
+ backgroundImage: (J = m.backgroundImage) != null ? J : U.backgroundImage,
1593
+ opacity: (Q = m.opacity) != null ? Q : U.opacity,
1594
+ zIndex: m.zIndex !== void 0 ? m.zIndex + R : U.zIndex,
1595
+ borderRadius: (Z = m.borderRadius) != null ? Z : U.borderRadius,
1596
+ borderColor: (ne = m.borderColor) != null ? ne : U.borderColor,
1597
+ borderWidth: (ae = m.borderWidth) != null ? ae : U.borderWidth,
1598
+ isTraveler: U.isTraveler,
1599
+ transform: m.transform
1589
1600
  }) : void 0,
1590
- nativeRect: b !== void 0 ? {
1591
- x: v.x !== void 0 ? parseFloat(v.x) : S.left + window.scrollX,
1592
- y: v.y !== void 0 ? parseFloat(v.y) : S.top + window.scrollY,
1593
- width: v.width !== void 0 ? parseFloat(v.width) : S.width,
1594
- height: v.height !== void 0 ? parseFloat(v.height) : S.height
1601
+ nativeRect: w !== void 0 ? {
1602
+ x: m.x !== void 0 ? parseFloat(m.x) : T.left + window.scrollX,
1603
+ y: m.y !== void 0 ? parseFloat(m.y) : T.top + window.scrollY,
1604
+ width: m.width !== void 0 ? parseFloat(m.width) : T.width,
1605
+ height: m.height !== void 0 ? parseFloat(m.height) : T.height
1595
1606
  } : void 0,
1596
- isFixed: x.position === "fixed",
1597
- children: X,
1607
+ isFixed: E.position === "fixed",
1608
+ children: _,
1598
1609
  shaderHooks: M
1599
1610
  };
1600
1611
  }
1601
1612
  function st(s, e) {
1602
1613
  e.size !== 0 && e.forEach((t, r) => {
1603
- var c, n, o, a;
1614
+ var l, n, a, o;
1604
1615
  const i = s.get(r);
1605
- !i || !i.userData.basePosition || (H.forceUpdateUniforms(i.material, {
1616
+ !i || !i.userData.basePosition || (Y.forceUpdateUniforms(i.material, {
1606
1617
  backgroundColor: t.backgroundColor,
1607
1618
  backgroundImage: t.backgroundImage,
1608
1619
  opacity: t.opacity,
1609
- borderRadius: (n = t.borderRadius) != null ? n : (c = i.userData.baseStyles) == null ? void 0 : c.borderRadius
1620
+ borderRadius: (n = t.borderRadius) != null ? n : (l = i.userData.baseStyles) == null ? void 0 : l.borderRadius
1610
1621
  // width and height are no longer updated here, they are updated in syncMeshesByDOM
1611
- }), i.userData.nativeMesh && H.forceUpdateUniforms(i.userData.nativeMesh.material, {
1622
+ }), i.userData.nativeMesh && Y.forceUpdateUniforms(i.userData.nativeMesh.material, {
1612
1623
  backgroundColor: t.backgroundColor,
1613
1624
  backgroundImage: t.backgroundImage,
1614
1625
  opacity: t.opacity,
1615
- borderRadius: (a = t.borderRadius) != null ? a : (o = i.userData.baseStyles) == null ? void 0 : o.borderRadius
1626
+ borderRadius: (o = t.borderRadius) != null ? o : (a = i.userData.baseStyles) == null ? void 0 : a.borderRadius
1616
1627
  }));
1617
1628
  });
1618
1629
  }
@@ -1625,19 +1636,19 @@ class nt {
1625
1636
  u(this, "tracker");
1626
1637
  this.target = e, this.renderer = t, this.registry = r, this.tracker = new De(e, {
1627
1638
  resizeDebounce: i.resizeDebounce
1628
- }), this.tracker.onLayoutChange.add((c, n) => {
1629
- document.querySelector(`[${_.NAME}~='${_.VALUES.TRAVELER}']`) !== null && !this.isTravelEnabled && (this.isTravelEnabled = !0, this.renderer.createRenderTarget());
1630
- const a = Ue(
1639
+ }), this.tracker.onLayoutChange.add((l, n) => {
1640
+ document.querySelector(`[${O.NAME}~='${O.VALUES.TRAVELER}']`) !== null && !this.isTravelEnabled && (this.isTravelEnabled = !0, this.renderer.createRenderTarget());
1641
+ const o = Ue(
1631
1642
  this.target,
1632
- c,
1633
- $,
1643
+ l,
1644
+ W,
1634
1645
  1,
1635
1646
  0,
1636
1647
  this.renderer.qualityFactor
1637
1648
  );
1638
- a && this.renderer.syncScene(a, n);
1639
- }), this.tracker.onStyleChange.add((c) => {
1640
- st(this.registry, c);
1649
+ o && this.renderer.syncScene(o, n);
1650
+ }), this.tracker.onStyleChange.add((l) => {
1651
+ st(this.registry, l);
1641
1652
  }), this.tracker.onRender.add(() => {
1642
1653
  this.renderer.syncMeshesByDOM(), this.renderer.render();
1643
1654
  });
@@ -1649,7 +1660,7 @@ class nt {
1649
1660
  this.tracker.stop();
1650
1661
  }
1651
1662
  }
1652
- class ot {
1663
+ class at {
1653
1664
  constructor() {
1654
1665
  u(this, "store");
1655
1666
  this.store = /* @__PURE__ */ new WeakMap();
@@ -1674,23 +1685,23 @@ class ot {
1674
1685
  this.store.delete(e);
1675
1686
  }
1676
1687
  }
1677
- class at {
1688
+ class ot {
1678
1689
  constructor(e, t) {
1679
1690
  u(this, "renderer");
1680
1691
  u(this, "syncer");
1681
1692
  u(this, "target");
1682
1693
  u(this, "registry");
1683
- var i, c, n;
1684
- if (this.target = e, this.registry = new ot(), !document.getElementById("mirage-engine-styles")) {
1685
- const o = document.createElement("style");
1686
- o.id = "mirage-engine-styles", o.textContent = `
1687
- [${K.NAME}="${K.VALUES.HIDE}"] {
1694
+ var i, l, n;
1695
+ if (this.target = e, this.registry = new at(), !document.getElementById("mirage-engine-styles")) {
1696
+ const a = document.createElement("style");
1697
+ a.id = "mirage-engine-styles", a.textContent = `
1698
+ [${q.NAME}="${q.VALUES.HIDE}"] {
1688
1699
  opacity: 0 !important;
1689
1700
  }
1690
- `, document.head.appendChild(o);
1701
+ `, document.head.appendChild(a);
1691
1702
  }
1692
1703
  let r;
1693
- if (t.mode === "duplicate" ? r = (c = (i = t.container) != null ? i : this.target.parentElement) != null ? c : void 0 : r = (n = this.target.parentElement) != null ? n : void 0, !r)
1704
+ if (t.mode === "duplicate" ? r = (l = (i = t.container) != null ? i : this.target.parentElement) != null ? l : void 0 : r = (n = this.target.parentElement) != null ? n : void 0, !r)
1694
1705
  throw new Error("[Mirage] Cannot find a container (parent or option).");
1695
1706
  this.renderer = new rt(
1696
1707
  this.target,
@@ -1729,10 +1740,10 @@ class at {
1729
1740
  ArrowUp: !1,
1730
1741
  ArrowDown: !1
1731
1742
  };
1732
- window.addEventListener("keydown", (c) => {
1733
- t[c.key] !== void 0 && (t[c.key] = !0);
1734
- }), window.addEventListener("keyup", (c) => {
1735
- t[c.key] !== void 0 && (t[c.key] = !1);
1743
+ window.addEventListener("keydown", (l) => {
1744
+ t[l.key] !== void 0 && (t[l.key] = !0);
1745
+ }), window.addEventListener("keyup", (l) => {
1746
+ t[l.key] !== void 0 && (t[l.key] = !1);
1736
1747
  });
1737
1748
  const r = 2, i = () => {
1738
1749
  requestAnimationFrame(i), t.ArrowRight && e.position.setX(e.position.x + r), t.ArrowLeft && e.position.setX(e.position.x - r), t.ArrowUp && e.position.setY(e.position.y + r), t.ArrowDown && e.position.setY(e.position.y - r);
@@ -1779,8 +1790,8 @@ class ct {
1779
1790
  const e = document.querySelectorAll(this.frontSelector);
1780
1791
  this.frontLayer && e.forEach((t) => {
1781
1792
  var n;
1782
- const r = t.getBoundingClientRect(), i = window.getComputedStyle(t), c = document.createElement("div");
1783
- c.className = "sand-placeholder", Object.assign(c.style, {
1793
+ const r = t.getBoundingClientRect(), i = window.getComputedStyle(t), l = document.createElement("div");
1794
+ l.className = "sand-placeholder", Object.assign(l.style, {
1784
1795
  display: i.display === "inline" ? "inline-block" : i.display,
1785
1796
  width: `${r.width}px`,
1786
1797
  height: `${r.height}px`,
@@ -1791,14 +1802,14 @@ class ct {
1791
1802
  marginRight: i.marginRight,
1792
1803
  visibility: "hidden",
1793
1804
  pointerEvents: "none"
1794
- }), (n = t.parentNode) == null || n.insertBefore(c, t), this.frontLayer.appendChild(t), Object.assign(t.style, {
1805
+ }), (n = t.parentNode) == null || n.insertBefore(l, t), this.frontLayer.appendChild(t), Object.assign(t.style, {
1795
1806
  position: "fixed",
1796
1807
  margin: "0",
1797
1808
  boxSizing: "border-box",
1798
1809
  width: `${r.width}px`,
1799
1810
  height: `${r.height}px`,
1800
1811
  pointerEvents: "auto"
1801
- }), this.items.push({ placeholder: c, original: t });
1812
+ }), this.items.push({ placeholder: l, original: t });
1802
1813
  });
1803
1814
  }
1804
1815
  setupHooks() {
@@ -1817,7 +1828,7 @@ class ht {
1817
1828
  u(this, "_sandwich");
1818
1829
  if (!e)
1819
1830
  throw new Error("[Mirage] Target element is required.");
1820
- if (this._engine = new at(e, t), t.sandwich !== !1) {
1831
+ if (this._engine = new ot(e, t), t.sandwich !== !1) {
1821
1832
  const r = typeof t.sandwich == "object" ? t.sandwich : {};
1822
1833
  this._sandwich = new ct({
1823
1834
  frontSelector: r.frontSelector || `[${Se.NAME}='${Se.VALUES.FRONT}']`