@vincentt-xr/sdk 2.0.0-alpha.2 → 2.0.0-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/GROUNDING.md +34 -9
  2. package/dist/{DebuggerUI-Cq28c18s.js → DebuggerUI-xp4bg3gH.js} +1 -1
  3. package/dist/{FaceMeshRenderer-6t8OsQhK.js → FaceMeshRenderer-CALA4k49.js} +2 -2
  4. package/dist/{FaceMeshRenderer-lQLhYIW-.cjs → FaceMeshRenderer-D4PFqsb3.cjs} +1 -1
  5. package/dist/{FaceRetouch-DtNl8-4e.cjs → FaceRetouch-Bq2rtPlV.cjs} +1 -1
  6. package/dist/{FaceRetouch-CDrL0pXg.js → FaceRetouch-DF5UsOsZ.js} +29 -29
  7. package/dist/components/MeshRenderer/index.d.ts +1 -0
  8. package/dist/components/ScreenImage/source.d.ts +3 -0
  9. package/dist/contexts-D5TQcwmv.js +660 -0
  10. package/dist/contexts-Dv1SA0bS.cjs +1 -0
  11. package/dist/debug-ui.cjs +3 -3
  12. package/dist/debug-ui.js +1246 -1205
  13. package/dist/entries/low-level.d.ts +3 -0
  14. package/dist/face-effects.cjs +1 -1
  15. package/dist/face-effects.js +3 -3
  16. package/dist/{getFaceInfo-hUKMLFcr.js → getFaceInfo-Cjcgcc4w.js} +1 -1
  17. package/dist/{getFaceInfo-CyPAKh3h.cjs → getFaceInfo-oQcP40Ha.cjs} +1 -1
  18. package/dist/hooks/useXRModel.d.ts +5 -0
  19. package/dist/{index-DSpzjuqd.cjs → index-Be-S7uSm.cjs} +1 -1
  20. package/dist/index-DdWBnI7A.cjs +17 -0
  21. package/dist/{index-Di70KWuY.js → index-DpVIEBHw.js} +844 -825
  22. package/dist/index-DqhqBi7O.cjs +1 -0
  23. package/dist/{index-UC0Ux38E.js → index-HxT9XEuh.js} +1 -1
  24. package/dist/index-N7C6fNah.js +214 -0
  25. package/dist/index-UU5ODHGU.cjs +1 -0
  26. package/dist/{index-BgQAX8rs.js → index-YMUaJU7U.js} +122 -119
  27. package/dist/{internal-DuMPpcbp.js → internal-D7NxAsc6.js} +2 -2
  28. package/dist/internal.js +1 -1
  29. package/dist/low-level.cjs +1 -1
  30. package/dist/low-level.js +399 -490
  31. package/dist/main.cjs +1 -1
  32. package/dist/main.js +26 -26
  33. package/dist/{renderGroups-C9QJrAXu.js → renderGroups-JEXqSACh.js} +1 -1
  34. package/dist/{renderGroups-Dvm1J4lW.cjs → renderGroups-uXXsFpvw.cjs} +1 -1
  35. package/dist/{renderPasses-CT5iBwtg.cjs → renderPasses-CVWt0t8m.cjs} +2 -2
  36. package/dist/{renderPasses-CjgG_6kQ.js → renderPasses-CdGZeHHL.js} +4 -4
  37. package/dist/scene-object.cjs +1 -1
  38. package/dist/scene-object.js +2 -2
  39. package/dist/{selectors-Dw3C-gSk.js → selectors-twqYByYZ.js} +3 -3
  40. package/dist/texture/animatedTexture.d.ts +2 -0
  41. package/dist/texture/gifReader.d.ts +17 -0
  42. package/dist/texture/gifTextureSource.d.ts +16 -0
  43. package/dist/tracking.cjs +1 -1
  44. package/dist/tracking.js +8 -8
  45. package/dist/{useFaceInfo-CwsHZedC.js → useFaceInfo-DOJCGlDG.js} +2 -2
  46. package/dist/{useFaceInfo-C-WfMlYp.cjs → useFaceInfo-DSUmuzzO.cjs} +1 -1
  47. package/dist/{useFaceResults-VcFdOUFV.cjs → useFaceResults-B1BSGUAW.cjs} +1 -1
  48. package/dist/{useFaceResults-CkFc1egZ.js → useFaceResults-CBmhT5E8.js} +1 -1
  49. package/docs/api/screen-image.mdx +27 -3
  50. package/docs/api/texture-sources.mdx +25 -6
  51. package/docs/texture-api-consumer.md +26 -0
  52. package/package.json +3 -3
  53. package/dist/contexts-BKvTIayr.cjs +0 -1
  54. package/dist/contexts-Bk5zz_VR.js +0 -214
  55. package/dist/index-82aENaRq.cjs +0 -1
  56. package/dist/index-CEc1CAmB.cjs +0 -1
  57. package/dist/index-CTHeBQOs.js +0 -178
  58. package/dist/index-DzEzkBIH.cjs +0 -17
