@needle-tools/engine 4.8.2 → 4.8.3-next.106dc4b

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 (33) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/dist/{gltf-progressive-B--ZfCTJ.min.js → gltf-progressive-DLhfUtEV.min.js} +1 -1
  3. package/dist/{gltf-progressive-Do1XJNMG.js → gltf-progressive-DVx_cW0s.js} +1 -5
  4. package/dist/{needle-engine.bundle-C5G_xBUc.umd.cjs → needle-engine.bundle-CS0KpoXy.umd.cjs} +36 -26
  5. package/dist/{needle-engine.bundle-Dujqh1WU.min.js → needle-engine.bundle-D48x8WMx.min.js} +43 -33
  6. package/dist/{needle-engine.bundle-D4YRjNnp.js → needle-engine.bundle-XSFxeb08.js} +224 -212
  7. package/dist/needle-engine.js +3 -3
  8. package/dist/needle-engine.min.js +1 -1
  9. package/dist/needle-engine.umd.cjs +1 -1
  10. package/dist/{vendor-CGONwIc0.js → vendor-B_ytQUuR.js} +6 -6
  11. package/dist/{vendor-BlSxe9JJ.min.js → vendor-C31T0mYm.min.js} +2 -2
  12. package/dist/{vendor-Cty8Dnri.umd.cjs → vendor-D51IT5ns.umd.cjs} +9 -9
  13. package/lib/engine/engine_context.d.ts +2 -2
  14. package/lib/engine/engine_context.js +5 -14
  15. package/lib/engine/engine_context.js.map +1 -1
  16. package/lib/engine/engine_networking_streams.js +13 -2
  17. package/lib/engine/engine_networking_streams.js.map +1 -1
  18. package/lib/engine/webcomponents/buttons.js +6 -2
  19. package/lib/engine/webcomponents/buttons.js.map +1 -1
  20. package/lib/engine/webcomponents/needle menu/needle-menu.js +10 -0
  21. package/lib/engine/webcomponents/needle menu/needle-menu.js.map +1 -1
  22. package/lib/engine-components/OrbitControls.d.ts +1 -0
  23. package/lib/engine-components/OrbitControls.js +6 -0
  24. package/lib/engine-components/OrbitControls.js.map +1 -1
  25. package/package.json +2 -2
  26. package/plugins/vite/peer.js +60 -2
  27. package/plugins/vite/poster-client.js +35 -51
  28. package/plugins/vite/poster.js +2 -3
  29. package/src/engine/engine_context.ts +7 -14
  30. package/src/engine/engine_networking_streams.ts +17 -8
  31. package/src/engine/webcomponents/buttons.ts +6 -2
  32. package/src/engine/webcomponents/needle menu/needle-menu.ts +10 -0
  33. package/src/engine-components/OrbitControls.ts +5 -0
@@ -1,7 +1,7 @@
1
1
  import { Vector2 as J, Vector3 as b, Vector4 as de, Quaternion as $, PlaneGeometry as Nn, WebGLRenderer as dr, PerspectiveCamera as pe, OrthographicCamera as Md, Scene as bi, Mesh as H, Texture as Te, Uniform$1 as Ui, Color as se, ShaderMaterial as jn, Box3 as yi, ShadowMaterial as ab, Euler as Tt, MeshStandardMaterial as ct, Box3Helper as qw, GridHelper as rm, Object3D as M, Material as _e, Matrix3 as lb, Matrix4 as te, Layers as lo, Ray as co, MathUtils as gs, AxesHelper as _i, MeshBasicMaterial as we, DoubleSide as vi, BufferGeometry as In, Group as no, CylinderGeometry as cb, SphereGeometry as Rd, BoxGeometry as la, SpriteMaterial as Xw, Sprite as Qw, Shape as Yw, ExtrudeGeometry as Kw, Fog as hb, DirectionalLight as Zf, PointLight as am, EdgesGeometry as Zw, LineSegments as db, LineBasicMaterial as ub, Line as Zl, BufferAttribute as ht, Raycaster as Td, Sphere as Ed, ArrayCamera as Jw, Plane as ir, SkinnedMesh as ys, InterleavedBufferAttribute as fb, Skeleton as ex, Bone as tx, Source as ix, WebGLCubeRenderTarget as nx, CubeCamera as sx, AnimationClip as so, FileLoader as lm, TextureLoader as Qr, PropertyBinding as ca, LinearSRGBColorSpace as Ss, ShaderChunk as Vt, UniformsLib as ox, DataTexture as cm, RGBAFormat as Ad, EquirectangularReflectionMapping as _s, SRGBColorSpace as Cs, Clock as rx, NeutralToneMapping as ha, AgXToneMapping as Id, ACESFilmicToneMapping as Ld, NoToneMapping as Vh, PCFSoftShadowMap$1 as ax, BasicNodeLibrary as lx, WebGLRenderTarget as Bn, DepthTexture as pb, NearestFilter as Hh, LoopRepeat as cx, LoopOnce as Jf, AnimationMixer as hm, CompressedTexture as hx, FrontSide as ho, Camera as dx, Frustum as Gg, AudioListener as ux, PositionalAudio as fx, AudioLoader as ep, EventDispatcher as dm, BackSide as Dd, MeshDepthMaterial as px, CustomBlending as mx, MaxEquation as gx, AmbientLight as yx, HemisphereLight as _x, AlwaysStencilFunc as bx, GreaterEqualStencilFunc as vx, NotEqualStencilFunc as wx, GreaterStencilFunc as xx, LessEqualStencilFunc as Sx, EqualStencilFunc as Cx, LessStencilFunc as Px, NeverStencilFunc as qg, InvertStencilOp as Ox, DecrementWrapStencilOp as kx, IncrementWrapStencilOp as Mx, DecrementStencilOp as Rx, IncrementStencilOp as Tx, ReplaceStencilOp as Ex, ZeroStencilOp as Ax, KeepStencilOp as Ix, RawShaderMaterial as mb, GLSL3 as Lx, AlwaysDepth as Dx, GreaterEqualDepth as jx, GreaterDepth as Bx, LessEqualDepth as Fx, LessDepth as zx, NotEqualDepth as Ux, EqualDepth as Nx, BatchedMesh as Xg, MeshPhysicalMaterial as tp, LinearFilter as Gh, UnsignedByteType as $x, RingGeometry as Wx, Line3 as Vx, AdditiveBlending as gb, BoxHelper as Hx, SpotLight as Gx, DirectionalLightHelper as qx, CameraHelper as Xx, LOD as Qx, Triangle as Yx, NormalBlending as Kx, ReinhardToneMapping as um, LinearToneMapping as fm, HalfFloatType as Nu, VideoTexture as Zx, CubeTexture as Jx, CompressedCubeTexture as eS, EquirectangularRefractionMapping as tS, VectorKeyframeTrack as iS, QuaternionKeyframeTrack as nS, Audio as sS, ShaderLib as qh, UniformsUtils as yb, MirroredRepeatWrapping as Qg, MeshNormalMaterial as oS, AudioContext as rS, PMREMGenerator$1 as aS } from "./three-DrqIzZTH.js";
2
- import { createLoaders as pm, getRaycastMesh as _b, LODsManager as Io, NEEDLE_progressive as We, addDracoAndKTX2Loaders as lS, configureLoader as cS, setKTX2TranscoderLocation as hS, setDracoDecoderLocation as dS } from "./gltf-progressive-Do1XJNMG.js";
2
+ import { createLoaders as pm, getRaycastMesh as _b, LODsManager as Io, NEEDLE_progressive as We, addDracoAndKTX2Loaders as lS, configureLoader as cS, setKTX2TranscoderLocation as hS, setDracoDecoderLocation as dS } from "./gltf-progressive-DVx_cW0s.js";
3
3
  import { GroundedSkybox as da, Font as uS, TextGeometry as fS, FontLoader as pS, GLTFLoader as Ps, TransformControlsGizmo as bb, EXRLoader as Xh, RGBELoader as ip, Stats as mS, nodeFrame as gS, OrbitControls as vb, PositionalAudioHelper as yS, HorizontalBlurShader as _S, VerticalBlurShader as bS, GLTFExporter as wb, strToU8 as xb, zipSync as vS, XRControllerModelFactory as wS, XRHandMeshModel as xS, Line2 as SS, LineGeometry as CS, LineMaterial as PS, KTX2Loader as OS, TransformControls as kS, InteractiveGroup as MS, HTMLMesh as RS, VertexNormalsHelper as TS, OBJLoader as mm, FBXLoader as Sb, mergeVertices as ES } from "./three-examples-BIuXQPSf.js";
4
- import { fetchProfile as AS, MotionController as IS, $70d766613f57b014$export$2e2bcd8739ae039 as Yg, ByteBuffer as LS, v5 as Kg, md5 as Zg, SIZE_PREFIX_LENGTH as Cb, Builder as gm, createNoise4D as DS, Matrix4 as $u, BatchedParticleRenderer as jS, ParticleSystem as BS, RenderMode as as, ConstantColor as FS, Vector4 as zS, ConstantValue as US, TrailParticle as Jg, WorkerBase as NS, MeshBVH as $S } from "./vendor-CGONwIc0.js";
4
+ import { fetchProfile as AS, MotionController as IS, $70d766613f57b014$export$2e2bcd8739ae039 as Yg, ByteBuffer as LS, v5 as Kg, md5 as Zg, SIZE_PREFIX_LENGTH as Cb, Builder as gm, createNoise4D as DS, Matrix4 as $u, BatchedParticleRenderer as jS, ParticleSystem as BS, RenderMode as as, ConstantColor as FS, Vector4 as zS, ConstantValue as US, TrailParticle as Jg, WorkerBase as NS, MeshBVH as $S } from "./vendor-B_ytQUuR.js";
5
5
  import { __webpack_exports__default as Ce, __webpack_exports__Text as Pb, __webpack_exports__Block as Ob, __webpack_exports__update as WS, SimpleStateBehavior as VS, __webpack_exports__Inline as Wu, __webpack_exports__FontLibrary as ey, ThreeMeshUI as ty } from "./three-mesh-ui-D6Mz5Yl7.js";
6
6
  import { EffectAttribute as HS } from "./postprocessing-DddlM3CK.js";
7
7
  const Vu = /* @__PURE__ */ new Map();
@@ -1582,14 +1582,14 @@ function Wb(s, ...e) {
1582
1582
  }
1583
1583
  }
1584
1584
  const GC = w("nodevlogs");
