mirage-engine 0.3.10 → 0.3.12

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,47 +1,47 @@
1
1
  var _e = Object.defineProperty, Fe = Object.defineProperties;
2
2
  var Ne = Object.getOwnPropertyDescriptors;
3
- var ye = Object.getOwnPropertySymbols;
3
+ var we = Object.getOwnPropertySymbols;
4
4
  var ze = Object.prototype.hasOwnProperty, Xe = Object.prototype.propertyIsEnumerable;
5
- var ae = (s, e, t) => e in s ? _e(s, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[e] = t, $ = (s, e) => {
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) => {
6
6
  for (var t in e || (e = {}))
7
- ze.call(e, t) && ae(s, t, e[t]);
8
- if (ye)
9
- for (var t of ye(e))
10
- Xe.call(e, t) && ae(s, t, e[t]);
7
+ ze.call(e, t) && me(s, t, e[t]);
8
+ if (we)
9
+ for (var t of we(e))
10
+ Xe.call(e, t) && me(s, t, e[t]);
11
11
  return s;
12
- }, be = (s, e) => Fe(s, Ne(e));
13
- var u = (s, e, t) => (ae(s, typeof e != "symbol" ? e + "" : e, t), t);
14
- var we = (s, e, t) => new Promise((r, i) => {
15
- var c = (a) => {
12
+ }, xe = (s, e) => Fe(s, Ne(e));
13
+ var u = (s, e, t) => (me(s, typeof e != "symbol" ? e + "" : e, t), t);
14
+ var Ee = (s, e, t) => new Promise((r, i) => {
15
+ var l = (a) => {
16
16
  try {
17
17
  o(t.next(a));
18
- } catch (l) {
19
- i(l);
18
+ } catch (c) {
19
+ i(c);
20
20
  }
21
21
  }, n = (a) => {
22
22
  try {
23
23
  o(t.throw(a));
24
- } catch (l) {
25
- i(l);
24
+ } catch (c) {
25
+ i(c);
26
26
  }
27
- }, o = (a) => a.done ? r(a.value) : Promise.resolve(a.value).then(c, n);
27
+ }, o = (a) => a.done ? r(a.value) : Promise.resolve(a.value).then(l, n);
28
28
  o((t = t.apply(s, e)).next());
29
29
  });
30
30
  import * as y from "three";
31
- const Le = {
31
+ const Ae = {
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
- }, G = {
37
+ }, K = {
38
38
  NAME: "data-mirage-dom",
39
39
  KEY: "mirageDom",
40
40
  VALUES: {
41
41
  HIDE: "hide",
42
42
  SHOW: "show"
43
43
  }
44
- }, xe = {
44
+ }, Ce = {
45
45
  TRAVELER: "traveler",
46
46
  NATIVE: "native",
47
47
  CAPTURE_1: "1",
@@ -54,29 +54,29 @@ const Le = {
54
54
  CAPTURE_8: "8",
55
55
  CAPTURE_9: "9",
56
56
  CAPTURE_10: "10"
57
- }, O = {
57
+ }, _ = {
58
58
  NAME: "data-mirage-travel",
59
59
  KEY: "mirageTravel",
60
- VALUES: xe,
61
- MAX_LAYERS: Object.keys(xe).length - 1
62
- }, X = {
60
+ VALUES: Ce,
61
+ MAX_LAYERS: Object.keys(Ce).length - 1
62
+ }, W = {
63
63
  NAME: "data-mirage-filter",
64
64
  KEY: "mirageFilter",
65
- VALUES: Le
66
- }, W = {
65
+ VALUES: Ae
66
+ }, $ = {
67
67
  NAME: "data-mirage-select",
68
68
  KEY: "mirageSelect",
69
- VALUES: Le
69
+ VALUES: Ae
70
70
  }, Ve = {
71
71
  NAME: "data-mirage-shader",
72
72
  KEY: "mirageShader"
73
- }, Ee = {
73
+ }, Se = {
74
74
  NAME: "data-mirage-sandwich",
75
75
  KEY: "mirageSandwich",
76
76
  VALUES: {
77
77
  FRONT: "front"
78
78
  }
79
- }, re = 0, q = 1, Z = 2, Ye = 4, ie = 8, ce = 16;
79
+ }, de = 0, Q = 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 ? {
@@ -97,7 +97,7 @@ function He(s) {
97
97
  }
98
98
  return e;
99
99
  }
100
- class Me {
100
+ class De {
101
101
  constructor(e, t) {
102
102
  u(this, "target");
103
103
  u(this, "observer");
@@ -105,7 +105,7 @@ class Me {
105
105
  u(this, "pendingStyles", /* @__PURE__ */ new Map());
106
106
  u(this, "isDomDirty", !1);
107
107
  u(this, "isRunning", !1);
108
- u(this, "pendingMask", re);
108
+ u(this, "pendingMask", de);
109
109
  u(this, "mutationTimer", null);
110
110
  u(this, "cssTimer", null);
111
111
  u(this, "resizeConfig");
@@ -120,7 +120,7 @@ class Me {
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 | Z, this.cssTimer = window.setTimeout(() => {
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(() => {
124
124
  this.isDomDirty = !0, this.cssTimer = null;
125
125
  }, 50)));
126
126
  });
@@ -136,38 +136,38 @@ class Me {
136
136
  u(this, "renderLoop", () => {
137
137
  if (!this.isRunning)
138
138
  return;
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 = re);
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 |= Q, 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 = re;
154
+ let o = de;
155
155
  for (const a of n)
156
156
  if (a.type === "childList")
157
- o |= ie, a.removedNodes.length > 0 && a.removedNodes.forEach((l) => {
158
- l instanceof HTMLElement && this.pendingDeletions.add(l);
157
+ o |= ue, a.removedNodes.length > 0 && a.removedNodes.forEach((c) => {
158
+ c instanceof HTMLElement && this.pendingDeletions.add(c);
159
159
  });
160
160
  else if (a.type === "attributes")
161
161
  if (a.attributeName === "style") {
162
- o |= q | Z;
163
- const l = a.target, d = He(l.style);
164
- this.pendingStyles.set(l, d);
162
+ o |= Q | ce;
163
+ const c = a.target, d = He(c.style);
164
+ this.pendingStyles.set(c, d);
165
165
  } else
166
- a.attributeName === "class" ? o |= q | Z : a.attributeName && a.attributeName.startsWith("data-") && (o |= q | Z, a.attributeName.startsWith("data-mirage") && (o |= ie));
166
+ a.attributeName === "class" ? o |= Q | ce : a.attributeName && a.attributeName.startsWith("data-") && (o |= Q | ce, a.attributeName.startsWith("data-mirage") && (o |= ue));
167
167
  else
168
- a.type === "characterData" && (o |= ce | q);
169
- if (o !== re) {
170
- if (this.pendingMask |= o, o & ie) {
168
+ a.type === "characterData" && (o |= ve | Q);
169
+ if (o !== de) {
170
+ if (this.pendingMask |= o, o & ue) {
171
171
  this.clearTimers(), this.isDomDirty = !0;
172
172
  return;
173
173
  }
@@ -192,13 +192,13 @@ class Me {
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 H = 1, K = 2, U = {
195
+ const P = 1, te = 2, U = {
196
196
  BASE: 0,
197
197
  SELECTED: 1,
198
198
  getCaptureLayer: (s) => 31 - s,
199
199
  HIDDEN: 31
200
- }, Ce = Object.values(X.VALUES);
201
- class Ae {
200
+ }, Te = Object.values(W.VALUES);
201
+ class ke {
202
202
  /**
203
203
  * Calculates or retrieves the exact alphabetic baseline (in pixels) for the given font.
204
204
  * @param font CSS font shorthand string (e.g., "400 16px Inter")
@@ -215,13 +215,13 @@ class Ae {
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
- u(Ae, "cache", /* @__PURE__ */ new Map());
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,55 +232,55 @@ 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
241
  const o = n.match(/[^\s\-]+\-?|\-|\s+/g) || [];
242
242
  if (o.length === 0) {
243
- c.push("");
243
+ l.push("");
244
244
  return;
245
245
  }
246
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());
247
+ for (let c = 1; c < o.length; c++) {
248
+ const d = o[c];
249
+ this.ctx.measureText(a + d).width <= r + 2 ? a += d : (a && l.push(a), a = d.trimStart());
250
250
  }
251
- a && c.push(a);
252
- }), c;
251
+ a && l.push(a);
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 = Ae.getBaseline(r.font);
256
+ const a = (window.devicePixelRatio || 1) * this.qualityFactor, c = i * a, d = l * a;
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(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, v = ke.getBaseline(r.font);
259
259
  h.forEach((g, m) => {
260
- const b = m * f + p;
261
- let R = 0;
262
- r.textAlign === "center" ? R = i / 2 : r.textAlign === "right" && (R = i), this.ctx.textAlign = r.textAlign, this.ctx.fillText(g, R, b);
260
+ const b = m * f + 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(g, L, b);
263
263
  }), this.map && (this.map.needsUpdate = !0);
264
264
  }
265
265
  dispose() {
266
266
  this.map && this.map.dispose(), super.dispose();
267
267
  }
268
268
  }
269
- function J(s, e = 0) {
269
+ function re(s, e = 0) {
270
270
  if (typeof s == "number")
271
271
  return s;
272
272
  const t = parseFloat(s) || 0;
273
273
  return typeof s == "string" && s.includes("%") ? t / 100 * e : t;
274
274
  }
275
- function ee(s) {
275
+ function le(s) {
276
276
  if (!s || s === "transparent")
277
277
  return { color: new y.Color(16777215), alpha: 0 };
278
278
  const e = s.match(
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,44 +308,44 @@ 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
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;
317
+ n.endsWith("deg") ? i = a * (Math.PI / 180) : n.endsWith("rad") ? i = a : n.endsWith("turn") && (i = a * Math.PI * 2), l = 1;
318
318
  }
319
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);
320
+ for (let a = l; a < r.length && !(o.length >= 8); a++) {
321
+ const c = r[a].trim(), d = c.lastIndexOf(" ");
322
+ let h = c, f = null;
323
+ if (d !== -1 && !c.endsWith(")")) {
324
+ const g = c.substring(d + 1);
325
+ (g.endsWith("%") || g.endsWith("px") || !isNaN(parseFloat(g))) && (h = c.substring(0, d).trim(), f = g);
326
326
  }
327
- const p = ee(h);
327
+ const v = le(h);
328
328
  o.push({
329
- color: p.color,
330
- alpha: p.alpha,
329
+ color: v.color,
330
+ alpha: v.alpha,
331
331
  rawStop: f,
332
332
  stop: 0
333
333
  });
334
334
  }
335
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);
336
+ for (let c = 0; c < o.length; c++)
337
+ o[c].rawStop !== null && (o[c].stop = parseFloat(o[c].rawStop) / 100);
338
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
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;
340
+ for (let c = 1; c < o.length; c++)
341
+ if (o[c].rawStop !== null || c === o.length - 1) {
342
+ const d = c - a;
343
343
  if (d > 1) {
344
- const h = o[a].stop, p = (o[l].stop - h) / d;
344
+ const h = o[a].stop, v = (o[c].stop - h) / d;
345
345
  for (let g = 1; g < d; g++)
346
- o[a + g].stop = h + p * g;
346
+ o[a + g].stop = h + v * g;
347
347
  }
348
- a = l;
348
+ a = c;
349
349
  }
350
350
  }
351
351
  return { angle: i, stops: o };
@@ -503,17 +503,17 @@ uniform vec2 uTextureOffset;`, Je = `vec2 screenUv = (vScreenPos.xy / vScreenPos
503
503
  vec2 resultUv = screenUv;
504
504
 
505
505
  `, Qe = `vec4 texColor = texture2D(uTexture, resultUv);
506
- baseColor = blendSrcOver(baseColor, texColor);`, Te = {
506
+ baseColor = blendSrcOver(baseColor, texColor);`, Re = {
507
507
  vertexShader: qe,
508
508
  fragmentShader: je
509
- }, Se = {
509
+ }, Le = {
510
510
  declChunk: Ke,
511
511
  uvChunk: Je,
512
512
  baseColorChunk: Qe
513
513
  };
514
514
  function Ze(s, e, t, r = null, i) {
515
515
  var x;
516
- const c = r !== null || !!s.imageSrc;
516
+ const l = r !== null || !!s.imageSrc;
517
517
  let n = "";
518
518
  const o = {};
519
519
  if (i != null && i.uniforms)
@@ -524,11 +524,11 @@ function Ze(s, e, t, r = null, i) {
524
524
  `, o[C] = { value: new y.Vector3(...w) }) : w.length === 4 && (n += `uniform vec4 ${C};
525
525
  `, o[C] = { value: new y.Vector4(...w) }) : (n += `uniform float ${C};
526
526
  `, o[C] = { value: w });
527
- const a = i !== void 0, l = (c || a ? Se.declChunk : "") + `
527
+ const a = i !== void 0, c = (l || a ? 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 ? Se.baseColorChunk : "", g = (i == null ? void 0 : i.colorModifier) || "", m = Te.fragmentShader.replace("#INJECT_DECLARATIONS", l).replace("#INJECT_UV_MODIFIER", f).replace("#INJECT_BASE_COLOR", p).replace("#INJECT_COLOR_MODIFIER", g), b = ee(s.backgroundColor), R = ee(s.borderColor), L = {
531
+ `, f = l || a ? d + h + ((i == null ? void 0 : i.uvModifier) || "") : "", v = l || a ? Le.baseColorChunk : "", g = (i == null ? void 0 : i.colorModifier) || "", m = Re.fragmentShader.replace("#INJECT_DECLARATIONS", c).replace("#INJECT_UV_MODIFIER", f).replace("#INJECT_BASE_COLOR", v).replace("#INJECT_COLOR_MODIFIER", g), b = 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(
@@ -540,14 +540,14 @@ function Ze(s, e, t, r = null, i) {
540
540
  },
541
541
  uBorderColor: {
542
542
  value: new y.Vector4(
543
- R.color.r,
544
- R.color.g,
545
- R.color.b,
546
- R.alpha
543
+ L.color.r,
544
+ L.color.g,
545
+ L.color.b,
546
+ L.alpha
547
547
  )
548
548
  },
549
549
  uBorderRadius: { value: new y.Vector4(0, 0, 0, 0) },
550
- uBorderWidth: { value: J(s.borderWidth) },
550
+ uBorderWidth: { value: re(s.borderWidth) },
551
551
  uOpacity: { value: (x = s.opacity) != null ? x : 1 },
552
552
  uTexture: { value: null },
553
553
  uTextureRepeat: { value: new y.Vector2(1, 1) },
@@ -559,24 +559,24 @@ function Ze(s, e, t, r = null, i) {
559
559
  },
560
560
  uGradientStops: { value: new Float32Array(8) }
561
561
  };
562
- De(L.uBorderRadius.value, s.borderRadius, Math.min(e, t)), c && (L.uTexture.value = r);
563
- const T = new y.ShaderMaterial({
564
- uniforms: $($({}, L), o),
565
- vertexShader: Te.vertexShader,
562
+ Ie(M.uBorderRadius.value, s.borderRadius, Math.min(e, t)), l && (M.uTexture.value = r);
563
+ const S = new y.ShaderMaterial({
564
+ uniforms: J(J({}, M), o),
565
+ vertexShader: Re.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 && le(T, { backgroundImage: s.backgroundImage }), T;
571
+ return s.backgroundImage && ye(S, { backgroundImage: s.backgroundImage }), S;
572
572
  }
573
573
  function et(s, e, t, r, i) {
574
- const c = J(e.borderWidth);
575
- le(s, {
574
+ const l = re(e.borderWidth);
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,
@@ -584,11 +584,11 @@ function et(s, e, t, r, i) {
584
584
  backgroundImage: e.backgroundImage
585
585
  });
586
586
  }
587
- function le(s, e) {
588
- var r, i, c;
587
+ function ye(s, e) {
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
- De(s.uniforms.uBorderRadius.value, e.borderRadius, n);
591
+ Ie(s.uniforms.uBorderRadius.value, e.borderRadius, n);
592
592
  }
593
593
  if (e.borderWidth !== void 0 && (s.uniforms.uBorderWidth.value = e.borderWidth), e.backgroundColor !== void 0)
594
594
  if (Array.isArray(e.backgroundColor)) {
@@ -600,7 +600,7 @@ function le(s, e) {
600
600
  n
601
601
  );
602
602
  } else if (typeof e.backgroundColor == "string") {
603
- const n = ee(e.backgroundColor);
603
+ const n = le(e.backgroundColor);
604
604
  s.uniforms.uBgColor.value.set(
605
605
  n.color.r,
606
606
  n.color.g,
@@ -626,7 +626,7 @@ function le(s, e) {
626
626
  n
627
627
  );
628
628
  } else if (typeof e.borderColor == "string") {
629
- const n = ee(e.borderColor);
629
+ const n = le(e.borderColor);
630
630
  s.uniforms.uBorderColor.value.set(
631
631
  n.color.r,
632
632
  n.color.g,
@@ -645,9 +645,9 @@ function le(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, o = t.image.naturalHeight || t.image.videoHeight || t.image.height, a = (i = e.width) != null ? i : s.uniforms.uSize.value.x, c = (l = e.height) != null ? l : s.uniforms.uSize.value.y;
649
+ if (n && o && a && c) {
650
+ const d = n / o, h = a / c;
651
651
  if (d > h) {
652
652
  const f = h / d;
653
653
  s.uniforms.uTextureRepeat.value.set(f, 1), s.uniforms.uTextureOffset.value.set((1 - f) / 2, 0);
@@ -679,8 +679,8 @@ function le(s, e) {
679
679
  for (const n of Object.keys(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
- function De(s, e, t = 0) {
683
- var a, l, d, h;
682
+ function Ie(s, e, t = 0) {
683
+ var a, c, d, h;
684
684
  if (e == null) {
685
685
  s.set(0, 0, 0, 0);
686
686
  return;
@@ -693,11 +693,11 @@ function De(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 = J(r[0], t), c = J((a = r[1]) != null ? a : r[0], t), n = J((l = r[2]) != null ? l : r[0], t), o = J((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((a = r[1]) != null ? a : r[0], t), n = re((c = r[2]) != null ? c : r[0], t), o = re((h = (d = r[3]) != null ? d : r[1]) != null ? h : r[0], t);
697
+ s.set(i, l, n, o);
698
698
  }
699
- const V = {
700
- create(s, e, t, r, i, c = 2, n = null, o) {
699
+ const H = {
700
+ create(s, e, t, r, i, l = 2, n = null, o) {
701
701
  return s === "BOX" ? Ze(
702
702
  e,
703
703
  r,
@@ -709,26 +709,26 @@ const V = {
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, o) {
716
716
  e === "BOX" ? et(
717
717
  s,
718
718
  t,
719
719
  i,
720
- c,
720
+ l,
721
721
  o
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
  },
730
730
  forceUpdateUniforms(s, e) {
731
- le(s, e);
731
+ ye(s, e);
732
732
  }
733
733
  };
734
734
  class tt {
@@ -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" }
@@ -757,7 +757,7 @@ class tt {
757
757
  e.nodeType === Node.ELEMENT_NODE && this.observer && this.observer.unobserve(e), this.disposeTexture(e), this.elementUrls.delete(e), this.loadStatus.delete(e);
758
758
  }
759
759
  loadTexture(e) {
760
- return we(this, null, function* () {
760
+ return Ee(this, null, function* () {
761
761
  if (this.loadStatus.get(e) || this.textures.has(e))
762
762
  return;
763
763
  const t = this.elementUrls.get(e);
@@ -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) => {
769
+ r = yield new Promise((l, n) => {
770
770
  const o = new Image();
771
- o.onload = () => c(o), o.onerror = n, o.src = t;
771
+ o.onload = () => l(o), o.onerror = n, o.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: O.MAX_LAYERS },
821
+ { length: _.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) => {
827
+ var o, a, c, 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 = (c = t.travelerClipArea) != null ? c : 1, this.targetLayer = (d = t.layer) != null ? d : "base", this.textureManager = new tt((f, v) => {
829
829
  const g = this.registry.get(f);
830
- g && g.material instanceof y.ShaderMaterial && V.forceUpdateUniforms(g.material, { texture: p });
830
+ g && g.material instanceof y.ShaderMaterial && H.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
- 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,7 +843,7 @@ 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";
@@ -852,7 +852,7 @@ class rt {
852
852
  return typeof this.targetLayer == "number" ? this.targetLayer : this.targetLayer === "selected" ? U.SELECTED : U.BASE;
853
853
  }
854
854
  createRenderTarget() {
855
- for (let e = 0; e < O.MAX_LAYERS; e++) {
855
+ for (let e = 0; e < _.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 && V.forceUpdateUniforms(
902
+ i.isMesh && i.material && H.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 && V.forceUpdateUniforms(
907
+ i.isMesh && i.material && H.forceUpdateUniforms(
908
908
  i.material,
909
909
  t
910
910
  );
@@ -920,8 +920,8 @@ 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, o = this.isViewport ? this.canvas.clientHeight : this.targetRect.height, a = Math.abs(i - n) > 0.1 || Math.abs(l - o) > 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
+ a ? (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);
@@ -930,7 +930,7 @@ class rt {
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
931
  (f) => f.dispose()
932
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()));
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
  });
@@ -940,11 +940,11 @@ 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 = V.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 = H.create(
948
948
  "BOX",
949
949
  e.styles,
950
950
  "",
@@ -956,8 +956,8 @@ class rt {
956
956
  );
957
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;
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 < O.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 < _.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,11 +973,11 @@ 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 & ce || n !== o) {
979
+ ], l = r ? t.nativeStyles : t.textStyles, n = JSON.stringify(l) + t.textContent + i.map((d) => d.text).join("|"), o = (c = e.userData) == null ? void 0 : c.textChildStyleHash;
980
+ if (t.dirtyMask & ve || n !== o) {
981
981
  e.children.filter(
982
982
  (g) => g.name.startsWith("TEXT_CHILD")
983
983
  ).forEach((g) => {
@@ -985,46 +985,48 @@ class rt {
985
985
  const m = g;
986
986
  (b = m.material.map) == null || b.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;
988
+ const h = t.rect, f = h.x + h.width / 2, v = h.y + h.height / 2;
989
989
  i.forEach((g, m) => {
990
- const b = V.create(
990
+ const b = H.create(
991
991
  "TEXT",
992
- c,
992
+ l,
993
993
  g.text,
994
994
  g.rect.width,
995
995
  g.rect.height,
996
996
  this.qualityFactor
997
- ), R = new y.PlaneGeometry(1, 1), L = new y.Mesh(R, b);
998
- L.name = `TEXT_CHILD_${m}`;
999
- const T = t.rect.width === 0 ? 1 : g.rect.width / t.rect.width, x = t.rect.height === 0 ? 1 : g.rect.height / t.rect.height;
1000
- L.scale.set(T, x, 1);
1001
- const C = g.rect.x + g.rect.width / 2, w = g.rect.y + g.rect.height / 2, S = C - f, M = -(w - p);
1002
- L.position.set(
1003
- t.rect.width === 0 ? 0 : S / t.rect.width,
1004
- t.rect.height === 0 ? 0 : M / t.rect.height,
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 : 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 - v);
1002
+ M.position.set(
1003
+ t.rect.width === 0 ? 0 : T / t.rect.width,
1004
+ t.rect.height === 0 ? 0 : A / t.rect.height,
1005
1005
  5e-3
1006
- ), e.add(L);
1006
+ ), e.add(M);
1007
1007
  }), e.userData.textChildStyleHash = n;
1008
1008
  }
1009
1009
  e.children.forEach((d) => {
1010
1010
  if (!d.name.startsWith("TEXT_CHILD"))
1011
1011
  return;
1012
- const h = d, f = t.visibility & H ? U.BASE : U.HIDDEN;
1013
- if (h.layers.set(f), t.visibility & K && h.layers.enable(U.SELECTED), t.visibility & H)
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 <= O.MAX_LAYERS + 1; p++)
1019
- h.layers.enable(U.getCaptureLayer(p));
1020
- else
1021
- for (let p = t.captureLayer; p <= O.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(U.HIDDEN), t.visibility & P && h.layers.enable(U.getCaptureLayer(t.nativeLayer));
1015
+ else {
1016
+ const f = t.visibility & P ? U.BASE : U.HIDDEN;
1017
+ if (h.layers.set(f), t.visibility & te && h.layers.enable(U.SELECTED), t.visibility & P)
1018
+ if (!r && t.nativeLayer !== void 0 && t.nativeStyles !== void 0)
1019
+ for (let v = t.captureLayer; v <= _.MAX_LAYERS + 1; v++)
1020
+ v !== t.nativeLayer && h.layers.enable(U.getCaptureLayer(v));
1021
+ else
1022
+ for (let v = t.captureLayer; v <= _.MAX_LAYERS + 1; v++)
1023
+ h.layers.enable(U.getCaptureLayer(v));
1024
+ }
1023
1025
  });
1024
1026
  }
1025
1027
  updateMeshProperties(e, t) {
1026
- var T, 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 S, x, C;
1029
+ const { rect: r, styles: i } = t, l = this.renderer.getPixelRatio(), n = this.renderer.domElement.width / l, o = 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,
@@ -1033,28 +1035,28 @@ class rt {
1033
1035
  };
1034
1036
  const a = 1e-3;
1035
1037
  this.renderOrder++;
1036
- const l = this.targetRect.left + window.scrollX, d = this.targetRect.top + window.scrollY;
1038
+ const c = this.targetRect.left + window.scrollX, d = this.targetRect.top + window.scrollY;
1037
1039
  let h, f;
1038
1040
  if (this.isViewport)
1039
1041
  h = r.x - window.innerWidth / 2 + r.width / 2, f = -r.y + window.innerHeight / 2 - r.height / 2;
1040
1042
  else {
1041
- const w = r.x - l, S = r.y - d;
1042
- h = w - n / 2 + r.width / 2, f = -S + o / 2 - r.height / 2;
1043
+ const w = r.x - c, T = r.y - d;
1044
+ h = w - n / 2 + r.width / 2, f = -T + o / 2 - r.height / 2;
1043
1045
  }
1044
1046
  e.position.set(
1045
1047
  h,
1046
1048
  f,
1047
1049
  i.zIndex + this.renderOrder * a
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 = 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 };
1051
1053
  const m = t.element.nodeType === Node.TEXT_NODE ? t.element.parentElement : t.element, b = window.getComputedStyle(m);
1052
- let R = 0, L = 0;
1054
+ let L = 0, M = 0;
1053
1055
  if (b.transform && b.transform !== "none") {
1054
1056
  const w = new DOMMatrix(b.transform);
1055
- R = w.m41, L = w.m42;
1057
+ L = w.m41, M = w.m42;
1056
1058
  }
1057
- if (e.userData.baseTransform = { x: R, y: L }, delete e.userData.originRatioX, delete e.userData.originRatioY, V.update(
1059
+ if (e.userData.baseTransform = { x: L, y: M }, delete e.userData.originRatioX, delete e.userData.originRatioY, H.update(
1058
1060
  e.userData.baseMaterial,
1059
1061
  "BOX",
1060
1062
  i,
@@ -1062,10 +1064,10 @@ class rt {
1062
1064
  r.width,
1063
1065
  r.height,
1064
1066
  this.qualityFactor,
1065
- t.isTraveler ? (T = this.renderTargets[t.captureLayer - 2]) == null ? void 0 : T.texture : this.textureManager.get(t.element)
1067
+ t.isTraveler ? (S = this.renderTargets[t.captureLayer - 2]) == null ? void 0 : S.texture : this.textureManager.get(t.element)
1066
1068
  ), t.nativeStyles && t.nativeRect) {
1067
1069
  if (!e.userData.nativeMesh) {
1068
- const I = V.create(
1070
+ const X = H.create(
1069
1071
  "BOX",
1070
1072
  t.nativeStyles,
1071
1073
  "",
@@ -1074,22 +1076,50 @@ class rt {
1074
1076
  this.qualityFactor,
1075
1077
  t.isTraveler ? (x = this.renderTargets[t.captureLayer - 2]) == null ? void 0 : x.texture : this.textureManager.get(t.element),
1076
1078
  t.shaderHooks
1077
- ), F = new y.Mesh(e.geometry, I);
1078
- t.type === "TEXT" && (F.name = "BG_MESH"), this.scene.add(F), e.userData.nativeMesh = F;
1079
+ ), N = new y.Mesh(e.geometry, X);
1080
+ t.type === "TEXT" && (N.name = "BG_MESH"), this.scene.add(N), e.userData.nativeMesh = N;
1079
1081
  }
1080
1082
  const w = e.userData.nativeMesh;
1081
- let S, M;
1083
+ let T, A;
1082
1084
  if (this.isViewport)
1083
- S = t.nativeRect.x - window.innerWidth / 2 + t.nativeRect.width / 2, M = -t.nativeRect.y + window.innerHeight / 2 - t.nativeRect.height / 2;
1085
+ T = 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 I = t.nativeRect.x - l, F = t.nativeRect.y - d;
1086
- S = I - n / 2 + t.nativeRect.width / 2, M = -F + o / 2 - t.nativeRect.height / 2;
1087
+ const X = t.nativeRect.x - c, N = t.nativeRect.y - d;
1088
+ T = X - n / 2 + t.nativeRect.width / 2, A = -N + o / 2 - t.nativeRect.height / 2;
1087
1089
  }
1088
- w.scale.set(t.nativeRect.width, t.nativeRect.height, 1), w.position.set(
1089
- S,
1090
- M,
1090
+ let I = t.nativeRect.width, q = t.nativeRect.height, ie = T, se = A;
1091
+ if (t.nativeStyles.transform) {
1092
+ const X = t.nativeStyles.transform, N = X.match(/scale\(([\d.]+%?)\)/);
1093
+ if (N) {
1094
+ let B = parseFloat(N[1]);
1095
+ N[1].includes("%") && (B /= 100), I *= B, q *= B;
1096
+ }
1097
+ const Z = X.match(/translate\(([^,]+),\s*([^)]+)\)/);
1098
+ if (Z) {
1099
+ const B = Z[1].trim(), F = Z[2].trim();
1100
+ let p = parseFloat(B);
1101
+ B.includes("%") && (p = p / 100 * t.nativeRect.width);
1102
+ let R = parseFloat(F);
1103
+ F.includes("%") && (R = R / 100 * t.nativeRect.height), ie += p, se -= R;
1104
+ }
1105
+ const ne = X.match(/translateX\(([^)]+)\)/);
1106
+ if (ne) {
1107
+ const B = ne[1].trim();
1108
+ let F = parseFloat(B);
1109
+ B.includes("%") && (F = F / 100 * t.nativeRect.width), ie += F;
1110
+ }
1111
+ const oe = X.match(/translateY\(([^)]+)\)/);
1112
+ if (oe) {
1113
+ const B = oe[1].trim();
1114
+ let F = parseFloat(B);
1115
+ B.includes("%") && (F = F / 100 * t.nativeRect.height), se -= F;
1116
+ }
1117
+ }
1118
+ w.scale.set(I, q, 1), w.position.set(
1119
+ ie,
1120
+ se,
1091
1121
  t.nativeStyles.zIndex + this.renderOrder * a
1092
- ), V.update(
1122
+ ), H.update(
1093
1123
  w.material,
1094
1124
  "BOX",
1095
1125
  t.nativeStyles,
@@ -1103,37 +1133,36 @@ class rt {
1103
1133
  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);
1104
1134
  }
1105
1135
  updateMeshLayers(e, t) {
1106
- const r = t.visibility & H ? U.BASE : U.HIDDEN;
1107
- if (e.layers.set(r), t.visibility & K && e.layers.enable(U.SELECTED), e.userData.nativeMesh && t.nativeLayer !== void 0) {
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) {
1108
1138
  const i = e.userData.nativeMesh;
1109
- if (i.layers.set(U.HIDDEN), t.visibility & H) {
1110
- for (let c = t.captureLayer; c < t.nativeLayer; c++)
1111
- e.layers.enable(U.getCaptureLayer(c));
1112
- for (let c = Math.max(t.captureLayer, t.nativeLayer); c <= O.MAX_LAYERS + 1; c++)
1113
- i.layers.enable(U.getCaptureLayer(c));
1139
+ if (i.layers.set(U.HIDDEN), t.visibility & P) {
1140
+ i.layers.enable(U.getCaptureLayer(t.nativeLayer));
1141
+ for (let l = t.captureLayer; l <= _.MAX_LAYERS + 1; l++)
1142
+ l !== t.nativeLayer && e.layers.enable(U.getCaptureLayer(l));
1114
1143
  }
1115
- } else if (t.visibility & H)
1116
- for (let i = t.captureLayer; i <= O.MAX_LAYERS + 1; i++)
1144
+ } else if (t.visibility & P)
1145
+ for (let i = t.captureLayer; i <= _.MAX_LAYERS + 1; i++)
1117
1146
  e.layers.enable(U.getCaptureLayer(i));
1118
1147
  }
1119
1148
  captureRenderTarget(e, t, r) {
1120
1149
  if (e.size === 0 || !r)
1121
1150
  return;
1122
- const i = new y.Color(), c = this.renderer.getClearAlpha();
1151
+ const i = new y.Color(), l = this.renderer.getClearAlpha();
1123
1152
  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);
1124
- 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();
1153
+ 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, c = this.renderer.getPixelRatio();
1125
1154
  for (const d of e) {
1126
1155
  n.setFromMatrixPosition(d.matrixWorld), n.project(this.camera);
1127
1156
  const h = (n.x + 1) / 2 * o, f = (n.y + 1) / 2 * a;
1128
- let p = 0, g = 1;
1129
- typeof this.clipArea == "number" ? g = this.clipArea : this.clipArea.endsWith("%") ? g = parseFloat(this.clipArea) / 100 : this.clipArea.endsWith("px") && (p = parseFloat(this.clipArea));
1130
- const m = d.scale.x * g + 0.5, b = d.scale.y * g + 0.5, R = h - m / 2, L = f - b / 2, T = (R * this.qualityFactor - p) / l, x = (L * this.qualityFactor - p) / l, C = (m * this.qualityFactor + p * 2) / l, w = (b * this.qualityFactor + p * 2) / l;
1131
- this.renderer.setScissor(T, x, C, w), this.renderer.render(this.scene, this.camera);
1157
+ let v = 0, g = 1;
1158
+ typeof this.clipArea == "number" ? g = this.clipArea : this.clipArea.endsWith("%") ? g = parseFloat(this.clipArea) / 100 : this.clipArea.endsWith("px") && (v = parseFloat(this.clipArea));
1159
+ const m = d.scale.x * g + 0.5, b = d.scale.y * g + 0.5, L = h - m / 2, M = f - b / 2, S = (L * this.qualityFactor - v) / c, x = (M * this.qualityFactor - v) / c, C = (m * this.qualityFactor + v * 2) / c, w = (b * this.qualityFactor + v * 2) / c;
1160
+ this.renderer.setScissor(S, x, C, w), this.renderer.render(this.scene, this.camera);
1132
1161
  }
1133
- this.renderer.setScissorTest(!1), this.renderer.autoClear = !0, this.renderer.setRenderTarget(null), this.camera.layers.set(this.getSceneLayer()), this.renderer.setClearColor(i, c);
1162
+ this.renderer.setScissorTest(!1), this.renderer.autoClear = !0, this.renderer.setRenderTarget(null), this.camera.layers.set(this.getSceneLayer()), this.renderer.setClearColor(i, l);
1134
1163
  }
1135
1164
  render() {
1136
- for (let e = 0; e < O.MAX_LAYERS; e++) {
1165
+ for (let e = 0; e < _.MAX_LAYERS; e++) {
1137
1166
  const t = e + 1;
1138
1167
  this.captureRenderTarget(
1139
1168
  this.travelersByLayer[e],
@@ -1144,7 +1173,7 @@ class rt {
1144
1173
  this.renderer.render(this.scene, this.camera);
1145
1174
  }
1146
1175
  syncMeshesByDOM() {
1147
- 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;
1176
+ 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;
1148
1177
  this.scene.children.forEach((n) => {
1149
1178
  const o = n;
1150
1179
  if (!o.userData || !o.userData.domElement)
@@ -1152,61 +1181,61 @@ class rt {
1152
1181
  const a = o.userData.domElement;
1153
1182
  if (!a.isConnected)
1154
1183
  return;
1155
- let l;
1184
+ let c;
1156
1185
  if (a.nodeType === Node.TEXT_NODE) {
1157
1186
  const h = document.createRange();
1158
- h.selectNode(a), l = h.getBoundingClientRect();
1187
+ h.selectNode(a), c = h.getBoundingClientRect();
1159
1188
  } else
1160
- l = a.getBoundingClientRect();
1189
+ c = a.getBoundingClientRect();
1161
1190
  const d = o.userData.domRect;
1162
- 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
+ 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) {
1163
1192
  o.userData.domRect = {
1164
- x: l.x,
1165
- y: l.y,
1166
- width: l.width,
1167
- height: l.height
1193
+ x: c.x,
1194
+ y: c.y,
1195
+ width: c.width,
1196
+ height: c.height
1168
1197
  };
1169
1198
  let h, f;
1170
1199
  if (this.isViewport)
1171
- h = l.x - window.innerWidth / 2 + l.width / 2, f = -l.y + window.innerHeight / 2 - l.height / 2;
1200
+ h = c.x - window.innerWidth / 2 + c.width / 2, f = -c.y + window.innerHeight / 2 - c.height / 2;
1172
1201
  else {
1173
- const p = l.x - e, g = l.y - t;
1174
- h = p - i / 2 + l.width / 2, f = -g + c / 2 - l.height / 2;
1202
+ const v = c.x - e, g = c.y - t;
1203
+ h = v - i / 2 + c.width / 2, f = -g + l / 2 - c.height / 2;
1175
1204
  }
1176
- if (o.position.setX(h), o.position.setY(f), o.scale.set(l.width, l.height, 1), o.updateMatrixWorld(), o.material instanceof y.ShaderMaterial && V.forceUpdateUniforms(o.material, {
1177
- width: l.width,
1178
- height: l.height
1205
+ if (o.position.setX(h), o.position.setY(f), o.scale.set(c.width, c.height, 1), o.updateMatrixWorld(), o.material instanceof y.ShaderMaterial && H.forceUpdateUniforms(o.material, {
1206
+ width: c.width,
1207
+ height: c.height
1179
1208
  }), o.userData.nativeMesh) {
1180
- const p = o.userData.nativeMesh;
1181
- let g = l.width, m = l.height, b = h, R = f;
1209
+ const v = o.userData.nativeMesh;
1210
+ let g = c.width, m = c.height, b = h, L = f;
1182
1211
  if (o.userData.nativeTransform) {
1183
- const L = o.userData.nativeTransform, T = L.match(/scale\(([\d.]+%?)\)/);
1184
- if (T) {
1185
- let S = parseFloat(T[1]);
1186
- T[1].includes("%") && (S /= 100), g *= S, m *= S;
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), g *= T, m *= T;
1187
1216
  }
1188
- const x = L.match(/translate\(([^,]+),\s*([^)]+)\)/);
1217
+ const x = M.match(/translate\(([^,]+),\s*([^)]+)\)/);
1189
1218
  if (x) {
1190
- const S = x[1].trim(), M = x[2].trim();
1191
- let I = parseFloat(S);
1192
- S.includes("%") && (I = I / 100 * l.width);
1193
- let F = parseFloat(M);
1194
- M.includes("%") && (F = F / 100 * l.height), b += I, R -= F;
1219
+ const T = x[1].trim(), A = x[2].trim();
1220
+ let I = parseFloat(T);
1221
+ T.includes("%") && (I = I / 100 * c.width);
1222
+ let q = parseFloat(A);
1223
+ A.includes("%") && (q = q / 100 * c.height), b += I, L -= q;
1195
1224
  }
1196
- const C = L.match(/translateX\(([^)]+)\)/);
1225
+ const C = M.match(/translateX\(([^)]+)\)/);
1197
1226
  if (C) {
1198
- const S = C[1].trim();
1199
- let M = parseFloat(S);
1200
- S.includes("%") && (M = M / 100 * l.width), b += M;
1227
+ const T = C[1].trim();
1228
+ let A = parseFloat(T);
1229
+ T.includes("%") && (A = A / 100 * c.width), b += A;
1201
1230
  }
1202
- const w = L.match(/translateY\(([^)]+)\)/);
1231
+ const w = M.match(/translateY\(([^)]+)\)/);
1203
1232
  if (w) {
1204
- const S = w[1].trim();
1205
- let M = parseFloat(S);
1206
- S.includes("%") && (M = M / 100 * l.height), R -= M;
1233
+ const T = w[1].trim();
1234
+ let A = parseFloat(T);
1235
+ T.includes("%") && (A = A / 100 * c.height), L -= A;
1207
1236
  }
1208
1237
  }
1209
- p.position.setX(b), p.position.setY(R), p.scale.set(g, m, 1), p.updateMatrixWorld();
1238
+ v.position.setX(b), v.position.setY(L), v.scale.set(g, m, 1), v.updateMatrixWorld();
1210
1239
  }
1211
1240
  }
1212
1241
  });
@@ -1214,17 +1243,17 @@ class rt {
1214
1243
  }
1215
1244
  function it(s) {
1216
1245
  const e = s.textContent || "", t = [];
1217
- let r = "", i = null, c = -1;
1218
- const n = (l, d) => {
1219
- for (let h = 0; h < l.length; h++) {
1220
- const f = l[h], p = document.createRange();
1221
- p.setStart(s, d + h), p.setEnd(s, d + h + 1);
1222
- const g = p.getBoundingClientRect();
1246
+ let r = "", i = null, l = -1;
1247
+ const n = (c, d) => {
1248
+ for (let h = 0; h < c.length; h++) {
1249
+ const f = c[h], v = document.createRange();
1250
+ v.setStart(s, d + h), v.setEnd(s, d + h + 1);
1251
+ const g = v.getBoundingClientRect();
1223
1252
  if (g.width === 0 && g.height === 0) {
1224
1253
  r += f;
1225
1254
  continue;
1226
1255
  }
1227
- c === -1 || Math.abs(g.top - c) > g.height / 2 ? (r && i && t.push({
1256
+ l === -1 || Math.abs(g.top - l) > g.height / 2 ? (r && i && t.push({
1228
1257
  text: r,
1229
1258
  rect: {
1230
1259
  left: i.left,
@@ -1237,26 +1266,26 @@ function it(s) {
1237
1266
  top: g.top,
1238
1267
  right: g.right,
1239
1268
  bottom: g.bottom
1240
- }, 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(
1269
+ }, l = 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(
1241
1270
  i.bottom,
1242
1271
  g.bottom
1243
1272
  )));
1244
1273
  }
1245
1274
  }, o = e.match(/[^\s\-]+\-?|\-|\s+/g) || [];
1246
1275
  let a = 0;
1247
- for (const l of o) {
1276
+ for (const c of o) {
1248
1277
  const d = document.createRange();
1249
- d.setStart(s, a), d.setEnd(s, a + l.length);
1278
+ d.setStart(s, a), d.setEnd(s, a + c.length);
1250
1279
  const h = d.getClientRects();
1251
1280
  if (h.length > 1)
1252
- n(l, a);
1281
+ n(c, a);
1253
1282
  else {
1254
1283
  const f = h.length === 1 ? h[0] : d.getBoundingClientRect();
1255
1284
  if (f.width === 0 && f.height === 0) {
1256
- r += l, a += l.length;
1285
+ r += c, a += c.length;
1257
1286
  continue;
1258
1287
  }
1259
- c === -1 || Math.abs(f.top - c) > f.height / 2 ? (r && i && t.push({
1288
+ l === -1 || Math.abs(f.top - l) > f.height / 2 ? (r && i && t.push({
1260
1289
  text: r,
1261
1290
  rect: {
1262
1291
  left: i.left,
@@ -1264,17 +1293,17 @@ function it(s) {
1264
1293
  width: i.right - i.left,
1265
1294
  height: i.bottom - i.top
1266
1295
  }
1267
- }), r = l, i = {
1296
+ }), r = c, i = {
1268
1297
  left: f.left,
1269
1298
  top: f.top,
1270
1299
  right: f.right,
1271
1300
  bottom: f.bottom
1272
- }, 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(
1301
+ }, l = f.top) : (r += c, 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(
1273
1302
  i.bottom,
1274
1303
  f.bottom
1275
1304
  )));
1276
1305
  }
1277
- a += l.length;
1306
+ a += c.length;
1278
1307
  }
1279
1308
  return r && i && t.push({
1280
1309
  text: r,
@@ -1285,10 +1314,10 @@ function it(s) {
1285
1314
  height: i.bottom - i.top
1286
1315
  }
1287
1316
  }), t.filter(
1288
- (l) => l.text.trim().length > 0 && l.rect.width > 0 && l.rect.height > 0
1317
+ (c) => c.text.trim().length > 0 && c.rect.width > 0 && c.rect.height > 0
1289
1318
  );
1290
1319
  }
1291
- function Re(s) {
1320
+ function Me(s) {
1292
1321
  const e = parseFloat(s.fontSize);
1293
1322
  let t = parseFloat(s.lineHeight);
1294
1323
  isNaN(t) && (t = e * 1.2);
@@ -1304,44 +1333,44 @@ function Re(s) {
1304
1333
  letterSpacing: r
1305
1334
  };
1306
1335
  }
1307
- function ke(s, e = q | Z | Ye | ce | ie, t, r = 1, i = 0, c = 2, n, o) {
1308
- var de, ue, fe, ge, pe, me;
1336
+ function Ue(s, e = Q | ce | Ye | ve | ue, t, r = 1, i = 0, l = 2, n, o) {
1337
+ var N, Z, ne, oe, B, F;
1309
1338
  if (s.nodeType === Node.TEXT_NODE) {
1310
- const v = s;
1311
- if (!v.textContent || !v.textContent.trim())
1339
+ const p = s;
1340
+ if (!p.textContent || !p.textContent.trim())
1312
1341
  return null;
1313
- const D = v.textContent.replace(/\s+/g, " ");
1314
- if (D.length === 0)
1342
+ const R = p.textContent.replace(/\s+/g, " ");
1343
+ if (R.length === 0)
1315
1344
  return null;
1316
- const B = it(v);
1317
- if (B.length === 0)
1345
+ const O = it(p);
1346
+ if (O.length === 0)
1318
1347
  return null;
1319
- const N = v.parentElement, k = N ? window.getComputedStyle(N) : null;
1348
+ const V = p.parentElement, k = V ? window.getComputedStyle(V) : null;
1320
1349
  if (!k)
1321
1350
  return null;
1322
- const Y = Math.min(...B.map((E) => E.rect.left)), _ = Math.min(...B.map((E) => E.rect.top)), P = Math.max(...B.map((E) => E.rect.left + E.rect.width)), A = Math.max(...B.map((E) => E.rect.top + E.rect.height));
1351
+ const G = 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));
1323
1352
  return {
1324
1353
  id: Math.random().toString(36).substring(2, 9),
1325
1354
  type: "TEXT",
1326
- element: v,
1355
+ element: p,
1327
1356
  rect: {
1328
- x: Y + window.scrollX,
1329
- y: _ + window.scrollY,
1330
- width: P - Y,
1331
- height: A - _
1357
+ x: G + window.scrollX,
1358
+ y: z + window.scrollY,
1359
+ width: j - G,
1360
+ height: D - z
1332
1361
  },
1333
1362
  styles: {
1334
1363
  backgroundColor: "transparent",
1335
1364
  backgroundImage: "",
1336
- opacity: N && N.dataset[G.KEY] === G.VALUES.HIDE ? 1 : parseFloat(k.opacity),
1365
+ opacity: V && V.dataset[K.KEY] === K.VALUES.HIDE ? 1 : parseFloat(k.opacity),
1337
1366
  zIndex: (isNaN(parseInt(k.zIndex)) ? 0 : parseInt(k.zIndex)) + i,
1338
1367
  borderRadius: "0px",
1339
1368
  borderColor: "transparent",
1340
1369
  borderWidth: "0px",
1341
1370
  isTraveler: !1
1342
1371
  },
1343
- textContent: D,
1344
- textLines: B.map((E) => ({
1372
+ textContent: R,
1373
+ textLines: O.map((E) => ({
1345
1374
  text: E.text.trim(),
1346
1375
  rect: {
1347
1376
  x: E.rect.left + window.scrollX,
@@ -1350,237 +1379,237 @@ function ke(s, e = q | Z | Ye | ce | ie, t, r = 1, i = 0, c = 2, n, o) {
1350
1379
  height: E.rect.height
1351
1380
  }
1352
1381
  })),
1353
- textStyles: Re(k),
1382
+ textStyles: Me(k),
1354
1383
  dirtyMask: e,
1355
1384
  visibility: t,
1356
1385
  isTraveler: !1,
1357
1386
  captureLayer: r,
1358
1387
  isFixed: k.position === "fixed",
1359
1388
  nativeLayer: n,
1360
- nativeStyles: o ? $($({
1389
+ nativeStyles: o ? J(J({
1361
1390
  backgroundColor: "transparent",
1362
1391
  backgroundImage: "",
1363
- opacity: N && N.dataset[G.KEY] === G.VALUES.HIDE ? 1 : parseFloat(k.opacity),
1392
+ opacity: V && V.dataset[K.KEY] === K.VALUES.HIDE ? 1 : parseFloat(k.opacity),
1364
1393
  zIndex: (isNaN(parseInt(k.zIndex)) ? 0 : parseInt(k.zIndex)) + i,
1365
1394
  borderRadius: "0px",
1366
1395
  borderColor: "transparent",
1367
1396
  borderWidth: "0px",
1368
1397
  isTraveler: !1
1369
- }, Re(k)), o) : void 0,
1398
+ }, Me(k)), o) : void 0,
1370
1399
  nativeRect: o ? {
1371
- x: Y + window.scrollX,
1372
- y: _ + window.scrollY,
1373
- width: P - Y,
1374
- height: A - _
1400
+ x: G + window.scrollX,
1401
+ y: z + window.scrollY,
1402
+ width: j - G,
1403
+ height: D - z
1375
1404
  } : void 0,
1376
1405
  children: []
1377
1406
  };
1378
1407
  }
1379
1408
  if (s.nodeType !== Node.ELEMENT_NODE)
1380
1409
  return null;
1381
- const a = s, l = a.dataset[X.KEY];
1410
+ const a = s, c = a.dataset[W.KEY];
1382
1411
  let d = t, h = t;
1383
- if (l) {
1384
- const v = new Set(l.split(/\s+/));
1385
- for (const D of v)
1386
- if (!Ce.includes(D))
1412
+ if (c) {
1413
+ const p = new Set(c.split(/\s+/));
1414
+ for (const R of p)
1415
+ if (!Te.includes(R))
1387
1416
  throw new Error(
1388
- `[MirageEngine] Invalid filter token: '${D}'. Expected one of: 'include-tree', 'exclude-tree', 'include-self', 'exclude-self', 'end'.`
1417
+ `[MirageEngine] Invalid filter token: '${R}'. Expected one of: 'include-tree', 'exclude-tree', 'include-self', 'exclude-self', 'end'.`
1389
1418
  );
1390
- if (v.has(X.VALUES.END))
1419
+ if (p.has(W.VALUES.END))
1391
1420
  return null;
1392
- if (v.has(X.VALUES.INCLUDE_TREE) && v.has(X.VALUES.EXCLUDE_TREE))
1421
+ if (p.has(W.VALUES.INCLUDE_TREE) && p.has(W.VALUES.EXCLUDE_TREE))
1393
1422
  throw new Error(
1394
1423
  "[MirageEngine] Conflicting filters: 'include-tree' and 'exclude-tree' cannot be used together on the same element."
1395
1424
  );
1396
- if (v.has(X.VALUES.INCLUDE_SELF) && v.has(X.VALUES.EXCLUDE_SELF))
1425
+ if (p.has(W.VALUES.INCLUDE_SELF) && p.has(W.VALUES.EXCLUDE_SELF))
1397
1426
  throw new Error(
1398
1427
  "[MirageEngine] Conflicting filters: 'include-self' and 'exclude-self' cannot be used together on the same element."
1399
1428
  );
1400
- v.has(X.VALUES.INCLUDE_TREE) ? d = d | H : v.has(X.VALUES.EXCLUDE_TREE) && (d = d & ~H), h = d, v.has(X.VALUES.INCLUDE_SELF) ? h = h | H : v.has(X.VALUES.EXCLUDE_SELF) && (h = h & ~H);
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);
1401
1430
  }
1402
- const f = a.dataset[W.KEY];
1431
+ const f = a.dataset[$.KEY];
1403
1432
  if (f) {
1404
- const v = new Set(f.split(/\s+/));
1405
- for (const D of v)
1406
- if (!Ce.includes(D))
1433
+ const p = new Set(f.split(/\s+/));
1434
+ for (const R of p)
1435
+ if (!Te.includes(R))
1407
1436
  throw new Error(
1408
- `[MirageEngine] Invalid select token: '${D}'. Expected one of: 'include-tree', 'exclude-tree', 'include-self', 'exclude-self', 'end'.`
1437
+ `[MirageEngine] Invalid select token: '${R}'. Expected one of: 'include-tree', 'exclude-tree', 'include-self', 'exclude-self', 'end'.`
1409
1438
  );
1410
- if (v.has(W.VALUES.END))
1439
+ if (p.has($.VALUES.END))
1411
1440
  return null;
1412
- if (v.has(W.VALUES.INCLUDE_TREE) && v.has(W.VALUES.EXCLUDE_TREE))
1441
+ if (p.has($.VALUES.INCLUDE_TREE) && p.has($.VALUES.EXCLUDE_TREE))
1413
1442
  throw new Error(
1414
1443
  "[MirageEngine] Conflicting selects: 'include-tree' and 'exclude-tree' cannot be used together on the same element."
1415
1444
  );
1416
- if (v.has(W.VALUES.INCLUDE_SELF) && v.has(W.VALUES.EXCLUDE_SELF))
1445
+ if (p.has($.VALUES.INCLUDE_SELF) && p.has($.VALUES.EXCLUDE_SELF))
1417
1446
  throw new Error(
1418
1447
  "[MirageEngine] Conflicting selects: 'include-self' and 'exclude-self' cannot be used together on the same element."
1419
1448
  );
1420
- v.has(W.VALUES.INCLUDE_TREE) ? d = d | K : v.has(W.VALUES.EXCLUDE_TREE) && (d = d & ~K), h = d, v.has(W.VALUES.INCLUDE_SELF) ? h = h | K : v.has(W.VALUES.EXCLUDE_SELF) && (h = h & ~K);
1421
- }
1422
- const p = a.dataset[O.KEY];
1423
- let g = !1, m = o ? $({}, o) : {}, b = n;
1424
- if (p) {
1425
- let v = 1;
1426
- const D = p.indexOf("{"), B = p.lastIndexOf("}");
1427
- let N = p;
1428
- if (D !== -1 && B !== -1 && B > D) {
1429
- N = p.substring(0, D).trim();
1430
- const A = p.substring(D, B + 1);
1449
+ p.has($.VALUES.INCLUDE_TREE) ? d = d | te : p.has($.VALUES.EXCLUDE_TREE) && (d = d & ~te), h = d, p.has($.VALUES.INCLUDE_SELF) ? h = h | te : p.has($.VALUES.EXCLUDE_SELF) && (h = h & ~te);
1450
+ }
1451
+ const v = a.dataset[_.KEY];
1452
+ let g = !1, m = o ? J({}, o) : {}, b = n;
1453
+ if (v) {
1454
+ let p = 1;
1455
+ const R = v.indexOf("{"), O = v.lastIndexOf("}");
1456
+ let V = v;
1457
+ if (R !== -1 && O !== -1 && O > R) {
1458
+ V = v.substring(0, R).trim();
1459
+ const D = v.substring(R, O + 1);
1431
1460
  try {
1432
- m = new Function("return " + A)();
1461
+ m = new Function("return " + D)();
1433
1462
  } catch (E) {
1434
1463
  console.warn(
1435
- `[MirageEngine] Failed to parse travel styles JSON: ${A}`
1464
+ `[MirageEngine] Failed to parse travel styles JSON: ${D}`
1436
1465
  );
1437
1466
  }
1438
1467
  }
1439
- const k = N.split(/\s+/);
1440
- let Y = !1;
1441
- const _ = k.indexOf(O.VALUES.TRAVELER);
1442
- if (_ !== -1) {
1443
- g = !0, Y = !0;
1444
- const A = k[_ + 1];
1445
- if (A && !isNaN(parseInt(A, 10)))
1446
- v = parseInt(A, 10);
1468
+ const k = V.split(/\s+/);
1469
+ let G = !1;
1470
+ const z = k.indexOf(_.VALUES.TRAVELER);
1471
+ if (z !== -1) {
1472
+ g = !0, G = !0;
1473
+ const D = k[z + 1];
1474
+ if (D && !isNaN(parseInt(D, 10)))
1475
+ p = parseInt(D, 10);
1447
1476
  else {
1448
- const E = k.find((j) => !isNaN(parseInt(j, 10)));
1449
- E && (v = parseInt(E, 10));
1477
+ const E = k.find((ee) => !isNaN(parseInt(ee, 10)));
1478
+ E && (p = parseInt(E, 10));
1450
1479
  }
1451
1480
  }
1452
- const P = k.indexOf(O.VALUES.NATIVE);
1453
- if (P !== -1) {
1454
- const A = k[P + 1];
1455
- if (A && !isNaN(parseInt(A, 10)))
1456
- b = parseInt(A, 10);
1481
+ const j = k.indexOf(_.VALUES.NATIVE);
1482
+ if (j !== -1) {
1483
+ const D = k[j + 1];
1484
+ if (D && !isNaN(parseInt(D, 10)))
1485
+ b = parseInt(D, 10);
1457
1486
  else if (!g) {
1458
- const E = k.find((j) => !isNaN(parseInt(j, 10)));
1487
+ const E = k.find((ee) => !isNaN(parseInt(ee, 10)));
1459
1488
  E && (b = parseInt(E, 10));
1460
1489
  }
1461
1490
  }
1462
- if (Y) {
1463
- const A = v + 1;
1464
- if (A < r)
1491
+ if (G) {
1492
+ const D = p + 1;
1493
+ if (D < r)
1465
1494
  throw new Error(
1466
- `[MirageEngine] Traveler layer (${v}) cannot be smaller than inherited capture layer (${r - 1}).`
1495
+ `[MirageEngine] Traveler layer (${p}) cannot be smaller than inherited capture layer (${r - 1}).`
1467
1496
  );
1468
- r = Math.min(A, O.MAX_LAYERS + 1);
1497
+ r = Math.min(D, _.MAX_LAYERS + 1);
1469
1498
  }
1470
1499
  }
1471
- const R = a.dataset[Ve.KEY];
1472
- let L;
1473
- R && (L = JSON.parse(R));
1474
- const T = a.getBoundingClientRect(), x = window.getComputedStyle(a);
1475
- if (T.width === 0 || T.height === 0 || x.display === "none")
1500
+ const L = a.dataset[Ve.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")
1476
1505
  return null;
1477
1506
  let C = a.getAttribute("data-mid");
1478
1507
  C || (C = Math.random().toString(36).substring(2, 11), a.setAttribute("data-mid", C));
1479
- const w = parseInt(x.zIndex), S = (isNaN(w) ? 0 : w) + i;
1480
- let M;
1508
+ const w = parseInt(x.zIndex), T = (isNaN(w) ? 0 : w) + i;
1509
+ let A;
1481
1510
  if (a.tagName === "IMG")
1482
- M = a.src;
1511
+ A = a.src;
1483
1512
  else if (a.tagName.toLowerCase() === "svg") {
1484
- const v = a.cloneNode(!0), D = m == null ? void 0 : m.color, B = m == null ? void 0 : m.fill, N = m == null ? void 0 : m.stroke, k = m == null ? void 0 : m.opacity, Y = (E, j) => {
1485
- const z = window.getComputedStyle(E), Q = j, Be = z.fill === z.color, Oe = z.stroke === z.color, se = B || (Be ? D : void 0) || z.fill;
1486
- se && se !== "none" && (Q.style.fill = se);
1487
- const ne = N || (Oe ? D : void 0) || z.stroke;
1488
- ne && ne !== "none" && (Q.style.stroke = ne), z.strokeWidth && z.strokeWidth !== "0px" && (Q.style.strokeWidth = z.strokeWidth);
1489
- const ve = D || z.color;
1490
- ve && (Q.style.color = ve);
1491
- const oe = k || z.opacity;
1492
- oe && oe !== "1" && (Q.style.opacity = oe);
1493
- for (let te = 0; te < E.children.length; te++)
1494
- Y(E.children[te], j.children[te]);
1513
+ const p = a.cloneNode(!0), R = m == null ? void 0 : m.color, O = m == null ? void 0 : m.fill, V = m == null ? void 0 : m.stroke, k = m == null ? void 0 : m.opacity, G = (E, ee) => {
1514
+ 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;
1515
+ fe && fe !== "none" && (ae.style.fill = fe);
1516
+ const ge = V || (Oe ? 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;
1519
+ be && (ae.style.color = be);
1520
+ const pe = k || Y.opacity;
1521
+ 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]);
1495
1524
  };
1496
- Y(a, v);
1497
- const _ = a.getBoundingClientRect(), P = window.devicePixelRatio * c;
1498
- v.hasAttribute("viewBox") || v.setAttribute("viewBox", `0 0 ${_.width} ${_.height}`), v.setAttribute("width", (_.width * P).toString()), v.setAttribute("height", (_.height * P).toString());
1499
- let A = new XMLSerializer().serializeToString(v);
1500
- A.includes("xmlns=") || (A = A.replace(
1525
+ G(a, p);
1526
+ const z = a.getBoundingClientRect(), j = window.devicePixelRatio * l;
1527
+ p.hasAttribute("viewBox") || p.setAttribute("viewBox", `0 0 ${z.width} ${z.height}`), p.setAttribute("width", (z.width * j).toString()), p.setAttribute("height", (z.height * j).toString());
1528
+ let D = new XMLSerializer().serializeToString(p);
1529
+ D.includes("xmlns=") || (D = D.replace(
1501
1530
  "<svg",
1502
1531
  '<svg xmlns="http://www.w3.org/2000/svg"'
1503
- )), M = `data:image/svg+xml;utf8,${encodeURIComponent(A)}`;
1532
+ )), A = `data:image/svg+xml;utf8,${encodeURIComponent(D)}`;
1504
1533
  } else if (x.backgroundImage && x.backgroundImage !== "none") {
1505
- const v = x.backgroundImage.match(/url\(['"]?(.*?)['"]?\)/);
1506
- v && (M = v[1]);
1534
+ const p = x.backgroundImage.match(/url\(['"]?(.*?)['"]?\)/);
1535
+ p && (A = p[1]);
1507
1536
  }
1508
1537
  const I = {
1509
1538
  backgroundColor: x.backgroundColor,
1510
1539
  backgroundImage: x.backgroundImage,
1511
- opacity: a.dataset[G.KEY] === G.VALUES.HIDE ? 1 : parseFloat(x.opacity),
1512
- zIndex: S,
1540
+ opacity: a.dataset[K.KEY] === K.VALUES.HIDE ? 1 : parseFloat(x.opacity),
1541
+ zIndex: T,
1513
1542
  borderRadius: x.borderRadius,
1514
1543
  borderColor: x.borderColor,
1515
1544
  borderWidth: x.borderWidth,
1516
- imageSrc: M,
1545
+ imageSrc: A,
1517
1546
  isTraveler: g
1518
- }, F = I;
1519
- let Ie, Ue;
1520
- const he = [];
1521
- return a.tagName.toLowerCase() !== "svg" && Array.from(a.childNodes).forEach((v) => {
1522
- const D = v.nodeType === Node.TEXT_NODE ? h : d, B = ke(
1523
- v,
1547
+ }, q = I;
1548
+ let ie, se;
1549
+ const X = [];
1550
+ return a.tagName.toLowerCase() !== "svg" && Array.from(a.childNodes).forEach((p) => {
1551
+ const R = p.nodeType === Node.TEXT_NODE ? h : d, O = Ue(
1552
+ p,
1524
1553
  e,
1525
- D,
1554
+ R,
1526
1555
  r,
1527
- S,
1528
- c,
1529
- v.nodeType === Node.TEXT_NODE ? b : void 0,
1530
- v.nodeType === Node.TEXT_NODE && Object.keys(m).length > 0 ? m : void 0
1556
+ T,
1557
+ l,
1558
+ p.nodeType === Node.TEXT_NODE ? b : void 0,
1559
+ p.nodeType === Node.TEXT_NODE && Object.keys(m).length > 0 ? m : void 0
1531
1560
  );
1532
- B && he.push(B);
1561
+ O && X.push(O);
1533
1562
  }), {
1534
1563
  id: C,
1535
1564
  type: "BOX",
1536
1565
  element: a,
1537
1566
  rect: {
1538
- x: T.left + window.scrollX,
1539
- y: T.top + window.scrollY,
1540
- width: T.width,
1541
- height: T.height
1567
+ x: S.left + window.scrollX,
1568
+ y: S.top + window.scrollY,
1569
+ width: S.width,
1570
+ height: S.height
1542
1571
  },
1543
- styles: F,
1544
- textContent: Ie,
1545
- textStyles: Ue,
1572
+ styles: q,
1573
+ textContent: ie,
1574
+ textStyles: se,
1546
1575
  dirtyMask: e,
1547
1576
  visibility: h,
1548
1577
  isTraveler: g,
1549
1578
  captureLayer: r,
1550
1579
  nativeLayer: b,
1551
- nativeStyles: b !== void 0 ? be($({}, I), {
1552
- backgroundColor: (de = m.backgroundColor) != null ? de : I.backgroundColor,
1553
- backgroundImage: (ue = m.backgroundImage) != null ? ue : I.backgroundImage,
1554
- opacity: (fe = m.opacity) != null ? fe : I.opacity,
1555
- zIndex: m.zIndex !== void 0 ? m.zIndex + S : I.zIndex,
1556
- borderRadius: (ge = m.borderRadius) != null ? ge : I.borderRadius,
1557
- borderColor: (pe = m.borderColor) != null ? pe : I.borderColor,
1558
- borderWidth: (me = m.borderWidth) != null ? me : I.borderWidth,
1580
+ nativeStyles: b !== void 0 ? xe(J({}, I), {
1581
+ backgroundColor: (N = m.backgroundColor) != null ? N : I.backgroundColor,
1582
+ backgroundImage: (Z = m.backgroundImage) != null ? Z : I.backgroundImage,
1583
+ opacity: (ne = m.opacity) != null ? ne : I.opacity,
1584
+ zIndex: m.zIndex !== void 0 ? m.zIndex + T : I.zIndex,
1585
+ borderRadius: (oe = m.borderRadius) != null ? oe : I.borderRadius,
1586
+ borderColor: (B = m.borderColor) != null ? B : I.borderColor,
1587
+ borderWidth: (F = m.borderWidth) != null ? F : I.borderWidth,
1559
1588
  isTraveler: I.isTraveler,
1560
1589
  transform: m.transform
1561
1590
  }) : void 0,
1562
1591
  nativeRect: b !== void 0 ? {
1563
- x: m.x !== void 0 ? parseFloat(m.x) : T.left + window.scrollX,
1564
- y: m.y !== void 0 ? parseFloat(m.y) : T.top + window.scrollY,
1565
- width: m.width !== void 0 ? parseFloat(m.width) : T.width,
1566
- height: m.height !== void 0 ? parseFloat(m.height) : T.height
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
1567
1596
  } : void 0,
1568
1597
  isFixed: x.position === "fixed",
1569
- children: he,
1570
- shaderHooks: L
1598
+ children: X,
1599
+ shaderHooks: M
1571
1600
  };
1572
1601
  }
1573
1602
  function st(s, e) {
1574
1603
  e.size !== 0 && e.forEach((t, r) => {
1575
- var c, n, o, a;
1604
+ var l, n, o, a;
1576
1605
  const i = s.get(r);
1577
- !i || !i.userData.basePosition || (V.forceUpdateUniforms(i.material, {
1606
+ !i || !i.userData.basePosition || (H.forceUpdateUniforms(i.material, {
1578
1607
  backgroundColor: t.backgroundColor,
1579
1608
  backgroundImage: t.backgroundImage,
1580
1609
  opacity: t.opacity,
1581
- borderRadius: (n = t.borderRadius) != null ? n : (c = i.userData.baseStyles) == null ? void 0 : c.borderRadius
1610
+ borderRadius: (n = t.borderRadius) != null ? n : (l = i.userData.baseStyles) == null ? void 0 : l.borderRadius
1582
1611
  // width and height are no longer updated here, they are updated in syncMeshesByDOM
1583
- }), i.userData.nativeMesh && V.forceUpdateUniforms(i.userData.nativeMesh.material, {
1612
+ }), i.userData.nativeMesh && H.forceUpdateUniforms(i.userData.nativeMesh.material, {
1584
1613
  backgroundColor: t.backgroundColor,
1585
1614
  backgroundImage: t.backgroundImage,
1586
1615
  opacity: t.opacity,
@@ -1595,21 +1624,21 @@ class nt {
1595
1624
  u(this, "registry");
1596
1625
  u(this, "isTravelEnabled", !1);
1597
1626
  u(this, "tracker");
1598
- this.target = e, this.renderer = t, this.registry = r, this.tracker = new Me(e, {
1627
+ this.target = e, this.renderer = t, this.registry = r, this.tracker = new De(e, {
1599
1628
  resizeDebounce: i.resizeDebounce
1600
- }), this.tracker.onLayoutChange.add((c, n) => {
1601
- document.querySelector(`[${O.NAME}~='${O.VALUES.TRAVELER}']`) !== null && !this.isTravelEnabled && (this.isTravelEnabled = !0, this.renderer.createRenderTarget());
1602
- const a = ke(
1629
+ }), this.tracker.onLayoutChange.add((l, n) => {
1630
+ document.querySelector(`[${_.NAME}~='${_.VALUES.TRAVELER}']`) !== null && !this.isTravelEnabled && (this.isTravelEnabled = !0, this.renderer.createRenderTarget());
1631
+ const a = Ue(
1603
1632
  this.target,
1604
- c,
1605
- H,
1633
+ l,
1634
+ P,
1606
1635
  1,
1607
1636
  0,
1608
1637
  this.renderer.qualityFactor
1609
1638
  );
1610
1639
  a && this.renderer.syncScene(a, n);
1611
- }), this.tracker.onStyleChange.add((c) => {
1612
- st(this.registry, c);
1640
+ }), this.tracker.onStyleChange.add((l) => {
1641
+ st(this.registry, l);
1613
1642
  }), this.tracker.onRender.add(() => {
1614
1643
  this.renderer.syncMeshesByDOM(), this.renderer.render();
1615
1644
  });
@@ -1652,17 +1681,17 @@ class at {
1652
1681
  u(this, "syncer");
1653
1682
  u(this, "target");
1654
1683
  u(this, "registry");
1655
- var i, c, n;
1684
+ var i, l, n;
1656
1685
  if (this.target = e, this.registry = new ot(), !document.getElementById("mirage-engine-styles")) {
1657
1686
  const o = document.createElement("style");
1658
1687
  o.id = "mirage-engine-styles", o.textContent = `
1659
- [${G.NAME}="${G.VALUES.HIDE}"] {
1688
+ [${K.NAME}="${K.VALUES.HIDE}"] {
1660
1689
  opacity: 0 !important;
1661
1690
  }
1662
1691
  `, document.head.appendChild(o);
1663
1692
  }
1664
1693
  let r;
1665
- 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)
1694
+ 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)
1666
1695
  throw new Error("[Mirage] Cannot find a container (parent or option).");
1667
1696
  this.renderer = new rt(
1668
1697
  this.target,
@@ -1701,10 +1730,10 @@ class at {
1701
1730
  ArrowUp: !1,
1702
1731
  ArrowDown: !1
1703
1732
  };
1704
- window.addEventListener("keydown", (c) => {
1705
- t[c.key] !== void 0 && (t[c.key] = !0);
1706
- }), window.addEventListener("keyup", (c) => {
1707
- t[c.key] !== void 0 && (t[c.key] = !1);
1733
+ window.addEventListener("keydown", (l) => {
1734
+ t[l.key] !== void 0 && (t[l.key] = !0);
1735
+ }), window.addEventListener("keyup", (l) => {
1736
+ t[l.key] !== void 0 && (t[l.key] = !1);
1708
1737
  });
1709
1738
  const r = 2, i = () => {
1710
1739
  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);
@@ -1721,7 +1750,7 @@ class ct {
1721
1750
  u(this, "midLayer", null);
1722
1751
  u(this, "frontLayer", null);
1723
1752
  u(this, "tracker", null);
1724
- this.frontSelector = e.frontSelector || ".front", this.midLayerElement = e.midLayerElement || null, this.items = [], this.isInitialized = !1, this.tracker = new Me(document.body, e.trackerConfig || { resizeDebounce: !0 });
1753
+ this.frontSelector = e.frontSelector || ".front", this.midLayerElement = e.midLayerElement || null, this.items = [], this.isInitialized = !1, this.tracker = new De(document.body, e.trackerConfig || { resizeDebounce: !0 });
1725
1754
  }
1726
1755
  init() {
1727
1756
  var e;
@@ -1751,8 +1780,8 @@ class ct {
1751
1780
  const e = document.querySelectorAll(this.frontSelector);
1752
1781
  this.frontLayer && e.forEach((t) => {
1753
1782
  var n;
1754
- const r = t.getBoundingClientRect(), i = window.getComputedStyle(t), c = document.createElement("div");
1755
- c.className = "sand-placeholder", Object.assign(c.style, {
1783
+ const r = t.getBoundingClientRect(), i = window.getComputedStyle(t), l = document.createElement("div");
1784
+ l.className = "sand-placeholder", Object.assign(l.style, {
1756
1785
  display: i.display === "inline" ? "inline-block" : i.display,
1757
1786
  width: `${r.width}px`,
1758
1787
  height: `${r.height}px`,
@@ -1763,14 +1792,14 @@ class ct {
1763
1792
  marginRight: i.marginRight,
1764
1793
  visibility: "hidden",
1765
1794
  pointerEvents: "none"
1766
- }), (n = t.parentNode) == null || n.insertBefore(c, t), this.frontLayer.appendChild(t), Object.assign(t.style, {
1795
+ }), (n = t.parentNode) == null || n.insertBefore(l, t), this.frontLayer.appendChild(t), Object.assign(t.style, {
1767
1796
  position: "fixed",
1768
1797
  margin: "0",
1769
1798
  boxSizing: "border-box",
1770
1799
  width: `${r.width}px`,
1771
1800
  height: `${r.height}px`,
1772
1801
  pointerEvents: "auto"
1773
- }), this.items.push({ placeholder: c, original: t });
1802
+ }), this.items.push({ placeholder: l, original: t });
1774
1803
  });
1775
1804
  }
1776
1805
  setupHooks() {
@@ -1792,7 +1821,7 @@ class ht {
1792
1821
  if (this._engine = new at(e, t), t.sandwich !== !1) {
1793
1822
  const r = typeof t.sandwich == "object" ? t.sandwich : {};
1794
1823
  this._sandwich = new ct({
1795
- frontSelector: r.frontSelector || `[${Ee.NAME}='${Ee.VALUES.FRONT}']`
1824
+ frontSelector: r.frontSelector || `[${Se.NAME}='${Se.VALUES.FRONT}']`
1796
1825
  }), this._sandwich.useTracker(this._engine.getTracker());
1797
1826
  }
1798
1827
  }