@@ -1,24 +1,24 @@
1
- import { jsx as g, jsxs as F, Fragment as he } from "react/jsx-runtime";
2
- import { useThree as Ae, useFrame as ie } from "@react-three/fiber";
3
- import { useMemo as k, forwardRef as at, useEffect as ne, useState as ge, useRef as W, useCallback as Ie, useLayoutEffect as ot } from "react";
4
- import * as p from "three";
5
- import { Vector2 as st, Raycaster as lt, Ray as At, Vector3 as q, Quaternion as We, Euler as ct } from "three";
6
- import { e as ht, a as Ue, u as be, S as gt, M as dt } from "./index-CTHeBQOs.js";
7
- import { T as le, m as ft } from "./FaceMeshRenderer-6t8OsQhK.js";
8
- import { W as z, U as Xe, Z as Ve, X as Ze, s as ut, t as St, b as De, P as vt, L as Ct, R as mt, E as Et, Y as je, I as It } from "./renderPasses-CjgG_6kQ.js";
9
- import { d as bt, c as yt, S as Tt } from "./contexts-Bk5zz_VR.js";
10
- import { b as Bt, r as pt } from "./index-BgQAX8rs.js";
11
- import { T as Mt, s as Qt } from "./index-UC0Ux38E.js";
12
- import { a as wt } from "./useFaceInfo-CwsHZedC.js";
13
- import { g as kt, e as xt, u as Lt } from "./index-JygePOwo.js";
14
- import { useTexture as Ft } from "@react-three/drei";
15
- const j = {
1
+ import { jsx as h, jsxs as F, Fragment as de } from "react/jsx-runtime";
2
+ import { useThree as Ae, useFrame as ae } from "@react-three/fiber";
3
+ import { useMemo as x, forwardRef as at, useEffect as te, useState as ce, useRef as X, useCallback as Ie, useLayoutEffect as ot } from "react";
4
+ import * as M from "three";
5
+ import { Vector2 as st, Raycaster as lt, Ray as ct, Vector3 as _, Quaternion as We, Euler as At } from "three";
6
+ import { e as ht, a as Ue, u as be, S as dt, M as gt } from "./index-N7C6fNah.js";
7
+ import { T as le, m as ft } from "./FaceMeshRenderer-CALA4k49.js";
8
+ import { W as z, U as Xe, Z as Ve, X as Ze, s as ut, t as St, b as De, P as vt, L as mt, R as Ct, E as Et, Y as je, I as It } from "./renderPasses-CdGZeHHL.js";
9
+ import { d as bt, j as yt, k as Tt, f as Bt, c as pt, S as Mt } from "./contexts-D5TQcwmv.js";
10
+ import { b as wt, r as Qt } from "./index-YMUaJU7U.js";
11
+ import { T as kt, s as xt } from "./index-HxT9XEuh.js";
12
+ import { a as Lt } from "./useFaceInfo-DOJCGlDG.js";
13
+ import { g as Ft, e as Yt, u as Wt } from "./index-JygePOwo.js";
14
+ import { useTexture as Xt } from "@react-three/drei";
15
+ const Z = {
16
16
  width: 720,
17
17
  height: 1280
18
- }, Yt = (t = [0.5, 0.5]) => [
18
+ }, Dt = (t = [0.5, 0.5]) => [
19
19
  t[0] * 2 - 1,
20
20
  t[1] * 2 - 1
21
- ], de = ({
21
+ ], ge = ({
22
22
  position: t = [0, 0],
23
23
  size: e = [1, 1]
24
24
  }) => {
@@ -29,52 +29,52 @@ const j = {
29
29
  top: t[1] + r,
30
30
  bottom: t[1] - r
31
31
  };
32
- }, Wt = ({
32
+ }, Pt = ({
33
33
  position: t = [0, 0],
34
- size: e = [j.width, j.width],
35
- canvasSize: n = j
34
+ size: e = [Z.width, Z.width],
35
+ canvasSize: n = Z
36
36
  }) => {
37
- const r = n.width / 2 || j.width / 2, i = n.height / 2 || j.height / 2;
38
- return de({
39
- position: [t[0] / r, t[1] / i],
40
- size: [e[0] / r, e[1] / i]
37
+ const r = n.width / 2 || Z.width / 2, a = n.height / 2 || Z.height / 2;
38
+ return ge({
39
+ position: [t[0] / r, t[1] / a],
40
+ size: [e[0] / r, e[1] / a]
41
41
  });
42
42
  }, qe = ({
43
43
  coordinateSpace: t = "normalized",
44
- canvasSize: e = j,
44
+ canvasSize: e = Z,
45
45
  position: n,
46
46
  size: r,
47
- fallbackAnchors: i
48
- }) => i || (!n && !r ? de({}) : t === "canvas" ? Wt({ position: n, size: r, canvasSize: e }) : de({ position: n, size: r })), fe = (t, e) => {
47
+ fallbackAnchors: a
48
+ }) => a || (!n && !r ? ge({}) : t === "canvas" ? Pt({ position: n, size: r, canvasSize: e }) : ge({ position: n, size: r })), fe = (t, e) => {
49
49
  if (!Number.isFinite(t) || t <= 0) throw new RangeError(`${e} must be positive`);
50
50
  return t;
51
- }, ae = (t, e) => {
51
+ }, oe = (t, e) => {
52
52
  const n = fe(e.width, "root.width"), r = fe(e.height, "root.height");
53
53
  return !Number.isFinite(t.width) || !Number.isFinite(t.height) || t.width <= 0 || t.height <= 0 ? 0 : Math.min(t.width / n, t.height / r);
54
54
  }, ye = (t, e, n, r) => {
55
- const i = ae(e, n);
56
- return i === 0 ? Object.assign(r, { x: 0, y: 0 }) : (r.x = (t.x - e.width * 0.5) / i, r.y = (e.height * 0.5 - t.y) / i, r);
55
+ const a = oe(e, n);
56
+ return a === 0 ? Object.assign(r, { x: 0, y: 0 }) : (r.x = (t.x - e.width * 0.5) / a, r.y = (e.height * 0.5 - t.y) / a, r);
57
57
  }, Te = (t, e, n, r) => {
58
- const i = ae(e, n);
59
- return r.x = t.x * i + e.width * 0.5, r.y = e.height * 0.5 - t.y * i, r;
58
+ const a = oe(e, n);
59
+ return r.x = t.x * a + e.width * 0.5, r.y = e.height * 0.5 - t.y * a, r;
60
60
  }, _e = ({
61
61
  parentSize: t,
62
62
  referencePixelsPerUnit: e = Xe,
63
63
  root: n = z
64
- }) => ae(t, n) * (Xe / fe(e, "referencePixelsPerUnit")), sr = (t, e) => t * _e(e), lr = (t, e) => {
64
+ }) => oe(t, n) * (Xe / fe(e, "referencePixelsPerUnit")), dr = (t, e) => t * _e(e), gr = (t, e) => {
65
65
  const n = _e(e);
66
66
  return n === 0 ? 0 : t / n;
67
- }, Ar = ({
67
+ }, fr = ({
68
68
  point: t,
69
69
  rect: e,
70
70
  root: n = z,
71
71
  target: r = { x: 0, y: 0 }
72
- }) => ye({ x: t.x - e.left, y: t.y - e.top }, e, n, r), cr = ({
72
+ }) => ye({ x: t.x - e.left, y: t.y - e.top }, e, n, r), ur = ({
73
73
  point: t,
74
74
  rect: e,
75
75
  root: n = z,
76
76
  target: r = { x: 0, y: 0 }
77
- }) => (Te(t, e, n, r), r.x += e.left, r.y += e.top, r), Xt = ({
77
+ }) => (Te(t, e, n, r), r.x += e.left, r.y += e.top, r), Rt = ({
78
78
  point: t,
79
79
  root: e = z,
80
80
  target: n = { x: 0, y: 0 },
@@ -84,83 +84,83 @@ const j = {
84
84
  r,
85
85
  e,
86
86
  n
87
- ), hr = ({
87
+ ), Sr = ({
88
88
  point: t,
89
89
  root: e = z,
90
90
  target: n = { x: 0, y: 0 },
91
91
  viewportSize: r
92
- }) => r.width <= 0 || r.height <= 0 ? Object.assign(n, { x: 0, y: 0 }) : (Te(t, r, e, n), n.x /= r.width, n.y /= r.height, n), gr = ({
92
+ }) => r.width <= 0 || r.height <= 0 ? Object.assign(n, { x: 0, y: 0 }) : (Te(t, r, e, n), n.x /= r.width, n.y /= r.height, n), vr = ({
93
93
  layout: t,
94
94
  mirrored: e = !1,
95
95
  point: n,
96
96
  root: r = z,
97
- target: i = { x: 0, y: 0 }
97
+ target: a = { x: 0, y: 0 }
98
98
  }) => {
99
- if (t.scale <= 0) return Object.assign(i, { x: 0, y: 0 });
100
- const a = t.offsetX + n.x * t.scale;
99
+ if (t.scale <= 0) return Object.assign(a, { x: 0, y: 0 });
100
+ const i = t.offsetX + n.x * t.scale;
101
101
  return ye(
102
102
  {
103
- x: e ? t.destination.width - a : a,
103
+ x: e ? t.destination.width - i : i,
104
104
  y: t.offsetY + n.y * t.scale
105
105
  },
106
106
  t.destination,
107
107
  r,
108
- i
108
+ a
109
109
  );
110
- }, dr = ({
110
+ }, mr = ({
111
111
  layout: t,
112
112
  mirrored: e = !1,
113
113
  point: n,
114
114
  root: r = z,
115
- target: i = { x: 0, y: 0 }
115
+ target: a = { x: 0, y: 0 }
116
116
  }) => {
117
- if (t.scale <= 0) return Object.assign(i, { x: 0, y: 0 });
118
- Te(n, t.destination, r, i);
119
- const a = e ? t.destination.width - i.x : i.x;
120
- return i.x = (a - t.offsetX) / t.scale, i.y = (i.y - t.offsetY) / t.scale, i;
121
- }, se = new q(), Pe = new st(), Re = new lt(), fr = ({
117
+ if (t.scale <= 0) return Object.assign(a, { x: 0, y: 0 });
118
+ Te(n, t.destination, r, a);
119
+ const i = e ? t.destination.width - a.x : a.x;
120
+ return a.x = (i - t.offsetX) / t.scale, a.y = (a.y - t.offsetY) / t.scale, a;
121
+ }, se = new _(), Pe = new st(), Re = new lt(), Cr = ({
122
122
  camera: t,
123
123
  point: e,
124
124
  root: n = z,
125
125
  target: r = { x: 0, y: 0, depth: 0 },
126
- viewportSize: i
126
+ viewportSize: a
127
127
  }) => {
128
- const a = ae(i, n);
129
- return se.set(e.x, e.y, e.z).project(t), r.x = a === 0 ? 0 : se.x * i.width / (2 * a), r.y = a === 0 ? 0 : se.y * i.height / (2 * a), r.depth = se.z, r;
130
- }, ur = ({
128
+ const i = oe(a, n);
129
+ return se.set(e.x, e.y, e.z).project(t), r.x = i === 0 ? 0 : se.x * a.width / (2 * i), r.y = i === 0 ? 0 : se.y * a.height / (2 * i), r.depth = se.z, r;
130
+ }, Er = ({
131
131
  camera: t,
132
132
  point: e,
133
133
  root: n = z,
134
- target: r = new At(),
135
- viewportSize: i
134
+ target: r = new ct(),
135
+ viewportSize: a
136
136
  }) => {
137
- const a = ae(i, n);
137
+ const i = oe(a, n);
138
138
  return Pe.set(
139
- i.width <= 0 ? 0 : e.x * a * 2 / i.width,
140
- i.height <= 0 ? 0 : e.y * a * 2 / i.height
139
+ a.width <= 0 ? 0 : e.x * i * 2 / a.width,
140
+ a.height <= 0 ? 0 : e.y * i * 2 / a.height
141
141
  ), Re.setFromCamera(Pe, t), r.copy(Re.ray);
142
- }, Dt = ({ children: t, depth: e = 0 }) => {
143
- const { camera: n, size: r } = Ae(), i = k(() => {
142
+ }, Ot = ({ children: t, depth: e = 0 }) => {
143
+ const { camera: n, size: r } = Ae(), a = x(() => {
144
144
  if (!n.isPerspectiveCamera)
145
145
  return { width: 10, height: 10 };
146
- const a = n, o = Math.abs(a.position.z - e), l = a.fov * Math.PI / 180, s = 2 * Math.tan(l / 2) * o;
146
+ const i = n, o = Math.abs(i.position.z - e), l = i.fov * Math.PI / 180, s = 2 * Math.tan(l / 2) * o;
147
147
  return { width: s * (r.width / r.height), height: s };
148
148
  }, [n, r, e]);
149
- return /* @__PURE__ */ g(ht.Provider, { value: i, children: /* @__PURE__ */ g("group", { position: [0, 0, e], children: t }) });
149
+ return /* @__PURE__ */ h(ht.Provider, { value: a, children: /* @__PURE__ */ h("group", { position: [0, 0, e], children: t }) });
150
150
  }, $e = at(
151
- ({ texture: t, name: e, overlay: n, opacity: r, position: i, rotation: a, scale: o, visible: l, renderOrder: s }, c) => /* @__PURE__ */ F(
151
+ ({ texture: t, name: e, overlay: n, opacity: r, position: a, rotation: i, scale: o, visible: l, renderOrder: s }, A) => /* @__PURE__ */ F(
152
152
  "mesh",
153
153
  {
154
- ref: c,
154
+ ref: A,
155
155
  name: e,
156
- position: i,
157
- rotation: a,
156
+ position: a,
157
+ rotation: i,
158
158
  scale: o,
159
159
  visible: l,
160
160
  renderOrder: s,
161
161
  children: [
162
- /* @__PURE__ */ g("planeGeometry", { args: [1, 1] }),
163
- /* @__PURE__ */ g(
162
+ /* @__PURE__ */ h("planeGeometry", { args: [1, 1] }),
163
+ /* @__PURE__ */ h(
164
164
  "meshBasicMaterial",
165
165
  {
166
166
  map: t,
@@ -175,7 +175,7 @@ const j = {
175
175
  )
176
176
  );
177
177
  $e.displayName = "TextLabelMesh";
178
- const Pt = {
178
+ const Gt = {
179
179
  color: "#ffffff",
180
180
  strokeWidth: 0,
181
181
  strokeOpacity: 1,
@@ -210,26 +210,26 @@ const Pt = {
210
210
  bendPreset: "arc",
211
211
  bendStrength: 0
212
212
  }, ue = (t) => {
213
- ne(
213
+ te(
214
214
  () => () => {
215
215
  t == null || t.dispose();
216
216
  },
217
217
  [t]
218
218
  );
219
219
  };
220
- function Rt(t, e, n) {
220
+ function Ht(t, e, n) {
221
221
  return n === "left" ? e : n === "right" ? t - e : t / 2;
222
222
  }
223
- function Ot(t, e, n, r, i) {
224
- return i === "top" ? e + n / 2 : i === "bottom" ? t - e - r + n / 2 : t / 2 - (r - n) / 2;
223
+ function Jt(t, e, n, r, a) {
224
+ return a === "top" ? e + n / 2 : a === "bottom" ? t - e - r + n / 2 : t / 2 - (r - n) / 2;
225
225
  }
226
- function Gt(t, e, n, r) {
226
+ function zt(t, e, n, r) {
227
227
  return r === "full" || n === "left" ? 0 : n === "right" ? t - e : (t - e) / 2;
228
228
  }
229
229
  function et(t, e, n, r) {
230
230
  return `${t} ${e} ${n}px ${r}`;
231
231
  }
232
- function re(t, e) {
232
+ function ie(t, e) {
233
233
  const n = Math.max(0, Math.min(e, 1));
234
234
  return t * n * 0.08;
235
235
  }
@@ -243,7 +243,7 @@ function nt(t, e) {
243
243
  function rt(t) {
244
244
  "letterSpacing" in t && (t.letterSpacing = "0px");
245
245
  }
246
- function ee(t, e, n) {
246
+ function ne(t, e, n) {
247
247
  nt(t, n);
248
248
  const r = t.measureText(e).width;
249
249
  return rt(t), r;
@@ -251,145 +251,145 @@ function ee(t, e, n) {
251
251
  function Se(t, e, n, r) {
252
252
  return Math.max(1, Math.floor((t - e * 2) / tt(n, r)));
253
253
  }
254
- function Ht(t, e, n, r, i) {
255
- return e.length <= r && e.every((a) => ee(t, a, i) <= n);
254
+ function Kt(t, e, n, r, a) {
255
+ return e.length <= r && e.every((i) => ne(t, i, a) <= n);
256
256
  }
257
- function ve(t, e, n, r, i, a, o, l) {
258
- t.font = et(r, i, a, o);
259
- const s = e.split(" "), c = [];
260
- let A = "";
261
- for (const d of s) {
262
- const f = A ? `${A} ${d}` : d;
263
- ee(t, f, l) > n && A ? (c.push(A), A = d) : A = f;
257
+ function ve(t, e, n, r, a, i, o, l) {
258
+ t.font = et(r, a, i, o);
259
+ const s = e.split(" "), A = [];
260
+ let c = "";
261
+ for (const g of s) {
262
+ const f = c ? `${c} ${g}` : g;
263
+ ne(t, f, l) > n && c ? (A.push(c), c = g) : c = f;
264
264
  }
265
- return A && c.push(A), c;
265
+ return c && A.push(c), A;
266
266
  }
267
- function Oe(t, e, n, r, i, a, o, l) {
268
- const c = e.split(/\r?\n/).flatMap((A) => A.trim().length === 0 ? [""] : ve(
267
+ function Oe(t, e, n, r, a, i, o, l) {
268
+ const A = e.split(/\r?\n/).flatMap((c) => c.trim().length === 0 ? [""] : ve(
269
269
  t,
270
- A,
270
+ c,
271
271
  n,
272
272
  r,
273
- i,
274
273
  a,
274
+ i,
275
275
  o,
276
276
  l
277
277
  ));
278
- return c.length > 0 ? c : [e];
278
+ return A.length > 0 ? A : [e];
279
279
  }
280
- function it(t, e, n, r, i) {
281
- const a = r ? "..." : "";
280
+ function it(t, e, n, r, a) {
281
+ const i = r ? "..." : "";
282
282
  let o = e.trimEnd();
283
- for (; o.length > 0 && ee(t, `${o}${a}`, i) > n; )
283
+ for (; o.length > 0 && ne(t, `${o}${i}`, a) > n; )
284
284
  o = o.slice(0, -1).trimEnd();
285
- return `${o}${a}`;
285
+ return `${o}${i}`;
286
286
  }
287
- function Ce(t, e, n, r, i) {
288
- return e.map((a, o) => {
289
- if (ee(t, a, i) <= n) return a;
287
+ function me(t, e, n, r, a) {
288
+ return e.map((i, o) => {
289
+ if (ne(t, i, a) <= n) return i;
290
290
  const l = o === e.length - 1;
291
291
  return it(
292
292
  t,
293
- a,
293
+ i,
294
294
  n,
295
295
  r === "ellipsis" && l,
296
- i
296
+ a
297
297
  );
298
298
  });
299
299
  }
300
- function Ge(t, e, n, r, i, a) {
300
+ function Ge(t, e, n, r, a, i) {
301
301
  if (e.length <= n)
302
- return Ce(
302
+ return me(
303
303
  t,
304
304
  e,
305
305
  r,
306
- i ? "ellipsis" : "clip",
307
- a
306
+ a ? "ellipsis" : "clip",
307
+ i
308
308
  );
309
309
  const o = e.slice(0, n), l = o[n - 1];
310
310
  return o[n - 1] = it(
311
311
  t,
312
312
  l,
313
313
  r,
314
- i,
315
- a
316
- ), Ce(
314
+ a,
315
+ i
316
+ ), me(
317
317
  t,
318
318
  o,
319
319
  r,
320
- i ? "ellipsis" : "clip",
321
- a
320
+ a ? "ellipsis" : "clip",
321
+ i
322
322
  );
323
323
  }
324
- function Jt(t) {
324
+ function Nt(t) {
325
325
  const {
326
326
  ctx: e,
327
327
  text: n,
328
328
  explicitLines: r,
329
- maxWidth: i,
330
- maxHeight: a,
329
+ maxWidth: a,
330
+ maxHeight: i,
331
331
  padding: o,
332
332
  fontStyle: l,
333
333
  fontWeight: s,
334
- fontSize: c,
335
- fontFamily: A,
336
- letterSpacing: d,
334
+ fontSize: A,
335
+ fontFamily: c,
336
+ letterSpacing: g,
337
337
  lineSpacing: f,
338
338
  overflow: S,
339
- resizeToFit: C,
339
+ resizeToFit: m,
340
340
  minFontSize: v
341
341
  } = t;
342
- let u = c, m = re(u, d), I = r ?? Oe(
342
+ let u = A, C = ie(u, g), I = r ?? Oe(
343
343
  e,
344
344
  n,
345
- i,
345
+ a,
346
346
  l,
347
347
  s,
348
348
  u,
349
- A,
350
- m
351
- ), E = Se(a, o, u, f);
352
- const B = C === !0 || S === "shrink";
353
- for (; B && !Ht(e, I, i, E, m) && u > v && (u = Math.max(v, u - 4), m = re(u, d), I = r ?? Oe(
349
+ c,
350
+ C
351
+ ), E = Se(i, o, u, f);
352
+ const p = m === !0 || S === "shrink";
353
+ for (; p && !Kt(e, I, a, E, C) && u > v && (u = Math.max(v, u - 4), C = ie(u, g), I = r ?? Oe(
354
354
  e,
355
355
  n,
356
- i,
356
+ a,
357
357
  l,
358
358
  s,
359
359
  u,
360
- A,
361
- m
362
- ), E = Se(a, o, u, f), u !== v); )
360
+ c,
361
+ C
362
+ ), E = Se(i, o, u, f), u !== v); )
363
363
  ;
364
364
  return S === "ellipsis" ? I = Ge(
365
365
  e,
366
366
  I,
367
367
  E,
368
- i,
368
+ a,
369
369
  !0,
370
- m
370
+ C
371
371
  ) : S === "clamp" || S === "shrink" ? I = Ge(
372
372
  e,
373
373
  I,
374
374
  E,
375
- i,
375
+ a,
376
376
  !1,
377
- m
378
- ) : S !== "clip" && (I = Ce(e, I, i, void 0, m)), { fontSize: u, lines: I };
377
+ C
378
+ ) : S !== "clip" && (I = me(e, I, a, void 0, C)), { fontSize: u, lines: I };
379
379
  }
380
- function zt(t) {
380
+ function Ut(t) {
381
381
  const {
382
382
  ctx: e,
383
383
  text: n,
384
384
  maxWidth: r,
385
- maxHeight: i,
386
- padding: a,
385
+ maxHeight: a,
386
+ padding: i,
387
387
  fontStyle: o,
388
388
  fontWeight: l,
389
389
  fontSize: s,
390
- fontFamily: c,
391
- letterSpacing: A,
392
- lineSpacing: d
390
+ fontFamily: A,
391
+ letterSpacing: c,
392
+ lineSpacing: g
393
393
  } = t;
394
394
  let f = s, S = ve(
395
395
  e,
@@ -398,30 +398,30 @@ function zt(t) {
398
398
  o,
399
399
  l,
400
400
  f,
401
- c,
402
- re(f, A)
401
+ A,
402
+ ie(f, c)
403
403
  );
404
- const C = Se(i, a, f, d);
405
- return S.length > C && (f = Math.max(12, Math.round(f * 0.75)), S = ve(
404
+ const m = Se(a, i, f, g);
405
+ return S.length > m && (f = Math.max(12, Math.round(f * 0.75)), S = ve(
406
406
  e,
407
407
  n,
408
408
  r,
409
409
  o,
410
410
  l,
411
411
  f,
412
- c,
413
- re(f, A)
412
+ A,
413
+ ie(f, c)
414
414
  )), { fontSize: f, lines: S };
415
415
  }
416
- function me(t, e) {
416
+ function Ce(t, e) {
417
417
  return typeof OffscreenCanvas < "u" ? new OffscreenCanvas(t, e) : (() => {
418
418
  const n = document.createElement("canvas");
419
419
  return n.width = t, n.height = e, n;
420
420
  })();
421
421
  }
422
- function Kt(t, e) {
423
- const n = e.width - e.padding * 2, i = Array.isArray(e.lines) || e.text.includes(`
424
- `) || e.overflow !== void 0 || e.resizeToFit !== void 0 ? Jt({
422
+ function Vt(t, e) {
423
+ const n = e.width - e.padding * 2, a = Array.isArray(e.lines) || e.text.includes(`
424
+ `) || e.overflow !== void 0 || e.resizeToFit !== void 0 ? Nt({
425
425
  ctx: t,
426
426
  text: e.text,
427
427
  explicitLines: e.lines,
@@ -437,7 +437,7 @@ function Kt(t, e) {
437
437
  minFontSize: e.minFontSize,
438
438
  letterSpacing: e.letterSpacing,
439
439
  lineSpacing: e.lineSpacing
440
- }) : zt({
440
+ }) : Ut({
441
441
  ctx: t,
442
442
  text: e.text,
443
443
  maxWidth: n,
@@ -449,48 +449,48 @@ function Kt(t, e) {
449
449
  fontFamily: e.fontFamily,
450
450
  letterSpacing: e.letterSpacing,
451
451
  lineSpacing: e.lineSpacing
452
- }), a = i.fontSize, o = i.lines;
453
- t.font = et(e.fontStyle, e.fontWeight, a, e.fontFamily);
454
- const l = re(a, e.letterSpacing), s = tt(a, e.lineSpacing), c = Math.max(
455
- a,
456
- a + (o.length - 1) * s
457
- ), A = Ot(
452
+ }), i = a.fontSize, o = a.lines;
453
+ t.font = et(e.fontStyle, e.fontWeight, i, e.fontFamily);
454
+ const l = ie(i, e.letterSpacing), s = tt(i, e.lineSpacing), A = Math.max(
455
+ i,
456
+ i + (o.length - 1) * s
457
+ ), c = Jt(
458
458
  e.height,
459
459
  e.padding,
460
- a,
461
- c,
460
+ i,
461
+ A,
462
462
  e.verticalAlign
463
- ), d = o.map(
464
- (f) => ee(t, f, l)
463
+ ), g = o.map(
464
+ (f) => ne(t, f, l)
465
465
  );
466
466
  return {
467
- fontSize: a,
467
+ fontSize: i,
468
468
  resolvedLines: o,
469
469
  letterSpacingPx: l,
470
470
  lineHeight: s,
471
- startY: A,
471
+ startY: c,
472
472
  textBlockWidth: Math.min(
473
473
  e.width,
474
- Math.max(0, Math.max(...d, 0)) + e.padding * 2
474
+ Math.max(0, Math.max(...g, 0)) + e.padding * 2
475
475
  ),
476
- textBlockHeight: Math.min(e.height, c + e.padding * 2),
477
- textX: Rt(e.width, e.padding, e.textAlign)
476
+ textBlockHeight: Math.min(e.height, A + e.padding * 2),
477
+ textX: Ht(e.width, e.padding, e.textAlign)
478
478
  };
479
479
  }
480
- function Nt(t, e, n, r, i, a) {
481
- t.beginPath(), t.moveTo(e + a, n), t.lineTo(e + r - a, n), t.quadraticCurveTo(e + r, n, e + r, n + a), t.lineTo(e + r, n + i - a), t.quadraticCurveTo(e + r, n + i, e + r - a, n + i), t.lineTo(e + a, n + i), t.quadraticCurveTo(e, n + i, e, n + i - a), t.lineTo(e, n + a), t.quadraticCurveTo(e, n, e + a, n), t.closePath();
480
+ function Zt(t, e, n, r, a, i) {
481
+ t.beginPath(), t.moveTo(e + i, n), t.lineTo(e + r - i, n), t.quadraticCurveTo(e + r, n, e + r, n + i), t.lineTo(e + r, n + a - i), t.quadraticCurveTo(e + r, n + a, e + r - i, n + a), t.lineTo(e + i, n + a), t.quadraticCurveTo(e, n + a, e, n + a - i), t.lineTo(e, n + i), t.quadraticCurveTo(e, n, e + i, n), t.closePath();
482
482
  }
483
483
  function He(t, e, n) {
484
484
  return typeof t != "number" || Number.isNaN(t) || t <= 0 ? e : Math.min(t, n);
485
485
  }
486
- function Ut(t, e) {
487
- const n = Gt(
486
+ function jt(t, e) {
487
+ const n = zt(
488
488
  e.canvasWidth,
489
489
  e.panelWidth,
490
490
  e.textAlign,
491
491
  e.bgFit
492
- ), r = (e.canvasHeight - e.panelHeight) / 2, i = Math.min(e.borderRadius, Math.min(e.panelWidth, e.panelHeight) / 2);
493
- Nt(t, n, r, e.panelWidth, e.panelHeight, i), Vt(t, {
492
+ ), r = (e.canvasHeight - e.panelHeight) / 2, a = Math.min(e.borderRadius, Math.min(e.panelWidth, e.panelHeight) / 2);
493
+ Zt(t, n, r, e.panelWidth, e.panelHeight, a), qt(t, {
494
494
  panelX: n,
495
495
  panelY: r,
496
496
  panelWidth: e.panelWidth,
@@ -505,7 +505,7 @@ function Ut(t, e) {
505
505
  bgTextureFlipY: e.bgTextureFlipY
506
506
  }), e.borderColor && e.borderWidth > 0 && (t.lineWidth = e.borderWidth, t.strokeStyle = e.borderColor, t.stroke());
507
507
  }
508
- function Vt(t, e) {
508
+ function qt(t, e) {
509
509
  if (t.save(), t.globalAlpha = Math.max(0, Math.min(e.bgOpacity, 1)), e.bgFillMode === "gradient" && e.bgGradientStops && e.bgGradientStops.length > 1) {
510
510
  const n = t.createLinearGradient(
511
511
  e.panelX,
@@ -513,13 +513,13 @@ function Vt(t, e) {
513
513
  e.panelX + e.panelWidth,
514
514
  e.panelY + e.panelHeight
515
515
  );
516
- [...e.bgGradientStops].sort((r, i) => r.position - i.position).forEach(
516
+ [...e.bgGradientStops].sort((r, a) => r.position - a.position).forEach(
517
517
  (r) => n.addColorStop(Math.max(0, Math.min(r.position, 1)), r.color)
518
518
  ), t.fillStyle = n, t.fill(), t.restore();
519
519
  return;
520
520
  }
521
521
  if (e.bgTextureImage) {
522
- t.clip(), Zt(t, {
522
+ t.clip(), _t(t, {
523
523
  image: e.bgTextureImage,
524
524
  x: e.panelX,
525
525
  y: e.panelY,
@@ -533,17 +533,17 @@ function Vt(t, e) {
533
533
  }
534
534
  t.fillStyle = e.bgColor, t.fill(), t.restore();
535
535
  }
536
- function Zt(t, e) {
537
- const { image: n, x: r, y: i, width: a, height: o, fit: l, flipX: s, flipY: c } = e, A = "naturalWidth" in n ? n.naturalWidth : "videoWidth" in n ? n.videoWidth : n.width, d = "naturalHeight" in n ? n.naturalHeight : "videoHeight" in n ? n.videoHeight : n.height;
538
- let f = a, S = o, C = r, v = i;
539
- if (l !== "stretch" && A > 0 && d > 0) {
540
- const u = l === "cover" ? Math.max(a / A, o / d) : Math.min(a / A, o / d);
541
- f = A * u, S = d * u, C = r + (a - f) / 2, v = i + (o - S) / 2;
536
+ function _t(t, e) {
537
+ const { image: n, x: r, y: a, width: i, height: o, fit: l, flipX: s, flipY: A } = e, c = "naturalWidth" in n ? n.naturalWidth : "videoWidth" in n ? n.videoWidth : n.width, g = "naturalHeight" in n ? n.naturalHeight : "videoHeight" in n ? n.videoHeight : n.height;
538
+ let f = i, S = o, m = r, v = a;
539
+ if (l !== "stretch" && c > 0 && g > 0) {
540
+ const u = l === "cover" ? Math.max(i / c, o / g) : Math.min(i / c, o / g);
541
+ f = c * u, S = g * u, m = r + (i - f) / 2, v = a + (o - S) / 2;
542
542
  }
543
- t.save(), (s || c) && (t.translate(s ? r + a : 0, c ? i + o : 0), t.scale(s ? -1 : 1, c ? -1 : 1), C = s ? -(C - r) - f + r : C, v = c ? -(v - i) - S + i : v), t.drawImage(n, C, v, f, S), t.restore();
543
+ t.save(), (s || A) && (t.translate(s ? r + i : 0, A ? a + o : 0), t.scale(s ? -1 : 1, A ? -1 : 1), m = s ? -(m - r) - f + r : m, v = A ? -(v - a) - S + a : v), t.drawImage(n, m, v, f, S), t.restore();
544
544
  }
545
- function jt(t, e, n, r, i, a) {
546
- const o = i / 72, l = Math.abs(o), s = 1 - Math.min(1, Math.abs(e)), c = Math.min(1, Math.abs(e)), A = r <= 1 ? 0.5 : n / (r - 1), d = Math.sin(A * Math.PI * 2 - Math.PI / 2), f = Math.sin(A * Math.PI * 2.7 - Math.PI / 2) * (0.65 + A * 0.35), S = i * e * e, C = 2 * i * e / a, v = {
545
+ function $t(t, e, n, r, a, i) {
546
+ const o = a / 72, l = Math.abs(o), s = 1 - Math.min(1, Math.abs(e)), A = Math.min(1, Math.abs(e)), c = r <= 1 ? 0.5 : n / (r - 1), g = Math.sin(c * Math.PI * 2 - Math.PI / 2), f = Math.sin(c * Math.PI * 2.7 - Math.PI / 2) * (0.65 + c * 0.35), S = a * e * e, m = 2 * a * e / i, v = {
547
547
  xOffset: 0,
548
548
  yOffset: 0,
549
549
  rotation: 0,
@@ -552,7 +552,7 @@ function jt(t, e, n, r, i, a) {
552
552
  };
553
553
  switch (t) {
554
554
  case "arc":
555
- return { ...v, yOffset: S, rotation: Math.atan(C) };
555
+ return { ...v, yOffset: S, rotation: Math.atan(m) };
556
556
  case "arc-lower":
557
557
  return {
558
558
  ...v,
@@ -572,41 +572,41 @@ function jt(t, e, n, r, i, a) {
572
572
  case "shell-lower":
573
573
  return {
574
574
  ...v,
575
- yOffset: i * 0.45 * A * s,
576
- scaleY: Math.max(0.2, 1 + o * A * s)
575
+ yOffset: a * 0.45 * c * s,
576
+ scaleY: Math.max(0.2, 1 + o * c * s)
577
577
  };
578
578
  case "shell-upper":
579
579
  return {
580
580
  ...v,
581
- yOffset: -i * 0.45 * (1 - A) * s,
582
- scaleY: Math.max(0.2, 1 + o * (1 - A) * s)
581
+ yOffset: -a * 0.45 * (1 - c) * s,
582
+ scaleY: Math.max(0.2, 1 + o * (1 - c) * s)
583
583
  };
584
584
  case "flag":
585
585
  return {
586
586
  ...v,
587
- yOffset: i * 0.65 * f,
587
+ yOffset: a * 0.65 * f,
588
588
  rotation: Math.atan(
589
- i / Math.max(a, 1) * Math.cos(A * Math.PI * 2.7) * 1.6
589
+ a / Math.max(i, 1) * Math.cos(c * Math.PI * 2.7) * 1.6
590
590
  )
591
591
  };
592
592
  case "wave":
593
593
  return {
594
594
  ...v,
595
- yOffset: i * 0.6 * d,
596
- rotation: Math.atan(i / Math.max(a, 1) * Math.cos(A * Math.PI * 2) * 1.4)
595
+ yOffset: a * 0.6 * g,
596
+ rotation: Math.atan(a / Math.max(i, 1) * Math.cos(c * Math.PI * 2) * 1.4)
597
597
  };
598
598
  case "fish":
599
599
  return {
600
600
  ...v,
601
- scaleX: Math.max(0.25, 1 - l * c * 0.55),
601
+ scaleX: Math.max(0.25, 1 - l * A * 0.55),
602
602
  scaleY: Math.max(0.2, 1 + o * s)
603
603
  };
604
604
  case "rise":
605
- return { ...v, yOffset: i * e };
605
+ return { ...v, yOffset: a * e };
606
606
  case "fisheye":
607
607
  return {
608
608
  ...v,
609
- yOffset: i * 0.18 * e * s,
609
+ yOffset: a * 0.18 * e * s,
610
610
  scaleX: Math.max(0.25, 1 + o * s * 0.7),
611
611
  scaleY: Math.max(0.2, 1 + o * s * 0.7)
612
612
  };
@@ -621,7 +621,7 @@ function jt(t, e, n, r, i, a) {
621
621
  case "twist":
622
622
  return {
623
623
  ...v,
624
- yOffset: i * e,
624
+ yOffset: a * e,
625
625
  rotation: o * e * 0.45,
626
626
  scaleY: Math.max(0.2, 1 + o * e * 0.25)
627
627
  };
@@ -629,64 +629,64 @@ function jt(t, e, n, r, i, a) {
629
629
  return v;
630
630
  }
631
631
  }
632
- function _(t, e, n, r, i, a, o = "arc", l = 0) {
632
+ function $(t, e, n, r, a, i, o = "arc", l = 0) {
633
633
  if (l !== 0) {
634
- qt(t, e, n, r, i, a, o, l);
634
+ en(t, e, n, r, a, i, o, l);
635
635
  return;
636
636
  }
637
- nt(t, i), a === "fill" ? t.fillText(e, n, r) : t.strokeText(e, n, r), rt(t);
637
+ nt(t, a), i === "fill" ? t.fillText(e, n, r) : t.strokeText(e, n, r), rt(t);
638
638
  }
639
- function qt(t, e, n, r, i, a, o, l) {
639
+ function en(t, e, n, r, a, i, o, l) {
640
640
  const s = Array.from(e);
641
641
  if (s.length === 0) return;
642
- const c = s.map((m) => t.measureText(m).width), A = c.reduce((m, I) => m + I, 0) + i * Math.max(0, s.length - 1), d = t.textAlign, f = d === "right" ? n - A : d === "center" ? n - A / 2 : n, C = Math.max(-100, Math.min(l, 100)) / 100 * 72, v = Math.max(A / 2, 1);
642
+ const A = s.map((C) => t.measureText(C).width), c = A.reduce((C, I) => C + I, 0) + a * Math.max(0, s.length - 1), g = t.textAlign, f = g === "right" ? n - c : g === "center" ? n - c / 2 : n, m = Math.max(-100, Math.min(l, 100)) / 100 * 72, v = Math.max(c / 2, 1);
643
643
  let u = f;
644
- for (let m = 0; m < s.length; m++) {
645
- const I = s[m], E = c[m], B = u + E / 2, Q = (B - f - A / 2) / v, y = jt(
644
+ for (let C = 0; C < s.length; C++) {
645
+ const I = s[C], E = A[C], p = u + E / 2, w = (p - f - c / 2) / v, T = $t(
646
646
  o,
647
- Q,
648
- m,
649
- s.length,
647
+ w,
650
648
  C,
649
+ s.length,
650
+ m,
651
651
  v
652
652
  );
653
- t.save(), t.translate(B + y.xOffset, r + y.yOffset), t.rotate(y.rotation), t.scale(y.scaleX, y.scaleY), t.textAlign = "center", a === "fill" ? t.fillText(I, 0, 0) : t.strokeText(I, 0, 0), t.restore(), u += E + i;
653
+ t.save(), t.translate(p + T.xOffset, r + T.yOffset), t.rotate(T.rotation), t.scale(T.scaleX, T.scaleY), t.textAlign = "center", i === "fill" ? t.fillText(I, 0, 0) : t.strokeText(I, 0, 0), t.restore(), u += E + a;
654
654
  }
655
655
  }
656
- function Je(t, e, n, r, i, a, o, l, s) {
657
- const c = ee(t, e, l), A = i === "center" ? n - c / 2 : i === "right" ? n - c : n, d = s === "underline" ? o * 0.42 : -o * 0.08, f = r + d;
658
- t.save(), t.strokeStyle = a, t.lineWidth = Math.max(2, o * 0.06), t.lineCap = "round", t.beginPath(), t.moveTo(A, f), t.lineTo(A + c, f), t.stroke(), t.restore();
656
+ function Je(t, e, n, r, a, i, o, l, s) {
657
+ const A = ne(t, e, l), c = a === "center" ? n - A / 2 : a === "right" ? n - A : n, g = s === "underline" ? o * 0.42 : -o * 0.08, f = r + g;
658
+ t.save(), t.strokeStyle = i, t.lineWidth = Math.max(2, o * 0.06), t.lineCap = "round", t.beginPath(), t.moveTo(c, f), t.lineTo(c + A, f), t.stroke(), t.restore();
659
659
  }
660
- function _t(t, e) {
660
+ function tn(t, e) {
661
661
  for (let n = 0; n < e.lines.length; n++) {
662
- const r = e.lines[n], i = e.startY + n * e.lineHeight;
663
- for (const a of e.shadowLayers)
664
- t.save(), t.shadowColor = a.color, t.shadowBlur = a.blur, t.shadowOffsetX = a.offsetX ?? 0, t.shadowOffsetY = a.offsetY ?? 0, t.globalAlpha = a.opacity ?? 1, t.fillStyle = e.color, _(
662
+ const r = e.lines[n], a = e.startY + n * e.lineHeight;
663
+ for (const i of e.shadowLayers)
664
+ t.save(), t.shadowColor = i.color, t.shadowBlur = i.blur, t.shadowOffsetX = i.offsetX ?? 0, t.shadowOffsetY = i.offsetY ?? 0, t.globalAlpha = i.opacity ?? 1, t.fillStyle = e.color, $(
665
665
  t,
666
666
  r,
667
667
  e.textX,
668
- i,
668
+ a,
669
669
  e.letterSpacingPx,
670
670
  "fill",
671
671
  e.bendPreset,
672
672
  e.bendStrength
673
673
  ), t.restore();
674
- for (const a of e.strokeLayers)
675
- t.save(), t.lineJoin = "round", t.miterLimit = 2, t.lineWidth = a.width, t.strokeStyle = a.color, t.globalAlpha = a.opacity ?? 1, _(
674
+ for (const i of e.strokeLayers)
675
+ t.save(), t.lineJoin = "round", t.miterLimit = 2, t.lineWidth = i.width, t.strokeStyle = i.color, t.globalAlpha = i.opacity ?? 1, $(
676
676
  t,
677
677
  r,
678
678
  e.textX,
679
- i,
679
+ a,
680
680
  e.letterSpacingPx,
681
681
  "stroke",
682
682
  e.bendPreset,
683
683
  e.bendStrength
684
684
  ), t.restore();
685
- t.save(), t.fillStyle = e.color, t.globalAlpha = 1, _(
685
+ t.save(), t.fillStyle = e.color, t.globalAlpha = 1, $(
686
686
  t,
687
687
  r,
688
688
  e.textX,
689
- i,
689
+ a,
690
690
  e.letterSpacingPx,
691
691
  "fill",
692
692
  e.bendPreset,
@@ -695,7 +695,7 @@ function _t(t, e) {
695
695
  t,
696
696
  r,
697
697
  e.textX,
698
- i,
698
+ a,
699
699
  e.textAlign,
700
700
  e.color,
701
701
  e.fontSize,
@@ -705,7 +705,7 @@ function _t(t, e) {
705
705
  t,
706
706
  r,
707
707
  e.textX,
708
- i,
708
+ a,
709
709
  e.textAlign,
710
710
  e.color,
711
711
  e.fontSize,
@@ -714,13 +714,13 @@ function _t(t, e) {
714
714
  );
715
715
  }
716
716
  }
717
- function $t(t, e) {
717
+ function nn(t, e) {
718
718
  const n = Math.max(0, Math.min(e.intensity, 1));
719
719
  if (n <= 0) return;
720
- const r = Math.max(0, Math.min(e.range, 1)), i = r * 72, a = Math.max(-0.5, Math.min(e.horizontalAngle, 0.5)) * 80, o = Math.max(-0.5, Math.min(e.verticalAngle, 0.5)) * 80;
720
+ const r = Math.max(0, Math.min(e.range, 1)), a = r * 72, i = Math.max(-0.5, Math.min(e.horizontalAngle, 0.5)) * 80, o = Math.max(-0.5, Math.min(e.verticalAngle, 0.5)) * 80;
721
721
  for (let l = 0; l < e.lines.length; l++) {
722
722
  const s = e.startY + l * e.lineHeight;
723
- t.save(), t.globalAlpha = n, t.shadowColor = e.color, t.shadowBlur = i, t.shadowOffsetX = a, t.shadowOffsetY = o, e.style === "contoured" ? (t.lineJoin = "round", t.miterLimit = 2, t.lineWidth = Math.max(2, r * 42), t.strokeStyle = e.color, _(
723
+ t.save(), t.globalAlpha = n, t.shadowColor = e.color, t.shadowBlur = a, t.shadowOffsetX = i, t.shadowOffsetY = o, e.style === "contoured" ? (t.lineJoin = "round", t.miterLimit = 2, t.lineWidth = Math.max(2, r * 42), t.strokeStyle = e.color, $(
724
724
  t,
725
725
  e.lines[l],
726
726
  e.textX,
@@ -729,7 +729,7 @@ function $t(t, e) {
729
729
  "stroke",
730
730
  e.bendPreset,
731
731
  e.bendStrength
732
- )) : (t.fillStyle = e.color, _(
732
+ )) : (t.fillStyle = e.color, $(
733
733
  t,
734
734
  e.lines[l],
735
735
  e.textX,
@@ -741,11 +741,11 @@ function $t(t, e) {
741
741
  )), t.restore();
742
742
  }
743
743
  }
744
- function en(t, e) {
745
- const n = me(e.width, e.height), r = n.getContext("2d");
744
+ function rn(t, e) {
745
+ const n = Ce(e.width, e.height), r = n.getContext("2d");
746
746
  r.clearRect(0, 0, e.width, e.height), r.font = e.font, r.fillStyle = "#ffffff", r.textAlign = e.textAlign, r.textBaseline = "middle";
747
747
  for (let o = 0; o < e.lines.length; o++)
748
- _(
748
+ $(
749
749
  r,
750
750
  e.lines[o],
751
751
  e.textX,
@@ -755,246 +755,246 @@ function en(t, e) {
755
755
  e.bendPreset,
756
756
  e.bendStrength
757
757
  );
758
- const i = me(e.width, e.height), a = i.getContext("2d");
759
- a.clearRect(0, 0, e.width, e.height), a.save(), a.globalAlpha = e.opacity, a.filter = e.blur > 0 ? `blur(${e.blur}px)` : "none", a.drawImage(n, e.offsetX, e.offsetY), a.restore(), a.globalCompositeOperation = "destination-in", a.drawImage(n, 0, 0), a.globalCompositeOperation = "source-in", a.globalAlpha = e.opacity, a.fillStyle = e.color, a.fillRect(0, 0, e.width, e.height), t.drawImage(i, 0, 0);
758
+ const a = Ce(e.width, e.height), i = a.getContext("2d");
759
+ i.clearRect(0, 0, e.width, e.height), i.save(), i.globalAlpha = e.opacity, i.filter = e.blur > 0 ? `blur(${e.blur}px)` : "none", i.drawImage(n, e.offsetX, e.offsetY), i.restore(), i.globalCompositeOperation = "destination-in", i.drawImage(n, 0, 0), i.globalCompositeOperation = "source-in", i.globalAlpha = e.opacity, i.fillStyle = e.color, i.fillRect(0, 0, e.width, e.height), t.drawImage(a, 0, 0);
760
760
  }
761
- function tn(t) {
761
+ function an(t) {
762
762
  const {
763
763
  width: e,
764
764
  height: n,
765
765
  color: r,
766
- strokeLayers: i,
767
- strokeColor: a,
766
+ strokeLayers: a,
767
+ strokeColor: i,
768
768
  strokeWidth: o,
769
769
  strokeOpacity: l,
770
770
  shadowLayers: s,
771
- innerShadow: c,
772
- glow: A,
773
- shadowColor: d,
771
+ innerShadow: A,
772
+ glow: c,
773
+ shadowColor: g,
774
774
  shadowBlur: f,
775
775
  shadowOffsetX: S,
776
- shadowOffsetY: C,
776
+ shadowOffsetY: m,
777
777
  shadowOpacity: v,
778
778
  textAlign: u,
779
- bgFillMode: m,
779
+ bgFillMode: C,
780
780
  bgOpacity: I,
781
781
  bgFit: E,
782
- bgAutoSize: B,
783
- bgWidth: Q,
784
- bgHeight: y,
782
+ bgAutoSize: p,
783
+ bgWidth: w,
784
+ bgHeight: T,
785
785
  bgGradientStops: b,
786
- bgTextureImage: h,
787
- bgTextureFit: x,
788
- bgTextureFlipX: J,
789
- bgTextureFlipY: R,
790
- underline: V,
791
- strikethrough: Z,
792
- bendPreset: Y,
793
- bendStrength: K
786
+ bgTextureImage: d,
787
+ bgTextureFit: B,
788
+ bgTextureFlipX: G,
789
+ bgTextureFlipY: P,
790
+ underline: j,
791
+ strikethrough: N,
792
+ bendPreset: H,
793
+ bendStrength: W
794
794
  } = t;
795
- let { fontSize: N, bgColor: U } = t;
796
- const X = [
797
- ...i ?? [],
798
- ...a && o > 0 ? [{ color: a, width: o, opacity: l }] : []
795
+ let { fontSize: U, bgColor: K } = t;
796
+ const V = [
797
+ ...a ?? [],
798
+ ...i && o > 0 ? [{ color: i, width: o, opacity: l }] : []
799
799
  ].filter((L) => L.width > 0), D = [
800
800
  ...s ?? [],
801
- ...d && (f > 0 || S !== 0 || C !== 0) ? [
801
+ ...g && (f > 0 || S !== 0 || m !== 0) ? [
802
802
  {
803
- color: d,
803
+ color: g,
804
804
  blur: f,
805
805
  offsetX: S,
806
- offsetY: C,
806
+ offsetY: m,
807
807
  opacity: v
808
808
  }
809
809
  ] : []
810
810
  ].filter((L) => L.blur > 0 || (L.offsetX ?? 0) !== 0 || (L.offsetY ?? 0) !== 0);
811
- let O;
812
- const G = me(e, n), w = G.getContext("2d");
813
- w.clearRect(0, 0, e, n), w.fillStyle = r, w.textAlign = u, w.textBaseline = "middle";
814
- const T = Kt(w, t);
815
- if (N = T.fontSize, U !== "transparent") {
816
- const L = B === !0, P = He(
817
- L ? void 0 : Q,
818
- E === "text" || L ? T.textBlockWidth : e,
811
+ let Y;
812
+ const J = Ce(e, n), k = J.getContext("2d");
813
+ k.clearRect(0, 0, e, n), k.fillStyle = r, k.textAlign = u, k.textBaseline = "middle";
814
+ const y = Vt(k, t);
815
+ if (U = y.fontSize, K !== "transparent") {
816
+ const L = p === !0, q = He(
817
+ L ? void 0 : w,
818
+ E === "text" || L ? y.textBlockWidth : e,
819
819
  e
820
- ), oe = He(
821
- L ? void 0 : y,
822
- E === "text" || L ? T.textBlockHeight : n,
820
+ ), R = He(
821
+ L ? void 0 : T,
822
+ E === "text" || L ? y.textBlockHeight : n,
823
823
  n
824
824
  );
825
- Ut(w, {
825
+ jt(k, {
826
826
  canvasWidth: e,
827
827
  canvasHeight: n,
828
828
  textAlign: u,
829
829
  bgFit: E,
830
- panelWidth: P,
831
- panelHeight: oe,
832
- bgColor: U,
833
- bgFillMode: m,
830
+ panelWidth: q,
831
+ panelHeight: R,
832
+ bgColor: K,
833
+ bgFillMode: C,
834
834
  bgOpacity: I,
835
835
  bgGradientStops: b,
836
- bgTextureImage: h,
837
- bgTextureFit: x,
838
- bgTextureFlipX: J,
839
- bgTextureFlipY: R,
836
+ bgTextureImage: d,
837
+ bgTextureFit: B,
838
+ bgTextureFlipX: G,
839
+ bgTextureFlipY: P,
840
840
  borderColor: t.borderColor,
841
841
  borderWidth: t.borderWidth,
842
842
  borderRadius: t.borderRadius
843
843
  });
844
844
  }
845
- return A && $t(w, {
846
- lines: T.resolvedLines,
847
- textX: T.textX,
848
- startY: T.startY,
849
- lineHeight: T.lineHeight,
850
- letterSpacingPx: T.letterSpacingPx,
851
- bendPreset: Y,
852
- bendStrength: K,
853
- color: A.color,
854
- style: A.style,
855
- intensity: A.intensity ?? 0.5,
856
- range: A.range ?? 0.5,
857
- horizontalAngle: A.horizontalAngle ?? 0,
858
- verticalAngle: A.verticalAngle ?? 0
859
- }), _t(w, {
860
- lines: T.resolvedLines,
861
- textX: T.textX,
862
- startY: T.startY,
863
- lineHeight: T.lineHeight,
845
+ return c && nn(k, {
846
+ lines: y.resolvedLines,
847
+ textX: y.textX,
848
+ startY: y.startY,
849
+ lineHeight: y.lineHeight,
850
+ letterSpacingPx: y.letterSpacingPx,
851
+ bendPreset: H,
852
+ bendStrength: W,
853
+ color: c.color,
854
+ style: c.style,
855
+ intensity: c.intensity ?? 0.5,
856
+ range: c.range ?? 0.5,
857
+ horizontalAngle: c.horizontalAngle ?? 0,
858
+ verticalAngle: c.verticalAngle ?? 0
859
+ }), tn(k, {
860
+ lines: y.resolvedLines,
861
+ textX: y.textX,
862
+ startY: y.startY,
863
+ lineHeight: y.lineHeight,
864
864
  textAlign: u,
865
865
  color: r,
866
- fontSize: N,
867
- letterSpacingPx: T.letterSpacingPx,
868
- bendPreset: Y,
869
- bendStrength: K,
866
+ fontSize: U,
867
+ letterSpacingPx: y.letterSpacingPx,
868
+ bendPreset: H,
869
+ bendStrength: W,
870
870
  shadowLayers: D,
871
- strokeLayers: X,
872
- underline: V,
873
- strikethrough: Z
874
- }), c && en(w, {
871
+ strokeLayers: V,
872
+ underline: j,
873
+ strikethrough: N
874
+ }), A && rn(k, {
875
875
  width: e,
876
876
  height: n,
877
- font: w.font,
878
- lines: T.resolvedLines,
879
- textX: T.textX,
880
- startY: T.startY,
881
- lineHeight: T.lineHeight,
882
- letterSpacingPx: T.letterSpacingPx,
883
- bendPreset: Y,
884
- bendStrength: K,
877
+ font: k.font,
878
+ lines: y.resolvedLines,
879
+ textX: y.textX,
880
+ startY: y.startY,
881
+ lineHeight: y.lineHeight,
882
+ letterSpacingPx: y.letterSpacingPx,
883
+ bendPreset: H,
884
+ bendStrength: W,
885
885
  textAlign: u,
886
- color: c.color,
887
- opacity: c.opacity ?? 1,
888
- blur: c.blur,
889
- offsetX: c.offsetX ?? 0,
890
- offsetY: c.offsetY ?? 0
891
- }), O = new p.CanvasTexture(G), O.needsUpdate = !0, O;
886
+ color: A.color,
887
+ opacity: A.opacity ?? 1,
888
+ blur: A.blur,
889
+ offsetX: A.offsetX ?? 0,
890
+ offsetY: A.offsetY ?? 0
891
+ }), Y = new M.CanvasTexture(J), Y.needsUpdate = !0, Y;
892
892
  }
893
- function nn(t, e) {
893
+ function on(t, e) {
894
894
  const {
895
895
  lines: n,
896
896
  color: r,
897
- strokeLayers: i,
898
- outlineEnabled: a,
897
+ strokeLayers: a,
898
+ outlineEnabled: i,
899
899
  strokeColor: o,
900
900
  strokeWidth: l,
901
901
  strokeOpacity: s,
902
- shadowLayers: c,
903
- shadowEnabled: A,
904
- innerShadow: d,
902
+ shadowLayers: A,
903
+ shadowEnabled: c,
904
+ innerShadow: g,
905
905
  glow: f,
906
906
  shadowColor: S,
907
- shadowBlur: C,
907
+ shadowBlur: m,
908
908
  shadowOffsetX: v,
909
909
  shadowOffsetY: u,
910
- shadowOpacity: m,
910
+ shadowOpacity: C,
911
911
  fontWeight: I,
912
912
  fontStyle: E,
913
- fontFamily: B,
914
- fontSize: Q,
915
- textAlign: y,
913
+ fontFamily: p,
914
+ fontSize: w,
915
+ textAlign: T,
916
916
  verticalAlign: b,
917
- overflow: h,
918
- resizeToFit: x,
919
- minFontSize: J,
920
- letterSpacing: R,
921
- lineSpacing: V,
922
- bgFillMode: Z,
923
- bgOpacity: Y,
924
- bgFit: K,
925
- bgAutoSize: N,
926
- bgWidth: U,
927
- bgHeight: X,
917
+ overflow: d,
918
+ resizeToFit: B,
919
+ minFontSize: G,
920
+ letterSpacing: P,
921
+ lineSpacing: j,
922
+ bgFillMode: N,
923
+ bgOpacity: H,
924
+ bgFit: W,
925
+ bgAutoSize: U,
926
+ bgWidth: K,
927
+ bgHeight: V,
928
928
  bgGradientStops: D,
929
- bgTextureFit: O,
930
- bgTextureFlipX: G,
931
- bgTextureFlipY: w,
932
- borderColor: T,
929
+ bgTextureFit: Y,
930
+ bgTextureFlipX: J,
931
+ bgTextureFlipY: k,
932
+ borderColor: y,
933
933
  borderWidth: L,
934
- borderRadius: P,
935
- padding: oe,
934
+ borderRadius: q,
935
+ padding: R,
936
936
  aspect: Be,
937
- resolution: ce,
937
+ resolution: he,
938
938
  underline: pe,
939
939
  strikethrough: Me,
940
- bendPreset: Qe,
941
- bendStrength: we
942
- } = t, ke = k(
943
- () => a === !1 ? [] : i,
944
- [a, i]
945
- ), xe = k(
946
- () => A === !1 ? [] : c,
947
- [A, c]
948
- ), Le = void 0, Fe = k(
940
+ bendPreset: we,
941
+ bendStrength: Qe
942
+ } = t, ke = x(
943
+ () => i === !1 ? [] : a,
944
+ [i, a]
945
+ ), xe = x(
946
+ () => c === !1 ? [] : A,
947
+ [c, A]
948
+ ), Le = void 0, Fe = x(
949
949
  () => ({
950
950
  text: e.text,
951
951
  lines: n,
952
952
  color: r,
953
953
  strokeLayers: ke,
954
- strokeColor: a === !1 ? void 0 : o,
955
- strokeWidth: a === !1 ? 0 : l,
954
+ strokeColor: i === !1 ? void 0 : o,
955
+ strokeWidth: i === !1 ? 0 : l,
956
956
  strokeOpacity: s,
957
957
  shadowLayers: xe,
958
- innerShadow: d,
958
+ innerShadow: g,
959
959
  glow: f,
960
- shadowColor: A === !1 ? void 0 : S,
961
- shadowBlur: A === !1 ? 0 : C,
962
- shadowOffsetX: A === !1 ? 0 : v,
963
- shadowOffsetY: A === !1 ? 0 : u,
964
- shadowOpacity: m,
960
+ shadowColor: c === !1 ? void 0 : S,
961
+ shadowBlur: c === !1 ? 0 : m,
962
+ shadowOffsetX: c === !1 ? 0 : v,
963
+ shadowOffsetY: c === !1 ? 0 : u,
964
+ shadowOpacity: C,
965
965
  fontWeight: I,
966
966
  fontStyle: E,
967
- fontFamily: B,
968
- fontSize: Q,
969
- textAlign: y,
967
+ fontFamily: p,
968
+ fontSize: w,
969
+ textAlign: T,
970
970
  verticalAlign: b,
971
- overflow: h,
972
- resizeToFit: x,
973
- minFontSize: J,
974
- letterSpacing: R,
975
- lineSpacing: V,
971
+ overflow: d,
972
+ resizeToFit: B,
973
+ minFontSize: G,
974
+ letterSpacing: P,
975
+ lineSpacing: j,
976
976
  bgColor: e.bgColor,
977
- bgFillMode: Z,
978
- bgOpacity: Y,
979
- bgFit: K,
980
- bgAutoSize: N,
981
- bgWidth: U,
982
- bgHeight: X,
977
+ bgFillMode: N,
978
+ bgOpacity: H,
979
+ bgFit: W,
980
+ bgAutoSize: U,
981
+ bgWidth: K,
982
+ bgHeight: V,
983
983
  bgGradientStops: D,
984
984
  bgTextureImage: Le,
985
- bgTextureFit: O,
986
- bgTextureFlipX: G,
987
- bgTextureFlipY: w,
988
- borderColor: T,
985
+ bgTextureFit: Y,
986
+ bgTextureFlipX: J,
987
+ bgTextureFlipY: k,
988
+ borderColor: y,
989
989
  borderWidth: L,
990
- borderRadius: P,
991
- padding: oe,
992
- height: ce,
993
- width: Math.round(ce * Math.max(Be, 0.1)),
990
+ borderRadius: q,
991
+ padding: R,
992
+ height: he,
993
+ width: Math.round(he * Math.max(Be, 0.1)),
994
994
  underline: pe,
995
995
  strikethrough: Me,
996
- bendPreset: Qe,
997
- bendStrength: we
996
+ bendPreset: we,
997
+ bendStrength: Qe
998
998
  }),
999
999
  [
1000
1000
  e.text,
@@ -1002,102 +1002,102 @@ function nn(t, e) {
1002
1002
  n,
1003
1003
  r,
1004
1004
  ke,
1005
- a,
1005
+ i,
1006
1006
  o,
1007
1007
  l,
1008
1008
  s,
1009
1009
  xe,
1010
- d,
1010
+ g,
1011
1011
  f,
1012
- A,
1012
+ c,
1013
1013
  S,
1014
- C,
1014
+ m,
1015
1015
  v,
1016
1016
  u,
1017
- m,
1017
+ C,
1018
1018
  I,
1019
1019
  E,
1020
- B,
1021
- Q,
1022
- y,
1020
+ p,
1021
+ w,
1022
+ T,
1023
1023
  b,
1024
- h,
1025
- x,
1026
- J,
1027
- R,
1028
- V,
1029
- Z,
1030
- Y,
1031
- K,
1024
+ d,
1025
+ B,
1026
+ G,
1027
+ P,
1028
+ j,
1032
1029
  N,
1030
+ H,
1031
+ W,
1033
1032
  U,
1034
- X,
1033
+ K,
1034
+ V,
1035
1035
  D,
1036
1036
  Le,
1037
- O,
1038
- G,
1039
- w,
1040
- T,
1037
+ Y,
1038
+ J,
1039
+ k,
1040
+ y,
1041
1041
  L,
1042
- P,
1043
- oe,
1042
+ q,
1043
+ R,
1044
1044
  Be,
1045
- ce,
1045
+ he,
1046
1046
  pe,
1047
1047
  Me,
1048
- Qe,
1049
- we
1048
+ we,
1049
+ Qe
1050
1050
  ]
1051
- ), Ye = k(() => tn(Fe), [Fe]);
1051
+ ), Ye = x(() => an(Fe), [Fe]);
1052
1052
  return ue(Ye), Ye;
1053
1053
  }
1054
- function rn(t) {
1055
- const e = { ...Pt, ...t }, {
1054
+ function sn(t) {
1055
+ const e = { ...Gt, ...t }, {
1056
1056
  text: n,
1057
1057
  bgColor: r,
1058
- opacity: i,
1059
- name: a,
1058
+ opacity: a,
1059
+ name: i,
1060
1060
  overlay: o = !0,
1061
1061
  position: l,
1062
1062
  rotation: s,
1063
- scale: c,
1064
- visible: A,
1065
- renderOrder: d
1066
- } = e, [f, S] = ge(null), [C, v] = ge(null), u = W(n);
1063
+ scale: A,
1064
+ visible: c,
1065
+ renderOrder: g
1066
+ } = e, [f, S] = ce(null), [m, v] = ce(null), u = X(n);
1067
1067
  u.current !== n && (u.current = n, f !== null && S(null));
1068
- const m = W(r);
1069
- m.current !== r && (m.current = r, C !== null && v(null));
1070
- const I = W(null), Q = nn(e, { text: f ?? n, bgColor: C ?? r });
1071
- return ne(() => {
1072
- const y = I.current;
1073
- if (y)
1074
- return y.userData.setText = (b) => S(b), y.userData.setBgColor = (b) => v(b), () => {
1075
- delete y.userData.setText, delete y.userData.setBgColor;
1068
+ const C = X(r);
1069
+ C.current !== r && (C.current = r, m !== null && v(null));
1070
+ const I = X(null), w = on(e, { text: f ?? n, bgColor: m ?? r });
1071
+ return te(() => {
1072
+ const T = I.current;
1073
+ if (T)
1074
+ return T.userData.setText = (b) => S(b), T.userData.setBgColor = (b) => v(b), () => {
1075
+ delete T.userData.setText, delete T.userData.setBgColor;
1076
1076
  };
1077
- }, []), /* @__PURE__ */ g(
1077
+ }, []), /* @__PURE__ */ h(
1078
1078
  $e,
1079
1079
  {
1080
1080
  ref: I,
1081
- name: a,
1082
- texture: Q,
1081
+ name: i,
1082
+ texture: w,
1083
1083
  overlay: o,
1084
- opacity: i,
1084
+ opacity: a,
1085
1085
  position: l,
1086
1086
  rotation: s,
1087
- scale: c,
1088
- visible: A,
1089
- renderOrder: d
1087
+ scale: A,
1088
+ visible: c,
1089
+ renderOrder: g
1090
1090
  }
1091
1091
  );
1092
1092
  }
1093
1093
  function Ee(t, e) {
1094
1094
  return !Number.isFinite(t) || !Number.isFinite(e) || t <= 0 || e <= 0 ? [1, 1, 1] : Math.abs(t - e) < 1e-6 ? [1, 1, 1] : t > e ? [e / t, 1, 1] : [1, t / e, 1];
1095
1095
  }
1096
- const an = "data:image/png;base64,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", on = (t, e) => t || (e === "cover" ? "fill" : e === "stretch" ? "stretch" : "fit"), ze = (t, e) => {
1096
+ const ln = "data:image/png;base64,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", cn = (t, e) => t || (e === "cover" ? "fill" : e === "stretch" ? "stretch" : "fit"), ze = (t, e) => {
1097
1097
  const [n, r] = Ee(t, e);
1098
1098
  return n === 1 && r === 1 ? [1, 1, 1] : n < 1 ? [1, 1 / n, 1] : [1 / r, 1, 1];
1099
- }, sn = (t, e, n, r, i, a, o) => {
1100
- let l = [1, 1, 1], s = [1, 1, 1], c = [1, 1], A = [0, 0];
1099
+ }, An = (t, e, n, r, a, i, o) => {
1100
+ let l = [1, 1, 1], s = [1, 1, 1], A = [1, 1], c = [0, 0];
1101
1101
  switch (t) {
1102
1102
  case "fit":
1103
1103
  l = Ee(e, n), s = l;
@@ -1109,83 +1109,83 @@ const an = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAMgCAMAAADsrvZaAA
1109
1109
  l = [e > 0 && n > 0 ? n / e : 1, 1, 1], s = l;
1110
1110
  break;
1111
1111
  case "center":
1112
- l = a && o && a.width > 0 && a.height > 0 && o.width > 0 && o.height > 0 ? [o.width / a.width, o.height / a.height, 1] : Ee(e, n), s = l;
1112
+ l = i && o && i.width > 0 && i.height > 0 && o.width > 0 && o.height > 0 ? [o.width / i.width, o.height / i.height, 1] : Ee(e, n), s = l;
1113
1113
  break;
1114
1114
  case "fill":
1115
1115
  l = ze(e, n), s = l;
1116
1116
  break;
1117
1117
  case "fillAndCut":
1118
1118
  if (s = ze(e, n), n > e) {
1119
- const d = e / n;
1120
- c = [d, 1], A = [(1 - d) / 2, 0];
1119
+ const g = e / n;
1120
+ A = [g, 1], c = [(1 - g) / 2, 0];
1121
1121
  } else if (n < e) {
1122
- const d = n / e;
1123
- c = [1, d], A = [0, (1 - d) / 2];
1122
+ const g = n / e;
1123
+ A = [1, g], c = [0, (1 - g) / 2];
1124
1124
  }
1125
1125
  break;
1126
1126
  }
1127
1127
  return {
1128
- meshScale: [l[0] * (r ? -1 : 1), l[1] * (i ? -1 : 1), 1],
1128
+ meshScale: [l[0] * (r ? -1 : 1), l[1] * (a ? -1 : 1), 1],
1129
1129
  guideScale: s,
1130
- repeat: c,
1131
- offset: A
1130
+ repeat: A,
1131
+ offset: c
1132
1132
  };
1133
- }, ln = (t, e) => t ?? (e ? { kind: "image", src: e } : { kind: "default" }), $ = (t) => {
1133
+ }, hn = (t, e) => t ?? (e ? { kind: "image", src: e } : { kind: "default" }), ee = (t) => {
1134
1134
  const e = t.image;
1135
1135
  return {
1136
1136
  width: (e == null ? void 0 : e.videoWidth) ?? (e == null ? void 0 : e.width) ?? 1,
1137
1137
  height: (e == null ? void 0 : e.videoHeight) ?? (e == null ? void 0 : e.height) ?? 1
1138
1138
  };
1139
- }, An = (t) => {
1140
- const { width: e, height: n } = $(t);
1139
+ }, dn = (t) => {
1140
+ const { width: e, height: n } = ee(t);
1141
1141
  return e > 0 && n > 0 ? e / n : 1;
1142
- }, cn = /* @__PURE__ */ new Set([
1142
+ }, gn = /* @__PURE__ */ new Set([
1143
1143
  "overlay",
1144
1144
  "softLight",
1145
1145
  "hardLight",
1146
1146
  "difference",
1147
1147
  "exclusion"
1148
- ]), hn = {
1148
+ ]), fn = {
1149
1149
  overlay: 0,
1150
1150
  softLight: 1,
1151
1151
  hardLight: 2,
1152
1152
  difference: 3,
1153
1153
  exclusion: 4
1154
- }, gn = (t) => {
1154
+ }, un = (t) => {
1155
1155
  switch (t) {
1156
1156
  case "add":
1157
- return { blending: p.AdditiveBlending };
1157
+ return { blending: M.AdditiveBlending };
1158
1158
  case "subtract":
1159
- return { blending: p.SubtractiveBlending };
1159
+ return { blending: M.SubtractiveBlending };
1160
1160
  case "multiply":
1161
- return { blending: p.MultiplyBlending };
1161
+ return { blending: M.MultiplyBlending };
1162
1162
  case "screen":
1163
1163
  return {
1164
- blending: p.CustomBlending,
1165
- blendSrc: p.OneFactor,
1166
- blendDst: p.OneMinusSrcColorFactor,
1167
- blendEquation: p.AddEquation
1164
+ blending: M.CustomBlending,
1165
+ blendSrc: M.OneFactor,
1166
+ blendDst: M.OneMinusSrcColorFactor,
1167
+ blendEquation: M.AddEquation
1168
1168
  };
1169
1169
  case "lighten":
1170
1170
  return {
1171
- blending: p.CustomBlending,
1172
- blendSrc: p.OneFactor,
1173
- blendDst: p.OneFactor,
1174
- blendEquation: p.MaxEquation
1171
+ blending: M.CustomBlending,
1172
+ blendSrc: M.OneFactor,
1173
+ blendDst: M.OneFactor,
1174
+ blendEquation: M.MaxEquation
1175
1175
  };
1176
1176
  case "darken":
1177
1177
  return {
1178
- blending: p.CustomBlending,
1179
- blendSrc: p.OneFactor,
1180
- blendDst: p.OneFactor,
1181
- blendEquation: p.MinEquation
1178
+ blending: M.CustomBlending,
1179
+ blendSrc: M.OneFactor,
1180
+ blendDst: M.OneFactor,
1181
+ blendEquation: M.MinEquation
1182
1182
  };
1183
1183
  default:
1184
- return { blending: p.NormalBlending };
1184
+ return { blending: M.NormalBlending };
1185
1185
  }
1186
- }, dn = `
1186
+ }, Sn = `
1187
1187
  varying vec2 vUv;
1188
- void main(){vUv=uv;gl_Position=projectionMatrix*modelViewMatrix*vec4(position,1.0);}`, fn = `
1188
+ void main(){vUv=uv;gl_Position=projectionMatrix*modelViewMatrix*vec4(position,1.0);}`, vn = `
1189
1189
  uniform sampler2D imageMap;uniform sampler2D backdropMap;uniform vec2 resolution;
1190
1190
  uniform vec3 tint;uniform float opacity;uniform float alphaTest;uniform int blendMode;varying vec2 vUv;
1191
1191
  float overlayChannel(float b,float s){return b<.5?2.*b*s:1.-2.*(1.-b)*(1.-s);}
@@ -1198,170 +1198,189 @@ if(blendMode==2)return vec3(hardLightChannel(b.r,s.r),hardLightChannel(b.g,s.g),
1198
1198
  if(blendMode==3)return abs(b-s);return b+s-2.*b*s;}
1199
1199
  void main(){vec4 image=texture2D(imageMap,vUv)*vec4(tint,opacity);if(image.a<=alphaTest)discard;
1200
1200
  vec2 uv=gl_FragCoord.xy/max(resolution,vec2(1.));vec3 base=texture2D(backdropMap,uv).rgb;
1201
- vec3 mixed=applyAdvancedBlend(base,image.rgb);gl_FragColor=vec4(mix(base,mixed,image.a),1.);}`, un = () => {
1201
+ vec3 mixed=applyAdvancedBlend(base,image.rgb);gl_FragColor=vec4(mix(base,mixed,image.a),1.);}`, mn = () => {
1202
1202
  const t = document.createElement("canvas");
1203
1203
  t.width = 256, t.height = 256;
1204
1204
  const e = t.getContext("2d");
1205
- if (!e) return new p.CanvasTexture(t);
1205
+ if (!e) return new M.CanvasTexture(t);
1206
1206
  const n = e.createRadialGradient(96, 80, 10, 128, 128, 128);
1207
1207
  n.addColorStop(0, "#ffffff"), n.addColorStop(0.18, "#f8fafc"), n.addColorStop(0.44, "#cbd5e1"), n.addColorStop(0.72, "#475569"), n.addColorStop(1, "#0f172a"), e.fillStyle = n, e.fillRect(0, 0, t.width, t.height);
1208
- const r = new p.CanvasTexture(t);
1208
+ const r = new M.CanvasTexture(t);
1209
1209
  return r.needsUpdate = !0, r;
1210
1210
  };
1211
- function Sn({
1211
+ function Cn({
1212
1212
  materialTexture: t,
1213
1213
  sourceTexture: e,
1214
1214
  onSourceSizeChange: n
1215
1215
  }) {
1216
- const r = W($(e));
1217
- return ie(() => {
1216
+ const r = X(ee(e));
1217
+ return ae(() => {
1218
1218
  t.needsUpdate = !0;
1219
- const i = $(e);
1220
- (i.width !== r.current.width || i.height !== r.current.height) && (r.current = i, n(i));
1219
+ const a = ee(e);
1220
+ (a.width !== r.current.width || a.height !== r.current.height) && (r.current = a, n(a));
1221
1221
  }), null;
1222
1222
  }
1223
- const vn = 999, Cn = Math.PI / 180;
1223
+ const En = 999, In = Math.PI / 180, bn = yt([
1224
+ Bt
1225
+ ]);
1226
+ function yn(t) {
1227
+ const [e, n] = ce(null);
1228
+ return te(() => {
1229
+ if (n(null), !t || typeof document > "u") return;
1230
+ const r = new AbortController();
1231
+ let a;
1232
+ return bn({ kind: "gif", src: t }, r.signal).then((i) => {
1233
+ a = i, n(i);
1234
+ }).catch((i) => {
1235
+ i instanceof DOMException && i.name === "AbortError" || console.warn("[xr-sdk] Failed to load GIF ScreenImage source", i);
1236
+ }), () => {
1237
+ r.abort(), Tt(a);
1238
+ };
1239
+ }, [t]), e;
1240
+ }
1224
1241
  function Ke({
1225
1242
  name: t,
1226
1243
  source: e,
1227
1244
  src: n,
1228
1245
  fit: r,
1229
- stretchMode: i,
1230
- materialType: a = "unlit",
1246
+ stretchMode: a,
1247
+ materialType: i = "unlit",
1231
1248
  blendMode: o = "normal",
1232
1249
  backdropTexture: l = null,
1233
1250
  rotation: s = 0,
1234
- opacity: c = 1,
1235
- color: A = "#ffffff",
1236
- flipX: d = !1,
1251
+ opacity: A = 1,
1252
+ color: c = "#ffffff",
1253
+ flipX: g = !1,
1237
1254
  flipY: f = !1,
1238
- renderOrder: S = vn,
1239
- transparent: C = !0,
1255
+ renderOrder: S = En,
1256
+ transparent: m = !0,
1240
1257
  alphaTest: v = 0,
1241
1258
  overlay: u = !0,
1242
- visible: m,
1259
+ visible: C,
1243
1260
  layoutSize: I
1244
1261
  }) {
1245
- const { size: E } = Ae(), B = bt(), Q = ln(e, n), y = Q.kind === "image" ? Q.src : an, b = Ft(y), h = Q.kind === "texture" ? Q.texture : b, x = Ue(), J = on(i, r), [R, V] = ge(
1246
- () => $(h)
1262
+ const { size: E } = Ae(), p = bt(), w = hn(e, n), T = w.kind === "image" ? w.src : ln, b = Xt(T), d = yn(
1263
+ w.kind === "gif" ? w.src : void 0
1264
+ ), B = w.kind === "texture" ? w.texture : w.kind === "gif" ? (d == null ? void 0 : d.texture) ?? b : b, G = Ue(), P = cn(a, r), [j, N] = ce(
1265
+ () => ee(B)
1247
1266
  );
1248
- ne(() => {
1249
- V($(h));
1250
- }, [h]);
1251
- const Z = h instanceof p.VideoTexture || typeof HTMLCanvasElement < "u" && h.image instanceof HTMLCanvasElement, Y = Z ? R : $(h), K = Ie(
1252
- (P) => V(P),
1267
+ te(() => {
1268
+ N(ee(B));
1269
+ }, [B]);
1270
+ const H = B instanceof M.VideoTexture || typeof HTMLCanvasElement < "u" && B.image instanceof HTMLCanvasElement, W = H ? j : ee(B), U = Ie(
1271
+ (R) => N(R),
1253
1272
  []
1254
- ), N = Y.width > 0 && Y.height > 0 ? Y.width / Y.height : An(h), U = k(() => un(), []), X = k(
1255
- () => sn(
1256
- J,
1257
- x,
1258
- N,
1259
- d,
1273
+ ), K = W.width > 0 && W.height > 0 ? W.width / W.height : dn(B), V = x(() => mn(), []), D = x(
1274
+ () => An(
1275
+ P,
1276
+ G,
1277
+ K,
1278
+ g,
1260
1279
  f,
1261
1280
  I,
1262
- Y
1281
+ W
1263
1282
  ),
1264
- [J, x, N, d, f, I, Y]
1265
- ), D = k(() => {
1266
- const P = h.clone();
1267
- return P.needsUpdate = !0, P.repeat.set(X.repeat[0], X.repeat[1]), P.offset.set(X.offset[0], X.offset[1]), P;
1268
- }, [h, X.repeat, X.offset]);
1269
- ue(D), ue(U);
1270
- const O = k(() => gn(o), [o]), G = cn.has(o) ? o : null, w = l ?? (B == null ? void 0 : B.finalColorTexture) ?? (B == null ? void 0 : B.sceneColorTexture) ?? null, T = G !== null && w !== null, L = k(
1283
+ [P, G, K, g, f, I, W]
1284
+ ), Y = x(() => {
1285
+ const R = B.clone();
1286
+ return R.needsUpdate = !0, R.repeat.set(D.repeat[0], D.repeat[1]), R.offset.set(D.offset[0], D.offset[1]), R;
1287
+ }, [B, D.repeat, D.offset]);
1288
+ ue(Y), ue(V);
1289
+ const J = x(() => un(o), [o]), k = gn.has(o) ? o : null, y = l ?? (p == null ? void 0 : p.finalColorTexture) ?? (p == null ? void 0 : p.sceneColorTexture) ?? null, L = k !== null && y !== null, q = x(
1271
1290
  () => ({
1272
- imageMap: { value: D },
1273
- backdropMap: { value: w },
1274
- resolution: { value: new p.Vector2(E.width, E.height) },
1275
- tint: { value: new p.Color(A) },
1276
- opacity: { value: c },
1291
+ imageMap: { value: Y },
1292
+ backdropMap: { value: y },
1293
+ resolution: { value: new M.Vector2(E.width, E.height) },
1294
+ tint: { value: new M.Color(c) },
1295
+ opacity: { value: A },
1277
1296
  alphaTest: { value: v },
1278
1297
  blendMode: {
1279
- value: G === null ? 0 : hn[G]
1298
+ value: k === null ? 0 : fn[k]
1280
1299
  }
1281
1300
  }),
1282
1301
  [
1283
- G,
1302
+ k,
1284
1303
  v,
1285
- w,
1304
+ y,
1286
1305
  E.height,
1287
1306
  E.width,
1288
- A,
1289
- D,
1290
- c
1307
+ c,
1308
+ Y,
1309
+ A
1291
1310
  ]
1292
1311
  );
1293
- return /* @__PURE__ */ F("group", { visible: m, children: [
1294
- Z ? /* @__PURE__ */ g(
1295
- Sn,
1312
+ return /* @__PURE__ */ F("group", { visible: C, children: [
1313
+ H ? /* @__PURE__ */ h(
1314
+ Cn,
1296
1315
  {
1297
- materialTexture: D,
1298
- sourceTexture: h,
1299
- onSourceSizeChange: K
1316
+ materialTexture: Y,
1317
+ sourceTexture: B,
1318
+ onSourceSizeChange: U
1300
1319
  }
1301
1320
  ) : null,
1302
1321
  /* @__PURE__ */ F(
1303
1322
  "mesh",
1304
1323
  {
1305
1324
  name: t,
1306
- scale: X.meshScale,
1307
- rotation: [0, 0, s * Cn],
1325
+ scale: D.meshScale,
1326
+ rotation: [0, 0, s * In],
1308
1327
  renderOrder: S,
1309
1328
  children: [
1310
- /* @__PURE__ */ g("planeGeometry", { args: [1, 1] }),
1311
- T ? /* @__PURE__ */ g(
1329
+ /* @__PURE__ */ h("planeGeometry", { args: [1, 1] }),
1330
+ L ? /* @__PURE__ */ h(
1312
1331
  "shaderMaterial",
1313
1332
  {
1314
- uniforms: L,
1315
- vertexShader: dn,
1316
- fragmentShader: fn,
1333
+ uniforms: q,
1334
+ vertexShader: Sn,
1335
+ fragmentShader: vn,
1317
1336
  transparent: !1,
1318
1337
  depthTest: !u,
1319
1338
  depthWrite: !u,
1320
1339
  toneMapped: !1
1321
1340
  }
1322
- ) : a === "standardPBR" ? /* @__PURE__ */ g(
1341
+ ) : i === "standardPBR" ? /* @__PURE__ */ h(
1323
1342
  "meshStandardMaterial",
1324
1343
  {
1325
- map: D,
1326
- transparent: C || c < 1,
1327
- opacity: c,
1328
- color: A,
1344
+ map: Y,
1345
+ transparent: m || A < 1,
1346
+ opacity: A,
1347
+ color: c,
1329
1348
  alphaTest: v,
1330
1349
  depthTest: !u,
1331
1350
  depthWrite: !u,
1332
1351
  toneMapped: !1,
1333
1352
  roughness: 0.72,
1334
1353
  metalness: 0.08,
1335
- emissive: A,
1354
+ emissive: c,
1336
1355
  emissiveIntensity: 0.18,
1337
- ...O
1356
+ ...J
1338
1357
  }
1339
- ) : a === "matcap" ? /* @__PURE__ */ g(
1358
+ ) : i === "matcap" ? /* @__PURE__ */ h(
1340
1359
  "meshMatcapMaterial",
1341
1360
  {
1342
- map: D,
1343
- matcap: U,
1344
- transparent: C || c < 1,
1345
- opacity: c,
1346
- color: A,
1361
+ map: Y,
1362
+ matcap: V,
1363
+ transparent: m || A < 1,
1364
+ opacity: A,
1365
+ color: c,
1347
1366
  alphaTest: v,
1348
1367
  depthTest: !u,
1349
1368
  depthWrite: !u,
1350
1369
  toneMapped: !1,
1351
- ...O
1370
+ ...J
1352
1371
  }
1353
- ) : /* @__PURE__ */ g(
1372
+ ) : /* @__PURE__ */ h(
1354
1373
  "meshBasicMaterial",
1355
1374
  {
1356
- map: D,
1357
- transparent: C || c < 1,
1358
- opacity: c,
1359
- color: A,
1375
+ map: Y,
1376
+ transparent: m || A < 1,
1377
+ opacity: A,
1378
+ color: c,
1360
1379
  alphaTest: v,
1361
1380
  depthTest: !u,
1362
1381
  depthWrite: !u,
1363
1382
  toneMapped: !1,
1364
- ...O
1383
+ ...J
1365
1384
  }
1366
1385
  )
1367
1386
  ]
@@ -1369,38 +1388,38 @@ function Ke({
1369
1388
  )
1370
1389
  ] });
1371
1390
  }
1372
- const mn = { left: 0, right: 0, top: 0, bottom: 0 }, En = Math.PI / 180;
1373
- function In({
1391
+ const Tn = { left: 0, right: 0, top: 0, bottom: 0 }, Bn = Math.PI / 180;
1392
+ function pn({
1374
1393
  anchors: t,
1375
1394
  offsets: e,
1376
1395
  pivot: n,
1377
1396
  rotation: r,
1378
- children: i
1397
+ children: a
1379
1398
  }) {
1380
- const { width: a, height: o } = be(), l = k(
1399
+ const { width: i, height: o } = be(), l = x(
1381
1400
  () => ({ left: -1, right: 1, top: 1, bottom: -1, ...t }),
1382
1401
  [t]
1383
- ), s = k(() => ({ ...mn, ...e }), [e]), c = k(
1384
- () => yt(a, o, l, s, n),
1385
- [o, n, l, s, a]
1386
- ), A = c.width > 0 && c.height > 0 ? c.width / c.height : null;
1387
- return /* @__PURE__ */ g(
1402
+ ), s = x(() => ({ ...Tn, ...e }), [e]), A = x(
1403
+ () => pt(i, o, l, s, n),
1404
+ [o, n, l, s, i]
1405
+ ), c = A.width > 0 && A.height > 0 ? A.width / A.height : null;
1406
+ return /* @__PURE__ */ h(
1388
1407
  "group",
1389
1408
  {
1390
- position: [c.centerX - c.pivotX, c.centerY - c.pivotY, 0],
1391
- rotation: [0, 0, r * En],
1392
- scale: [c.width, c.height, 1],
1393
- children: /* @__PURE__ */ g(gt.Provider, { value: A, children: i })
1409
+ position: [A.centerX - A.pivotX, A.centerY - A.pivotY, 0],
1410
+ rotation: [0, 0, r * Bn],
1411
+ scale: [A.width, A.height, 1],
1412
+ children: /* @__PURE__ */ h(dt.Provider, { value: c, children: a })
1394
1413
  }
1395
1414
  );
1396
1415
  }
1397
- function bn({
1416
+ function Mn({
1398
1417
  transform: t,
1399
1418
  guideLayer: e,
1400
1419
  onChange: n,
1401
1420
  children: r
1402
1421
  }) {
1403
- return /* @__PURE__ */ g(
1422
+ return /* @__PURE__ */ h(
1404
1423
  Ve,
1405
1424
  {
1406
1425
  guideColor: "#22d3ee",
@@ -1411,12 +1430,12 @@ function bn({
1411
1430
  }
1412
1431
  );
1413
1432
  }
1414
- const yn = {
1433
+ const wn = {
1415
1434
  left: -1,
1416
1435
  right: 1,
1417
1436
  top: 1,
1418
1437
  bottom: -1
1419
- }, Tn = {}, Bn = [0.5, 0.5];
1438
+ }, Qn = {}, kn = [0.5, 0.5];
1420
1439
  [
1421
1440
  ["Normal", "normal"],
1422
1441
  ["Add", "add"],
@@ -1431,79 +1450,79 @@ const yn = {
1431
1450
  ["Difference", "difference"],
1432
1451
  ["Exclusion", "exclusion"]
1433
1452
  ].map(([t, e]) => ({ label: t, value: e }));
1434
- const pn = (t) => [
1453
+ const xn = (t) => [
1435
1454
  t[0] * 2 - 1,
1436
1455
  t[1] * 2 - 1
1437
- ], Mn = (t, e, n, r, i) => t || (!r && !i ? yn : qe({
1456
+ ], Ln = (t, e, n, r, a) => t || (!r && !a ? wn : qe({
1438
1457
  coordinateSpace: e,
1439
- canvasSize: n ?? j,
1458
+ canvasSize: n ?? Z,
1440
1459
  position: r,
1441
- size: i
1460
+ size: a
1442
1461
  }));
1443
- function Qn({
1462
+ function Fn({
1444
1463
  anchors: t,
1445
1464
  coordinateSpace: e,
1446
1465
  canvasSize: n,
1447
1466
  position: r,
1448
- size: i,
1449
- offsets: a = Tn,
1450
- pivot: o = Bn,
1467
+ size: a,
1468
+ offsets: i = Qn,
1469
+ pivot: o = kn,
1451
1470
  rotation: l = 0,
1452
1471
  transform: s,
1453
- onScreenTransformChange: c,
1454
- transformGuideLayer: A = "scene",
1455
- ...d
1472
+ onScreenTransformChange: A,
1473
+ transformGuideLayer: c = "scene",
1474
+ ...g
1456
1475
  }) {
1457
- const f = k(
1458
- () => Mn(t, e, n, r, i),
1459
- [t, n, e, r, i]
1460
- ), S = k(() => pn(o), [o]);
1476
+ const f = x(
1477
+ () => Ln(t, e, n, r, a),
1478
+ [t, n, e, r, a]
1479
+ ), S = x(() => xn(o), [o]);
1461
1480
  if (s) {
1462
- const C = Ze(s);
1463
- return C.enabled ? /* @__PURE__ */ g(
1464
- bn,
1481
+ const m = Ze(s);
1482
+ return m.enabled ? /* @__PURE__ */ h(
1483
+ Mn,
1465
1484
  {
1466
- guideLayer: A,
1467
- transform: C,
1468
- onChange: c,
1469
- children: /* @__PURE__ */ g(
1485
+ guideLayer: c,
1486
+ transform: m,
1487
+ onChange: A,
1488
+ children: /* @__PURE__ */ h(
1470
1489
  Ke,
1471
1490
  {
1472
- ...d,
1473
- layoutSize: C.size,
1474
- renderOrder: d.renderOrder ?? C.renderOrder,
1475
- overlay: d.overlay ?? C.overlay,
1476
- visible: d.visible ?? C.visible,
1491
+ ...g,
1492
+ layoutSize: m.size,
1493
+ renderOrder: g.renderOrder ?? m.renderOrder,
1494
+ overlay: g.overlay ?? m.overlay,
1495
+ visible: g.visible ?? m.visible,
1477
1496
  rotation: 0
1478
1497
  }
1479
1498
  )
1480
1499
  }
1481
1500
  ) : null;
1482
1501
  }
1483
- return /* @__PURE__ */ g(
1484
- In,
1502
+ return /* @__PURE__ */ h(
1503
+ pn,
1485
1504
  {
1486
1505
  anchors: f,
1487
- offsets: a,
1506
+ offsets: i,
1488
1507
  pivot: S,
1489
1508
  rotation: l,
1490
- children: /* @__PURE__ */ g(
1509
+ children: /* @__PURE__ */ h(
1491
1510
  Ke,
1492
1511
  {
1493
- ...d,
1494
- layoutSize: i ? { width: i[0], height: i[1] } : void 0,
1512
+ ...g,
1513
+ layoutSize: a ? { width: a[0], height: a[1] } : void 0,
1495
1514
  rotation: 0
1496
1515
  }
1497
1516
  )
1498
1517
  }
1499
1518
  );
1500
1519
  }
1501
- const wn = 2.5, kn = "#38bdf8", xn = {
1520
+ const Yn = 2.5, Wn = "#38bdf8", Xn = {
1502
1521
  top: { left: -0.92, right: 0.92, top: 0.92, bottom: 0.56 },
1503
1522
  center: { left: -0.92, right: 0.92, top: 0.18, bottom: -0.18 },
1504
1523
  bottom: { left: -0.92, right: 0.92, top: -0.56, bottom: -0.92 }
1505
1524
  };
1506
- function Ln({
1525
+ function Dn({
1507
1526
  bend: t,
1508
1527
  bendPreset: e,
1509
1528
  bendStrength: n
@@ -1513,7 +1532,7 @@ function Ln({
1513
1532
  bendStrength: (t == null ? void 0 : t.strength) ?? n
1514
1533
  };
1515
1534
  }
1516
- function Fn({
1535
+ function Pn({
1517
1536
  width: t,
1518
1537
  height: e
1519
1538
  }) {
@@ -1524,36 +1543,36 @@ function Fn({
1524
1543
  };
1525
1544
  }
1526
1545
  function Ne(t) {
1527
- const e = Ue(), { bend: n, layoutSize: r, renderOrder: i, overlay: a = !0, ...o } = t, l = r ? Fn(r) : void 0, s = Math.max(
1528
- (l == null ? void 0 : l.aspect) ?? e ?? wn,
1546
+ const e = Ue(), { bend: n, layoutSize: r, renderOrder: a, overlay: i = !0, ...o } = t, l = r ? Pn(r) : void 0, s = Math.max(
1547
+ (l == null ? void 0 : l.aspect) ?? e ?? Yn,
1529
1548
  0.1
1530
- ), c = Ln({
1549
+ ), A = Dn({
1531
1550
  bend: n,
1532
1551
  bendPreset: o.bendPreset,
1533
1552
  bendStrength: o.bendStrength
1534
1553
  });
1535
- return /* @__PURE__ */ g(
1536
- rn,
1554
+ return /* @__PURE__ */ h(
1555
+ sn,
1537
1556
  {
1538
1557
  ...o,
1539
1558
  aspect: s,
1540
1559
  resolution: (l == null ? void 0 : l.resolution) ?? o.resolution,
1541
- ...c,
1542
- overlay: a,
1543
- renderOrder: i
1560
+ ...A,
1561
+ overlay: i,
1562
+ renderOrder: a
1544
1563
  }
1545
1564
  );
1546
1565
  }
1547
- function Yn({
1566
+ function Rn({
1548
1567
  transform: t,
1549
1568
  guideLayer: e,
1550
1569
  onChange: n,
1551
1570
  children: r
1552
1571
  }) {
1553
- return /* @__PURE__ */ g(
1572
+ return /* @__PURE__ */ h(
1554
1573
  Ve,
1555
1574
  {
1556
- guideColor: kn,
1575
+ guideColor: Wn,
1557
1576
  guideLayer: e,
1558
1577
  transform: t,
1559
1578
  onChange: n,
@@ -1561,68 +1580,68 @@ function Yn({
1561
1580
  }
1562
1581
  );
1563
1582
  }
1564
- function Wn(t = "center") {
1565
- return xn[t];
1583
+ function On(t = "center") {
1584
+ return Xn[t];
1566
1585
  }
1567
- function Xn({
1586
+ function Gn({
1568
1587
  anchors: t,
1569
1588
  coordinateSpace: e,
1570
1589
  canvasSize: n,
1571
1590
  position: r,
1572
- size: i,
1573
- transform: a,
1591
+ size: a,
1592
+ transform: i,
1574
1593
  pivot: o,
1575
1594
  verticalAlign: l
1576
1595
  }) {
1577
1596
  return {
1578
- resolvedAnchors: a != null && a.anchors ? a.anchors : t || (a != null && a.position || a != null && a.size || r || i ? qe({
1579
- coordinateSpace: (a == null ? void 0 : a.coordinateSpace) ?? e,
1580
- canvasSize: (a == null ? void 0 : a.canvasSize) ?? n,
1581
- position: (a == null ? void 0 : a.position) ?? r,
1582
- size: (a == null ? void 0 : a.size) ?? i
1583
- }) : Wn(l)),
1584
- resolvedOffsets: a == null ? void 0 : a.offsets,
1585
- resolvedPivot: Yt((a == null ? void 0 : a.pivot) ?? o ?? [0.5, 0.5])
1597
+ resolvedAnchors: i != null && i.anchors ? i.anchors : t || (i != null && i.position || i != null && i.size || r || a ? qe({
1598
+ coordinateSpace: (i == null ? void 0 : i.coordinateSpace) ?? e,
1599
+ canvasSize: (i == null ? void 0 : i.canvasSize) ?? n,
1600
+ position: (i == null ? void 0 : i.position) ?? r,
1601
+ size: (i == null ? void 0 : i.size) ?? a
1602
+ }) : On(l)),
1603
+ resolvedOffsets: i == null ? void 0 : i.offsets,
1604
+ resolvedPivot: Dt((i == null ? void 0 : i.pivot) ?? o ?? [0.5, 0.5])
1586
1605
  };
1587
1606
  }
1588
- function Dn({
1607
+ function Hn({
1589
1608
  anchors: t,
1590
1609
  coordinateSpace: e,
1591
1610
  canvasSize: n,
1592
1611
  offsets: r,
1593
- pivot: i,
1594
- position: a,
1612
+ pivot: a,
1613
+ position: i,
1595
1614
  rotation: o = 0,
1596
1615
  size: l,
1597
1616
  transform: s,
1598
- screenTransform: c,
1599
- onScreenTransformChange: A,
1600
- transformGuideLayer: d = "scene",
1617
+ screenTransform: A,
1618
+ onScreenTransformChange: c,
1619
+ transformGuideLayer: g = "scene",
1601
1620
  verticalAlign: f = "center",
1602
1621
  ...S
1603
1622
  }) {
1604
- const { resolvedAnchors: C, resolvedOffsets: v, resolvedPivot: u } = k(
1605
- () => Xn({
1623
+ const { resolvedAnchors: m, resolvedOffsets: v, resolvedPivot: u } = x(
1624
+ () => Gn({
1606
1625
  anchors: t,
1607
1626
  coordinateSpace: e,
1608
1627
  canvasSize: n,
1609
- position: a,
1628
+ position: i,
1610
1629
  size: l,
1611
1630
  transform: s,
1612
- pivot: i,
1631
+ pivot: a,
1613
1632
  verticalAlign: f
1614
1633
  }),
1615
- [t, n, e, i, a, l, s, f]
1616
- ), m = (s == null ? void 0 : s.offsets) ?? r ?? v, I = (s == null ? void 0 : s.rotation) ?? o;
1617
- if (c) {
1618
- const E = Ze(c);
1619
- return E.enabled ? /* @__PURE__ */ g(
1620
- Yn,
1634
+ [t, n, e, a, i, l, s, f]
1635
+ ), C = (s == null ? void 0 : s.offsets) ?? r ?? v, I = (s == null ? void 0 : s.rotation) ?? o;
1636
+ if (A) {
1637
+ const E = Ze(A);
1638
+ return E.enabled ? /* @__PURE__ */ h(
1639
+ Rn,
1621
1640
  {
1622
- guideLayer: d,
1641
+ guideLayer: g,
1623
1642
  transform: E,
1624
- onChange: A,
1625
- children: /* @__PURE__ */ g(
1643
+ onChange: c,
1644
+ children: /* @__PURE__ */ h(
1626
1645
  Ne,
1627
1646
  {
1628
1647
  ...S,
@@ -1636,26 +1655,26 @@ function Dn({
1636
1655
  }
1637
1656
  ) : null;
1638
1657
  }
1639
- return /* @__PURE__ */ g(Tt, { anchors: C, offsets: m, pivot: u, children: /* @__PURE__ */ g("group", { rotation: [0, 0, I * Math.PI / 180], children: /* @__PURE__ */ g(Ne, { ...S, verticalAlign: f }) }) });
1658
+ return /* @__PURE__ */ h(Mt, { anchors: m, offsets: C, pivot: u, children: /* @__PURE__ */ h("group", { rotation: [0, 0, I * Math.PI / 180], children: /* @__PURE__ */ h(Ne, { ...S, verticalAlign: f }) }) });
1640
1659
  }
1641
- const Pn = ({ settings: t, transform: e }) => {
1642
- const n = k(
1660
+ const Jn = ({ settings: t, transform: e }) => {
1661
+ const n = x(
1643
1662
  () => /* @__PURE__ */ F("group", { name: "LightEditorGizmo", visible: t.showHelper, children: [
1644
1663
  /* @__PURE__ */ F("mesh", { renderOrder: 1e3, children: [
1645
- /* @__PURE__ */ g("sphereGeometry", { args: [0.12, 12, 8] }),
1646
- /* @__PURE__ */ g("meshBasicMaterial", { color: "#facc15", wireframe: !0, depthTest: !1, depthWrite: !1 })
1664
+ /* @__PURE__ */ h("sphereGeometry", { args: [0.12, 12, 8] }),
1665
+ /* @__PURE__ */ h("meshBasicMaterial", { color: "#facc15", wireframe: !0, depthTest: !1, depthWrite: !1 })
1647
1666
  ] }),
1648
1667
  /* @__PURE__ */ F("mesh", { position: [0, 0, -0.35], rotation: [Math.PI / 2, 0, 0], renderOrder: 1e3, children: [
1649
- /* @__PURE__ */ g("coneGeometry", { args: [0.08, 0.45, 12] }),
1650
- /* @__PURE__ */ g("meshBasicMaterial", { color: "#fde047", wireframe: !0, depthTest: !1, depthWrite: !1 })
1668
+ /* @__PURE__ */ h("coneGeometry", { args: [0.08, 0.45, 12] }),
1669
+ /* @__PURE__ */ h("meshBasicMaterial", { color: "#fde047", wireframe: !0, depthTest: !1, depthWrite: !1 })
1651
1670
  ] })
1652
1671
  ] }),
1653
1672
  [t.showHelper]
1654
1673
  );
1655
1674
  return t.enabled ? /* @__PURE__ */ F(le, { value: e, children: [
1656
1675
  n,
1657
- t.type === "ambient" ? /* @__PURE__ */ g("ambientLight", { color: t.color, intensity: t.intensity }) : null,
1658
- t.type === "directional" ? /* @__PURE__ */ g(
1676
+ t.type === "ambient" ? /* @__PURE__ */ h("ambientLight", { color: t.color, intensity: t.intensity }) : null,
1677
+ t.type === "directional" ? /* @__PURE__ */ h(
1659
1678
  "directionalLight",
1660
1679
  {
1661
1680
  color: t.color,
@@ -1663,7 +1682,7 @@ const Pn = ({ settings: t, transform: e }) => {
1663
1682
  castShadow: t.castShadow
1664
1683
  }
1665
1684
  ) : null,
1666
- t.type === "point" ? /* @__PURE__ */ g(
1685
+ t.type === "point" ? /* @__PURE__ */ h(
1667
1686
  "pointLight",
1668
1687
  {
1669
1688
  color: t.color,
@@ -1673,7 +1692,7 @@ const Pn = ({ settings: t, transform: e }) => {
1673
1692
  castShadow: t.castShadow
1674
1693
  }
1675
1694
  ) : null,
1676
- t.type === "spot" ? /* @__PURE__ */ g(
1695
+ t.type === "spot" ? /* @__PURE__ */ h(
1677
1696
  "spotLight",
1678
1697
  {
1679
1698
  color: t.color,
@@ -1686,7 +1705,7 @@ const Pn = ({ settings: t, transform: e }) => {
1686
1705
  }
1687
1706
  ) : null
1688
1707
  ] }) : null;
1689
- }, Rn = ({
1708
+ }, zn = ({
1690
1709
  source: t,
1691
1710
  target: e,
1692
1711
  settings: n
@@ -1694,231 +1713,231 @@ const Pn = ({ settings: t, transform: e }) => {
1694
1713
  if (!n.enabled || !e) return !1;
1695
1714
  const r = new We();
1696
1715
  if (n.mode === "point") {
1697
- const a = new q();
1698
- e.getWorldPosition(a), t.lookAt(a), r.copy(t.quaternion);
1716
+ const i = new _();
1717
+ e.getWorldPosition(i), t.lookAt(i), r.copy(t.quaternion);
1699
1718
  } else
1700
1719
  e.getWorldQuaternion(r);
1701
- const i = new We().setFromEuler(
1702
- new ct(
1720
+ const a = new We().setFromEuler(
1721
+ new At(
1703
1722
  n.offsetRotation.x * Math.PI / 180,
1704
1723
  n.offsetRotation.y * Math.PI / 180,
1705
1724
  n.offsetRotation.z * Math.PI / 180
1706
1725
  )
1707
1726
  );
1708
- return t.quaternion.copy(r).multiply(i), !0;
1709
- }, On = ({ target: t, settings: e, children: n }) => {
1710
- const r = W(null);
1711
- return ie(() => {
1712
- r.current && Rn({ source: r.current, target: t, settings: e });
1713
- }), /* @__PURE__ */ g("group", { ref: r, children: n });
1714
- }, Gn = (t, e) => {
1727
+ return t.quaternion.copy(r).multiply(a), !0;
1728
+ }, Kn = ({ target: t, settings: e, children: n }) => {
1729
+ const r = X(null);
1730
+ return ae(() => {
1731
+ r.current && zn({ source: r.current, target: t, settings: e });
1732
+ }), /* @__PURE__ */ h("group", { ref: r, children: n });
1733
+ }, Nn = (t, e) => {
1715
1734
  let n = t;
1716
1735
  for (; n && n !== e; ) {
1717
1736
  if ("isTransformControls" in n && n.isTransformControls === !0) return !0;
1718
1737
  n = n.parent;
1719
1738
  }
1720
1739
  return !1;
1721
- }, H = ({ children: t, layer: e }) => {
1722
- const n = W(null), r = W(0), i = Ie(() => {
1723
- e === void 0 || !n.current || n.current.traverse((a) => {
1724
- Gn(a, n.current) || a.layers.set(e);
1740
+ }, O = ({ children: t, layer: e }) => {
1741
+ const n = X(null), r = X(0), a = Ie(() => {
1742
+ e === void 0 || !n.current || n.current.traverse((i) => {
1743
+ Nn(i, n.current) || i.layers.set(e);
1725
1744
  });
1726
1745
  }, [e]);
1727
1746
  return ot(() => {
1728
- i(), r.current = 2;
1729
- }, [i, t]), ie(() => {
1730
- r.current <= 0 || (i(), r.current -= 1);
1731
- }, -1e3), /* @__PURE__ */ g("group", { ref: n, children: t });
1732
- }, M = (t, e) => (t == null ? void 0 : t.type) === e, Hn = (t) => null, te = ({ children: t, inside: e }) => e ? /* @__PURE__ */ g(he, { children: t }) : /* @__PURE__ */ g(Dt, { children: t }), Jn = ({
1747
+ a(), r.current = 2;
1748
+ }, [a, t]), ae(() => {
1749
+ r.current <= 0 || (a(), r.current -= 1);
1750
+ }, -1e3), /* @__PURE__ */ h("group", { ref: n, children: t });
1751
+ }, Q = (t, e) => (t == null ? void 0 : t.type) === e, Un = (t) => null, re = ({ children: t, inside: e }) => e ? /* @__PURE__ */ h(de, { children: t }) : /* @__PURE__ */ h(Ot, { children: t }), Vn = ({
1733
1752
  children: t,
1734
1753
  insideScreenSpaceUI: e,
1735
1754
  objectRef: n,
1736
1755
  renderOrder: r,
1737
- settings: i
1738
- }) => /* @__PURE__ */ g(te, { inside: e, children: /* @__PURE__ */ g(zn, { settings: i, renderOrder: r, objectRef: n, children: t }) }), zn = ({
1756
+ settings: a
1757
+ }) => /* @__PURE__ */ h(re, { inside: e, children: /* @__PURE__ */ h(Zn, { settings: a, renderOrder: r, objectRef: n, children: t }) }), Zn = ({
1739
1758
  children: t,
1740
1759
  objectRef: e,
1741
1760
  renderOrder: n,
1742
1761
  settings: r
1743
1762
  }) => {
1744
- const i = be();
1763
+ const a = be();
1745
1764
  if (!r.enabled || !r.visible) return null;
1746
- const a = je({ transform: r, parentSize: i });
1747
- return /* @__PURE__ */ g(
1765
+ const i = je({ transform: r, parentSize: a });
1766
+ return /* @__PURE__ */ h(
1748
1767
  "group",
1749
1768
  {
1750
1769
  ref: e,
1751
- position: a.center,
1752
- rotation: a.rotation,
1753
- scale: a.size,
1770
+ position: i.center,
1771
+ rotation: i.rotation,
1772
+ scale: i.size,
1754
1773
  renderOrder: n ?? r.renderOrder,
1755
1774
  children: t
1756
1775
  }
1757
1776
  );
1758
- }, Kn = ({
1777
+ }, jn = ({
1759
1778
  anchor: t,
1760
1779
  children: e,
1761
1780
  insideScreenSpaceUI: n,
1762
1781
  objectRef: r,
1763
- renderOrder: i,
1764
- settings: a
1765
- }) => /* @__PURE__ */ g(te, { inside: n, children: /* @__PURE__ */ g(
1766
- Nn,
1782
+ renderOrder: a,
1783
+ settings: i
1784
+ }) => /* @__PURE__ */ h(re, { inside: n, children: /* @__PURE__ */ h(
1785
+ qn,
1767
1786
  {
1768
1787
  anchor: t,
1769
- settings: a,
1770
- renderOrder: i,
1788
+ settings: i,
1789
+ renderOrder: a,
1771
1790
  objectRef: r,
1772
1791
  children: e
1773
1792
  }
1774
- ) }), Nn = ({
1793
+ ) }), qn = ({
1775
1794
  anchor: t,
1776
1795
  children: e,
1777
1796
  objectRef: n,
1778
1797
  renderOrder: r,
1779
- settings: i
1798
+ settings: a
1780
1799
  }) => {
1781
- const a = wt({ targetFps: 24 }), { size: o } = Ae(), l = be(), s = W(null), c = W(new q()), A = W({
1782
- pos: new q(),
1783
- prevRaw: new q(),
1784
- dxHat: new q(),
1800
+ const i = Lt({ targetFps: 24 }), { size: o } = Ae(), l = be(), s = X(null), A = X(new _()), c = X({
1801
+ pos: new _(),
1802
+ prevRaw: new _(),
1803
+ dxHat: new _(),
1785
1804
  initialized: !1
1786
- }), d = W(!1), f = W({ x: 0, y: 0, z: 0, visibility: 0 }), S = W({ x: 0, y: 0 }), C = a ? pt(
1805
+ }), g = X(!1), f = X({ x: 0, y: 0, z: 0, visibility: 0 }), S = X({ x: 0, y: 0 }), m = i ? Qt(
1787
1806
  t.target,
1788
- a.landmarks,
1807
+ i.landmarks,
1789
1808
  t.customAnchorPoint,
1790
1809
  f.current
1791
- ) : null, v = C ? Xt({ point: C, viewportSize: o, target: S.current }) : null, u = v ? je({
1810
+ ) : null, v = m ? Rt({ point: m, viewportSize: o, target: S.current }) : null, u = v ? je({
1792
1811
  transform: {
1793
- ...i,
1812
+ ...a,
1794
1813
  position: {
1795
- x: v.x + i.position.x + t.offset.x,
1796
- y: v.y + i.position.y + t.offset.y
1814
+ x: v.x + a.position.x + t.offset.x,
1815
+ y: v.y + a.position.y + t.offset.y
1797
1816
  }
1798
1817
  },
1799
1818
  parentSize: l
1800
1819
  }) : null;
1801
- return ie((m, I) => {
1820
+ return ae((C, I) => {
1802
1821
  const E = s.current;
1803
1822
  if (E) {
1804
- if (E.visible = !!(u && i.enabled && i.visible), !u) {
1805
- d.current = !1, A.current.initialized = !1;
1823
+ if (E.visible = !!(u && a.enabled && a.visible), !u) {
1824
+ g.current = !1, c.current.initialized = !1;
1806
1825
  return;
1807
1826
  }
1808
- c.current.set(u.center[0], u.center[1], t.offset.z), t.smoothing > 0 ? (Qt(
1809
- A.current,
1827
+ A.current.set(u.center[0], u.center[1], t.offset.z), t.smoothing > 0 ? (xt(
1810
1828
  c.current,
1811
- d.current ? I : 0,
1829
+ A.current,
1830
+ g.current ? I : 0,
1812
1831
  t.smoothing
1813
- ), E.position.copy(A.current.pos)) : E.position.copy(c.current), d.current = !0;
1832
+ ), E.position.copy(c.current.pos)) : E.position.copy(A.current), g.current = !0;
1814
1833
  }
1815
- }), /* @__PURE__ */ g(
1834
+ }), /* @__PURE__ */ h(
1816
1835
  "group",
1817
1836
  {
1818
- ref: (m) => {
1819
- s.current = m, n == null || n(m);
1837
+ ref: (C) => {
1838
+ s.current = C, n == null || n(C);
1820
1839
  },
1821
1840
  rotation: [
1822
1841
  (u == null ? void 0 : u.rotation[0]) ?? 0,
1823
1842
  (u == null ? void 0 : u.rotation[1]) ?? 0,
1824
- ((u == null ? void 0 : u.rotation[2]) ?? 0) + (t.followFaceRoll ? (a == null ? void 0 : a.pose.rotation.z) ?? 0 : 0)
1843
+ ((u == null ? void 0 : u.rotation[2]) ?? 0) + (t.followFaceRoll ? (i == null ? void 0 : i.pose.rotation.z) ?? 0 : 0)
1825
1844
  ],
1826
1845
  scale: [
1827
- i.size.width / 100 * i.scale2D.x,
1828
- i.size.height / 100 * i.scale2D.y,
1846
+ a.size.width / 100 * a.scale2D.x,
1847
+ a.size.height / 100 * a.scale2D.y,
1829
1848
  1
1830
1849
  ],
1831
- renderOrder: r ?? i.renderOrder,
1850
+ renderOrder: r ?? a.renderOrder,
1832
1851
  children: e
1833
1852
  }
1834
1853
  );
1835
- }, Un = ({
1854
+ }, _n = ({
1836
1855
  editorMode: t = !1,
1837
- fallback: e = Hn,
1856
+ fallback: e = Un,
1838
1857
  insideScreenSpaceUI: n = !1,
1839
1858
  objectId: r,
1840
- onComponentChange: i,
1841
- renderLayer: a,
1859
+ onComponentChange: a,
1860
+ renderLayer: i,
1842
1861
  renderOrder: o,
1843
1862
  store: l
1844
1863
  }) => {
1845
- const s = kt(), c = xt(), A = l.objects[r];
1846
- if (!A || !A.enabled) return null;
1847
- const d = ut(l, r).filter((h) => h.enabled), f = d.find((h) => h.type === "Transform"), S = d.find((h) => h.type === "ScreenTransform"), C = d.find((h) => h.type === "ScreenImage"), v = d.find((h) => h.type === "ScreenText"), u = d.find((h) => h.type === "ScreenShape"), m = d.find((h) => h.type === "MeshRenderer"), I = d.find((h) => h.type === "FaceMeshRenderer"), E = d.find((h) => h.type === "Light"), B = d.find((h) => h.type === "LookAt"), Q = d.find((h) => h.type === "PinToMesh"), y = d.find((h) => h.type === "TrackingAnchor"), b = St(l, r).map((h) => /* @__PURE__ */ g(
1848
- Un,
1864
+ const s = Ft(), A = Yt(), c = l.objects[r];
1865
+ if (!c || !c.enabled) return null;
1866
+ const g = ut(l, r).filter((d) => d.enabled), f = g.find((d) => d.type === "Transform"), S = g.find((d) => d.type === "ScreenTransform"), m = g.find((d) => d.type === "ScreenImage"), v = g.find((d) => d.type === "ScreenText"), u = g.find((d) => d.type === "ScreenShape"), C = g.find((d) => d.type === "MeshRenderer"), I = g.find((d) => d.type === "FaceMeshRenderer"), E = g.find((d) => d.type === "Light"), p = g.find((d) => d.type === "LookAt"), w = g.find((d) => d.type === "PinToMesh"), T = g.find((d) => d.type === "TrackingAnchor"), b = St(l, r).map((d) => /* @__PURE__ */ h(
1867
+ _n,
1849
1868
  {
1850
- objectId: h.id,
1869
+ objectId: d.id,
1851
1870
  store: l,
1852
1871
  editorMode: t,
1853
1872
  renderOrder: o,
1854
- renderLayer: a,
1855
- onComponentChange: i,
1873
+ renderLayer: i,
1874
+ onComponentChange: a,
1856
1875
  fallback: e,
1857
1876
  insideScreenSpaceUI: n || !!S
1858
1877
  },
1859
- h.id
1878
+ d.id
1860
1879
  ));
1861
- if (M(f, "Transform") && M(E, "Light"))
1862
- return /* @__PURE__ */ g(H, { layer: a, children: /* @__PURE__ */ F("group", { ref: (h) => s(r, h), children: [
1863
- /* @__PURE__ */ g(Pn, { settings: E.settings, transform: f.settings }),
1880
+ if (Q(f, "Transform") && Q(E, "Light"))
1881
+ return /* @__PURE__ */ h(O, { layer: i, children: /* @__PURE__ */ F("group", { ref: (d) => s(r, d), children: [
1882
+ /* @__PURE__ */ h(Jn, { settings: E.settings, transform: f.settings }),
1864
1883
  b
1865
1884
  ] }) });
1866
- if (M(f, "Transform") && M(m, "MeshRenderer")) {
1867
- const h = M(B, "LookAt") ? B.settings : De("LookAt", r).settings, x = h.inheritChildren ? b : null, J = h.inheritChildren ? null : b;
1868
- return /* @__PURE__ */ g(H, { layer: a, children: /* @__PURE__ */ g("group", { ref: (R) => s(r, R), children: /* @__PURE__ */ g(
1885
+ if (Q(f, "Transform") && Q(C, "MeshRenderer")) {
1886
+ const d = Q(p, "LookAt") ? p.settings : De("LookAt", r).settings, B = d.inheritChildren ? b : null, G = d.inheritChildren ? null : b;
1887
+ return /* @__PURE__ */ h(O, { layer: i, children: /* @__PURE__ */ h("group", { ref: (P) => s(r, P), children: /* @__PURE__ */ h(
1869
1888
  vt,
1870
1889
  {
1871
- target: M(Q, "PinToMesh") ? c(Q.settings.targetObjectId) : null,
1872
- settings: M(Q, "PinToMesh") ? Q.settings : De("PinToMesh", r).settings,
1890
+ target: Q(w, "PinToMesh") ? A(w.settings.targetObjectId) : null,
1891
+ settings: Q(w, "PinToMesh") ? w.settings : De("PinToMesh", r).settings,
1873
1892
  children: /* @__PURE__ */ F(
1874
1893
  le,
1875
1894
  {
1876
1895
  value: f.settings,
1877
- onChange: i ? (R) => i({ ...f, settings: R }) : void 0,
1896
+ onChange: a ? (P) => a({ ...f, settings: P }) : void 0,
1878
1897
  children: [
1879
1898
  /* @__PURE__ */ F(
1880
- On,
1899
+ Kn,
1881
1900
  {
1882
- target: M(B, "LookAt") ? c(B.settings.targetObjectId) : null,
1883
- settings: h,
1901
+ target: Q(p, "LookAt") ? A(p.settings.targetObjectId) : null,
1902
+ settings: d,
1884
1903
  children: [
1885
- /* @__PURE__ */ g(dt, { value: m.settings, renderOrder: o }),
1886
- x
1904
+ /* @__PURE__ */ h(gt, { value: C.settings, renderOrder: o }),
1905
+ B
1887
1906
  ]
1888
1907
  }
1889
1908
  ),
1890
- J
1909
+ G
1891
1910
  ]
1892
1911
  }
1893
1912
  )
1894
1913
  }
1895
1914
  ) }) });
1896
1915
  }
1897
- if (M(I, "FaceMeshRenderer"))
1898
- return /* @__PURE__ */ g(H, { layer: a, children: /* @__PURE__ */ F("group", { ref: (h) => s(r, h), children: [
1899
- /* @__PURE__ */ g(
1916
+ if (Q(I, "FaceMeshRenderer"))
1917
+ return /* @__PURE__ */ h(O, { layer: i, children: /* @__PURE__ */ F("group", { ref: (d) => s(r, d), children: [
1918
+ /* @__PURE__ */ h(
1900
1919
  ft,
1901
1920
  {
1902
1921
  value: I.settings,
1903
- transform: M(f, "Transform") ? f.settings : void 0
1922
+ transform: Q(f, "Transform") ? f.settings : void 0
1904
1923
  }
1905
1924
  ),
1906
1925
  b
1907
1926
  ] }) });
1908
- if (M(f, "Transform")) {
1909
- if (M(y, "TrackingAnchor")) {
1910
- const h = y.settings;
1911
- return /* @__PURE__ */ g(H, { layer: a, children: /* @__PURE__ */ g(Bt, { followFaceRoll: h.followFaceRoll, children: /* @__PURE__ */ g(
1912
- Mt,
1927
+ if (Q(f, "Transform")) {
1928
+ if (Q(T, "TrackingAnchor")) {
1929
+ const d = T.settings;
1930
+ return /* @__PURE__ */ h(O, { layer: i, children: /* @__PURE__ */ h(wt, { followFaceRoll: d.followFaceRoll, children: /* @__PURE__ */ h(
1931
+ kt,
1913
1932
  {
1914
- target: h.target,
1915
- customAnchorPoint: h.customAnchorPoint,
1916
- offset: [h.offset.x, h.offset.y, h.offset.z],
1917
- smoothing: h.smoothing,
1918
- children: /* @__PURE__ */ g(
1933
+ target: d.target,
1934
+ customAnchorPoint: d.customAnchorPoint,
1935
+ offset: [d.offset.x, d.offset.y, d.offset.z],
1936
+ smoothing: d.smoothing,
1937
+ children: /* @__PURE__ */ h(
1919
1938
  le,
1920
1939
  {
1921
- objectRef: (x) => s(r, x),
1940
+ objectRef: (B) => s(r, B),
1922
1941
  value: f.settings,
1923
1942
  children: b
1924
1943
  }
@@ -1926,124 +1945,124 @@ const Pn = ({ settings: t, transform: e }) => {
1926
1945
  }
1927
1946
  ) }) });
1928
1947
  }
1929
- return /* @__PURE__ */ g(H, { layer: a, children: /* @__PURE__ */ g("group", { children: /* @__PURE__ */ g(
1948
+ return /* @__PURE__ */ h(O, { layer: i, children: /* @__PURE__ */ h("group", { children: /* @__PURE__ */ h(
1930
1949
  le,
1931
1950
  {
1932
- objectRef: (h) => s(r, h),
1951
+ objectRef: (d) => s(r, d),
1933
1952
  value: f.settings,
1934
- onChange: i ? (h) => i({ ...f, settings: h }) : void 0,
1953
+ onChange: a ? (d) => a({ ...f, settings: d }) : void 0,
1935
1954
  children: b
1936
1955
  }
1937
1956
  ) }) });
1938
1957
  }
1939
- if (M(S, "ScreenTransform") && M(C, "ScreenImage")) {
1940
- const h = Ct({
1958
+ if (Q(S, "ScreenTransform") && Q(m, "ScreenImage")) {
1959
+ const d = mt({
1941
1960
  screenSpaceUI: { enabled: !0 },
1942
1961
  screenImage: {
1943
- ...C.settings,
1962
+ ...m.settings,
1944
1963
  screenTransform: S.settings
1945
1964
  }
1946
1965
  });
1947
- return h.shouldRender ? /* @__PURE__ */ g(H, { layer: a, children: /* @__PURE__ */ g("group", { renderOrder: o, children: /* @__PURE__ */ F(te, { inside: n, children: [
1948
- /* @__PURE__ */ g(
1949
- Qn,
1966
+ return d.shouldRender ? /* @__PURE__ */ h(O, { layer: i, children: /* @__PURE__ */ h("group", { renderOrder: o, children: /* @__PURE__ */ F(re, { inside: n, children: [
1967
+ /* @__PURE__ */ h(
1968
+ Fn,
1950
1969
  {
1951
- ...h.props,
1952
- renderOrder: o ?? h.props.renderOrder,
1953
- onScreenTransformChange: i ? (x) => i({ ...S, settings: x }) : void 0
1970
+ ...d.props,
1971
+ renderOrder: o ?? d.props.renderOrder,
1972
+ onScreenTransformChange: a ? (B) => a({ ...S, settings: B }) : void 0
1954
1973
  }
1955
1974
  ),
1956
1975
  b
1957
1976
  ] }) }) }) : null;
1958
1977
  }
1959
- if (M(S, "ScreenTransform") && M(v, "ScreenText")) {
1960
- const h = mt({
1978
+ if (Q(S, "ScreenTransform") && Q(v, "ScreenText")) {
1979
+ const d = Ct({
1961
1980
  screenSpaceUI: { enabled: !0 },
1962
1981
  screenText: {
1963
1982
  ...v.settings,
1964
1983
  screenTransform: S.settings
1965
1984
  }
1966
1985
  });
1967
- return h.shouldRender ? /* @__PURE__ */ g(H, { layer: a, children: /* @__PURE__ */ g("group", { renderOrder: o, children: /* @__PURE__ */ F(te, { inside: n, children: [
1968
- /* @__PURE__ */ g(
1969
- Dn,
1986
+ return d.shouldRender ? /* @__PURE__ */ h(O, { layer: i, children: /* @__PURE__ */ h("group", { renderOrder: o, children: /* @__PURE__ */ F(re, { inside: n, children: [
1987
+ /* @__PURE__ */ h(
1988
+ Hn,
1970
1989
  {
1971
- ...h.props,
1972
- renderOrder: o ?? h.props.renderOrder,
1973
- onScreenTransformChange: i ? (x) => i({ ...S, settings: x }) : void 0
1990
+ ...d.props,
1991
+ renderOrder: o ?? d.props.renderOrder,
1992
+ onScreenTransformChange: a ? (B) => a({ ...S, settings: B }) : void 0
1974
1993
  }
1975
1994
  ),
1976
1995
  b
1977
1996
  ] }) }) }) : null;
1978
1997
  }
1979
- return M(S, "ScreenTransform") && M(u, "ScreenShape") ? /* @__PURE__ */ g(H, { layer: a, children: /* @__PURE__ */ g("group", { ref: (h) => s(r, h), renderOrder: o, children: /* @__PURE__ */ F(te, { inside: n, children: [
1980
- /* @__PURE__ */ g(
1998
+ return Q(S, "ScreenTransform") && Q(u, "ScreenShape") ? /* @__PURE__ */ h(O, { layer: i, children: /* @__PURE__ */ h("group", { ref: (d) => s(r, d), renderOrder: o, children: /* @__PURE__ */ F(re, { inside: n, children: [
1999
+ /* @__PURE__ */ h(
1981
2000
  Et,
1982
2001
  {
1983
- name: A.name,
2002
+ name: c.name,
1984
2003
  settings: u.settings,
1985
2004
  transform: S.settings,
1986
2005
  renderOrder: o,
1987
- onScreenTransformChange: i ? (h) => i({ ...S, settings: h }) : void 0
2006
+ onScreenTransformChange: a ? (d) => a({ ...S, settings: d }) : void 0
1988
2007
  }
1989
2008
  ),
1990
2009
  b
1991
- ] }) }) }) : M(S, "ScreenTransform") ? M(y, "TrackingAnchor") ? /* @__PURE__ */ g(H, { layer: a, children: /* @__PURE__ */ g("group", { children: /* @__PURE__ */ g(
1992
- Kn,
2010
+ ] }) }) }) : Q(S, "ScreenTransform") ? Q(T, "TrackingAnchor") ? /* @__PURE__ */ h(O, { layer: i, children: /* @__PURE__ */ h("group", { children: /* @__PURE__ */ h(
2011
+ jn,
1993
2012
  {
1994
- anchor: y.settings,
2013
+ anchor: T.settings,
1995
2014
  settings: S.settings,
1996
2015
  renderOrder: o,
1997
2016
  insideScreenSpaceUI: n,
1998
- objectRef: (h) => s(r, h),
2017
+ objectRef: (d) => s(r, d),
1999
2018
  children: b
2000
2019
  }
2001
- ) }) }) : /* @__PURE__ */ g(H, { layer: a, children: /* @__PURE__ */ g("group", { children: /* @__PURE__ */ g(
2002
- Jn,
2020
+ ) }) }) : /* @__PURE__ */ h(O, { layer: i, children: /* @__PURE__ */ h("group", { children: /* @__PURE__ */ h(
2021
+ Vn,
2003
2022
  {
2004
2023
  settings: S.settings,
2005
2024
  renderOrder: o,
2006
2025
  insideScreenSpaceUI: n,
2007
- objectRef: (h) => s(r, h),
2026
+ objectRef: (d) => s(r, d),
2008
2027
  children: b
2009
2028
  }
2010
- ) }) }) : t ? /* @__PURE__ */ F(he, { children: [
2029
+ ) }) }) : t ? /* @__PURE__ */ F(de, { children: [
2011
2030
  b,
2012
2031
  e(
2013
- `Object "${A.name}" has unsupported components: ${d.map((h) => h.type).join(", ")}`
2032
+ `Object "${c.name}" has unsupported components: ${g.map((d) => d.type).join(", ")}`
2014
2033
  )
2015
- ] }) : b.length ? /* @__PURE__ */ g(he, { children: b }) : null;
2016
- }, Sr = ({ layers: t }) => {
2017
- const { camera: e, gl: n, raycaster: r, scene: i } = Ae(), { session: a } = Lt(), o = Ie(
2018
- () => It({ renderer: n, scene: i, camera: e, layers: t }),
2019
- [e, n, t, i]
2034
+ ] }) : b.length ? /* @__PURE__ */ h(de, { children: b }) : null;
2035
+ }, Ir = ({ layers: t }) => {
2036
+ const { camera: e, gl: n, raycaster: r, scene: a } = Ae(), { session: i } = Wt(), o = Ie(
2037
+ () => It({ renderer: n, scene: a, camera: e, layers: t }),
2038
+ [e, n, t, a]
2020
2039
  );
2021
- return ie(o, 1), ne(() => {
2040
+ return ae(o, 1), te(() => {
2022
2041
  const l = r.layers.mask;
2023
2042
  return t.forEach((s) => r.layers.enable(s)), () => {
2024
2043
  r.layers.mask = l;
2025
2044
  };
2026
- }, [t, r]), ne(() => (a._setR3FState({ renderer: n, scene: i, camera: e, renderFrame: o }), () => a._setR3FState({ renderer: n, scene: i, camera: e })), [e, n, o, i, a]), null;
2045
+ }, [t, r]), te(() => (i._setR3FState({ renderer: n, scene: a, camera: e, renderFrame: o }), () => i._setR3FState({ renderer: n, scene: a, camera: e })), [e, n, o, a, i]), null;
2027
2046
  };
2028
2047
  export {
2029
- Pn as L,
2030
- H as R,
2031
- Dt as S,
2032
- rn as T,
2033
- Qn as a,
2034
- Dn as b,
2048
+ Jn as L,
2049
+ O as R,
2050
+ Ot as S,
2051
+ sn as T,
2052
+ Fn as a,
2053
+ Hn as b,
2035
2054
  Ee as c,
2036
- On as d,
2037
- Un as e,
2038
- Sr as f,
2039
- Ar as g,
2040
- cr as h,
2041
- dr as i,
2042
- hr as j,
2043
- ur as k,
2044
- lr as l,
2045
- gr as m,
2046
- Xt as n,
2047
- sr as s,
2048
- fr as w
2055
+ Kn as d,
2056
+ _n as e,
2057
+ Ir as f,
2058
+ fr as g,
2059
+ ur as h,
2060
+ mr as i,
2061
+ Sr as j,
2062
+ Er as k,
2063
+ gr as l,
2064
+ vr as m,
2065
+ Rt as n,
2066
+ dr as s,
2067
+ Cr as w
2049
2068
  };