@needle-tools/engine 4.8.2-next.f60a325 → 4.8.3-next.1a41273

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.
@@ -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-alpha";');
1788
+ po('globalThis["__NEEDLE_ENGINE_VERSION__"] = "4.8.3";');
1789
1789
  po('globalThis["__NEEDLE_ENGINE_GENERATOR__"] = "undefined";');
1790
- po('globalThis["__NEEDLE_PROJECT_BUILD_TIME__"] = "Fri Aug 15 2025 11:22:58 GMT+0000 (Coordinated Universal Time)";');
1790
+ po('globalThis["__NEEDLE_PROJECT_BUILD_TIME__"] = "Mon Aug 18 2025 11:25:17 GMT+0000 (Coordinated Universal Time)";');
1791
1791
  po('globalThis["__NEEDLE_PUBLIC_KEY__"] = "' + NEEDLE_PUBLIC_KEY + '";');
1792
- const Ln = "4.8.2-alpha", wm = "undefined", Qb = "Fri Aug 15 2025 11:22:58 GMT+0000 (Coordinated Universal Time)";
1792
+ const Ln = "4.8.3", wm = "undefined", Qb = "Mon Aug 18 2025 11:25:17 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";
@@ -10983,9 +10983,13 @@ Start a coroutine from a component by calling "this.startCoroutine(myCoroutine()
10983
10983
  get isVisibleToUser() {
10984
10984
  if (this.isInXR) return !0;
10985
10985
  if (!this._isVisible) return !1;
10986
+ if (this.time.frame === this._lastStyleComputedFrame) return this._lastStyleComputedResult;
10987
+ this._lastStyleComputedFrame = this.time.frame;
10986
10988
  const e = getComputedStyle(this.domElement);
10987
- return e.visibility !== "hidden" && e.display !== "none" && e.opacity !== "0";
10989
+ return this._lastStyleComputedResult = e.visibility !== "hidden" && e.display !== "none" && e.opacity !== "0", this._lastStyleComputedResult;
10988
10990
  }
10991
+ _lastStyleComputedFrame = -1;
10992
+ _lastStyleComputedResult = !0;
10989
10993
  _createId = 0;
10990
10994
  async internalOnCreate(e) {
10991
10995
  const t = ++this._createId;
@@ -17328,7 +17332,7 @@ class _k {
17328
17332
  this.object = e, this.collider = t;
17329
17333
  }
17330
17334
  }
17331
- const Ne = w("debugnetworkingstreams");
17335
+ const ze = w("debugnetworkingstreams");
17332
17336
  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 || {});
17333
17337
  class X0 {
17334
17338
  type = "call-ended";
@@ -17382,7 +17386,7 @@ class xk extends dm {
17382
17386
  }
17383
17387
  constructor(e, t, i, n = null) {
17384
17388
  super(), this.peerId = t.peer, this.userId = e, this.call = t, this.direction = i, this._stream = n, t.on("stream", (o) => {
17385
- if (Ne && console.log("Receive stream", `
17389
+ if (ze && console.log("Receive stream", `
17386
17390
  Audio:`, o.getAudioTracks(), `
17387
17391
  Video:`, o.getVideoTracks()), this._stream = o, i === "incoming") {
17388
17392
  const r = new bk(e, o, this);
@@ -17416,7 +17420,7 @@ class to extends dm {
17416
17420
  }
17417
17421
  makeCall(e, t) {
17418
17422
  if (!t?.id) {
17419
- 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");
17423
+ ze ? 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");
17420
17424
  return;
17421
17425
  }
17422
17426
  const i = {
@@ -17428,10 +17432,10 @@ class to extends dm {
17428
17432
  }, n = this._peer?.call(e, t, i);
17429
17433
  if (n) {
17430
17434
  const o = this.registerCall(n, "outgoing", t);
17431
- return Ne && console.warn(`📞 CALL ${e}`, `
17435
+ return ze && console.warn(`📞 CALL ${e}`, `
17432
17436
  Outgoing:`, this._outgoingCalls, `
17433
17437
  Incoming:`, this._incomingCalls), o;
17434
- } else Ne && console.error("Failed to make call", e, t, this._peer);
17438
+ } else ze && console.error("Failed to make call", e, t, this._peer);
17435
17439
  }
17436
17440
  closeAll() {
17437
17441
  for (const e of this._incomingCalls)
@@ -17448,7 +17452,7 @@ Incoming:`, this._incomingCalls), o;
17448
17452
  for (let e = this._outgoingCalls.length - 1; e >= 0; e--) {
17449
17453
  const t = this._outgoingCalls[e];
17450
17454
  let i = !1;
17451
- 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));
17455
+ t.isClosed && !t.isOpening && (t.stream?.active ? ze && console.warn("!!! Stream is still active, don't remove call", t.userId, "Your id: " + this.context.connection.connectionId) : (ze && console.warn("!!! Remove closed call", t.userId), i = !0)), this.context.connection.userIsInRoom(t.userId) === !1 && (ze && console.warn("!!! User is not in room anymore, remove call", t.userId), i = !0), i && (t.close(), this._outgoingCalls.splice(e, 1));
17452
17456
  }
17453
17457
  };
17454
17458
  get peer() {
@@ -17463,7 +17467,12 @@ Incoming:`, this._incomingCalls), o;
17463
17467
  _outgoingCalls = [];
17464
17468
  _peer;
17465
17469
  constructor(e, t) {
17466
- super(), this.context = e, this.id = t, this.setupPeer(), navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;
17470
+ super(), this.context = e, this.id = t, this.setupPeer();
17471
+ try {
17472
+ navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;
17473
+ } catch (i) {
17474
+ ze && console.error("[PeerJs] Error setting getUserMedia", i);
17475
+ }
17467
17476
  }
17468
17477
  _enabled = !1;
17469
17478
  _enabledPeer = !1;
@@ -17503,7 +17512,7 @@ Incoming:`, this._incomingCalls), o;
17503
17512
  * @param id ID of the peer
17504
17513
  */
17505
17514
  onPeerConnect = (e) => {
17506
- if (Ne && console.log("PEER opened as", e), e === null) {
17515
+ if (ze && console.log("PEER opened as", e), e === null) {
17507
17516
  console.error("Peer connection failed", e);
17508
17517
  return;
17509
17518
  }
@@ -17511,17 +17520,17 @@ Incoming:`, this._incomingCalls), o;
17511
17520
  };
17512
17521
  /** 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. */
17513
17522
  onPeerClose = () => {
17514
- Ne && console.log("PEER closed"), this.updateCalls();
17523
+ ze && console.log("PEER closed"), this.updateCalls();
17515
17524
  };
17516
17525
  /** Emitted when the peer is disconnected from the signalling server, either manually or because the connection to the signalling server was lost. */
17517
17526
  onPeerDisconnected = () => {
17518
- Ne && console.log("PEER disconnected"), this.updateCalls();
17527
+ ze && console.log("PEER disconnected"), this.updateCalls();
17519
17528
  };
17520
17529
  /**
17521
17530
  * Errors on the peer are almost always fatal and will destroy the peer. Errors from the underlying socket and PeerConnections are forwarded here.
17522
17531
  */
17523
17532
  onPeerError = (e) => {
17524
- Ne && console.error("PEER error", e);
17533
+ ze && console.error("PEER error", e);
17525
17534
  };
17526
17535
  onPeerReceivingCall = (e) => {
17527
17536
  e.answer(void 0, {
@@ -17532,12 +17541,12 @@ Incoming:`, this._incomingCalls), o;
17532
17541
  const n = e.metadata;
17533
17542
  (!n || !n.userId) && console.error("Missing call metadata", e);
17534
17543
  const o = n.userId;
17535
- t === "incoming" && Ne ? console.warn("← Receive call from", e.metadata, e.connectionId) : Ne && console.warn("→ Make call to", e.metadata);
17544
+ t === "incoming" && ze ? console.warn("← Receive call from", e.metadata, e.connectionId) : ze && console.warn("→ Make call to", e.metadata);
17536
17545
  const r = t === "incoming" ? this._incomingCalls : this._outgoingCalls, a = new xk(o, e, t, i);
17537
17546
  return r.push(a), e.on("error", (l) => {
17538
17547
  console.error("Call error", l);
17539
17548
  }), e.on("close", () => {
17540
- Ne && console.log("Call ended", e.metadata);
17549
+ ze && console.log("Call ended", e.metadata);
17541
17550
  const l = r.indexOf(a);
17542
17551
  l !== -1 && r.splice(l, 1), a.close(), this.dispatchEvent(new X0(o, t));
17543
17552
  }), a.addEventListener("call-ended", (l) => {
@@ -17545,11 +17554,11 @@ Incoming:`, this._incomingCalls), o;
17545
17554
  }), t === "incoming" && (a.addEventListener("receive-stream", (l) => {
17546
17555
  this.dispatchEvent(l);
17547
17556
  }), e.on("stream", () => {
17548
- Ne && console.log("Received stream for call", e.metadata);
17557
+ ze && console.log("Received stream for call", e.metadata);
17549
17558
  let l = 0;
17550
17559
  const c = setInterval(() => {
17551
17560
  const h = l === 0;
17552
- !a.isOpen && h && (Ne && console.warn("Close call because stream is not active", e.metadata), l += 1, clearInterval(c), a.close());
17561
+ !a.isOpen && h && (ze && console.warn("Close call because stream is not active", e.metadata), l += 1, clearInterval(c), a.close());
17553
17562
  }, 2e3);
17554
17563
  })), a;
17555
17564
  }