1585
- function je(s, e = Ni.Log) {
1585
+ function Be(s, e = Ni.Log) {
1586
1586
  kn(e, s);
1587
1587
  }
1588
1588
  function me(s) {
1589
- je(s, Ni.Warn);
1589
+ Be(s, Ni.Warn);
1590
1590
  }
1591
1591
  function Nd(s) {
1592
- je(s, Ni.Error);
1592
+ Be(s, Ni.Error);
1593
1593
  }
1594
1594
  let cp, Yu;
1595
1595
  function L() {
@@ -1785,11 +1785,11 @@ po('if(!globalThis["NEEDLE_ENGINE_VERSION"]) globalThis["NEEDLE_ENGINE_VERSION"]
1785
1785
  po('if(!globalThis["NEEDLE_ENGINE_GENERATOR"]) globalThis["NEEDLE_ENGINE_GENERATOR"] = "unknown";');
1786
1786
  po('if(!globalThis["NEEDLE_PROJECT_BUILD_TIME"]) globalThis["NEEDLE_PROJECT_BUILD_TIME"] = "unknown";');
1787
1787
  po('if(!globalThis["NEEDLE_PUBLIC_KEY"]) globalThis["NEEDLE_PUBLIC_KEY"] = "unknown";');
1788
- po('globalThis["__NEEDLE_ENGINE_VERSION__"] = "4.8.2";');
1788
+ po('globalThis["__NEEDLE_ENGINE_VERSION__"] = "4.8.3";');
1789
1789
  po('globalThis["__NEEDLE_ENGINE_GENERATOR__"] = "undefined";');
1790
- po('globalThis["__NEEDLE_PROJECT_BUILD_TIME__"] = "Mon Aug 18 2025 09:21:15 GMT+0000 (Coordinated Universal Time)";');
1790
+ po('globalThis["__NEEDLE_PROJECT_BUILD_TIME__"] = "Mon Aug 18 2025 14:21:29 GMT+0000 (Coordinated Universal Time)";');
1791
1791
  po('globalThis["__NEEDLE_PUBLIC_KEY__"] = "' + NEEDLE_PUBLIC_KEY + '";');
1792
- const Ln = "4.8.2", wm = "undefined", Qb = "Mon Aug 18 2025 09:21:15 GMT+0000 (Coordinated Universal Time)";
1792
+ const Ln = "4.8.3", wm = "undefined", Qb = "Mon Aug 18 2025 14:21:29 GMT+0000 (Coordinated Universal Time)";
1793
1793
  Xb && console.log(`Engine version: ${Ln} (generator: ${wm})
1794
1794
  Project built at ${Qb}`);
1795
1795
  const vl = NEEDLE_PUBLIC_KEY, ro = "needle_isActiveInHierarchy", jr = "builtin_components", Oh = "needle_editor_guid";
@@ -1911,7 +1911,7 @@ function o1(s) {
1911
1911
  pa[e](s);
1912
1912
  }
1913
1913
  const tt = w("debuginput");
1914
- var Pm = /* @__PURE__ */ ((s) => (s.Mouse = "mouse", s.Touch = "touch", s.Controller = "controller", s.Hand = "hand", s))(Pm || {}), Le = /* @__PURE__ */ ((s) => (s.PointerDown = "pointerdown", s.PointerUp = "pointerup", s.PointerMove = "pointermove", s.KeyDown = "keydown", s.KeyUp = "keyup", s.KeyPressed = "keypress", s))(Le || {});
1914
+ var Pm = /* @__PURE__ */ ((s) => (s.Mouse = "mouse", s.Touch = "touch", s.Controller = "controller", s.Hand = "hand", s))(Pm || {}), De = /* @__PURE__ */ ((s) => (s.PointerDown = "pointerdown", s.PointerUp = "pointerup", s.PointerMove = "pointermove", s.KeyDown = "keydown", s.KeyUp = "keyup", s.KeyPressed = "keypress", s))(De || {});
1915
1915
  class Vs extends PointerEvent {
1916
1916
  /**
1917
1917
  * Spatial input data
@@ -2396,13 +2396,13 @@ class r1 {
2396
2396
  createInputEvent(e) {
2397
2397
  switch (e.type) {
2398
2398
  case "pointerdown":
2399
- tt && je("Create Pointer down"), this.onDownButton(e.deviceIndex, e.button), this.onDown(e);
2399
+ tt && Be("Create Pointer down"), this.onDownButton(e.deviceIndex, e.button), this.onDown(e);
2400
2400
  break;
2401
2401
  case "pointermove":
2402
- tt && je("Create Pointer move"), this.onMove(e);
2402
+ tt && Be("Create Pointer move"), this.onMove(e);
2403
2403
  break;
2404
2404
  case "pointerup":
2405
- tt && je("Create Pointer up"), this.onUp(e), this.onReleaseButton(e.deviceIndex, e.button);
2405
+ tt && Be("Create Pointer up"), this.onUp(e), this.onReleaseButton(e.deviceIndex, e.button);
2406
2406
  break;
2407
2407
  }
2408
2408
  }
@@ -2496,7 +2496,7 @@ class r1 {
2496
2496
  if (this.context.isInAR || this.canReceiveInput(e) === !1) return;
2497
2497
  e.target instanceof HTMLElement && e.target.setPointerCapture(e.pointerId);
2498
2498
  const t = this.getPointerId(e);
2499
- tt && je(`pointer down #${t}, identifier:${e.pointerId}`);
2499
+ tt && Be(`pointer down #${t}, identifier:${e.pointerId}`);
2500
2500
  const i = this.getAndUpdateSpatialObjectForScreenPosition(t, e.clientX, e.clientY), n = new Vs("pointerdown", e, { origin: this, mode: "screen", deviceIndex: 0, pointerId: t, button: e.button, clientX: e.clientX, clientY: e.clientY, pointerType: e.pointerType, buttonName: this.getButtonName(e), device: i, pressure: e.pressure });
2501
2501
  this.onDown(n);
2502
2502
  };
@@ -3178,16 +3178,16 @@ Pinch: ${this.getGesture("pinch")?.value.toFixed(3)}`), n += `
3178
3178
  if (!this.emitPointerDownEvent || this.inputSource !== e.inputSource) return;
3179
3179
  this.onUpdateFrame(e.frame), this._hasSelectEvent = !0;
3180
3180
  const t = this._layout?.selectComponentId, i = this._layout?.components[t]?.gamepadIndices?.button;
3181
- i !== void 0 && (this._selectButtonIndex = i), !Xc && (Yn && F.DrawDirection(this.rayWorldPosition, G(0, 0.01, 1).applyQuaternion(this.rayWorldQuaternion), 16711680, 10), this.emitPointerEvent(Le.PointerDown, this._selectButtonIndex || 0, "xr-standard-trigger", !0, e));
3181
+ i !== void 0 && (this._selectButtonIndex = i), !Xc && (Yn && F.DrawDirection(this.rayWorldPosition, G(0, 0.01, 1).applyQuaternion(this.rayWorldQuaternion), 16711680, 10), this.emitPointerEvent(De.PointerDown, this._selectButtonIndex || 0, "xr-standard-trigger", !0, e));
3182
3182
  };
3183
3183
  onSelectEnd = (e) => {
3184
- this.emitPointerUpEvent && (Xc || this.inputSource === e.inputSource && this.emitPointerEvent(Le.PointerUp, this._selectButtonIndex || 0, "xr-standard-trigger", !0, e));
3184
+ this.emitPointerUpEvent && (Xc || this.inputSource === e.inputSource && this.emitPointerEvent(De.PointerUp, this._selectButtonIndex || 0, "xr-standard-trigger", !0, e));
3185
3185
  };
3186
3186
  onSequeezeStart = (e) => {
3187
- this.emitPointerDownEvent && this.inputSource === e.inputSource && (this._squeezeButtonIndex = this._layout?.components["xr-standard-squeeze"]?.gamepadIndices?.button, this._squeezeButtonIndex !== void 0 && (Yn && F.DrawDirection(this.rayWorldPosition, G(0, 0.01, 1).applyQuaternion(this.rayWorldQuaternion), 255, 10), this.emitPointerEvent(Le.PointerDown, this._squeezeButtonIndex || 0, "xr-standard-squeeze", !0, e)));
3187
+ this.emitPointerDownEvent && this.inputSource === e.inputSource && (this._squeezeButtonIndex = this._layout?.components["xr-standard-squeeze"]?.gamepadIndices?.button, this._squeezeButtonIndex !== void 0 && (Yn && F.DrawDirection(this.rayWorldPosition, G(0, 0.01, 1).applyQuaternion(this.rayWorldQuaternion), 255, 10), this.emitPointerEvent(De.PointerDown, this._squeezeButtonIndex || 0, "xr-standard-squeeze", !0, e)));
3188
3188
  };
3189
3189
  onSequeezeEnd = (e) => {
3190
- this.emitPointerUpEvent && this.inputSource === e.inputSource && this._squeezeButtonIndex !== void 0 && this.emitPointerEvent(Le.PointerUp, this._squeezeButtonIndex || 0, "xr-standard-squeeze", !0, e);
3190
+ this.emitPointerUpEvent && this.inputSource === e.inputSource && this._squeezeButtonIndex !== void 0 && this.emitPointerEvent(De.PointerUp, this._squeezeButtonIndex || 0, "xr-standard-squeeze", !0, e);
3191
3191
  };
3192
3192
  /** Index = button index */
3193
3193
  states = {};
@@ -3252,7 +3252,7 @@ Pinch: ${this.getGesture("pinch")?.value.toFixed(3)}`), n += `
3252
3252
  pointerInit;
3253
3253
  emitPointerEvent(e, t, i, n, o = null, r) {
3254
3254
  if (!this.emitEvents) {
3255
- Yn && e !== Le.PointerMove && console.warn("Pointer events are disabled for this controller", this.index, e, t);
3255
+ Yn && e !== De.PointerMove && console.warn("Pointer events are disabled for this controller", this.index, e, t);
3256
3256
  return;
3257
3257
  }
3258
3258
  if (this.xr.mode === "immersive-vr" || this.xr.isPassThrough) {
@@ -3474,7 +3474,7 @@ function m1(s, e) {
3474
3474
  }, s ? new Yg(s, e) : new Yg(e);
3475
3475
  }
3476
3476
  async function Py() {
3477
- const s = await import("./vendor-CGONwIc0.js").then((e) => e.bundler);
3477
+ const s = await import("./vendor-B_ytQUuR.js").then((e) => e.bundler);
3478
3478
  return console.log(s), s.default === void 0 ? s : s.default;
3479
3479
  }
3480
3480
  class g1 {
@@ -3887,7 +3887,7 @@ class w1 {
3887
3887
  }
3888
3888
  console.debug(`⊡ Connecting to networking backend on
3889
3889
  ` + Ti);
3890
- const o = await import("./vendor-CGONwIc0.js").then((c) => c.index), r = o.default?.WebsocketBuilder ?? o.WebsocketBuilder, a = o.default?.ExponentialBackoff ?? o.ExponentialBackoff, l = new r(Ti).withMaxRetries(10).withBackoff(new a(2e3, 4)).onOpen(() => {
3890
+ const o = await import("./vendor-B_ytQUuR.js").then((c) => c.index), r = o.default?.WebsocketBuilder ?? o.WebsocketBuilder, a = o.default?.ExponentialBackoff ?? o.ExponentialBackoff, l = new r(Ti).withMaxRetries(10).withBackoff(new a(2e3, 4)).onOpen(() => {
3891
3891
  this._connectingToWebsocketPromise = null, this._ws = l, this.connected = !0, L() || ai ? console.log(`⊞ Connected to networking backend
3892
3892
  ` + Ti) : console.debug("⊞ Connected to networking backend", Ti), n(!0), this.onSendQueued(xn.OnConnection);
3893
3893
  }).onClose((c) => {
@@ -4752,7 +4752,7 @@ class K {
4752
4752
  a.onBeforeXR && a.onBeforeXR(e, t);
4753
4753
  for (const a of this._sessionRequestStartListeners)
4754
4754
  a({ mode: e, init: t });
4755
- He && je("Requesting " + e + " session (" + Date.now() + ")"), this._currentSessionRequest = navigator.xr?.requestSession(e, t), this._currentSessionRequestMode = e;
4755
+ He && Be("Requesting " + e + " session (" + Date.now() + ")"), this._currentSessionRequest = navigator.xr?.requestSession(e, t), this._currentSessionRequestMode = e;
4756
4756
  const o = await this._currentSessionRequest?.catch((a) => {
4757
4757
  console.error(a, "Code: " + a.code), a.code === 9 && me("Make sure your device has the required permissions (e.g. camera access)"), console.log("If the specified XR configuration is not supported (e.g. entering AR doesnt work) - make sure you access the website on a secure connection (HTTPS) and your device has the required permissions (e.g. camera access)"), location.protocol === "http:" && me("XR requires a secure connection (HTTPS)");
4758
4758
  });
@@ -6008,7 +6008,7 @@ var ed;
6008
6008
  s.runMeshBVHRaycast = e;
6009
6009
  let t = !1, i = null, n = null, o = null, r = null;
6010
6010
  function a() {
6011
- t || (t = !0, import("./vendor-CGONwIc0.js").then((v) => v.index$1).then((v) => {
6011
+ t || (t = !0, import("./vendor-B_ytQUuR.js").then((v) => v.index$1).then((v) => {
6012
6012
  i = v.acceleratedRaycast, n = v.MeshBVH, o = v.StaticGeometryGenerator, r = v.computeBoundsTree;
6013
6013
  }).catch((v) => {
6014
6014
  (Wt || L()) && console.error("Failed to load BVH library...", v.message);
@@ -9238,13 +9238,15 @@ class Rn {
9238
9238
  L() && window.location.href.includes("://localhost") && me("To access your website from another device in the same local network you have to use the IP address instead of localhost. The IP address is logged in your development server console when you start the server."), o();
9239
9239
  });
9240
9240
  async function o() {
9241
- await a(), document.body.appendChild(i);
9242
- const l = n.getBoundingClientRect(), c = t.getBoundingClientRect();
9243
- i.style.left = c.left + c.width * 0.5 - l.width * 0.5 + "px";
9244
- const h = c.top < l.height, d = "1.3rem";
9245
- h ? i.style.top = `calc(${c.bottom}px + ${i.style.padding} + 0.0rem)` : i.style.top = `calc(${c.top - l.height}px - ${i.style.padding} - ${d})`, i.style.opacity = "0", i.style.pointerEvents = "all", i.style.transition = "opacity 0.2s ease-in-out", setTimeout(() => {
9241
+ await a();
9242
+ const c = document.body.querySelector("needle-engine") || document.body;
9243
+ c.appendChild(i);
9244
+ const h = n.getBoundingClientRect(), d = t.getBoundingClientRect();
9245
+ i.style.left = d.left + d.width * 0.5 - h.width * 0.5 + "px";
9246
+ const f = d.top < h.height, p = "1.3rem";
9247
+ f ? i.style.top = `calc(${d.bottom}px + ${i.style.padding} + 0.0rem)` : i.style.top = `calc(${d.top - h.height}px - ${i.style.padding} - ${p})`, i.style.opacity = "0", i.style.pointerEvents = "all", i.style.transition = "opacity 0.2s ease-in-out", setTimeout(() => {
9246
9248
  i.style.opacity = "1", window.addEventListener("click", r, { once: !0 });
9247
- }), window.addEventListener("resize", r), window.addEventListener("scroll", r), document.fullscreenElement ? document.fullscreenElement.appendChild(i) : document.body.appendChild(i);
9249
+ }), window.addEventListener("resize", r), window.addEventListener("scroll", r), document.fullscreenElement ? document.fullscreenElement.appendChild(i) : c.appendChild(i);
9248
9250
  }
9249
9251
  function r() {
9250
9252
  i.style.pointerEvents = "none", i.style.transition = "opacity 0.2s", i.style.opacity = "0", setTimeout(() => i.parentNode?.removeChild(i), 500), window.removeEventListener("click", r), window.removeEventListener("resize", r), window.removeEventListener("scroll", r);
@@ -9774,6 +9776,16 @@ class Xd extends HTMLElement {
9774
9776
  const e = document.createElement("template");
9775
9777
  e.innerHTML = `<style>
9776
9778
 
9779
+ /** Styling attributes that ensure the nested menu z-index does not cause it to overlay elements outside of <needle-engine> */
9780
+ :host {
9781
+ position: absolute;
9782
+ width: 100%;
9783
+ height: 100%;
9784
+ z-index: 0;
9785
+ top: 0;
9786
+ pointer-events: none;
9787
+ }
9788
+
9777
9789
  #root {
9778
9790
  position: absolute;
9779
9791
  width: auto;
@@ -10983,13 +10995,13 @@ Start a coroutine from a component by calling "this.startCoroutine(myCoroutine()
10983
10995
  get isVisibleToUser() {
10984
10996
  if (this.isInXR) return !0;
10985
10997
  if (!this._isVisible) return !1;
10986
- if (this.time.frame === this._lastStyleComputedFrame) return this._lastStyleComputedResult;
10987
- this._lastStyleComputedFrame = this.time.frame;
10998
+ if (!this._needsVisibleUpdate && this._lastStyleComputedResult !== void 0) return this._lastStyleComputedResult;
10999
+ this._needsVisibleUpdate = !1;
10988
11000
  const e = getComputedStyle(this.domElement);
10989
11001
  return this._lastStyleComputedResult = e.visibility !== "hidden" && e.display !== "none" && e.opacity !== "0", this._lastStyleComputedResult;
10990
11002
  }
10991
- _lastStyleComputedFrame = -1;
10992
- _lastStyleComputedResult = !0;
11003
+ _needsVisibleUpdate = !0;
11004
+ _lastStyleComputedResult = void 0;
10993
11005
  _createId = 0;
10994
11006
  async internalOnCreate(e) {
10995
11007
  const t = ++this._createId;
@@ -11141,7 +11153,7 @@ Possible solutions:
11141
11153
  try {
11142
11154
  this.internalStep(e, t), this._renderlooperrors = 0;
11143
11155
  } catch (i) {
11144
- this._renderlooperrors += 1, (L() || Xe) && (i instanceof Error || i instanceof TypeError) && je("Caught unhandled exception during render-loop - see console for details.", Ni.Error), console.error("Frame #" + this.time.frame + `
11156
+ this._renderlooperrors += 1, (L() || Xe) && (i instanceof Error || i instanceof TypeError) && Be("Caught unhandled exception during render-loop - see console for details.", Ni.Error), console.error("Frame #" + this.time.frame + `
11145
11157
  `, i), this._renderlooperrors >= 3 && (console.warn("Stopping render loop due to error"), this.renderer.setAnimationLoop(null)), this.domElement.dispatchEvent(new CustomEvent("error", { detail: i }));
11146
11158
  }
11147
11159
  else
@@ -11162,7 +11174,7 @@ Possible solutions:
11162
11174
  this.internalOnBeforeRender(e, t) !== !1 && (this.internalOnRender(), this.internalOnAfterRender());
11163
11175
  }
11164
11176
  internalOnBeforeRender(e, t) {
11165
- this.renderer.info.autoReset = !!t, this.renderer.info.autoReset === !1 && this.renderer.info.reset();
11177
+ this.renderer.info.autoReset = !!t, this.renderer.info.autoReset === !1 && this.renderer.info.reset(), this._needsVisibleUpdate = !0;
11166
11178
  const i = t !== null && this._xrFrame === null;
11167
11179
  if (this._xrFrame = t, i && this.domElement.dispatchEvent(new CustomEvent("xr-session-started", { detail: { context: this, session: this.xrSession, frame: t } })), this._currentFrameEvent = -1, this.isManagedExternally === !1 && this.isInXR === !1 && this.targetFrameRate !== void 0) {
11168
11180
  this._lastTimestamp === 0 && (this._lastTimestamp = e), this._accumulatedTime += (e - this._lastTimestamp) / 1e3, this._lastTimestamp = e;
@@ -11194,28 +11206,26 @@ Possible solutions:
11194
11206
  const o = this.scripts_earlyUpdate[n];
11195
11207
  o.activeAndEnabled && o.earlyUpdate !== void 0 && (N.Current = this, o.earlyUpdate());
11196
11208
  }
11197
- if (this.executeCoroutines(
11209
+ this.executeCoroutines(
11198
11210
  0
11199
11211
  /* EarlyUpdate */
11200
11212
  ), yn(
11201
11213
  this,
11202
11214
  0
11203
11215
  /* EarlyUpdate */
11204
- ), this.onHandlePaused()) return !1;
11205
- this._currentFrameEvent = 1;
11216
+ ), this._currentFrameEvent = 1;
11206
11217
  for (let n = 0; n < this.scripts_update.length; n++) {
11207
11218
  const o = this.scripts_update[n];
11208
11219
  o.activeAndEnabled && o.update !== void 0 && (N.Current = this, o.update());
11209
11220
  }
11210
- if (this.executeCoroutines(
11221
+ this.executeCoroutines(
11211
11222
  1
11212
11223
  /* Update */
11213
11224
  ), yn(
11214
11225
  this,
11215
11226
  1
11216
11227
  /* Update */
11217
- ), this.onHandlePaused()) return !1;
11218
- this._currentFrameEvent = 2;
11228
+ ), this._currentFrameEvent = 2;
11219
11229
  for (let n = 0; n < this.scripts_lateUpdate.length; n++) {
11220
11230
  const o = this.scripts_lateUpdate[n];
11221
11231
  o.activeAndEnabled && o.lateUpdate !== void 0 && (N.Current = this, o.lateUpdate());
@@ -11227,8 +11237,7 @@ Possible solutions:
11227
11237
  this,
11228
11238
  2
11229
11239
  /* LateUpdate */
11230
- ), this.onHandlePaused() || (this.physicsSteps === void 0 && (this.physicsSteps = 1), this.physics.engine && this.physicsSteps > 0 && this.internalUpdatePhysics(this.physicsSteps), this.onHandlePaused())) return !1;
11231
- if (this.isVisibleToUser || this.runInBackground) {
11240
+ ), this.physicsSteps === void 0 && (this.physicsSteps = 1), this.physics.engine && this.physicsSteps > 0 && this.internalUpdatePhysics(this.physicsSteps), this.isVisibleToUser || this.runInBackground) {
11232
11241
  this._currentFrameEvent = 3;
11233
11242
  for (let n = 0; n < this.scripts_onBeforeRender.length; n++) {
11234
11243
  const o = this.scripts_onBeforeRender[n];
@@ -11290,14 +11299,12 @@ Target Framerate: ` + this.targetFrameRate)), this._dispatchReadyAfterFrame && (
11290
11299
  renderNow(e) {
11291
11300
  if (!e && (e = this.mainCamera, !e))
11292
11301
  return !1;
11293
- if (this.handleRendererContextLost(), this.time.frame % 10 === 0) {
11294
- if (this._isRendering = !0, this.renderRequiredTextures(), this.renderer.toneMapping !== Vh && L0(), this.composer && !this.isInXR) {
11295
- e && "setMainCamera" in this.composer && this.composer.passes[0]?.mainCamera != e && this.composer.setMainCamera(e);
11296
- const t = this.renderer.getClearColor(this._tempClearColor), i = this.renderer.getClearAlpha();
11297
- this._tempClearColor2.copy(t), this.renderer.setClearColor(t.convertSRGBToLinear(), this.renderer.getClearAlpha()), this.composer.render(this.time.deltaTime), this.renderer.setClearColor(this._tempClearColor2, i);
11298
- } else e && (this.isInXR && q.isMacOS() && this.renderer.clearDepth(), this.renderer.render(this.scene, e));
11299
- return this._isRendering = !1, !0;
11300
- }
11302
+ if (this.handleRendererContextLost(), this._isRendering = !0, this.renderRequiredTextures(), this.renderer.toneMapping !== Vh && L0(), this.composer && !this.isInXR) {
11303
+ e && "setMainCamera" in this.composer && this.composer.passes[0]?.mainCamera != e && this.composer.setMainCamera(e);
11304
+ const t = this.renderer.getClearColor(this._tempClearColor), i = this.renderer.getClearAlpha();
11305
+ this._tempClearColor2.copy(t), this.renderer.setClearColor(t.convertSRGBToLinear(), this.renderer.getClearAlpha()), this.composer.render(this.time.deltaTime), this.renderer.setClearColor(this._tempClearColor2, i);
11306
+ } else e && (this.isInXR && q.isMacOS() && this.renderer.clearDepth(), this.renderer.render(this.scene, e));
11307
+ return this._isRendering = !1, !0;
11301
11308
  }
11302
11309
  _contextRestoreTries = 0;
11303
11310
  handleRendererContextLost() {
@@ -14261,7 +14268,7 @@ const Lt = function(s, e) {
14261
14268
  function UO(s, e, t, i, n) {
14262
14269
  if (!n && !i && !s.onValidate) return;
14263
14270
  if (t !== void 0) {
14264
- console.error("Invalid usage of validate decorator. Only fields can be validated.", s, e, t), je("Invalid usage of validate decorator. Only fields can be validated. Property: " + e, Ni.Error);
14271
+ console.error("Invalid usage of validate decorator. Only fields can be validated.", s, e, t), Be("Invalid usage of validate decorator. Only fields can be validated. Property: " + e, Ni.Error);
14265
14272
  return;
14266
14273
  }
14267
14274
  let o = "";
@@ -15487,10 +15494,10 @@ class ei extends T {
15487
15494
  this.context.scene.getComponent(Sa) || this.context.scene.addComponent(Gi);
15488
15495
  }
15489
15496
  onEnable() {
15490
- this.context.input.addEventListener(Le.PointerDown, this.onPointerEvent), this.context.input.addEventListener(Le.PointerUp, this.onPointerEvent), this.context.input.addEventListener(Le.PointerMove, this.onPointerEvent);
15497
+ this.context.input.addEventListener(De.PointerDown, this.onPointerEvent), this.context.input.addEventListener(De.PointerUp, this.onPointerEvent), this.context.input.addEventListener(De.PointerMove, this.onPointerEvent);
15491
15498
  }
15492
15499
  onDisable() {
15493
- this.context.input.removeEventListener(Le.PointerDown, this.onPointerEvent), this.context.input.removeEventListener(Le.PointerUp, this.onPointerEvent), this.context.input.removeEventListener(Le.PointerMove, this.onPointerEvent);
15500
+ this.context.input.removeEventListener(De.PointerDown, this.onPointerEvent), this.context.input.removeEventListener(De.PointerUp, this.onPointerEvent), this.context.input.removeEventListener(De.PointerMove, this.onPointerEvent);
15494
15501
  }
15495
15502
  /**
15496
15503
  * all pointers that have pressed something
@@ -15515,7 +15522,7 @@ class ei extends T {
15515
15522
  onPointerEvent = (e) => {
15516
15523
  if (e === void 0 || e.propagationStopped || e.defaultPrevented || e.used) return;
15517
15524
  const t = new Zd(this.context.input, e);
15518
- this._currentPointerEventName = e.type, t.inputSource = this.context.input, t.isClick = e.isClick, t.isDoubleClick = e.isDoubleClick, t.isDown = e.type == Le.PointerDown, t.isUp = e.type == Le.PointerUp, t.isPressed = this.context.input.getPointerPressed(e.pointerId);
15525
+ this._currentPointerEventName = e.type, t.inputSource = this.context.input, t.isClick = e.isClick, t.isDoubleClick = e.isDoubleClick, t.isDown = e.type == De.PointerDown, t.isUp = e.type == De.PointerUp, t.isPressed = this.context.input.getPointerPressed(e.pointerId);
15519
15526
  const i = new pr();
15520
15527
  e.hasRay ? i.ray = e.ray : i.screenPoint = this.context.input.getPointerPositionRC(e.pointerId), i.allowSlowRaycastFallback = e.isClick || e.isDoubleClick;
15521
15528
  const n = this.performRaycast(i);
@@ -15528,7 +15535,7 @@ class ei extends T {
15528
15535
  hits: n
15529
15536
  });
15530
15537
  }
15531
- Gs && t.isClick && je("EventSystem: " + t.pointerId + " - " + this.context.time.frame + " - Up:" + t.isUp + ", Down:" + t.isDown);
15538
+ Gs && t.isClick && Be("EventSystem: " + t.pointerId + " - " + this.context.time.frame + " - Up:" + t.isUp + ", Down:" + t.isDown);
15532
15539
  const o = {
15533
15540
  sender: this,
15534
15541
  args: t,
@@ -15747,7 +15754,7 @@ class ei extends T {
15747
15754
  }
15748
15755
  /** invoke the pointerMove event on all captured handlers */
15749
15756
  invokePointerCapture(e) {
15750
- if (e.event.type === Le.PointerMove) {
15757
+ if (e.event.type === De.PointerMove) {
15751
15758
  const t = e.pointerId, i = this._capturedPointer[t];
15752
15759
  if (i) {
15753
15760
  Gs && console.log("Captured", t, i);
@@ -16100,6 +16107,9 @@ class ge extends T {
16100
16107
  afterHandleInput(e) {
16101
16108
  e.detail.args.pointerId === 0 && (e.detail.args.isDown ? this._controls && this._eventSystem && (this._shouldDisable = this._eventSystem.hasActiveUI) : (!e.detail.args.isPressed || e.detail.args.isUp) && (this._shouldDisable = !1));
16102
16109
  }
16110
+ onPausedChanged(e) {
16111
+ this._controls && e && (this._controls.enabled = !1);
16112
+ }
16103
16113
  /** @internal */
16104
16114
  onBeforeRender() {
16105
16115
  if (!this._controls) return;
@@ -16718,7 +16728,7 @@ const qs = w("debugcam"), u_ = w("debugscreenpointtoray"), Dt = class Cl extends
16718
16728
  if (typeof t._transparent == "boolean")
16719
16729
  return t._transparent;
16720
16730
  const i = t.environmentBlendMode;
16721
- qs && je("Environment blend mode: " + i + " on " + navigator.userAgent);
16731
+ qs && Be("Environment blend mode: " + i + " on " + navigator.userAgent);
16722
16732
  let n = i === "additive" || i === "alpha-blend";
16723
16733
  return e.isInAR && i === "opaque" && (navigator.userAgent?.includes("OculusBrowser") || navigator.userAgent?.includes("Mozilla") && navigator.userAgent?.includes("Mobile WebXRViewer/v2")) && (n = !0), t._transparent = n, n;
16724
16734
  }
@@ -17168,29 +17178,29 @@ fn([
17168
17178
  ], Ki.prototype, "rollOffMode", 2);
17169
17179
  let hn = Ki;
17170
17180
  const uk = w("debugavatar");
17171
- class De extends T {
17181
+ class je extends T {
17172
17182
  static getAvatar(e) {
17173
- return e >= 0 && e < De.instances.length ? De.instances[e] : null;
17183
+ return e >= 0 && e < je.instances.length ? je.instances[e] : null;
17174
17184
  }
17175
17185
  static instances = [];
17176
17186
  static onAvatarMarkerCreated(e) {
17177
- return De._onNewAvatarMarkerAdded.push(e), e;
17187
+ return je._onNewAvatarMarkerAdded.push(e), e;
17178
17188
  }
17179
17189
  static onAvatarMarkerDestroyed(e) {
17180
- return De._onAvatarMarkerDestroyed.push(e), e;
17190
+ return je._onAvatarMarkerDestroyed.push(e), e;
17181
17191
  }
17182
17192
  static _onNewAvatarMarkerAdded = [];
17183
17193
  static _onAvatarMarkerDestroyed = [];
17184
17194
  connectionId;
17185
17195
  avatar;
17186
17196
  awake() {
17187
- De.instances.push(this), uk && console.log(this);
17188
- for (const e of De._onNewAvatarMarkerAdded)
17197
+ je.instances.push(this), uk && console.log(this);
17198
+ for (const e of je._onNewAvatarMarkerAdded)
17189
17199
  e({ avatarMarker: this, gameObject: this.gameObject });
17190
17200
  }
17191
17201
  onDestroy() {
17192
- De.instances.splice(De.instances.indexOf(this), 1);
17193
- for (const e of De._onAvatarMarkerDestroyed)
17202
+ je.instances.splice(je.instances.indexOf(this), 1);
17203
+ for (const e of je._onAvatarMarkerDestroyed)
17194
17204
  e({ avatarMarker: this, gameObject: this.gameObject });
17195
17205
  }
17196
17206
  isLocalAvatar() {
@@ -17240,8 +17250,8 @@ class ud extends T {
17240
17250
  _lookDuration = 0;
17241
17251
  _lastPoiChangedTime = 0;
17242
17252
  awake() {
17243
- if (this.avatar = x.getComponentInParent(this.gameObject, De), this.avatar) {
17244
- const e = x.getComponentInParent(this.gameObject, De);
17253
+ if (this.avatar = x.getComponentInParent(this.gameObject, je), this.avatar) {
17254
+ const e = x.getComponentInParent(this.gameObject, je);
17245
17255
  this._model = new o0(this.context.connection, this.guid), e?.isLocalAvatar && this._model.requestOwnership();
17246
17256
  }
17247
17257
  this.context.connection.beginListen("avatar-look-target-changed", (e) => {
@@ -17334,7 +17344,7 @@ class _k {
17334
17344
  this.object = e, this.collider = t;
17335
17345
  }
17336
17346
  }
17337
- const Ne = w("debugnetworkingstreams");
17347
+ const Le = w("debugnetworkingstreams");
17338
17348
  var ps = /* @__PURE__ */ ((s) => (s.Connected = "peer-user-connected", s.StreamReceived = "receive-stream", s.StreamEnded = "call-ended", s.Disconnected = "peer-user-disconnected", s.UserJoined = "user-joined", s))(ps || {});
17339
17349
  class X0 {
17340
17350
  type = "call-ended";
@@ -17388,7 +17398,7 @@ class xk extends dm {
17388
17398
  }
17389
17399
  constructor(e, t, i, n = null) {
17390
17400
  super(), this.peerId = t.peer, this.userId = e, this.call = t, this.direction = i, this._stream = n, t.on("stream", (o) => {
17391
- if (Ne && console.log("Receive stream", `
17401
+ if (Le && console.log("Receive stream", `
17392
17402
  Audio:`, o.getAudioTracks(), `
17393
17403
  Video:`, o.getVideoTracks()), this._stream = o, i === "incoming") {
17394
17404
  const r = new bk(e, o, this);
@@ -17422,7 +17432,7 @@ class to extends dm {
17422
17432
  }
17423
17433
  makeCall(e, t) {
17424
17434
  if (!t?.id) {
17425
- Ne ? console.warn("Can not make a call: mediastream has no id or is undefined") : console.debug("Can not make a call: mediastream has no id or is undefined");
17435
+ Le ? console.warn("Can not make a call: mediastream has no id or is undefined") : console.debug("Can not make a call: mediastream has no id or is undefined");
17426
17436
  return;
17427
17437
  }
17428
17438
  const i = {
@@ -17434,10 +17444,10 @@ class to extends dm {
17434
17444
  }, n = this._peer?.call(e, t, i);
17435
17445
  if (n) {
17436
17446
  const o = this.registerCall(n, "outgoing", t);
17437
- return Ne && console.warn(`📞 CALL ${e}`, `
17447
+ return Le && console.warn(`📞 CALL ${e}`, `
17438
17448
  Outgoing:`, this._outgoingCalls, `
17439
17449
  Incoming:`, this._incomingCalls), o;
17440
- } else Ne && console.error("Failed to make call", e, t, this._peer);
17450
+ } else Le && console.error("Failed to make call", e, t, this._peer);
17441
17451
  }
17442
17452
  closeAll() {
17443
17453
  for (const e of this._incomingCalls)
@@ -17454,7 +17464,7 @@ Incoming:`, this._incomingCalls), o;
17454
17464
  for (let e = this._outgoingCalls.length - 1; e >= 0; e--) {
17455
17465
  const t = this._outgoingCalls[e];
17456
17466
  let i = !1;
17457
- t.isClosed && !t.isOpening && (t.stream?.active ? Ne && console.warn("!!! Stream is still active, don't remove call", t.userId, "Your id: " + this.context.connection.connectionId) : (Ne && console.warn("!!! Remove closed call", t.userId), i = !0)), this.context.connection.userIsInRoom(t.userId) === !1 && (Ne && console.warn("!!! User is not in room anymore, remove call", t.userId), i = !0), i && (t.close(), this._outgoingCalls.splice(e, 1));
17467
+ t.isClosed && !t.isOpening && (t.stream?.active ? Le && console.warn("!!! Stream is still active, don't remove call", t.userId, "Your id: " + this.context.connection.connectionId) : (Le && console.warn("!!! Remove closed call", t.userId), i = !0)), this.context.connection.userIsInRoom(t.userId) === !1 && (Le && console.warn("!!! User is not in room anymore, remove call", t.userId), i = !0), i && (t.close(), this._outgoingCalls.splice(e, 1));
17458
17468
  }
17459
17469
  };
17460
17470
  get peer() {
@@ -17469,7 +17479,13 @@ Incoming:`, this._incomingCalls), o;
17469
17479
  _outgoingCalls = [];
17470
17480
  _peer;
17471
17481
  constructor(e, t) {
17472
- super(), this.context = e, this.id = t, this.setupPeer(), navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;
17482
+ super(), this.context = e, this.id = t, this.setupPeer();
17483
+ const i = Object.getOwnPropertyDescriptor(navigator, "getUserMedia")?.writable;
17484
+ try {
17485
+ i ? navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia : Le && console.warn("[PeerJs] getUserMedia is not writable");
17486
+ } catch (n) {
17487
+ Le && console.error("[PeerJs] Error setting getUserMedia", n);
17488
+ }
17473
17489
  }
17474
17490
  _enabled = !1;
17475
17491
  _enabledPeer = !1;
@@ -17509,7 +17525,7 @@ Incoming:`, this._incomingCalls), o;
17509
17525
  * @param id ID of the peer
17510
17526
  */
17511
17527
  onPeerConnect = (e) => {
17512
- if (Ne && console.log("PEER opened as", e), e === null) {
17528
+ if (Le && console.log("PEER opened as", e), e === null) {
17513
17529
  console.error("Peer connection failed", e);
17514
17530
  return;
17515
17531
  }
@@ -17517,17 +17533,17 @@ Incoming:`, this._incomingCalls), o;
17517
17533
  };
17518
17534
  /** Emitted when the peer is destroyed and can no longer accept or create any new connections. At this time, the peer's connections will all be closed. */
17519
17535
  onPeerClose = () => {
17520
- Ne && console.log("PEER closed"), this.updateCalls();
17536
+ Le && console.log("PEER closed"), this.updateCalls();
17521
17537
  };
17522
17538
  /** Emitted when the peer is disconnected from the signalling server, either manually or because the connection to the signalling server was lost. */
17523
17539
  onPeerDisconnected = () => {
17524
- Ne && console.log("PEER disconnected"), this.updateCalls();
17540
+ Le && console.log("PEER disconnected"), this.updateCalls();
17525
17541
  };
17526
17542
  /**
17527
17543
  * Errors on the peer are almost always fatal and will destroy the peer. Errors from the underlying socket and PeerConnections are forwarded here.
17528
17544
  */
17529
17545
  onPeerError = (e) => {
17530
- Ne && console.error("PEER error", e);
17546
+ Le && console.error("PEER error", e);
17531
17547
  };
17532
17548
  onPeerReceivingCall = (e) => {
17533
17549
  e.answer(void 0, {
@@ -17538,12 +17554,12 @@ Incoming:`, this._incomingCalls), o;
17538
17554
  const n = e.metadata;
17539
17555
  (!n || !n.userId) && console.error("Missing call metadata", e);
17540
17556
  const o = n.userId;
17541
- t === "incoming" && Ne ? console.warn("← Receive call from", e.metadata, e.connectionId) : Ne && console.warn("→ Make call to", e.metadata);
17557
+ t === "incoming" && Le ? console.warn("← Receive call from", e.metadata, e.connectionId) : Le && console.warn("→ Make call to", e.metadata);
17542
17558
  const r = t === "incoming" ? this._incomingCalls : this._outgoingCalls, a = new xk(o, e, t, i);
17543
17559
  return r.push(a), e.on("error", (l) => {
17544
17560
  console.error("Call error", l);
17545
17561
  }), e.on("close", () => {
17546
- Ne && console.log("Call ended", e.metadata);
17562
+ Le && console.log("Call ended", e.metadata);
17547
17563
  const l = r.indexOf(a);
17548
17564
  l !== -1 && r.splice(l, 1), a.close(), this.dispatchEvent(new X0(o, t));
17549
17565
  }), a.addEventListener("call-ended", (l) => {
@@ -17551,11 +17567,11 @@ Incoming:`, this._incomingCalls), o;
17551
17567
  }), t === "incoming" && (a.addEventListener("receive-stream", (l) => {
17552
17568
  this.dispatchEvent(l);
17553
17569
  }), e.on("stream", () => {
17554
- Ne && console.log("Received stream for call", e.metadata);
17570
+ Le && console.log("Received stream for call", e.metadata);
17555
17571
  let l = 0;
17556
17572
  const c = setInterval(() => {
17557
17573
  const h = l === 0;
17558
- !a.isOpen && h && (Ne && console.warn("Close call because stream is not active", e.metadata), l += 1, clearInterval(c), a.close());
17574
+ !a.isOpen && h && (Le && console.warn("Close call because stream is not active", e.metadata), l += 1, clearInterval(c), a.close());
17559
17575
  }, 2e3);
17560
17576
  })), a;
17561
17577
  }
@@ -17588,7 +17604,7 @@ class Jd extends dm {
17588
17604
  if (!(e instanceof N)) throw new Error("Failed to create NetworkedStreams because context is not an instance of Context");
17589
17605
  } else throw new Error("Failed to create NetworkedStreams because context is undefined");
17590
17606
  if (!t) throw new Error("Failed to create NetworkedStreams because peer is undefined");
17591
- this.context = e, this.peer = t, Ne && (this.debug = !0);
17607
+ this.context = e, this.peer = t, Le && (this.debug = !0);
17592
17608
  }
17593
17609
  startSendingStream(e) {
17594
17610
  this._sendingStreams.has(e) ? console.warn("Received start sending stream with stream that is already being sent") : (this._sendingStreams.set(e, []), this.updateSendingCalls());
@@ -17650,7 +17666,7 @@ class Jd extends dm {
17650
17666
  const t = this._sendingStreams.keys().next().value;
17651
17667
  this.peer.makeCall(e.peerId, t);
17652
17668
  } else
17653
- Ne && console.log("Unknown user connected", e.guid, e.peerId);
17669
+ Le && console.log("Unknown user connected", e.guid, e.peerId);
17654
17670
  };
17655
17671
  onUserLeft = (e) => {
17656
17672
  this.debug && console.log("User left room: " + e.userId), this.stopCallsToUsersThatAreNotInTheRoomAnymore();
@@ -17663,7 +17679,7 @@ class Jd extends dm {
17663
17679
  if (n === e) continue;
17664
17680
  const o = this.peer.getPeerIdFromUserId(n);
17665
17681
  if (i.find((a) => a.peerId === o && a.direction === "outgoing" && !a.isClosed && a.stream?.active))
17666
- Ne && console.debug("Already have a call with user " + n + " / peer " + o);
17682
+ Le && console.debug("Already have a call with user " + n + " / peer " + o);
17667
17683
  else {
17668
17684
  const a = this.peer.makeCall(o, t);
17669
17685
  a && i.push(a);
@@ -17694,7 +17710,7 @@ class Jd extends dm {
17694
17710
  if (t)
17695
17711
  for (let i = t.length - 1; i >= 0; i--) {
17696
17712
  const n = t[i];
17697
- this.context.connection.userIsInRoom(n.userId) ? Ne && (this.context.connection.connectionId === n.userId ? console.warn(`You are still in the room [${i}] ${n.userId}`) : console.log(`User is still in room [${i}] ${n.userId}`)) : (Ne && console.log(`Remove call ${[i]} to user that is not in room anymore ${n.userId}`), n.close(), t.splice(i, 1));
17713
+ this.context.connection.userIsInRoom(n.userId) ? Le && (this.context.connection.connectionId === n.userId ? console.warn(`You are still in the room [${i}] ${n.userId}`) : console.log(`User is still in room [${i}] ${n.userId}`)) : (Le && console.log(`Remove call ${[i]} to user that is not in room anymore ${n.userId}`), n.close(), t.splice(i, 1));
17698
17714
  }
17699
17715
  }
17700
17716
  this.peer.updateCalls(), this.debug && this.debugLogCurrentState();
@@ -17892,7 +17908,7 @@ class eu extends T {
17892
17908
  mouthChangeLength = 0;
17893
17909
  awake() {
17894
17910
  setTimeout(() => {
17895
- this.voip = x.findObjectOfType(yr, this.context), this.marker || (this.marker = x.getComponentInParent(this.gameObject, De));
17911
+ this.voip = x.findObjectOfType(yr, this.context), this.marker || (this.marker = x.getComponentInParent(this.gameObject, je));
17896
17912
  }, 3e3);
17897
17913
  }
17898
17914
  update() {
@@ -17950,7 +17966,7 @@ class Y0 extends T {
17950
17966
  marker = null;
17951
17967
  _startPosition = null;
17952
17968
  awake() {
17953
- this.voip = x.findObjectOfType(yr, this.context), this.marker = x.getComponentInParent(this.gameObject, De);
17969
+ this.voip = x.findObjectOfType(yr, this.context), this.marker = x.getComponentInParent(this.gameObject, je);
17954
17970
  }
17955
17971
  update() {
17956
17972
  if (!this.voip || !this.marker || this.context.time.frameCount % 10 !== 0) return;
@@ -23956,7 +23972,7 @@ class Go {
23956
23972
  return this._start === void 0 && (this._start = this.ext.getStartTimeByClip(this.clip)), this._start;
23957
23973
  }
23958
23974
  get duration() {
23959
- return this.clip?.duration ?? ze.restPoseClipDuration;
23975
+ return this.clip?.duration ?? Ue.restPoseClipDuration;
23960
23976
  }
23961
23977
  get nearestAnimatedRoot() {
23962
23978
  return this._nearestAnimatedRoot;
@@ -24008,7 +24024,7 @@ class Go {
24008
24024
  return e;
24009
24025
  }
24010
24026
  }
24011
- class ze {
24027
+ class Ue {
24012
24028
  clip;
24013
24029
  pos;
24014
24030
  rot;
@@ -24024,7 +24040,7 @@ class ze {
24024
24040
  static animationDurationPadding = 6 / 60;
24025
24041
  static restPoseClipDuration = 6 / 60;
24026
24042
  constructor(e, t, i) {
24027
- if (this.root = e, this.target = t, this.clip = i, i ? this.duration = i.duration : this.duration = ze.restPoseClipDuration, i && i.tracks) {
24043
+ if (this.root = e, this.target = t, this.clip = i, i ? this.duration = i.duration : this.duration = Ue.restPoseClipDuration, i && i.tracks) {
24028
24044
  const o = Math.max(...i.tracks.map((r) => r.times[r.times.length - 1]));
24029
24045
  o !== this.duration && (console.warn("USDZExporter: Animation clip duration does not match the maximum time value in the tracks.", i, o, this.duration), this.duration = o);
24030
24046
  }
@@ -24067,7 +24083,7 @@ class ze {
24067
24083
  const f = 0;
24068
24084
  for (let p = 0 - f; p < e.length + f; p++) {
24069
24085
  let g = 0, _ = 0;
24070
- if (p < 0 ? (g = e[0], _ = g - ze.animationDurationPadding / 2 + 1 / 60) : p >= e.length ? (g = e[e.length - 1], _ = g + ze.animationDurationPadding / 2 - 1 / 60) : (g = e[p], _ = g), c) {
24086
+ if (p < 0 ? (g = e[0], _ = g - Ue.animationDurationPadding / 2 + 1 / 60) : p >= e.length ? (g = e[e.length - 1], _ = g + Ue.animationDurationPadding / 2 - 1 / 60) : (g = e[p], _ = g), c) {
24071
24087
  const m = c.evaluate(g);
24072
24088
  o.set(m[0], m[1], m[2]);
24073
24089
  }
@@ -24127,7 +24143,7 @@ class ag {
24127
24143
  this.injectRestPoses = e, this.injectImplicitBehaviours = e;
24128
24144
  }
24129
24145
  getStartTimeCode() {
24130
- return !this.injectRestPoses || this.rootAndClipToRegisteredAnimationMap.size === 0 ? 0 : (ze.restPoseClipDuration + ze.animationDurationPadding) * 60;
24146
+ return !this.injectRestPoses || this.rootAndClipToRegisteredAnimationMap.size === 0 ? 0 : (Ue.restPoseClipDuration + Ue.animationDurationPadding) * 60;
24131
24147
  }
24132
24148
  /** Returns the end time code, based on 60 frames per second, for all registered animations.
24133
24149
  * This matches the highest time value in the USDZ file. */
@@ -24215,9 +24231,9 @@ class ag {
24215
24231
  console.warn("no transform data found for target ", d, "at slot " + o + ", this is likely a bug");
24216
24232
  continue;
24217
24233
  }
24218
- a.delete(d), this.injectRestPoses && !f[0] && (console.log("Injecting rest pose", d, t, "at slot", o), f[0] = new ze(null, d, null));
24234
+ a.delete(d), this.injectRestPoses && !f[0] && (console.log("Injecting rest pose", d, t, "at slot", o), f[0] = new Ue(null, d, null));
24219
24235
  let p = f[o];
24220
- p || (p = new ze(e, d, t), f[o] = p), p.addTrack(c), r?.includes(d) || r?.push(d);
24236
+ p || (p = new Ue(e, d, t), f[o] = p), p.addTrack(c), r?.includes(d) || r?.push(d);
24221
24237
  }
24222
24238
  Pn && console.log("Unregistered nodes for this clip", a, "clip", t, "at slot", o, "for root", e, "targets", r);
24223
24239
  for (const c of a) {
@@ -24225,18 +24241,18 @@ class ag {
24225
24241
  if (!h) continue;
24226
24242
  if (this.injectRestPoses && !h[0]) {
24227
24243
  console.warn("Adding rest pose for ", c, t, "at slot", o, "This is likely a bug, should have been added earlier.");
24228
- const f = new ze(null, c, null);
24244
+ const f = new Ue(null, c, null);
24229
24245
  h[0] = f;
24230
24246
  }
24231
24247
  let d = h[o];
24232
- d || (Pn && console.log("Adding padding clip for ", c, t, "at slot", o), d = new ze(e, c, t), h[o] = d);
24248
+ d || (Pn && console.log("Adding padding clip for ", c, t, "at slot", o), d = new Ue(e, c, t), h[o] = d);
24233
24249
  }
24234
24250
  const l = new Go(this, e, t);
24235
24251
  if (this.rootAndClipToRegisteredAnimationMap.set(i, l), Pn && console.log({ root: e, clip: t, info: l }), t) {
24236
24252
  const c = this.rootToRegisteredClip.get(e);
24237
24253
  if (c ? c.push(t) : this.rootToRegisteredClip.set(e, [t]), !this.clipToStartTime.get(t)) {
24238
- this.lastClipEndTime == null && (this.lastClipEndTime = ze.restPoseClipDuration);
24239
- let d = this.lastClipEndTime + ze.animationDurationPadding, f = d + t.duration;
24254
+ this.lastClipEndTime == null && (this.lastClipEndTime = Ue.restPoseClipDuration);
24255
+ let d = this.lastClipEndTime + Ue.animationDurationPadding, f = d + t.duration;
24240
24256
  const p = Math.round(d * 60) / 60, g = Math.round(f * 60) / 60;
24241
24257
  Math.abs(p - d) < 0.01 && (d = p), Math.abs(g - f) < 0.01 && (f = g), d = Math.ceil(d), f = d + t.duration, this.clipToStartTime.set(t, d), this.lastClipEndTime = f;
24242
24258
  }
@@ -24264,7 +24280,7 @@ class ag {
24264
24280
  let c = a[l];
24265
24281
  if (!c) {
24266
24282
  const d = l - (this.injectRestPoses ? 1 : 0);
24267
- a[l] = new ze(null, r, this.rootToRegisteredClip.get(t)[d]), c = a[l];
24283
+ a[l] = new Ue(null, r, this.rootToRegisteredClip.get(t)[d]), c = a[l];
24268
24284
  }
24269
24285
  const h = c.getDuration();
24270
24286
  if (o[l] === void 0) o[l] = h;
@@ -24350,7 +24366,7 @@ class KM {
24350
24366
  for (const Je of W) {
24351
24367
  const Ri = A.get(Je);
24352
24368
  let Vc;
24353
- Ri ? console.assert(Ri.length === Se, "We should have the same number of TransformData entries for each bone", Ri, U) : Vc = new ze(null, Je, null);
24369
+ Ri ? console.assert(Ri.length === Se, "We should have the same number of TransformData entries for each bone", Ri, U) : Vc = new Ue(null, Je, null);
24354
24370
  for (let js = 0; js < Se; js++) {
24355
24371
  const Uu = Ri ? Ri[js] : Vc, Or = U[js];
24356
24372
  for (const { time: Ya, translation: Ka } of Uu.getValues(Or.pos, !0, !1, !1)) {
@@ -24470,7 +24486,7 @@ class KM {
24470
24486
  const i = this.animationData.get(this.object);
24471
24487
  if (i)
24472
24488
  for (let h = 0; h < i.length; h++)
24473
- i[h] === void 0 && (i[h] = new ze(null, this.object, null));
24489
+ i[h] === void 0 && (i[h] = new Ue(null, this.object, null));
24474
24490
  const n = this.ext;
24475
24491
  this.skinnedMeshExport(e, t, n);
24476
24492
  const o = this.object, r = this.model, a = this.animationData.get(o);
@@ -24509,21 +24525,21 @@ class KM {
24509
24525
  const v = !g.clip, y = d === "position" && (g.pos || v), S = d === "rotation" && (g.rot || v), I = d === "scale" && (g.scale || v);
24510
24526
  if (y || S || I) {
24511
24527
  const O = g.clip?.name ?? "rest", k = g.getDuration();
24512
- Pn && console.log("Write .timeSamples:", O, _, k, h), e.appendLine("# " + O + ": start=" + l.format(_ * ze.frameRate) + ", length=" + l.format(k * ze.frameRate) + ", frames=" + g.getFrames());
24528
+ Pn && console.log("Write .timeSamples:", O, _, k, h), e.appendLine("# " + O + ": start=" + l.format(_ * Ue.frameRate) + ", length=" + l.format(k * Ue.frameRate) + ", frames=" + g.getFrames());
24513
24529
  }
24514
24530
  if (y)
24515
24531
  for (const { time: O, translation: k } of g.getValues(m, !0, !1, !1)) {
24516
- const z = `${l.format((_ + O) * ze.frameRate)}: (${ae(k.x)}, ${ae(k.y)}, ${ae(k.z)}),`;
24532
+ const z = `${l.format((_ + O) * Ue.frameRate)}: (${ae(k.x)}, ${ae(k.y)}, ${ae(k.z)}),`;
24517
24533
  e.appendLine(z);
24518
24534
  }
24519
24535
  if (S)
24520
24536
  for (const { time: O, rotation: k } of g.getValues(m, !1, !0, !1)) {
24521
- const z = `${l.format((_ + O) * ze.frameRate)}: (${ae(k.w)}, ${ae(k.x)}, ${ae(k.y)}, ${ae(k.z)}),`;
24537
+ const z = `${l.format((_ + O) * Ue.frameRate)}: (${ae(k.w)}, ${ae(k.x)}, ${ae(k.y)}, ${ae(k.z)}),`;
24522
24538
  e.appendLine(z);
24523
24539
  }
24524
24540
  if (I)
24525
24541
  for (const { time: O, scale: k } of g.getValues(m, !1, !1, !0)) {
24526
- const z = `${l.format((_ + O) * ze.frameRate)}: (${ae(k.x)}, ${ae(k.y)}, ${ae(k.z)}),`;
24542
+ const z = `${l.format((_ + O) * Ue.frameRate)}: (${ae(k.x)}, ${ae(k.y)}, ${ae(k.z)}),`;
24527
24543
  e.appendLine(z);
24528
24544
  }
24529
24545
  }
@@ -24573,7 +24589,7 @@ class La {
24573
24589
  }
24574
24590
  }
24575
24591
  }
24576
- var JM = Object.defineProperty, Be = (s, e, t, i) => {
24592
+ var JM = Object.defineProperty, Fe = (s, e, t, i) => {
24577
24593
  for (var n = void 0, o = s.length - 1, r; o >= 0; o--)
24578
24594
  (r = s[o]) && (n = r(e, t, n) || n);
24579
24595
  return n && JM(e, t, n), n;
@@ -24629,16 +24645,16 @@ class Da extends T {
24629
24645
  }
24630
24646
  }
24631
24647
  }
24632
- Be([
24648
+ Fe([
24633
24649
  u(M)
24634
24650
  ], Da.prototype, "object");
24635
- Be([
24651
+ Fe([
24636
24652
  u(M)
24637
24653
  ], Da.prototype, "target");
24638
- Be([
24654
+ Fe([
24639
24655
  u()
24640
24656
  ], Da.prototype, "duration");
24641
- Be([
24657
+ Fe([
24642
24658
  u()
24643
24659
  ], Da.prototype, "relativeMotion");
24644
24660
  const lu = class Ut extends T {
@@ -24733,13 +24749,13 @@ const lu = class Ut extends T {
24733
24749
  return e;
24734
24750
  }
24735
24751
  };
24736
- Be([
24752
+ Fe([
24737
24753
  u(_e)
24738
24754
  ], lu.prototype, "materialToSwitch");
24739
- Be([
24755
+ Fe([
24740
24756
  u(_e)
24741
24757
  ], lu.prototype, "variantMaterial");
24742
- Be([
24758
+ Fe([
24743
24759
  u()
24744
24760
  ], lu.prototype, "fadeDuration");
24745
24761
  let Iv = lu;
@@ -24822,16 +24838,16 @@ const Sc = class Ae extends T {
24822
24838
  this.gameObject[Ae.wasVisible] !== void 0 && (this.gameObject.visible = this.gameObject[Ae.wasVisible], delete this.gameObject[Ae.wasVisible]), this.target && this.target[Ae.wasVisible] !== void 0 && (this.target.visible = this.target[Ae.wasVisible], delete this.target[Ae.wasVisible]), delete this.gameObject[Ae.toggleClone], delete this.gameObject[Ae.reverseToggleClone];
24823
24839
  }
24824
24840
  };
24825
- Be([
24841
+ Fe([
24826
24842
  u(M)
24827
24843
  ], Sc.prototype, "target");
24828
- Be([
24844
+ Fe([
24829
24845
  u()
24830
24846
  ], Sc.prototype, "toggleOnClick");
24831
- Be([
24847
+ Fe([
24832
24848
  u()
24833
24849
  ], Sc.prototype, "targetState");
24834
- Be([
24850
+ Fe([
24835
24851
  u()
24836
24852
  ], Sc.prototype, "hideSelf");
24837
24853
  let Lv = Sc;
@@ -24879,13 +24895,13 @@ class Cc extends T {
24879
24895
  afterCreateDocument(e, t) {
24880
24896
  }
24881
24897
  }
24882
- Be([
24898
+ Fe([
24883
24899
  u()
24884
24900
  ], Cc.prototype, "target");
24885
- Be([
24901
+ Fe([
24886
24902
  u()
24887
24903
  ], Cc.prototype, "duration");
24888
- Be([
24904
+ Fe([
24889
24905
  u()
24890
24906
  ], Cc.prototype, "motionType");
24891
24907
  class or extends T {
@@ -24944,13 +24960,13 @@ class or extends T {
24944
24960
  }
24945
24961
  }
24946
24962
  }
24947
- Be([
24963
+ Fe([
24948
24964
  u(hn)
24949
24965
  ], or.prototype, "target");
24950
- Be([
24966
+ Fe([
24951
24967
  u(URL)
24952
24968
  ], or.prototype, "clip");
24953
- Be([
24969
+ Fe([
24954
24970
  u()
24955
24971
  ], or.prototype, "toggleOnClick");
24956
24972
  const lg = class bn extends T {
@@ -25152,10 +25168,10 @@ const lg = class bn extends T {
25152
25168
  n && (this.animationSequence = n.animationSequence, this.animationLoopAfterSequence = n.animationLoopAfterSequence, this.randomOffsetNormalized = n.randomTimeOffset, this.stateAnimationModel = t);
25153
25169
  }
25154
25170
  };
25155
- Be([
25171
+ Fe([
25156
25172
  u(It)
25157
25173
  ], lg.prototype, "animator");
25158
- Be([
25174
+ Fe([
25159
25175
  u()
25160
25176
  ], lg.prototype, "stateName");
25161
25177
  let gd = lg;
@@ -25166,13 +25182,13 @@ class Pc extends T {
25166
25182
  getDuration() {
25167
25183
  }
25168
25184
  }
25169
- Be([
25185
+ Fe([
25170
25186
  u(M)
25171
25187
  ], Pc.prototype, "target");
25172
25188
  class cu extends T {
25173
25189
  target;
25174
25190
  }
25175
- Be([
25191
+ Fe([
25176
25192
  u(Pc)
25177
25193
  ], cu.prototype, "target");
25178
25194
  class hu extends Pc {
@@ -25190,10 +25206,10 @@ class hu extends Pc {
25190
25206
  return this.duration;
25191
25207
  }
25192
25208
  }
25193
- Be([
25209
+ Fe([
25194
25210
  u()
25195
25211
  ], hu.prototype, "type");
25196
- Be([
25212
+ Fe([
25197
25213
  u()
25198
25214
  ], hu.prototype, "duration");
25199
25215
  class Dv extends cu {
@@ -25280,7 +25296,7 @@ class tr {
25280
25296
  const e = "https://oculus.com/open_url/?url=", t = document.createElement("button");
25281
25297
  return this._sendToQuestButton = t, t.dataset.needle = "webxr-sendtoquest-button", t.innerText = "Open on Quest", t.prepend(Rt("share_windows")), t.title = "Click to send this page to the Oculus Browser on your Quest", t.addEventListener("click", () => {
25282
25298
  const i = encodeURIComponent(window.location.href), n = e + i;
25283
- window.open(n) == null && je("This page doesn't allow popups. Please paste " + n + " into your browser.");
25299
+ window.open(n) == null && Be("This page doesn't allow popups. Please paste " + n + " into your browser.");
25284
25300
  }), this.listenToXRSessionState(t), this.hideElementDuringXRSession(t), q.isMozillaXR() || navigator.xr?.addEventListener("devicechange", () => {
25285
25301
  navigator.xr?.isSessionSupported("immersive-vr") ? t.style.display = "none" : t.style.display = "";
25286
25302
  }), t;
@@ -26397,12 +26413,12 @@ class ar extends T {
26397
26413
  rl && console.warn("AVATAR ENTER XR", this.guid, this.sourceId, this, this.activeAndEnabled), this._syncTransforms && (this._syncTransforms.length = 0), await this.prepareAvatar();
26398
26414
  const t = En.getFor(this);
26399
26415
  if (t?.owner) {
26400
- const i = this.gameObject.addComponent(De);
26416
+ const i = this.gameObject.addComponent(je);
26401
26417
  i.avatar = this.gameObject, i.connectionId = t.owner;
26402
26418
  } else this.context.connection.isConnected ? console.error("No player state found for avatar", this) : t && !this.context.connection.isConnected && (t.dontDestroy = !0);
26403
26419
  }
26404
26420
  onLeaveXR(e) {
26405
- const t = this.gameObject.getComponent(De);
26421
+ const t = this.gameObject.getComponent(je);
26406
26422
  t && t.destroy();
26407
26423
  }
26408
26424
  onUpdateXR(e) {
@@ -29024,11 +29040,11 @@ const si = class Wp extends T {
29024
29040
  /** @internal */
29025
29041
  onEnable() {
29026
29042
  const e = q.supportsQuickLookAR(), t = q.isiOS() || q.isiPad();
29027
- !this.button && (oi || e || t) && (this.allowCreateQuicklookButton && (this.button = this.createQuicklookButton()), this.lastCallback = this.quicklookCallback.bind(this), this.link = j_(this.context, e), this.link.addEventListener("message", this.lastCallback)), oi && je("USDZ Exporter enabled: " + this.name), document.getElementById("open-in-ar")?.addEventListener("click", this.onClickedOpenInARElement), ic.registerExporter(this);
29043
+ !this.button && (oi || e || t) && (this.allowCreateQuicklookButton && (this.button = this.createQuicklookButton()), this.lastCallback = this.quicklookCallback.bind(this), this.link = j_(this.context, e), this.link.addEventListener("message", this.lastCallback)), oi && Be("USDZ Exporter enabled: " + this.name), document.getElementById("open-in-ar")?.addEventListener("click", this.onClickedOpenInARElement), ic.registerExporter(this);
29028
29044
  }
29029
29045
  /** @internal */
29030
29046
  onDisable() {
29031
- this.button?.remove(), this.link?.removeEventListener("message", this.lastCallback), oi && je("USDZ Exporter disabled: " + this.name), document.getElementById("open-in-ar")?.removeEventListener("click", this.onClickedOpenInARElement), ic.unregisterExporter(this);
29047
+ this.button?.remove(), this.link?.removeEventListener("message", this.lastCallback), oi && Be("USDZ Exporter disabled: " + this.name), document.getElementById("open-in-ar")?.removeEventListener("click", this.onClickedOpenInARElement), ic.unregisterExporter(this);
29032
29048
  }
29033
29049
  onClickedOpenInARElement = (e) => {
29034
29050
  e.preventDefault(), this.exportAndOpen();
@@ -29100,7 +29116,7 @@ const si = class Wp extends T {
29100
29116
  }));
29101
29117
  }
29102
29118
  }
29103
- oi && je("Progressive Loading: " + n.length), await Promise.all(n), oi && je("Progressive Loading: done"), le.end("export-usdz-textures");
29119
+ oi && Be("Progressive Loading: " + n.length), await Promise.all(n), oi && Be("Progressive Loading: done"), le.end("export-usdz-textures");
29104
29120
  const r = Jt.Global.Mask;
29105
29121
  Jt.Global.Set(us.AR);
29106
29122
  const a = new jM(), l = new ag(this.quickLookCompatible);
@@ -29183,7 +29199,7 @@ const si = class Wp extends T {
29183
29199
  const i = new URLSearchParams(this.link.href);
29184
29200
  if (i) {
29185
29201
  const n = i.get("callToActionURL");
29186
- oi && je("Quicklook url: " + n), n && (bs() ? globalThis.open(n, "_blank") : console.warn("Quicklook closed: custom redirects require a Needle Engine Pro license: https://needle.tools/pricing", n));
29202
+ oi && Be("Quicklook url: " + n), n && (bs() ? globalThis.open(n, "_blank") : console.warn("Quicklook closed: custom redirects require a Needle Engine Pro license: https://needle.tools/pricing", n));
29187
29203
  }
29188
29204
  }
29189
29205
  }
@@ -30884,7 +30900,7 @@ C([
30884
30900
  C([
30885
30901
  u()
30886
30902
  ], ve.prototype, "strengthZMultiplier");
30887
- class Ue {
30903
+ class Ne {
30888
30904
  enabled;
30889
30905
  attachRibbonToTransform = !1;
30890
30906
  colorOverLifetime;
@@ -30916,64 +30932,64 @@ class Ue {
30916
30932
  }
30917
30933
  C([
30918
30934
  u()
30919
- ], Ue.prototype, "enabled");
30935
+ ], Ne.prototype, "enabled");
30920
30936
  C([
30921
30937
  u()
30922
- ], Ue.prototype, "attachRibbonToTransform");
30938
+ ], Ne.prototype, "attachRibbonToTransform");
30923
30939
  C([
30924
30940
  u(Wa)
30925
- ], Ue.prototype, "colorOverLifetime");
30941
+ ], Ne.prototype, "colorOverLifetime");
30926
30942
  C([
30927
30943
  u(Wa)
30928
- ], Ue.prototype, "colorOverTrail");
30944
+ ], Ne.prototype, "colorOverTrail");
30929
30945
  C([
30930
30946
  u()
30931
- ], Ue.prototype, "dieWithParticles");
30947
+ ], Ne.prototype, "dieWithParticles");
30932
30948
  C([
30933
30949
  u()
30934
- ], Ue.prototype, "inheritParticleColor");
30950
+ ], Ne.prototype, "inheritParticleColor");
30935
30951
  C([
30936
30952
  u(Y)
30937
- ], Ue.prototype, "lifetime");
30953
+ ], Ne.prototype, "lifetime");
30938
30954
  C([
30939
30955
  u()
30940
- ], Ue.prototype, "lifetimeMultiplier");
30956
+ ], Ne.prototype, "lifetimeMultiplier");
30941
30957
  C([
30942
30958
  u()
30943
- ], Ue.prototype, "minVertexDistance");
30959
+ ], Ne.prototype, "minVertexDistance");
30944
30960
  C([
30945
30961
  u()
30946
- ], Ue.prototype, "mode");
30962
+ ], Ne.prototype, "mode");
30947
30963
  C([
30948
30964
  u()
30949
- ], Ue.prototype, "ratio");
30965
+ ], Ne.prototype, "ratio");
30950
30966
  C([
30951
30967
  u()
30952
- ], Ue.prototype, "ribbonCount");
30968
+ ], Ne.prototype, "ribbonCount");
30953
30969
  C([
30954
30970
  u()
30955
- ], Ue.prototype, "shadowBias");
30971
+ ], Ne.prototype, "shadowBias");
30956
30972
  C([
30957
30973
  u()
30958
- ], Ue.prototype, "sizeAffectsLifetime");
30974
+ ], Ne.prototype, "sizeAffectsLifetime");
30959
30975
  C([
30960
30976
  u()
30961
- ], Ue.prototype, "sizeAffectsWidth");
30977
+ ], Ne.prototype, "sizeAffectsWidth");
30962
30978
  C([
30963
30979
  u()
30964
- ], Ue.prototype, "splitSubEmitterRibbons");
30980
+ ], Ne.prototype, "splitSubEmitterRibbons");
30965
30981
  C([
30966
30982
  u()
30967
- ], Ue.prototype, "textureMode");
30983
+ ], Ne.prototype, "textureMode");
30968
30984
  C([
30969
30985
  u(Y)
30970
- ], Ue.prototype, "widthOverTrail");
30986
+ ], Ne.prototype, "widthOverTrail");
30971
30987
  C([
30972
30988
  u()
30973
- ], Ue.prototype, "widthOverTrailMultiplier");
30989
+ ], Ne.prototype, "widthOverTrailMultiplier");
30974
30990
  C([
30975
30991
  u()
30976
- ], Ue.prototype, "worldSpace");
30992
+ ], Ne.prototype, "worldSpace");
30977
30993
  class Ve {
30978
30994
  enabled;
30979
30995
  space = 0;
@@ -31506,7 +31522,7 @@ class ow {
31506
31522
  ), this.particleSystem.worldSpace || i.multiplyMatrices(this._emitterMatrix, i), this.subParticleSystem.emit(t, e.emissionState, i);
31507
31523
  }
31508
31524
  }
31509
- var oT = Object.defineProperty, Fe = (s, e, t, i) => {
31525
+ var oT = Object.defineProperty, ze = (s, e, t, i) => {
31510
31526
  for (var n = void 0, o = s.length - 1, r; o >= 0; o--)
31511
31527
  (r = s[o]) && (n = r(e, t, n) || n);
31512
31528
  return n && oT(e, t, n), n;
@@ -31556,28 +31572,28 @@ class mn extends T {
31556
31572
  return new H(t, this.getMaterial());
31557
31573
  }
31558
31574
  }
31559
- Fe([
31575
+ ze([
31560
31576
  u()
31561
31577
  ], mn.prototype, "renderMode");
31562
- Fe([
31578
+ ze([
31563
31579
  u(_e)
31564
31580
  ], mn.prototype, "particleMaterial");
31565
- Fe([
31581
+ ze([
31566
31582
  u(_e)
31567
31583
  ], mn.prototype, "trailMaterial");
31568
- Fe([
31584
+ ze([
31569
31585
  u()
31570
31586
  ], mn.prototype, "maxParticleSize");
31571
- Fe([
31587
+ ze([
31572
31588
  u()
31573
31589
  ], mn.prototype, "minParticleSize");
31574
- Fe([
31590
+ ze([
31575
31591
  u()
31576
31592
  ], mn.prototype, "velocityScale");
31577
- Fe([
31593
+ ze([
31578
31594
  u()
31579
31595
  ], mn.prototype, "cameraVelocityScale");
31580
- Fe([
31596
+ ze([
31581
31597
  u()
31582
31598
  ], mn.prototype, "lengthScale");
31583
31599
  class vh {
@@ -32214,49 +32230,49 @@ const jt = class Uh extends T {
32214
32230
  }
32215
32231
  }
32216
32232
  };
32217
- Fe([
32233
+ ze([
32218
32234
  u(Cg)
32219
32235
  ], jt.prototype, "colorOverLifetime");
32220
- Fe([
32236
+ ze([
32221
32237
  u(Qt)
32222
32238
  ], jt.prototype, "main");
32223
- Fe([
32239
+ ze([
32224
32240
  u(Co)
32225
32241
  ], jt.prototype, "emission");
32226
- Fe([
32242
+ ze([
32227
32243
  u(Va)
32228
32244
  ], jt.prototype, "sizeOverLifetime");
32229
- Fe([
32245
+ ze([
32230
32246
  u(iw)
32231
32247
  ], jt.prototype, "shape");
32232
- Fe([
32248
+ ze([
32233
32249
  u(ve)
32234
32250
  ], jt.prototype, "noise");
32235
- Fe([
32236
- u(Ue)
32251
+ ze([
32252
+ u(Ne)
32237
32253
  ], jt.prototype, "trails");
32238
- Fe([
32254
+ ze([
32239
32255
  u(Ve)
32240
32256
  ], jt.prototype, "velocityOverLifetime");
32241
- Fe([
32257
+ ze([
32242
32258
  u(yt)
32243
32259
  ], jt.prototype, "limitVelocityOverLifetime");
32244
- Fe([
32260
+ ze([
32245
32261
  u(sw)
32246
32262
  ], jt.prototype, "inheritVelocity");
32247
- Fe([
32263
+ ze([
32248
32264
  u(Ic)
32249
32265
  ], jt.prototype, "colorBySpeed");
32250
- Fe([
32266
+ ze([
32251
32267
  u(Yt)
32252
32268
  ], jt.prototype, "textureSheetAnimation");
32253
- Fe([
32269
+ ze([
32254
32270
  u(Gn)
32255
32271
  ], jt.prototype, "rotationOverLifetime");
32256
- Fe([
32272
+ ze([
32257
32273
  u(pn)
32258
32274
  ], jt.prototype, "rotationBySpeed");
32259
- Fe([
32275
+ ze([
32260
32276
  u(Oi)
32261
32277
  ], jt.prototype, "sizeBySpeed");
32262
32278
  let bd = jt;
@@ -32305,7 +32321,7 @@ class uc extends T {
32305
32321
  const e = x.getComponentInParent(this.gameObject, En);
32306
32322
  if (e && e.owner)
32307
32323
  return this._didAssignPlayerColor = !0, this.assignUserColor(e.owner), !0;
32308
- const t = x.getComponentInParent(this.gameObject, De);
32324
+ const t = x.getComponentInParent(this.gameObject, je);
32309
32325
  return t?.connectionId ? (this._didAssignPlayerColor = !0, this.assignUserColor(t.connectionId), !0) : !1;
32310
32326
  };
32311
32327
  assignUserColor(e) {
@@ -33590,7 +33606,7 @@ class Dc extends T {
33590
33606
  /** @internal */
33591
33607
  awake() {
33592
33608
  Bo && (console.log("PostprocessingManager Awake", this), console.log("Press P to toggle post processing"), window.addEventListener("keydown", (e) => {
33593
- e.key === "p" && (this.enabled = !this.enabled, je("Toggle PostProcessing " + this.name + ": Enabled=" + this.enabled), this.markDirty());
33609
+ e.key === "p" && (this.enabled = !this.enabled, Be("Toggle PostProcessing " + this.name + ": Enabled=" + this.enabled), this.markDirty());
33594
33610
  })), this.sharedProfile?.__init(this);
33595
33611
  }
33596
33612
  _componentEnabledTime = -1;
@@ -33788,7 +33804,7 @@ class Ze extends T {
33788
33804
  }
33789
33805
  /** @internal */
33790
33806
  async onEnable() {
33791
- if (globalThis.addEventListener("popstate", this.onPopState), this.context.input.addEventListener(Le.KeyDown, this.onInputKeyDown), this.context.input.addEventListener(Le.PointerMove, this.onInputPointerMove), this.context.input.addEventListener(Le.PointerUp, this.onInputPointerUp), this._engineElementOverserver || (this._engineElementOverserver = new MutationObserver((e) => {
33807
+ if (globalThis.addEventListener("popstate", this.onPopState), this.context.input.addEventListener(De.KeyDown, this.onInputKeyDown), this.context.input.addEventListener(De.PointerMove, this.onInputPointerMove), this.context.input.addEventListener(De.PointerUp, this.onInputPointerUp), this._engineElementOverserver || (this._engineElementOverserver = new MutationObserver((e) => {
33792
33808
  for (const t of e)
33793
33809
  if (t.type === "attributes" && t.attributeName === $h) {
33794
33810
  const i = this.context.domElement.getAttribute($h);
@@ -33820,7 +33836,7 @@ class Ze extends T {
33820
33836
  }
33821
33837
  /** @internal */
33822
33838
  onDisable() {
33823
- if (globalThis.removeEventListener("popstate", this.onPopState), this.context.input.removeEventListener(Le.KeyDown, this.onInputKeyDown), this.context.input.removeEventListener(Le.PointerMove, this.onInputPointerMove), this.context.input.removeEventListener(Le.PointerUp, this.onInputPointerUp), this._preloadScheduler?.stop(), this._menuButtons) {
33839
+ if (globalThis.removeEventListener("popstate", this.onPopState), this.context.input.removeEventListener(De.KeyDown, this.onInputKeyDown), this.context.input.removeEventListener(De.PointerMove, this.onInputPointerMove), this.context.input.removeEventListener(De.PointerUp, this.onInputPointerUp), this._preloadScheduler?.stop(), this._menuButtons) {
33824
33840
  for (const e of this._menuButtons)
33825
33841
  e.remove();
33826
33842
  this._menuButtons = void 0;
@@ -35857,7 +35873,7 @@ class Lg extends T {
35857
35873
  */
35858
35874
  setAvatarFlagsBeforeRender() {
35859
35875
  const e = this._mode === 0;
35860
- for (const t of De.instances)
35876
+ for (const t of je.instances)
35861
35877
  if (t.avatar && "isLocalAvatar" in t.avatar && "flags" in t.avatar) {
35862
35878
  let i = us.All;
35863
35879
  this.isSpectatingSelf && (i = e && t.avatar.isLocalAvatar ? us.FirstPerson : us.ThirdPerson);
@@ -35871,7 +35887,7 @@ class Lg extends T {
35871
35887
  * Restores avatar visibility flags after spectator rendering
35872
35888
  */
35873
35889
  resetAvatarFlags() {
35874
- for (const e of De.instances)
35890
+ for (const e of je.instances)
35875
35891
  if (e.avatar && "flags" in e.avatar) {
35876
35892
  const t = e.avatar.flags;
35877
35893
  if (!t) continue;
@@ -35957,9 +35973,9 @@ class OE {
35957
35973
  n.key === "Escape" && this.spectator.stopSpectating();
35958
35974
  });
35959
35975
  let i = 0;
35960
- this.context.input.addEventListener(Le.PointerDown, (n) => {
35976
+ this.context.input.addEventListener(De.PointerDown, (n) => {
35961
35977
  i = this.context.time.time;
35962
- }), this.context.input.addEventListener(Le.PointerUp, (n) => {
35978
+ }), this.context.input.addEventListener(De.PointerUp, (n) => {
35963
35979
  const o = this.context.time.time - i;
35964
35980
  o > 1 ? this.spectator.stopSpectating() : this.context.input.getPointerClicked(0) && o < 0.3 && this.trySelectObject();
35965
35981
  });
@@ -35974,7 +35990,7 @@ class OE {
35974
35990
  if (pi && console.log(...t), t?.length)
35975
35991
  for (const i of t) {
35976
35992
  if (i.distance < 0.2) continue;
35977
- const n = i.object, o = x.getComponentInParent(n, De), r = o?.connectionId;
35993
+ const n = i.object, o = x.getComponentInParent(n, je), r = o?.connectionId;
35978
35994
  if (r) {
35979
35995
  const a = this.context.players.getPlayerView(r);
35980
35996
  this.spectator.target = a, pi && console.log("spectate", r, o);
@@ -36256,7 +36272,7 @@ const xw = class em extends T {
36256
36272
  l.context = this.context;
36257
36273
  const c = x.instantiate(this.cameraPrefab, l);
36258
36274
  n = this.remoteCams[t] = { obj: c, lastUpdate: this.context.time.realtimeSinceStartup, userId: i }, n.obj.visible = !0, this.gameObject.add(c), this.userToCamMap[i] = t, em.instances.push(n);
36259
- const h = x.getOrAddComponent(c, De);
36275
+ const h = x.getOrAddComponent(c, je);
36260
36276
  h.connectionId = i, h.avatar = c;
36261
36277
  } else
36262
36278
  return;
@@ -36417,7 +36433,7 @@ C) Set "joinRandomRoom" to true`), !1) : (qf && console.log("Join " + this.roomN
36417
36433
  const t = this.getViewOnlyUrl();
36418
36434
  t?.length ? navigator.canShare({ url: t }) ? navigator.share({ url: t })?.catch((i) => {
36419
36435
  console.warn(i);
36420
- }) : (navigator.clipboard.writeText(t), je("View only URL copied to clipboard")) : me("Could not create view only URL");
36436
+ }) : (navigator.clipboard.writeText(t), Be("View only URL copied to clipboard")) : me("Could not create view only URL");
36421
36437
  }, e.title = "Copy the view only URL: A page accessed by the view only URL can not be modified by visiting users.", e.textContent = "Share View URL", e.prepend(Rt("visibility"));
36422
36438
  }
36423
36439
  this.context.menu.appendChild(this._viewOnlyButton);
@@ -37788,7 +37804,7 @@ class Mo extends T {
37788
37804
  Fo && console.warn("Button Up", this.animationTriggers?.highlightedTrigger, this.animator, this._isHovered), this.interactable && (this.transition == 3 && this.animationTriggers && this.animator ? this.animator.setTrigger(this._isHovered ? this.animationTriggers.highlightedTrigger : this.animationTriggers.normalTrigger) : this.transition === 1 && this.colors && this._image?.setState(this._isHovered ? "hovered" : "normal"));
37789
37805
  }
37790
37806
  onPointerClick(e) {
37791
- if (this.interactable && !(e.button !== 0 && e.event.pointerType === Pm.Mouse) && (Fo && (console.warn("Button Click", this.onClick), je("CLICKED button " + this.name + " at " + this.context.time.frameCount)), this.onClick && this.onClick.listenerCount > 0 && (this.onClick.invoke(), e.use(), Fo))) {
37807
+ if (this.interactable && !(e.button !== 0 && e.event.pointerType === Pm.Mouse) && (Fo && (console.warn("Button Click", this.onClick), Be("CLICKED button " + this.name + " at " + this.context.time.frameCount)), this.onClick && this.onClick.listenerCount > 0 && (this.onClick.invoke(), e.use(), Fo))) {
37792
37808
  const t = this.gameObject.worldPosition;
37793
37809
  t.add(this.gameObject.worldUp.multiplyScalar(1 + Math.random() * 0.5)), F.DrawLabel(t, "CLICK:" + Date.now(), 0.1, 1 + Math.random() * 0.5);
37794
37810
  }
@@ -38362,7 +38378,7 @@ class Wc extends T {
38362
38378
  }
38363
38379
  this._validateUrl();
38364
38380
  let e = this.url;
38365
- switch (!e.startsWith("mailto:") && e.includes("@") && (e = "mailto:" + e), L() && je("Open URL: " + e), this.mode) {
38381
+ switch (!e.startsWith("mailto:") && e.includes("@") && (e = "mailto:" + e), L() && Be("Open URL: " + e), this.mode) {
38366
38382
  case 0:
38367
38383
  q.isSafari(), globalThis.open(e, "_blank");
38368
38384
  break;
@@ -39539,7 +39555,7 @@ P.add("TeleportTarget", ug);
39539
39555
  P.add("WebARCameraBackground", zu);
39540
39556
  P.add("WebARSessionRoot", $i);
39541
39557
  P.add("WebXR", fg);
39542
- P.add("AvatarMarker", De);
39558
+ P.add("AvatarMarker", je);
39543
39559
  P.add("WebXRImageTracking", Pd);
39544
39560
  P.add("WebXRPlaneTracking", Ao);
39545
39561
  P.add("XRRig", Vg);
@@ -39628,7 +39644,7 @@ async function sm(s, e, t, i) {
39628
39644
  }
39629
39645
  if (ul.length > 0) {
39630
39646
  const r = ul.join(", ");
39631
- console.warn("unknown components: " + r), ul.length = 0, ti() && je(`<strong>Unknown components in scene</strong>:
39647
+ console.warn("unknown components: " + r), ul.length = 0, ti() && Be(`<strong>Unknown components in scene</strong>:
39632
39648
 
39633
39649
  ${r}
39634
39650
 
@@ -39811,7 +39827,7 @@ function xA(s) {
39811
39827
  if (new URL(s, window.location.href).href.startsWith("file://")) {
39812
39828
  const t = `Hi - it looks like you are trying to load a local file which will not work. You need to use a webserver to serve your files.
39813
39829
  Please refer to the documentation on <a href="https://fwd.needle.tools/needle-engine/docs/local-server">https://docs.needle.tools</a> or ask for help in our <a href="https://discord.needle.tools">discord community</a>`;
39814
- je(t), console.warn(t);
39830
+ Be(t), console.warn(t);
39815
39831
  }
39816
39832
  }
39817
39833
  function SA(s, e) {
@@ -41740,7 +41756,7 @@ const pL = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
41740
41756
  AvatarBlink_Simple: Ta,
41741
41757
  AvatarEyeLook_Rotation: ev,
41742
41758
  AvatarLoader: FA,
41743
- AvatarMarker: De,
41759
+ AvatarMarker: je,
41744
41760
  AvatarModel: Hw,
41745
41761
  Avatar_Brain_LookAt: ud,
41746
41762
  Avatar_MouthShapes: eu,
@@ -41901,8 +41917,8 @@ const pL = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
41901
41917
  TextureSheetAnimationModule: Yt,
41902
41918
  TiltShiftEffect: Ds,
41903
41919
  ToneMappingEffect: cr,
41904
- TrailModule: Ue,
41905
- TransformData: ze,
41920
+ TrailModule: Ne,
41921
+ TransformData: Ue,
41906
41922
  TransformGizmo: qa,
41907
41923
  TriggerBuilder: Gt,
41908
41924
  TriggerModel: er,
@@ -42005,11 +42021,7 @@ he.registerCallback(ce.ContextCreated, (s) => {
42005
42021
  });
42006
42022
  class NA extends NS {
42007
42023
  constructor() {
42008
- super(new Worker(new URL(
42009
- /* @vite-ignore */
42010
- "/generateMeshBVH.worker-2qGLkQjg.js",
42011
- import.meta.url
42012
- ), { type: "module" })), this.name = "GenerateMeshBVHWorker";
42024
+ super(new Worker(URL.createObjectURL(new Blob(["import '" + `${new URL('./generateMeshBVH.worker-2qGLkQjg.js', import.meta.url).toString()}` + "';"], { type: 'text/javascript' })), { type: "module" })), this.name = "GenerateMeshBVHWorker";
42013
42025
  }
42014
42026
  runTask(e, t, i = {}) {
42015
42027
  return new Promise((n, o) => {
@@ -42083,7 +42095,7 @@ export {
42083
42095
  Ta as AvatarBlink_Simple,
42084
42096
  ev as AvatarEyeLook_Rotation,
42085
42097
  FA as AvatarLoader,
42086
- De as AvatarMarker,
42098
+ je as AvatarMarker,
42087
42099
  Hw as AvatarModel,
42088
42100
  ud as Avatar_Brain_LookAt,
42089
42101
  eu as Avatar_MouthShapes,
@@ -42190,7 +42202,7 @@ export {
42190
42202
  sw as InheritVelocityModule,
42191
42203
  r1 as Input,
42192
42204
  di as InputEventQueue,
42193
- Le as InputEvents,
42205
+ De as InputEvents,
42194
42206
  Rw as InputField,
42195
42207
  ra as InstanceHandle,
42196
42208
  Pa as InstancingHandler,
@@ -42358,8 +42370,8 @@ export {
42358
42370
  cr as ToneMappingEffect,
42359
42371
  Iu as TrackHandler,
42360
42372
  Bi as TrackType,
42361
- Ue as TrailModule,
42362
- ze as TransformData,
42373
+ Ne as TrailModule,
42374
+ Ue as TransformData,
42363
42375
  qa as TransformGizmo,
42364
42376
  Gt as TriggerBuilder,
42365
42377
  er as TriggerModel,
@@ -42605,7 +42617,7 @@ export {
42605
42617
  Ud as setWorldRotationXYZ,
42606
42618
  tc as setWorldScale,
42607
42619
  Nd as showBalloonError,
42608
- je as showBalloonMessage,
42620
+ Be as showBalloonMessage,
42609
42621
  me as showBalloonWarning,
42610
42622
  Hb as showDebugConsole,
42611
42623
  pI as slerp,