@mirage-engine/core 0.3.12 → 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,16 +1,16 @@
1
- var Be = Object.defineProperty, Fe = Object.defineProperties;
1
+ var Fe = Object.defineProperty, Be = Object.defineProperties;
2
2
  var Oe = Object.getOwnPropertyDescriptors;
3
3
  var we = Object.getOwnPropertySymbols;
4
4
  var _e = Object.prototype.hasOwnProperty, Ne = Object.prototype.propertyIsEnumerable;
5
- var me = (s, e, t) => e in s ? Be(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 ? Fe(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
  _e.call(e, t) && me(s, t, e[t]);
8
8
  if (we)
9
9
  for (var t of we(e))
10
10
  Ne.call(e, t) && me(s, t, e[t]);
11
11
  return s;
12
- }, xe = (s, e) => Fe(s, Oe(e));
13
- var g = (s, e, t) => (me(s, typeof e != "symbol" ? e + "" : e, t), t);
12
+ }, xe = (s, e) => Be(s, Oe(e));
13
+ var p = (s, e, t) => (me(s, typeof e != "symbol" ? e + "" : e, t), t);
14
14
  var Ee = (s, e, t) => new Promise((r, i) => {
15
15
  var c = (a) => {
16
16
  try {
@@ -28,13 +28,13 @@ var Ee = (s, e, t) => new Promise((r, i) => {
28
28
  o((t = t.apply(s, e)).next());
29
29
  });
30
30
  import * as y from "three";
31
- const Me = {
31
+ const Le = {
32
32
  INCLUDE_TREE: "include-tree",
33
33
  EXCLUDE_TREE: "exclude-tree",
34
34
  INCLUDE_SELF: "include-self",
35
35
  EXCLUDE_SELF: "exclude-self",
36
36
  END: "end"
37
- }, K = {
37
+ }, $ = {
38
38
  NAME: "data-mirage-dom",
39
39
  KEY: "mirageDom",
40
40
  VALUES: {
@@ -59,14 +59,14 @@ const Me = {
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
- VALUES: Me
66
- }, q = {
65
+ VALUES: Le
66
+ }, P = {
67
67
  NAME: "data-mirage-select",
68
68
  KEY: "mirageSelect",
69
- VALUES: Me
69
+ VALUES: Le
70
70
  }, Xe = {
71
71
  NAME: "data-mirage-shader",
72
72
  KEY: "mirageShader"
@@ -76,7 +76,7 @@ const Me = {
76
76
  VALUES: {
77
77
  FRONT: "front"
78
78
  }
79
- }, de = 0, Q = 1, le = 2, ze = 4, ue = 8, ve = 16;
79
+ }, de = 0, K = 1, le = 2, ze = 4, ue = 8, ve = 16;
80
80
  function Ve(s) {
81
81
  const e = s.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)/);
82
82
  return e ? {
@@ -99,32 +99,32 @@ function Ye(s) {
99
99
  }
100
100
  class We {
101
101
  constructor(e, t) {
102
- g(this, "target");
103
- g(this, "observer");
104
- g(this, "pendingDeletions", /* @__PURE__ */ new Set());
105
- g(this, "pendingStyles", /* @__PURE__ */ new Map());
106
- g(this, "isDomDirty", !1);
107
- g(this, "isRunning", !1);
108
- g(this, "pendingMask", de);
109
- g(this, "mutationTimer", null);
110
- g(this, "cssTimer", null);
111
- g(this, "resizeConfig");
112
- g(this, "resizeTimer", null);
113
- g(this, "isResizing", !1);
114
- g(this, "lastScrollX", 0);
115
- g(this, "lastScrollY", 0);
116
- g(this, "scrollTimer", null);
117
- g(this, "onBeforeRender", /* @__PURE__ */ new Set());
118
- g(this, "onLayoutChange", /* @__PURE__ */ new Set());
119
- g(this, "onStyleChange", /* @__PURE__ */ new Set());
120
- g(this, "onScrollChange", /* @__PURE__ */ new Set());
121
- g(this, "onRender", /* @__PURE__ */ new Set());
122
- g(this, "onTransitionFinished", (e) => {
123
- this.target.contains(e.target) && this.mutationTimer === null && (this.cssTimer && clearTimeout(this.cssTimer), this.pendingStyles.size == 0 && (this.pendingMask |= Q | le, this.cssTimer = window.setTimeout(() => {
102
+ p(this, "target");
103
+ p(this, "observer");
104
+ p(this, "pendingDeletions", /* @__PURE__ */ new Set());
105
+ p(this, "pendingStyles", /* @__PURE__ */ new Map());
106
+ p(this, "isDomDirty", !1);
107
+ p(this, "isRunning", !1);
108
+ p(this, "pendingMask", de);
109
+ p(this, "mutationTimer", null);
110
+ p(this, "cssTimer", null);
111
+ p(this, "resizeConfig");
112
+ p(this, "resizeTimer", null);
113
+ p(this, "isResizing", !1);
114
+ p(this, "lastScrollX", 0);
115
+ p(this, "lastScrollY", 0);
116
+ p(this, "scrollTimer", null);
117
+ p(this, "onBeforeRender", /* @__PURE__ */ new Set());
118
+ p(this, "onLayoutChange", /* @__PURE__ */ new Set());
119
+ p(this, "onStyleChange", /* @__PURE__ */ new Set());
120
+ p(this, "onScrollChange", /* @__PURE__ */ new Set());
121
+ p(this, "onRender", /* @__PURE__ */ new Set());
122
+ p(this, "onTransitionFinished", (e) => {
123
+ this.target.contains(e.target) && this.mutationTimer === null && (this.cssTimer && clearTimeout(this.cssTimer), this.pendingStyles.size == 0 && (this.pendingMask |= K | le, this.cssTimer = window.setTimeout(() => {
124
124
  this.isDomDirty = !0, this.cssTimer = null;
125
125
  }, 50)));
126
126
  });
127
- g(this, "onWindowResize", () => {
127
+ p(this, "onWindowResize", () => {
128
128
  if (!this.resizeConfig.enabled) {
129
129
  this.isDomDirty = !0;
130
130
  return;
@@ -133,13 +133,13 @@ class We {
133
133
  this.isDomDirty = !0, this.resizeConfig.onEnd && this.resizeConfig.onEnd(), this.isResizing = !1, this.resizeTimer = null;
134
134
  }, this.resizeConfig.delay);
135
135
  });
136
- g(this, "renderLoop", () => {
136
+ p(this, "renderLoop", () => {
137
137
  if (!this.isRunning)
138
138
  return;
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
145
  var i, c;
@@ -159,13 +159,13 @@ class We {
159
159
  });
160
160
  else if (a.type === "attributes")
161
161
  if (a.attributeName === "style") {
162
- o |= Q | le;
162
+ o |= K | le;
163
163
  const l = a.target, d = Ye(l.style);
164
164
  this.pendingStyles.set(l, d);
165
165
  } else
166
- a.attributeName === "class" ? o |= Q | le : a.attributeName && a.attributeName.startsWith("data-") && (o |= Q | le, a.attributeName.startsWith("data-mirage") && (o |= ue));
166
+ a.attributeName === "class" ? o |= K | le : a.attributeName && a.attributeName.startsWith("data-") && (o |= K | le, a.attributeName.startsWith("data-mirage") && (o |= ue));
167
167
  else
168
- a.type === "characterData" && (o |= ve | Q);
168
+ a.type === "characterData" && (o |= ve | K);
169
169
  if (o !== de) {
170
170
  if (this.pendingMask |= o, o & ue) {
171
171
  this.clearTimers(), this.isDomDirty = !0;
@@ -192,12 +192,12 @@ class We {
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 P = 1, te = 2, lt = 0, U = {
195
+ const W = 1, te = 2, lt = 0, F = {
196
196
  BASE: 0,
197
197
  SELECTED: 1,
198
198
  getCaptureLayer: (s) => 31 - s,
199
199
  HIDDEN: 31
200
- }, Se = Object.values(W.VALUES);
200
+ }, Se = Object.values(V.VALUES);
201
201
  class De {
202
202
  /**
203
203
  * Calculates or retrieves the exact alphabetic baseline (in pixels) for the given font.
@@ -219,7 +219,7 @@ class De {
219
219
  return document.body.removeChild(t), c;
220
220
  }
221
221
  }
222
- g(De, "cache", /* @__PURE__ */ new Map());
222
+ p(De, "cache", /* @__PURE__ */ new Map());
223
223
  class He extends y.MeshBasicMaterial {
224
224
  constructor(t, r, i, c, n = 2) {
225
225
  super({
@@ -227,9 +227,9 @@ class He extends y.MeshBasicMaterial {
227
227
  side: y.FrontSide,
228
228
  color: 16777215
229
229
  });
230
- g(this, "canvas");
231
- g(this, "ctx");
232
- g(this, "qualityFactor");
230
+ p(this, "canvas");
231
+ p(this, "ctx");
232
+ p(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
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);
@@ -255,11 +255,11 @@ class He extends y.MeshBasicMaterial {
255
255
  n !== void 0 && (this.qualityFactor = n);
256
256
  const a = (window.devicePixelRatio || 1) * this.qualityFactor, l = i * a, d = c * a;
257
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), u = r.lineHeight, v = De.getBaseline(r.font);
259
- h.forEach((f, m) => {
260
- const b = m * u + v;
261
- let L = 0;
262
- r.textAlign === "center" ? L = i / 2 : r.textAlign === "right" && (L = i), this.ctx.textAlign = r.textAlign, this.ctx.fillText(f, L, b);
258
+ const h = this.wrapText(t, i), f = r.lineHeight, v = De.getBaseline(r.font);
259
+ h.forEach((g, m) => {
260
+ const w = m * f + v;
261
+ let M = 0;
262
+ r.textAlign === "center" ? M = i / 2 : r.textAlign === "right" && (M = i), this.ctx.textAlign = r.textAlign, this.ctx.fillText(g, M, w);
263
263
  }), this.map && (this.map.needsUpdate = !0);
264
264
  }
265
265
  dispose() {
@@ -319,16 +319,16 @@ function Ge(s) {
319
319
  const o = [];
320
320
  for (let a = c; a < r.length && !(o.length >= 8); a++) {
321
321
  const l = r[a].trim(), d = l.lastIndexOf(" ");
322
- let h = l, u = null;
322
+ let h = l, f = null;
323
323
  if (d !== -1 && !l.endsWith(")")) {
324
- const f = l.substring(d + 1);
325
- (f.endsWith("%") || f.endsWith("px") || !isNaN(parseFloat(f))) && (h = l.substring(0, d).trim(), u = f);
324
+ const g = l.substring(d + 1);
325
+ (g.endsWith("%") || g.endsWith("px") || !isNaN(parseFloat(g))) && (h = l.substring(0, d).trim(), f = g);
326
326
  }
327
327
  const v = ce(h);
328
328
  o.push({
329
329
  color: v.color,
330
330
  alpha: v.alpha,
331
- rawStop: u,
331
+ rawStop: f,
332
332
  stop: 0
333
333
  });
334
334
  }
@@ -342,8 +342,8 @@ function Ge(s) {
342
342
  const d = l - a;
343
343
  if (d > 1) {
344
344
  const h = o[a].stop, v = (o[l].stop - h) / d;
345
- for (let f = 1; f < d; f++)
346
- o[a + f].stop = h + v * f;
345
+ for (let g = 1; g < d; g++)
346
+ o[a + g].stop = h + v * g;
347
347
  }
348
348
  a = l;
349
349
  }
@@ -512,43 +512,43 @@ baseColor = blendSrcOver(baseColor, texColor);`, Te = {
512
512
  baseColorChunk: Je
513
513
  };
514
514
  function Qe(s, e, t, r = null, i) {
515
- var x;
515
+ var E;
516
516
  const c = r !== null || !!s.imageSrc;
517
517
  let n = "";
518
518
  const o = {};
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 });
520
+ for (const [S, x] of Object.entries(i.uniforms))
521
+ typeof x == "number" ? (n += `uniform float ${S};
522
+ `, o[S] = { value: x }) : Array.isArray(x) ? x.length === 2 ? (n += `uniform vec2 ${S};
523
+ `, o[S] = { value: new y.Vector2(...x) }) : x.length === 3 ? (n += `uniform vec3 ${S};
524
+ `, o[S] = { value: new y.Vector3(...x) }) : x.length === 4 && (n += `uniform vec4 ${S};
525
+ `, o[S] = { value: new y.Vector4(...x) }) : (n += `uniform float ${S};
526
+ `, o[S] = { value: x });
527
527
  const a = i !== void 0, l = (c || a ? Re.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
- `, u = c || a ? d + h + ((i == null ? void 0 : i.uvModifier) || "") : "", v = c || a ? Re.baseColorChunk : "", f = (i == null ? void 0 : i.colorModifier) || "", m = Te.fragmentShader.replace("#INJECT_DECLARATIONS", l).replace("#INJECT_UV_MODIFIER", u).replace("#INJECT_BASE_COLOR", v).replace("#INJECT_COLOR_MODIFIER", f), b = ce(s.backgroundColor), L = ce(s.borderColor), M = {
531
+ `, f = c || a ? d + h + ((i == null ? void 0 : i.uvModifier) || "") : "", v = c || a ? Re.baseColorChunk : "", g = (i == null ? void 0 : i.colorModifier) || "", m = Te.fragmentShader.replace("#INJECT_DECLARATIONS", l).replace("#INJECT_UV_MODIFIER", f).replace("#INJECT_BASE_COLOR", v).replace("#INJECT_COLOR_MODIFIER", g), w = ce(s.backgroundColor), M = ce(s.borderColor), L = {
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: {
542
542
  value: new y.Vector4(
543
- L.color.r,
544
- L.color.g,
545
- L.color.b,
546
- L.alpha
543
+ M.color.r,
544
+ M.color.g,
545
+ M.color.b,
546
+ M.alpha
547
547
  )
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,16 +559,16 @@ function Qe(s, e, t, r = null, i) {
559
559
  },
560
560
  uGradientStops: { value: new Float32Array(8) }
561
561
  };
562
- Ae(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
+ Ae(L.uBorderRadius.value, s.borderRadius, Math.min(e, t)), c && (L.uTexture.value = r);
563
+ const T = new y.ShaderMaterial({
564
+ uniforms: j(j({}, L), o),
565
565
  vertexShader: Te.vertexShader,
566
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 Ze(s, e, t, r, i) {
574
574
  const c = re(e.borderWidth);
@@ -649,11 +649,11 @@ function ye(s, e) {
649
649
  if (n && o && a && l) {
650
650
  const d = n / o, h = a / l;
651
651
  if (d > h) {
652
- const u = h / d;
653
- s.uniforms.uTextureRepeat.value.set(u, 1), s.uniforms.uTextureOffset.value.set((1 - u) / 2, 0);
652
+ const f = h / d;
653
+ s.uniforms.uTextureRepeat.value.set(f, 1), s.uniforms.uTextureOffset.value.set((1 - f) / 2, 0);
654
654
  } else {
655
- const u = d / h;
656
- s.uniforms.uTextureRepeat.value.set(1, u), s.uniforms.uTextureOffset.value.set(0, (1 - u) / 2);
655
+ const f = d / h;
656
+ s.uniforms.uTextureRepeat.value.set(1, f), s.uniforms.uTextureOffset.value.set(0, (1 - f) / 2);
657
657
  }
658
658
  }
659
659
  } else
@@ -696,7 +696,7 @@ function Ae(s, e, t = 0) {
696
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
697
  s.set(i, c, n, o);
698
698
  }
699
- const H = {
699
+ const Y = {
700
700
  create(s, e, t, r, i, c = 2, n = null, o) {
701
701
  return s === "BOX" ? Qe(
702
702
  e,
@@ -733,11 +733,11 @@ const H = {
733
733
  };
734
734
  class et {
735
735
  constructor(e, t = !0) {
736
- g(this, "observer");
737
- g(this, "textures", /* @__PURE__ */ new WeakMap());
738
- g(this, "loadStatus", /* @__PURE__ */ new WeakMap());
739
- g(this, "elementUrls", /* @__PURE__ */ new WeakMap());
740
- g(this, "onUpdate");
736
+ p(this, "observer");
737
+ p(this, "textures", /* @__PURE__ */ new WeakMap());
738
+ p(this, "loadStatus", /* @__PURE__ */ new WeakMap());
739
+ p(this, "elementUrls", /* @__PURE__ */ new WeakMap());
740
+ p(this, "onUpdate");
741
741
  this.onUpdate = e, t && (this.observer = new IntersectionObserver(
742
742
  (r) => {
743
743
  for (const i of r) {
@@ -801,33 +801,33 @@ class et {
801
801
  }
802
802
  class tt {
803
803
  constructor(e, t, r, i) {
804
- g(this, "canvas");
805
- g(this, "scene");
806
- g(this, "camera");
807
- g(this, "renderer");
808
- g(this, "renderTargets", []);
809
- g(this, "renderOrder", 0);
810
- g(this, "qualityFactor", 2);
811
- g(this, "mode", "overlay");
812
- g(this, "canvasSize", "viewport");
813
- g(this, "clipArea", 1);
814
- g(this, "targetLayer", "base");
815
- g(this, "overscan", 200);
816
- g(this, "target");
817
- g(this, "mountContainer");
818
- g(this, "registry");
819
- g(this, "targetRect");
820
- g(this, "travelersByLayer", Array.from(
804
+ p(this, "canvas");
805
+ p(this, "scene");
806
+ p(this, "camera");
807
+ p(this, "renderer");
808
+ p(this, "renderTargets", []);
809
+ p(this, "renderOrder", 0);
810
+ p(this, "qualityFactor", 2);
811
+ p(this, "mode", "overlay");
812
+ p(this, "canvasSize", "viewport");
813
+ p(this, "clipArea", 1);
814
+ p(this, "targetLayer", "base");
815
+ p(this, "overscan", 200);
816
+ p(this, "target");
817
+ p(this, "mountContainer");
818
+ p(this, "registry");
819
+ p(this, "targetRect");
820
+ p(this, "travelersByLayer", Array.from(
821
821
  { length: O.MAX_LAYERS },
822
822
  () => /* @__PURE__ */ new Set()
823
823
  ));
824
- g(this, "textureManager");
824
+ p(this, "textureManager");
825
825
  // private meshMap: Map<HTMLElement, THREE.Mesh> = new Map();
826
- g(this, "fixedMeshes", /* @__PURE__ */ new Set());
826
+ p(this, "fixedMeshes", /* @__PURE__ */ new Set());
827
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 et((u, v) => {
829
- const f = this.registry.get(u);
830
- f && f.material instanceof y.ShaderMaterial && H.forceUpdateUniforms(f.material, { texture: v });
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 et((f, v) => {
829
+ const g = this.registry.get(f);
830
+ g && g.material instanceof y.ShaderMaterial && Y.forceUpdateUniforms(g.material, { texture: v });
831
831
  }, this.isViewport), this.canvas = document.createElement("canvas"), this.scene = new y.Scene(), this.targetRect = this.target.getBoundingClientRect();
832
832
  const c = 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(
@@ -849,7 +849,7 @@ class tt {
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" ? F.SELECTED : F.BASE;
853
853
  }
854
854
  createRenderTarget() {
855
855
  for (let e = 0; e < O.MAX_LAYERS; e++) {
@@ -899,12 +899,12 @@ class tt {
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
  );
@@ -925,12 +925,12 @@ class tt {
925
925
  const h = this.registry.get(d);
926
926
  if (h) {
927
927
  this.scene.remove(h);
928
- for (const u of this.travelersByLayer)
929
- u.delete(h);
928
+ for (const f of this.travelersByLayer)
929
+ f.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
- (u) => u.dispose()
932
- ) : h.userData.nativeMesh.material.dispose(), h.userData.nativeMesh.geometry.dispose()), h.traverse((u) => {
933
- u instanceof y.Mesh && (u.geometry && u.geometry.dispose(), u.material && (Array.isArray(u.material) ? u.material.forEach((v) => v.dispose()) : u.material.dispose()));
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((v) => v.dispose()) : f.material.dispose()));
934
934
  }), this.registry.remove(d), this.textureManager.unregister(d);
935
935
  }
936
936
  });
@@ -944,7 +944,7 @@ class tt {
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), o = e.isTraveler ? (i = this.renderTargets[e.captureLayer - 2]) == null ? void 0 : i.texture : this.textureManager.get(e.element), a = Y.create(
948
948
  "BOX",
949
949
  e.styles,
950
950
  "",
@@ -979,31 +979,31 @@ class tt {
979
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
980
  if (t.dirtyMask & ve || n !== o) {
981
981
  e.children.filter(
982
- (f) => f.name.startsWith("TEXT_CHILD")
983
- ).forEach((f) => {
984
- var b;
985
- const m = f;
986
- (b = m.material.map) == null || b.dispose(), m.geometry.dispose(), e.remove(m);
982
+ (g) => g.name.startsWith("TEXT_CHILD")
983
+ ).forEach((g) => {
984
+ var w;
985
+ const m = g;
986
+ (w = m.material.map) == null || w.dispose(), m.geometry.dispose(), e.remove(m);
987
987
  });
988
- const h = t.rect, u = h.x + h.width / 2, v = h.y + h.height / 2;
989
- i.forEach((f, m) => {
990
- const b = H.create(
988
+ const h = t.rect, f = h.x + h.width / 2, v = h.y + h.height / 2;
989
+ i.forEach((g, m) => {
990
+ const w = Y.create(
991
991
  "TEXT",
992
992
  c,
993
- f.text,
994
- f.rect.width,
995
- f.rect.height,
993
+ g.text,
994
+ g.rect.width,
995
+ g.rect.height,
996
996
  this.qualityFactor
997
- ), L = new y.PlaneGeometry(1, 1), M = new y.Mesh(L, b);
998
- M.name = `TEXT_CHILD_${m}`;
999
- const S = t.rect.width === 0 ? 1 : f.rect.width / t.rect.width, x = t.rect.height === 0 ? 1 : f.rect.height / t.rect.height;
1000
- M.scale.set(S, x, 1);
1001
- const C = f.rect.x + f.rect.width / 2, w = f.rect.y + f.rect.height / 2, T = C - u, D = -(w - v);
1002
- M.position.set(
1003
- t.rect.width === 0 ? 0 : T / t.rect.width,
997
+ ), M = new y.PlaneGeometry(1, 1), L = new y.Mesh(M, w);
998
+ L.name = `TEXT_CHILD_${m}`;
999
+ const T = t.rect.width === 0 ? 1 : g.rect.width / t.rect.width, E = t.rect.height === 0 ? 1 : g.rect.height / t.rect.height;
1000
+ L.scale.set(T, E, 1);
1001
+ const S = g.rect.x + g.rect.width / 2, x = g.rect.y + g.rect.height / 2, R = S - f, D = -(x - v);
1002
+ L.position.set(
1003
+ t.rect.width === 0 ? 0 : R / t.rect.width,
1004
1004
  t.rect.height === 0 ? 0 : D / t.rect.height,
1005
1005
  5e-3
1006
- ), e.add(M);
1006
+ ), e.add(L);
1007
1007
  }), e.userData.textChildStyleHash = n;
1008
1008
  }
1009
1009
  e.children.forEach((d) => {
@@ -1011,21 +1011,21 @@ class tt {
1011
1011
  return;
1012
1012
  const h = d;
1013
1013
  if (r && t.nativeLayer !== void 0)
1014
- h.layers.set(U.HIDDEN), t.visibility & P && h.layers.enable(U.getCaptureLayer(t.nativeLayer));
1014
+ h.layers.set(F.HIDDEN), t.visibility & W && h.layers.enable(F.getCaptureLayer(t.nativeLayer));
1015
1015
  else {
1016
- const u = t.visibility & P ? U.BASE : U.HIDDEN;
1017
- if (h.layers.set(u), t.visibility & te && h.layers.enable(U.SELECTED), t.visibility & P)
1016
+ const f = t.visibility & W ? F.BASE : F.HIDDEN;
1017
+ if (h.layers.set(f), t.visibility & te && h.layers.enable(F.SELECTED), t.visibility & W)
1018
1018
  if (!r && t.nativeLayer !== void 0 && t.nativeStyles !== void 0)
1019
1019
  for (let v = t.captureLayer; v <= O.MAX_LAYERS + 1; v++)
1020
- v !== t.nativeLayer && h.layers.enable(U.getCaptureLayer(v));
1020
+ v !== t.nativeLayer && h.layers.enable(F.getCaptureLayer(v));
1021
1021
  else
1022
1022
  for (let v = t.captureLayer; v <= O.MAX_LAYERS + 1; v++)
1023
- h.layers.enable(U.getCaptureLayer(v));
1023
+ h.layers.enable(F.getCaptureLayer(v));
1024
1024
  }
1025
1025
  });
1026
1026
  }
1027
1027
  updateMeshProperties(e, t) {
1028
- var S, x, C;
1028
+ var T, E, S;
1029
1029
  const { rect: r, styles: i } = t, c = this.renderer.getPixelRatio(), n = this.renderer.domElement.width / c, o = this.renderer.domElement.height / c;
1030
1030
  e.material = e.userData.baseMaterial, e.scale.set(r.width, r.height, 1), e.userData.domRect = {
1031
1031
  x: r.x,
@@ -1036,27 +1036,27 @@ class tt {
1036
1036
  const a = 1e-3;
1037
1037
  this.renderOrder++;
1038
1038
  const l = this.targetRect.left + window.scrollX, d = this.targetRect.top + window.scrollY;
1039
- let h, u;
1039
+ let h, f;
1040
1040
  if (this.isViewport)
1041
- h = r.x - window.innerWidth / 2 + r.width / 2, u = -r.y + window.innerHeight / 2 - r.height / 2;
1041
+ h = r.x - window.innerWidth / 2 + r.width / 2, f = -r.y + window.innerHeight / 2 - r.height / 2;
1042
1042
  else {
1043
- const w = r.x - l, T = r.y - d;
1044
- h = w - n / 2 + r.width / 2, u = -T + o / 2 - r.height / 2;
1043
+ const x = r.x - l, R = r.y - d;
1044
+ h = x - n / 2 + r.width / 2, f = -R + o / 2 - r.height / 2;
1045
1045
  }
1046
1046
  e.position.set(
1047
1047
  h,
1048
- u,
1048
+ f,
1049
1049
  i.zIndex + this.renderOrder * a
1050
1050
  );
1051
- const v = r.x, f = r.y;
1052
- e.userData.basePosition = { x: h, y: u }, e.userData.originalBasePosition = { x: h, y: u }, e.userData.baseSize = { width: r.width, height: r.height }, e.userData.baseDOM = { x: v, y: f }, 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, b = window.getComputedStyle(m);
1054
- let L = 0, M = 0;
1055
- if (b.transform && b.transform !== "none") {
1056
- const w = new DOMMatrix(b.transform);
1057
- L = w.m41, M = w.m42;
1051
+ const v = r.x, g = r.y;
1052
+ 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: v, y: g }, 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);
1054
+ let M = 0, L = 0;
1055
+ if (w.transform && w.transform !== "none") {
1056
+ const x = new DOMMatrix(w.transform);
1057
+ M = x.m41, L = x.m42;
1058
1058
  }
1059
- if (e.userData.baseTransform = { x: L, y: M }, delete e.userData.originRatioX, delete e.userData.originRatioY, H.update(
1059
+ if (e.userData.baseTransform = { x: M, y: L }, delete e.userData.originRatioX, delete e.userData.originRatioY, Y.update(
1060
1060
  e.userData.baseMaterial,
1061
1061
  "BOX",
1062
1062
  i,
@@ -1064,86 +1064,96 @@ class tt {
1064
1064
  r.width,
1065
1065
  r.height,
1066
1066
  this.qualityFactor,
1067
- 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)
1068
1068
  ), t.nativeStyles && t.nativeRect) {
1069
1069
  if (!e.userData.nativeMesh) {
1070
- const z = H.create(
1070
+ const _ = Y.create(
1071
1071
  "BOX",
1072
1072
  t.nativeStyles,
1073
1073
  "",
1074
1074
  t.nativeRect.width,
1075
1075
  t.nativeRect.height,
1076
1076
  this.qualityFactor,
1077
- 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),
1078
1078
  t.shaderHooks
1079
- ), N = new y.Mesh(e.geometry, z);
1079
+ ), N = new y.Mesh(e.geometry, _);
1080
1080
  t.type === "TEXT" && (N.name = "BG_MESH"), this.scene.add(N), e.userData.nativeMesh = N;
1081
1081
  }
1082
- const w = e.userData.nativeMesh;
1083
- let T, D;
1082
+ const x = e.userData.nativeMesh;
1083
+ let R, D;
1084
1084
  if (this.isViewport)
1085
- T = t.nativeRect.x - window.innerWidth / 2 + t.nativeRect.width / 2, D = -t.nativeRect.y + window.innerHeight / 2 - t.nativeRect.height / 2;
1085
+ R = t.nativeRect.x - window.innerWidth / 2 + t.nativeRect.width / 2, D = -t.nativeRect.y + window.innerHeight / 2 - t.nativeRect.height / 2;
1086
1086
  else {
1087
- const z = t.nativeRect.x - l, N = t.nativeRect.y - d;
1088
- T = z - n / 2 + t.nativeRect.width / 2, D = -N + o / 2 - t.nativeRect.height / 2;
1087
+ const _ = t.nativeRect.x - l, N = t.nativeRect.y - d;
1088
+ R = _ - n / 2 + t.nativeRect.width / 2, D = -N + o / 2 - t.nativeRect.height / 2;
1089
1089
  }
1090
- let k = t.nativeRect.width, $ = t.nativeRect.height, ie = T, se = D;
1090
+ let U = t.nativeRect.width, G = t.nativeRect.height, ie = R, se = D;
1091
1091
  if (t.nativeStyles.transform) {
1092
- const z = t.nativeStyles.transform, N = z.match(/scale\(([\d.]+%?)\)/);
1092
+ const _ = t.nativeStyles.transform, N = _.match(/scale\(([\d.]+%?)\)/);
1093
1093
  if (N) {
1094
- let B = parseFloat(N[1]);
1095
- N[1].includes("%") && (B /= 100), k *= B, $ *= B;
1094
+ let u = parseFloat(N[1]);
1095
+ N[1].includes("%") && (u /= 100), U *= u, G *= u;
1096
+ }
1097
+ const J = _.match(/scaleX\(([\d.]+%?)\)/);
1098
+ if (J) {
1099
+ let u = parseFloat(J[1]);
1100
+ J[1].includes("%") && (u /= 100), U *= u;
1101
+ }
1102
+ const Q = _.match(/scaleY\(([\d.]+%?)\)/);
1103
+ if (Q) {
1104
+ let u = parseFloat(Q[1]);
1105
+ Q[1].includes("%") && (u /= 100), G *= u;
1096
1106
  }
1097
- const Z = z.match(/translate\(([^,]+),\s*([^)]+)\)/);
1107
+ const Z = _.match(/translate\(([^,]+),\s*([^)]+)\)/);
1098
1108
  if (Z) {
1099
- const B = Z[1].trim(), _ = Z[2].trim();
1100
- let p = parseFloat(B);
1101
- B.includes("%") && (p = p / 100 * t.nativeRect.width);
1102
- let R = parseFloat(_);
1103
- _.includes("%") && (R = R / 100 * t.nativeRect.height), ie += p, se -= R;
1109
+ const u = Z[1].trim(), b = Z[2].trim();
1110
+ let I = parseFloat(u);
1111
+ u.includes("%") && (I = I / 100 * t.nativeRect.width);
1112
+ let B = parseFloat(b);
1113
+ b.includes("%") && (B = B / 100 * t.nativeRect.height), ie += I, se -= B;
1104
1114
  }
1105
- const ne = z.match(/translateX\(([^)]+)\)/);
1115
+ const ne = _.match(/translateX\(([^)]+)\)/);
1106
1116
  if (ne) {
1107
- const B = ne[1].trim();
1108
- let _ = parseFloat(B);
1109
- B.includes("%") && (_ = _ / 100 * t.nativeRect.width), ie += _;
1117
+ const u = ne[1].trim();
1118
+ let b = parseFloat(u);
1119
+ u.includes("%") && (b = b / 100 * t.nativeRect.width), ie += b;
1110
1120
  }
1111
- const oe = z.match(/translateY\(([^)]+)\)/);
1121
+ const oe = _.match(/translateY\(([^)]+)\)/);
1112
1122
  if (oe) {
1113
- const B = oe[1].trim();
1114
- let _ = parseFloat(B);
1115
- B.includes("%") && (_ = _ / 100 * t.nativeRect.height), se -= _;
1123
+ const u = oe[1].trim();
1124
+ let b = parseFloat(u);
1125
+ u.includes("%") && (b = b / 100 * t.nativeRect.height), se -= b;
1116
1126
  }
1117
1127
  }
1118
- w.scale.set(k, $, 1), w.position.set(
1128
+ x.scale.set(U, G, 1), x.position.set(
1119
1129
  ie,
1120
1130
  se,
1121
1131
  t.nativeStyles.zIndex + this.renderOrder * a
1122
- ), H.update(
1123
- w.material,
1132
+ ), Y.update(
1133
+ x.material,
1124
1134
  "BOX",
1125
1135
  t.nativeStyles,
1126
1136
  "",
1127
1137
  t.nativeRect.width,
1128
1138
  t.nativeRect.height,
1129
1139
  this.qualityFactor,
1130
- 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)
1131
1141
  );
1132
1142
  } else
1133
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);
1134
1144
  }
1135
1145
  updateMeshLayers(e, t) {
1136
- const r = t.visibility & P ? U.BASE : U.HIDDEN;
1137
- 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 ? F.BASE : F.HIDDEN;
1147
+ if (e.layers.set(r), t.visibility & te && e.layers.enable(F.SELECTED), e.userData.nativeMesh && t.nativeLayer !== void 0) {
1138
1148
  const i = e.userData.nativeMesh;
1139
- if (i.layers.set(U.HIDDEN), t.visibility & P) {
1140
- i.layers.enable(U.getCaptureLayer(t.nativeLayer));
1149
+ if (i.layers.set(F.HIDDEN), t.visibility & W) {
1150
+ i.layers.enable(F.getCaptureLayer(t.nativeLayer));
1141
1151
  for (let c = t.captureLayer; c <= O.MAX_LAYERS + 1; c++)
1142
- c !== t.nativeLayer && e.layers.enable(U.getCaptureLayer(c));
1152
+ c !== t.nativeLayer && e.layers.enable(F.getCaptureLayer(c));
1143
1153
  }
1144
- } else if (t.visibility & P)
1154
+ } else if (t.visibility & W)
1145
1155
  for (let i = t.captureLayer; i <= O.MAX_LAYERS + 1; i++)
1146
- e.layers.enable(U.getCaptureLayer(i));
1156
+ e.layers.enable(F.getCaptureLayer(i));
1147
1157
  }
1148
1158
  captureRenderTarget(e, t, r) {
1149
1159
  if (e.size === 0 || !r)
@@ -1153,11 +1163,11 @@ class tt {
1153
1163
  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();
1154
1164
  for (const d of e) {
1155
1165
  n.setFromMatrixPosition(d.matrixWorld), n.project(this.camera);
1156
- const h = (n.x + 1) / 2 * o, u = (n.y + 1) / 2 * a;
1157
- let v = 0, f = 1;
1158
- typeof this.clipArea == "number" ? f = this.clipArea : this.clipArea.endsWith("%") ? f = parseFloat(this.clipArea) / 100 : this.clipArea.endsWith("px") && (v = parseFloat(this.clipArea));
1159
- const m = d.scale.x * f + 0.5, b = d.scale.y * f + 0.5, L = h - m / 2, M = u - b / 2, S = (L * this.qualityFactor - v) / l, x = (M * this.qualityFactor - v) / l, C = (m * this.qualityFactor + v * 2) / l, w = (b * this.qualityFactor + v * 2) / l;
1160
- this.renderer.setScissor(S, x, C, w), this.renderer.render(this.scene, this.camera);
1166
+ const h = (n.x + 1) / 2 * o, f = (n.y + 1) / 2 * a;
1167
+ let v = 0, g = 1;
1168
+ typeof this.clipArea == "number" ? g = this.clipArea : this.clipArea.endsWith("%") ? g = parseFloat(this.clipArea) / 100 : this.clipArea.endsWith("px") && (v = parseFloat(this.clipArea));
1169
+ const m = d.scale.x * g + 0.5, w = d.scale.y * g + 0.5, M = h - m / 2, L = f - w / 2, T = (M * this.qualityFactor - v) / l, E = (L * this.qualityFactor - v) / l, S = (m * this.qualityFactor + v * 2) / l, x = (w * this.qualityFactor + v * 2) / l;
1170
+ this.renderer.setScissor(T, E, S, x), this.renderer.render(this.scene, this.camera);
1161
1171
  }
1162
1172
  this.renderer.setScissorTest(!1), this.renderer.autoClear = !0, this.renderer.setRenderTarget(null), this.camera.layers.set(this.getSceneLayer()), this.renderer.setClearColor(i, c);
1163
1173
  }
@@ -1166,7 +1176,7 @@ class tt {
1166
1176
  const t = e + 1;
1167
1177
  this.captureRenderTarget(
1168
1178
  this.travelersByLayer[e],
1169
- U.getCaptureLayer(t),
1179
+ F.getCaptureLayer(t),
1170
1180
  this.renderTargets[e]
1171
1181
  );
1172
1182
  }
@@ -1195,47 +1205,47 @@ class tt {
1195
1205
  width: l.width,
1196
1206
  height: l.height
1197
1207
  };
1198
- let h, u;
1208
+ let h, f;
1199
1209
  if (this.isViewport)
1200
- h = l.x - window.innerWidth / 2 + l.width / 2, u = -l.y + window.innerHeight / 2 - l.height / 2;
1210
+ h = l.x - window.innerWidth / 2 + l.width / 2, f = -l.y + window.innerHeight / 2 - l.height / 2;
1201
1211
  else {
1202
- const v = l.x - e, f = l.y - t;
1203
- h = v - i / 2 + l.width / 2, u = -f + c / 2 - l.height / 2;
1212
+ const v = l.x - e, g = l.y - t;
1213
+ h = v - i / 2 + l.width / 2, f = -g + c / 2 - l.height / 2;
1204
1214
  }
1205
- if (o.position.setX(h), o.position.setY(u), o.scale.set(l.width, l.height, 1), o.updateMatrixWorld(), o.material instanceof y.ShaderMaterial && H.forceUpdateUniforms(o.material, {
1215
+ if (o.position.setX(h), o.position.setY(f), o.scale.set(l.width, l.height, 1), o.updateMatrixWorld(), o.material instanceof y.ShaderMaterial && Y.forceUpdateUniforms(o.material, {
1206
1216
  width: l.width,
1207
1217
  height: l.height
1208
1218
  }), o.userData.nativeMesh) {
1209
1219
  const v = o.userData.nativeMesh;
1210
- let f = l.width, m = l.height, b = h, L = u;
1220
+ let g = l.width, m = l.height, w = h, M = f;
1211
1221
  if (o.userData.nativeTransform) {
1212
- const M = o.userData.nativeTransform, S = M.match(/scale\(([\d.]+%?)\)/);
1213
- if (S) {
1214
- let T = parseFloat(S[1]);
1215
- S[1].includes("%") && (T /= 100), f *= T, m *= T;
1222
+ const L = o.userData.nativeTransform, T = L.match(/scale\(([\d.]+%?)\)/);
1223
+ if (T) {
1224
+ let R = parseFloat(T[1]);
1225
+ T[1].includes("%") && (R /= 100), g *= R, m *= R;
1216
1226
  }
1217
- const x = M.match(/translate\(([^,]+),\s*([^)]+)\)/);
1218
- if (x) {
1219
- const T = x[1].trim(), D = x[2].trim();
1220
- let k = parseFloat(T);
1221
- T.includes("%") && (k = k / 100 * l.width);
1222
- let $ = parseFloat(D);
1223
- D.includes("%") && ($ = $ / 100 * l.height), b += k, L -= $;
1227
+ const E = L.match(/translate\(([^,]+),\s*([^)]+)\)/);
1228
+ if (E) {
1229
+ const R = E[1].trim(), D = E[2].trim();
1230
+ let U = parseFloat(R);
1231
+ R.includes("%") && (U = U / 100 * l.width);
1232
+ let G = parseFloat(D);
1233
+ D.includes("%") && (G = G / 100 * l.height), w += U, M -= G;
1224
1234
  }
1225
- const C = M.match(/translateX\(([^)]+)\)/);
1226
- if (C) {
1227
- const T = C[1].trim();
1228
- let D = parseFloat(T);
1229
- T.includes("%") && (D = D / 100 * l.width), b += D;
1235
+ const S = L.match(/translateX\(([^)]+)\)/);
1236
+ if (S) {
1237
+ const R = S[1].trim();
1238
+ let D = parseFloat(R);
1239
+ R.includes("%") && (D = D / 100 * l.width), w += D;
1230
1240
  }
1231
- const w = M.match(/translateY\(([^)]+)\)/);
1232
- if (w) {
1233
- const T = w[1].trim();
1234
- let D = parseFloat(T);
1235
- T.includes("%") && (D = D / 100 * l.height), L -= D;
1241
+ const x = L.match(/translateY\(([^)]+)\)/);
1242
+ if (x) {
1243
+ const R = x[1].trim();
1244
+ let D = parseFloat(R);
1245
+ R.includes("%") && (D = D / 100 * l.height), M -= D;
1236
1246
  }
1237
1247
  }
1238
- v.position.setX(b), v.position.setY(L), v.scale.set(f, m, 1), v.updateMatrixWorld();
1248
+ v.position.setX(w), v.position.setY(M), v.scale.set(g, m, 1), v.updateMatrixWorld();
1239
1249
  }
1240
1250
  }
1241
1251
  });
@@ -1246,14 +1256,14 @@ function rt(s) {
1246
1256
  let r = "", i = null, c = -1;
1247
1257
  const n = (l, d) => {
1248
1258
  for (let h = 0; h < l.length; h++) {
1249
- const u = l[h], v = document.createRange();
1259
+ const f = l[h], v = document.createRange();
1250
1260
  v.setStart(s, d + h), v.setEnd(s, d + h + 1);
1251
- const f = v.getBoundingClientRect();
1252
- if (f.width === 0 && f.height === 0) {
1253
- r += u;
1261
+ const g = v.getBoundingClientRect();
1262
+ if (g.width === 0 && g.height === 0) {
1263
+ r += f;
1254
1264
  continue;
1255
1265
  }
1256
- c === -1 || Math.abs(f.top - c) > f.height / 2 ? (r && i && t.push({
1266
+ c === -1 || Math.abs(g.top - c) > g.height / 2 ? (r && i && t.push({
1257
1267
  text: r,
1258
1268
  rect: {
1259
1269
  left: i.left,
@@ -1261,14 +1271,14 @@ function rt(s) {
1261
1271
  width: i.right - i.left,
1262
1272
  height: i.bottom - i.top
1263
1273
  }
1264
- }), r = u, i = {
1265
- left: f.left,
1266
- top: f.top,
1267
- right: f.right,
1268
- bottom: f.bottom
1269
- }, c = f.top) : (r += u, 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(
1274
+ }), r = f, i = {
1275
+ left: g.left,
1276
+ top: g.top,
1277
+ right: g.right,
1278
+ bottom: g.bottom
1279
+ }, 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(
1270
1280
  i.bottom,
1271
- f.bottom
1281
+ g.bottom
1272
1282
  )));
1273
1283
  }
1274
1284
  }, o = e.match(/[^\s\-]+\-?|\-|\s+/g) || [];
@@ -1280,12 +1290,12 @@ function rt(s) {
1280
1290
  if (h.length > 1)
1281
1291
  n(l, a);
1282
1292
  else {
1283
- const u = h.length === 1 ? h[0] : d.getBoundingClientRect();
1284
- if (u.width === 0 && u.height === 0) {
1293
+ const f = h.length === 1 ? h[0] : d.getBoundingClientRect();
1294
+ if (f.width === 0 && f.height === 0) {
1285
1295
  r += l, a += l.length;
1286
1296
  continue;
1287
1297
  }
1288
- c === -1 || Math.abs(u.top - c) > u.height / 2 ? (r && i && t.push({
1298
+ c === -1 || Math.abs(f.top - c) > f.height / 2 ? (r && i && t.push({
1289
1299
  text: r,
1290
1300
  rect: {
1291
1301
  left: i.left,
@@ -1294,13 +1304,13 @@ function rt(s) {
1294
1304
  height: i.bottom - i.top
1295
1305
  }
1296
1306
  }), r = l, i = {
1297
- left: u.left,
1298
- top: u.top,
1299
- right: u.right,
1300
- bottom: u.bottom
1301
- }, c = u.top) : (r += l, i && (i.left = Math.min(i.left, u.left), i.top = Math.min(i.top, u.top), i.right = Math.max(i.right, u.right), i.bottom = Math.max(
1307
+ left: f.left,
1308
+ top: f.top,
1309
+ right: f.right,
1310
+ bottom: f.bottom
1311
+ }, 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(
1302
1312
  i.bottom,
1303
- u.bottom
1313
+ f.bottom
1304
1314
  )));
1305
1315
  }
1306
1316
  a += l.length;
@@ -1317,7 +1327,7 @@ function rt(s) {
1317
1327
  (l) => l.text.trim().length > 0 && l.rect.width > 0 && l.rect.height > 0
1318
1328
  );
1319
1329
  }
1320
- function Le(s) {
1330
+ function Me(s) {
1321
1331
  const e = parseFloat(s.fontSize);
1322
1332
  let t = parseFloat(s.lineHeight);
1323
1333
  isNaN(t) && (t = e * 1.2);
@@ -1333,73 +1343,73 @@ function Le(s) {
1333
1343
  letterSpacing: r
1334
1344
  };
1335
1345
  }
1336
- function Ie(s, e = Q | le | ze | ve | ue, t, r = 1, i = 0, c = 2, n, o) {
1337
- var N, Z, ne, oe, B, _;
1346
+ function Ie(s, e = K | le | ze | ve | ue, t, r = 1, i = 0, c = 2, n, o) {
1347
+ var N, J, Q, Z, ne, oe;
1338
1348
  if (s.nodeType === Node.TEXT_NODE) {
1339
- const p = s;
1340
- if (!p.textContent || !p.textContent.trim())
1349
+ const u = s;
1350
+ if (!u.textContent || !u.textContent.trim())
1341
1351
  return null;
1342
- const R = p.textContent.replace(/\s+/g, " ");
1343
- if (R.length === 0)
1352
+ const b = u.textContent.replace(/\s+/g, " ");
1353
+ if (b.length === 0)
1344
1354
  return null;
1345
- const F = rt(p);
1346
- if (F.length === 0)
1355
+ const I = rt(u);
1356
+ if (I.length === 0)
1347
1357
  return null;
1348
- const V = p.parentElement, I = V ? window.getComputedStyle(V) : null;
1349
- if (!I)
1358
+ const B = u.parentElement, k = B ? window.getComputedStyle(B) : null;
1359
+ if (!k)
1350
1360
  return null;
1351
- const G = Math.min(...F.map((E) => E.rect.left)), X = Math.min(...F.map((E) => E.rect.top)), j = Math.max(...F.map((E) => E.rect.left + E.rect.width)), A = Math.max(...F.map((E) => E.rect.top + E.rect.height));
1361
+ const H = Math.min(...I.map((C) => C.rect.left)), X = Math.min(...I.map((C) => C.rect.top)), q = Math.max(...I.map((C) => C.rect.left + C.rect.width)), A = Math.max(...I.map((C) => C.rect.top + C.rect.height));
1352
1362
  return {
1353
1363
  id: Math.random().toString(36).substring(2, 9),
1354
1364
  type: "TEXT",
1355
- element: p,
1365
+ element: u,
1356
1366
  rect: {
1357
- x: G + window.scrollX,
1367
+ x: H + window.scrollX,
1358
1368
  y: X + window.scrollY,
1359
- width: j - G,
1369
+ width: q - H,
1360
1370
  height: A - X
1361
1371
  },
1362
1372
  styles: {
1363
1373
  backgroundColor: "transparent",
1364
1374
  backgroundImage: "",
1365
- opacity: V && V.dataset[K.KEY] === K.VALUES.HIDE ? 1 : parseFloat(I.opacity),
1366
- zIndex: (isNaN(parseInt(I.zIndex)) ? 0 : parseInt(I.zIndex)) + i,
1375
+ opacity: B && B.dataset[$.KEY] === $.VALUES.HIDE ? 1 : parseFloat(k.opacity),
1376
+ zIndex: (isNaN(parseInt(k.zIndex)) ? 0 : parseInt(k.zIndex)) + i,
1367
1377
  borderRadius: "0px",
1368
1378
  borderColor: "transparent",
1369
1379
  borderWidth: "0px",
1370
1380
  isTraveler: !1
1371
1381
  },
1372
- textContent: R,
1373
- textLines: F.map((E) => ({
1374
- text: E.text.trim(),
1382
+ textContent: b,
1383
+ textLines: I.map((C) => ({
1384
+ text: C.text.trim(),
1375
1385
  rect: {
1376
- x: E.rect.left + window.scrollX,
1377
- y: E.rect.top + window.scrollY,
1378
- width: E.rect.width,
1379
- 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
1380
1390
  }
1381
1391
  })),
1382
- textStyles: Le(I),
1392
+ textStyles: Me(k),
1383
1393
  dirtyMask: e,
1384
1394
  visibility: t,
1385
1395
  isTraveler: !1,
1386
1396
  captureLayer: r,
1387
- isFixed: I.position === "fixed",
1397
+ isFixed: k.position === "fixed",
1388
1398
  nativeLayer: n,
1389
- nativeStyles: o ? J(J({
1399
+ nativeStyles: o ? j(j({
1390
1400
  backgroundColor: "transparent",
1391
1401
  backgroundImage: "",
1392
- opacity: V && V.dataset[K.KEY] === K.VALUES.HIDE ? 1 : parseFloat(I.opacity),
1393
- zIndex: (isNaN(parseInt(I.zIndex)) ? 0 : parseInt(I.zIndex)) + i,
1402
+ opacity: B && B.dataset[$.KEY] === $.VALUES.HIDE ? 1 : parseFloat(k.opacity),
1403
+ zIndex: (isNaN(parseInt(k.zIndex)) ? 0 : parseInt(k.zIndex)) + i,
1394
1404
  borderRadius: "0px",
1395
1405
  borderColor: "transparent",
1396
1406
  borderWidth: "0px",
1397
1407
  isTraveler: !1
1398
- }, Le(I)), o) : void 0,
1408
+ }, Me(k)), o) : void 0,
1399
1409
  nativeRect: o ? {
1400
- x: G + window.scrollX,
1410
+ x: H + window.scrollX,
1401
1411
  y: X + window.scrollY,
1402
- width: j - G,
1412
+ width: q - H,
1403
1413
  height: A - X
1404
1414
  } : void 0,
1405
1415
  children: []
@@ -1407,209 +1417,209 @@ function Ie(s, e = Q | le | ze | ve | ue, t, r = 1, i = 0, c = 2, n, o) {
1407
1417
  }
1408
1418
  if (s.nodeType !== Node.ELEMENT_NODE)
1409
1419
  return null;
1410
- const a = s, l = a.dataset[W.KEY];
1420
+ const a = s, l = a.dataset[V.KEY];
1411
1421
  let d = t, h = t;
1412
1422
  if (l) {
1413
- const p = new Set(l.split(/\s+/));
1414
- for (const R of p)
1415
- if (!Se.includes(R))
1423
+ const u = new Set(l.split(/\s+/));
1424
+ for (const b of u)
1425
+ if (!Se.includes(b))
1416
1426
  throw new Error(
1417
- `[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'.`
1418
1428
  );
1419
- if (p.has(W.VALUES.END))
1429
+ if (u.has(V.VALUES.END))
1420
1430
  return null;
1421
- if (p.has(W.VALUES.INCLUDE_TREE) && p.has(W.VALUES.EXCLUDE_TREE))
1431
+ if (u.has(V.VALUES.INCLUDE_TREE) && u.has(V.VALUES.EXCLUDE_TREE))
1422
1432
  throw new Error(
1423
1433
  "[MirageEngine] Conflicting filters: 'include-tree' and 'exclude-tree' cannot be used together on the same element."
1424
1434
  );
1425
- if (p.has(W.VALUES.INCLUDE_SELF) && p.has(W.VALUES.EXCLUDE_SELF))
1435
+ if (u.has(V.VALUES.INCLUDE_SELF) && u.has(V.VALUES.EXCLUDE_SELF))
1426
1436
  throw new Error(
1427
1437
  "[MirageEngine] Conflicting filters: 'include-self' and 'exclude-self' cannot be used together on the same element."
1428
1438
  );
1429
- p.has(W.VALUES.INCLUDE_TREE) ? d = d | P : p.has(W.VALUES.EXCLUDE_TREE) && (d = d & ~P), h = d, p.has(W.VALUES.INCLUDE_SELF) ? h = h | P : p.has(W.VALUES.EXCLUDE_SELF) && (h = h & ~P);
1439
+ u.has(V.VALUES.INCLUDE_TREE) ? d = d | W : u.has(V.VALUES.EXCLUDE_TREE) && (d = d & ~W), h = d, u.has(V.VALUES.INCLUDE_SELF) ? h = h | W : u.has(V.VALUES.EXCLUDE_SELF) && (h = h & ~W);
1430
1440
  }
1431
- const u = a.dataset[q.KEY];
1432
- if (u) {
1433
- const p = new Set(u.split(/\s+/));
1434
- for (const R of p)
1435
- if (!Se.includes(R))
1441
+ const f = a.dataset[P.KEY];
1442
+ if (f) {
1443
+ const u = new Set(f.split(/\s+/));
1444
+ for (const b of u)
1445
+ if (!Se.includes(b))
1436
1446
  throw new Error(
1437
- `[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'.`
1438
1448
  );
1439
- if (p.has(q.VALUES.END))
1449
+ if (u.has(P.VALUES.END))
1440
1450
  return null;
1441
- if (p.has(q.VALUES.INCLUDE_TREE) && p.has(q.VALUES.EXCLUDE_TREE))
1451
+ if (u.has(P.VALUES.INCLUDE_TREE) && u.has(P.VALUES.EXCLUDE_TREE))
1442
1452
  throw new Error(
1443
1453
  "[MirageEngine] Conflicting selects: 'include-tree' and 'exclude-tree' cannot be used together on the same element."
1444
1454
  );
1445
- if (p.has(q.VALUES.INCLUDE_SELF) && p.has(q.VALUES.EXCLUDE_SELF))
1455
+ if (u.has(P.VALUES.INCLUDE_SELF) && u.has(P.VALUES.EXCLUDE_SELF))
1446
1456
  throw new Error(
1447
1457
  "[MirageEngine] Conflicting selects: 'include-self' and 'exclude-self' cannot be used together on the same element."
1448
1458
  );
1449
- p.has(q.VALUES.INCLUDE_TREE) ? d = d | te : p.has(q.VALUES.EXCLUDE_TREE) && (d = d & ~te), h = d, p.has(q.VALUES.INCLUDE_SELF) ? h = h | te : p.has(q.VALUES.EXCLUDE_SELF) && (h = h & ~te);
1459
+ u.has(P.VALUES.INCLUDE_TREE) ? d = d | te : u.has(P.VALUES.EXCLUDE_TREE) && (d = d & ~te), h = d, u.has(P.VALUES.INCLUDE_SELF) ? h = h | te : u.has(P.VALUES.EXCLUDE_SELF) && (h = h & ~te);
1450
1460
  }
1451
1461
  const v = a.dataset[O.KEY];
1452
- let f = !1, m = o ? J({}, o) : {}, b = n;
1462
+ let g = !1, m = o ? j({}, o) : {}, w = n;
1453
1463
  if (v) {
1454
- let p = 1;
1455
- const R = v.indexOf("{"), F = v.lastIndexOf("}");
1456
- let V = v;
1457
- if (R !== -1 && F !== -1 && F > R) {
1458
- V = v.substring(0, R).trim();
1459
- const A = v.substring(R, F + 1);
1464
+ let u = 1;
1465
+ const b = v.indexOf("{"), I = v.lastIndexOf("}");
1466
+ let B = v;
1467
+ if (b !== -1 && I !== -1 && I > b) {
1468
+ B = v.substring(0, b).trim();
1469
+ const A = v.substring(b, I + 1);
1460
1470
  try {
1461
1471
  m = new Function("return " + A)();
1462
- } catch (E) {
1472
+ } catch (C) {
1463
1473
  console.warn(
1464
1474
  `[MirageEngine] Failed to parse travel styles JSON: ${A}`
1465
1475
  );
1466
1476
  }
1467
1477
  }
1468
- const I = V.split(/\s+/);
1469
- let G = !1;
1470
- const X = I.indexOf(O.VALUES.TRAVELER);
1478
+ const k = B.split(/\s+/);
1479
+ let H = !1;
1480
+ const X = k.indexOf(O.VALUES.TRAVELER);
1471
1481
  if (X !== -1) {
1472
- f = !0, G = !0;
1473
- const A = I[X + 1];
1482
+ g = !0, H = !0;
1483
+ const A = k[X + 1];
1474
1484
  if (A && !isNaN(parseInt(A, 10)))
1475
- p = parseInt(A, 10);
1485
+ u = parseInt(A, 10);
1476
1486
  else {
1477
- const E = I.find((ee) => !isNaN(parseInt(ee, 10)));
1478
- E && (p = parseInt(E, 10));
1487
+ const C = k.find((ee) => !isNaN(parseInt(ee, 10)));
1488
+ C && (u = parseInt(C, 10));
1479
1489
  }
1480
1490
  }
1481
- const j = I.indexOf(O.VALUES.NATIVE);
1482
- if (j !== -1) {
1483
- const A = I[j + 1];
1491
+ const q = k.indexOf(O.VALUES.NATIVE);
1492
+ if (q !== -1) {
1493
+ const A = k[q + 1];
1484
1494
  if (A && !isNaN(parseInt(A, 10)))
1485
- b = parseInt(A, 10);
1486
- else if (!f) {
1487
- const E = I.find((ee) => !isNaN(parseInt(ee, 10)));
1488
- E && (b = parseInt(E, 10));
1495
+ w = parseInt(A, 10);
1496
+ else if (!g) {
1497
+ const C = k.find((ee) => !isNaN(parseInt(ee, 10)));
1498
+ C && (w = parseInt(C, 10));
1489
1499
  }
1490
1500
  }
1491
- if (G) {
1492
- const A = p + 1;
1501
+ if (H) {
1502
+ const A = u + 1;
1493
1503
  if (A < r)
1494
1504
  throw new Error(
1495
- `[MirageEngine] Traveler layer (${p}) cannot be smaller than inherited capture layer (${r - 1}).`
1505
+ `[MirageEngine] Traveler layer (${u}) cannot be smaller than inherited capture layer (${r - 1}).`
1496
1506
  );
1497
1507
  r = Math.min(A, O.MAX_LAYERS + 1);
1498
1508
  }
1499
1509
  }
1500
- const L = a.dataset[Xe.KEY];
1501
- let M;
1502
- L && (M = JSON.parse(L));
1503
- const S = a.getBoundingClientRect(), x = window.getComputedStyle(a);
1504
- if (S.width === 0 || S.height === 0 || x.display === "none")
1510
+ const M = a.dataset[Xe.KEY];
1511
+ let L;
1512
+ M && (L = JSON.parse(M));
1513
+ const T = a.getBoundingClientRect(), E = window.getComputedStyle(a);
1514
+ if (T.width === 0 || T.height === 0 || E.display === "none")
1505
1515
  return null;
1506
- let C = a.getAttribute("data-mid");
1507
- C || (C = Math.random().toString(36).substring(2, 11), a.setAttribute("data-mid", C));
1508
- const w = parseInt(x.zIndex), T = (isNaN(w) ? 0 : w) + i;
1516
+ let S = a.getAttribute("data-mid");
1517
+ S || (S = Math.random().toString(36).substring(2, 11), a.setAttribute("data-mid", S));
1518
+ const x = parseInt(E.zIndex), R = (isNaN(x) ? 0 : x) + i;
1509
1519
  let D;
1510
1520
  if (a.tagName === "IMG")
1511
1521
  D = a.src;
1512
1522
  else if (a.tagName.toLowerCase() === "svg") {
1513
- const p = a.cloneNode(!0), R = m == null ? void 0 : m.color, F = m == null ? void 0 : m.fill, V = m == null ? void 0 : m.stroke, I = m == null ? void 0 : m.opacity, G = (E, ee) => {
1514
- const Y = window.getComputedStyle(E), ae = ee, ke = Y.fill === Y.color, Ue = Y.stroke === Y.color, fe = F || (ke ? R : void 0) || Y.fill;
1523
+ const u = a.cloneNode(!0), b = m == null ? void 0 : m.color, I = m == null ? void 0 : m.fill, B = m == null ? void 0 : m.stroke, k = m == null ? void 0 : m.opacity, H = (C, ee) => {
1524
+ const z = window.getComputedStyle(C), ae = ee, ke = z.fill === z.color, Ue = z.stroke === z.color, fe = I || (ke ? b : void 0) || z.fill;
1515
1525
  fe && fe !== "none" && (ae.style.fill = fe);
1516
- const ge = V || (Ue ? R : void 0) || Y.stroke;
1517
- ge && ge !== "none" && (ae.style.stroke = ge), Y.strokeWidth && Y.strokeWidth !== "0px" && (ae.style.strokeWidth = Y.strokeWidth);
1518
- const be = R || Y.color;
1526
+ const ge = B || (Ue ? b : void 0) || z.stroke;
1527
+ ge && ge !== "none" && (ae.style.stroke = ge), z.strokeWidth && z.strokeWidth !== "0px" && (ae.style.strokeWidth = z.strokeWidth);
1528
+ const be = b || z.color;
1519
1529
  be && (ae.style.color = be);
1520
- const pe = I || Y.opacity;
1530
+ const pe = k || z.opacity;
1521
1531
  pe && pe !== "1" && (ae.style.opacity = pe);
1522
- for (let he = 0; he < E.children.length; he++)
1523
- G(E.children[he], ee.children[he]);
1532
+ for (let he = 0; he < C.children.length; he++)
1533
+ H(C.children[he], ee.children[he]);
1524
1534
  };
1525
- G(a, p);
1526
- const X = a.getBoundingClientRect(), j = window.devicePixelRatio * c;
1527
- p.hasAttribute("viewBox") || p.setAttribute("viewBox", `0 0 ${X.width} ${X.height}`), p.setAttribute("width", (X.width * j).toString()), p.setAttribute("height", (X.height * j).toString());
1528
- let A = new XMLSerializer().serializeToString(p);
1535
+ H(a, u);
1536
+ const X = a.getBoundingClientRect(), q = window.devicePixelRatio * c;
1537
+ u.hasAttribute("viewBox") || u.setAttribute("viewBox", `0 0 ${X.width} ${X.height}`), u.setAttribute("width", (X.width * q).toString()), u.setAttribute("height", (X.height * q).toString());
1538
+ let A = new XMLSerializer().serializeToString(u);
1529
1539
  A.includes("xmlns=") || (A = A.replace(
1530
1540
  "<svg",
1531
1541
  '<svg xmlns="http://www.w3.org/2000/svg"'
1532
1542
  )), D = `data:image/svg+xml;utf8,${encodeURIComponent(A)}`;
1533
- } else if (x.backgroundImage && x.backgroundImage !== "none") {
1534
- const p = x.backgroundImage.match(/url\(['"]?(.*?)['"]?\)/);
1535
- p && (D = p[1]);
1536
- }
1537
- const k = {
1538
- backgroundColor: x.backgroundColor,
1539
- backgroundImage: x.backgroundImage,
1540
- opacity: a.dataset[K.KEY] === K.VALUES.HIDE ? 1 : parseFloat(x.opacity),
1541
- zIndex: T,
1542
- borderRadius: x.borderRadius,
1543
- borderColor: x.borderColor,
1544
- borderWidth: x.borderWidth,
1543
+ } else if (E.backgroundImage && E.backgroundImage !== "none") {
1544
+ const u = E.backgroundImage.match(/url\(['"]?(.*?)['"]?\)/);
1545
+ u && (D = u[1]);
1546
+ }
1547
+ const U = {
1548
+ backgroundColor: E.backgroundColor,
1549
+ backgroundImage: E.backgroundImage,
1550
+ opacity: a.dataset[$.KEY] === $.VALUES.HIDE ? 1 : parseFloat(E.opacity),
1551
+ zIndex: R,
1552
+ borderRadius: E.borderRadius,
1553
+ borderColor: E.borderColor,
1554
+ borderWidth: E.borderWidth,
1545
1555
  imageSrc: D,
1546
- isTraveler: f
1547
- }, $ = k;
1556
+ isTraveler: g
1557
+ }, G = U;
1548
1558
  let ie, se;
1549
- const z = [];
1550
- return a.tagName.toLowerCase() !== "svg" && Array.from(a.childNodes).forEach((p) => {
1551
- const R = p.nodeType === Node.TEXT_NODE ? h : d, F = Ie(
1552
- p,
1559
+ const _ = [];
1560
+ return a.tagName.toLowerCase() !== "svg" && Array.from(a.childNodes).forEach((u) => {
1561
+ const b = u.nodeType === Node.TEXT_NODE ? h : d, I = Ie(
1562
+ u,
1553
1563
  e,
1554
- R,
1564
+ b,
1555
1565
  r,
1556
- T,
1566
+ R,
1557
1567
  c,
1558
- p.nodeType === Node.TEXT_NODE ? b : void 0,
1559
- p.nodeType === Node.TEXT_NODE && Object.keys(m).length > 0 ? m : void 0
1568
+ u.nodeType === Node.TEXT_NODE ? w : void 0,
1569
+ u.nodeType === Node.TEXT_NODE && Object.keys(m).length > 0 ? m : void 0
1560
1570
  );
1561
- F && z.push(F);
1571
+ I && _.push(I);
1562
1572
  }), {
1563
- id: C,
1573
+ id: S,
1564
1574
  type: "BOX",
1565
1575
  element: a,
1566
1576
  rect: {
1567
- x: S.left + window.scrollX,
1568
- y: S.top + window.scrollY,
1569
- width: S.width,
1570
- height: S.height
1577
+ x: T.left + window.scrollX,
1578
+ y: T.top + window.scrollY,
1579
+ width: T.width,
1580
+ height: T.height
1571
1581
  },
1572
- styles: $,
1582
+ styles: G,
1573
1583
  textContent: ie,
1574
1584
  textStyles: se,
1575
1585
  dirtyMask: e,
1576
1586
  visibility: h,
1577
- isTraveler: f,
1587
+ isTraveler: g,
1578
1588
  captureLayer: r,
1579
- nativeLayer: b,
1580
- nativeStyles: b !== void 0 ? xe(J({}, k), {
1581
- backgroundColor: (N = m.backgroundColor) != null ? N : k.backgroundColor,
1582
- backgroundImage: (Z = m.backgroundImage) != null ? Z : k.backgroundImage,
1583
- opacity: (ne = m.opacity) != null ? ne : k.opacity,
1584
- zIndex: m.zIndex !== void 0 ? m.zIndex + T : k.zIndex,
1585
- borderRadius: (oe = m.borderRadius) != null ? oe : k.borderRadius,
1586
- borderColor: (B = m.borderColor) != null ? B : k.borderColor,
1587
- borderWidth: (_ = m.borderWidth) != null ? _ : k.borderWidth,
1588
- isTraveler: k.isTraveler,
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: (oe = m.borderWidth) != null ? oe : U.borderWidth,
1598
+ isTraveler: U.isTraveler,
1589
1599
  transform: m.transform
1590
1600
  }) : void 0,
1591
- nativeRect: b !== void 0 ? {
1592
- x: m.x !== void 0 ? parseFloat(m.x) : S.left + window.scrollX,
1593
- y: m.y !== void 0 ? parseFloat(m.y) : S.top + window.scrollY,
1594
- width: m.width !== void 0 ? parseFloat(m.width) : S.width,
1595
- height: m.height !== void 0 ? parseFloat(m.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
1596
1606
  } : void 0,
1597
- isFixed: x.position === "fixed",
1598
- children: z,
1599
- shaderHooks: M
1607
+ isFixed: E.position === "fixed",
1608
+ children: _,
1609
+ shaderHooks: L
1600
1610
  };
1601
1611
  }
1602
1612
  function it(s, e) {
1603
1613
  e.size !== 0 && e.forEach((t, r) => {
1604
1614
  var c, n, o, a;
1605
1615
  const i = s.get(r);
1606
- !i || !i.userData.basePosition || (H.forceUpdateUniforms(i.material, {
1616
+ !i || !i.userData.basePosition || (Y.forceUpdateUniforms(i.material, {
1607
1617
  backgroundColor: t.backgroundColor,
1608
1618
  backgroundImage: t.backgroundImage,
1609
1619
  opacity: t.opacity,
1610
1620
  borderRadius: (n = t.borderRadius) != null ? n : (c = i.userData.baseStyles) == null ? void 0 : c.borderRadius
1611
1621
  // width and height are no longer updated here, they are updated in syncMeshesByDOM
1612
- }), i.userData.nativeMesh && H.forceUpdateUniforms(i.userData.nativeMesh.material, {
1622
+ }), i.userData.nativeMesh && Y.forceUpdateUniforms(i.userData.nativeMesh.material, {
1613
1623
  backgroundColor: t.backgroundColor,
1614
1624
  backgroundImage: t.backgroundImage,
1615
1625
  opacity: t.opacity,
@@ -1619,11 +1629,11 @@ function it(s, e) {
1619
1629
  }
1620
1630
  class st {
1621
1631
  constructor(e, t, r, i) {
1622
- g(this, "target");
1623
- g(this, "renderer");
1624
- g(this, "registry");
1625
- g(this, "isTravelEnabled", !1);
1626
- g(this, "tracker");
1632
+ p(this, "target");
1633
+ p(this, "renderer");
1634
+ p(this, "registry");
1635
+ p(this, "isTravelEnabled", !1);
1636
+ p(this, "tracker");
1627
1637
  this.target = e, this.renderer = t, this.registry = r, this.tracker = new We(e, {
1628
1638
  resizeDebounce: i.resizeDebounce
1629
1639
  }), this.tracker.onLayoutChange.add((c, n) => {
@@ -1631,7 +1641,7 @@ class st {
1631
1641
  const a = Ie(
1632
1642
  this.target,
1633
1643
  c,
1634
- P,
1644
+ W,
1635
1645
  1,
1636
1646
  0,
1637
1647
  this.renderer.qualityFactor
@@ -1652,7 +1662,7 @@ class st {
1652
1662
  }
1653
1663
  class nt {
1654
1664
  constructor() {
1655
- g(this, "store");
1665
+ p(this, "store");
1656
1666
  this.store = /* @__PURE__ */ new WeakMap();
1657
1667
  }
1658
1668
  register(e, t) {
@@ -1677,15 +1687,15 @@ class nt {
1677
1687
  }
1678
1688
  class ct {
1679
1689
  constructor(e, t) {
1680
- g(this, "renderer");
1681
- g(this, "syncer");
1682
- g(this, "target");
1683
- g(this, "registry");
1690
+ p(this, "renderer");
1691
+ p(this, "syncer");
1692
+ p(this, "target");
1693
+ p(this, "registry");
1684
1694
  var i, c, n;
1685
1695
  if (this.target = e, this.registry = new nt(), !document.getElementById("mirage-engine-styles")) {
1686
1696
  const o = document.createElement("style");
1687
1697
  o.id = "mirage-engine-styles", o.textContent = `
1688
- [${K.NAME}="${K.VALUES.HIDE}"] {
1698
+ [${$.NAME}="${$.VALUES.HIDE}"] {
1689
1699
  opacity: 0 !important;
1690
1700
  }
1691
1701
  `, document.head.appendChild(o);
@@ -1743,24 +1753,24 @@ class ct {
1743
1753
  }
1744
1754
  export {
1745
1755
  Se as ALLOWED_FILTERS,
1746
- K as ATTR_DOM,
1747
- W as ATTR_FILTER,
1756
+ $ as ATTR_DOM,
1757
+ V as ATTR_FILTER,
1748
1758
  at as ATTR_SANDWICH,
1749
- q as ATTR_SELECT,
1759
+ P as ATTR_SELECT,
1750
1760
  Xe as ATTR_SHADER,
1751
1761
  O as ATTR_TRAVEL,
1752
1762
  ve as DIRTY_CONTENT,
1753
1763
  de as DIRTY_NONE,
1754
- Q as DIRTY_RECT,
1764
+ K as DIRTY_RECT,
1755
1765
  ue as DIRTY_STRUCTURE,
1756
1766
  le as DIRTY_STYLE,
1757
1767
  ze as DIRTY_ZINDEX,
1758
1768
  lt as EXCLUDED,
1759
1769
  ct as Engine,
1760
1770
  te as SELECT_LAYER,
1761
- U as THREE_LAYERS,
1771
+ F as THREE_LAYERS,
1762
1772
  Ce as TRAVEL_VALUES,
1763
1773
  We as Tracker,
1764
- P as USER_LAYER,
1774
+ W as USER_LAYER,
1765
1775
  Ye as extractFromStyle
1766
1776
  };