@@ -17582,7 +17591,7 @@ class Jd extends dm {
17582
17591
  if (!(e instanceof N)) throw new Error("Failed to create NetworkedStreams because context is not an instance of Context");
17583
17592
  } else throw new Error("Failed to create NetworkedStreams because context is undefined");
17584
17593
  if (!t) throw new Error("Failed to create NetworkedStreams because peer is undefined");
17585
- this.context = e, this.peer = t, Ne && (this.debug = !0);
17594
+ this.context = e, this.peer = t, ze && (this.debug = !0);
17586
17595
  }
17587
17596
  startSendingStream(e) {
17588
17597
  this._sendingStreams.has(e) ? console.warn("Received start sending stream with stream that is already being sent") : (this._sendingStreams.set(e, []), this.updateSendingCalls());
@@ -17644,7 +17653,7 @@ class Jd extends dm {
17644
17653
  const t = this._sendingStreams.keys().next().value;
17645
17654
  this.peer.makeCall(e.peerId, t);
17646
17655
  } else
17647
- Ne && console.log("Unknown user connected", e.guid, e.peerId);
17656
+ ze && console.log("Unknown user connected", e.guid, e.peerId);
17648
17657
  };
17649
17658
  onUserLeft = (e) => {
17650
17659
  this.debug && console.log("User left room: " + e.userId), this.stopCallsToUsersThatAreNotInTheRoomAnymore();
@@ -17657,7 +17666,7 @@ class Jd extends dm {
17657
17666
  if (n === e) continue;
17658
17667
  const o = this.peer.getPeerIdFromUserId(n);
17659
17668
  if (i.find((a) => a.peerId === o && a.direction === "outgoing" && !a.isClosed && a.stream?.active))
17660
- Ne && console.debug("Already have a call with user " + n + " / peer " + o);
17669
+ ze && console.debug("Already have a call with user " + n + " / peer " + o);
17661
17670
  else {
17662
17671
  const a = this.peer.makeCall(o, t);
17663
17672
  a && i.push(a);
@@ -17688,7 +17697,7 @@ class Jd extends dm {
17688
17697
  if (t)
17689
17698
  for (let i = t.length - 1; i >= 0; i--) {
17690
17699
  const n = t[i];
17691
- 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));
17700
+ this.context.connection.userIsInRoom(n.userId) ? ze && (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}`)) : (ze && console.log(`Remove call ${[i]} to user that is not in room anymore ${n.userId}`), n.close(), t.splice(i, 1));
17692
17701
  }
17693
17702
  }
17694
17703
  this.peer.updateCalls(), this.debug && this.debugLogCurrentState();
@@ -23950,7 +23959,7 @@ class Go {
23950
23959
  return this._start === void 0 && (this._start = this.ext.getStartTimeByClip(this.clip)), this._start;
23951
23960
  }
23952
23961
  get duration() {
23953
- return this.clip?.duration ?? ze.restPoseClipDuration;
23962
+ return this.clip?.duration ?? Ue.restPoseClipDuration;
23954
23963
  }
23955
23964
  get nearestAnimatedRoot() {
23956
23965
  return this._nearestAnimatedRoot;
@@ -24002,7 +24011,7 @@ class Go {
24002
24011
  return e;
24003
24012
  }
24004
24013
  }
24005
- class ze {
24014
+ class Ue {
24006
24015
  clip;
24007
24016
  pos;
24008
24017
  rot;
@@ -24018,7 +24027,7 @@ class ze {
24018
24027
  static animationDurationPadding = 6 / 60;
24019
24028
  static restPoseClipDuration = 6 / 60;
24020
24029
  constructor(e, t, i) {
24021
- if (this.root = e, this.target = t, this.clip = i, i ? this.duration = i.duration : this.duration = ze.restPoseClipDuration, i && i.tracks) {
24030
+ if (this.root = e, this.target = t, this.clip = i, i ? this.duration = i.duration : this.duration = Ue.restPoseClipDuration, i && i.tracks) {
24022
24031
  const o = Math.max(...i.tracks.map((r) => r.times[r.times.length - 1]));
24023
24032
  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);
24024
24033
  }
@@ -24061,7 +24070,7 @@ class ze {
24061
24070
  const f = 0;
24062
24071
  for (let p = 0 - f; p < e.length + f; p++) {
24063
24072
  let g = 0, _ = 0;
24064
- 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) {
24073
+ 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) {
24065
24074
  const m = c.evaluate(g);
24066
24075
  o.set(m[0], m[1], m[2]);
24067
24076
  }
@@ -24121,7 +24130,7 @@ class ag {
24121
24130
  this.injectRestPoses = e, this.injectImplicitBehaviours = e;
24122
24131
  }
24123
24132
  getStartTimeCode() {
24124
- return !this.injectRestPoses || this.rootAndClipToRegisteredAnimationMap.size === 0 ? 0 : (ze.restPoseClipDuration + ze.animationDurationPadding) * 60;
24133
+ return !this.injectRestPoses || this.rootAndClipToRegisteredAnimationMap.size === 0 ? 0 : (Ue.restPoseClipDuration + Ue.animationDurationPadding) * 60;
24125
24134
  }
24126
24135
  /** Returns the end time code, based on 60 frames per second, for all registered animations.
24127
24136
  * This matches the highest time value in the USDZ file. */
@@ -24209,9 +24218,9 @@ class ag {
24209
24218
  console.warn("no transform data found for target ", d, "at slot " + o + ", this is likely a bug");
24210
24219
  continue;
24211
24220
  }
24212
- a.delete(d), this.injectRestPoses && !f[0] && (console.log("Injecting rest pose", d, t, "at slot", o), f[0] = new ze(null, d, null));
24221
+ a.delete(d), this.injectRestPoses && !f[0] && (console.log("Injecting rest pose", d, t, "at slot", o), f[0] = new Ue(null, d, null));
24213
24222
  let p = f[o];
24214
- p || (p = new ze(e, d, t), f[o] = p), p.addTrack(c), r?.includes(d) || r?.push(d);
24223
+ p || (p = new Ue(e, d, t), f[o] = p), p.addTrack(c), r?.includes(d) || r?.push(d);
24215
24224
  }
24216
24225
  Pn && console.log("Unregistered nodes for this clip", a, "clip", t, "at slot", o, "for root", e, "targets", r);
24217
24226
  for (const c of a) {
@@ -24219,18 +24228,18 @@ class ag {
24219
24228
  if (!h) continue;
24220
24229
  if (this.injectRestPoses && !h[0]) {
24221
24230
  console.warn("Adding rest pose for ", c, t, "at slot", o, "This is likely a bug, should have been added earlier.");
24222
- const f = new ze(null, c, null);
24231
+ const f = new Ue(null, c, null);
24223
24232
  h[0] = f;
24224
24233
  }
24225
24234
  let d = h[o];
24226
- d || (Pn && console.log("Adding padding clip for ", c, t, "at slot", o), d = new ze(e, c, t), h[o] = d);
24235
+ d || (Pn && console.log("Adding padding clip for ", c, t, "at slot", o), d = new Ue(e, c, t), h[o] = d);
24227
24236
  }
24228
24237
  const l = new Go(this, e, t);
24229
24238
  if (this.rootAndClipToRegisteredAnimationMap.set(i, l), Pn && console.log({ root: e, clip: t, info: l }), t) {
24230
24239
  const c = this.rootToRegisteredClip.get(e);
24231
24240
  if (c ? c.push(t) : this.rootToRegisteredClip.set(e, [t]), !this.clipToStartTime.get(t)) {
24232
- this.lastClipEndTime == null && (this.lastClipEndTime = ze.restPoseClipDuration);
24233
- let d = this.lastClipEndTime + ze.animationDurationPadding, f = d + t.duration;
24241
+ this.lastClipEndTime == null && (this.lastClipEndTime = Ue.restPoseClipDuration);
24242
+ let d = this.lastClipEndTime + Ue.animationDurationPadding, f = d + t.duration;
24234
24243
  const p = Math.round(d * 60) / 60, g = Math.round(f * 60) / 60;
24235
24244
  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;
24236
24245
  }
@@ -24258,7 +24267,7 @@ class ag {
24258
24267
  let c = a[l];
24259
24268
  if (!c) {
24260
24269
  const d = l - (this.injectRestPoses ? 1 : 0);
24261
- a[l] = new ze(null, r, this.rootToRegisteredClip.get(t)[d]), c = a[l];
24270
+ a[l] = new Ue(null, r, this.rootToRegisteredClip.get(t)[d]), c = a[l];
24262
24271
  }
24263
24272
  const h = c.getDuration();
24264
24273
  if (o[l] === void 0) o[l] = h;
@@ -24344,7 +24353,7 @@ class KM {
24344
24353
  for (const Je of W) {
24345
24354
  const Ri = A.get(Je);
24346
24355
  let Vc;
24347
- 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);
24356
+ 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);
24348
24357
  for (let js = 0; js < Se; js++) {
24349
24358
  const Uu = Ri ? Ri[js] : Vc, Or = U[js];
24350
24359
  for (const { time: Ya, translation: Ka } of Uu.getValues(Or.pos, !0, !1, !1)) {
@@ -24464,7 +24473,7 @@ class KM {
24464
24473
  const i = this.animationData.get(this.object);
24465
24474
  if (i)
24466
24475
  for (let h = 0; h < i.length; h++)
24467
- i[h] === void 0 && (i[h] = new ze(null, this.object, null));
24476
+ i[h] === void 0 && (i[h] = new Ue(null, this.object, null));
24468
24477
  const n = this.ext;
24469
24478
  this.skinnedMeshExport(e, t, n);
24470
24479
  const o = this.object, r = this.model, a = this.animationData.get(o);
@@ -24503,21 +24512,21 @@ class KM {
24503
24512
  const v = !g.clip, y = d === "position" && (g.pos || v), S = d === "rotation" && (g.rot || v), I = d === "scale" && (g.scale || v);
24504
24513
  if (y || S || I) {
24505
24514
  const O = g.clip?.name ?? "rest", k = g.getDuration();
24506
- 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());
24515
+ 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());
24507
24516
  }
24508
24517
  if (y)
24509
24518
  for (const { time: O, translation: k } of g.getValues(m, !0, !1, !1)) {
24510
- const z = `${l.format((_ + O) * ze.frameRate)}: (${ae(k.x)}, ${ae(k.y)}, ${ae(k.z)}),`;
24519
+ const z = `${l.format((_ + O) * Ue.frameRate)}: (${ae(k.x)}, ${ae(k.y)}, ${ae(k.z)}),`;
24511
24520
  e.appendLine(z);
24512
24521
  }
24513
24522
  if (S)
24514
24523
  for (const { time: O, rotation: k } of g.getValues(m, !1, !0, !1)) {
24515
- const z = `${l.format((_ + O) * ze.frameRate)}: (${ae(k.w)}, ${ae(k.x)}, ${ae(k.y)}, ${ae(k.z)}),`;
24524
+ const z = `${l.format((_ + O) * Ue.frameRate)}: (${ae(k.w)}, ${ae(k.x)}, ${ae(k.y)}, ${ae(k.z)}),`;
24516
24525
  e.appendLine(z);
24517
24526
  }
24518
24527
  if (I)
24519
24528
  for (const { time: O, scale: k } of g.getValues(m, !1, !1, !0)) {
24520
- const z = `${l.format((_ + O) * ze.frameRate)}: (${ae(k.x)}, ${ae(k.y)}, ${ae(k.z)}),`;
24529
+ const z = `${l.format((_ + O) * Ue.frameRate)}: (${ae(k.x)}, ${ae(k.y)}, ${ae(k.z)}),`;
24521
24530
  e.appendLine(z);
24522
24531
  }
24523
24532
  }
@@ -30878,7 +30887,7 @@ C([
30878
30887
  C([
30879
30888
  u()
30880
30889
  ], ve.prototype, "strengthZMultiplier");
30881
- class Ue {
30890
+ class Ne {
30882
30891
  enabled;
30883
30892
  attachRibbonToTransform = !1;
30884
30893
  colorOverLifetime;
@@ -30910,64 +30919,64 @@ class Ue {
30910
30919
  }
30911
30920
  C([
30912
30921
  u()
30913
- ], Ue.prototype, "enabled");
30922
+ ], Ne.prototype, "enabled");
30914
30923
  C([
30915
30924
  u()
30916
- ], Ue.prototype, "attachRibbonToTransform");
30925
+ ], Ne.prototype, "attachRibbonToTransform");
30917
30926
  C([
30918
30927
  u(Wa)
30919
- ], Ue.prototype, "colorOverLifetime");
30928
+ ], Ne.prototype, "colorOverLifetime");
30920
30929
  C([
30921
30930
  u(Wa)
30922
- ], Ue.prototype, "colorOverTrail");
30931
+ ], Ne.prototype, "colorOverTrail");
30923
30932
  C([
30924
30933
  u()
30925
- ], Ue.prototype, "dieWithParticles");
30934
+ ], Ne.prototype, "dieWithParticles");
30926
30935
  C([
30927
30936
  u()
30928
- ], Ue.prototype, "inheritParticleColor");
30937
+ ], Ne.prototype, "inheritParticleColor");
30929
30938
  C([
30930
30939
  u(Y)
30931
- ], Ue.prototype, "lifetime");
30940
+ ], Ne.prototype, "lifetime");
30932
30941
  C([
30933
30942
  u()
30934
- ], Ue.prototype, "lifetimeMultiplier");
30943
+ ], Ne.prototype, "lifetimeMultiplier");
30935
30944
  C([
30936
30945
  u()
30937
- ], Ue.prototype, "minVertexDistance");
30946
+ ], Ne.prototype, "minVertexDistance");
30938
30947
  C([
30939
30948
  u()
30940
- ], Ue.prototype, "mode");
30949
+ ], Ne.prototype, "mode");
30941
30950
  C([
30942
30951
  u()
30943
- ], Ue.prototype, "ratio");
30952
+ ], Ne.prototype, "ratio");
30944
30953
  C([
30945
30954
  u()
30946
- ], Ue.prototype, "ribbonCount");
30955
+ ], Ne.prototype, "ribbonCount");
30947
30956
  C([
30948
30957
  u()
30949
- ], Ue.prototype, "shadowBias");
30958
+ ], Ne.prototype, "shadowBias");
30950
30959
  C([
30951
30960
  u()
30952
- ], Ue.prototype, "sizeAffectsLifetime");
30961
+ ], Ne.prototype, "sizeAffectsLifetime");
30953
30962
  C([
30954
30963
  u()
30955
- ], Ue.prototype, "sizeAffectsWidth");
30964
+ ], Ne.prototype, "sizeAffectsWidth");
30956
30965
  C([
30957
30966
  u()
30958
- ], Ue.prototype, "splitSubEmitterRibbons");
30967
+ ], Ne.prototype, "splitSubEmitterRibbons");
30959
30968
  C([
30960
30969
  u()
30961
- ], Ue.prototype, "textureMode");
30970
+ ], Ne.prototype, "textureMode");
30962
30971
  C([
30963
30972
  u(Y)
30964
- ], Ue.prototype, "widthOverTrail");
30973
+ ], Ne.prototype, "widthOverTrail");
30965
30974
  C([
30966
30975
  u()
30967
- ], Ue.prototype, "widthOverTrailMultiplier");
30976
+ ], Ne.prototype, "widthOverTrailMultiplier");
30968
30977
  C([
30969
30978
  u()
30970
- ], Ue.prototype, "worldSpace");
30979
+ ], Ne.prototype, "worldSpace");
30971
30980
  class Ve {
30972
30981
  enabled;
30973
30982
  space = 0;
@@ -32227,7 +32236,7 @@ Fe([
32227
32236
  u(ve)
32228
32237
  ], jt.prototype, "noise");
32229
32238
  Fe([
32230
- u(Ue)
32239
+ u(Ne)
32231
32240
  ], jt.prototype, "trails");
32232
32241
  Fe([
32233
32242
  u(Ve)
@@ -41895,8 +41904,8 @@ const pL = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
41895
41904
  TextureSheetAnimationModule: Yt,
41896
41905
  TiltShiftEffect: Ds,
41897
41906
  ToneMappingEffect: cr,
41898
- TrailModule: Ue,
41899
- TransformData: ze,
41907
+ TrailModule: Ne,
41908
+ TransformData: Ue,
41900
41909
  TransformGizmo: qa,
41901
41910
  TriggerBuilder: Gt,
41902
41911
  TriggerModel: er,
@@ -42352,8 +42361,8 @@ export {
42352
42361
  cr as ToneMappingEffect,
42353
42362
  Iu as TrackHandler,
42354
42363
  Bi as TrackType,
42355
- Ue as TrailModule,
42356
- ze as TransformData,
42364
+ Ne as TrailModule,
42365
+ Ue as TransformData,
42357
42366
  qa as TransformGizmo,
42358
42367
  Gt as TriggerBuilder,
42359
42368
  er as TriggerModel,
@@ -1,21 +1,6 @@
1
1
  export { }
2
2
 
3
3
 
4
- declare module 'three/examples/jsm/controls/OrbitControls.js' {
5
- interface OrbitControls {
6
- _sphericalDelta: import("three").Spherical;
7
- _rotateLeft: (angleInRadians: number) => void;
8
- _rotateUp: (angleInRadians: number) => void;
9
- _pan: (dx: number, dy: number) => void;
10
- _dollyIn: (dollyScale: number) => void;
11
- _dollyOut: (dollyScale: number) => void;
12
- }
13
- interface OrbitControlsEventMap {
14
- endMovement: Event;
15
- }
16
- }
17
-
18
-
19
4
  declare module 'three' {
20
5
  interface SkinnedMesh {
21
6
  staticGenerator?: StaticGeometryGenerator;
@@ -38,6 +23,21 @@ declare module 'three' {
38
23
  }
39
24
 
40
25
 
26
+ declare module 'three/examples/jsm/controls/OrbitControls.js' {
27
+ interface OrbitControls {
28
+ _sphericalDelta: import("three").Spherical;
29
+ _rotateLeft: (angleInRadians: number) => void;
30
+ _rotateUp: (angleInRadians: number) => void;
31
+ _pan: (dx: number, dy: number) => void;
32
+ _dollyIn: (dollyScale: number) => void;
33
+ _dollyOut: (dollyScale: number) => void;
34
+ }
35
+ interface OrbitControlsEventMap {
36
+ endMovement: Event;
37
+ }
38
+ }
39
+
40
+
41
41
  declare module 'three' {
42
42
  interface Object3D {
43
43
  get guid(): string | undefined;
@@ -1,5 +1,5 @@
1
- import { GameObject as r, onClear as i, onDestroy as a, onInitialized as s, onAfterRender as l, onBeforeRender as d, onUpdate as c, onStart as m, loadAsset as g, NeedleXRSession as p, Context as u, VERSION as S, Component as C, Components as y } from "./needle-engine.bundle-ClHmG8SZ.js";
2
- import { $physicsKey as P, ActionBuilder as T, ActionCollection as b, ActionModel as A, Addressables as M, AlignmentConstraint as I, AmbientMode as O, Animation as D, AnimationCurve as x, AnimationExtension as k, AnimationTrackHandler as L, AnimationUtils as N, Animator as B, AnimatorConditionMode as F, AnimatorController as U, AnimatorControllerParameterType as w, AnimatorStateInfo as G, Antialiasing as W, Application as H, AssetDatabase as X, AssetReference as z, AudioExtension as V, AudioListener as _, AudioSource as j, AudioTrackHandler as K, Avatar as Z, AvatarBlink_Simple as Q, AvatarEyeLook_Rotation as Y, AvatarLoader as $, AvatarMarker as J, AvatarModel as q, Avatar_Brain_LookAt as ee, Avatar_MouthShapes as te, Avatar_MustacheShake as oe, Avatar_POI as re, Axes as ne, AxesHelper as ie, BUILD_TIME as ae, BaseUIComponent as se, BasicIKConstraint as le, BehaviorExtension as de, BehaviorModel as ce, Component$1 as me, BlobStorage as ge, BloomEffect as pe, BoxCollider as ue, BoxGizmo as Se, BoxHelperComponent as Ce, Button as ye, ButtonsFactory as Ee, CallDirection as Re, CallInfo as he, Camera as fe, CameraTargetReachedEvent as ve, Canvas as Pe, CanvasGroup as Te, CapsuleCollider as be, ChangeMaterialOnClick as Ae, ChangeTransformOnClick as Me, CharacterController as Ie, CharacterControllerInput as Oe, ChromaticAberration as De, CircularBuffer as xe, ClearFlags as ke, ClipExtrapolation as Le, Collider as Ne, Collision as Be, CollisionDetectionMode as Fe, ColorAdjustments as Ue, ColorBySpeedModule as we, ColorOverLifetimeModule as Ge, Component$1 as We, ComponentLifecycleEvents as He, ConnectionEvents as Xe, ContactPoint as ze, ContactShadows as Ve, ContextArgs as _e, ContextEvent as je, ContextRegistry as Ke, ControlTrackHandler as Ze, CustomBranding as Qe, CustomShader as Ye, DefaultReflectionMode as $e, Deletable as Je, DeleteBox as qe, DepthOfField as et, DeviceFlag as tt, DeviceUtilities as ot, DocumentExtension as rt, DragControls as nt, DragMode as it, DropListener as at, Duplicatable as st, EffectWrapper as lt, EmissionModule as dt, EmphasizeOnClick as ct, EngineLoadingView as mt, EnvironmentScene as gt, EventList as pt, EventListEvent as ut, EventSystem as St, EventTrigger as Ct, FieldWithDefault as yt, FileReference as Et, FileReferenceSerializer as Rt, FileSpawnModel as ht, File_Event as ft, FixedJoint as vt, Fog as Pt, FrameEvent as Tt, GENERATOR as bt, Gizmos as At, GltfExport as Mt, GltfExportBox as It, Gradient as Ot, Graphic as Dt, GraphicRaycaster as xt, Graphics as kt, GridHelper as Lt, GridLayoutGroup as Nt, GroundProjectedEnv as Bt, GroupActionModel as Ft, HideFlags as Ut, HideOnStart as wt, HingeJoint as Gt, HorizontalLayoutGroup as Wt, HostData as Ht, Image as Xt, ImageReference as zt, ImageReferenceSerializer as Vt, InheritVelocityModule as _t, Input as jt, InputEventQueue as Kt, InputEvents as Zt, InputField as Qt, InstanceHandle as Yt, InstancingHandler as $t, InstancingUtil as Jt, InstantiateEvent as qt, InstantiateIdProvider as eo, InstantiateOptions as to, Interactable as oo, InternalScreenshotUtils as ro, JoinedRoomResponse as no, KeyEventArgs as io, Keyframe as ao, LODGroup as so, LODModel as lo, LeftRoomResponse as co, Light as mo, LightData as go, LimitVelocityOverLifetimeModule as po, LoadingElementOptions as uo, LogStats as So, LogType as Co, LookAt as yo, LookAtConstraint as Eo, MainModule as Ro, MarkerType as ho, MaskableGraphic as fo, Mathf as vo, MeshCollider as Po, MeshRenderer as To, MinMaxCurve as bo, MinMaxGradient as Ao, MODULES as Mo, NEKeyboardEvent as Io, NEPointerEvent as Oo, NeedleButtonElement as Do, ContextRegistry as xo, NeedleEngineModelLoader as ko, NeedleEngineWebComponent as Lo, NeedleMenu as No, NeedlePatchesKey as Bo, USDZExporter$1 as Fo, NeedleXRController as Uo, NeedleXRSync as wo, NeedleXRUtils as Go, NestedGltf as Wo, NetworkConnection as Ho, NetworkedStreamEvents as Xo, NetworkedStreams as zo, Networking as Vo, NewInstanceModel as _o, NoiseModule as jo, ObjectRaycaster as Ko, ObjectUtils as Zo, OffsetConstraint as Qo, OneEuroFilter as Yo, OneEuroFilterXYZ as $o, OpenURL as Jo, OrbitControls as qo, Outline as er, OwnershipEvent as tr, OwnershipModel as or, PUBLIC_KEY as rr, Padding as nr, ParticleBurst as ir, ParticleSubEmitter as ar, ParticleSystem as sr, ParticleSystemBaseBehaviour as lr, ParticleSystemRenderer as dr, ParticleSystemShapeType as cr, PeerHandle as mr, PeerNetworking as gr, Physics as pr, PhysicsExtension as ur, PhysicsMaterialCombine as Sr, PixelationEffect as Cr, PlayAnimationOnClick as yr, PlayAudioOnClick as Er, PlayableDirector as Rr, PlayerColor as hr, PlayerState as fr, PlayerStateEvent as vr, PlayerSync as Pr, PlayerView as Tr, PlayerViewManager as br, PointerEventData as Ar, PointerType as Mr, PostProcessingEffect as Ir, PostProcessingEffectOrder as Or, PostProcessingHandler as Dr, Volume as xr, PreliminaryAction as kr, PreliminaryTrigger as Lr, PreviewHelper as Nr, PrimitiveType as Br, Progress as Fr, PromiseAllWithErrors as Ur, PromiseErrorResult as wr, RGBAColor as Gr, RapierPhysics as Wr, RawImage as Hr, RaycastOptions as Xr, Rect as zr, RectTransform as Vr, ReflectionProbe as _r, RegisteredAnimationInfo as jr, RemoteSkybox as Kr, RenderTexture as Zr, RenderTextureSerializer as Qr, Renderer as Yr, RendererData as $r, RendererLightmap as Jr, Rigidbody as qr, RigidbodyConstraints as en, RoomEvents as tn, RotationBySpeedModule as on, RotationOverLifetimeModule as rn, SceneLightSettings as nn, SceneSwitcher as an, ScreenCapture as sn, ScreenSpaceAmbientOcclusion as ln, ScreenSpaceAmbientOcclusionN8 as dn, SendQueue as cn, SerializationContext as mn, SetActiveOnClick as gn, ShadowCatcher as pn, ShapeModule as un, ShapeOverlapResult as Sn, SharpeningEffect as Cn, SignalAsset as yn, SignalReceiver as En, SignalReceiverEvent as Rn, SignalTrackHandler as hn, Size as fn, SizeBySpeedModule as vn, SizeOverLifetimeModule as Pn, SkinnedMeshRenderer as Tn, SmoothFollow as bn, SpatialGrabRaycaster as An, SpatialHtml as Mn, SpatialTrigger as In, SpatialTriggerReceiver as On, SpectatorCamera as Dn, SphereCollider as xn, SphereIntersection as kn, Sprite as Ln, SpriteData as Nn, SpriteRenderer as Bn, SpriteSheet as Fn, StateMachineBehaviour as Un, StreamEndedEvent as wn, StreamReceivedEvent as Gn, SubEmitterSystem as Wn, SyncedCamera as Hn, SyncedRoom as Xn, SyncedTransform as zn, TapGestureTrigger as Vn, TeleportTarget as _n, TestRunner as jn, TestSceneUtils as Kn, TestSimulateUserData as Zn, Text as Qn, TextBuilder as Yn, TextExtension as $n, TextureSheetAnimationModule as Jn, TiltShiftEffect as qn, Time as ei, ToneMappingEffect as ti, TrackHandler as oi, TrackType as ri, TrailModule as ni, TransformData as ii, TransformGizmo as ai, TriggerBuilder as si, TriggerModel as li, TypeStore as di, UIRaycastUtils as ci, UIRootComponent as mi, USDDocument as gi, USDObject as pi, USDWriter as ui, USDZExporter as Si, USDZText as Ci, USDZUIExtension as yi, UriSerializer as Ei, UsageMarker as Ri, UserJoinedOrLeftRoomModel as hi, VariantAction as fi, VelocityOverLifetimeModule as vi, VerticalLayoutGroup as Pi, VideoPlayer as Ti, ViewDevice as bi, Vignette as Ai, VisibilityAction as Mi, Voip as Ii, Volume as Oi, VolumeParameter as Di, VolumeProfile as xi, WaitForFrames as ki, WaitForPromise as Li, WaitForSeconds as Ni, Watch as Bi, WebARCameraBackground as Fi, WebARSessionRoot as Ui, WebXR as wi, WebXRButtonFactory as Gi, WebXRImageTracking as Wi, WebXRImageTrackingModel as Hi, WebXRPlaneTracking as Xi, WebXRTrackedImage as zi, XRControllerFollow as Vi, XRControllerModel as _i, XRControllerMovement as ji, XRFlag as Ki, XRRig as Zi, XRState as Qi, XRStateFlag as Yi, __Ignore as $i, __internalNotifyObjectDestroyed as Ji, activeInHierarchyFieldName as qi, addAttributeChangeCallback as ea, addComponent as ta, addCustomExtensionPlugin as oa, addNewComponent as ra, addPatch as na, apply as ia, applyHMRChanges as aa, applyPrototypeExtensions as sa, beginListenDestroy as la, beginListenInstantiate as da, binaryIdentifierCasts as ca, build_scene_functions as ma, builtinComponentKeyName as ga, calculateProgress01 as pa, clearMessages as ua, clearMessages as Sa, colorSerializer as Ca, compareAssociation as ya, componentSerializer as Ea, copyTexture as Ra, createMotion as ha, debugNet as fa, debugOwner as va, decompressGpuTexture as Pa, deepClone as Ta, delay as ba, delayForFrames as Aa, deserializeObject as Ma, destroy as Ia, destroyComponentInstance as Oa, determineMimeTypeFromExtension as Da, disposeObjectResources as xa, disposeStream as ka, editorGuidKeyName as La, enableSpatialConsole as Na, euler as Ba, eventListSerializer as Fa, exportAsGLTF as Ua, findByGuid as wa, findObjectOfType as Ga, findObjectsOfType as Wa, findResourceUsers as Ha, fitObjectIntoVolume as Xa, foreachComponent as za, foreachComponentEnumerator as Va, forward as _a, generateQRCode as ja, generateSeed as Ka, getBoundingBox as Za, getCameraController as Qa, getComponent as Ya, getComponentInChildren as $a, getComponentInParent as Ja, getComponents as qa, getComponentsInChildren as es, getComponentsInParent as ts, getFormattedDate as os, getIconElement as rs, getIconTexture as ns, getLoader as is, getOrAddComponent as as, getParam as ss, getParentHierarchyPath as ls, getPath as ds, getPeerOptions as cs, getPeerjsInstance as ms, getResourceUserCount as gs, getTempColor as ps, getTempQuaternion as us, getTempVector as Ss, getUrlParams as Cs, getVisibleInCustomShadowRendering as ys, getWorldDirection as Es, getWorldEuler as Rs, getWorldPosition as hs, getWorldQuaternion as fs, getWorldRotation as vs, getWorldScale as Ps, hasCommercialLicense as Ts, hasIndieLicense as bs, hasPointerEventComponent as As, hasProLicense as Ms, hideDebugConsole as Is, imageToCanvas as Os, instantiate as Ds, invokeLoadedImportPluginHooks as xs, invokeXRSessionEnd as ks, invokeXRSessionStart as Ls, isActiveInHierarchy as Ns, isActiveSelf as Bs, isAndroidDevice as Fs, isAnimationAction as Us, isComponent as ws, isDebugMode as Gs, isDesktop as Ws, isDestroyed as Hs, isDevEnvironment as Xs, isDisposed as zs, isExporting as Vs, isGLTFModel as _s, isHostedOnGlitch as js, isHotReloadEnabled as Ks, isHotReloading as Zs, isIPad as Qs, isIconElement as Ys, isLocalNetwork as $s, isMacOS as Js, isMobileDevice as qs, isMozillaXR as el, isQuest as tl, isResourceTrackingEnabled as ol, isSafari as rl, isUsingInstancing as nl, isiOS as il, isiPad as al, loadSync as sl, logHierarchy as ll, lookAtInverse as dl, lookAtObject as cl, lookAtScreenPoint as ml, makeId as gl, makeIdFromRandomWords as pl, makeNameSafe as ul, markAsInstancedRendered as Sl, microphonePermissionsGranted as Cl, nameof as yl, nameofFactory as El, objectSerializer as Rl, offXRSessionEnd as hl, offXRSessionStart as fl, onXRSessionEnd as vl, onXRSessionStart as Pl, parseSync as Tl, placeOnSurface as bl, postprocessFBXMaterials as Al, prefix as Ml, pushState as Il, randomNumber as Ol, registerBinaryType as Dl, registerComponent as xl, registerComponentExtension as kl, registerCustomEffectType as Ll, registerExportExtensions as Nl, registerExtensions as Bl, registerHotReloadType as Fl, registerLoader as Ul, registerPrefabProvider as wl, registerPrototypeExtensions as Gl, registerType as Wl, relativePathPrefix as Hl, removeAttributeChangeCallback as Xl, removeComponent as zl, removeCustomImportExtensionType as Vl, removePatch as _l, resolveUrl as jl, sanitizeString as Kl, saveImage as Zl, screenshot as Ql, screenshot2 as Yl, sendDestroyed as $l, serializable as Jl, serializeObject as ql, serializeable as ed, setActive as td, setAllowBalloonMessages as od, setAllowOverlayMessages as rd, setAutoFitEnabled as nd, setCameraController as id, setDestroyed as ad, setDevEnvironment as sd, setDisposable as ld, setDontDestroy as dd, setOrAddParamsToUrl as cd, setParam as md, setParamWithoutReload as gd, setPeerOptions as pd, setResourceTrackingEnabled as ud, setState as Sd, setVisibleInCustomShadowRendering as Cd, setWorldEuler as yd, setWorldPosition as Ed, setWorldPositionXYZ as Rd, setWorldQuaternion as hd, setWorldQuaternionXYZW as fd, setWorldRotation as vd, setWorldRotationXYZ as Pd, setWorldScale as Td, showBalloonError as bd, showBalloonMessage as Ad, showBalloonWarning as Md, showDebugConsole as Id, slerp as Od, syncDestroy as Dd, syncField as xd, syncInstantiate as kd, textureToCanvas as Ld, tryCastBinary as Nd, tryDetermineMimetypeFromBinary as Bd, tryDetermineMimetypeFromURL as Fd, tryFindObject as Ud, tryGetGuid as wd, unregisterHotReloadType as Gd, unwatchWrite as Wd, useForAutoFit as Hd, validate as Xd, watchWrite as zd } from "./needle-engine.bundle-ClHmG8SZ.js";
1
+ import { GameObject as r, onClear as i, onDestroy as a, onInitialized as s, onAfterRender as l, onBeforeRender as d, onUpdate as c, onStart as m, loadAsset as g, NeedleXRSession as p, Context as u, VERSION as S, Component as C, Components as y } from "./needle-engine.bundle-DbnDoLkt.js";
2
+ import { $physicsKey as P, ActionBuilder as T, ActionCollection as b, ActionModel as A, Addressables as M, AlignmentConstraint as I, AmbientMode as O, Animation as D, AnimationCurve as x, AnimationExtension as k, AnimationTrackHandler as L, AnimationUtils as N, Animator as B, AnimatorConditionMode as F, AnimatorController as U, AnimatorControllerParameterType as w, AnimatorStateInfo as G, Antialiasing as W, Application as H, AssetDatabase as X, AssetReference as z, AudioExtension as V, AudioListener as _, AudioSource as j, AudioTrackHandler as K, Avatar as Z, AvatarBlink_Simple as Q, AvatarEyeLook_Rotation as Y, AvatarLoader as $, AvatarMarker as J, AvatarModel as q, Avatar_Brain_LookAt as ee, Avatar_MouthShapes as te, Avatar_MustacheShake as oe, Avatar_POI as re, Axes as ne, AxesHelper as ie, BUILD_TIME as ae, BaseUIComponent as se, BasicIKConstraint as le, BehaviorExtension as de, BehaviorModel as ce, Component$1 as me, BlobStorage as ge, BloomEffect as pe, BoxCollider as ue, BoxGizmo as Se, BoxHelperComponent as Ce, Button as ye, ButtonsFactory as Ee, CallDirection as Re, CallInfo as he, Camera as fe, CameraTargetReachedEvent as ve, Canvas as Pe, CanvasGroup as Te, CapsuleCollider as be, ChangeMaterialOnClick as Ae, ChangeTransformOnClick as Me, CharacterController as Ie, CharacterControllerInput as Oe, ChromaticAberration as De, CircularBuffer as xe, ClearFlags as ke, ClipExtrapolation as Le, Collider as Ne, Collision as Be, CollisionDetectionMode as Fe, ColorAdjustments as Ue, ColorBySpeedModule as we, ColorOverLifetimeModule as Ge, Component$1 as We, ComponentLifecycleEvents as He, ConnectionEvents as Xe, ContactPoint as ze, ContactShadows as Ve, ContextArgs as _e, ContextEvent as je, ContextRegistry as Ke, ControlTrackHandler as Ze, CustomBranding as Qe, CustomShader as Ye, DefaultReflectionMode as $e, Deletable as Je, DeleteBox as qe, DepthOfField as et, DeviceFlag as tt, DeviceUtilities as ot, DocumentExtension as rt, DragControls as nt, DragMode as it, DropListener as at, Duplicatable as st, EffectWrapper as lt, EmissionModule as dt, EmphasizeOnClick as ct, EngineLoadingView as mt, EnvironmentScene as gt, EventList as pt, EventListEvent as ut, EventSystem as St, EventTrigger as Ct, FieldWithDefault as yt, FileReference as Et, FileReferenceSerializer as Rt, FileSpawnModel as ht, File_Event as ft, FixedJoint as vt, Fog as Pt, FrameEvent as Tt, GENERATOR as bt, Gizmos as At, GltfExport as Mt, GltfExportBox as It, Gradient as Ot, Graphic as Dt, GraphicRaycaster as xt, Graphics as kt, GridHelper as Lt, GridLayoutGroup as Nt, GroundProjectedEnv as Bt, GroupActionModel as Ft, HideFlags as Ut, HideOnStart as wt, HingeJoint as Gt, HorizontalLayoutGroup as Wt, HostData as Ht, Image as Xt, ImageReference as zt, ImageReferenceSerializer as Vt, InheritVelocityModule as _t, Input as jt, InputEventQueue as Kt, InputEvents as Zt, InputField as Qt, InstanceHandle as Yt, InstancingHandler as $t, InstancingUtil as Jt, InstantiateEvent as qt, InstantiateIdProvider as eo, InstantiateOptions as to, Interactable as oo, InternalScreenshotUtils as ro, JoinedRoomResponse as no, KeyEventArgs as io, Keyframe as ao, LODGroup as so, LODModel as lo, LeftRoomResponse as co, Light as mo, LightData as go, LimitVelocityOverLifetimeModule as po, LoadingElementOptions as uo, LogStats as So, LogType as Co, LookAt as yo, LookAtConstraint as Eo, MainModule as Ro, MarkerType as ho, MaskableGraphic as fo, Mathf as vo, MeshCollider as Po, MeshRenderer as To, MinMaxCurve as bo, MinMaxGradient as Ao, MODULES as Mo, NEKeyboardEvent as Io, NEPointerEvent as Oo, NeedleButtonElement as Do, ContextRegistry as xo, NeedleEngineModelLoader as ko, NeedleEngineWebComponent as Lo, NeedleMenu as No, NeedlePatchesKey as Bo, USDZExporter$1 as Fo, NeedleXRController as Uo, NeedleXRSync as wo, NeedleXRUtils as Go, NestedGltf as Wo, NetworkConnection as Ho, NetworkedStreamEvents as Xo, NetworkedStreams as zo, Networking as Vo, NewInstanceModel as _o, NoiseModule as jo, ObjectRaycaster as Ko, ObjectUtils as Zo, OffsetConstraint as Qo, OneEuroFilter as Yo, OneEuroFilterXYZ as $o, OpenURL as Jo, OrbitControls as qo, Outline as er, OwnershipEvent as tr, OwnershipModel as or, PUBLIC_KEY as rr, Padding as nr, ParticleBurst as ir, ParticleSubEmitter as ar, ParticleSystem as sr, ParticleSystemBaseBehaviour as lr, ParticleSystemRenderer as dr, ParticleSystemShapeType as cr, PeerHandle as mr, PeerNetworking as gr, Physics as pr, PhysicsExtension as ur, PhysicsMaterialCombine as Sr, PixelationEffect as Cr, PlayAnimationOnClick as yr, PlayAudioOnClick as Er, PlayableDirector as Rr, PlayerColor as hr, PlayerState as fr, PlayerStateEvent as vr, PlayerSync as Pr, PlayerView as Tr, PlayerViewManager as br, PointerEventData as Ar, PointerType as Mr, PostProcessingEffect as Ir, PostProcessingEffectOrder as Or, PostProcessingHandler as Dr, Volume as xr, PreliminaryAction as kr, PreliminaryTrigger as Lr, PreviewHelper as Nr, PrimitiveType as Br, Progress as Fr, PromiseAllWithErrors as Ur, PromiseErrorResult as wr, RGBAColor as Gr, RapierPhysics as Wr, RawImage as Hr, RaycastOptions as Xr, Rect as zr, RectTransform as Vr, ReflectionProbe as _r, RegisteredAnimationInfo as jr, RemoteSkybox as Kr, RenderTexture as Zr, RenderTextureSerializer as Qr, Renderer as Yr, RendererData as $r, RendererLightmap as Jr, Rigidbody as qr, RigidbodyConstraints as en, RoomEvents as tn, RotationBySpeedModule as on, RotationOverLifetimeModule as rn, SceneLightSettings as nn, SceneSwitcher as an, ScreenCapture as sn, ScreenSpaceAmbientOcclusion as ln, ScreenSpaceAmbientOcclusionN8 as dn, SendQueue as cn, SerializationContext as mn, SetActiveOnClick as gn, ShadowCatcher as pn, ShapeModule as un, ShapeOverlapResult as Sn, SharpeningEffect as Cn, SignalAsset as yn, SignalReceiver as En, SignalReceiverEvent as Rn, SignalTrackHandler as hn, Size as fn, SizeBySpeedModule as vn, SizeOverLifetimeModule as Pn, SkinnedMeshRenderer as Tn, SmoothFollow as bn, SpatialGrabRaycaster as An, SpatialHtml as Mn, SpatialTrigger as In, SpatialTriggerReceiver as On, SpectatorCamera as Dn, SphereCollider as xn, SphereIntersection as kn, Sprite as Ln, SpriteData as Nn, SpriteRenderer as Bn, SpriteSheet as Fn, StateMachineBehaviour as Un, StreamEndedEvent as wn, StreamReceivedEvent as Gn, SubEmitterSystem as Wn, SyncedCamera as Hn, SyncedRoom as Xn, SyncedTransform as zn, TapGestureTrigger as Vn, TeleportTarget as _n, TestRunner as jn, TestSceneUtils as Kn, TestSimulateUserData as Zn, Text as Qn, TextBuilder as Yn, TextExtension as $n, TextureSheetAnimationModule as Jn, TiltShiftEffect as qn, Time as ei, ToneMappingEffect as ti, TrackHandler as oi, TrackType as ri, TrailModule as ni, TransformData as ii, TransformGizmo as ai, TriggerBuilder as si, TriggerModel as li, TypeStore as di, UIRaycastUtils as ci, UIRootComponent as mi, USDDocument as gi, USDObject as pi, USDWriter as ui, USDZExporter as Si, USDZText as Ci, USDZUIExtension as yi, UriSerializer as Ei, UsageMarker as Ri, UserJoinedOrLeftRoomModel as hi, VariantAction as fi, VelocityOverLifetimeModule as vi, VerticalLayoutGroup as Pi, VideoPlayer as Ti, ViewDevice as bi, Vignette as Ai, VisibilityAction as Mi, Voip as Ii, Volume as Oi, VolumeParameter as Di, VolumeProfile as xi, WaitForFrames as ki, WaitForPromise as Li, WaitForSeconds as Ni, Watch as Bi, WebARCameraBackground as Fi, WebARSessionRoot as Ui, WebXR as wi, WebXRButtonFactory as Gi, WebXRImageTracking as Wi, WebXRImageTrackingModel as Hi, WebXRPlaneTracking as Xi, WebXRTrackedImage as zi, XRControllerFollow as Vi, XRControllerModel as _i, XRControllerMovement as ji, XRFlag as Ki, XRRig as Zi, XRState as Qi, XRStateFlag as Yi, __Ignore as $i, __internalNotifyObjectDestroyed as Ji, activeInHierarchyFieldName as qi, addAttributeChangeCallback as ea, addComponent as ta, addCustomExtensionPlugin as oa, addNewComponent as ra, addPatch as na, apply as ia, applyHMRChanges as aa, applyPrototypeExtensions as sa, beginListenDestroy as la, beginListenInstantiate as da, binaryIdentifierCasts as ca, build_scene_functions as ma, builtinComponentKeyName as ga, calculateProgress01 as pa, clearMessages as ua, clearMessages as Sa, colorSerializer as Ca, compareAssociation as ya, componentSerializer as Ea, copyTexture as Ra, createMotion as ha, debugNet as fa, debugOwner as va, decompressGpuTexture as Pa, deepClone as Ta, delay as ba, delayForFrames as Aa, deserializeObject as Ma, destroy as Ia, destroyComponentInstance as Oa, determineMimeTypeFromExtension as Da, disposeObjectResources as xa, disposeStream as ka, editorGuidKeyName as La, enableSpatialConsole as Na, euler as Ba, eventListSerializer as Fa, exportAsGLTF as Ua, findByGuid as wa, findObjectOfType as Ga, findObjectsOfType as Wa, findResourceUsers as Ha, fitObjectIntoVolume as Xa, foreachComponent as za, foreachComponentEnumerator as Va, forward as _a, generateQRCode as ja, generateSeed as Ka, getBoundingBox as Za, getCameraController as Qa, getComponent as Ya, getComponentInChildren as $a, getComponentInParent as Ja, getComponents as qa, getComponentsInChildren as es, getComponentsInParent as ts, getFormattedDate as os, getIconElement as rs, getIconTexture as ns, getLoader as is, getOrAddComponent as as, getParam as ss, getParentHierarchyPath as ls, getPath as ds, getPeerOptions as cs, getPeerjsInstance as ms, getResourceUserCount as gs, getTempColor as ps, getTempQuaternion as us, getTempVector as Ss, getUrlParams as Cs, getVisibleInCustomShadowRendering as ys, getWorldDirection as Es, getWorldEuler as Rs, getWorldPosition as hs, getWorldQuaternion as fs, getWorldRotation as vs, getWorldScale as Ps, hasCommercialLicense as Ts, hasIndieLicense as bs, hasPointerEventComponent as As, hasProLicense as Ms, hideDebugConsole as Is, imageToCanvas as Os, instantiate as Ds, invokeLoadedImportPluginHooks as xs, invokeXRSessionEnd as ks, invokeXRSessionStart as Ls, isActiveInHierarchy as Ns, isActiveSelf as Bs, isAndroidDevice as Fs, isAnimationAction as Us, isComponent as ws, isDebugMode as Gs, isDesktop as Ws, isDestroyed as Hs, isDevEnvironment as Xs, isDisposed as zs, isExporting as Vs, isGLTFModel as _s, isHostedOnGlitch as js, isHotReloadEnabled as Ks, isHotReloading as Zs, isIPad as Qs, isIconElement as Ys, isLocalNetwork as $s, isMacOS as Js, isMobileDevice as qs, isMozillaXR as el, isQuest as tl, isResourceTrackingEnabled as ol, isSafari as rl, isUsingInstancing as nl, isiOS as il, isiPad as al, loadSync as sl, logHierarchy as ll, lookAtInverse as dl, lookAtObject as cl, lookAtScreenPoint as ml, makeId as gl, makeIdFromRandomWords as pl, makeNameSafe as ul, markAsInstancedRendered as Sl, microphonePermissionsGranted as Cl, nameof as yl, nameofFactory as El, objectSerializer as Rl, offXRSessionEnd as hl, offXRSessionStart as fl, onXRSessionEnd as vl, onXRSessionStart as Pl, parseSync as Tl, placeOnSurface as bl, postprocessFBXMaterials as Al, prefix as Ml, pushState as Il, randomNumber as Ol, registerBinaryType as Dl, registerComponent as xl, registerComponentExtension as kl, registerCustomEffectType as Ll, registerExportExtensions as Nl, registerExtensions as Bl, registerHotReloadType as Fl, registerLoader as Ul, registerPrefabProvider as wl, registerPrototypeExtensions as Gl, registerType as Wl, relativePathPrefix as Hl, removeAttributeChangeCallback as Xl, removeComponent as zl, removeCustomImportExtensionType as Vl, removePatch as _l, resolveUrl as jl, sanitizeString as Kl, saveImage as Zl, screenshot as Ql, screenshot2 as Yl, sendDestroyed as $l, serializable as Jl, serializeObject as ql, serializeable as ed, setActive as td, setAllowBalloonMessages as od, setAllowOverlayMessages as rd, setAutoFitEnabled as nd, setCameraController as id, setDestroyed as ad, setDevEnvironment as sd, setDisposable as ld, setDontDestroy as dd, setOrAddParamsToUrl as cd, setParam as md, setParamWithoutReload as gd, setPeerOptions as pd, setResourceTrackingEnabled as ud, setState as Sd, setVisibleInCustomShadowRendering as Cd, setWorldEuler as yd, setWorldPosition as Ed, setWorldPositionXYZ as Rd, setWorldQuaternion as hd, setWorldQuaternionXYZW as fd, setWorldRotation as vd, setWorldRotationXYZ as Pd, setWorldScale as Td, showBalloonError as bd, showBalloonMessage as Ad, showBalloonWarning as Md, showDebugConsole as Id, slerp as Od, syncDestroy as Dd, syncField as xd, syncInstantiate as kd, textureToCanvas as Ld, tryCastBinary as Nd, tryDetermineMimetypeFromBinary as Bd, tryDetermineMimetypeFromURL as Fd, tryFindObject as Ud, tryGetGuid as wd, unregisterHotReloadType as Gd, unwatchWrite as Wd, useForAutoFit as Hd, validate as Xd, watchWrite as zd } from "./needle-engine.bundle-DbnDoLkt.js";
3
3
  import { NEEDLE_progressive as _d } from "./gltf-progressive-Do1XJNMG.js";
4
4
  import { THREE as E } from "./three-DrqIzZTH.js";
5
5
  const t = {