manim-web 0.22.0 → 0.23.0

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.
@@ -47011,7 +47011,7 @@ var pE = class e {
47011
47011
  if (this.isHeadless) throw Error("export() is not available in headless mode. Create a Scene with a container for rendering and exporting.");
47012
47012
  let n = e.slice(e.lastIndexOf(".")).toLowerCase(), r;
47013
47013
  if (n === ".gif") {
47014
- let { GifExporter: n } = await Promise.resolve().then(() => FB);
47014
+ let { GifExporter: n } = await Promise.resolve().then(() => HB);
47015
47015
  r = await new n(this, {
47016
47016
  fps: t?.fps,
47017
47017
  quality: t?.quality,
@@ -47023,7 +47023,7 @@ var pE = class e {
47023
47023
  workers: t?.workers
47024
47024
  }).exportTimeline(t?.duration), n.download(r, e);
47025
47025
  } else if (n === ".webm" || n === ".mp4" || n === ".mov") {
47026
- let { VideoExporter: i } = await Promise.resolve().then(() => zB), a = n === ".mp4" ? "mp4" : n === ".mov" ? "mov" : "webm";
47026
+ let { VideoExporter: i } = await Promise.resolve().then(() => KB), a = n === ".mp4" ? "mp4" : n === ".mov" ? "mov" : "webm";
47027
47027
  r = await new i(this, {
47028
47028
  fps: t?.fps,
47029
47029
  quality: t?.quality,
@@ -69595,11 +69595,259 @@ var fI = class e extends c_ {
69595
69595
  dispose() {
69596
69596
  super.dispose(), this._video &&= (this._video.pause(), this._video.removeAttribute("src"), this._video.load(), null), this._texture &&= (this._texture.dispose(), null);
69597
69597
  }
69598
- }, pI = 100, mI = 2, hI = 3;
69599
- function gI(e, t, n) {
69598
+ }, pI = null;
69599
+ function mI(e) {
69600
+ pI = e;
69601
+ }
69602
+ async function hI() {
69603
+ let t = await import("./lottie-fy5zaR1g.js").then((t) => /* @__PURE__ */ e(t.default, 1));
69604
+ return t.default ?? t;
69605
+ }
69606
+ async function gI(e) {
69607
+ return e || (pI ? pI() : hI());
69608
+ }
69609
+ var _I = 512, vI = 30, yI = class e extends c_ {
69610
+ _animationData;
69611
+ _loop;
69612
+ _speed;
69613
+ _width;
69614
+ _height;
69615
+ _scaleToFit;
69616
+ _centerPoint;
69617
+ _doubleSided;
69618
+ _injectedPlayer;
69619
+ _canvas = null;
69620
+ _texture = null;
69621
+ _animation = null;
69622
+ _totalFrames = 0;
69623
+ _frameRate = vI;
69624
+ _naturalWidth = _I;
69625
+ _naturalHeight = _I;
69626
+ _loaded = !1;
69627
+ _loadError = null;
69628
+ _playing = !1;
69629
+ _playhead = 0;
69630
+ _mesh = null;
69631
+ _loadPromise;
69632
+ _loadResolve = null;
69633
+ _loadReject = null;
69634
+ constructor(e) {
69635
+ super();
69636
+ let { animationData: t, loop: n = !1, speed: r = 1, width: i, height: a, scaleToFit: o = !0, center: s = [
69637
+ 0,
69638
+ 0,
69639
+ 0
69640
+ ], opacity: c = 1, doubleSided: l = !1, player: u } = e;
69641
+ this._animationData = t, this._loop = n, this._speed = r, this._width = i, this._height = a, this._scaleToFit = o, this._centerPoint = [...s], this._doubleSided = l, this._opacity = c, this._injectedPlayer = u, t && (this._naturalWidth = t.w ?? _I, this._naturalHeight = t.h ?? _I, typeof t.fr == "number" && t.fr > 0 && (this._frameRate = t.fr)), this.position.set(s[0], s[1], s[2]), this._loadPromise = new Promise((e, t) => {
69642
+ this._loadResolve = e, this._loadReject = t;
69643
+ }), this.addUpdater((e, t) => {
69644
+ this._playing && (this._playhead += t * this._speed, this._applyTime(this._playhead));
69645
+ }), this._createCanvasTexture(), this._load();
69646
+ }
69647
+ static async fromUrl(t, n = {}) {
69648
+ let { fetchImpl: r, ...i } = n, a = r ?? (typeof fetch < "u" ? fetch : void 0);
69649
+ if (!a) throw Error("Failed to load Lottie: no fetch available (no DOM/network)");
69650
+ let o = await a(t);
69651
+ if (!o.ok) throw Error(`Failed to load Lottie from "${t}": HTTP ${o.status}`);
69652
+ let s = await o.json(), c = new e({
69653
+ ...i,
69654
+ animationData: s
69655
+ });
69656
+ return await c.waitForLoad(), c;
69657
+ }
69658
+ _createCanvasTexture() {
69659
+ if (typeof document > "u" || typeof document.createElement != "function") return;
69660
+ let e = document.createElement("canvas");
69661
+ e.width = Math.max(1, Math.round(this._naturalWidth)), e.height = Math.max(1, Math.round(this._naturalHeight)), this._canvas = e;
69662
+ let t = new We(e);
69663
+ t.colorSpace = dn, t.minFilter = qe, t.magFilter = qe, this._texture = t;
69664
+ }
69665
+ async _load() {
69666
+ if (!this._animationData) {
69667
+ this._failLoad(/* @__PURE__ */ Error("Failed to load Lottie: no animationData provided"));
69668
+ return;
69669
+ }
69670
+ if (!this._canvas) {
69671
+ this._failLoad(/* @__PURE__ */ Error("Failed to load Lottie: no DOM (canvas is unavailable)"));
69672
+ return;
69673
+ }
69674
+ try {
69675
+ let e = await gI(this._injectedPlayer), t = this._canvas.getContext("2d") ?? void 0, n = e.loadAnimation({
69676
+ container: this._canvas,
69677
+ renderer: "canvas",
69678
+ loop: this._loop,
69679
+ autoplay: !1,
69680
+ animationData: this._animationData,
69681
+ rendererSettings: {
69682
+ context: t,
69683
+ canvas: this._canvas,
69684
+ clearCanvas: !0
69685
+ }
69686
+ });
69687
+ this._animation = n, this._totalFrames = n.totalFrames > 0 ? n.totalFrames : 0, n.frameRate > 0 && (this._frameRate = n.frameRate), this._speed !== 1 && typeof n.setSpeed == "function" && n.setSpeed(this._speed), this._loaded = !0, this._seekFrame(0), this._updateGeometry(), this._markDirty(), this._loadResolve && (this._loadResolve(), this._loadResolve = null, this._loadReject = null);
69688
+ } catch (e) {
69689
+ let t = e instanceof Error ? e.message : String(e);
69690
+ this._failLoad(/* @__PURE__ */ Error(`Failed to load Lottie: ${t}`));
69691
+ }
69692
+ }
69693
+ _failLoad(e) {
69694
+ this._loadError = e, this._loadReject && (this._loadReject(e), this._loadReject = null, this._loadResolve = null);
69695
+ }
69696
+ async waitForLoad() {
69697
+ return this._loadPromise;
69698
+ }
69699
+ getLoadError() {
69700
+ return this._loadError;
69701
+ }
69702
+ isLoaded() {
69703
+ return this._loaded;
69704
+ }
69705
+ getTotalFrames() {
69706
+ return this._totalFrames;
69707
+ }
69708
+ getFrameRate() {
69709
+ return this._frameRate;
69710
+ }
69711
+ get duration() {
69712
+ return this._frameRate > 0 ? this._totalFrames / this._frameRate : 0;
69713
+ }
69714
+ _frameForTime(e) {
69715
+ let t = this._totalFrames;
69716
+ if (t <= 0) return 0;
69717
+ let n = e * (this._frameRate > 0 ? this._frameRate : vI) * this._speed;
69718
+ return n = this._loop ? (n % t + t) % t : Math.max(0, Math.min(n, t)), n;
69719
+ }
69720
+ _seekFrame(e) {
69721
+ this._animation && this._animation.goToAndStop(e, !0), this._texture && (this._texture.needsUpdate = !0);
69722
+ }
69723
+ _applyTime(e) {
69724
+ this._seekFrame(this._frameForTime(e));
69725
+ }
69726
+ syncToTime(e) {
69727
+ return this._playhead = e, this._applyTime(e), this;
69728
+ }
69729
+ seekToProgress(e) {
69730
+ let t = this._totalFrames;
69731
+ if (t <= 0) return this;
69732
+ let n = e * t;
69733
+ return n = this._loop ? (n % t + t) % t : Math.max(0, Math.min(n, t)), this._playhead = this._frameRate > 0 ? n / (this._frameRate * this._speed) : 0, this._seekFrame(n), this;
69734
+ }
69735
+ play() {
69736
+ return this._playing = !0, this;
69737
+ }
69738
+ pause() {
69739
+ return this._playing = !1, this;
69740
+ }
69741
+ setSpeed(e) {
69742
+ return this._speed = e, this._animation && typeof this._animation.setSpeed == "function" && this._animation.setSpeed(e), this;
69743
+ }
69744
+ setLoop(e) {
69745
+ return this._loop = e, this;
69746
+ }
69747
+ _calculateDimensions() {
69748
+ let e = this._naturalWidth / this._naturalHeight;
69749
+ return this._width !== void 0 && this._height !== void 0 ? this._scaleToFit ? e > this._width / this._height ? {
69750
+ width: this._width,
69751
+ height: this._width / e
69752
+ } : {
69753
+ width: this._height * e,
69754
+ height: this._height
69755
+ } : {
69756
+ width: this._width,
69757
+ height: this._height
69758
+ } : this._width === void 0 ? this._height === void 0 ? {
69759
+ width: 4 * e,
69760
+ height: 4
69761
+ } : {
69762
+ width: this._height * e,
69763
+ height: this._height
69764
+ } : {
69765
+ width: this._width,
69766
+ height: this._width / e
69767
+ };
69768
+ }
69769
+ _createThreeObject() {
69770
+ let e = this._calculateDimensions(), t = new R(new m(1, 1), new zn({
69771
+ map: this._texture,
69772
+ transparent: !0,
69773
+ opacity: this._opacity,
69774
+ side: this._doubleSided ? 2 : 0
69775
+ }));
69776
+ t.scale.set(e.width, e.height, 1), t.frustumCulled = !1, this._mesh = t;
69777
+ let n = new Ri();
69778
+ return n.add(t), n;
69779
+ }
69780
+ getDisplayMeshLength() {
69781
+ return 1;
69782
+ }
69783
+ getDisplayMeshes() {
69784
+ if (!(this.getThreeObject() instanceof Ri)) throw Error("LottieMobject.getThreeObject() must return a THREE.Group");
69785
+ if (!this._mesh) throw Error("LottieMobject.getDisplayMeshes requires _mesh");
69786
+ return [this._mesh];
69787
+ }
69788
+ applyTextureFrom(t) {
69789
+ if (!(t instanceof e)) throw Error("LottieMobject.applyTextureFrom requires LottieMobject");
69790
+ let n = this._mesh, r = t.getDisplayMeshes()[0];
69791
+ if (!n) throw Error("LottieMobject.applyTextureFrom requires mesh");
69792
+ if (!r) throw Error("LottieMobject.applyTextureFrom requires source mesh");
69793
+ let i = n.material, a = r.material;
69794
+ if (!(i instanceof zn)) throw Error("LottieMobject.applyTextureFrom requires MeshBasicMaterial");
69795
+ if (!(a instanceof zn)) throw Error("LottieMobject.applyTextureFrom requires source MeshBasicMaterial");
69796
+ let o = a.map, s = this._texture;
69797
+ this._handoffTextureMap(i, o, s), this._texture = o;
69798
+ }
69799
+ applyVisualSize(e, t) {
69800
+ this._width = e, this._height = t, this._scaleToFit = !1, this._updateGeometry();
69801
+ }
69802
+ applyContentFrom(t) {
69803
+ if (!(t instanceof e)) throw Error("LottieMobject.applyContentFrom requires LottieMobject");
69804
+ this._animationData = t._animationData;
69805
+ }
69806
+ _updateGeometry() {
69807
+ let e = this._mesh;
69808
+ if (!e) return;
69809
+ let t = this._calculateDimensions();
69810
+ e.scale.set(t.width, t.height, 1);
69811
+ let n = e.material;
69812
+ n && this._texture && (n.map = this._texture, n.needsUpdate = !0), this._markDirty();
69813
+ }
69814
+ _syncMaterialToThree() {
69815
+ let e = this._mesh;
69816
+ if (!e) return;
69817
+ let t = e.material;
69818
+ t && (t.opacity = this._opacity, t.transparent = this._opacity < 1, t.side = this._doubleSided ? 2 : 0, this._texture && (t.map = this._texture), t.needsUpdate = !0);
69819
+ }
69820
+ getBoundingBox() {
69821
+ let e = this._calculateDimensions();
69822
+ return {
69823
+ width: e.width * this.scaleVector.x,
69824
+ height: e.height * this.scaleVector.y,
69825
+ depth: .01
69826
+ };
69827
+ }
69828
+ copy() {
69829
+ let t = new e({
69830
+ animationData: this._animationData,
69831
+ loop: this._loop,
69832
+ speed: this._speed,
69833
+ width: this._width,
69834
+ height: this._height,
69835
+ scaleToFit: this._scaleToFit,
69836
+ center: this._centerPoint,
69837
+ opacity: this._opacity,
69838
+ doubleSided: this._doubleSided,
69839
+ player: this._injectedPlayer
69840
+ });
69841
+ return t._naturalWidth = this._naturalWidth, t._naturalHeight = this._naturalHeight, this._copyBaseAttributesInto(t, { copyChildren: !1 }), t;
69842
+ }
69843
+ dispose() {
69844
+ super.dispose(), this._playing = !1, this._animation &&= (this._animation.destroy(), null), this._texture &&= (this._texture.dispose(), null), this._canvas = null;
69845
+ }
69846
+ }, bI = 100, xI = 2, SI = 3;
69847
+ function CI(e, t, n) {
69600
69848
  let r = [], i = new Uint8ClampedArray(t * n * 4);
69601
69849
  for (let a of e) {
69602
- let { dims: e, patch: o, disposalType: s } = a, c = s === hI ? i.slice() : null;
69850
+ let { dims: e, patch: o, disposalType: s } = a, c = s === SI ? i.slice() : null;
69603
69851
  for (let r = 0; r < e.height; r++) for (let a = 0; a < e.width; a++) {
69604
69852
  let s = (r * e.width + a) * 4;
69605
69853
  if (o[s + 3] === 0) continue;
@@ -69608,15 +69856,15 @@ function gI(e, t, n) {
69608
69856
  let u = (l * t + c) * 4;
69609
69857
  i[u] = o[s], i[u + 1] = o[s + 1], i[u + 2] = o[s + 2], i[u + 3] = o[s + 3];
69610
69858
  }
69611
- let l = a.delay > 0 ? a.delay : pI;
69859
+ let l = a.delay > 0 ? a.delay : bI;
69612
69860
  r.push({
69613
69861
  data: i.slice(),
69614
69862
  delay: l
69615
- }), s === mI ? _I(i, t, n, e) : c && (i = c);
69863
+ }), s === xI ? wI(i, t, n, e) : c && (i = c);
69616
69864
  }
69617
69865
  return r;
69618
69866
  }
69619
- function _I(e, t, n, r) {
69867
+ function wI(e, t, n, r) {
69620
69868
  for (let i = 0; i < r.height; i++) for (let a = 0; a < r.width; a++) {
69621
69869
  let o = r.left + a, s = r.top + i;
69622
69870
  if (o < 0 || s < 0 || o >= t || s >= n) continue;
@@ -69624,20 +69872,20 @@ function _I(e, t, n, r) {
69624
69872
  e[c] = 0, e[c + 1] = 0, e[c + 2] = 0, e[c + 3] = 0;
69625
69873
  }
69626
69874
  }
69627
- var vI = async (t) => {
69875
+ var TI = async (t) => {
69628
69876
  if (typeof document > "u") throw Error("AnimatedImageMobject: GIF decoding needs a browser (document is unavailable)");
69629
69877
  if (typeof fetch > "u") throw Error("AnimatedImageMobject: GIF decoding needs fetch (fetch is unavailable)");
69630
69878
  let n = await (await fetch(t)).arrayBuffer(), { parseGIF: r, decompressFrames: i } = await import("./lib-Bh3UXyYs.js").then((t) => /* @__PURE__ */ e(t.default, 1)), a = r(n), o = i(a, !0), s = a.lsd.width, c = a.lsd.height;
69631
69879
  return {
69632
69880
  width: s,
69633
69881
  height: c,
69634
- frames: gI(o, s, c)
69882
+ frames: CI(o, s, c)
69635
69883
  };
69636
- }, yI = null;
69637
- function bI(e) {
69638
- yI = e;
69884
+ }, EI = null;
69885
+ function DI(e) {
69886
+ EI = e;
69639
69887
  }
69640
- var xI = 1, SI = class e extends c_ {
69888
+ var OI = 1, kI = class e extends c_ {
69641
69889
  _source;
69642
69890
  _loop;
69643
69891
  _autoplay;
@@ -69678,7 +69926,7 @@ var xI = 1, SI = class e extends c_ {
69678
69926
  }
69679
69927
  async _startLoad() {
69680
69928
  try {
69681
- let e = await (yI ?? vI)(this._source);
69929
+ let e = await (EI ?? TI)(this._source);
69682
69930
  this._ingest(e), this._loadResolve && (this._loadResolve(), this._loadResolve = null, this._loadReject = null);
69683
69931
  } catch (e) {
69684
69932
  this._failLoad(e instanceof Error ? e : Error(String(e)));
@@ -69687,7 +69935,7 @@ var xI = 1, SI = class e extends c_ {
69687
69935
  _ingest(e) {
69688
69936
  this._naturalWidth = e.width || 1, this._naturalHeight = e.height || 1, this._frames = e.frames.map((e) => e.data);
69689
69937
  let t = this._fps !== void 0 && this._fps > 0 ? 1e3 / this._fps : void 0;
69690
- this._frameDurations = e.frames.map((e) => Math.max(xI, t ?? e.delay)), this._totalDurationMs = this._frameDurations.reduce((e, t) => e + t, 0), this._frameTextures = this._frames.map(() => null), this._loaded = !0, this._currentFrame = 0, this._accumulatorMs = 0, this._setFrame(0), this._updateGeometry(), this._markDirty(), this._autoplay && (this._playing = !0);
69938
+ this._frameDurations = e.frames.map((e) => Math.max(OI, t ?? e.delay)), this._totalDurationMs = this._frameDurations.reduce((e, t) => e + t, 0), this._frameTextures = this._frames.map(() => null), this._loaded = !0, this._currentFrame = 0, this._accumulatorMs = 0, this._setFrame(0), this._updateGeometry(), this._markDirty(), this._autoplay && (this._playing = !0);
69691
69939
  }
69692
69940
  _failLoad(e) {
69693
69941
  this._loadError = e, this._loadReject && (this._loadReject(e), this._loadReject = null, this._loadResolve = null);
@@ -69876,10 +70124,10 @@ var xI = 1, SI = class e extends c_ {
69876
70124
  for (let e of this._frameTextures) e && e.dispose();
69877
70125
  this._frameTextures = [], this._frames = [], this._texture = null;
69878
70126
  }
69879
- }, CI = 16 / 9, wI = class e extends GE {
70127
+ }, AI = 16 / 9, jI = class e extends GE {
69880
70128
  _aspectRatio;
69881
70129
  constructor(e = {}) {
69882
- let { height: t = 4, aspectRatio: n = CI, ...r } = e, i = t * n;
70130
+ let { height: t = 4, aspectRatio: n = AI, ...r } = e, i = t * n;
69883
70131
  super({
69884
70132
  ...r,
69885
70133
  width: i,
@@ -69908,7 +70156,7 @@ var xI = 1, SI = class e extends c_ {
69908
70156
  });
69909
70157
  return this._copyBaseAttributesInto(t, { copyChildren: !1 }), t;
69910
70158
  }
69911
- }, TI = class e extends GE {
70159
+ }, MI = class e extends GE {
69912
70160
  _frameWidth;
69913
70161
  _frameHeight;
69914
70162
  constructor(e = {}) {
@@ -69947,7 +70195,7 @@ var xI = 1, SI = class e extends c_ {
69947
70195
  });
69948
70196
  return this._copyBaseAttributesInto(t, { copyChildren: !1 }), t;
69949
70197
  }
69950
- }, EI = class e extends TI {
70198
+ }, NI = class e extends MI {
69951
70199
  _fadeProgress;
69952
70200
  constructor(e = {}) {
69953
70201
  let { opacity: t = 0, ...n } = e;
@@ -69987,21 +70235,21 @@ var xI = 1, SI = class e extends c_ {
69987
70235
  return this._copyBaseAttributesInto(t, { copyChildren: !1 }), t;
69988
70236
  }
69989
70237
  };
69990
- function DI(e = {}) {
69991
- return new EI({
70238
+ function PI(e = {}) {
70239
+ return new NI({
69992
70240
  ...e,
69993
70241
  color: yl
69994
70242
  });
69995
70243
  }
69996
- function OI(e = {}) {
69997
- return new EI({
70244
+ function FI(e = {}) {
70245
+ return new NI({
69998
70246
  ...e,
69999
70247
  color: pl
70000
70248
  });
70001
70249
  }
70002
70250
  //#endregion
70003
70251
  //#region src/mobjects/point/PGroup.ts
70004
- var kI = class e extends cp {
70252
+ var II = class e extends cp {
70005
70253
  normalizeTransform(e = this._ownMatrix()) {
70006
70254
  return this._flattenAsContainer(e);
70007
70255
  }
@@ -70092,7 +70340,7 @@ var kI = class e extends cp {
70092
70340
  [Symbol.iterator]() {
70093
70341
  return this.children[Symbol.iterator]();
70094
70342
  }
70095
- }, AI = class e extends s_ {
70343
+ }, LI = class e extends s_ {
70096
70344
  constructor(e = {}) {
70097
70345
  let { position: t = [
70098
70346
  0,
@@ -70134,7 +70382,7 @@ var kI = class e extends cp {
70134
70382
  });
70135
70383
  return this._copyBaseAttributesInto(t, { copyChildren: !1 }), t;
70136
70384
  }
70137
- }, jI = class e extends s_ {
70385
+ }, RI = class e extends s_ {
70138
70386
  _center;
70139
70387
  _radius;
70140
70388
  _numParticles;
@@ -70216,7 +70464,7 @@ var kI = class e extends cp {
70216
70464
  });
70217
70465
  return this._copyBaseAttributesInto(t, { copyChildren: !1 }), t;
70218
70466
  }
70219
- }, MI = class e extends s_ {
70467
+ }, zI = class e extends s_ {
70220
70468
  _start;
70221
70469
  _end;
70222
70470
  _numPointsConfig;
@@ -70322,7 +70570,7 @@ var kI = class e extends cp {
70322
70570
  });
70323
70571
  return this._copyBaseAttributesInto(t, { copyChildren: !1 }), t;
70324
70572
  }
70325
- }, NI = class e extends s_ {
70573
+ }, BI = class e extends s_ {
70326
70574
  _center2D;
70327
70575
  _width;
70328
70576
  _height;
@@ -70458,7 +70706,7 @@ var kI = class e extends cp {
70458
70706
  };
70459
70707
  //#endregion
70460
70708
  //#region src/mobjects/particles/ParticleSystem.ts
70461
- function PI(e) {
70709
+ function VI(e) {
70462
70710
  let t = e | 0;
70463
70711
  return () => {
70464
70712
  t = t + 1831565813 | 0;
@@ -70466,10 +70714,10 @@ function PI(e) {
70466
70714
  return e = e + Math.imul(e ^ e >>> 7, 61 | e) ^ e, ((e ^ e >>> 14) >>> 0) / 4294967296;
70467
70715
  };
70468
70716
  }
70469
- function FI(e, t, n) {
70717
+ function HI(e, t, n) {
70470
70718
  return e + (t - e) * n;
70471
70719
  }
70472
- var II = class e extends s_ {
70720
+ var UI = class e extends s_ {
70473
70721
  _spawnRate;
70474
70722
  _maxParticles;
70475
70723
  _lifetime;
@@ -70514,13 +70762,13 @@ var II = class e extends s_ {
70514
70762
  0,
70515
70763
  0,
70516
70764
  0
70517
- ], this._drag = l.drag ?? 0, this._startSize = u, this._endSize = d, this._startColor = f, this._endColor = p, this._useOklab = m, this._seed = h, this._rng = PI(h), this.addUpdater((e, t) => this.step(t));
70765
+ ], this._drag = l.drag ?? 0, this._startSize = u, this._endSize = d, this._startColor = f, this._endColor = p, this._useOklab = m, this._seed = h, this._rng = VI(h), this.addUpdater((e, t) => this.step(t));
70518
70766
  }
70519
70767
  get seed() {
70520
70768
  return this._seed;
70521
70769
  }
70522
70770
  set seed(e) {
70523
- this._seed = e, this._rng = PI(e);
70771
+ this._seed = e, this._rng = VI(e);
70524
70772
  }
70525
70773
  setSpawnRate(e) {
70526
70774
  return this._spawnRate = Math.max(0, e), this;
@@ -70542,7 +70790,7 @@ var II = class e extends s_ {
70542
70790
  }));
70543
70791
  }
70544
70792
  reset() {
70545
- return this._particles = [], this._spawnCarry = 0, this._rng = PI(this._seed), this._syncParticlesToPoints(), this;
70793
+ return this._particles = [], this._spawnCarry = 0, this._rng = VI(this._seed), this._syncParticlesToPoints(), this;
70546
70794
  }
70547
70795
  step(e) {
70548
70796
  return e <= 0 ? this : (this._spawn(e), this._integrate(e), this._cull(), this._syncParticlesToPoints(), this);
@@ -70579,7 +70827,7 @@ var II = class e extends s_ {
70579
70827
  for (let n of this._particles) {
70580
70828
  n.velocity[0] = (n.velocity[0] + this._gravity[0] * e) * t, n.velocity[1] = (n.velocity[1] + this._gravity[1] * e) * t, n.velocity[2] = (n.velocity[2] + this._gravity[2] * e) * t, n.position[0] += n.velocity[0] * e, n.position[1] += n.velocity[1] * e, n.position[2] += n.velocity[2] * e, n.age += e;
70581
70829
  let r = Math.min(1, n.age / n.lifetime);
70582
- n.size = FI(this._startSize, this._endSize, r), n.color = this._useOklab ? AA(this._startColor, this._endColor, r) : dA(this._startColor, this._endColor, r);
70830
+ n.size = HI(this._startSize, this._endSize, r), n.color = this._useOklab ? AA(this._startColor, this._endColor, r) : dA(this._startColor, this._endColor, r);
70583
70831
  }
70584
70832
  }
70585
70833
  _cull() {
@@ -70618,7 +70866,7 @@ var II = class e extends s_ {
70618
70866
  });
70619
70867
  return this._copyBaseAttributesInto(t, { copyChildren: !1 }), t;
70620
70868
  }
70621
- }, LI = "\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }\n", RI = "\n precision highp float;\n\n uniform vec2 u_center;\n uniform float u_zoom;\n uniform int u_maxIter;\n uniform float u_saturation;\n uniform float u_lightness;\n uniform float u_aspectRatio;\n uniform float u_opacity;\n\n varying vec2 vUv;\n\n // HSL -> RGB conversion (attempt-free, standard formula)\n vec3 hsl2rgb(float h, float s, float l) {\n float c = (1.0 - abs(2.0 * l - 1.0)) * s;\n float x = c * (1.0 - abs(mod(h * 6.0, 2.0) - 1.0));\n float m = l - c * 0.5;\n vec3 rgb;\n float hue = h * 6.0;\n if (hue < 1.0) rgb = vec3(c, x, 0.0);\n else if (hue < 2.0) rgb = vec3(x, c, 0.0);\n else if (hue < 3.0) rgb = vec3(0.0, c, x);\n else if (hue < 4.0) rgb = vec3(0.0, x, c);\n else if (hue < 5.0) rgb = vec3(x, 0.0, c);\n else rgb = vec3(c, 0.0, x);\n return rgb + m;\n }\n\n void main() {\n // Map UV [0,1] to complex plane, accounting for aspect ratio and zoom\n float scale = 3.5 / u_zoom;\n vec2 c = vec2(\n (vUv.x - 0.5) * scale * u_aspectRatio + u_center.x,\n (vUv.y - 0.5) * scale + u_center.y\n );\n\n vec2 z = vec2(0.0);\n int iter = 0;\n\n // Main iteration loop\n for (int i = 0; i < 2000; i++) {\n if (i >= u_maxIter) break;\n if (dot(z, z) > 4.0) break;\n z = vec2(z.x * z.x - z.y * z.y, 2.0 * z.x * z.y) + c;\n iter = i + 1;\n }\n\n if (iter >= u_maxIter) {\n // Inside the set: black\n gl_FragColor = vec4(0.0, 0.0, 0.0, u_opacity);\n } else {\n // Smooth (continuous) iteration count for anti-banding\n float smoothIter = float(iter) - log2(log2(dot(z, z))) + 4.0;\n float hue = mod(smoothIter * 0.02 + 0.6, 1.0);\n vec3 rgb = hsl2rgb(hue, u_saturation, u_lightness);\n gl_FragColor = vec4(rgb, u_opacity);\n }\n }\n", zI = class e extends cp {
70869
+ }, WI = "\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }\n", GI = "\n precision highp float;\n\n uniform vec2 u_center;\n uniform float u_zoom;\n uniform int u_maxIter;\n uniform float u_saturation;\n uniform float u_lightness;\n uniform float u_aspectRatio;\n uniform float u_opacity;\n\n varying vec2 vUv;\n\n // HSL -> RGB conversion (attempt-free, standard formula)\n vec3 hsl2rgb(float h, float s, float l) {\n float c = (1.0 - abs(2.0 * l - 1.0)) * s;\n float x = c * (1.0 - abs(mod(h * 6.0, 2.0) - 1.0));\n float m = l - c * 0.5;\n vec3 rgb;\n float hue = h * 6.0;\n if (hue < 1.0) rgb = vec3(c, x, 0.0);\n else if (hue < 2.0) rgb = vec3(x, c, 0.0);\n else if (hue < 3.0) rgb = vec3(0.0, c, x);\n else if (hue < 4.0) rgb = vec3(0.0, x, c);\n else if (hue < 5.0) rgb = vec3(x, 0.0, c);\n else rgb = vec3(c, 0.0, x);\n return rgb + m;\n }\n\n void main() {\n // Map UV [0,1] to complex plane, accounting for aspect ratio and zoom\n float scale = 3.5 / u_zoom;\n vec2 c = vec2(\n (vUv.x - 0.5) * scale * u_aspectRatio + u_center.x,\n (vUv.y - 0.5) * scale + u_center.y\n );\n\n vec2 z = vec2(0.0);\n int iter = 0;\n\n // Main iteration loop\n for (int i = 0; i < 2000; i++) {\n if (i >= u_maxIter) break;\n if (dot(z, z) > 4.0) break;\n z = vec2(z.x * z.x - z.y * z.y, 2.0 * z.x * z.y) + c;\n iter = i + 1;\n }\n\n if (iter >= u_maxIter) {\n // Inside the set: black\n gl_FragColor = vec4(0.0, 0.0, 0.0, u_opacity);\n } else {\n // Smooth (continuous) iteration count for anti-banding\n float smoothIter = float(iter) - log2(log2(dot(z, z))) + 4.0;\n float hue = mod(smoothIter * 0.02 + 0.6, 1.0);\n vec3 rgb = hsl2rgb(hue, u_saturation, u_lightness);\n gl_FragColor = vec4(rgb, u_opacity);\n }\n }\n", KI = class e extends cp {
70622
70870
  _width;
70623
70871
  _height;
70624
70872
  _center;
@@ -70644,8 +70892,8 @@ var II = class e extends s_ {
70644
70892
  u_aspectRatio: { value: this._width / this._height },
70645
70893
  u_opacity: { value: this._opacity }
70646
70894
  },
70647
- vertexShader: LI,
70648
- fragmentShader: RI,
70895
+ vertexShader: WI,
70896
+ fragmentShader: GI,
70649
70897
  transparent: this._opacity < 1,
70650
70898
  side: 2
70651
70899
  }), new R(e, this._material);
@@ -70720,7 +70968,7 @@ var II = class e extends s_ {
70720
70968
  dispose() {
70721
70969
  this._material &&= (this._material.dispose(), null), this._threeObject instanceof R && this._threeObject.geometry.dispose();
70722
70970
  }
70723
- }, BI = 12, VI = "\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }\n", HI = `
70971
+ }, qI = 12, JI = "\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }\n", YI = `
70724
70972
  precision highp float;
70725
70973
 
70726
70974
  // View uniforms
@@ -70731,7 +70979,7 @@ var II = class e extends s_ {
70731
70979
  uniform float u_opacity;
70732
70980
 
70733
70981
  // Polynomial uniforms
70734
- uniform vec2 u_coeffs[${BI}]; // complex coefficients (re, im)
70982
+ uniform vec2 u_coeffs[${qI}]; // complex coefficients (re, im)
70735
70983
  uniform int u_numCoeffs; // number of coefficients supplied
70736
70984
  uniform float u_tolerance;
70737
70985
 
@@ -70762,7 +71010,7 @@ var II = class e extends s_ {
70762
71010
  dfz = vec2(0.0);
70763
71011
 
70764
71012
  // We iterate from the highest coefficient to the lowest.
70765
- for (int i = ${BI - 1}; i >= 0; i--) {
71013
+ for (int i = ${qI - 1}; i >= 0; i--) {
70766
71014
  if (i > deg) continue;
70767
71015
  // f(z) = f(z)*z + c_i
70768
71016
  fz = cmul(fz, z) + u_coeffs[i];
@@ -70777,7 +71025,7 @@ var II = class e extends s_ {
70777
71025
  // Recompute with proper dual Horner pass
70778
71026
  fz = vec2(0.0);
70779
71027
  dfz = vec2(0.0);
70780
- for (int i = ${BI - 1}; i >= 0; i--) {
71028
+ for (int i = ${qI - 1}; i >= 0; i--) {
70781
71029
  if (i > deg) continue;
70782
71030
  dfz = cmul(dfz, z) + fz; // derivative accumulator
70783
71031
  fz = cmul(fz, z) + u_coeffs[i];
@@ -70838,7 +71086,7 @@ var II = class e extends s_ {
70838
71086
 
70839
71087
  gl_FragColor = vec4(rgb, u_opacity);
70840
71088
  }
70841
- `, UI = class e extends cp {
71089
+ `, XI = class e extends cp {
70842
71090
  _width;
70843
71091
  _height;
70844
71092
  _center;
@@ -70861,7 +71109,7 @@ var II = class e extends s_ {
70861
71109
  }
70862
71110
  _buildCoeffUniforms() {
70863
71111
  let e = [];
70864
- for (let t = 0; t < BI; t++) {
71112
+ for (let t = 0; t < qI; t++) {
70865
71113
  let n = t < this._coefficients.length ? this._coefficients[t] : 0;
70866
71114
  e.push(new a(n, 0));
70867
71115
  }
@@ -70877,13 +71125,13 @@ var II = class e extends s_ {
70877
71125
  u_aspectRatio: { value: this._width / this._height },
70878
71126
  u_opacity: { value: this._opacity },
70879
71127
  u_coeffs: { value: this._buildCoeffUniforms() },
70880
- u_numCoeffs: { value: Math.min(this._coefficients.length, BI) },
71128
+ u_numCoeffs: { value: Math.min(this._coefficients.length, qI) },
70881
71129
  u_tolerance: { value: this._tolerance },
70882
71130
  u_saturation: { value: this._saturation },
70883
71131
  u_lightness: { value: this._lightness }
70884
71132
  },
70885
- vertexShader: VI,
70886
- fragmentShader: HI,
71133
+ vertexShader: JI,
71134
+ fragmentShader: YI,
70887
71135
  transparent: this._opacity < 1,
70888
71136
  side: 2
70889
71137
  }), new R(e, this._material);
@@ -70893,11 +71141,11 @@ var II = class e extends s_ {
70893
71141
  let e = this._material.uniforms;
70894
71142
  e.u_center.value.set(this._center[0], this._center[1]), e.u_zoom.value = this._zoom, e.u_maxIter.value = this._maxIterations, e.u_aspectRatio.value = this._width / this._height, e.u_opacity.value = this._opacity, e.u_tolerance.value = this._tolerance, e.u_saturation.value = this._saturation, e.u_lightness.value = this._lightness;
70895
71143
  let t = e.u_coeffs.value;
70896
- for (let e = 0; e < BI; e++) {
71144
+ for (let e = 0; e < qI; e++) {
70897
71145
  let n = e < this._coefficients.length ? this._coefficients[e] : 0;
70898
71146
  t[e].set(n, 0);
70899
71147
  }
70900
- e.u_numCoeffs.value = Math.min(this._coefficients.length, BI), this._material.transparent = this._opacity < 1, this._material.needsUpdate = !0;
71148
+ e.u_numCoeffs.value = Math.min(this._coefficients.length, qI), this._material.transparent = this._opacity < 1, this._material.needsUpdate = !0;
70901
71149
  }
70902
71150
  setCenter(e) {
70903
71151
  return this._center = [...e], this._markDirty(), this;
@@ -70978,7 +71226,7 @@ var II = class e extends s_ {
70978
71226
  dispose() {
70979
71227
  this._material &&= (this._material.dispose(), null), this._threeObject instanceof R && this._threeObject.geometry.dispose();
70980
71228
  }
70981
- }, WI = [
71229
+ }, ZI = [
70982
71230
  jl,
70983
71231
  Gl,
70984
71232
  Zl,
@@ -70986,7 +71234,7 @@ var II = class e extends s_ {
70986
71234
  Su,
70987
71235
  Rl,
70988
71236
  ru
70989
- ], GI = class e extends Nh {
71237
+ ], QI = class e extends Nh {
70990
71238
  _ssWidth;
70991
71239
  _ssHeight;
70992
71240
  _ssCenter;
@@ -71025,7 +71273,7 @@ var II = class e extends s_ {
71025
71273
  let l = e[t], p = s * l, m = f + p / 2, h = u, g = new GE({
71026
71274
  width: p,
71027
71275
  height: c,
71028
- color: n ? n[t % n.length] : WI[t % WI.length],
71276
+ color: n ? n[t % n.length] : ZI[t % ZI.length],
71029
71277
  fillOpacity: r,
71030
71278
  strokeWidth: this._outline.strokeWidth,
71031
71279
  center: [
@@ -71061,7 +71309,7 @@ var II = class e extends s_ {
71061
71309
  let u = e[t], p = c * u, m = l, h = f - p / 2, g = new GE({
71062
71310
  width: s,
71063
71311
  height: p,
71064
- color: n ? n[t % n.length] : WI[t % WI.length],
71312
+ color: n ? n[t % n.length] : ZI[t % ZI.length],
71065
71313
  fillOpacity: r,
71066
71314
  strokeWidth: this._outline.strokeWidth,
71067
71315
  center: [
@@ -71098,7 +71346,7 @@ var II = class e extends s_ {
71098
71346
  let c = t[n], f = u * c, g = d, _ = m - f / 2, v = new GE({
71099
71347
  width: l,
71100
71348
  height: f,
71101
- color: r ? r[n % r.length] : WI[(e + n + 2) % WI.length],
71349
+ color: r ? r[n % r.length] : ZI[(e + n + 2) % ZI.length],
71102
71350
  fillOpacity: i,
71103
71351
  strokeWidth: this._outline.strokeWidth * .5,
71104
71352
  center: [
@@ -71238,7 +71486,7 @@ var II = class e extends s_ {
71238
71486
  });
71239
71487
  return this._copyBaseAttributesInto(t, { copyChildren: !1 }), t;
71240
71488
  }
71241
- }, KI = {
71489
+ }, $I = {
71242
71490
  1: [[0, 0]],
71243
71491
  2: [[-.5, .5], [.5, -.5]],
71244
71492
  3: [
@@ -71267,7 +71515,7 @@ var II = class e extends s_ {
71267
71515
  [-.5, -.5],
71268
71516
  [.5, -.5]
71269
71517
  ]
71270
- }, qI = class e extends Nh {
71518
+ }, eL = class e extends Nh {
71271
71519
  _value;
71272
71520
  _size;
71273
71521
  _dotColor;
@@ -71298,7 +71546,7 @@ var II = class e extends s_ {
71298
71546
  }), this._background.setColor(i), this._background.color = o, this._background.fillColor = i, this.add(this._background), this._createDots();
71299
71547
  }
71300
71548
  _createDots() {
71301
- let e = KI[this._value], [t, n, r] = this._faceCenter, i = this._size * .55;
71549
+ let e = $I[this._value], [t, n, r] = this._faceCenter, i = this._size * .55;
71302
71550
  for (let [a, o] of e) {
71303
71551
  let e = new IO({
71304
71552
  point: [
@@ -71360,11 +71608,11 @@ var II = class e extends s_ {
71360
71608
  return this._copyBaseAttributesInto(t, { copyChildren: !1 }), t;
71361
71609
  }
71362
71610
  };
71363
- function JI(e = {}, t = .3) {
71611
+ function tL(e = {}, t = .3) {
71364
71612
  let n = e.size ?? 1.5, r = [];
71365
71613
  for (let i = 1; i <= 6; i++) {
71366
71614
  let a = (i - 3.5) * (n + t);
71367
- r.push(new qI({
71615
+ r.push(new eL({
71368
71616
  ...e,
71369
71617
  value: i,
71370
71618
  center: [
@@ -71378,7 +71626,7 @@ function JI(e = {}, t = .3) {
71378
71626
  }
71379
71627
  //#endregion
71380
71628
  //#region src/animation/MasterTimeline.ts
71381
- var YI = class extends WT {
71629
+ var nL = class extends WT {
71382
71630
  _segments = [];
71383
71631
  _slides = [];
71384
71632
  _slideBoundaries = [];
@@ -71429,7 +71677,7 @@ var YI = class extends WT {
71429
71677
  return i;
71430
71678
  }
71431
71679
  addWaitSegment(e) {
71432
- let t = this.getDuration(), n = new ZI(e);
71680
+ let t = this.getDuration(), n = new iL(e);
71433
71681
  this.add(n, t);
71434
71682
  let r = {
71435
71683
  index: this._segments.length,
@@ -71526,12 +71774,12 @@ var YI = class extends WT {
71526
71774
  return this._segments.length;
71527
71775
  }
71528
71776
  };
71529
- function XI() {
71530
- return new YI();
71777
+ function rL() {
71778
+ return new nL();
71531
71779
  }
71532
- var ZI = class extends o_ {
71780
+ var iL = class extends o_ {
71533
71781
  constructor(e) {
71534
- super(QI.instance, { duration: e });
71782
+ super(aL.instance, { duration: e });
71535
71783
  }
71536
71784
  interpolate(e) {}
71537
71785
  begin() {
@@ -71540,7 +71788,7 @@ var ZI = class extends o_ {
71540
71788
  finish() {
71541
71789
  this._isFinished = !0;
71542
71790
  }
71543
- }, QI = class e extends cp {
71791
+ }, aL = class e extends cp {
71544
71792
  normalizeTransform(e = this._ownMatrix()) {
71545
71793
  return this._flattenAsContainer(e);
71546
71794
  }
@@ -71554,7 +71802,7 @@ var ZI = class extends o_ {
71554
71802
  _createThreeObject() {
71555
71803
  return new D();
71556
71804
  }
71557
- }, $I = class extends o_ {
71805
+ }, oL = class extends o_ {
71558
71806
  _shift;
71559
71807
  _startX = 0;
71560
71808
  _startY = 0;
@@ -71575,12 +71823,12 @@ var ZI = class extends o_ {
71575
71823
  this.mobject.opacity = 1, this._shift && this.mobject.position.set(this._targetX, this._targetY, this._targetZ), super.finish();
71576
71824
  }
71577
71825
  };
71578
- function eL(e, t) {
71579
- return new $I(e, t);
71826
+ function sL(e, t) {
71827
+ return new oL(e, t);
71580
71828
  }
71581
71829
  //#endregion
71582
71830
  //#region src/animation/fading/FadeOut.ts
71583
- var tL = class extends o_ {
71831
+ var cL = class extends o_ {
71584
71832
  _initialOpacity = 1;
71585
71833
  _shift;
71586
71834
  _startX = 0;
@@ -71602,16 +71850,16 @@ var tL = class extends o_ {
71602
71850
  this.mobject.opacity = 0, this._shift && this.mobject.position.set(this._endX, this._endY, this._endZ), super.finish();
71603
71851
  }
71604
71852
  };
71605
- function nL(e, t) {
71606
- return new tL(e, t);
71853
+ function lL(e, t) {
71854
+ return new cL(e, t);
71607
71855
  }
71608
71856
  //#endregion
71609
71857
  //#region src/animation/transform/ApplyTransforms.ts
71610
- function rL(e) {
71858
+ function uL(e) {
71611
71859
  let t = e;
71612
71860
  return typeof t.getLocalPoints == "function" && typeof t.setPoints == "function";
71613
71861
  }
71614
- var iL = class extends o_ {
71862
+ var dL = class extends o_ {
71615
71863
  func;
71616
71864
  _snapshots = [];
71617
71865
  constructor(e, t) {
@@ -71620,7 +71868,7 @@ var iL = class extends o_ {
71620
71868
  begin() {
71621
71869
  super.begin(), this._snapshots = [];
71622
71870
  let e = new L();
71623
- for (let t of this.mobject.getFamily()) if (rL(t)) {
71871
+ for (let t of this.mobject.getFamily()) if (uL(t)) {
71624
71872
  let n = t.getLocalPoints();
71625
71873
  if (n.length === 0) continue;
71626
71874
  let r = t._worldMatrix(), i = r.clone().invert(), a = n.map((t) => {
@@ -71656,13 +71904,13 @@ var iL = class extends o_ {
71656
71904
  this.mobject._markDirtyUpward(), super.finish();
71657
71905
  }
71658
71906
  };
71659
- function aL(e, t, n) {
71660
- return new iL(e, {
71907
+ function fL(e, t, n) {
71908
+ return new dL(e, {
71661
71909
  ...n,
71662
71910
  func: t
71663
71911
  });
71664
71912
  }
71665
- var oL = class extends o_ {
71913
+ var pL = class extends o_ {
71666
71914
  func;
71667
71915
  _snapshots = [];
71668
71916
  constructor(e, t) {
@@ -71671,7 +71919,7 @@ var oL = class extends o_ {
71671
71919
  begin() {
71672
71920
  super.begin(), this._snapshots = [];
71673
71921
  let e = new L();
71674
- for (let t of this.mobject.getFamily()) if (rL(t)) {
71922
+ for (let t of this.mobject.getFamily()) if (uL(t)) {
71675
71923
  let n = t.getLocalPoints();
71676
71924
  if (n.length === 0) continue;
71677
71925
  let r = t._worldMatrix(), i = r.clone().invert(), a = n.map((t) => {
@@ -71706,13 +71954,13 @@ var oL = class extends o_ {
71706
71954
  this.mobject._markDirtyUpward(), super.finish();
71707
71955
  }
71708
71956
  };
71709
- function sL(e, t, n) {
71710
- return new oL(e, {
71957
+ function mL(e, t, n) {
71958
+ return new pL(e, {
71711
71959
  ...n,
71712
71960
  func: t
71713
71961
  });
71714
71962
  }
71715
- var cL = class extends mT {
71963
+ var hL = class extends mT {
71716
71964
  methodName;
71717
71965
  args;
71718
71966
  constructor(e, t) {
@@ -71720,14 +71968,14 @@ var cL = class extends mT {
71720
71968
  typeof r == "function" && r.call(n, ...t.args || []), super(e, n, t), this.methodName = t.methodName, this.args = t.args || [];
71721
71969
  }
71722
71970
  };
71723
- function lL(e, t, n, r) {
71724
- return new cL(e, {
71971
+ function gL(e, t, n, r) {
71972
+ return new hL(e, {
71725
71973
  ...r,
71726
71974
  methodName: t,
71727
71975
  args: n
71728
71976
  });
71729
71977
  }
71730
- var uL = class extends o_ {
71978
+ var _L = class extends o_ {
71731
71979
  matrix;
71732
71980
  aboutPoint;
71733
71981
  _snapshots = [];
@@ -71741,7 +71989,7 @@ var uL = class extends o_ {
71741
71989
  begin() {
71742
71990
  super.begin(), this._snapshots = [];
71743
71991
  let e = new L();
71744
- for (let t of this.mobject.getFamily()) if (rL(t)) {
71992
+ for (let t of this.mobject.getFamily()) if (uL(t)) {
71745
71993
  let n = t.getLocalPoints();
71746
71994
  if (n.length === 0) continue;
71747
71995
  let r = t._worldMatrix(), i = r.clone().invert(), a = this.aboutPoint, o = n.map((t) => {
@@ -71777,15 +72025,15 @@ var uL = class extends o_ {
71777
72025
  this.mobject._markDirtyUpward(), super.finish();
71778
72026
  }
71779
72027
  };
71780
- function dL(e, t, n) {
71781
- return new uL(e, {
72028
+ function vL(e, t, n) {
72029
+ return new _L(e, {
71782
72030
  ...n,
71783
72031
  matrix: t
71784
72032
  });
71785
72033
  }
71786
72034
  //#endregion
71787
72035
  //#region src/animation/transform/FadeTransforms.ts
71788
- var fL = class extends o_ {
72036
+ var yL = class extends o_ {
71789
72037
  target;
71790
72038
  stretchFactor;
71791
72039
  _startPoints = [];
@@ -71811,10 +72059,10 @@ var fL = class extends o_ {
71811
72059
  e.setPoints(this._targetPoints), e.setTransformSubpathLengths(void 0), e.opacity = this._targetOpacity, e.color = this.target.color, super.finish();
71812
72060
  }
71813
72061
  };
71814
- function pL(e, t, n) {
71815
- return new fL(e, t, n);
72062
+ function bL(e, t, n) {
72063
+ return new yL(e, t, n);
71816
72064
  }
71817
- var mL = class extends o_ {
72065
+ var xL = class extends o_ {
71818
72066
  target;
71819
72067
  _pieceStates = [];
71820
72068
  constructor(e, t, n = {}) {
@@ -71872,22 +72120,22 @@ var mL = class extends o_ {
71872
72120
  super.finish();
71873
72121
  }
71874
72122
  };
71875
- function hL(e, t, n) {
71876
- return new mL(e, t, n);
72123
+ function SL(e, t, n) {
72124
+ return new xL(e, t, n);
71877
72125
  }
71878
- var gL = class extends mT {
72126
+ var CL = class extends mT {
71879
72127
  originalSource;
71880
72128
  constructor(e, t, n = {}) {
71881
72129
  let r = e.copy();
71882
72130
  super(r, t, n), this.originalSource = e;
71883
72131
  }
71884
72132
  };
71885
- function _L(e, t, n) {
71886
- return new gL(e, t, n);
72133
+ function wL(e, t, n) {
72134
+ return new CL(e, t, n);
71887
72135
  }
71888
72136
  //#endregion
71889
72137
  //#region src/animation/transform/MovementTransforms.ts
71890
- var vL = class extends o_ {
72138
+ var TL = class extends o_ {
71891
72139
  target;
71892
72140
  angle;
71893
72141
  _startPoints = [];
@@ -71930,10 +72178,10 @@ var vL = class extends o_ {
71930
72178
  e.setPoints(this._targetPoints), e.setTransformSubpathLengths(void 0), e.opacity = this._targetOpacity, e.color = this.target.color, super.finish();
71931
72179
  }
71932
72180
  };
71933
- function yL(e, t, n) {
71934
- return new vL(e, t, n);
72181
+ function EL(e, t, n) {
72182
+ return new TL(e, t, n);
71935
72183
  }
71936
- var bL = class extends o_ {
72184
+ var DL = class extends o_ {
71937
72185
  target;
71938
72186
  angle;
71939
72187
  _startPoints = [];
@@ -71976,10 +72224,10 @@ var bL = class extends o_ {
71976
72224
  e.setPoints(this._targetPoints), e.setTransformSubpathLengths(void 0), e.opacity = this._targetOpacity, e.color = this.target.color, super.finish();
71977
72225
  }
71978
72226
  };
71979
- function xL(e, t, n) {
71980
- return new bL(e, t, n);
72227
+ function OL(e, t, n) {
72228
+ return new DL(e, t, n);
71981
72229
  }
71982
- var SL = class extends o_ {
72230
+ var kL = class extends o_ {
71983
72231
  mobject2;
71984
72232
  pathArc;
71985
72233
  autoCenter;
@@ -72008,10 +72256,10 @@ var SL = class extends o_ {
72008
72256
  this.mobject.position.copy(this._targetPos1), this.mobject2.position.copy(this._targetPos2), this.mobject._markDirty(), this.mobject2._markDirty(), super.finish();
72009
72257
  }
72010
72258
  };
72011
- function CL(e, t, n) {
72012
- return new SL(e, t, n);
72259
+ function AL(e, t, n) {
72260
+ return new kL(e, t, n);
72013
72261
  }
72014
- function wL(e, t, n, r) {
72262
+ function jL(e, t, n, r) {
72015
72263
  let i = 1e-6;
72016
72264
  if (Math.abs(r) < i) return new L().lerpVectors(e, t, n);
72017
72265
  let a = new L().subVectors(t, e), o = new L().addVectors(e, a.clone().multiplyScalar(.5));
@@ -72022,7 +72270,7 @@ function wL(e, t, n, r) {
72022
72270
  let s = new L().subVectors(e, o), c = n * r, l = Math.cos(c), u = Math.sin(c);
72023
72271
  return new L(o.x + s.x * l - s.y * u, o.y + s.x * u + s.y * l, o.z + s.z);
72024
72272
  }
72025
- var TL = class extends o_ {
72273
+ var ML = class extends o_ {
72026
72274
  mobjects;
72027
72275
  pathArc;
72028
72276
  autoCenter;
@@ -72044,7 +72292,7 @@ var TL = class extends o_ {
72044
72292
  }
72045
72293
  interpolate(e) {
72046
72294
  for (let t = 0; t < this.mobjects.length; t++) {
72047
- let n = this.mobjects[t], r = wL(this._startPositions[t], this._targetPositions[t], e, this.pathArc);
72295
+ let n = this.mobjects[t], r = jL(this._startPositions[t], this._targetPositions[t], e, this.pathArc);
72048
72296
  n.position.copy(r), n._markDirty();
72049
72297
  }
72050
72298
  }
@@ -72053,12 +72301,12 @@ var TL = class extends o_ {
72053
72301
  super.finish();
72054
72302
  }
72055
72303
  };
72056
- function EL(e, t) {
72057
- return new TL(e, t);
72304
+ function NL(e, t) {
72305
+ return new ML(e, t);
72058
72306
  }
72059
72307
  //#endregion
72060
72308
  //#region src/animation/transform/SpecialTransforms.ts
72061
- var DL = class extends o_ {
72309
+ var PL = class extends o_ {
72062
72310
  scaleFactor;
72063
72311
  _initialScale = new L();
72064
72312
  _targetScale = new L();
@@ -72086,13 +72334,13 @@ var DL = class extends o_ {
72086
72334
  this.interpolate(1), super.finish();
72087
72335
  }
72088
72336
  };
72089
- function OL(e, t, n) {
72090
- return new DL(e, {
72337
+ function FL(e, t, n) {
72338
+ return new PL(e, {
72091
72339
  ...n,
72092
72340
  scaleFactor: t
72093
72341
  });
72094
72342
  }
72095
- var kL = class extends o_ {
72343
+ var IL = class extends o_ {
72096
72344
  _initialScale = new L();
72097
72345
  constructor(e, t = {}) {
72098
72346
  super(e, t);
@@ -72108,19 +72356,19 @@ var kL = class extends o_ {
72108
72356
  this.mobject.scaleVector.set(0, 0, 0), this.mobject._markDirty(), super.finish();
72109
72357
  }
72110
72358
  };
72111
- function AL(e, t) {
72112
- return new kL(e, t);
72359
+ function LL(e, t) {
72360
+ return new IL(e, t);
72113
72361
  }
72114
- var jL = class extends mT {
72362
+ var RL = class extends mT {
72115
72363
  constructor(e, t = {}) {
72116
72364
  if (!e.savedState) throw Error("Restore requires mobject.savedState to be set. Use mobject.saveState() first.");
72117
72365
  super(e, e.savedState, t);
72118
72366
  }
72119
72367
  };
72120
- function ML(e, t) {
72121
- return new jL(e, t);
72368
+ function zL(e, t) {
72369
+ return new RL(e, t);
72122
72370
  }
72123
- var NL = class extends o_ {
72371
+ var BL = class extends o_ {
72124
72372
  targetColor;
72125
72373
  _startColor = new Wt();
72126
72374
  _targetColorObj = new Wt();
@@ -72138,13 +72386,13 @@ var NL = class extends o_ {
72138
72386
  this.mobject.color = this.targetColor, this.mobject._markDirty(), super.finish();
72139
72387
  }
72140
72388
  };
72141
- function PL(e, t, n) {
72142
- return new NL(e, {
72389
+ function VL(e, t, n) {
72390
+ return new BL(e, {
72143
72391
  ...n,
72144
72392
  color: t
72145
72393
  });
72146
72394
  }
72147
- var FL = class extends o_ {
72395
+ var HL = class extends o_ {
72148
72396
  animation1;
72149
72397
  animation2;
72150
72398
  transformRateFunc;
@@ -72177,12 +72425,12 @@ var FL = class extends o_ {
72177
72425
  e.setPoints(this._anim2EndPoints), e.opacity = t.opacity, this.animation1.finish(), this.animation2.finish(), super.finish();
72178
72426
  }
72179
72427
  };
72180
- function IL(e, t, n) {
72181
- return new FL(e, t, n);
72428
+ function UL(e, t, n) {
72429
+ return new HL(e, t, n);
72182
72430
  }
72183
72431
  //#endregion
72184
72432
  //#region src/animation/transform/TransformMatchingBase.ts
72185
- var LL = class extends o_ {
72433
+ var WL = class extends o_ {
72186
72434
  target;
72187
72435
  keyFunc;
72188
72436
  fadeRatio;
@@ -72277,7 +72525,7 @@ var LL = class extends o_ {
72277
72525
  };
72278
72526
  //#endregion
72279
72527
  //#region src/utils/hungarian.ts
72280
- function RL(e) {
72528
+ function GL(e) {
72281
72529
  let t = e.length;
72282
72530
  if (t === 0) return {
72283
72531
  assignments: [],
@@ -72295,7 +72543,7 @@ function RL(e) {
72295
72543
  let r = 0;
72296
72544
  for (let i = 0; i < t; i++) for (let t = 0; t < n; t++) e[i][t] > r && (r = e[i][t]);
72297
72545
  let i = r * 10 + 1, a = Math.max(t, n), o = Array.from({ length: a }, (r, o) => Array.from({ length: a }, (r, a) => o < t && a < n ? e[o][a] : i)), s = new Float64Array(a + 1), c = new Float64Array(a + 1), l = new Int32Array(a + 1).fill(0), u = new Int32Array(a + 1).fill(0);
72298
- for (let e = 1; e <= a; e++) zL(e, a, o, s, c, l, u);
72546
+ for (let e = 1; e <= a; e++) KL(e, a, o, s, c, l, u);
72299
72547
  let d = Array(t).fill(-1), f = /* @__PURE__ */ new Set(), p = /* @__PURE__ */ new Set(), m = 0;
72300
72548
  for (let r = 1; r <= a; r++) {
72301
72549
  let i = l[r] - 1, a = r - 1;
@@ -72308,7 +72556,7 @@ function RL(e) {
72308
72556
  assignedCols: p
72309
72557
  };
72310
72558
  }
72311
- function zL(e, t, n, r, i, a, o) {
72559
+ function KL(e, t, n, r, i, a, o) {
72312
72560
  a[0] = e;
72313
72561
  let s = 0, c = new Float64Array(t + 1).fill(Infinity), l = new Uint8Array(t + 1);
72314
72562
  do {
@@ -72327,7 +72575,7 @@ function zL(e, t, n, r, i, a, o) {
72327
72575
  a[s] = a[e], s = e;
72328
72576
  } while (s !== 0);
72329
72577
  }
72330
- function BL(e, t = 0) {
72578
+ function qL(e, t = 0) {
72331
72579
  let n = e.length;
72332
72580
  if (n === 0) return {
72333
72581
  assignments: [],
@@ -72344,7 +72592,7 @@ function BL(e, t = 0) {
72344
72592
  };
72345
72593
  let i = 0;
72346
72594
  for (let t = 0; t < n; t++) for (let n = 0; n < r; n++) e[t][n] > i && (i = e[t][n]);
72347
- let a = i * 10 + 1, o = RL(Array.from({ length: n }, (n, o) => Array.from({ length: r }, (n, r) => e[o][r] >= t ? i - e[o][r] : a)));
72595
+ let a = i * 10 + 1, o = GL(Array.from({ length: n }, (n, o) => Array.from({ length: r }, (n, r) => e[o][r] >= t ? i - e[o][r] : a)));
72348
72596
  for (let r = 0; r < n; r++) {
72349
72597
  let n = o.assignments[r];
72350
72598
  n >= 0 && e[r][n] < t && (o.assignments[r] = -1, o.assignedRows.delete(r), o.assignedCols.delete(n));
@@ -72353,7 +72601,7 @@ function BL(e, t = 0) {
72353
72601
  }
72354
72602
  //#endregion
72355
72603
  //#region src/animation/transform/TransformMatchingShared.ts
72356
- function VL(e) {
72604
+ function JL(e) {
72357
72605
  let t = e.getLocalPoints();
72358
72606
  if (t.length === 0) {
72359
72607
  let t = e.getCenter();
@@ -72393,17 +72641,17 @@ function VL(e) {
72393
72641
  ]
72394
72642
  };
72395
72643
  }
72396
- function HL(e, t) {
72397
- let n = VL(e), r = VL(t), i = Math.sqrt(n.size[0] ** 2 + n.size[1] ** 2), a = Math.sqrt(r.size[0] ** 2 + r.size[1] ** 2), o = Math.max(i, a, .001), s = 1 - Math.abs(i - a) / o, c = n.size[1] === 0 ? 1 : n.size[0] / n.size[1], l = r.size[1] === 0 ? 1 : r.size[0] / r.size[1], u = Math.max(c, l, .001), d = 1 - Math.abs(c - l) / u, f = e.getLocalPoints().length, p = t.getLocalPoints().length, m = Math.max(f, p, 1), h = 1 - Math.abs(f - p) / m;
72644
+ function YL(e, t) {
72645
+ let n = JL(e), r = JL(t), i = Math.sqrt(n.size[0] ** 2 + n.size[1] ** 2), a = Math.sqrt(r.size[0] ** 2 + r.size[1] ** 2), o = Math.max(i, a, .001), s = 1 - Math.abs(i - a) / o, c = n.size[1] === 0 ? 1 : n.size[0] / n.size[1], l = r.size[1] === 0 ? 1 : r.size[0] / r.size[1], u = Math.max(c, l, .001), d = 1 - Math.abs(c - l) / u, f = e.getLocalPoints().length, p = t.getLocalPoints().length, m = Math.max(f, p, 1), h = 1 - Math.abs(f - p) / m;
72398
72646
  return s * .4 + d * .3 + h * .3;
72399
72647
  }
72400
- function UL(e, t) {
72401
- let n = VL(e).center, r = VL(t).center;
72648
+ function XL(e, t) {
72649
+ let n = JL(e).center, r = JL(t).center;
72402
72650
  return Math.sqrt((n[0] - r[0]) ** 2 + (n[1] - r[1]) ** 2 + (n[2] - r[2]) ** 2);
72403
72651
  }
72404
72652
  //#endregion
72405
72653
  //#region src/animation/transform/TransformMatching.ts
72406
- var WL = class extends o_ {
72654
+ var ZL = class extends o_ {
72407
72655
  target;
72408
72656
  matchThreshold;
72409
72657
  keyFunc;
@@ -72446,7 +72694,7 @@ var WL = class extends o_ {
72446
72694
  }
72447
72695
  }
72448
72696
  } else {
72449
- let i = BL(Array.from({ length: e.length }, (n, r) => Array.from({ length: t.length }, (n, i) => HL(e[r], t[i]))), this.matchThreshold);
72697
+ let i = qL(Array.from({ length: e.length }, (n, r) => Array.from({ length: t.length }, (n, i) => YL(e[r], t[i]))), this.matchThreshold);
72450
72698
  for (let a = 0; a < e.length; a++) {
72451
72699
  let o = i.assignments[a];
72452
72700
  o >= 0 && (this._addMatchedPart(e[a], t[o]), n.add(a), r.add(o));
@@ -72504,16 +72752,16 @@ var WL = class extends o_ {
72504
72752
  super.finish();
72505
72753
  }
72506
72754
  };
72507
- function GL(e, t, n) {
72508
- return new WL(e, t, n);
72755
+ function QL(e, t, n) {
72756
+ return new ZL(e, t, n);
72509
72757
  }
72510
- function KL(e) {
72758
+ function $L(e) {
72511
72759
  let t = e;
72512
72760
  if (typeof t.getLatex == "function") return t.getLatex();
72513
- let n = VL(e);
72761
+ let n = JL(e);
72514
72762
  return `shape_${`${n.size[0].toFixed(2)}_${n.size[1].toFixed(2)}`}_${e.getLocalPoints().length}`;
72515
72763
  }
72516
- var qL = class extends o_ {
72764
+ var eR = class extends o_ {
72517
72765
  target;
72518
72766
  keyFunc;
72519
72767
  fadeRatio;
@@ -72523,7 +72771,7 @@ var qL = class extends o_ {
72523
72771
  _fadeInParts = [];
72524
72772
  _mismatchedPairs = [];
72525
72773
  constructor(e, t, n = {}) {
72526
- super(e, n), this.target = t, this.keyFunc = n.keyFunc ?? KL, this.fadeRatio = Math.min(.5, Math.max(0, n.fadeRatio ?? .25)), this.transformMismatches = n.transformMismatches ?? !1;
72774
+ super(e, n), this.target = t, this.keyFunc = n.keyFunc ?? $L, this.fadeRatio = Math.min(.5, Math.max(0, n.fadeRatio ?? .25)), this.transformMismatches = n.transformMismatches ?? !1;
72527
72775
  }
72528
72776
  _getTexParts(e) {
72529
72777
  let t = e.children.filter((e) => e instanceof V);
@@ -72566,7 +72814,7 @@ var qL = class extends o_ {
72566
72814
  for (let t = 0; t < e.length; t++) n.has(t) || o.push(t);
72567
72815
  for (let e = 0; e < t.length; e++) r.has(e) || s.push(e);
72568
72816
  if (this.transformMismatches && o.length > 0 && s.length > 0) {
72569
- let n = o.map((t) => e[t]), r = s.map((e) => t[e]), i = RL(Array.from({ length: n.length }, (e, t) => Array.from({ length: r.length }, (e, i) => UL(n[t], r[i])))), a = /* @__PURE__ */ new Set(), c = /* @__PURE__ */ new Set();
72817
+ let n = o.map((t) => e[t]), r = s.map((e) => t[e]), i = GL(Array.from({ length: n.length }, (e, t) => Array.from({ length: r.length }, (e, i) => XL(n[t], r[i])))), a = /* @__PURE__ */ new Set(), c = /* @__PURE__ */ new Set();
72570
72818
  for (let e = 0; e < n.length; e++) {
72571
72819
  let t = i.assignments[e];
72572
72820
  t >= 0 && t < r.length && (this._addMismatchedPair(n[e], r[t]), a.add(e), c.add(t));
@@ -72671,12 +72919,12 @@ var qL = class extends o_ {
72671
72919
  super.finish();
72672
72920
  }
72673
72921
  };
72674
- function JL(e, t, n) {
72675
- return new qL(e, t, n);
72922
+ function tR(e, t, n) {
72923
+ return new eR(e, t, n);
72676
72924
  }
72677
72925
  //#endregion
72678
72926
  //#region src/animation/transform/TransformMatchingCode.ts
72679
- var YL = .25, XL = 1, ZL = class extends o_ {
72927
+ var nR = .25, rR = 1, iR = class extends o_ {
72680
72928
  target;
72681
72929
  keyFunc;
72682
72930
  fadeRatio;
@@ -72688,7 +72936,7 @@ var YL = .25, XL = 1, ZL = class extends o_ {
72688
72936
  _fadeOutParts = [];
72689
72937
  _fadeInParts = [];
72690
72938
  constructor(e, t, n = {}) {
72691
- super(e, n), this.target = t, this.keyFunc = n.keyFunc, this.fadeRatio = Math.min(.5, Math.max(0, n.fadeRatio ?? YL)), this.matchBy = n.matchBy ?? "token", this.transformMismatches = n.transformMismatches ?? !1, this.fadeTransformMismatches = n.fadeTransformMismatches ?? !1;
72939
+ super(e, n), this.target = t, this.keyFunc = n.keyFunc, this.fadeRatio = Math.min(.5, Math.max(0, n.fadeRatio ?? nR)), this.matchBy = n.matchBy ?? "token", this.transformMismatches = n.transformMismatches ?? !1, this.fadeTransformMismatches = n.fadeTransformMismatches ?? !1;
72692
72940
  }
72693
72941
  get matchedParts() {
72694
72942
  return this._matchedParts;
@@ -72764,19 +73012,19 @@ var YL = .25, XL = 1, ZL = class extends o_ {
72764
73012
  }
72765
73013
  _addMatchedPart(e, t, n) {
72766
73014
  let r = this.mobject.makeTokenMobject(e.text, e.type);
72767
- this._place(r, e.position), r.opacity = XL, this._parentAdd(r), n.push({
73015
+ this._place(r, e.position), r.opacity = rR, this._parentAdd(r), n.push({
72768
73016
  mobject: r,
72769
73017
  startPosition: e.position,
72770
73018
  targetPosition: t.position,
72771
- startOpacity: XL,
72772
- targetOpacity: XL
73019
+ startOpacity: rR,
73020
+ targetOpacity: rR
72773
73021
  });
72774
73022
  }
72775
73023
  _addFadeOutPart(e) {
72776
73024
  let t = this.mobject.makeTokenMobject(e.text, e.type);
72777
- this._place(t, e.position), t.opacity = XL, this._parentAdd(t), this._fadeOutParts.push({
73025
+ this._place(t, e.position), t.opacity = rR, this._parentAdd(t), this._fadeOutParts.push({
72778
73026
  mobject: t,
72779
- startOpacity: XL,
73027
+ startOpacity: rR,
72780
73028
  targetOpacity: 0,
72781
73029
  fadeIn: !1
72782
73030
  });
@@ -72786,7 +73034,7 @@ var YL = .25, XL = 1, ZL = class extends o_ {
72786
73034
  this._place(t, e.position), t.opacity = 0, this._parentAdd(t), this._fadeInParts.push({
72787
73035
  mobject: t,
72788
73036
  startOpacity: 0,
72789
- targetOpacity: XL,
73037
+ targetOpacity: rR,
72790
73038
  fadeIn: !0
72791
73039
  });
72792
73040
  }
@@ -72811,16 +73059,16 @@ var YL = .25, XL = 1, ZL = class extends o_ {
72811
73059
  super.finish();
72812
73060
  }
72813
73061
  };
72814
- function QL(e, t, n) {
72815
- return new ZL(e, t, n);
73062
+ function aR(e, t, n) {
73063
+ return new iR(e, t, n);
72816
73064
  }
72817
73065
  //#endregion
72818
73066
  //#region src/animation/transform/ApplyPointwiseFunction.ts
72819
- function $L(e) {
73067
+ function oR(e) {
72820
73068
  let t = e;
72821
73069
  return typeof t.getLocalPoints == "function" && typeof t.setPoints == "function";
72822
73070
  }
72823
- var eR = class extends o_ {
73071
+ var sR = class extends o_ {
72824
73072
  func;
72825
73073
  _snapshots = [];
72826
73074
  constructor(e, t, n) {
@@ -72829,7 +73077,7 @@ var eR = class extends o_ {
72829
73077
  begin() {
72830
73078
  super.begin(), this._snapshots = [];
72831
73079
  let e = new L();
72832
- for (let t of this.mobject.getFamily()) if ($L(t)) {
73080
+ for (let t of this.mobject.getFamily()) if (oR(t)) {
72833
73081
  let n = t.getLocalPoints();
72834
73082
  if (n.length === 0) continue;
72835
73083
  let r = t._worldMatrix(), i = r.clone().invert(), a = n.map((t) => {
@@ -72865,16 +73113,16 @@ var eR = class extends o_ {
72865
73113
  this.mobject._markDirtyUpward(), super.finish();
72866
73114
  }
72867
73115
  };
72868
- function tR(e, t, n) {
72869
- return new eR(e, t, n);
73116
+ function cR(e, t, n) {
73117
+ return new sR(e, t, n);
72870
73118
  }
72871
73119
  //#endregion
72872
73120
  //#region src/animation/transform/ApplyPointwiseFunctionToCenter.ts
72873
- function nR(e) {
73121
+ function lR(e) {
72874
73122
  let t = e;
72875
73123
  return typeof t.getLocalPoints == "function" && typeof t.setPoints == "function";
72876
73124
  }
72877
- var rR = class extends o_ {
73125
+ var uR = class extends o_ {
72878
73126
  func;
72879
73127
  _snapshots = [];
72880
73128
  constructor(e, t, n) {
@@ -72883,7 +73131,7 @@ var rR = class extends o_ {
72883
73131
  begin() {
72884
73132
  super.begin(), this._snapshots = [];
72885
73133
  let e = new L();
72886
- for (let t of this.mobject.getFamily()) if (nR(t)) {
73134
+ for (let t of this.mobject.getFamily()) if (lR(t)) {
72887
73135
  let n = t.getLocalPoints();
72888
73136
  if (n.length === 0) continue;
72889
73137
  let r = t, i = r._threeObject, a = null, o = null;
@@ -72932,12 +73180,12 @@ var rR = class extends o_ {
72932
73180
  this.mobject._markDirtyUpward(), super.finish();
72933
73181
  }
72934
73182
  };
72935
- function iR(e, t, n) {
72936
- return new rR(e, t, n);
73183
+ function dR(e, t, n) {
73184
+ return new uR(e, t, n);
72937
73185
  }
72938
73186
  //#endregion
72939
73187
  //#region src/animation/movement/Rotate.ts
72940
- var aR = class extends o_ {
73188
+ var fR = class extends o_ {
72941
73189
  angle;
72942
73190
  axis;
72943
73191
  aboutPoint;
@@ -73118,7 +73366,7 @@ var aR = class extends o_ {
73118
73366
  this.interpolate(1), super.finish();
73119
73367
  }
73120
73368
  };
73121
- function oR(e, t, n) {
73369
+ function pR(e, t, n) {
73122
73370
  if (typeof t != "number") throw TypeError("rotate(): angle must be a number");
73123
73371
  return n && (() => {
73124
73372
  let e = (e) => (e.duration === void 0 || typeof e.duration == "number") && (e.rateFunc === void 0 || !0) && (e.shift === void 0 || Array.isArray(e.shift) && e.shift.length === 3 && typeof e.shift[0] == "number" && typeof e.shift[1] == "number" && typeof e.shift[2] == "number") && (e.axis === void 0 || Array.isArray(e.axis) && e.axis.length === 3 && typeof e.axis[0] == "number" && typeof e.axis[1] == "number" && typeof e.axis[2] == "number") && (e.aboutPoint === void 0 || Array.isArray(e.aboutPoint) && e.aboutPoint.length === 3 && typeof e.aboutPoint[0] == "number" && typeof e.aboutPoint[1] == "number" && typeof e.aboutPoint[2] == "number") && (e.aboutEdge === void 0 || Array.isArray(e.aboutEdge) && e.aboutEdge.length === 3 && typeof e.aboutEdge[0] == "number" && typeof e.aboutEdge[1] == "number" && typeof e.aboutEdge[2] == "number"), t = (e, t, n = !0) => (e.duration === void 0 || typeof e.duration == "number" || B(n, {
@@ -73258,17 +73506,17 @@ function oR(e, t, n) {
73258
73506
  expected: "Omit<RotateOptions, \"angle\">",
73259
73507
  value: e
73260
73508
  }, r))(e, "$input", !0)), e);
73261
- })()(n), new aR(e, {
73509
+ })()(n), new fR(e, {
73262
73510
  ...n,
73263
73511
  angle: t
73264
73512
  });
73265
73513
  }
73266
73514
  //#endregion
73267
73515
  //#region src/animation/movement/Scale.ts
73268
- function sR(e, t, n) {
73516
+ function mR(e, t, n) {
73269
73517
  return new L(e.x + (t.x - e.x) * n, e.y + (t.y - e.y) * n, e.z + (t.z - e.z) * n);
73270
73518
  }
73271
- var cR = class extends o_ {
73519
+ var hR = class extends o_ {
73272
73520
  scaleFactor;
73273
73521
  aboutPoint;
73274
73522
  _initialScale = new L();
@@ -73293,7 +73541,7 @@ var cR = class extends o_ {
73293
73541
  }
73294
73542
  }
73295
73543
  interpolate(e) {
73296
- let t = sR(this._initialScale, this._targetScale, e);
73544
+ let t = mR(this._initialScale, this._targetScale, e);
73297
73545
  if (this.mobject.scaleVector.copy(t), this._aboutPointVector) {
73298
73546
  let e = new L(t.x / this._initialScale.x, t.y / this._initialScale.y, t.z / this._initialScale.z), n = new L().copy(this._initialPosition).sub(this._aboutPointVector);
73299
73547
  n.multiply(e);
@@ -73306,13 +73554,13 @@ var cR = class extends o_ {
73306
73554
  this.interpolate(1), super.finish();
73307
73555
  }
73308
73556
  };
73309
- function lR(e, t, n) {
73310
- return new cR(e, {
73557
+ function gR(e, t, n) {
73558
+ return new hR(e, {
73311
73559
  ...n,
73312
73560
  scaleFactor: t
73313
73561
  });
73314
73562
  }
73315
- var uR = class extends o_ {
73563
+ var _R = class extends o_ {
73316
73564
  _targetScale = new L();
73317
73565
  constructor(e, t = {}) {
73318
73566
  super(e, t);
@@ -73327,12 +73575,12 @@ var uR = class extends o_ {
73327
73575
  this.mobject.scaleVector.copy(this._targetScale), this.mobject._markDirty(), super.finish();
73328
73576
  }
73329
73577
  };
73330
- function dR(e, t) {
73331
- return new uR(e, t);
73578
+ function vR(e, t) {
73579
+ return new _R(e, t);
73332
73580
  }
73333
73581
  //#endregion
73334
73582
  //#region src/animation/movement/Shift.ts
73335
- var fR = class extends o_ {
73583
+ var yR = class extends o_ {
73336
73584
  direction;
73337
73585
  _initialPosition = new L();
73338
73586
  _targetPosition = new L();
@@ -73350,13 +73598,13 @@ var fR = class extends o_ {
73350
73598
  this.mobject.position.set(this._initialPosition.x + this.direction[0] * e, this._initialPosition.y + this.direction[1] * e, this._initialPosition.z + this.direction[2] * e), this.mobject._markDirty(), super.finish();
73351
73599
  }
73352
73600
  };
73353
- function pR(e, t, n) {
73354
- return new fR(e, {
73601
+ function bR(e, t, n) {
73602
+ return new yR(e, {
73355
73603
  ...n,
73356
73604
  direction: t
73357
73605
  });
73358
73606
  }
73359
- var mR = class extends o_ {
73607
+ var xR = class extends o_ {
73360
73608
  _initialPosition = new L();
73361
73609
  _targetPosition = new L();
73362
73610
  constructor(e, t = {}) {
@@ -73374,12 +73622,12 @@ var mR = class extends o_ {
73374
73622
  this.mobject.position.copy(this._targetPosition), this.mobject._markDirty(), super.finish();
73375
73623
  }
73376
73624
  };
73377
- function hR(e, t) {
73378
- return new mR(e, t);
73625
+ function SR(e, t) {
73626
+ return new xR(e, t);
73379
73627
  }
73380
73628
  //#endregion
73381
73629
  //#region src/animation/movement/MoveAlongPath.ts
73382
- function gR(e, t, n, r, i) {
73630
+ function CR(e, t, n, r, i) {
73383
73631
  let a = 1 - i, o = a * a, s = o * a, c = i * i, l = c * i;
73384
73632
  return [
73385
73633
  s * e[0] + 3 * o * i * t[0] + 3 * a * c * n[0] + l * r[0],
@@ -73387,7 +73635,7 @@ function gR(e, t, n, r, i) {
73387
73635
  s * e[2] + 3 * o * i * t[2] + 3 * a * c * n[2] + l * r[2]
73388
73636
  ];
73389
73637
  }
73390
- function _R(e, t, n, r, i) {
73638
+ function wR(e, t, n, r, i) {
73391
73639
  let a = 1 - i, o = a * a, s = i * i;
73392
73640
  return [
73393
73641
  3 * o * (t[0] - e[0]) + 6 * a * i * (n[0] - t[0]) + 3 * s * (r[0] - n[0]),
@@ -73395,7 +73643,7 @@ function _R(e, t, n, r, i) {
73395
73643
  3 * o * (t[2] - e[2]) + 6 * a * i * (n[2] - t[2]) + 3 * s * (r[2] - n[2])
73396
73644
  ];
73397
73645
  }
73398
- var vR = class extends o_ {
73646
+ var TR = class extends o_ {
73399
73647
  path;
73400
73648
  rotateAlongPath;
73401
73649
  _pathPoints = [];
@@ -73437,8 +73685,8 @@ var vR = class extends o_ {
73437
73685
  e = Math.max(0, Math.min(1, e));
73438
73686
  let t = e * this._numSegments, n = Math.min(Math.floor(t), this._numSegments - 1), r = t - n, i = n * 3, a = this._pathPoints[i], o = this._pathPoints[i + 1], s = this._pathPoints[i + 2], c = this._pathPoints[i + 3];
73439
73687
  return {
73440
- position: gR(a, o, s, c, r),
73441
- tangent: _R(a, o, s, c, r)
73688
+ position: CR(a, o, s, c, r),
73689
+ tangent: wR(a, o, s, c, r)
73442
73690
  };
73443
73691
  }
73444
73692
  interpolate(e) {
@@ -73457,15 +73705,15 @@ var vR = class extends o_ {
73457
73705
  this.interpolate(1), super.finish();
73458
73706
  }
73459
73707
  };
73460
- function yR(e, t, n) {
73461
- return new vR(e, {
73708
+ function ER(e, t, n) {
73709
+ return new TR(e, {
73462
73710
  ...n,
73463
73711
  path: t
73464
73712
  });
73465
73713
  }
73466
73714
  //#endregion
73467
73715
  //#region src/utils/ode.ts
73468
- function bR(e, t, n, r) {
73716
+ function DR(e, t, n, r) {
73469
73717
  let i = n.length, a = e(t, n), o = Array(i);
73470
73718
  for (let e = 0; e < i; e++) o[e] = n[e] + .5 * r * a[e];
73471
73719
  let s = e(t + .5 * r, o), c = Array(i);
@@ -73476,7 +73724,7 @@ function bR(e, t, n, r) {
73476
73724
  for (let e = 0; e < i; e++) f[e] = n[e] + r / 6 * (a[e] + 2 * s[e] + 2 * l[e] + d[e]);
73477
73725
  return f;
73478
73726
  }
73479
- function xR(e, t, n, r, i = {}) {
73727
+ function OR(e, t, n, r, i = {}) {
73480
73728
  let { recordTrajectory: a = !1 } = i, o, s;
73481
73729
  i.stepSize === void 0 ? (o = i.numSteps ?? 100, s = (r - t) / o) : (s = i.stepSize, o = Math.max(1, Math.ceil(Math.abs(r - t) / Math.abs(s))), s = (r - t) / o);
73482
73730
  let c = [], l = t, u = [...n];
@@ -73484,7 +73732,7 @@ function xR(e, t, n, r, i = {}) {
73484
73732
  t: l,
73485
73733
  y: [...u]
73486
73734
  });
73487
- for (let n = 0; n < o; n++) u = bR(e, l, u, s), l = t + (n + 1) * s, a && c.push({
73735
+ for (let n = 0; n < o; n++) u = DR(e, l, u, s), l = t + (n + 1) * s, a && c.push({
73488
73736
  t: l,
73489
73737
  y: [...u]
73490
73738
  });
@@ -73494,9 +73742,9 @@ function xR(e, t, n, r, i = {}) {
73494
73742
  trajectory: c
73495
73743
  };
73496
73744
  }
73497
- function SR(e, t, n, r = 100) {
73745
+ function kR(e, t, n, r = 100) {
73498
73746
  if (n === 0) return [...t];
73499
- let i = xR((t, n) => {
73747
+ let i = OR((t, n) => {
73500
73748
  let r = e([
73501
73749
  n[0],
73502
73750
  n[1],
@@ -73516,14 +73764,14 @@ function SR(e, t, n, r = 100) {
73516
73764
  }
73517
73765
  //#endregion
73518
73766
  //#region src/animation/movement/Homotopy.ts
73519
- function CR(e) {
73767
+ function AR(e) {
73520
73768
  let t = e._worldMatrix();
73521
73769
  return {
73522
73770
  worldMatrix: t,
73523
73771
  inverseWorld: t.clone().invert()
73524
73772
  };
73525
73773
  }
73526
- function wR(e, t) {
73774
+ function jR(e, t) {
73527
73775
  let n = new L(t[0], t[1], t[2]).applyMatrix4(e);
73528
73776
  return [
73529
73777
  n.x,
@@ -73531,7 +73779,7 @@ function wR(e, t) {
73531
73779
  n.z
73532
73780
  ];
73533
73781
  }
73534
- var TR = class extends o_ {
73782
+ var MR = class extends o_ {
73535
73783
  homotopyFunc;
73536
73784
  _originalPoints = null;
73537
73785
  _frame = null;
@@ -73540,7 +73788,7 @@ var TR = class extends o_ {
73540
73788
  super(e, t), this.homotopyFunc = t.homotopyFunc;
73541
73789
  }
73542
73790
  begin() {
73543
- super.begin(), this.mobject instanceof V ? (this._isVMobject = !0, this._originalPoints = this.mobject.getLocalPoints(), this._frame = CR(this.mobject)) : (this._isVMobject = !1, this._originalPoints = null, this._frame = null);
73791
+ super.begin(), this.mobject instanceof V ? (this._isVMobject = !0, this._originalPoints = this.mobject.getLocalPoints(), this._frame = AR(this.mobject)) : (this._isVMobject = !1, this._originalPoints = null, this._frame = null);
73544
73792
  }
73545
73793
  interpolate(e) {
73546
73794
  if (!this._isVMobject || !this._originalPoints || !this._frame) {
@@ -73550,15 +73798,15 @@ var TR = class extends o_ {
73550
73798
  }
73551
73799
  let t = this.mobject, { worldMatrix: n, inverseWorld: r } = this._frame, i = [];
73552
73800
  for (let t of this._originalPoints) {
73553
- let [a, o, s] = wR(n, t), c = this.homotopyFunc(a, o, s, e);
73554
- i.push(wR(r, c));
73801
+ let [a, o, s] = jR(n, t), c = this.homotopyFunc(a, o, s, e);
73802
+ i.push(jR(r, c));
73555
73803
  }
73556
73804
  t.setPoints3D(i);
73557
73805
  }
73558
73806
  finish() {
73559
73807
  this.interpolate(1), super.finish();
73560
73808
  }
73561
- }, ER = class extends o_ {
73809
+ }, NR = class extends o_ {
73562
73810
  complexFunc;
73563
73811
  _originalPoints = null;
73564
73812
  _frame = null;
@@ -73567,7 +73815,7 @@ var TR = class extends o_ {
73567
73815
  super(e, t), this.complexFunc = t.complexFunc;
73568
73816
  }
73569
73817
  begin() {
73570
- super.begin(), this.mobject instanceof V ? (this._isVMobject = !0, this._originalPoints = this.mobject.getLocalPoints(), this._frame = CR(this.mobject)) : (this._isVMobject = !1, this._originalPoints = null, this._frame = null);
73818
+ super.begin(), this.mobject instanceof V ? (this._isVMobject = !0, this._originalPoints = this.mobject.getLocalPoints(), this._frame = AR(this.mobject)) : (this._isVMobject = !1, this._originalPoints = null, this._frame = null);
73571
73819
  }
73572
73820
  interpolate(e) {
73573
73821
  if (!this._isVMobject || !this._originalPoints || !this._frame) {
@@ -73580,11 +73828,11 @@ var TR = class extends o_ {
73580
73828
  }
73581
73829
  let t = this.mobject, { worldMatrix: n, inverseWorld: r } = this._frame, i = [];
73582
73830
  for (let t of this._originalPoints) {
73583
- let [a, o, s] = wR(n, t), c = this.complexFunc({
73831
+ let [a, o, s] = jR(n, t), c = this.complexFunc({
73584
73832
  re: a,
73585
73833
  im: o
73586
73834
  }, e);
73587
- i.push(wR(r, [
73835
+ i.push(jR(r, [
73588
73836
  c.re,
73589
73837
  c.im,
73590
73838
  s
@@ -73595,7 +73843,7 @@ var TR = class extends o_ {
73595
73843
  finish() {
73596
73844
  this.interpolate(1), super.finish();
73597
73845
  }
73598
- }, DR = class extends o_ {
73846
+ }, PR = class extends o_ {
73599
73847
  homotopyFunc;
73600
73848
  _originalPoints = null;
73601
73849
  _frame = null;
@@ -73606,9 +73854,9 @@ var TR = class extends o_ {
73606
73854
  begin() {
73607
73855
  super.begin();
73608
73856
  let e = this.mobject;
73609
- this._frame = CR(e);
73857
+ this._frame = AR(e);
73610
73858
  let { worldMatrix: t } = this._frame;
73611
- this._originalPoints = e.getLocalPoints().map((e) => wR(t, e)), this._anchorIndices = [];
73859
+ this._originalPoints = e.getLocalPoints().map((e) => jR(t, e)), this._anchorIndices = [];
73612
73860
  for (let e = 0; e < this._originalPoints.length; e += 3) this._anchorIndices.push(e);
73613
73861
  let n = this._originalPoints.length - 1;
73614
73862
  n >= 0 && !this._anchorIndices.includes(n) && this._anchorIndices.push(n);
@@ -73625,7 +73873,7 @@ var TR = class extends o_ {
73625
73873
  }
73626
73874
  for (let t = 0; t < n; t++) i.has(t) || (r[t] = this._transformHandle(t, e, i));
73627
73875
  let { inverseWorld: a } = this._frame;
73628
- t.setPoints3D(r.map((e) => wR(a, e)));
73876
+ t.setPoints3D(r.map((e) => jR(a, e)));
73629
73877
  }
73630
73878
  _transformHandle(e, t, n) {
73631
73879
  let r = this._originalPoints[e], i = -1, a = -1;
@@ -73659,7 +73907,7 @@ var TR = class extends o_ {
73659
73907
  finish() {
73660
73908
  this.interpolate(1), super.finish();
73661
73909
  }
73662
- }, OR = class extends o_ {
73910
+ }, FR = class extends o_ {
73663
73911
  vectorField;
73664
73912
  virtualTime;
73665
73913
  _originalPoints = null;
@@ -73671,7 +73919,7 @@ var TR = class extends o_ {
73671
73919
  super(e, t), this.vectorField = t.vectorField, this.virtualTime = t.virtualTime ?? 1, this._integrationSteps = t.integrationSteps ?? 100;
73672
73920
  }
73673
73921
  begin() {
73674
- if (super.begin(), this.mobject instanceof V) this._isVMobject = !0, this._originalPoints = this.mobject.getLocalPoints(), this._frame = CR(this.mobject);
73922
+ if (super.begin(), this.mobject instanceof V) this._isVMobject = !0, this._originalPoints = this.mobject.getLocalPoints(), this._frame = AR(this.mobject);
73675
73923
  else {
73676
73924
  this._isVMobject = !1, this._originalPoints = null, this._frame = null;
73677
73925
  let e = this.mobject.position;
@@ -73689,14 +73937,14 @@ var TR = class extends o_ {
73689
73937
  this.mobject.position.x,
73690
73938
  this.mobject.position.y,
73691
73939
  this.mobject.position.z
73692
- ], [n, r, i] = SR(this.vectorField, e, t, this._integrationSteps);
73940
+ ], [n, r, i] = kR(this.vectorField, e, t, this._integrationSteps);
73693
73941
  this.mobject.position.set(n, r, i), this.mobject._markDirty();
73694
73942
  return;
73695
73943
  }
73696
73944
  let n = this.mobject, { worldMatrix: r, inverseWorld: i } = this._frame, a = [];
73697
73945
  for (let e of this._originalPoints) {
73698
- let n = SR(this.vectorField, wR(r, e), t, this._integrationSteps);
73699
- a.push(wR(i, n));
73946
+ let n = kR(this.vectorField, jR(r, e), t, this._integrationSteps);
73947
+ a.push(jR(i, n));
73700
73948
  }
73701
73949
  n.setPoints3D(a);
73702
73950
  }
@@ -73704,33 +73952,33 @@ var TR = class extends o_ {
73704
73952
  this.interpolate(1), super.finish();
73705
73953
  }
73706
73954
  };
73707
- function kR(e, t, n) {
73708
- return new TR(e, {
73955
+ function IR(e, t, n) {
73956
+ return new MR(e, {
73709
73957
  ...n,
73710
73958
  homotopyFunc: t
73711
73959
  });
73712
73960
  }
73713
- function AR(e, t, n) {
73714
- return new ER(e, {
73961
+ function LR(e, t, n) {
73962
+ return new NR(e, {
73715
73963
  ...n,
73716
73964
  complexFunc: t
73717
73965
  });
73718
73966
  }
73719
- function jR(e, t, n) {
73720
- return new DR(e, {
73967
+ function RR(e, t, n) {
73968
+ return new PR(e, {
73721
73969
  ...n,
73722
73970
  homotopyFunc: t
73723
73971
  });
73724
73972
  }
73725
- function MR(e, t, n) {
73726
- return new OR(e, {
73973
+ function zR(e, t, n) {
73974
+ return new FR(e, {
73727
73975
  ...n,
73728
73976
  vectorField: t
73729
73977
  });
73730
73978
  }
73731
73979
  //#endregion
73732
73980
  //#region src/animation/growing/index.ts
73733
- var NR = class extends o_ {
73981
+ var BR = class extends o_ {
73734
73982
  _start = new L();
73735
73983
  _endShaftPos = new L();
73736
73984
  _endTipPos = new L();
@@ -73788,10 +74036,10 @@ var NR = class extends o_ {
73788
74036
  t.position.copy(this._endShaftPos), n.position.copy(this._endTipPos), t.scaleVector.copy(this._endShaftScale), n.scaleVector.copy(this._endTipScale), t._markDirty(), n._markDirty(), this.mobject._markDirty(), super.finish();
73789
74037
  }
73790
74038
  };
73791
- function PR(e, t) {
73792
- return new NR(e, t);
74039
+ function VR(e, t) {
74040
+ return new BR(e, t);
73793
74041
  }
73794
- var FR = class extends o_ {
74042
+ var HR = class extends o_ {
73795
74043
  edge;
73796
74044
  _targetScale = new L();
73797
74045
  _targetPosition = new L();
@@ -73812,13 +74060,13 @@ var FR = class extends o_ {
73812
74060
  this.mobject.scaleVector.copy(this._targetScale), this.mobject.position.copy(this._targetPosition), this.mobject._markDirty(), super.finish();
73813
74061
  }
73814
74062
  };
73815
- function IR(e, t, n) {
73816
- return new FR(e, {
74063
+ function UR(e, t, n) {
74064
+ return new HR(e, {
73817
74065
  ...n,
73818
74066
  edge: t
73819
74067
  });
73820
74068
  }
73821
- var LR = class extends o_ {
74069
+ var WR = class extends o_ {
73822
74070
  point;
73823
74071
  _targetScale = new L();
73824
74072
  _targetPosition = new L();
@@ -73837,13 +74085,13 @@ var LR = class extends o_ {
73837
74085
  this.mobject.scaleVector.copy(this._targetScale), this.mobject.position.copy(this._targetPosition), this.mobject._markDirty(), super.finish();
73838
74086
  }
73839
74087
  };
73840
- function RR(e, t, n) {
73841
- return new LR(e, {
74088
+ function GR(e, t, n) {
74089
+ return new WR(e, {
73842
74090
  ...n,
73843
74091
  point: t
73844
74092
  });
73845
74093
  }
73846
- var zR = class extends o_ {
74094
+ var KR = class extends o_ {
73847
74095
  angle;
73848
74096
  axis;
73849
74097
  _targetScale = new L();
@@ -73871,18 +74119,18 @@ var zR = class extends o_ {
73871
74119
  this.mobject.scaleVector.copy(this._targetScale), this.mobject.rotation.copy(this._initialRotation), this.mobject._markDirty(), super.finish();
73872
74120
  }
73873
74121
  };
73874
- function BR(e, t) {
73875
- return new zR(e, t);
74122
+ function qR(e, t) {
74123
+ return new KR(e, t);
73876
74124
  }
73877
74125
  //#endregion
73878
74126
  //#region src/animation/LaggedStart.ts
73879
- function VR(e, t) {
74127
+ function JR(e, t) {
73880
74128
  return new HT(e, {
73881
74129
  ...t,
73882
74130
  lagRatio: t?.lagRatio ?? .2
73883
74131
  });
73884
74132
  }
73885
- var HR = class extends HT {
74133
+ var YR = class extends HT {
73886
74134
  constructor(e, t = {}) {
73887
74135
  super(e, {
73888
74136
  ...t,
@@ -73892,13 +74140,13 @@ var HR = class extends HT {
73892
74140
  };
73893
74141
  //#endregion
73894
74142
  //#region src/animation/Succession.ts
73895
- function UR(e, t) {
74143
+ function XR(e, t) {
73896
74144
  return new HT(e, {
73897
74145
  ...t,
73898
74146
  lagRatio: 1
73899
74147
  });
73900
74148
  }
73901
- var WR = class extends HT {
74149
+ var ZR = class extends HT {
73902
74150
  constructor(e, t = {}) {
73903
74151
  super(e, {
73904
74152
  ...t,
@@ -73908,14 +74156,14 @@ var WR = class extends HT {
73908
74156
  };
73909
74157
  //#endregion
73910
74158
  //#region src/animation/composition/LaggedStartMap.ts
73911
- function GR(e, t, n) {
74159
+ function QR(e, t, n) {
73912
74160
  let { lagRatio: r = .2, animOptions: i, ...a } = n ?? {};
73913
74161
  return new HT(t.map((t) => new e(t, i)), {
73914
74162
  ...a,
73915
74163
  lagRatio: r
73916
74164
  });
73917
74165
  }
73918
- var KR = class extends HT {
74166
+ var $R = class extends HT {
73919
74167
  constructor(e, t, n = {}) {
73920
74168
  let { lagRatio: r = .2, animOptions: i, ...a } = n, o = t.map((t) => new e(t, i));
73921
74169
  super(o, {
@@ -73923,7 +74171,7 @@ var KR = class extends HT {
73923
74171
  lagRatio: r
73924
74172
  });
73925
74173
  }
73926
- }, qR = class extends o_ {
74174
+ }, ez = class extends o_ {
73927
74175
  _func;
73928
74176
  constructor(e, t, n) {
73929
74177
  super(e, n), this._func = t;
@@ -73932,18 +74180,18 @@ var KR = class extends HT {
73932
74180
  this._func(this.mobject, e);
73933
74181
  }
73934
74182
  };
73935
- function JR(e, t, n) {
73936
- return new qR(e, t, n);
74183
+ function tz(e, t, n) {
74184
+ return new ez(e, t, n);
73937
74185
  }
73938
74186
  //#endregion
73939
74187
  //#region src/animation/UpdateFromAlphaFunc.ts
73940
- var YR = class extends qR {};
73941
- function XR(e, t, n) {
73942
- return new YR(e, t, n);
74188
+ var nz = class extends ez {};
74189
+ function rz(e, t, n) {
74190
+ return new nz(e, t, n);
73943
74191
  }
73944
74192
  //#endregion
73945
74193
  //#region src/animation/MaintainPositionRelativeTo.ts
73946
- function ZR(e, t) {
74194
+ function iz(e, t) {
73947
74195
  let n = [
73948
74196
  e.position.x - t.position.x,
73949
74197
  e.position.y - t.position.y,
@@ -73959,7 +74207,7 @@ function ZR(e, t) {
73959
74207
  }
73960
74208
  //#endregion
73961
74209
  //#region src/animation/AlwaysRedraw.ts
73962
- function QR(e) {
74210
+ function az(e) {
73963
74211
  let t = e();
73964
74212
  return t.addUpdater((t) => {
73965
74213
  t.become(e());
@@ -73967,24 +74215,24 @@ function QR(e) {
73967
74215
  }
73968
74216
  //#endregion
73969
74217
  //#region src/animation/Always.ts
73970
- function $R(e, t, ...n) {
74218
+ function oz(e, t, ...n) {
73971
74219
  return e.addUpdater(() => {
73972
74220
  e[t].apply(e, n.map((e) => e()));
73973
74221
  }), e;
73974
74222
  }
73975
- function ez(e, t, ...n) {
74223
+ function sz(e, t, ...n) {
73976
74224
  return e.addUpdater(() => {
73977
74225
  e[t].apply(e, n);
73978
74226
  }), e;
73979
74227
  }
73980
- function tz(e, t) {
74228
+ function cz(e, t) {
73981
74229
  if (!(e instanceof cp)) throw Error(`assertIsMobjectMethod: expected a Mobject, got ${e === null ? "null" : typeof e}`);
73982
74230
  if (typeof e[t] != "function") throw Error(`assertIsMobjectMethod: "${t}" is not a method of ${e.constructor.name}`);
73983
74231
  }
73984
74232
  //#endregion
73985
74233
  //#region src/animation/updaters.ts
73986
- var nz = 20 * Math.PI / 180;
73987
- function rz(e, t = Ad, n = .1) {
74234
+ var lz = 20 * Math.PI / 180;
74235
+ function uz(e, t = Ad, n = .1) {
73988
74236
  let r = Zd(t);
73989
74237
  return e.addUpdater((e, t) => {
73990
74238
  e.shift([
@@ -73994,12 +74242,12 @@ function rz(e, t = Ad, n = .1) {
73994
74242
  ]);
73995
74243
  }), e;
73996
74244
  }
73997
- function iz(e, t = nz, n) {
74245
+ function dz(e, t = lz, n) {
73998
74246
  return e.addUpdater((e, r) => {
73999
74247
  e.rotate(r * t, n);
74000
74248
  }), e;
74001
74249
  }
74002
- function az(e, t = !1, n = 0) {
74250
+ function fz(e, t = !1, n = 0) {
74003
74251
  let r = e.mobject;
74004
74252
  e.begin();
74005
74253
  let i = -n, a = (n, r) => {
@@ -74021,12 +74269,12 @@ function az(e, t = !1, n = 0) {
74021
74269
  };
74022
74270
  return r.addUpdater(a), r;
74023
74271
  }
74024
- function oz(e, t = 0) {
74025
- return az(e, !0, t);
74272
+ function pz(e, t = 0) {
74273
+ return fz(e, !0, t);
74026
74274
  }
74027
74275
  //#endregion
74028
74276
  //#region src/animation/numbers/index.ts
74029
- var sz = class extends o_ {
74277
+ var mz = class extends o_ {
74030
74278
  decimalNumber;
74031
74279
  _startValue;
74032
74280
  _endValue;
@@ -74048,7 +74296,7 @@ var sz = class extends o_ {
74048
74296
  getEndValue() {
74049
74297
  return this._endValue;
74050
74298
  }
74051
- }, cz = class extends o_ {
74299
+ }, hz = class extends o_ {
74052
74300
  decimalNumber;
74053
74301
  _startValue;
74054
74302
  _targetValue;
@@ -74074,15 +74322,15 @@ var sz = class extends o_ {
74074
74322
  return this._targetValue;
74075
74323
  }
74076
74324
  };
74077
- function lz(e, t) {
74078
- return new sz(e, t);
74325
+ function gz(e, t) {
74326
+ return new mz(e, t);
74079
74327
  }
74080
- function uz(e, t) {
74081
- return new cz(e, t);
74328
+ function _z(e, t) {
74329
+ return new hz(e, t);
74082
74330
  }
74083
74331
  //#endregion
74084
74332
  //#region src/animation/changing/index.ts
74085
- var dz = class e extends V {
74333
+ var vz = class e extends V {
74086
74334
  _trackedMobject;
74087
74335
  _dissipatingTime;
74088
74336
  _minDistanceToNewPoint;
@@ -74165,10 +74413,10 @@ var dz = class e extends V {
74165
74413
  })), t._elapsedTime = this._elapsedTime, t._lastPosition = this._lastPosition ? [...this._lastPosition] : null, t;
74166
74414
  }
74167
74415
  };
74168
- function fz(e, t) {
74169
- return new dz(e, t);
74416
+ function yz(e, t) {
74417
+ return new vz(e, t);
74170
74418
  }
74171
- var pz = class e extends V {
74419
+ var bz = class e extends V {
74172
74420
  _boundedMobject;
74173
74421
  _colors;
74174
74422
  _numDashes;
@@ -74292,12 +74540,12 @@ var pz = class e extends V {
74292
74540
  this._dashes = [], super.dispose();
74293
74541
  }
74294
74542
  };
74295
- function mz(e, t) {
74296
- return new pz(e, t);
74543
+ function xz(e, t) {
74544
+ return new bz(e, t);
74297
74545
  }
74298
74546
  //#endregion
74299
74547
  //#region src/animation/speed/index.ts
74300
- var hz = class e extends cp {
74548
+ var Sz = class e extends cp {
74301
74549
  normalizeTransform(e = this._ownMatrix()) {
74302
74550
  return this._flattenAsContainer(e);
74303
74551
  }
@@ -74308,7 +74556,7 @@ var hz = class e extends cp {
74308
74556
  return new e();
74309
74557
  }
74310
74558
  };
74311
- function gz(e, t, n = 100) {
74559
+ function Cz(e, t, n = 100) {
74312
74560
  let r = 0, i = 1 / n;
74313
74561
  for (let e = 0; e < n; e++) {
74314
74562
  let a = e / n, o = (e + 1) / n, s = Math.max(.001, t(a)), c = Math.max(.001, t(o));
@@ -74316,7 +74564,7 @@ function gz(e, t, n = 100) {
74316
74564
  }
74317
74565
  return e * r;
74318
74566
  }
74319
- function _z(e, t, n = 100) {
74567
+ function wz(e, t, n = 100) {
74320
74568
  let r = 0, i = 1 / n, a = [0];
74321
74569
  for (let e = 0; e < n; e++) {
74322
74570
  let o = e / n, s = (e + 1) / n, c = Math.max(.001, t(o)), l = Math.max(.001, t(s));
@@ -74330,12 +74578,12 @@ function _z(e, t, n = 100) {
74330
74578
  let l = a[s], u = a[Math.min(c, n)], d = u > l ? (o - l) / (u - l) : 0;
74331
74579
  return Math.min(1, Math.max(0, (s + d) / n));
74332
74580
  }
74333
- var vz = class extends o_ {
74581
+ var Tz = class extends o_ {
74334
74582
  animation;
74335
74583
  speedFunc;
74336
74584
  _numSamples = 200;
74337
74585
  constructor(e, t, n = {}) {
74338
- let r = new hz(), i = gz(e.duration, t);
74586
+ let r = new Sz(), i = Cz(e.duration, t);
74339
74587
  super(r, {
74340
74588
  duration: i,
74341
74589
  rateFunc: n.rateFunc ?? rg
@@ -74345,7 +74593,7 @@ var vz = class extends o_ {
74345
74593
  super.begin(), this.animation.begin();
74346
74594
  }
74347
74595
  interpolate(e) {
74348
- let t = _z(e, this.speedFunc, this._numSamples), n = this.animation.rateFunc(t);
74596
+ let t = wz(e, this.speedFunc, this._numSamples), n = this.animation.rateFunc(t);
74349
74597
  this.animation.interpolate(n);
74350
74598
  }
74351
74599
  finish() {
@@ -74355,19 +74603,19 @@ var vz = class extends o_ {
74355
74603
  super.reset(), this.animation.reset();
74356
74604
  }
74357
74605
  };
74358
- function yz(e, t, n) {
74359
- return new vz(e, t, n);
74606
+ function Ez(e, t, n) {
74607
+ return new Tz(e, t, n);
74360
74608
  }
74361
- function bz(e, t) {
74609
+ function Dz(e, t) {
74362
74610
  return (n) => e + (t - e) * n;
74363
74611
  }
74364
- function xz(e, t, n = 2, r = .5) {
74612
+ function Oz(e, t, n = 2, r = .5) {
74365
74613
  return (i) => i >= e && i <= t ? r : n;
74366
74614
  }
74367
- function Sz(e, t, n = 1, r = 3) {
74615
+ function kz(e, t, n = 1, r = 3) {
74368
74616
  return (i) => i >= e && i <= t ? r : n;
74369
74617
  }
74370
- function Cz(e, t) {
74618
+ function Az(e, t) {
74371
74619
  return (n) => {
74372
74620
  let r = (1 + Math.cos(2 * Math.PI * n)) / 2;
74373
74621
  return e + (t - e) * r;
@@ -74375,7 +74623,7 @@ function Cz(e, t) {
74375
74623
  }
74376
74624
  //#endregion
74377
74625
  //#region src/animation/utility/index.ts
74378
- var wz = class extends o_ {
74626
+ var jz = class extends o_ {
74379
74627
  constructor(e, t = {}) {
74380
74628
  super(e, {
74381
74629
  ...t,
@@ -74387,10 +74635,10 @@ var wz = class extends o_ {
74387
74635
  }
74388
74636
  interpolate(e) {}
74389
74637
  };
74390
- function Tz(e, t) {
74391
- return new wz(e, t);
74638
+ function Mz(e, t) {
74639
+ return new jz(e, t);
74392
74640
  }
74393
- var Ez = class extends o_ {
74641
+ var Nz = class extends o_ {
74394
74642
  constructor(e, t = {}) {
74395
74643
  super(e, {
74396
74644
  ...t,
@@ -74402,10 +74650,10 @@ var Ez = class extends o_ {
74402
74650
  }
74403
74651
  interpolate(e) {}
74404
74652
  };
74405
- function Dz(e, t) {
74406
- return new Ez(e, t);
74653
+ function Pz(e, t) {
74654
+ return new Nz(e, t);
74407
74655
  }
74408
- var Oz = class extends o_ {
74656
+ var Fz = class extends o_ {
74409
74657
  constructor(e, t = {}) {
74410
74658
  super(e, {
74411
74659
  duration: t.duration ?? 1,
@@ -74414,13 +74662,13 @@ var Oz = class extends o_ {
74414
74662
  }
74415
74663
  interpolate(e) {}
74416
74664
  };
74417
- function kz(e, t, n) {
74418
- return new Oz(e, {
74665
+ function Iz(e, t, n) {
74666
+ return new Fz(e, {
74419
74667
  ...n,
74420
74668
  duration: t
74421
74669
  });
74422
74670
  }
74423
- var Az = class extends o_ {
74671
+ var Lz = class extends o_ {
74424
74672
  angle;
74425
74673
  axis;
74426
74674
  aboutPoint;
@@ -74458,10 +74706,10 @@ var Az = class extends o_ {
74458
74706
  this.mobject._markDirty();
74459
74707
  }
74460
74708
  };
74461
- function jz(e, t) {
74462
- return new Az(e, t);
74709
+ function Rz(e, t) {
74710
+ return new Lz(e, t);
74463
74711
  }
74464
- var Mz = class extends o_ {
74712
+ var zz = class extends o_ {
74465
74713
  focalPoint;
74466
74714
  nMobs;
74467
74715
  initialOpacity;
@@ -74520,12 +74768,12 @@ var Mz = class extends o_ {
74520
74768
  this._copies = [], this._parentObject = null, super.finish();
74521
74769
  }
74522
74770
  };
74523
- function Nz(e, t) {
74524
- return new Mz(e, t);
74771
+ function Bz(e, t) {
74772
+ return new zz(e, t);
74525
74773
  }
74526
74774
  //#endregion
74527
74775
  //#region src/animation/indication/Indicate.ts
74528
- var Pz = class extends o_ {
74776
+ var Vz = class extends o_ {
74529
74777
  scaleFactor;
74530
74778
  indicateColor;
74531
74779
  _originalScale = new L();
@@ -74549,12 +74797,12 @@ var Pz = class extends o_ {
74549
74797
  this.mobject.scaleVector.copy(this._originalScale), this.mobject.setColor(this._originalColor), this.mobject._markDirty(), super.finish();
74550
74798
  }
74551
74799
  };
74552
- function Fz(e, t) {
74553
- return new Pz(e, t);
74800
+ function Hz(e, t) {
74801
+ return new Vz(e, t);
74554
74802
  }
74555
74803
  //#endregion
74556
74804
  //#region src/animation/indication/Flash.ts
74557
- var Iz = class extends o_ {
74805
+ var Uz = class extends o_ {
74558
74806
  flashColor;
74559
74807
  numLines;
74560
74808
  flashRadius;
@@ -74627,12 +74875,12 @@ var Iz = class extends o_ {
74627
74875
  }), this._flashGroup = null), super.finish();
74628
74876
  }
74629
74877
  };
74630
- function Lz(e, t) {
74631
- return new Iz(e, t);
74878
+ function Wz(e, t) {
74879
+ return new Uz(e, t);
74632
74880
  }
74633
74881
  //#endregion
74634
74882
  //#region src/animation/indication/Circumscribe.ts
74635
- var Rz = class extends o_ {
74883
+ var Gz = class extends o_ {
74636
74884
  shapeType;
74637
74885
  shapeColor;
74638
74886
  buff;
@@ -74722,12 +74970,12 @@ var Rz = class extends o_ {
74722
74970
  }), this._shapeGroup = null), super.finish();
74723
74971
  }
74724
74972
  };
74725
- function zz(e, t) {
74726
- return new Rz(e, t);
74973
+ function Kz(e, t) {
74974
+ return new Gz(e, t);
74727
74975
  }
74728
74976
  //#endregion
74729
74977
  //#region src/animation/indication/Wiggle.ts
74730
- var Bz = class extends o_ {
74978
+ var qz = class extends o_ {
74731
74979
  rotationAngle;
74732
74980
  nWiggles;
74733
74981
  scaleFactor;
@@ -74771,12 +75019,12 @@ var Bz = class extends o_ {
74771
75019
  this.mobject.rotation.setFromQuaternion(this._initialQuaternion), this.mobject.scaleVector.copy(this._initialScale), this.mobject.position.copy(this._initialPosition), this.mobject._markDirty(), super.finish();
74772
75020
  }
74773
75021
  };
74774
- function Vz(e, t) {
74775
- return new Bz(e, t);
75022
+ function Jz(e, t) {
75023
+ return new qz(e, t);
74776
75024
  }
74777
75025
  //#endregion
74778
75026
  //#region src/animation/indication/ShowPassingFlash.ts
74779
- var Hz = class extends o_ {
75027
+ var Yz = class extends o_ {
74780
75028
  flashColor;
74781
75029
  timeWidth;
74782
75030
  flashStrokeWidth;
@@ -74877,12 +75125,12 @@ var Hz = class extends o_ {
74877
75125
  }), this._flashGroup = null), super.finish();
74878
75126
  }
74879
75127
  };
74880
- function Uz(e, t) {
74881
- return new Hz(e, t);
75128
+ function Xz(e, t) {
75129
+ return new Yz(e, t);
74882
75130
  }
74883
75131
  //#endregion
74884
75132
  //#region src/animation/indication/ApplyWave.ts
74885
- var Wz = class extends o_ {
75133
+ var Zz = class extends o_ {
74886
75134
  direction;
74887
75135
  amplitude;
74888
75136
  wavelength;
@@ -74968,12 +75216,12 @@ var Wz = class extends o_ {
74968
75216
  this._isVMobject && this.mobject.setPoints(this._originalPoints), this.mobject.position.copy(this._originalPosition), this.mobject._markDirty(), super.finish();
74969
75217
  }
74970
75218
  };
74971
- function Gz(e, t) {
74972
- return new Wz(e, t);
75219
+ function Qz(e, t) {
75220
+ return new Zz(e, t);
74973
75221
  }
74974
75222
  //#endregion
74975
75223
  //#region src/animation/indication/FocusOn.ts
74976
- var Kz = class extends o_ {
75224
+ var $z = class extends o_ {
74977
75225
  focusColor;
74978
75226
  startRadius;
74979
75227
  endRadius;
@@ -75045,10 +75293,10 @@ var Kz = class extends o_ {
75045
75293
  }), this._ringsGroup = null), super.finish();
75046
75294
  }
75047
75295
  };
75048
- function qz(e, t) {
75049
- return new Kz(e, t);
75296
+ function eB(e, t) {
75297
+ return new $z(e, t);
75050
75298
  }
75051
- var Jz = class extends o_ {
75299
+ var tB = class extends o_ {
75052
75300
  scaleFactor;
75053
75301
  nPulses;
75054
75302
  _originalScale = new L();
@@ -75069,12 +75317,12 @@ var Jz = class extends o_ {
75069
75317
  this.mobject.scaleVector.copy(this._originalScale), this.mobject._markDirty(), super.finish();
75070
75318
  }
75071
75319
  };
75072
- function Yz(e, t) {
75073
- return new Jz(e, t);
75320
+ function nB(e, t) {
75321
+ return new tB(e, t);
75074
75322
  }
75075
75323
  //#endregion
75076
75324
  //#region src/animation/indication/ShowPassingFlashWithThinningStrokeWidth.ts
75077
- var Xz = class extends Hz {
75325
+ var rB = class extends Yz {
75078
75326
  minStrokeWidthRatio;
75079
75327
  constructor(e, t = {}) {
75080
75328
  super(e, t), this.minStrokeWidthRatio = t.minStrokeWidthRatio ?? .1;
@@ -75115,12 +75363,12 @@ var Xz = class extends Hz {
75115
75363
  }
75116
75364
  }
75117
75365
  };
75118
- function Zz(e, t) {
75119
- return new Xz(e, t);
75366
+ function iB(e, t) {
75367
+ return new rB(e, t);
75120
75368
  }
75121
75369
  //#endregion
75122
75370
  //#region src/animation/indication/Blink.ts
75123
- var Qz = class extends o_ {
75371
+ var aB = class extends o_ {
75124
75372
  nBlinks;
75125
75373
  minOpacity;
75126
75374
  blinkDuration;
@@ -75161,12 +75409,12 @@ var Qz = class extends o_ {
75161
75409
  this.mobject._markDirty(), super.finish();
75162
75410
  }
75163
75411
  };
75164
- function $z(e, t) {
75165
- return new Qz(e, t);
75412
+ function oB(e, t) {
75413
+ return new aB(e, t);
75166
75414
  }
75167
75415
  //#endregion
75168
75416
  //#region src/animation/indication/ShowCreationThenDestruction.ts
75169
- var eB = class extends o_ {
75417
+ var sB = class extends o_ {
75170
75418
  _totalLength = 0;
75171
75419
  _useDashReveal = !1;
75172
75420
  constructor(e, t = {}) {
@@ -75201,19 +75449,19 @@ var eB = class extends o_ {
75201
75449
  }) : this.mobject.setStrokeOpacity(0), super.finish();
75202
75450
  }
75203
75451
  };
75204
- function tB(e, t) {
75205
- return new eB(e, t);
75452
+ function cB(e, t) {
75453
+ return new sB(e, t);
75206
75454
  }
75207
75455
  //#endregion
75208
75456
  //#region src/animation/indication/WiggleOutThenIn.ts
75209
- var nB = 2 * Math.PI;
75210
- function rB(e) {
75457
+ var lB = 2 * Math.PI;
75458
+ function uB(e) {
75211
75459
  return of(e < .5 ? 2 * e : 2 * (1 - e));
75212
75460
  }
75213
- function iB(e, t) {
75214
- return Math.sin(t * nB * e) * rB(e);
75461
+ function dB(e, t) {
75462
+ return Math.sin(t * lB * e) * uB(e);
75215
75463
  }
75216
- var aB = class extends o_ {
75464
+ var fB = class extends o_ {
75217
75465
  scaleValue;
75218
75466
  rotationAngle;
75219
75467
  nWiggles;
@@ -75227,7 +75475,7 @@ var aB = class extends o_ {
75227
75475
  super(e, {
75228
75476
  duration: t.duration ?? 2,
75229
75477
  rateFunc: t.rateFunc ?? rg
75230
- }), this.scaleValue = t.scaleValue ?? 1.1, this.rotationAngle = t.rotationAngle ?? .01 * nB, this.nWiggles = t.nWiggles ?? 6, this.rotationAxis = t.rotationAxis ?? [
75478
+ }), this.scaleValue = t.scaleValue ?? 1.1, this.rotationAngle = t.rotationAngle ?? .01 * lB, this.nWiggles = t.nWiggles ?? 6, this.rotationAxis = t.rotationAxis ?? [
75231
75479
  0,
75232
75480
  0,
75233
75481
  1
@@ -75239,9 +75487,9 @@ var aB = class extends o_ {
75239
75487
  this._aboutPoint.set(e[0], e[1], e[2]);
75240
75488
  }
75241
75489
  interpolate(e) {
75242
- let t = rB(e), n = nf(1, this.scaleValue, t);
75490
+ let t = uB(e), n = nf(1, this.scaleValue, t);
75243
75491
  this.mobject.scaleVector.set(this._initialScale.x * n, this._initialScale.y * n, this._initialScale.z * n);
75244
- let r = iB(e, this.nWiggles) * this.rotationAngle, i = new Jt().setFromAxisAngle(this._axisVector, r), a = new Jt().copy(this._initialQuaternion);
75492
+ let r = dB(e, this.nWiggles) * this.rotationAngle, i = new Jt().setFromAxisAngle(this._axisVector, r), a = new Jt().copy(this._initialQuaternion);
75245
75493
  a.premultiply(i), this.mobject.rotation.setFromQuaternion(a);
75246
75494
  let o = new L().copy(this._initialPosition).sub(this._aboutPoint);
75247
75495
  o.applyQuaternion(i);
@@ -75252,12 +75500,12 @@ var aB = class extends o_ {
75252
75500
  this.mobject.rotation.setFromQuaternion(this._initialQuaternion), this.mobject.scaleVector.copy(this._initialScale), this.mobject.position.copy(this._initialPosition), this.mobject._markDirty(), super.finish();
75253
75501
  }
75254
75502
  };
75255
- function oB(e, t) {
75256
- return new aB(e, t);
75503
+ function pB(e, t) {
75504
+ return new fB(e, t);
75257
75505
  }
75258
75506
  //#endregion
75259
75507
  //#region src/interaction/Controls.ts
75260
- var sB = class {
75508
+ var mB = class {
75261
75509
  _scene;
75262
75510
  _panel;
75263
75511
  _options;
@@ -75505,7 +75753,7 @@ var sB = class {
75505
75753
  dispose() {
75506
75754
  this._panel.remove();
75507
75755
  }
75508
- }, cB = class extends sB {
75756
+ }, hB = class extends mB {
75509
75757
  _timeline = null;
75510
75758
  _playPauseBtn = null;
75511
75759
  _speedSelect = null;
@@ -75715,7 +75963,7 @@ var sB = class {
75715
75963
  dispose() {
75716
75964
  this._updateInterval !== null && (cancelAnimationFrame(this._updateInterval), this._updateInterval = null), super.dispose();
75717
75965
  }
75718
- }, lB = class {
75966
+ }, gB = class {
75719
75967
  _mobject;
75720
75968
  _scene;
75721
75969
  _options;
@@ -75848,12 +76096,12 @@ var sB = class {
75848
76096
  e.removeEventListener("mousedown", this._onMouseDown), window.removeEventListener("mousemove", this._onMouseMove), window.removeEventListener("mouseup", this._onMouseUp), e.removeEventListener("touchstart", this._onTouchStart), window.removeEventListener("touchmove", this._onTouchMove), window.removeEventListener("touchend", this._onTouchEnd);
75849
76097
  }
75850
76098
  };
75851
- function uB(e, t, n) {
75852
- return new lB(e, t, n);
76099
+ function _B(e, t, n) {
76100
+ return new gB(e, t, n);
75853
76101
  }
75854
76102
  //#endregion
75855
76103
  //#region src/interaction/Hoverable.ts
75856
- var dB = class {
76104
+ var vB = class {
75857
76105
  _mobject;
75858
76106
  _scene;
75859
76107
  _options;
@@ -75936,12 +76184,12 @@ var dB = class {
75936
76184
  e.removeEventListener("mousemove", this._onMouseMove), e.removeEventListener("mouseleave", this._onMouseLeave), this._isHovering && this._endHover();
75937
76185
  }
75938
76186
  };
75939
- function fB(e, t, n) {
75940
- return new dB(e, t, n);
76187
+ function yB(e, t, n) {
76188
+ return new vB(e, t, n);
75941
76189
  }
75942
76190
  //#endregion
75943
76191
  //#region src/interaction/Clickable.ts
75944
- var pB = class {
76192
+ var bB = class {
75945
76193
  _mobject;
75946
76194
  _scene;
75947
76195
  _options;
@@ -76037,12 +76285,12 @@ var pB = class {
76037
76285
  e.removeEventListener("click", this._onClick), e.removeEventListener("dblclick", this._onDblClick), e.removeEventListener("touchstart", this._onTouchStart), e.removeEventListener("touchend", this._onTouchEnd);
76038
76286
  }
76039
76287
  };
76040
- function mB(e, t, n) {
76041
- return new pB(e, t, n);
76288
+ function xB(e, t, n) {
76289
+ return new bB(e, t, n);
76042
76290
  }
76043
76291
  //#endregion
76044
76292
  //#region src/interaction/MovablePoint.ts
76045
- var hB = class extends IO {
76293
+ var SB = class extends IO {
76046
76294
  _draggable;
76047
76295
  _onChange;
76048
76296
  _xTracker;
@@ -76059,7 +76307,7 @@ var hB = class extends IO {
76059
76307
  point: n,
76060
76308
  color: r,
76061
76309
  radius: i
76062
- }), this._onChange = a, this._xTracker = o, this._yTracker = s, this._draggable = new lB(this, e, {
76310
+ }), this._onChange = a, this._xTracker = o, this._yTracker = s, this._draggable = new gB(this, e, {
76063
76311
  autoRender: c,
76064
76312
  onDrag: (e, t) => this._commit(t, !0)
76065
76313
  }), this._syncTrackers(this.getPoint());
@@ -76077,7 +76325,7 @@ var hB = class extends IO {
76077
76325
  constrainToParametric(e, t) {
76078
76326
  let n = t[0], r = t[1], i = t.length > 2 ? Math.max(2, Math.floor(t[2])) : 256;
76079
76327
  return this._constraint = ([t, a, o]) => {
76080
- let s = _B(e, n, r, i, t, a);
76328
+ let s = wB(e, n, r, i, t, a);
76081
76329
  this._parameter = s;
76082
76330
  let [c, l] = e(s);
76083
76331
  return [
@@ -76088,10 +76336,10 @@ var hB = class extends IO {
76088
76336
  }, this._reproject(), this;
76089
76337
  }
76090
76338
  constrainToLine(e, t) {
76091
- return this._constraint = (n) => gB(e, t, n, !1), this._reproject(), this;
76339
+ return this._constraint = (n) => CB(e, t, n, !1), this._reproject(), this;
76092
76340
  }
76093
76341
  constrainToSegment(e, t) {
76094
- return this._constraint = (n) => gB(e, t, n, !0), this._reproject(), this;
76342
+ return this._constraint = (n) => CB(e, t, n, !0), this._reproject(), this;
76095
76343
  }
76096
76344
  clearConstraint() {
76097
76345
  return this._constraint = null, this._parameter = null, this;
@@ -76116,7 +76364,7 @@ var hB = class extends IO {
76116
76364
  this._xTracker?.setValue(e[0]), this._yTracker?.setValue(e[1]);
76117
76365
  }
76118
76366
  };
76119
- function gB(e, t, n, r) {
76367
+ function CB(e, t, n, r) {
76120
76368
  let i = t[0] - e[0], a = t[1] - e[1], o = i * i + a * a, s = o === 0 ? 0 : ((n[0] - e[0]) * i + (n[1] - e[1]) * a) / o;
76121
76369
  return r && (s = Math.max(0, Math.min(1, s))), [
76122
76370
  e[0] + s * i,
@@ -76124,7 +76372,7 @@ function gB(e, t, n, r) {
76124
76372
  n[2]
76125
76373
  ];
76126
76374
  }
76127
- function _B(e, t, n, r, i, a) {
76375
+ function wB(e, t, n, r, i, a) {
76128
76376
  let o = (t) => {
76129
76377
  let [n, r] = e(t), o = n - i, s = r - a;
76130
76378
  return o * o + s * s;
@@ -76140,12 +76388,12 @@ function _B(e, t, n, r, i, a) {
76140
76388
  }
76141
76389
  return (u + d) / 2;
76142
76390
  }
76143
- function vB(e, t) {
76144
- return new hB(e, t);
76391
+ function TB(e, t) {
76392
+ return new SB(e, t);
76145
76393
  }
76146
76394
  //#endregion
76147
76395
  //#region src/interaction/Slider.ts
76148
- var yB = 28, bB = .35, xB = class extends PT {
76396
+ var EB = 28, DB = .35, OB = class extends PT {
76149
76397
  _min;
76150
76398
  _max;
76151
76399
  _step;
@@ -76161,7 +76409,7 @@ var yB = 28, bB = .35, xB = class extends PT {
76161
76409
  _draggable;
76162
76410
  constructor(e, t = {}) {
76163
76411
  super();
76164
- let n = SB(t), { center: r, color: i } = n;
76412
+ let n = kB(t), { center: r, color: i } = n;
76165
76413
  this._min = n.min, this._max = n.max, this._step = n.step, this._length = n.length, this._center = [...r], this._trackY = r[1], this._tracker = n.tracker ?? new Yj(n.value), this._onChange = n.onChange, this._value = this._clampAndStep(n.value);
76166
76414
  let a = r[0] - n.length / 2;
76167
76415
  this._track = new rD({
@@ -76184,7 +76432,7 @@ var yB = 28, bB = .35, xB = class extends PT {
76184
76432
  ],
76185
76433
  color: i,
76186
76434
  radius: n.handleRadius
76187
- }), this.add(this._track), this.add(this._handle), n.showLabel && this._createLabel(n.numDecimalPlaces, i), this._tracker.setValue(this._value), this._draggable = new lB(this._handle, e, {
76435
+ }), this.add(this._track), this.add(this._handle), n.showLabel && this._createLabel(n.numDecimalPlaces, i), this._tracker.setValue(this._value), this._draggable = new gB(this._handle, e, {
76188
76436
  autoRender: n.autoRender,
76189
76437
  onDrag: (e, t) => this.setValue(this._xToValue(t[0]))
76190
76438
  });
@@ -76222,7 +76470,7 @@ var yB = 28, bB = .35, xB = class extends PT {
76222
76470
  this._label = new Kj({
76223
76471
  value: this._value,
76224
76472
  numDecimalPlaces: e,
76225
- fontSize: yB,
76473
+ fontSize: EB,
76226
76474
  color: t
76227
76475
  }), this.add(this._label), this._positionLabel();
76228
76476
  }
@@ -76231,7 +76479,7 @@ var yB = 28, bB = .35, xB = class extends PT {
76231
76479
  let e = this._valueToX(this._value);
76232
76480
  this._label.moveTo([
76233
76481
  e,
76234
- this._trackY + bB,
76482
+ this._trackY + DB,
76235
76483
  this._center[2]
76236
76484
  ]);
76237
76485
  }
@@ -76248,7 +76496,7 @@ var yB = 28, bB = .35, xB = class extends PT {
76248
76496
  return this._step > 0 && (t = this._min + Math.round((e - this._min) / this._step) * this._step), Math.max(this._min, Math.min(this._max, t));
76249
76497
  }
76250
76498
  };
76251
- function SB(e) {
76499
+ function kB(e) {
76252
76500
  let t = e.min ?? 0;
76253
76501
  return {
76254
76502
  min: t,
@@ -76271,18 +76519,18 @@ function SB(e) {
76271
76519
  autoRender: e.autoRender
76272
76520
  };
76273
76521
  }
76274
- function CB(e, t) {
76275
- return new xB(e, t);
76522
+ function AB(e, t) {
76523
+ return new OB(e, t);
76276
76524
  }
76277
76525
  //#endregion
76278
76526
  //#region src/interaction/DynamicMatrix.ts
76279
- function wB() {
76527
+ function jB() {
76280
76528
  return [[1, 0], [0, 1]];
76281
76529
  }
76282
- function TB(e) {
76530
+ function MB(e) {
76283
76531
  return [[e[0][0], e[0][1]], [e[1][0], e[1][1]]];
76284
76532
  }
76285
- function EB(e) {
76533
+ function NB(e) {
76286
76534
  if (typeof e == "function") {
76287
76535
  let t = e();
76288
76536
  return [t[0], t[1]];
@@ -76290,17 +76538,17 @@ function EB(e) {
76290
76538
  let t = e.getPoint();
76291
76539
  return [t[0], t[1]];
76292
76540
  }
76293
- var DB = class e {
76541
+ var PB = class e {
76294
76542
  _matrix;
76295
76543
  _compute;
76296
- constructor(e = wB()) {
76297
- this._matrix = TB(e), this._compute = null;
76544
+ constructor(e = jB()) {
76545
+ this._matrix = MB(e), this._compute = null;
76298
76546
  }
76299
76547
  getMatrix() {
76300
- return TB(this._compute ? this._compute() : this._matrix);
76548
+ return MB(this._compute ? this._compute() : this._matrix);
76301
76549
  }
76302
76550
  setMatrix(e) {
76303
- return this._compute = null, this._matrix = TB(e), this;
76551
+ return this._compute = null, this._matrix = MB(e), this;
76304
76552
  }
76305
76553
  setColumns(e, t) {
76306
76554
  return this.setMatrix([[e[0], t[0]], [e[1], t[1]]]);
@@ -76319,19 +76567,19 @@ var DB = class e {
76319
76567
  }
76320
76568
  static fromBasisVectors(t, n) {
76321
76569
  return e.fromGetter(() => {
76322
- let e = EB(t), r = EB(n);
76570
+ let e = NB(t), r = NB(n);
76323
76571
  return [[e[0], r[0]], [e[1], r[1]]];
76324
76572
  });
76325
76573
  }
76326
76574
  };
76327
- function OB(e) {
76328
- return new DB(e);
76575
+ function FB(e) {
76576
+ return new PB(e);
76329
76577
  }
76330
- function kB(e) {
76331
- return e instanceof DB ? e : typeof e == "function" ? DB.fromGetter(e) : new DB(e);
76578
+ function IB(e) {
76579
+ return e instanceof PB ? e : typeof e == "function" ? PB.fromGetter(e) : new PB(e);
76332
76580
  }
76333
- function AB(e, t, n = {}) {
76334
- let r = kB(t), i = n.aboutPoint ?? [
76581
+ function LB(e, t, n = {}) {
76582
+ let r = IB(t), i = n.aboutPoint ?? [
76335
76583
  0,
76336
76584
  0,
76337
76585
  0
@@ -76371,10 +76619,10 @@ function AB(e, t, n = {}) {
76371
76619
  }
76372
76620
  //#endregion
76373
76621
  //#region src/interaction/PanZoomControls.ts
76374
- function jB(e, t, n) {
76622
+ function RB(e, t, n) {
76375
76623
  return Math.max(t, Math.min(n, e));
76376
76624
  }
76377
- var MB = class {
76625
+ var zB = class {
76378
76626
  _camera;
76379
76627
  _domElement;
76380
76628
  _options;
@@ -76426,7 +76674,7 @@ var MB = class {
76426
76674
  if (!this._enabled || !this._options.enableZoom) return;
76427
76675
  let t = this._eventToNdc(e.clientX, e.clientY);
76428
76676
  if (!t) return;
76429
- let n = this._worldAt(t.x, t.y), r = this._options.invertZoom ? -e.deltaY : e.deltaY, i = Math.exp(r * this._options.zoomSpeed), a = this._baseFrameWidth / this._options.maxZoom, o = this._baseFrameWidth / this._options.minZoom, s = jB(this._camera.frameWidth * i, a, o) / this._camera.frameWidth;
76677
+ let n = this._worldAt(t.x, t.y), r = this._options.invertZoom ? -e.deltaY : e.deltaY, i = Math.exp(r * this._options.zoomSpeed), a = this._baseFrameWidth / this._options.maxZoom, o = this._baseFrameWidth / this._options.minZoom, s = RB(this._camera.frameWidth * i, a, o) / this._camera.frameWidth;
76430
76678
  if (s === 1) return;
76431
76679
  this._camera.frameWidth = this._camera.frameWidth * s, this._camera.frameHeight = this._camera.frameHeight * s;
76432
76680
  let c = n.x - t.x * this._camera.frameWidth / 2, l = n.y - t.y * this._camera.frameHeight / 2;
@@ -76475,12 +76723,12 @@ var MB = class {
76475
76723
  this._options.onChange?.();
76476
76724
  }
76477
76725
  };
76478
- function NB(e, t, n) {
76479
- return new MB(e, t, n);
76726
+ function BB(e, t, n) {
76727
+ return new zB(e, t, n);
76480
76728
  }
76481
76729
  //#endregion
76482
76730
  //#region node_modules/gif.js/dist/gif.js
76483
- var PB = /* @__PURE__ */ r(((e, t) => {
76731
+ var VB = /* @__PURE__ */ r(((e, t) => {
76484
76732
  (function(n) {
76485
76733
  if (typeof e == "object" && t !== void 0) t.exports = n();
76486
76734
  else if (typeof define == "function" && define.amd) define([], n);
@@ -76734,10 +76982,10 @@ var PB = /* @__PURE__ */ r(((e, t) => {
76734
76982
  }]
76735
76983
  }, {}, [3])(3);
76736
76984
  });
76737
- })), FB = /* @__PURE__ */ t({
76738
- GifExporter: () => LB,
76739
- createGifExporter: () => RB
76740
- }), IB = /* @__PURE__ */ e(PB(), 1), LB = class e {
76985
+ })), HB = /* @__PURE__ */ t({
76986
+ GifExporter: () => WB,
76987
+ createGifExporter: () => GB
76988
+ }), UB = /* @__PURE__ */ e(VB(), 1), WB = class e {
76741
76989
  _scene;
76742
76990
  _options;
76743
76991
  constructor(e, t) {
@@ -76755,7 +77003,7 @@ var PB = /* @__PURE__ */ r(((e, t) => {
76755
77003
  };
76756
77004
  }
76757
77005
  async exportTimeline(e) {
76758
- let t = (e || this._options.duration || this._getTimelineDuration()) ?? 5, n = Math.ceil(t * this._options.fps), r = Math.round(1e3 / this._options.fps), i = await this._createWorkerBlobUrl(), a = new IB.default({
77006
+ let t = (e || this._options.duration || this._getTimelineDuration()) ?? 5, n = Math.ceil(t * this._options.fps), r = Math.round(1e3 / this._options.fps), i = await this._createWorkerBlobUrl(), a = new UB.default({
76759
77007
  workers: this._options.workers,
76760
77008
  quality: this._options.quality,
76761
77009
  width: this._options.width,
@@ -76814,15 +77062,15 @@ var PB = /* @__PURE__ */ r(((e, t) => {
76814
77062
  e.download(r, t);
76815
77063
  }
76816
77064
  };
76817
- function RB(e, t) {
76818
- return new LB(e, t);
77065
+ function GB(e, t) {
77066
+ return new WB(e, t);
76819
77067
  }
76820
77068
  //#endregion
76821
77069
  //#region src/export/VideoExporter.ts
76822
- var zB = /* @__PURE__ */ t({
76823
- VideoExporter: () => BB,
76824
- createVideoExporter: () => VB
76825
- }), BB = class e {
77070
+ var KB = /* @__PURE__ */ t({
77071
+ VideoExporter: () => qB,
77072
+ createVideoExporter: () => JB
77073
+ }), qB = class e {
76826
77074
  _scene;
76827
77075
  _options;
76828
77076
  _mediaRecorder = null;
@@ -76914,26 +77162,26 @@ var zB = /* @__PURE__ */ t({
76914
77162
  return { ...this._options };
76915
77163
  }
76916
77164
  };
76917
- function VB(e, t) {
76918
- return new BB(e, t);
77165
+ function JB(e, t) {
77166
+ return new qB(e, t);
76919
77167
  }
76920
77168
  //#endregion
76921
77169
  //#region src/export/alphaBackground.ts
76922
- var HB = "Transparent export needs a WebGL context created with an alpha channel. Create the Scene with { alpha: true } (or backgroundOpacity < 1) so the canvas carries a real alpha channel to export.", UB = "Transparent export needs access to the WebGL renderer, but the scene did not expose one.";
76923
- function WB(e) {
77170
+ var YB = "Transparent export needs a WebGL context created with an alpha channel. Create the Scene with { alpha: true } (or backgroundOpacity < 1) so the canvas carries a real alpha channel to export.", XB = "Transparent export needs access to the WebGL renderer, but the scene did not expose one.";
77171
+ function ZB(e) {
76924
77172
  let t = e.renderer;
76925
77173
  return !t || typeof t.getThreeRenderer != "function" ? null : t.getThreeRenderer() ?? null;
76926
77174
  }
76927
- function GB(e) {
77175
+ function QB(e) {
76928
77176
  return e.getContext().getContextAttributes()?.alpha === !0;
76929
77177
  }
76930
- function KB(e) {
76931
- let t = WB(e);
76932
- if (!t) throw Error(UB);
76933
- if (!GB(t)) throw Error(HB);
77178
+ function $B(e) {
77179
+ let t = ZB(e);
77180
+ if (!t) throw Error(XB);
77181
+ if (!QB(t)) throw Error(YB);
76934
77182
  return t;
76935
77183
  }
76936
- async function qB(e, t) {
77184
+ async function eV(e, t) {
76937
77185
  let n = e.getClearAlpha();
76938
77186
  e.setClearAlpha(0);
76939
77187
  try {
@@ -76944,7 +77192,7 @@ async function qB(e, t) {
76944
77192
  }
76945
77193
  //#endregion
76946
77194
  //#region src/export/FrameExporter.ts
76947
- function JB(e, t, n) {
77195
+ function tV(e, t, n) {
76948
77196
  return new Promise((r, i) => {
76949
77197
  if (typeof e.toBlob == "function") {
76950
77198
  e.toBlob((e) => {
@@ -76953,22 +77201,22 @@ function JB(e, t, n) {
76953
77201
  return;
76954
77202
  }
76955
77203
  try {
76956
- r(YB(e.toDataURL(t, n)));
77204
+ r(nV(e.toDataURL(t, n)));
76957
77205
  } catch (e) {
76958
77206
  i(e instanceof Error ? e : Error(String(e)));
76959
77207
  }
76960
77208
  });
76961
77209
  }
76962
- function YB(e) {
77210
+ function nV(e) {
76963
77211
  let [t, n] = e.split(","), r = t.match(/data:([^;]+)/), i = r ? r[1] : "image/png", a = atob(n), o = new Uint8Array(a.length);
76964
77212
  for (let e = 0; e < a.length; e++) o[e] = a.charCodeAt(e);
76965
77213
  return new Blob([o], { type: i });
76966
77214
  }
76967
- async function XB(e, t) {
77215
+ async function rV(e, t) {
76968
77216
  let n = t?.type ?? "image/png";
76969
- return t?.transparent ? qB(KB(e), () => (ZB(e, t?.time), JB(e.getCanvas(), n, t?.quality))) : (t?.time !== void 0 && e.seek(t.time), JB(e.getCanvas(), n, t?.quality));
77217
+ return t?.transparent ? eV($B(e), () => (iV(e, t?.time), tV(e.getCanvas(), n, t?.quality))) : (t?.time !== void 0 && e.seek(t.time), tV(e.getCanvas(), n, t?.quality));
76970
77218
  }
76971
- function ZB(e, t) {
77219
+ function iV(e, t) {
76972
77220
  if (t !== void 0) {
76973
77221
  e.seek(t);
76974
77222
  return;
@@ -76979,29 +77227,29 @@ function ZB(e, t) {
76979
77227
  }
76980
77228
  throw Error("Transparent single-frame export needs either a `time` to seek to, or a scene with a render() method, so the frame is re-rendered with a transparent background.");
76981
77229
  }
76982
- async function QB(e, t) {
77230
+ async function aV(e, t) {
76983
77231
  let n = t.fps, r = t.from ?? 0, i = t.to ?? e.getTimelineDuration() ?? 5, a = t.type ?? "image/png", o = t.onProgress ?? (() => {}), s = Math.max(0, i - r), c = Math.ceil(s * n), l = 1 / n, u = async () => {
76984
77232
  let n = [];
76985
77233
  for (let i = 0; i < c; i++) {
76986
77234
  let s = r + i * l;
76987
77235
  e.seek(s);
76988
77236
  let u = e.getCanvas();
76989
- n.push(await JB(u, a, t.quality)), o((i + 1) / c);
77237
+ n.push(await tV(u, a, t.quality)), o((i + 1) / c);
76990
77238
  }
76991
77239
  return n;
76992
77240
  };
76993
- return t.transparent ? qB(KB(e), u) : u();
77241
+ return t.transparent ? eV($B(e), u) : u();
76994
77242
  }
76995
- function $B(e, t) {
77243
+ function oV(e, t) {
76996
77244
  let n = URL.createObjectURL(e), r = document.createElement("a");
76997
77245
  r.href = n, r.download = t, document.body.appendChild(r), r.click(), document.body.removeChild(r), URL.revokeObjectURL(n);
76998
77246
  }
76999
- async function eV(e, t = "frame.png", n) {
77000
- $B(await XB(e, n), t);
77247
+ async function sV(e, t = "frame.png", n) {
77248
+ oV(await rV(e, n), t);
77001
77249
  }
77002
77250
  //#endregion
77003
77251
  //#region src/export/WebCodecsExporter.ts
77004
- var tV = {
77252
+ var cV = {
77005
77253
  avc: {
77006
77254
  encoderCodec: "avc1.42001f",
77007
77255
  mp4Codec: "avc",
@@ -77022,7 +77270,7 @@ var tV = {
77022
77270
  mp4Codec: "av1",
77023
77271
  webmCodec: "V_AV1"
77024
77272
  }
77025
- }, nV = class e {
77273
+ }, lV = class e {
77026
77274
  _scene;
77027
77275
  _options;
77028
77276
  constructor(e, t) {
@@ -77046,8 +77294,8 @@ var tV = {
77046
77294
  }
77047
77295
  async export() {
77048
77296
  if (!e.isSupported()) throw Error("WebCodecs VideoEncoder is not available in this environment. Use VideoExporter (MediaRecorder) instead to export video.");
77049
- let t = this._options, n = t.duration || this._scene.getTimelineDuration() || 5, r = Math.ceil(n * t.fps), i = tV[t.codec], a = null;
77050
- t.alpha && (this._assertAlphaCodec(), a = KB(this._scene), await this._assertAlphaEncodeSupport(i));
77297
+ let t = this._options, n = t.duration || this._scene.getTimelineDuration() || 5, r = Math.ceil(n * t.fps), i = cV[t.codec], a = null;
77298
+ t.alpha && (this._assertAlphaCodec(), a = $B(this._scene), await this._assertAlphaEncodeSupport(i));
77051
77299
  let o = await this._createMuxer(i), s = new window.VideoEncoder({
77052
77300
  output: (e, t) => o.addVideoChunk(e, t),
77053
77301
  error: (e) => Gf.error("WebCodecs encoder error:", e)
@@ -77071,7 +77319,7 @@ var tV = {
77071
77319
  s.encode(i, { keyFrame: e % t.keyFrameInterval === 0 }), i.close(), t.onProgress(r === 0 ? 1 : (e + 1) / r);
77072
77320
  }
77073
77321
  };
77074
- return a ? await qB(a, d) : d(), await s.flush(), s.close(), o.finalize();
77322
+ return a ? await eV(a, d) : d(), await s.flush(), s.close(), o.finalize();
77075
77323
  }
77076
77324
  _assertAlphaCodec() {
77077
77325
  let e = this._options;
@@ -77127,30 +77375,30 @@ var tV = {
77127
77375
  return { ...this._options };
77128
77376
  }
77129
77377
  };
77130
- function rV(e, t) {
77131
- return new nV(e, t);
77378
+ function uV(e, t) {
77379
+ return new lV(e, t);
77132
77380
  }
77133
77381
  //#endregion
77134
77382
  //#region src/export/chooseExporter.ts
77135
- function iV(e = nV.isSupported()) {
77383
+ function dV(e = lV.isSupported()) {
77136
77384
  return e ? "webcodecs" : "mediarecorder";
77137
77385
  }
77138
77386
  //#endregion
77139
77387
  //#region src/export/SvgExporter.ts
77140
- var aV = 3;
77141
- function oV(e, t) {
77388
+ var fV = 3;
77389
+ function pV(e, t) {
77142
77390
  if (!Number.isFinite(e)) return "0";
77143
77391
  let n = Number(e.toFixed(t));
77144
77392
  return String(Object.is(n, -0) ? 0 : n);
77145
77393
  }
77146
- function sV(e) {
77394
+ function mV(e) {
77147
77395
  return e.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
77148
77396
  }
77149
- function cV(e, t, n) {
77397
+ function hV(e, t, n) {
77150
77398
  let r = e.position.x, i = e.position.y, a = e.frameWidth || 1, o = e.frameHeight || 1;
77151
77399
  return (e) => [(e[0] - r) / a * t + t / 2, n / 2 - (e[1] - i) / o * n];
77152
77400
  }
77153
- function lV(e, t) {
77401
+ function gV(e, t) {
77154
77402
  if (!t || t.length <= 1) return [e];
77155
77403
  let n = [], r = 0;
77156
77404
  for (let i of t) {
@@ -77159,11 +77407,11 @@ function lV(e, t) {
77159
77407
  }
77160
77408
  return r === e.length ? n : [e];
77161
77409
  }
77162
- function uV(e, t, n) {
77410
+ function _V(e, t, n) {
77163
77411
  if (e.length < 4) return null;
77164
77412
  let r = (e) => {
77165
77413
  let [r, i] = t(e);
77166
- return `${oV(r, n)} ${oV(i, n)}`;
77414
+ return `${pV(r, n)} ${pV(i, n)}`;
77167
77415
  }, i = [`M ${r(e[0])}`], a = Math.floor((e.length - 1) / 3);
77168
77416
  for (let t = 0; t < a; t++) {
77169
77417
  let n = e[3 * t + 1], a = e[3 * t + 2], o = e[3 * t + 3];
@@ -77171,53 +77419,53 @@ function uV(e, t, n) {
77171
77419
  }
77172
77420
  return km(e) && i.push("Z"), i.join(" ");
77173
77421
  }
77174
- function dV(e) {
77422
+ function vV(e) {
77175
77423
  return e.style.fillColor ?? e.color;
77176
77424
  }
77177
- function fV(e, t, n, r) {
77425
+ function yV(e, t, n, r) {
77178
77426
  let i = e.getPoints();
77179
77427
  if (i.length < 4) return null;
77180
- let a = lV(i, e.getEffectiveSubpathLengths()), o = [];
77428
+ let a = gV(i, e.getEffectiveSubpathLengths()), o = [];
77181
77429
  for (let e of a) {
77182
- let n = uV(e, t, r);
77430
+ let n = _V(e, t, r);
77183
77431
  n && o.push(n);
77184
77432
  }
77185
77433
  if (o.length === 0) return null;
77186
77434
  let s = e.fillOpacity > 0, c = e.strokeWidth > 0;
77187
77435
  if (!s && !c) return null;
77188
77436
  let l = [`d="${o.join(" ")}"`];
77189
- return s ? (l.push(`fill="${sV(dV(e))}"`), l.push("fill-rule=\"nonzero\""), e.fillOpacity < 1 && l.push(`fill-opacity="${oV(e.fillOpacity, r)}"`)) : l.push("fill=\"none\""), c && (l.push(`stroke="${sV(e.color)}"`), l.push(`stroke-width="${oV(e.strokeWidth * n, r)}"`), l.push("stroke-linejoin=\"round\""), l.push("stroke-linecap=\"round\""), e.opacity < 1 && l.push(`stroke-opacity="${oV(e.opacity, r)}"`)), `<path ${l.join(" ")} />`;
77437
+ return s ? (l.push(`fill="${mV(vV(e))}"`), l.push("fill-rule=\"nonzero\""), e.fillOpacity < 1 && l.push(`fill-opacity="${pV(e.fillOpacity, r)}"`)) : l.push("fill=\"none\""), c && (l.push(`stroke="${mV(e.color)}"`), l.push(`stroke-width="${pV(e.strokeWidth * n, r)}"`), l.push("stroke-linejoin=\"round\""), l.push("stroke-linecap=\"round\""), e.opacity < 1 && l.push(`stroke-opacity="${pV(e.opacity, r)}"`)), `<path ${l.join(" ")} />`;
77190
77438
  }
77191
- function pV(e) {
77439
+ function bV(e) {
77192
77440
  return e instanceof V && e.getPoints().length >= 4;
77193
77441
  }
77194
- function mV(e, t) {
77195
- let n = t?.precision ?? aV, r = e.getWidth(), i = e.getHeight(), a = e.camera, o = cV(a, r, i), s = .01 * r / (a.frameWidth || 1), c = [];
77442
+ function xV(e, t) {
77443
+ let n = t?.precision ?? fV, r = e.getWidth(), i = e.getHeight(), a = e.camera, o = hV(a, r, i), s = .01 * r / (a.frameWidth || 1), c = [];
77196
77444
  for (let t of e.mobjects) {
77197
77445
  let e = [];
77198
77446
  for (let r of t.getFamily()) {
77199
- if (!pV(r)) continue;
77200
- let t = fV(r, o, s, n);
77447
+ if (!bV(r)) continue;
77448
+ let t = yV(r, o, s, n);
77201
77449
  t && e.push(t);
77202
77450
  }
77203
77451
  if (e.length === 0) continue;
77204
- let r = t.userId ? ` data-mobject-id="${sV(t.userId)}"` : "";
77452
+ let r = t.userId ? ` data-mobject-id="${mV(t.userId)}"` : "";
77205
77453
  c.push(` <g${r}>\n ${e.join("\n ")}\n </g>`);
77206
77454
  }
77207
- let l = oV(r, n), u = oV(i, n);
77208
- return `${`<svg xmlns="http://www.w3.org/2000/svg" width="${l}" height="${u}" viewBox="0 0 ${l} ${u}">`}${t?.background ? `\n <rect x="0" y="0" width="${l}" height="${u}" fill="${sV(t.background)}" />` : ""}${c.length > 0 ? `\n${c.join("\n")}\n` : "\n"}</svg>`;
77455
+ let l = pV(r, n), u = pV(i, n);
77456
+ return `${`<svg xmlns="http://www.w3.org/2000/svg" width="${l}" height="${u}" viewBox="0 0 ${l} ${u}">`}${t?.background ? `\n <rect x="0" y="0" width="${l}" height="${u}" fill="${mV(t.background)}" />` : ""}${c.length > 0 ? `\n${c.join("\n")}\n` : "\n"}</svg>`;
77209
77457
  }
77210
- function hV(e, t) {
77211
- let n = mV(e, t);
77458
+ function SV(e, t) {
77459
+ let n = xV(e, t);
77212
77460
  return new Blob([n], { type: "image/svg+xml" });
77213
77461
  }
77214
- function gV(e, t = "scene.svg", n) {
77462
+ function CV(e, t = "scene.svg", n) {
77215
77463
  if (typeof document > "u") throw Error("exportAndDownloadSVG requires a DOM (document is undefined)");
77216
- $B(hV(e, n), t);
77464
+ oV(SV(e, n), t);
77217
77465
  }
77218
77466
  //#endregion
77219
77467
  //#region src/player/ExportSettingsUI.ts
77220
- var _V = [
77468
+ var wV = [
77221
77469
  {
77222
77470
  id: "current",
77223
77471
  label: "Current",
@@ -77254,11 +77502,11 @@ var _V = [
77254
77502
  width: 3840,
77255
77503
  height: 2160
77256
77504
  }
77257
- ], vV = [
77505
+ ], TV = [
77258
77506
  24,
77259
77507
  30,
77260
77508
  60
77261
- ], yV = [
77509
+ ], EV = [
77262
77510
  {
77263
77511
  id: "low",
77264
77512
  label: "Low",
@@ -77274,12 +77522,12 @@ var _V = [
77274
77522
  label: "High",
77275
77523
  value: .9
77276
77524
  }
77277
- ], bV = 1e7;
77278
- function xV(e) {
77279
- return Math.round(Math.max(0, Math.min(1, e)) * bV);
77525
+ ], DV = 1e7;
77526
+ function OV(e) {
77527
+ return Math.round(Math.max(0, Math.min(1, e)) * DV);
77280
77528
  }
77281
- function SV(e, t, n) {
77282
- let r = _V.find((t) => t.id === e);
77529
+ function kV(e, t, n) {
77530
+ let r = wV.find((t) => t.id === e);
77283
77531
  return !r || r.width === null || r.height === null ? {
77284
77532
  width: t,
77285
77533
  height: n
@@ -77288,7 +77536,7 @@ function SV(e, t, n) {
77288
77536
  height: r.height
77289
77537
  };
77290
77538
  }
77291
- var CV = class {
77539
+ var AV = class {
77292
77540
  _element;
77293
77541
  _fpsSelect;
77294
77542
  _resolutionSelect;
@@ -77301,22 +77549,22 @@ var CV = class {
77301
77549
  display: "flex",
77302
77550
  flexDirection: "column",
77303
77551
  gap: "6px"
77304
- }), this._element.setAttribute("data-export-settings", ""), this._fpsSelect = this._buildSelect("FPS", vV.map((e) => ({
77552
+ }), this._element.setAttribute("data-export-settings", ""), this._fpsSelect = this._buildSelect("FPS", TV.map((e) => ({
77305
77553
  value: String(e),
77306
77554
  label: `${e} fps`
77307
- })), String(this._nearestFps(e.fps))), this._resolutionSelect = this._buildSelect("Resolution", _V.map((e) => ({
77555
+ })), String(this._nearestFps(e.fps))), this._resolutionSelect = this._buildSelect("Resolution", wV.map((e) => ({
77308
77556
  value: e.id,
77309
77557
  label: e.label
77310
- })), "current"), this._qualitySelect = this._buildSelect("Quality", yV.map((e) => ({
77558
+ })), "current"), this._qualitySelect = this._buildSelect("Quality", EV.map((e) => ({
77311
77559
  value: String(e.value),
77312
77560
  label: e.label
77313
- })), String(yV[yV.length - 1].value));
77561
+ })), String(EV[EV.length - 1].value));
77314
77562
  }
77315
77563
  get element() {
77316
77564
  return this._element;
77317
77565
  }
77318
77566
  getSettings() {
77319
- let e = parseInt(this._fpsSelect.value, 10), { width: t, height: n } = SV(this._resolutionSelect.value, this._defaults.width, this._defaults.height);
77567
+ let e = parseInt(this._fpsSelect.value, 10), { width: t, height: n } = kV(this._resolutionSelect.value, this._defaults.width, this._defaults.height);
77320
77568
  return {
77321
77569
  fps: e,
77322
77570
  width: t,
@@ -77325,7 +77573,7 @@ var CV = class {
77325
77573
  };
77326
77574
  }
77327
77575
  _nearestFps(e) {
77328
- return vV.reduce((t, n) => Math.abs(n - e) < Math.abs(t - e) ? n : t);
77576
+ return TV.reduce((t, n) => Math.abs(n - e) < Math.abs(t - e) ? n : t);
77329
77577
  }
77330
77578
  _buildSelect(e, t, n) {
77331
77579
  let r = document.createElement("label");
@@ -77356,7 +77604,7 @@ var CV = class {
77356
77604
  }
77357
77605
  return a.value = n, a.addEventListener("click", (e) => e.stopPropagation()), r.appendChild(i), r.appendChild(a), this._element.appendChild(r), a;
77358
77606
  }
77359
- }, wV = class {
77607
+ }, jV = class {
77360
77608
  _container;
77361
77609
  _bar;
77362
77610
  _playBtn;
@@ -77392,19 +77640,19 @@ var CV = class {
77392
77640
  this._container = e, this._callbacks = t, this._autoHideMs = n.autoHideMs ?? 2500, this._exportControls = n.exportControls ?? !1, getComputedStyle(e).position === "static" && (e.style.position = "relative"), e.style.overflow = "hidden", this._bar = this._createBar(), this._playBtn = this._createPlayBtn(), this._prevBtn = this._createNavBtn("prev"), this._nextBtn = this._createNavBtn("next");
77393
77641
  let r = this._createProgressBar();
77394
77642
  this._progressWrap = r.wrap, this._progressFill = r.fill, this._segmentMarkers = r.markers, this._timeDisplay = this._createTimeDisplay(), this._speedSelect = this._createSpeedSelect(), this._fullscreenBtn = this._createFullscreenBtn(), this._slidesBtn = this._createSlidesBtn(), this._exportBtn = this._createExportBtn();
77395
- let i = TV("div", {
77643
+ let i = MV("div", {
77396
77644
  display: "flex",
77397
77645
  alignItems: "center",
77398
77646
  gap: "4px"
77399
77647
  });
77400
77648
  i.appendChild(this._prevBtn), i.appendChild(this._playBtn), i.appendChild(this._nextBtn);
77401
- let a = TV("div", {
77649
+ let a = MV("div", {
77402
77650
  display: "flex",
77403
77651
  alignItems: "center",
77404
77652
  gap: "8px"
77405
77653
  });
77406
77654
  a.appendChild(this._timeDisplay), a.appendChild(this._speedSelect), a.appendChild(this._slidesBtn), a.appendChild(this._exportBtnWrapper), a.appendChild(this._fullscreenBtn), this._bar.appendChild(this._progressWrap);
77407
- let o = TV("div", {
77655
+ let o = MV("div", {
77408
77656
  display: "flex",
77409
77657
  alignItems: "center",
77410
77658
  justifyContent: "space-between",
@@ -77419,10 +77667,10 @@ var CV = class {
77419
77667
  let n = e / t * 100;
77420
77668
  this._progressFill.style.width = `${n}%`;
77421
77669
  }
77422
- this._timeDisplay.textContent = `${DV(e)} / ${DV(t)}`;
77670
+ this._timeDisplay.textContent = `${PV(e)} / ${PV(t)}`;
77423
77671
  }
77424
77672
  setPlaying(e, t = !1) {
77425
- this._isPlaying = e, t ? (this._playBtn.innerHTML = AV, this._playBtn.title = "Replay (Space)") : (this._playBtn.innerHTML = e ? kV : OV, this._playBtn.title = e ? "Pause (Space)" : "Play (Space)"), e && this._scheduleHide();
77673
+ this._isPlaying = e, t ? (this._playBtn.innerHTML = LV, this._playBtn.title = "Replay (Space)") : (this._playBtn.innerHTML = e ? IV : FV, this._playBtn.title = e ? "Pause (Space)" : "Play (Space)"), e && this._scheduleHide();
77426
77674
  }
77427
77675
  setSlidesMode(e) {
77428
77676
  this._slidesActive = e, this._slidesBtn.style.opacity = e ? "1" : "0.4", this._slidesBtn.style.background = e ? "rgba(74,158,255,0.25)" : "none", this._slidesBtn.title = `Slides mode ${e ? "on" : "off"} (S)`;
@@ -77432,7 +77680,7 @@ var CV = class {
77432
77680
  let t = e.getSlides(), n = e.getDuration();
77433
77681
  if (!(n <= 0)) for (let e of t) {
77434
77682
  if (e.index === 0) continue;
77435
- let t = TV("div", {
77683
+ let t = MV("div", {
77436
77684
  position: "absolute",
77437
77685
  left: `${e.startTime / n * 100}%`,
77438
77686
  top: "50%",
@@ -77447,7 +77695,7 @@ var CV = class {
77447
77695
  }
77448
77696
  }
77449
77697
  _createBar() {
77450
- let e = TV("div", {
77698
+ let e = MV("div", {
77451
77699
  position: "absolute",
77452
77700
  bottom: "0",
77453
77701
  left: "0",
@@ -77465,21 +77713,21 @@ var CV = class {
77465
77713
  }
77466
77714
  _createPlayBtn() {
77467
77715
  let e = document.createElement("button");
77468
- return e.innerHTML = OV, e.title = "Play (Space)", EV(e, "36px", "36px"), e.addEventListener("click", () => this._callbacks.onPlayPause()), e;
77716
+ return e.innerHTML = FV, e.title = "Play (Space)", NV(e, "36px", "36px"), e.addEventListener("click", () => this._callbacks.onPlayPause()), e;
77469
77717
  }
77470
77718
  _createNavBtn(e) {
77471
77719
  let t = document.createElement("button");
77472
- return t.innerHTML = e === "prev" ? jV : MV, t.title = e === "prev" ? "Previous (Left arrow)" : "Next (Right arrow)", EV(t, "28px", "28px"), t.addEventListener("click", () => {
77720
+ return t.innerHTML = e === "prev" ? RV : zV, t.title = e === "prev" ? "Previous (Left arrow)" : "Next (Right arrow)", NV(t, "28px", "28px"), t.addEventListener("click", () => {
77473
77721
  e === "prev" ? this._callbacks.onPrev() : this._callbacks.onNext();
77474
77722
  }), t;
77475
77723
  }
77476
77724
  _createProgressBar() {
77477
- let e = TV("div", {
77725
+ let e = MV("div", {
77478
77726
  position: "relative",
77479
77727
  height: "16px",
77480
77728
  padding: "6px 12px",
77481
77729
  cursor: "pointer"
77482
- }), t = TV("div", {
77730
+ }), t = MV("div", {
77483
77731
  position: "absolute",
77484
77732
  left: "12px",
77485
77733
  right: "12px",
@@ -77489,14 +77737,14 @@ var CV = class {
77489
77737
  background: "rgba(255,255,255,0.2)",
77490
77738
  borderRadius: "2px",
77491
77739
  overflow: "visible"
77492
- }), n = TV("div", {
77740
+ }), n = MV("div", {
77493
77741
  width: "0%",
77494
77742
  height: "100%",
77495
77743
  background: "#4a9eff",
77496
77744
  borderRadius: "2px",
77497
77745
  transition: "none",
77498
77746
  position: "relative"
77499
- }), r = TV("div", {
77747
+ }), r = MV("div", {
77500
77748
  position: "absolute",
77501
77749
  right: "-5px",
77502
77750
  top: "50%",
@@ -77509,7 +77757,7 @@ var CV = class {
77509
77757
  transition: "transform 0.1s"
77510
77758
  });
77511
77759
  n.appendChild(r);
77512
- let i = TV("div", {
77760
+ let i = MV("div", {
77513
77761
  width: "0%",
77514
77762
  height: "100%",
77515
77763
  background: "rgba(255,255,255,0.1)",
@@ -77518,7 +77766,7 @@ var CV = class {
77518
77766
  top: "0",
77519
77767
  left: "0",
77520
77768
  pointerEvents: "none"
77521
- }), a = TV("div", {
77769
+ }), a = MV("div", {
77522
77770
  position: "absolute",
77523
77771
  top: "0",
77524
77772
  left: "0",
@@ -77543,7 +77791,7 @@ var CV = class {
77543
77791
  };
77544
77792
  }
77545
77793
  _createTimeDisplay() {
77546
- let e = TV("span", {
77794
+ let e = MV("span", {
77547
77795
  fontFamily: "\"SF Mono\", Monaco, Consolas, monospace",
77548
77796
  fontSize: "12px",
77549
77797
  opacity: "0.8",
@@ -77585,16 +77833,16 @@ var CV = class {
77585
77833
  }), e;
77586
77834
  }
77587
77835
  _createExportBtn() {
77588
- let e = TV("div", {
77836
+ let e = MV("div", {
77589
77837
  position: "relative",
77590
77838
  display: "inline-block"
77591
77839
  }), t = document.createElement("button");
77592
- return t.innerHTML = NV, t.title = "Export animation", EV(t, "28px", "28px"), t.addEventListener("click", (e) => {
77840
+ return t.innerHTML = BV, t.title = "Export animation", NV(t, "28px", "28px"), t.addEventListener("click", (e) => {
77593
77841
  e.stopPropagation(), this._exportMenu ? this._closeExportMenu() : this._showExportMenu();
77594
77842
  }), e.appendChild(t), this._exportBtnWrapper = e, t;
77595
77843
  }
77596
77844
  _showExportMenu() {
77597
- let e = this._exportBtn.getBoundingClientRect(), t = TV("div", {
77845
+ let e = this._exportBtn.getBoundingClientRect(), t = MV("div", {
77598
77846
  position: "fixed",
77599
77847
  top: "0",
77600
77848
  left: "0",
@@ -77605,7 +77853,7 @@ var CV = class {
77605
77853
  t.setAttribute("data-player-bar", ""), t.addEventListener("mousedown", (e) => {
77606
77854
  e.stopPropagation(), e.preventDefault(), this._closeExportMenu();
77607
77855
  });
77608
- let n = TV("div", {
77856
+ let n = MV("div", {
77609
77857
  position: "fixed",
77610
77858
  bottom: `${window.innerHeight - e.top + 6}px`,
77611
77859
  left: `${e.left - 60}px`,
@@ -77626,7 +77874,7 @@ var CV = class {
77626
77874
  height: 1080,
77627
77875
  fps: 60
77628
77876
  };
77629
- this._exportPanel = new CV(e), n.appendChild(this._exportPanel.element);
77877
+ this._exportPanel = new AV(e), n.appendChild(this._exportPanel.element);
77630
77878
  }
77631
77879
  for (let e of [
77632
77880
  {
@@ -77645,7 +77893,7 @@ var CV = class {
77645
77893
  desc: "Video file"
77646
77894
  }
77647
77895
  ]) {
77648
- let t = TV("div", {
77896
+ let t = MV("div", {
77649
77897
  padding: "8px 14px",
77650
77898
  cursor: "pointer",
77651
77899
  fontSize: "13px",
@@ -77670,7 +77918,7 @@ var CV = class {
77670
77918
  this._exportMenu && (this._exportMenuBackdrop?.remove(), this._exportMenuBackdrop = null, this._exportMenu.remove(), this._exportMenu = null, this._exportPanel = null);
77671
77919
  }
77672
77920
  setExportProgress(e) {
77673
- if (e === null) this._exportBtn.innerHTML = NV, this._exportBtn.disabled = !1, this._exportBtn.title = "Export animation";
77921
+ if (e === null) this._exportBtn.innerHTML = BV, this._exportBtn.disabled = !1, this._exportBtn.title = "Export animation";
77674
77922
  else {
77675
77923
  let t = Math.round(e * 100);
77676
77924
  this._exportBtn.innerHTML = `<span style="font-size:10px;font-weight:600">${t}%</span>`, this._exportBtn.disabled = !0, this._exportBtn.title = `Exporting... ${t}%`;
@@ -77678,7 +77926,7 @@ var CV = class {
77678
77926
  }
77679
77927
  _createSlidesBtn() {
77680
77928
  let e = document.createElement("button");
77681
- return e.innerHTML = PV, e.title = "Slides mode off (S)", EV(e, "28px", "28px"), e.style.opacity = "0.4", e.addEventListener("click", () => {
77929
+ return e.innerHTML = VV, e.title = "Slides mode off (S)", NV(e, "28px", "28px"), e.style.opacity = "0.4", e.addEventListener("click", () => {
77682
77930
  this._slidesActive = !this._slidesActive, this.setSlidesMode(this._slidesActive), this._callbacks.onSlidesToggle(this._slidesActive);
77683
77931
  }), e.addEventListener("mouseenter", () => {
77684
77932
  e.style.background = this._slidesActive ? "rgba(74,158,255,0.35)" : "rgba(255,255,255,0.15)";
@@ -77688,7 +77936,7 @@ var CV = class {
77688
77936
  }
77689
77937
  _createFullscreenBtn() {
77690
77938
  let e = document.createElement("button");
77691
- return e.innerHTML = FV, e.title = "Fullscreen (F)", EV(e, "28px", "28px"), e.addEventListener("click", () => this._callbacks.onFullscreen()), e;
77939
+ return e.innerHTML = HV, e.title = "Fullscreen (F)", NV(e, "28px", "28px"), e.addEventListener("click", () => this._callbacks.onFullscreen()), e;
77692
77940
  }
77693
77941
  _showControls() {
77694
77942
  this._isVisible ||= (this._bar.style.opacity = "1", this._bar.style.transform = "translateY(0)", !0), this._scheduleHide();
@@ -77743,11 +77991,11 @@ var CV = class {
77743
77991
  this._hideTimeout && clearTimeout(this._hideTimeout), this._container.removeEventListener("mousemove", this._onMouseMove), this._container.removeEventListener("mouseleave", this._onMouseLeave), this._progressWrap.removeEventListener("mousedown", this._onProgressDown), document.removeEventListener("mousemove", this._onProgressMove), document.removeEventListener("mouseup", this._onProgressUp), this._bar.remove();
77744
77992
  }
77745
77993
  };
77746
- function TV(e, t) {
77994
+ function MV(e, t) {
77747
77995
  let n = document.createElement(e);
77748
77996
  return Object.assign(n.style, t), n;
77749
77997
  }
77750
- function EV(e, t, n) {
77998
+ function NV(e, t, n) {
77751
77999
  Object.assign(e.style, {
77752
78000
  width: t,
77753
78001
  height: n,
@@ -77768,11 +78016,11 @@ function EV(e, t, n) {
77768
78016
  e.style.background = "none";
77769
78017
  });
77770
78018
  }
77771
- function DV(e) {
78019
+ function PV(e) {
77772
78020
  let t = Math.floor(e / 60), n = Math.floor(e % 60);
77773
78021
  return `${t}:${String(n).padStart(2, "0")}`;
77774
78022
  }
77775
- var OV = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentColor\"><path d=\"M5 3l10 6-10 6V3z\"/></svg>", kV = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentColor\"><rect x=\"4\" y=\"3\" width=\"3.5\" height=\"12\" rx=\"0.5\"/><rect x=\"10.5\" y=\"3\" width=\"3.5\" height=\"12\" rx=\"0.5\"/></svg>", AV = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentColor\"><path d=\"M9 3a6 6 0 1 0 6 6h-2a4 4 0 1 1-4-4v3l4-3.5L9 1v2z\"/></svg>", jV = "<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\"><rect x=\"2\" y=\"3\" width=\"2\" height=\"10\"/><path d=\"M14 3L6 8l8 5V3z\"/></svg>", MV = "<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\"><rect x=\"12\" y=\"3\" width=\"2\" height=\"10\"/><path d=\"M2 3l8 5-8 5V3z\"/></svg>", NV = "<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\"><path d=\"M8 1L8 10M8 10L5 7M8 10L11 7\" stroke=\"currentColor\" stroke-width=\"1.5\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M3 12v1h10v-1\" stroke=\"currentColor\" stroke-width=\"1.5\" fill=\"none\" stroke-linecap=\"round\"/></svg>", PV = "<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\"><rect x=\"1\" y=\"2\" width=\"14\" height=\"10\" rx=\"1.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"M5 14h6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/><path d=\"M6 6l5 3-5 3V6z\"/></svg>", FV = "<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\"><path d=\"M2 2h4v2H4v2H2V2zm8 0h4v4h-2V4h-2V2zM2 10h2v2h2v2H2v-4zm10 2h-2v2h4v-4h-2v2z\"/></svg>", IV = class {
78023
+ var FV = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentColor\"><path d=\"M5 3l10 6-10 6V3z\"/></svg>", IV = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentColor\"><rect x=\"4\" y=\"3\" width=\"3.5\" height=\"12\" rx=\"0.5\"/><rect x=\"10.5\" y=\"3\" width=\"3.5\" height=\"12\" rx=\"0.5\"/></svg>", LV = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentColor\"><path d=\"M9 3a6 6 0 1 0 6 6h-2a4 4 0 1 1-4-4v3l4-3.5L9 1v2z\"/></svg>", RV = "<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\"><rect x=\"2\" y=\"3\" width=\"2\" height=\"10\"/><path d=\"M14 3L6 8l8 5V3z\"/></svg>", zV = "<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\"><rect x=\"12\" y=\"3\" width=\"2\" height=\"10\"/><path d=\"M2 3l8 5-8 5V3z\"/></svg>", BV = "<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\"><path d=\"M8 1L8 10M8 10L5 7M8 10L11 7\" stroke=\"currentColor\" stroke-width=\"1.5\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M3 12v1h10v-1\" stroke=\"currentColor\" stroke-width=\"1.5\" fill=\"none\" stroke-linecap=\"round\"/></svg>", VV = "<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\"><rect x=\"1\" y=\"2\" width=\"14\" height=\"10\" rx=\"1.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"M5 14h6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/><path d=\"M6 6l5 3-5 3V6z\"/></svg>", HV = "<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\"><path d=\"M2 2h4v2H4v2H2V2zm8 0h4v4h-2V4h-2V2zM2 10h2v2h2v2H2v-4zm10 2h-2v2h4v-4h-2v2z\"/></svg>", UV = class {
77776
78024
  _container;
77777
78025
  _callbacks;
77778
78026
  _onKeyDown;
@@ -77802,7 +78050,7 @@ var OV = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentCo
77802
78050
  dispose() {
77803
78051
  this._container.removeEventListener("keydown", this._onKeyDown);
77804
78052
  }
77805
- }, LV = class {
78053
+ }, WV = class {
77806
78054
  _realScene;
77807
78055
  _masterTimeline;
77808
78056
  constructor(e, t) {
@@ -77839,7 +78087,7 @@ var OV = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentCo
77839
78087
  for (let n of e) t.push(n), n instanceof HT && t.push(...this._collectAll(n.animations));
77840
78088
  return t;
77841
78089
  }
77842
- }, RV = [
78090
+ }, GV = [
77843
78091
  "mousedown",
77844
78092
  "mousemove",
77845
78093
  "mouseup",
@@ -77847,7 +78095,7 @@ var OV = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentCo
77847
78095
  "touchstart",
77848
78096
  "touchmove",
77849
78097
  "touchend"
77850
- ], zV = class {
78098
+ ], KV = class {
77851
78099
  _target;
77852
78100
  _scene;
77853
78101
  _isIdle;
@@ -77866,13 +78114,13 @@ var OV = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentCo
77866
78114
  }
77867
78115
  attach() {
77868
78116
  if (!this._attached) {
77869
- for (let e of RV) this._target.addEventListener(e, this._onEvent);
78117
+ for (let e of GV) this._target.addEventListener(e, this._onEvent);
77870
78118
  this._attached = !0;
77871
78119
  }
77872
78120
  }
77873
78121
  dispose() {
77874
78122
  if (this._attached) {
77875
- for (let e of RV) this._target.removeEventListener(e, this._onEvent);
78123
+ for (let e of GV) this._target.removeEventListener(e, this._onEvent);
77876
78124
  this._attached = !1, this._renderScheduled = !1;
77877
78125
  }
77878
78126
  }
@@ -77884,7 +78132,7 @@ var OV = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentCo
77884
78132
  this._renderScheduled = !1, !(!this._attached || !this._isIdle()) && (this._scene.render(), this._renderCount++);
77885
78133
  }));
77886
78134
  }
77887
- }, BV = class {
78135
+ }, qV = class {
77888
78136
  _scene;
77889
78137
  _masterTimeline;
77890
78138
  _ui;
@@ -77907,7 +78155,7 @@ var OV = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentCo
77907
78155
  _origHeight = 0;
77908
78156
  _onFullscreenChange;
77909
78157
  constructor(e, t = {}) {
77910
- this._container = e, this._loop = t.loop ?? !1, this._autoPlay = t.autoPlay ?? !1, this._slidesMode = t.slidesMode ?? !1, this._interactiveSlides = t.interactiveSlides ?? !1, this._exportControls = t.exportControls ?? !1, this._exportFps = t.targetFps ?? 60, this._scene = new pE(e, t), this._masterTimeline = new YI(), this._ui = new wV(e, {
78158
+ this._container = e, this._loop = t.loop ?? !1, this._autoPlay = t.autoPlay ?? !1, this._slidesMode = t.slidesMode ?? !1, this._interactiveSlides = t.interactiveSlides ?? !1, this._exportControls = t.exportControls ?? !1, this._exportFps = t.targetFps ?? 60, this._scene = new pE(e, t), this._masterTimeline = new nL(), this._ui = new jV(e, {
77911
78159
  onPlayPause: () => this.togglePlayPause(),
77912
78160
  onSeek: (e) => this.seek(e),
77913
78161
  onPrev: () => this.prevSegment(),
@@ -77924,7 +78172,7 @@ var OV = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentCo
77924
78172
  }, {
77925
78173
  autoHideMs: t.autoHideMs,
77926
78174
  exportControls: this._exportControls
77927
- }), this._ui.setSlidesMode(this._slidesMode), this._ui.enableScrollScrub(() => this._masterTimeline.getCurrentTime()), this._controller = new IV(e, {
78175
+ }), this._ui.setSlidesMode(this._slidesMode), this._ui.enableScrollScrub(() => this._masterTimeline.getCurrentTime()), this._controller = new UV(e, {
77928
78176
  onPlayPause: () => this.togglePlayPause(),
77929
78177
  onPrev: () => this.prevSegment(),
77930
78178
  onNext: () => this.nextSegment(),
@@ -77938,10 +78186,10 @@ var OV = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentCo
77938
78186
  }, document.addEventListener("fullscreenchange", this._onFullscreenChange), this._interactiveSlides && this._enableSlideInteraction();
77939
78187
  }
77940
78188
  _enableSlideInteraction() {
77941
- this._slideInteraction || (this._slideInteraction = new zV(this._container, this._scene, () => !this._isPlaying), this._slideInteraction.attach());
78189
+ this._slideInteraction || (this._slideInteraction = new KV(this._container, this._scene, () => !this._isPlaying), this._slideInteraction.attach());
77942
78190
  }
77943
78191
  async sequence(e) {
77944
- this._masterTimeline = new YI(), this._activeLoopSlideIndex = null, this._slidesTargetSlideIndex = -1, await e(new LV(this._scene, this._masterTimeline)), this._masterTimeline.finalizeSlides(), this._scene.setTimeline(this._masterTimeline), this._masterTimeline.seek(0), this._scene.render(), this._ui.setSegments(this._masterTimeline), this._ui.updateTime(0, this._masterTimeline.getDuration()), this._autoPlay && this.play();
78192
+ this._masterTimeline = new nL(), this._activeLoopSlideIndex = null, this._slidesTargetSlideIndex = -1, await e(new WV(this._scene, this._masterTimeline)), this._masterTimeline.finalizeSlides(), this._scene.setTimeline(this._masterTimeline), this._masterTimeline.seek(0), this._scene.render(), this._ui.setSegments(this._masterTimeline), this._ui.updateTime(0, this._masterTimeline.getDuration()), this._autoPlay && this.play();
77945
78193
  }
77946
78194
  get scene() {
77947
78195
  return this._scene;
@@ -78052,7 +78300,7 @@ var OV = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentCo
78052
78300
  let i = `animation.${e}`, a = this._masterTimeline.getDuration(), o = (e) => this._ui.setExportProgress(e);
78053
78301
  this._ui.setExportProgress(0);
78054
78302
  try {
78055
- (e === "webm" || e === "mp4") && iV() === "webcodecs" ? await this._exportWithWebCodecs(e === "mp4" ? "mp4" : "webm", t, a, o, i) : await this._scene.export(i, this._buildSceneExportOptions(e, t, a, o));
78303
+ (e === "webm" || e === "mp4") && dV() === "webcodecs" ? await this._exportWithWebCodecs(e === "mp4" ? "mp4" : "webm", t, a, o, i) : await this._scene.export(i, this._buildSceneExportOptions(e, t, a, o));
78056
78304
  } catch (e) {
78057
78305
  Gf.error("Export failed:", e), this._ui.showError(`Export failed: ${e instanceof Error ? e.message : "Unknown error"}`);
78058
78306
  } finally {
@@ -78060,12 +78308,12 @@ var OV = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentCo
78060
78308
  }
78061
78309
  }
78062
78310
  async _exportWithWebCodecs(e, t, n, r, i) {
78063
- $B(await new nV(this._scene, {
78311
+ oV(await new lV(this._scene, {
78064
78312
  format: e,
78065
78313
  fps: t?.fps ?? this._exportFps,
78066
78314
  width: t?.width ?? this._scene.getWidth(),
78067
78315
  height: t?.height ?? this._scene.getHeight(),
78068
- bitrate: xV(t?.quality ?? .9),
78316
+ bitrate: OV(t?.quality ?? .9),
78069
78317
  duration: n,
78070
78318
  onProgress: r
78071
78319
  }).export(), i);
@@ -78126,36 +78374,36 @@ var OV = "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"currentCo
78126
78374
  _stopLoop() {
78127
78375
  this._animFrameId !== null && (cancelAnimationFrame(this._animFrameId), this._animFrameId = null);
78128
78376
  }
78129
- }, VV = {
78377
+ }, JV = {
78130
78378
  EXPERIMENTAL_3D_LIGHTING: !1,
78131
78379
  WEBGPU_RENDERER: !1,
78132
78380
  ADVANCED_TEXT_LAYOUT: !1
78133
- }, HV = { ...VV };
78134
- function UV(e) {
78135
- return HV[e] ?? !1;
78381
+ }, YV = { ...JV };
78382
+ function XV(e) {
78383
+ return YV[e] ?? !1;
78136
78384
  }
78137
- function WV(e) {
78138
- HV = {
78139
- ...HV,
78385
+ function ZV(e) {
78386
+ YV = {
78387
+ ...YV,
78140
78388
  ...e
78141
78389
  };
78142
78390
  }
78143
- function GV() {
78144
- HV = { ...VV };
78391
+ function QV() {
78392
+ YV = { ...JV };
78145
78393
  }
78146
- function KV() {
78147
- return { ...HV };
78394
+ function $V() {
78395
+ return { ...YV };
78148
78396
  }
78149
78397
  //#endregion
78150
78398
  //#region src/utils/ManimColor.ts
78151
- var qV = /(?:#|0[xX])([A-Fa-f0-9]{3,8})/;
78152
- function JV(e) {
78399
+ var eH = /(?:#|0[xX])([A-Fa-f0-9]{3,8})/;
78400
+ function tH(e) {
78153
78401
  return Math.min(255, Math.max(0, Math.trunc(e * 255)));
78154
78402
  }
78155
- function YV(e) {
78156
- return JV(e).toString(16).toUpperCase().padStart(2, "0");
78403
+ function nH(e) {
78404
+ return tH(e).toString(16).toUpperCase().padStart(2, "0");
78157
78405
  }
78158
- function XV(e, t) {
78406
+ function rH(e, t) {
78159
78407
  let n = e;
78160
78408
  (n.length === 3 || n.length === 4) && (n = n.split("").map((e) => e + e).join(""));
78161
78409
  let r = t;
@@ -78168,14 +78416,14 @@ function XV(e, t) {
78168
78416
  r
78169
78417
  ];
78170
78418
  }
78171
- function ZV(e, t) {
78172
- let n = qV.exec(e);
78173
- if (n !== null) return XV(n[1], t);
78419
+ function iH(e, t) {
78420
+ let n = eH.exec(e);
78421
+ if (n !== null) return rH(n[1], t);
78174
78422
  let r = fl[e.toUpperCase()];
78175
- if (typeof r == "string") return ZV(r, t);
78423
+ if (typeof r == "string") return iH(r, t);
78176
78424
  throw Error(`Failed to parse a color from "${e}"`);
78177
78425
  }
78178
- function QV(e, t) {
78426
+ function aH(e, t) {
78179
78427
  return [
78180
78428
  (e >> 16 & 255) / 255,
78181
78429
  (e >> 8 & 255) / 255,
@@ -78183,7 +78431,7 @@ function QV(e, t) {
78183
78431
  t
78184
78432
  ];
78185
78433
  }
78186
- var $V = class e {
78434
+ var oH = class e {
78187
78435
  value;
78188
78436
  constructor(t, n = 1) {
78189
78437
  if (t === null) this.value = [
@@ -78200,8 +78448,8 @@ var $V = class e {
78200
78448
  e[2],
78201
78449
  e[3]
78202
78450
  ];
78203
- } else if (typeof t == "number") this.value = QV(t, n);
78204
- else if (typeof t == "string") this.value = ZV(t, n);
78451
+ } else if (typeof t == "number") this.value = aH(t, n);
78452
+ else if (typeof t == "string") this.value = iH(t, n);
78205
78453
  else if (t.length === 3) this.value = [
78206
78454
  t[0],
78207
78455
  t[1],
@@ -78259,18 +78507,18 @@ var $V = class e {
78259
78507
  toIntRgb() {
78260
78508
  let e = this.internalRgba();
78261
78509
  return [
78262
- JV(e[0]),
78263
- JV(e[1]),
78264
- JV(e[2])
78510
+ tH(e[0]),
78511
+ tH(e[1]),
78512
+ tH(e[2])
78265
78513
  ];
78266
78514
  }
78267
78515
  toIntRgba() {
78268
78516
  let e = this.internalRgba();
78269
78517
  return [
78270
- JV(e[0]),
78271
- JV(e[1]),
78272
- JV(e[2]),
78273
- JV(e[3])
78518
+ tH(e[0]),
78519
+ tH(e[1]),
78520
+ tH(e[2]),
78521
+ tH(e[3])
78274
78522
  ];
78275
78523
  }
78276
78524
  toHex(e = !1) {
@@ -78279,7 +78527,7 @@ var $V = class e {
78279
78527
  t[1],
78280
78528
  t[2]
78281
78529
  ]);
78282
- return e ? n + YV(t[3]) : n;
78530
+ return e ? n + nH(t[3]) : n;
78283
78531
  }
78284
78532
  toHsv() {
78285
78533
  return _A(this.toRgb());
@@ -78339,7 +78587,7 @@ var $V = class e {
78339
78587
  static parse(t, n = 1) {
78340
78588
  return Array.isArray(t) && t.some((e) => typeof e != "number") ? t.map((t) => new e(t, n)) : new e(t, n);
78341
78589
  }
78342
- }, eH = $V, tH = class e extends $V {
78590
+ }, sH = oH, cH = class e extends oH {
78343
78591
  hsva;
78344
78592
  constructor(e, t = 1) {
78345
78593
  if (super(null), e.length === 3) this.hsva = [
@@ -78408,7 +78656,7 @@ var $V = class e {
78408
78656
  return this.hsva[2];
78409
78657
  }
78410
78658
  };
78411
- function nH(e) {
78659
+ function lH(e) {
78412
78660
  let t = e >>> 0;
78413
78661
  return () => {
78414
78662
  t = t + 1831565813 | 0;
@@ -78416,18 +78664,18 @@ function nH(e) {
78416
78664
  return e = e + Math.imul(e ^ e >>> 7, 61 | e) ^ e, ((e ^ e >>> 14) >>> 0) / 4294967296;
78417
78665
  };
78418
78666
  }
78419
- var rH = Array.from(new Set(Object.values(fl))).map((e) => new $V(e)), iH = class {
78667
+ var uH = Array.from(new Set(Object.values(fl))).map((e) => new oH(e)), dH = class {
78420
78668
  rng;
78421
78669
  colors;
78422
78670
  constructor(e, t) {
78423
- this.rng = e === void 0 ? Math.random : nH(e), this.colors = t === void 0 ? rH : t.map((e) => e instanceof $V ? e : new $V(e));
78671
+ this.rng = e === void 0 ? Math.random : lH(e), this.colors = t === void 0 ? uH : t.map((e) => e instanceof oH ? e : new oH(e));
78424
78672
  }
78425
78673
  next() {
78426
78674
  let e = Math.floor(this.rng() * this.colors.length);
78427
78675
  return this.colors[e];
78428
78676
  }
78429
78677
  };
78430
- function aH(e, t, n, r) {
78678
+ function fH(e, t, n, r) {
78431
78679
  let i = .5 * Jd(n, Zd([
78432
78680
  r[0] - t[0],
78433
78681
  r[1] - t[1],
@@ -78441,7 +78689,7 @@ function aH(e, t, n, r) {
78441
78689
  }
78442
78690
  //#endregion
78443
78691
  //#region src/utils/iterables.ts
78444
- function oH(e, t) {
78692
+ function pH(e, t) {
78445
78693
  let n = e.length;
78446
78694
  if (n === 0) return [];
78447
78695
  let r = [];
@@ -78452,10 +78700,10 @@ function oH(e, t) {
78452
78700
  }
78453
78701
  return r;
78454
78702
  }
78455
- function sH(e) {
78456
- return oH(e, 2);
78703
+ function mH(e) {
78704
+ return pH(e, 2);
78457
78705
  }
78458
- function cH(e) {
78706
+ function hH(e) {
78459
78707
  let t = [], n = /* @__PURE__ */ new Set();
78460
78708
  for (let r = e.length - 1; r >= 0; r--) {
78461
78709
  let i = e[r];
@@ -78463,7 +78711,7 @@ function cH(e) {
78463
78711
  }
78464
78712
  return t.reverse(), t;
78465
78713
  }
78466
- function lH(e, t, n) {
78714
+ function gH(e, t, n) {
78467
78715
  if (n === void 0) {
78468
78716
  let n = new Set(t);
78469
78717
  return e.filter((e) => !n.has(e));
@@ -78471,29 +78719,29 @@ function lH(e, t, n) {
78471
78719
  let r = new Set(t.map((e) => n(e)));
78472
78720
  return e.filter((e) => !r.has(n(e)));
78473
78721
  }
78474
- function uH(e, t, n) {
78475
- return lH(e, t, n).concat(t);
78722
+ function _H(e, t, n) {
78723
+ return gH(e, t, n).concat(t);
78476
78724
  }
78477
- function dH(e) {
78725
+ function vH(e) {
78478
78726
  return typeof e == "string" ? [e] : typeof e == "object" && e && Symbol.iterator in e ? [...e] : [e];
78479
78727
  }
78480
- function fH(e, t) {
78728
+ function yH(e, t) {
78481
78729
  let n = e.length, r = t.length, i = Math.max(n, r), a = [], o = [];
78482
78730
  for (let s = 0; s < i; s++) a.push(e[Math.floor(s * n / i)]), o.push(t[Math.floor(s * r / i)]);
78483
78731
  return [a, o];
78484
78732
  }
78485
- function pH(e, t) {
78733
+ function bH(e, t) {
78486
78734
  let n = e.length;
78487
78735
  if (n > t) throw Error("Trying to stretch array to a length shorter than its own");
78488
78736
  let r = [];
78489
78737
  for (let i = 0; i < t; i++) r.push(e[Math.floor(i / t * n)]);
78490
78738
  return r;
78491
78739
  }
78492
- function* mH(...e) {
78740
+ function* xH(...e) {
78493
78741
  let t = /* @__PURE__ */ new Set();
78494
78742
  for (let n of e) for (let e of n) t.has(e) || (t.add(e), yield e);
78495
78743
  }
78496
- function hH(e) {
78744
+ function SH(e) {
78497
78745
  let t = [[]];
78498
78746
  for (let n of e) {
78499
78747
  let e = t.length;
@@ -78501,82 +78749,82 @@ function hH(e) {
78501
78749
  }
78502
78750
  return t;
78503
78751
  }
78504
- function gH(e, t) {
78752
+ function CH(e, t) {
78505
78753
  for (let n of e) if (!(n instanceof t)) return !1;
78506
78754
  return !0;
78507
78755
  }
78508
- function _H(...e) {
78756
+ function wH(...e) {
78509
78757
  let t = [];
78510
78758
  for (let n of e) for (let e of n) t.push(e);
78511
78759
  return t;
78512
78760
  }
78513
- function vH(e) {
78761
+ function TH(e) {
78514
78762
  return typeof e == "string" ? [e] : typeof e == "object" && e && Symbol.iterator in e ? [...e] : [e];
78515
78763
  }
78516
- function yH(e) {
78764
+ function EH(e) {
78517
78765
  let t = [];
78518
78766
  for (let n of e) n && t.push(n);
78519
78767
  return t;
78520
78768
  }
78521
- function bH(e, t) {
78769
+ function DH(e, t) {
78522
78770
  let n = Math.max(e.length, t.length), r = [], i = [];
78523
78771
  for (let a = 0; a < n; a++) r.push(e[a % e.length]), i.push(t[a % t.length]);
78524
78772
  return [r, i];
78525
78773
  }
78526
- function xH(e) {
78527
- return CH(SH(e));
78774
+ function OH(e) {
78775
+ return AH(kH(e));
78528
78776
  }
78529
- function SH(e) {
78777
+ function kH(e) {
78530
78778
  if (e === null) return "null";
78531
78779
  if (e === void 0) return "undefined";
78532
78780
  let t = typeof e;
78533
78781
  if (t === "string") return `s:${e}`;
78534
78782
  if (t === "number" || t === "boolean" || t === "bigint") return `${t[0]}:${String(e)}`;
78535
- if (e instanceof Set) return `set:[${[...e].map(SH).sort().join(",")}]`;
78536
- if (e instanceof Map) return `map:{${[...e.entries()].map(([e, t]) => `${SH(e)}=${SH(t)}`).sort().join(",")}}`;
78537
- if (Array.isArray(e)) return `arr:[${e.map(SH).join(",")}]`;
78783
+ if (e instanceof Set) return `set:[${[...e].map(kH).sort().join(",")}]`;
78784
+ if (e instanceof Map) return `map:{${[...e.entries()].map(([e, t]) => `${kH(e)}=${kH(t)}`).sort().join(",")}}`;
78785
+ if (Array.isArray(e)) return `arr:[${e.map(kH).join(",")}]`;
78538
78786
  if (t === "object") {
78539
78787
  let t = e;
78540
- return `obj:{${Object.keys(t).sort().map((e) => `${e}=${SH(t[e])}`).join(",")}}`;
78788
+ return `obj:{${Object.keys(t).sort().map((e) => `${e}=${kH(t[e])}`).join(",")}}`;
78541
78789
  }
78542
78790
  return `${t}:${String(e)}`;
78543
78791
  }
78544
- function CH(e) {
78792
+ function AH(e) {
78545
78793
  let t = 2166136261;
78546
78794
  for (let n = 0; n < e.length; n++) t ^= e.charCodeAt(n), t = Math.imul(t, 16777619);
78547
78795
  return t >>> 0;
78548
78796
  }
78549
78797
  //#endregion
78550
78798
  //#region src/utils/unit.ts
78551
- function wH(e) {
78799
+ function jH(e) {
78552
78800
  return e * dd / pd;
78553
78801
  }
78554
- function TH(e) {
78802
+ function MH(e) {
78555
78803
  return e * Math.PI / 180;
78556
78804
  }
78557
- function EH(e) {
78805
+ function NH(e) {
78558
78806
  return e;
78559
78807
  }
78560
- function DH(e, t) {
78808
+ function PH(e, t) {
78561
78809
  return e[0] === t[0] && e[1] === t[1] && e[2] === t[2];
78562
78810
  }
78563
- function OH(e, t) {
78811
+ function FH(e, t) {
78564
78812
  let n;
78565
- if (DH(e, Ad)) n = dd;
78566
- else if (DH(e, Dd)) n = 8;
78567
- else if (DH(e, jd)) throw Error("length of Z axis is undefined");
78813
+ if (PH(e, Ad)) n = dd;
78814
+ else if (PH(e, Dd)) n = 8;
78815
+ else if (PH(e, jd)) throw Error("length of Z axis is undefined");
78568
78816
  else throw Error("Percent axis must be the X axis (RIGHT) or Y axis (UP)");
78569
78817
  return t / 100 * n;
78570
78818
  }
78571
78819
  //#endregion
78572
78820
  //#region src/utils/debug.ts
78573
- function kH(e, t = !1) {
78821
+ function IH(e, t = !1) {
78574
78822
  let n = [];
78575
78823
  for (let t of e) n.push(...t.getFamily());
78576
78824
  return t ? n.filter((e) => e instanceof V && e.hasOwnPoints()) : n;
78577
78825
  }
78578
- function AH(e, t) {
78579
- let n = [], r = new Set(kH(t)), i = (e, t) => {
78826
+ function LH(e, t) {
78827
+ let n = [], r = new Set(IH(t)), i = (e, t) => {
78580
78828
  for (let r of e) {
78581
78829
  if (t.has(r)) continue;
78582
78830
  let e = new Set(r.getFamily().filter((e) => t.has(e)));
@@ -78585,14 +78833,14 @@ function AH(e, t) {
78585
78833
  };
78586
78834
  return i(e, r), n;
78587
78835
  }
78588
- function jH(e, t = {}) {
78836
+ function RH(e, t = {}) {
78589
78837
  let { labelHeight: n = .15 } = t, r = new Nh();
78590
78838
  return e.children.forEach((e, t) => {
78591
78839
  let i = new qj({ value: t });
78592
78840
  i.setHeight(n), i.moveTo(e), r.add(i);
78593
78841
  }), r;
78594
78842
  }
78595
- function MH(e, t = 0) {
78843
+ function zH(e, t = 0) {
78596
78844
  let n = [], r = (e, t) => {
78597
78845
  n.push(" ".repeat(t) + `${e.constructor.name} ${e.id}`);
78598
78846
  for (let n of e.children) r(n, t + 1);
@@ -78603,8 +78851,8 @@ function MH(e, t = 0) {
78603
78851
  }
78604
78852
  //#endregion
78605
78853
  //#region src/utils/spaceOps.ts
78606
- var NH = 2 * Math.PI;
78607
- function PH(e) {
78854
+ var BH = 2 * Math.PI;
78855
+ function VH(e) {
78608
78856
  let t = e.length, n = e[0].length, r = [];
78609
78857
  for (let i = 0; i < n; i++) {
78610
78858
  let n = [];
@@ -78613,20 +78861,20 @@ function PH(e) {
78613
78861
  }
78614
78862
  return r;
78615
78863
  }
78616
- function FH(e, t) {
78864
+ function HH(e, t) {
78617
78865
  return e.map((e) => e.reduce((e, n, r) => e + n * (t[r] ?? 0), 0));
78618
78866
  }
78619
- function IH(e) {
78867
+ function UH(e) {
78620
78868
  return e.reduce((e, t) => e + t * t, 0);
78621
78869
  }
78622
- function LH(e, t) {
78870
+ function WH(e, t) {
78623
78871
  return e[0] * t[1] - e[1] * t[0];
78624
78872
  }
78625
- function RH(e, t) {
78626
- let n = Math.sqrt(IH(e));
78873
+ function GH(e, t) {
78874
+ let n = Math.sqrt(UH(e));
78627
78875
  return n > 0 ? e.map((e) => e / n) : t ?? e.map(() => 0);
78628
78876
  }
78629
- function zH(...e) {
78877
+ function KH(...e) {
78630
78878
  if (e.length === 0) return [
78631
78879
  1,
78632
78880
  0,
@@ -78645,8 +78893,8 @@ function zH(...e) {
78645
78893
  }
78646
78894
  return t;
78647
78895
  }
78648
- function BH(e, t, n = !1) {
78649
- let r = n ? t : RH(t), i = Math.sin(e / 2);
78896
+ function qH(e, t, n = !1) {
78897
+ let r = n ? t : GH(t), i = Math.sin(e / 2);
78650
78898
  return [
78651
78899
  Math.cos(e / 2),
78652
78900
  i * (r[0] ?? 0),
@@ -78654,19 +78902,19 @@ function BH(e, t, n = !1) {
78654
78902
  i * (r[2] ?? 0)
78655
78903
  ];
78656
78904
  }
78657
- function VH(e) {
78658
- let t = RH(e.slice(1), [
78905
+ function JH(e) {
78906
+ let t = GH(e.slice(1), [
78659
78907
  1,
78660
78908
  0,
78661
78909
  0
78662
78910
  ]), n = 2 * Math.acos(e[0]);
78663
- return n > NH / 2 && (n = NH - n, t = [
78911
+ return n > BH / 2 && (n = BH - n, t = [
78664
78912
  -t[0],
78665
78913
  -t[1],
78666
78914
  -t[2]
78667
78915
  ]), [n, t];
78668
78916
  }
78669
- function HH(e) {
78917
+ function YH(e) {
78670
78918
  return [
78671
78919
  e[0],
78672
78920
  -e[1],
@@ -78674,7 +78922,7 @@ function HH(e) {
78674
78922
  -e[3]
78675
78923
  ];
78676
78924
  }
78677
- function UH(e, t, n = !1) {
78925
+ function XH(e, t, n = !1) {
78678
78926
  let [r, i, a] = Zd(t), o = Math.cos(e), s = Math.sin(e), c = 1 - o, l = [
78679
78927
  [
78680
78928
  o + r * r * c,
@@ -78704,7 +78952,7 @@ function UH(e, t, n = !1) {
78704
78952
  ]
78705
78953
  ] : l;
78706
78954
  }
78707
- function WH(e) {
78955
+ function ZH(e) {
78708
78956
  let t = Math.cos(e), n = Math.sin(e);
78709
78957
  return [
78710
78958
  [
@@ -78724,23 +78972,23 @@ function WH(e) {
78724
78972
  ]
78725
78973
  ];
78726
78974
  }
78727
- function GH(e, t) {
78728
- return (t[0] ?? 0) === 0 && (t[1] ?? 0) === 0 ? PH(WH(e * Math.sign(t[2] ?? 0))) : PH(UH(e, t));
78975
+ function QH(e, t) {
78976
+ return (t[0] ?? 0) === 0 && (t[1] ?? 0) === 0 ? VH(ZH(e * Math.sign(t[2] ?? 0))) : VH(XH(e, t));
78729
78977
  }
78730
- function KH(e, t, n = jd) {
78978
+ function $H(e, t, n = jd) {
78731
78979
  if (e.length > 3) throw Error("Vector must have the correct dimensions.");
78732
78980
  let r = e.length === 2 ? [
78733
78981
  e[0],
78734
78982
  e[1],
78735
78983
  0
78736
- ] : e, i = FH(UH(t, n), r);
78984
+ ] : e, i = HH(XH(t, n), r);
78737
78985
  return [
78738
78986
  i[0],
78739
78987
  i[1],
78740
78988
  i[2]
78741
78989
  ];
78742
78990
  }
78743
- function qH(e) {
78991
+ function eU(e) {
78744
78992
  let t = Zd(e), n = Zd(Yd(t, Ad)), r = Yd(n, t);
78745
78993
  if (Xd(n) === 0) {
78746
78994
  r = Zd(Yd(Dd, t));
@@ -78751,27 +78999,27 @@ function qH(e) {
78751
78999
  -e[2]
78752
79000
  ];
78753
79001
  }
78754
- return PH([
79002
+ return VH([
78755
79003
  r,
78756
79004
  n,
78757
79005
  t
78758
79006
  ]);
78759
79007
  }
78760
- function JH(e) {
79008
+ function tU(e) {
78761
79009
  return Math.atan2(e[1] ?? 0, e[0] ?? 0);
78762
79010
  }
78763
- function YH(e, t) {
78764
- let n = RH(e), r = RH(t), i = n.map((e, t) => e - r[t]), a = n.map((e, t) => e + r[t]);
78765
- return 2 * Math.atan2(Math.sqrt(IH(i)), Math.sqrt(IH(a)));
79011
+ function nU(e, t) {
79012
+ let n = GH(e), r = GH(t), i = n.map((e, t) => e - r[t]), a = n.map((e, t) => e + r[t]);
79013
+ return 2 * Math.atan2(Math.sqrt(UH(i)), Math.sqrt(UH(a)));
78766
79014
  }
78767
- function XH(e, t, n = 1e-6) {
79015
+ function rU(e, t, n = 1e-6) {
78768
79016
  let r = Math.max(...e.map(Math.abs)), i = Math.max(...t.map(Math.abs)), a;
78769
79017
  if (r === 0) {
78770
79018
  if (i === 0) return Od;
78771
79019
  a = t.map((e) => e / i);
78772
79020
  } else if (i === 0) a = e.map((e) => e / r);
78773
79021
  else {
78774
- let o = e.map((e) => e / r), s = Yd(o, t.map((e) => e / i)), c = Math.sqrt(IH(s));
79022
+ let o = e.map((e) => e / r), s = Yd(o, t.map((e) => e / i)), c = Math.sqrt(UH(s));
78775
79023
  if (c > n) return [
78776
79024
  s[0] / c,
78777
79025
  s[1] / c,
@@ -78784,43 +79032,43 @@ function XH(e, t, n = 1e-6) {
78784
79032
  -a[0] * a[2],
78785
79033
  -a[1] * a[2],
78786
79034
  a[0] * a[0] + a[1] * a[1]
78787
- ], s = Math.sqrt(IH(o));
79035
+ ], s = Math.sqrt(UH(o));
78788
79036
  return [
78789
79037
  o[0] / s,
78790
79038
  o[1] / s,
78791
79039
  o[2] / s
78792
79040
  ];
78793
79041
  }
78794
- function ZH(e = 4, t = Ad) {
78795
- let n = NH / e, r = [];
78796
- for (let i = 0; i < e; i++) r.push(KH(t, i * n));
79042
+ function iU(e = 4, t = Ad) {
79043
+ let n = BH / e, r = [];
79044
+ for (let i = 0; i < e; i++) r.push($H(t, i * n));
78797
79045
  return r;
78798
79046
  }
78799
- function QH(e, t = {}) {
78800
- let n = t.radius ?? 1, r = t.startAngle ?? (e % 2 == 0 ? 0 : NH / 4);
78801
- return [ZH(e, KH([
79047
+ function aU(e, t = {}) {
79048
+ let n = t.radius ?? 1, r = t.startAngle ?? (e % 2 == 0 ? 0 : BH / 4);
79049
+ return [iU(e, $H([
78802
79050
  n,
78803
79051
  0,
78804
79052
  0
78805
79053
  ], r)), r];
78806
79054
  }
78807
- function $H(e) {
79055
+ function oU(e) {
78808
79056
  return [
78809
79057
  e.re,
78810
79058
  e.im,
78811
79059
  0
78812
79060
  ];
78813
79061
  }
78814
- function eU(e) {
79062
+ function sU(e) {
78815
79063
  return {
78816
79064
  re: e[0] ?? 0,
78817
79065
  im: e[1] ?? 0
78818
79066
  };
78819
79067
  }
78820
- function tU(e) {
78821
- return (t) => $H(e(eU(t)));
79068
+ function cU(e) {
79069
+ return (t) => oU(e(sU(t)));
78822
79070
  }
78823
- function nU(e) {
79071
+ function lU(e) {
78824
79072
  let t = [
78825
79073
  0,
78826
79074
  0,
@@ -78834,10 +79082,10 @@ function nU(e) {
78834
79082
  t[2] / n
78835
79083
  ];
78836
79084
  }
78837
- function rU(e, t) {
78838
- return nU([e, t]);
79085
+ function uU(e, t) {
79086
+ return lU([e, t]);
78839
79087
  }
78840
- function iU(e, t) {
79088
+ function dU(e, t) {
78841
79089
  for (let n of [e, t]) for (let e of n) if ((e[2] ?? 0) !== 0) throw Error("Coords must be in the xy-plane.");
78842
79090
  let n = (e) => Yd([
78843
79091
  e[0][0],
@@ -78855,7 +79103,7 @@ function iU(e, t) {
78855
79103
  0
78856
79104
  ];
78857
79105
  }
78858
- function aU(e, t, n, r, i = 1e-5) {
79106
+ function fU(e, t, n, r, i = 1e-5) {
78859
79107
  let a = [];
78860
79108
  for (let o = 0; o < e.length; o++) {
78861
79109
  let s = e[o], c = t[o], l = n[o], u = r[o], d = Yd(u, Yd(c, u)), f = c[0] * d[0] + c[1] * d[1] + c[2] * d[2], p = Math.max(f, i), m = [
@@ -78871,15 +79119,15 @@ function aU(e, t, n, r, i = 1e-5) {
78871
79119
  }
78872
79120
  return a;
78873
79121
  }
78874
- function oU(e) {
79122
+ function pU(e) {
78875
79123
  let t = 0;
78876
79124
  for (let n = 0; n < e.length - 1; n++) t += (e[n + 1][0] - e[n][0]) * (e[n][1] + e[n + 1][1]) / 2;
78877
79125
  return t;
78878
79126
  }
78879
- function sU(e) {
78880
- return oU(e) > 0 ? "CW" : "CCW";
79127
+ function mU(e) {
79128
+ return pU(e) > 0 ? "CW" : "CCW";
78881
79129
  }
78882
- function cU(e) {
79130
+ function hU(e) {
78883
79131
  let t = Xd(e);
78884
79132
  if (t === 0) return [
78885
79133
  0,
@@ -78893,7 +79141,7 @@ function cU(e) {
78893
79141
  n
78894
79142
  ];
78895
79143
  }
78896
- function lU(e) {
79144
+ function gU(e) {
78897
79145
  let [t, n, r] = e;
78898
79146
  return [
78899
79147
  t * Math.cos(n) * Math.sin(r),
@@ -78901,12 +79149,12 @@ function lU(e) {
78901
79149
  t * Math.cos(r)
78902
79150
  ];
78903
79151
  }
78904
- function uU(e, t = jd) {
79152
+ function _U(e, t = jd) {
78905
79153
  let n = e[0], r = e[1], i = Yd([
78906
79154
  n[0] - r[0],
78907
79155
  n[1] - r[1],
78908
79156
  n[2] - r[2]
78909
- ], t), a = rU(n, r);
79157
+ ], t), a = uU(n, r);
78910
79158
  return [[
78911
79159
  a[0] + i[0],
78912
79160
  a[1] + i[1],
@@ -78917,7 +79165,7 @@ function uU(e, t = jd) {
78917
79165
  a[2] - i[2]
78918
79166
  ]];
78919
79167
  }
78920
- function dU(e, t = 2) {
79168
+ function vU(e, t = 2) {
78921
79169
  let n = [];
78922
79170
  for (let r = 0; r < e; r++) {
78923
79171
  let i = [];
@@ -78926,41 +79174,41 @@ function dU(e, t = 2) {
78926
79174
  }
78927
79175
  return n;
78928
79176
  }
78929
- function fU(e) {
79177
+ function yU(e) {
78930
79178
  let t = 0;
78931
- for (let [n, r] of sH(e)) {
78932
- let e = ((JH(r) - JH(n) + Math.PI) % NH + NH) % NH - Math.PI;
79179
+ for (let [n, r] of mH(e)) {
79180
+ let e = ((tU(r) - tU(n) + Math.PI) % BH + BH) % BH - Math.PI;
78933
79181
  t += e;
78934
79182
  }
78935
- return t / NH;
79183
+ return t / BH;
78936
79184
  }
78937
79185
  //#endregion
78938
79186
  //#region src/utils/paths.ts
78939
- var pU = .01;
78940
- function mU(e, t, n) {
79187
+ var bU = .01;
79188
+ function xU(e, t, n) {
78941
79189
  return e.map((e, r) => e.map((e, i) => e + n * (t[r][i] - e)));
78942
79190
  }
78943
- function hU(e, t) {
79191
+ function SU(e, t) {
78944
79192
  return t.map((t) => t.reduce((t, n, r) => t + n * e[r], 0));
78945
79193
  }
78946
- function gU() {
78947
- return mU;
79194
+ function CU() {
79195
+ return xU;
78948
79196
  }
78949
- function _U(e, t, n = jd) {
78950
- let r = RH(n, jd), i = (e) => t[e] ?? t[0];
79197
+ function wU(e, t, n = jd) {
79198
+ let r = GH(n, jd), i = (e) => t[e] ?? t[0];
78951
79199
  return (t, n, a) => {
78952
- let o = UH(-e, r), s = UH(a * e, r);
79200
+ let o = XH(-e, r), s = XH(a * e, r);
78953
79201
  return t.map((e, t) => {
78954
- let r = i(t), c = hU(n[t].map((e, t) => e - r[t]), o).map((e, t) => e + r[t]);
78955
- return hU(e.map((e, t) => e + a * (c[t] - e)).map((e, t) => e - r[t]), s).map((e, t) => e + r[t]);
79202
+ let r = i(t), c = SU(n[t].map((e, t) => e - r[t]), o).map((e, t) => e + r[t]);
79203
+ return SU(e.map((e, t) => e + a * (c[t] - e)).map((e, t) => e - r[t]), s).map((e, t) => e + r[t]);
78956
79204
  });
78957
79205
  };
78958
79206
  }
78959
- function vU(e, t = jd) {
78960
- if (Math.abs(e) < pU) return gU();
78961
- let n = RH(t, jd);
79207
+ function TU(e, t = jd) {
79208
+ if (Math.abs(e) < bU) return CU();
79209
+ let n = GH(t, jd);
78962
79210
  return (t, r, i) => {
78963
- let a = UH(i * e, n);
79211
+ let a = XH(i * e, n);
78964
79212
  return t.map((t, i) => {
78965
79213
  let o = r[i].map((e, n) => e - t[n]), s = t.map((e, t) => e + .5 * o[t]);
78966
79214
  if (e !== Math.PI) {
@@ -78971,19 +79219,19 @@ function vU(e, t = jd) {
78971
79219
  ], i = 1 / Math.tan(e / 2);
78972
79220
  for (let e = 0; e < s.length; e++) s[e] += r[e] * i;
78973
79221
  }
78974
- return hU(t.map((e, t) => e - s[t]), a).map((e, t) => e + s[t]);
79222
+ return SU(t.map((e, t) => e - s[t]), a).map((e, t) => e + s[t]);
78975
79223
  });
78976
79224
  };
78977
79225
  }
78978
- function yU() {
78979
- return vU(-Math.PI);
79226
+ function EU() {
79227
+ return TU(-Math.PI);
78980
79228
  }
78981
- function bU() {
78982
- return vU(Math.PI);
79229
+ function DU() {
79230
+ return TU(Math.PI);
78983
79231
  }
78984
79232
  //#endregion
78985
79233
  //#region src/utils/simpleFunctions.ts
78986
- function xU(e, t, n, r, i = 1e-4) {
79234
+ function OU(e, t, n, r, i = 1e-4) {
78987
79235
  let a = n, o = r, s = (a + o) / 2;
78988
79236
  for (; Math.abs(o - a) > i;) {
78989
79237
  s = (a + o) / 2;
@@ -78996,7 +79244,7 @@ function xU(e, t, n, r, i = 1e-4) {
78996
79244
  }
78997
79245
  return s;
78998
79246
  }
78999
- function SU(e, t) {
79247
+ function kU(e, t) {
79000
79248
  if (t < 0 || t > e) return 0;
79001
79249
  let n = t;
79002
79250
  n > e - n && (n = e - n);
@@ -79004,30 +79252,30 @@ function SU(e, t) {
79004
79252
  for (let t = 0; t < n; t++) r = r * (e - t) / (t + 1);
79005
79253
  return Math.round(r);
79006
79254
  }
79007
- function CU(e, t, n) {
79255
+ function AU(e, t, n) {
79008
79256
  return e < t ? t : e > n ? n : e;
79009
79257
  }
79010
- function wU(e) {
79258
+ function jU(e) {
79011
79259
  return 1 / (1 + Math.exp(-e));
79012
79260
  }
79013
79261
  //#endregion
79014
79262
  //#region src/utils/bezier.ts
79015
- function TU(e, t, n) {
79263
+ function MU(e, t, n) {
79016
79264
  if (Array.isArray(e) && Array.isArray(t)) return e.map((e, r) => (1 - n) * e + n * t[r]);
79017
79265
  if (typeof e == "number" && typeof t == "number") return (1 - n) * e + n * t;
79018
79266
  throw Error("interpolate: start and end must both be numbers or both be arrays");
79019
79267
  }
79020
- function EU(e, t) {
79268
+ function NU(e, t) {
79021
79269
  if (Array.isArray(e) && Array.isArray(t)) return e.map((e, n) => (e + t[n]) / 2);
79022
79270
  if (typeof e == "number" && typeof t == "number") return (e + t) / 2;
79023
79271
  throw Error("mid: start and end must both be numbers or both be arrays");
79024
79272
  }
79025
- function DU(e, t, n) {
79273
+ function PU(e, t, n) {
79026
79274
  if (Array.isArray(e) && Array.isArray(t) && Array.isArray(n)) return e.map((e, r) => (n[r] - e) / (t[r] - e));
79027
79275
  if (typeof e == "number" && typeof t == "number" && typeof n == "number") return (n - e) / (t - e);
79028
79276
  throw Error("inverse_interpolate: start, end and value must all be numbers or all be arrays");
79029
79277
  }
79030
- function OU(e, t, n, r, i) {
79278
+ function FU(e, t, n, r, i) {
79031
79279
  let a = r - n;
79032
79280
  if (Array.isArray(i)) return i.map((r) => {
79033
79281
  let i = (r - n) / a;
@@ -79036,7 +79284,7 @@ function OU(e, t, n, r, i) {
79036
79284
  let o = (i - n) / a;
79037
79285
  return (1 - o) * e + o * t;
79038
79286
  }
79039
- function kU(e, t) {
79287
+ function IU(e, t) {
79040
79288
  if (e.length === 0) return 0;
79041
79289
  let n = e.slice();
79042
79290
  for (; n.length > 1;) {
@@ -79046,7 +79294,7 @@ function kU(e, t) {
79046
79294
  }
79047
79295
  return n[0];
79048
79296
  }
79049
- function AU(e, t) {
79297
+ function LU(e, t) {
79050
79298
  if (e.length === 0) return [];
79051
79299
  let n = e.map((e) => e.slice());
79052
79300
  for (; n.length > 1;) {
@@ -79056,15 +79304,15 @@ function AU(e, t) {
79056
79304
  }
79057
79305
  return n[0];
79058
79306
  }
79059
- function jU(e) {
79307
+ function RU(e) {
79060
79308
  if (e.length > 0 && Array.isArray(e[0])) {
79061
79309
  let t = e.filter((e) => Array.isArray(e));
79062
- return (e) => AU(t, e);
79310
+ return (e) => LU(t, e);
79063
79311
  }
79064
79312
  let t = e.filter((e) => typeof e == "number");
79065
- return (e) => kU(t, e);
79313
+ return (e) => IU(t, e);
79066
79314
  }
79067
- function MU(e, t) {
79315
+ function zU(e, t) {
79068
79316
  let n = e.length, r = e.map((e) => e.slice()), i = Array(n);
79069
79317
  i[0] = e[0].slice();
79070
79318
  for (let e = 1; e < n; e++) {
@@ -79073,7 +79321,7 @@ function MU(e, t) {
79073
79321
  }
79074
79322
  return [...i, ...r];
79075
79323
  }
79076
- function NU(e, t) {
79324
+ function BU(e, t) {
79077
79325
  if (t <= 1) return e.map((e) => e.slice());
79078
79326
  let n = [];
79079
79327
  for (let r = 0; r < t; r++) {
@@ -79082,7 +79330,7 @@ function NU(e, t) {
79082
79330
  }
79083
79331
  return n;
79084
79332
  }
79085
- function PU(e, t) {
79333
+ function VU(e, t) {
79086
79334
  let n = e.length;
79087
79335
  if (n === 0) return [];
79088
79336
  let r = e[0].length, i = [];
@@ -79093,12 +79341,12 @@ function PU(e, t) {
79093
79341
  for (let t = 0; t < n; t++) {
79094
79342
  let n = a[t];
79095
79343
  if (n <= 0) continue;
79096
- let i = NU(e[t], n);
79344
+ let i = BU(e[t], n);
79097
79345
  for (let e = 0; e < n; e++) o.push(i.slice(e * r, e * r + r));
79098
79346
  }
79099
79347
  return o;
79100
79348
  }
79101
- function FU(e) {
79349
+ function HU(e) {
79102
79350
  let t = e[0], n = e[e.length - 1];
79103
79351
  for (let e = 0; e < 3; e++) {
79104
79352
  let r = t[e] ?? 0, i = n[e] ?? 0, a = 1e-8 + 1e-5 * Math.abs(r);
@@ -79106,43 +79354,43 @@ function FU(e) {
79106
79354
  }
79107
79355
  return !0;
79108
79356
  }
79109
- function IU(e, t) {
79357
+ function UU(e, t) {
79110
79358
  return {
79111
79359
  re: e.re + t.re,
79112
79360
  im: e.im + t.im
79113
79361
  };
79114
79362
  }
79115
- function LU(e, t) {
79363
+ function WU(e, t) {
79116
79364
  return {
79117
79365
  re: e.re - t.re,
79118
79366
  im: e.im - t.im
79119
79367
  };
79120
79368
  }
79121
- function RU(e, t) {
79369
+ function GU(e, t) {
79122
79370
  return {
79123
79371
  re: e.re * t.re - e.im * t.im,
79124
79372
  im: e.re * t.im + e.im * t.re
79125
79373
  };
79126
79374
  }
79127
- function zU(e, t) {
79375
+ function KU(e, t) {
79128
79376
  let n = t.re * t.re + t.im * t.im;
79129
79377
  return {
79130
79378
  re: (e.re * t.re + e.im * t.im) / n,
79131
79379
  im: (e.im * t.re - e.re * t.im) / n
79132
79380
  };
79133
79381
  }
79134
- function BU(e, t) {
79382
+ function qU(e, t) {
79135
79383
  let n = {
79136
79384
  re: e[e.length - 1],
79137
79385
  im: 0
79138
79386
  };
79139
- for (let r = e.length - 2; r >= 0; r--) n = IU(RU(n, t), {
79387
+ for (let r = e.length - 2; r >= 0; r--) n = UU(GU(n, t), {
79140
79388
  re: e[r],
79141
79389
  im: 0
79142
79390
  });
79143
79391
  return n;
79144
79392
  }
79145
- function VU(e) {
79393
+ function JU(e) {
79146
79394
  let t = e.slice();
79147
79395
  for (; t.length > 1 && Math.abs(t[t.length - 1]) < 1e-14;) t.pop();
79148
79396
  let n = t.length - 1;
@@ -79157,17 +79405,17 @@ function VU(e) {
79157
79405
  for (let e = 0; e < n; e++) a.push({
79158
79406
  re: s.re,
79159
79407
  im: s.im
79160
- }), s = RU(s, o);
79408
+ }), s = GU(s, o);
79161
79409
  for (let e = 0; e < 200; e++) {
79162
79410
  let e = 0;
79163
79411
  for (let t = 0; t < n; t++) {
79164
- let r = BU(i, a[t]), o = {
79412
+ let r = qU(i, a[t]), o = {
79165
79413
  re: 1,
79166
79414
  im: 0
79167
79415
  };
79168
- for (let e = 0; e < n; e++) e !== t && (o = RU(o, LU(a[t], a[e])));
79169
- let s = zU(r, o);
79170
- a[t] = LU(a[t], s);
79416
+ for (let e = 0; e < n; e++) e !== t && (o = GU(o, WU(a[t], a[e])));
79417
+ let s = KU(r, o);
79418
+ a[t] = WU(a[t], s);
79171
79419
  let c = Math.hypot(s.re, s.im);
79172
79420
  c > e && (e = c);
79173
79421
  }
@@ -79175,98 +79423,98 @@ function VU(e) {
79175
79423
  }
79176
79424
  return a;
79177
79425
  }
79178
- function HU(e, t) {
79426
+ function YU(e, t) {
79179
79427
  if (t < 0 || t > e) return 0;
79180
79428
  let n = 1;
79181
79429
  for (let r = 0; r < t; r++) n = n * (e - r) / (r + 1);
79182
79430
  return Math.round(n);
79183
79431
  }
79184
- function UU(e, t) {
79432
+ function XU(e, t) {
79185
79433
  let n = 10 ** t;
79186
79434
  return Math.round(e * n) / n;
79187
79435
  }
79188
- function WU(e, t, n) {
79436
+ function ZU(e, t, n) {
79189
79437
  let r = .5 * 10 ** -n, i = [];
79190
79438
  for (let n of e) t.some((e) => Math.abs(n - e) <= r) && !i.some((e) => Math.abs(n - e) <= r) && i.push(n);
79191
79439
  return i;
79192
79440
  }
79193
- function GU(e, t, n = 1e-6) {
79441
+ function QU(e, t, n = 1e-6) {
79194
79442
  for (let n of t) if (n.length !== e.length) throw Error("proportions_along_bezier_curve_for_point: point and control points have different shapes");
79195
79443
  let r = t.length - 1, i = Math.round(Math.log10(1 / n)), a = [];
79196
79444
  for (let n = 0; n < e.length; n++) {
79197
79445
  let o = e[n], s = t.map((e) => e[n]), c = [];
79198
79446
  for (let e = r; e >= 0; e--) {
79199
- let t = HU(r, e), n = 1, i = 0;
79447
+ let t = YU(r, e), n = 1, i = 0;
79200
79448
  for (let t = e; t >= 0; t--) {
79201
- let r = HU(e, t) * n * s[t];
79449
+ let r = YU(e, t) * n * s[t];
79202
79450
  e === 0 && (r -= o), i += r, n *= -1;
79203
79451
  }
79204
79452
  c.push(t * i);
79205
79453
  }
79206
79454
  if (c.every((e) => e === 0)) continue;
79207
- let l = VU(c.slice().reverse()).filter((e) => Math.abs(e.im) < 1e-9).map((e) => UU(e.re, i));
79455
+ let l = JU(c.slice().reverse()).filter((e) => Math.abs(e.im) < 1e-9).map((e) => XU(e.re, i));
79208
79456
  a.push(l);
79209
79457
  }
79210
79458
  if (a.length === 0) return [];
79211
79459
  let o = a[0];
79212
- for (let e = 1; e < a.length; e++) o = WU(o, a[e], i);
79460
+ for (let e = 1; e < a.length; e++) o = ZU(o, a[e], i);
79213
79461
  return o.filter((e) => e >= 0 && e <= 1);
79214
79462
  }
79215
- function KU(e, t, n = 1e-6) {
79216
- return GU(e, t, n).length > 0;
79463
+ function $U(e, t, n = 1e-6) {
79464
+ return QU(e, t, n).length > 0;
79217
79465
  }
79218
79466
  //#endregion
79219
79467
  //#region src/mobjects/three-d/threeDVmobUtils.ts
79220
- function qU(e) {
79468
+ function eW(e) {
79221
79469
  return [
79222
79470
  e[0],
79223
79471
  e[1],
79224
79472
  e[2]
79225
79473
  ];
79226
79474
  }
79227
- function JU(e) {
79475
+ function tW(e) {
79228
79476
  return e.filter((e, t) => t % 3 == 0);
79229
79477
  }
79230
- function YU(e) {
79231
- return [QU(e), $U(e)];
79478
+ function nW(e) {
79479
+ return [aW(e), oW(e)];
79232
79480
  }
79233
- function XU(e) {
79481
+ function rW(e) {
79234
79482
  return 0;
79235
79483
  }
79236
- function ZU(e) {
79484
+ function iW(e) {
79237
79485
  return Math.floor((e.getPoints().length - 1) / 6) * 3;
79238
79486
  }
79239
- function QU(e) {
79487
+ function aW(e) {
79240
79488
  let t = e.getPoints();
79241
- return t.length === 0 ? [...Nd] : qU(t[XU(e)]);
79489
+ return t.length === 0 ? [...Nd] : eW(t[rW(e)]);
79242
79490
  }
79243
- function $U(e) {
79491
+ function oW(e) {
79244
79492
  let t = e.getPoints();
79245
- return t.length === 0 ? [...Nd] : qU(t[ZU(e)]);
79493
+ return t.length === 0 ? [...Nd] : eW(t[iW(e)]);
79246
79494
  }
79247
- function eW(e, t) {
79495
+ function sW(e, t) {
79248
79496
  let n = e.getPoints(), r = n.length;
79249
- if (JU(n).length <= 2) return [...Dd];
79250
- let i = t, a = i > 2 ? i - 3 : r - 4, o = XH(n[i < r - 3 ? i + 3 : 3].map((e, t) => e - n[i][t]), n[a].map((e, t) => e - n[i][t]));
79497
+ if (tW(n).length <= 2) return [...Dd];
79498
+ let i = t, a = i > 2 ? i - 3 : r - 4, o = rU(n[i < r - 3 ? i + 3 : 3].map((e, t) => e - n[i][t]), n[a].map((e, t) => e - n[i][t]));
79251
79499
  return Math.hypot(...o) === 0 ? [...Dd] : o;
79252
79500
  }
79253
- function tW(e) {
79254
- return eW(e, XU(e));
79501
+ function cW(e) {
79502
+ return sW(e, rW(e));
79255
79503
  }
79256
- function nW(e) {
79257
- return eW(e, ZU(e));
79504
+ function lW(e) {
79505
+ return sW(e, iW(e));
79258
79506
  }
79259
79507
  //#endregion
79260
79508
  //#region src/core/SpecialThreeDScene.ts
79261
- var rW = 70 * ju, iW = -110 * ju, aW = 2, oW = 48, sW = class extends WE {
79509
+ var uW = 70 * ju, dW = -110 * ju, fW = 2, pW = 48, mW = class extends WE {
79262
79510
  cutAxesAtRadius;
79263
79511
  _threeDAxesConfig;
79264
79512
  _sphereConfig;
79265
79513
  _defaultAngledCameraPosition;
79266
79514
  constructor(e, t = {}) {
79267
79515
  let { cutAxesAtRadius: n = !0, threeDAxesConfig: r = {}, sphereConfig: i = {}, defaultAngledCameraPosition: a = {
79268
- phi: rW,
79269
- theta: iW
79516
+ phi: uW,
79517
+ theta: dW
79270
79518
  }, phi: o = a.phi, theta: s = a.theta, ...c } = t;
79271
79519
  super(e, {
79272
79520
  ...c,
@@ -79296,8 +79544,8 @@ var rW = 70 * ju, iW = -110 * ju, aW = 2, oW = 48, sW = class extends WE {
79296
79544
  }
79297
79545
  getDefaultSphereConfig() {
79298
79546
  return {
79299
- radius: aW,
79300
- resolution: oW
79547
+ radius: fW,
79548
+ resolution: pW
79301
79549
  };
79302
79550
  }
79303
79551
  getAxes() {
@@ -79323,36 +79571,36 @@ var rW = 70 * ju, iW = -110 * ju, aW = 2, oW = 48, sW = class extends WE {
79323
79571
  };
79324
79572
  //#endregion
79325
79573
  //#region src/mobjects/text/registerFont.ts
79326
- function cW(e, t) {
79574
+ function hW(e, t) {
79327
79575
  if (typeof document > "u" || typeof FontFace > "u" || document.fonts === void 0) return !1;
79328
79576
  let n = typeof t == "string" && !/^\s*(url|local)\s*\(/i.test(t) ? `url("${t}")` : t, r = new FontFace(e, n);
79329
79577
  return document.fonts.add(r), !0;
79330
79578
  }
79331
79579
  //#endregion
79332
79580
  //#region src/integrations/webcomponent.ts
79333
- var lW = 800, uW = 450, dW = { importModule: (e) => import(
79581
+ var gW = 800, _W = 450, vW = { importModule: (e) => import(
79334
79582
  /* @vite-ignore */
79335
79583
  e
79336
79584
  ) };
79337
- function fW(e) {
79585
+ function yW(e) {
79338
79586
  return typeof e.togglePlayPause == "function";
79339
79587
  }
79340
- function pW(e) {
79588
+ function bW(e) {
79341
79589
  try {
79342
79590
  e.dispose();
79343
79591
  } catch (e) {
79344
79592
  Gf.error("<manim-scene> failed to dispose instance:", e);
79345
79593
  }
79346
79594
  }
79347
- function mW(e, t) {
79595
+ function xW(e, t) {
79348
79596
  let n = e?.trim();
79349
79597
  return n ? /^\d+(\.\d+)?$/.test(n) ? `${n}px` : n : `${t}px`;
79350
79598
  }
79351
- function hW(e) {
79599
+ function SW(e) {
79352
79600
  let t = e?.trim();
79353
79601
  return !t || !/^\d+(\.\d+)?$/.test(t) ? null : Number(t);
79354
79602
  }
79355
- var gW = typeof HTMLElement < "u" ? HTMLElement : class {}, _W = class extends gW {
79603
+ var CW = typeof HTMLElement < "u" ? HTMLElement : class {}, wW = class extends CW {
79356
79604
  static get observedAttributes() {
79357
79605
  return [
79358
79606
  "width",
@@ -79398,7 +79646,7 @@ var gW = typeof HTMLElement < "u" ? HTMLElement : class {}, _W = class extends g
79398
79646
  }
79399
79647
  _applyContainerStyle() {
79400
79648
  let e = this._container;
79401
- e && (e.style.width = mW(this.getAttribute("width"), lW), e.style.height = mW(this.getAttribute("height"), uW), e.style.position = "relative", e.style.overflow = "hidden", e.style.background = this.getAttribute("background") ?? "");
79649
+ e && (e.style.width = xW(this.getAttribute("width"), gW), e.style.height = xW(this.getAttribute("height"), _W), e.style.position = "relative", e.style.overflow = "hidden", e.style.background = this.getAttribute("background") ?? "");
79402
79650
  }
79403
79651
  _mount() {
79404
79652
  return this._mountPromise = this._doMount(), this._mountPromise;
@@ -79417,7 +79665,7 @@ var gW = typeof HTMLElement < "u" ? HTMLElement : class {}, _W = class extends g
79417
79665
  return;
79418
79666
  }
79419
79667
  if (e !== this._loadToken) {
79420
- pW(r);
79668
+ bW(r);
79421
79669
  return;
79422
79670
  }
79423
79671
  this._instance = r, this._applyPlaybackOptions();
@@ -79426,7 +79674,7 @@ var gW = typeof HTMLElement < "u" ? HTMLElement : class {}, _W = class extends g
79426
79674
  if (this._sceneFactory) return this._sceneFactory;
79427
79675
  let t = this.getAttribute("src");
79428
79676
  if (!t) return null;
79429
- let n = await dW.importModule(t);
79677
+ let n = await vW.importModule(t);
79430
79678
  if (e !== this._loadToken) return null;
79431
79679
  let r = n.default;
79432
79680
  return typeof r == "function" ? r : (Gf.error(`<manim-scene> module "${t}" has no default-export factory function.`), null);
@@ -79434,19 +79682,19 @@ var gW = typeof HTMLElement < "u" ? HTMLElement : class {}, _W = class extends g
79434
79682
  _applyPlaybackOptions() {
79435
79683
  let e = this._instance;
79436
79684
  if (!e) return;
79437
- let t = fW(e);
79685
+ let t = yW(e);
79438
79686
  t && (e.loop = this.hasAttribute("loop")), t || this._syncSceneControls(e), this.hasAttribute("autoplay") && !e.isPlaying && (t ? e.play() : e.resume());
79439
79687
  }
79440
79688
  _syncSceneControls(e) {
79441
79689
  let t = this.hasAttribute("controls");
79442
- t && !this._controls ? this._controls = new cB(e) : !t && this._controls && (this._controls.dispose(), this._controls = null);
79690
+ t && !this._controls ? this._controls = new hB(e) : !t && this._controls && (this._controls.dispose(), this._controls = null);
79443
79691
  }
79444
79692
  _resizeInstance() {
79445
79693
  let e = this._instance;
79446
79694
  if (!e) return;
79447
- let t = hW(this.getAttribute("width")), n = hW(this.getAttribute("height"));
79695
+ let t = SW(this.getAttribute("width")), n = SW(this.getAttribute("height"));
79448
79696
  if (t === null || n === null) return;
79449
- let r = fW(e) ? e.scene : e;
79697
+ let r = yW(e) ? e.scene : e;
79450
79698
  try {
79451
79699
  r.resize(t, n);
79452
79700
  } catch (e) {
@@ -79462,78 +79710,78 @@ var gW = typeof HTMLElement < "u" ? HTMLElement : class {}, _W = class extends g
79462
79710
  }
79463
79711
  this._controls = null;
79464
79712
  }
79465
- this._instance &&= (pW(this._instance), null);
79713
+ this._instance &&= (bW(this._instance), null);
79466
79714
  }
79467
79715
  _clearContainerChildren() {
79468
79716
  let e = this._container;
79469
79717
  if (e) for (; e.firstChild;) e.removeChild(e.firstChild);
79470
79718
  }
79471
79719
  };
79472
- function vW(e = "manim-scene") {
79473
- typeof customElements > "u" || typeof HTMLElement > "u" || customElements.get(e) || customElements.define(e, _W);
79720
+ function TW(e = "manim-scene") {
79721
+ typeof customElements > "u" || typeof HTMLElement > "u" || customElements.get(e) || customElements.define(e, wW);
79474
79722
  }
79475
79723
  //#endregion
79476
79724
  //#region src/serialization/registry.ts
79477
- var yW = /* @__PURE__ */ new Map();
79478
- function bW(e, t) {
79479
- yW.set(e, t);
79725
+ var EW = /* @__PURE__ */ new Map();
79726
+ function DW(e, t) {
79727
+ EW.set(e, t);
79480
79728
  }
79481
- function xW(e) {
79482
- yW.delete(e);
79729
+ function OW(e) {
79730
+ EW.delete(e);
79483
79731
  }
79484
- function SW(e) {
79485
- return yW.get(e);
79732
+ function kW(e) {
79733
+ return EW.get(e);
79486
79734
  }
79487
- function CW() {
79488
- return [...yW.keys()].sort();
79735
+ function AW() {
79736
+ return [...EW.keys()].sort();
79489
79737
  }
79490
79738
  //#endregion
79491
79739
  //#region src/serialization/props.ts
79492
- function wW(e, t) {
79740
+ function jW(e, t) {
79493
79741
  return typeof e == "number" && Number.isFinite(e) ? e : t;
79494
79742
  }
79495
- function TW(e, t) {
79743
+ function MW(e, t) {
79496
79744
  return typeof e == "string" ? e : t;
79497
79745
  }
79498
- function EW(e, t) {
79746
+ function NW(e, t) {
79499
79747
  return typeof e == "boolean" ? e : t;
79500
79748
  }
79501
- function DW(e) {
79749
+ function PW(e) {
79502
79750
  return typeof e == "string" ? e : void 0;
79503
79751
  }
79504
- function OW(e) {
79752
+ function FW(e) {
79505
79753
  return Array.isArray(e) && e.length === 3 && e.every((e) => typeof e == "number" && Number.isFinite(e));
79506
79754
  }
79507
- function kW(e, t) {
79508
- return OW(e) ? [
79755
+ function IW(e, t) {
79756
+ return FW(e) ? [
79509
79757
  e[0],
79510
79758
  e[1],
79511
79759
  e[2]
79512
79760
  ] : t;
79513
79761
  }
79514
- function AW(e) {
79762
+ function LW(e) {
79515
79763
  if (!Array.isArray(e)) return [];
79516
79764
  let t = [];
79517
- for (let n of e) OW(n) && t.push([
79765
+ for (let n of e) FW(n) && t.push([
79518
79766
  n[0],
79519
79767
  n[1],
79520
79768
  n[2]
79521
79769
  ]);
79522
79770
  return t;
79523
79771
  }
79524
- function jW(e) {
79772
+ function RW(e) {
79525
79773
  return typeof e == "object" && !!e && !Array.isArray(e);
79526
79774
  }
79527
79775
  //#endregion
79528
79776
  //#region src/serialization/defaults.ts
79529
- function MW(e) {
79530
- return typeof e == "number" && Number.isFinite(e) ? e : TW(e, "normal");
79777
+ function zW(e) {
79778
+ return typeof e == "number" && Number.isFinite(e) ? e : MW(e, "normal");
79531
79779
  }
79532
- function NW(e) {
79780
+ function BW(e) {
79533
79781
  return e === "left" || e === "right" ? e : "center";
79534
79782
  }
79535
- function PW() {
79536
- bW("Circle", {
79783
+ function VW() {
79784
+ DW("Circle", {
79537
79785
  serialize: (e) => {
79538
79786
  let t = e;
79539
79787
  return {
@@ -79542,10 +79790,10 @@ function PW() {
79542
79790
  };
79543
79791
  },
79544
79792
  deserialize: (e) => new fO({
79545
- radius: wW(e.radius, 1),
79546
- numPoints: wW(e.numPoints, 64)
79793
+ radius: jW(e.radius, 1),
79794
+ numPoints: jW(e.numPoints, 64)
79547
79795
  })
79548
- }), bW("Rectangle", {
79796
+ }), DW("Rectangle", {
79549
79797
  serialize: (e) => {
79550
79798
  let t = e;
79551
79799
  return {
@@ -79554,13 +79802,13 @@ function PW() {
79554
79802
  };
79555
79803
  },
79556
79804
  deserialize: (e) => new GE({
79557
- width: wW(e.width, 2),
79558
- height: wW(e.height, 1)
79805
+ width: jW(e.width, 2),
79806
+ height: jW(e.height, 1)
79559
79807
  })
79560
- }), bW("Square", {
79808
+ }), DW("Square", {
79561
79809
  serialize: (e) => ({ sideLength: e._width }),
79562
- deserialize: (e) => new KE({ sideLength: wW(e.sideLength, 2) })
79563
- }), bW("Line", {
79810
+ deserialize: (e) => new KE({ sideLength: jW(e.sideLength, 2) })
79811
+ }), DW("Line", {
79564
79812
  serialize: (e) => {
79565
79813
  let t = e;
79566
79814
  return {
@@ -79569,27 +79817,27 @@ function PW() {
79569
79817
  };
79570
79818
  },
79571
79819
  deserialize: (e) => new rD({
79572
- start: kW(e.start, [
79820
+ start: IW(e.start, [
79573
79821
  0,
79574
79822
  0,
79575
79823
  0
79576
79824
  ]),
79577
- end: kW(e.end, [
79825
+ end: IW(e.end, [
79578
79826
  1,
79579
79827
  0,
79580
79828
  0
79581
79829
  ])
79582
79830
  })
79583
- }), bW("Dot", {
79831
+ }), DW("Dot", {
79584
79832
  serialize: (e) => ({ radius: e._radius }),
79585
- deserialize: (e) => new IO({ radius: wW(e.radius, .08) })
79586
- }), bW("Polygon", {
79833
+ deserialize: (e) => new IO({ radius: jW(e.radius, .08) })
79834
+ }), DW("Polygon", {
79587
79835
  serialize: (e) => ({
79588
79836
  vertices: e.getVertices().map((e) => [...e]),
79589
79837
  closed: e._closed
79590
79838
  }),
79591
79839
  deserialize: (e) => {
79592
- let t = AW(e.vertices);
79840
+ let t = LW(e.vertices);
79593
79841
  return new pO({
79594
79842
  vertices: t.length >= 2 ? t : [[
79595
79843
  0,
@@ -79600,16 +79848,16 @@ function PW() {
79600
79848
  0,
79601
79849
  0
79602
79850
  ]],
79603
- closed: EW(e.closed, !0)
79851
+ closed: NW(e.closed, !0)
79604
79852
  });
79605
79853
  }
79606
- }), bW("Group", {
79854
+ }), DW("Group", {
79607
79855
  serialize: () => ({}),
79608
79856
  deserialize: () => new PT()
79609
- }), bW("VGroup", {
79857
+ }), DW("VGroup", {
79610
79858
  serialize: () => ({}),
79611
79859
  deserialize: () => new Nh()
79612
- }), bW("Text", {
79860
+ }), DW("Text", {
79613
79861
  serialize: (e) => {
79614
79862
  let t = e;
79615
79863
  return {
@@ -79624,16 +79872,16 @@ function PW() {
79624
79872
  };
79625
79873
  },
79626
79874
  deserialize: (e) => new Uw({
79627
- text: TW(e.text, ""),
79628
- fontSize: wW(e.fontSize, 48),
79629
- fontFamily: TW(e.fontFamily, "CMU Serif, Georgia, Times New Roman, serif"),
79630
- fontWeight: MW(e.fontWeight),
79631
- fontStyle: TW(e.fontStyle, "normal"),
79632
- lineHeight: wW(e.lineHeight, 1.2),
79633
- letterSpacing: wW(e.letterSpacing, 0),
79634
- textAlign: NW(e.textAlign)
79875
+ text: MW(e.text, ""),
79876
+ fontSize: jW(e.fontSize, 48),
79877
+ fontFamily: MW(e.fontFamily, "CMU Serif, Georgia, Times New Roman, serif"),
79878
+ fontWeight: zW(e.fontWeight),
79879
+ fontStyle: MW(e.fontStyle, "normal"),
79880
+ lineHeight: jW(e.lineHeight, 1.2),
79881
+ letterSpacing: jW(e.letterSpacing, 0),
79882
+ textAlign: BW(e.textAlign)
79635
79883
  })
79636
- }), bW("MathTex", {
79884
+ }), DW("MathTex", {
79637
79885
  serialize: (e) => {
79638
79886
  let t = e;
79639
79887
  return {
@@ -79643,15 +79891,15 @@ function PW() {
79643
79891
  };
79644
79892
  },
79645
79893
  deserialize: (e) => new kj({
79646
- latex: TW(e.latex, ""),
79647
- fontSize: wW(e.fontSize, 1),
79648
- displayMode: EW(e.displayMode, !0)
79894
+ latex: MW(e.latex, ""),
79895
+ fontSize: jW(e.fontSize, 1),
79896
+ displayMode: NW(e.displayMode, !0)
79649
79897
  })
79650
79898
  });
79651
79899
  }
79652
79900
  //#endregion
79653
79901
  //#region src/serialization/types.ts
79654
- var FW = "manim-web-scene", IW = {
79902
+ var HW = "manim-web-scene", UW = {
79655
79903
  position: [
79656
79904
  0,
79657
79905
  0,
@@ -79668,7 +79916,7 @@ var FW = "manim-web-scene", IW = {
79668
79916
  1
79669
79917
  ]
79670
79918
  };
79671
- function LW(e) {
79919
+ function WW(e) {
79672
79920
  return {
79673
79921
  position: [
79674
79922
  e.position.x,
@@ -79687,67 +79935,67 @@ function LW(e) {
79687
79935
  ]
79688
79936
  };
79689
79937
  }
79690
- function RW(e) {
79938
+ function GW(e) {
79691
79939
  let t = {};
79692
79940
  return e.strokeColor !== void 0 && (t.strokeColor = e.strokeColor), e.fillColor !== void 0 && (t.fillColor = e.fillColor), typeof e.opacity == "number" && (t.strokeOpacity = e.opacity), typeof e.fillOpacity == "number" && (t.fillOpacity = e.fillOpacity), typeof e.strokeWidth == "number" && (t.strokeWidth = e.strokeWidth), t;
79693
79941
  }
79694
- function zW(e, t) {
79695
- let n = jW(t) ? t : {}, r = kW(n.position, IW.position), i = kW(n.rotation, IW.rotation), a = kW(n.scale, IW.scale);
79942
+ function KW(e, t) {
79943
+ let n = RW(t) ? t : {}, r = IW(n.position, UW.position), i = IW(n.rotation, UW.rotation), a = IW(n.scale, UW.scale);
79696
79944
  e.position.set(r[0], r[1], r[2]), e.rotation.set(i[0], i[1], i[2]), e.scaleVector.set(a[0], a[1], a[2]);
79697
79945
  }
79698
- function BW(e, t) {
79699
- let n = jW(t) ? t : {};
79946
+ function qW(e, t) {
79947
+ let n = RW(t) ? t : {};
79700
79948
  typeof n.strokeWidth == "number" && e.setStrokeWidth(n.strokeWidth), typeof n.strokeOpacity == "number" && e.setStrokeOpacity(n.strokeOpacity), typeof n.fillOpacity == "number" && e.setFillOpacity(n.fillOpacity);
79701
- let r = DW(n.strokeColor), i = DW(n.fillColor);
79949
+ let r = PW(n.strokeColor), i = PW(n.fillColor);
79702
79950
  r !== void 0 && (e.color = r), r !== void 0 && (e.strokeColor = r), i !== void 0 && (e.fillColor = i);
79703
79951
  }
79704
- function VW(e) {
79705
- let t = e.constructor.name, n = SW(t), r = {
79952
+ function JW(e) {
79953
+ let t = e.constructor.name, n = kW(t), r = {
79706
79954
  type: t,
79707
79955
  props: n ? n.serialize(e) : {},
79708
- transform: LW(e),
79709
- style: RW(e),
79710
- children: e.children.map(VW)
79956
+ transform: WW(e),
79957
+ style: GW(e),
79958
+ children: e.children.map(JW)
79711
79959
  };
79712
79960
  return n || (r.unknown = !0), r;
79713
79961
  }
79714
- function HW(e) {
79715
- if (!jW(e) || e.unknown === !0) return null;
79716
- let t = DW(e.type);
79962
+ function YW(e) {
79963
+ if (!RW(e) || e.unknown === !0) return null;
79964
+ let t = PW(e.type);
79717
79965
  if (t === void 0) return null;
79718
- let n = SW(t);
79966
+ let n = kW(t);
79719
79967
  if (!n) return null;
79720
- let r = jW(e.props) ? e.props : {}, i = n.deserialize(r);
79721
- if (zW(i, e.transform), BW(i, e.style), Array.isArray(e.children)) for (let t of e.children) {
79722
- let e = HW(t);
79968
+ let r = RW(e.props) ? e.props : {}, i = n.deserialize(r);
79969
+ if (KW(i, e.transform), qW(i, e.style), Array.isArray(e.children)) for (let t of e.children) {
79970
+ let e = YW(t);
79723
79971
  e && i.add(e);
79724
79972
  }
79725
79973
  return i;
79726
79974
  }
79727
- function UW(e) {
79975
+ function XW(e) {
79728
79976
  let t = [];
79729
- for (let n of e.mobjects) t.push(VW(n));
79977
+ for (let n of e.mobjects) t.push(JW(n));
79730
79978
  return {
79731
- format: FW,
79979
+ format: HW,
79732
79980
  version: 1,
79733
79981
  mobjects: t
79734
79982
  };
79735
79983
  }
79736
- function WW(e, t) {
79737
- if (!jW(e) || !Array.isArray(e.mobjects)) return [];
79984
+ function ZW(e, t) {
79985
+ if (!RW(e) || !Array.isArray(e.mobjects)) return [];
79738
79986
  let n = [];
79739
79987
  for (let r of e.mobjects) {
79740
- let e = HW(r);
79988
+ let e = YW(r);
79741
79989
  e && (t.add(e), n.push(e));
79742
79990
  }
79743
79991
  return n;
79744
79992
  }
79745
79993
  //#endregion
79746
79994
  //#region src/serialization/index.ts
79747
- PW();
79995
+ VW();
79748
79996
  //#endregion
79749
79997
  //#region src/mobjects/geo/geojson.ts
79750
- function GW(e) {
79998
+ function QW(e) {
79751
79999
  if (e.type === "Polygon") {
79752
80000
  let t = e.coordinates[0];
79753
80001
  return t ? [t] : [];
@@ -79761,26 +80009,26 @@ function GW(e) {
79761
80009
  }
79762
80010
  //#endregion
79763
80011
  //#region src/mobjects/geo/projections.ts
79764
- var KW = Math.PI / 180;
79765
- function qW(e = {}) {
79766
- let { radius: t = 1, centerLon: n = 0, centerLat: r = 0, standardParallel: i = 0 } = e, a = Math.cos(i * KW);
79767
- return ([e, i]) => [(e - n) * KW * t * a, (i - r) * KW * t];
80012
+ var $W = Math.PI / 180;
80013
+ function eG(e = {}) {
80014
+ let { radius: t = 1, centerLon: n = 0, centerLat: r = 0, standardParallel: i = 0 } = e, a = Math.cos(i * $W);
80015
+ return ([e, i]) => [(e - n) * $W * t * a, (i - r) * $W * t];
79768
80016
  }
79769
- function JW(e = {}) {
80017
+ function tG(e = {}) {
79770
80018
  let { radius: t = 1, centerLon: n = 0, maxLatitude: r = 85.05112878 } = e;
79771
80019
  return ([e, i]) => {
79772
- let a = Math.max(-r, Math.min(r, i)) * KW;
79773
- return [(e - n) * KW * t, t * Math.log(Math.tan(Math.PI / 4 + a / 2))];
80020
+ let a = Math.max(-r, Math.min(r, i)) * $W;
80021
+ return [(e - n) * $W * t, t * Math.log(Math.tan(Math.PI / 4 + a / 2))];
79774
80022
  };
79775
80023
  }
79776
80024
  //#endregion
79777
80025
  //#region src/mobjects/geo/colorScale.ts
79778
- var YW = ["#0d1b2a", "#4cc9f0"], XW = class {
80026
+ var nG = ["#0d1b2a", "#4cc9f0"], rG = class {
79779
80027
  _palette;
79780
80028
  _domain;
79781
80029
  constructor(e = {}) {
79782
- let { colors: t = YW, domain: n = [0, 1], samples: r = 256 } = e, i = Math.max(2, Math.floor(r));
79783
- this._palette = Sh(t.length > 0 ? t : YW, i), this._domain = [n[0], n[1]];
80030
+ let { colors: t = nG, domain: n = [0, 1], samples: r = 256 } = e, i = Math.max(2, Math.floor(r));
80031
+ this._palette = Sh(t.length > 0 ? t : nG, i), this._domain = [n[0], n[1]];
79784
80032
  }
79785
80033
  setDomainFromValues(e) {
79786
80034
  let t = Infinity, n = -Infinity;
@@ -79796,7 +80044,7 @@ var YW = ["#0d1b2a", "#4cc9f0"], XW = class {
79796
80044
  let a = Math.round(i * (this._palette.length - 1));
79797
80045
  return this._palette[a];
79798
80046
  }
79799
- }, ZW = class extends PT {
80047
+ }, iG = class extends PT {
79800
80048
  _projection;
79801
80049
  _colorScale;
79802
80050
  _regions = [];
@@ -79804,10 +80052,10 @@ var YW = ["#0d1b2a", "#4cc9f0"], XW = class {
79804
80052
  _regionPolygons = [];
79805
80053
  constructor(e) {
79806
80054
  super();
79807
- let { geojson: t, value: n, colorScale: r = ["#0d1b2a", "#4cc9f0"], domain: i, fillOpacity: a = 1, noDataColor: o = Sl, borderColor: s = "#1b263b", borderWidth: c = 1, projection: l = qW() } = e;
80055
+ let { geojson: t, value: n, colorScale: r = ["#0d1b2a", "#4cc9f0"], domain: i, fillOpacity: a = 1, noDataColor: o = Sl, borderColor: s = "#1b263b", borderWidth: c = 1, projection: l = eG() } = e;
79808
80056
  this._projection = l;
79809
80057
  let u = t.features ?? [], d = u.map((e, t) => n(e, t));
79810
- this._colorScale = new XW({
80058
+ this._colorScale = new rG({
79811
80059
  colors: r,
79812
80060
  domain: i
79813
80061
  }), i || this._colorScale.setDomainFromValues(d.filter((e) => typeof e == "number" && Number.isFinite(e))), u.forEach((e, t) => {
@@ -79820,7 +80068,7 @@ var YW = ["#0d1b2a", "#4cc9f0"], XW = class {
79820
80068
  });
79821
80069
  }
79822
80070
  _buildRegion(e, t, n) {
79823
- let r = typeof t == "number" && Number.isFinite(t) ? this._colorScale.colorFor(t) : n.noDataColor, i = GW(e.geometry), a = [];
80071
+ let r = typeof t == "number" && Number.isFinite(t) ? this._colorScale.colorFor(t) : n.noDataColor, i = QW(e.geometry), a = [];
79824
80072
  for (let e of i) {
79825
80073
  let t = this._buildPolygon(e, r, n);
79826
80074
  t && a.push(t);
@@ -79829,7 +80077,7 @@ var YW = ["#0d1b2a", "#4cc9f0"], XW = class {
79829
80077
  this.add(o), this._regions.push(o), this._regionColors.push(r), this._regionPolygons.push(a);
79830
80078
  }
79831
80079
  _buildPolygon(e, t, n) {
79832
- let r = $W(e);
80080
+ let r = oG(e);
79833
80081
  if (r.length < 3) return null;
79834
80082
  let i = new pO({
79835
80083
  vertices: r.map((e) => {
@@ -79865,15 +80113,15 @@ var YW = ["#0d1b2a", "#4cc9f0"], XW = class {
79865
80113
  getColorScale() {
79866
80114
  return this._colorScale;
79867
80115
  }
79868
- }, QW = ZW;
79869
- function $W(e) {
80116
+ }, aG = iG;
80117
+ function oG(e) {
79870
80118
  if (e.length < 2) return e;
79871
80119
  let t = e[0], n = e[e.length - 1];
79872
80120
  return t[0] === n[0] && t[1] === n[1] ? e.slice(0, -1) : e;
79873
80121
  }
79874
80122
  //#endregion
79875
80123
  //#region src/mobjects/geo/Globe.ts
79876
- var eG = Math.PI / 180, tG = class extends PT {
80124
+ var sG = Math.PI / 180, cG = class extends PT {
79877
80125
  _radius;
79878
80126
  _center;
79879
80127
  _sphere;
@@ -79921,9 +80169,9 @@ var eG = Math.PI / 180, tG = class extends PT {
79921
80169
  return [...this._plottedPoints];
79922
80170
  }
79923
80171
  arc(e, t, n = {}) {
79924
- let { segments: r = 64, color: i = "#ef476f", lineWidth: a = 2, altitude: o = 0 } = n, s = this._radius * (1 + o), c = nG(e[0], e[1]), l = nG(t[0], t[1]), u = aG(c[0] * l[0] + c[1] * l[1] + c[2] * l[2], -1, 1), d = Math.acos(u), f = Math.sin(d), p = [];
80172
+ let { segments: r = 64, color: i = "#ef476f", lineWidth: a = 2, altitude: o = 0 } = n, s = this._radius * (1 + o), c = lG(e[0], e[1]), l = lG(t[0], t[1]), u = fG(c[0] * l[0] + c[1] * l[1] + c[2] * l[2], -1, 1), d = Math.acos(u), f = Math.sin(d), p = [];
79925
80173
  for (let e = 0; e <= r; e++) {
79926
- let t = rG(c, l, e / r, d, f);
80174
+ let t = uG(c, l, e / r, d, f);
79927
80175
  p.push([
79928
80176
  this._center[0] + s * t[0],
79929
80177
  this._center[1] + s * t[1],
@@ -79940,8 +80188,8 @@ var eG = Math.PI / 180, tG = class extends PT {
79940
80188
  }
79941
80189
  graticule(e = {}) {
79942
80190
  let { latStep: t = 30, lonStep: n = 30, segments: r = 48, color: i = "#8d99ae", lineWidth: a = 1 } = e, o = new PT();
79943
- for (let e = -180; e < 180; e += n) o.add(this._gridLine(oG(e, r), i, a));
79944
- for (let e = -90 + t; e < 90; e += t) o.add(this._gridLine(sG(e, r), i, a));
80191
+ for (let e = -180; e < 180; e += n) o.add(this._gridLine(pG(e, r), i, a));
80192
+ for (let e = -90 + t; e < 90; e += t) o.add(this._gridLine(mG(e, r), i, a));
79945
80193
  return this.add(o), o;
79946
80194
  }
79947
80195
  _gridLine(e, t, n) {
@@ -79953,7 +80201,7 @@ var eG = Math.PI / 180, tG = class extends PT {
79953
80201
  });
79954
80202
  }
79955
80203
  _surfacePoint(e, t, n) {
79956
- let r = nG(e, t);
80204
+ let r = lG(e, t);
79957
80205
  return [
79958
80206
  this._center[0] + n * r[0],
79959
80207
  this._center[1] + n * r[1],
@@ -79961,16 +80209,16 @@ var eG = Math.PI / 180, tG = class extends PT {
79961
80209
  ];
79962
80210
  }
79963
80211
  };
79964
- function nG(e, t) {
79965
- let n = e * eG, r = t * eG, i = Math.cos(n);
80212
+ function lG(e, t) {
80213
+ let n = e * sG, r = t * sG, i = Math.cos(n);
79966
80214
  return [
79967
80215
  i * Math.cos(r),
79968
80216
  i * Math.sin(r),
79969
80217
  Math.sin(n)
79970
80218
  ];
79971
80219
  }
79972
- function rG(e, t, n, r, i) {
79973
- if (i < 1e-9) return iG([
80220
+ function uG(e, t, n, r, i) {
80221
+ if (i < 1e-9) return dG([
79974
80222
  e[0] + (t[0] - e[0]) * n,
79975
80223
  e[1] + (t[1] - e[1]) * n,
79976
80224
  e[2] + (t[2] - e[2]) * n
@@ -79982,7 +80230,7 @@ function rG(e, t, n, r, i) {
79982
80230
  e[2] * a + t[2] * o
79983
80231
  ];
79984
80232
  }
79985
- function iG(e) {
80233
+ function dG(e) {
79986
80234
  let t = Math.sqrt(e[0] * e[0] + e[1] * e[1] + e[2] * e[2]) || 1;
79987
80235
  return [
79988
80236
  e[0] / t,
@@ -79990,18 +80238,18 @@ function iG(e) {
79990
80238
  e[2] / t
79991
80239
  ];
79992
80240
  }
79993
- function aG(e, t, n) {
80241
+ function fG(e, t, n) {
79994
80242
  return Math.max(t, Math.min(n, e));
79995
80243
  }
79996
- function oG(e, t) {
80244
+ function pG(e, t) {
79997
80245
  let n = [];
79998
80246
  for (let r = 0; r <= t; r++) n.push([-90 + 180 * r / t, e]);
79999
80247
  return n;
80000
80248
  }
80001
- function sG(e, t) {
80249
+ function mG(e, t) {
80002
80250
  let n = [];
80003
80251
  for (let r = 0; r <= t; r++) n.push([e, -180 + 360 * r / t]);
80004
80252
  return n;
80005
80253
  }
80006
80254
  //#endregion
80007
- export { wz as Add, xP as AddTextLetterByLetter, PP as AddTextWordByWord, XO as Angle, DT as AnimateProxy, pz as AnimatedBoundary, SI as AnimatedImageMobject, o_ as Animation, HT as AnimationGroup, Fk as AnnotationDot, wO as AnnularSector, CO as Annulus, oL as ApplyComplexFunction, iL as ApplyFunction, uL as ApplyMatrix, cL as ApplyMethod, eR as ApplyPointwiseFunction, rR as ApplyPointwiseFunctionToCenter, Wz as ApplyWave, bO as Arc, xO as ArcBetweenPoints, eF as ArcBrace, EO as ArcPolygon, kO as ArcPolygonFromArcs, YD as AriaNarrator, sD as Arrow, ZM as Arrow3D, ok as ArrowCircleFilledTip, ak as ArrowCircleTip, ck as ArrowSquareFilledTip, sk as ArrowSquareTip, nk as ArrowTip, ik as ArrowTriangleFilledTip, rk as ArrowTriangleTip, NM as ArrowVectorField, ID as AudioAnalyzer, eE as AudioManager, qk as Axes, yl as BLACK, np as BLEND_MODES, jl as BLUE, Tl as BLUE_A, El as BLUE_B, Dl as BLUE_C, Ol as BLUE_D, kl as BLUE_E, Bu as BOLD, Yu as BOOK, zO as BackgroundRectangle, CM as BarChart, Qz as Blink, dk as BooleanResult, VM as Box3D, QP as Brace, $P as BraceBetweenPoints, tF as BraceLabel, nF as BraceText, Mz as Broadcast, _M as BulletedList, PA as COOLWARM, zT as Camera2D, LT as Camera2DFrame, RT as Camera3D, dO as CameraAnimateProxy, lO as CameraFrame, sd as CapStyleType, cz as ChangeDecimalToValue, vz as ChangeSpeed, sz as ChangingDecimal, ZW as ChoroplethMap, fO as Circle, Rz as Circumscribe, pB as Clickable, vL as ClockwiseTransform, mM as Code, XW as ColorScale, ER as ComplexHomotopy, bM as ComplexPlane, Zj as ComplexValueTracker, UM as Cone, qA as ContourPlot, sB as Controls, YO as ConvexHull, SN as ConvexHull3D, bL as CounterclockwiseTransform, dP as Create, HO as Cross, BM as Cube, FO as CubicBezier, AO as CurvedArrow, jO as CurvedDoubleArrow, jT as CurvesAsSubmobjects, JO as Cutout, TL as CyclicReplace, HM as Cylinder, wl as DARKER_GRAY, Ml as DARK_BLUE, Du as DARK_BROWN, Cl as DARK_GRAY, ud as DEFAULT_ANIMATION_DURATION, Ru as DEFAULT_ARROW_TIP_LENGTH, CI as DEFAULT_ASPECT_RATIO, aM as DEFAULT_COLOR_SCHEME, Lu as DEFAULT_DASH_LENGTH, Fu as DEFAULT_DOT_RADIUS, ld as DEFAULT_FONT_SIZE, hd as DEFAULT_FPS, fd as DEFAULT_FRAME_HEIGHT, dd as DEFAULT_FRAME_WIDTH, bd as DEFAULT_MOBJECT_TO_EDGE_BUFFER, xd as DEFAULT_MOBJECT_TO_MOBJECT_BUFFER, md as DEFAULT_PIXEL_HEIGHT, pd as DEFAULT_PIXEL_WIDTH, ed as DEFAULT_POINTWISE_FUNCTION_RUN_TIME, nd as DEFAULT_POINT_DENSITY_1D, td as DEFAULT_POINT_DENSITY_2D, Iu as DEFAULT_SMALL_DOT_RADIUS, cd as DEFAULT_STROKE_WIDTH, $u as DEFAULT_WAIT_TIME, ju as DEGREES, Id as DL, Od as DOWN, Ld as DR, NO as DashedLine, PO as DashedVMobject, rP as DecimalMatrix, Kj as DecimalNumber, XP as DecimalTable, TH as Degrees, iI as DiGraph, qI as DiceFace, _k as Difference, YM as Dodecahedron, OM as DonutChart, IO as Dot, sN as Dot3D, cD as DoubleArrow, lB as Draggable, pP as DrawBorderThenFill, QO as Elbow, SO as Ellipse, vk as Exclusion, CV as ExportSettingsPanel, vV as FPS_PRESETS, $I as FadeIn, tL as FadeOut, NL as FadeToColor, fL as FadeTransform, mL as FadeTransformPieces, Iz as Flash, Kz as FocusOn, EI as FullScreenFadeRectangle, TI as FullScreenRectangle, zk as FunctionGraph, ru as GOLD, Ql as GOLD_A, $l as GOLD_B, eu as GOLD_C, tu as GOLD_D, nu as GOLD_E, Sl as GRAY, ml as GRAY_A, hl as GRAY_B, gl as GRAY_C, _l as GRAY_D, vl as GRAY_E, Gl as GREEN, zl as GREEN_A, Bl as GREEN_B, Vl as GREEN_C, Hl as GREEN_D, Ul as GREEN_E, nI as GenericGraph, QW as GeoMap, LB as GifExporter, tG as Globe, vw as GlyphVMobject, uF as GradientVMobject, rI as Graph, PT as Group, NR as GrowArrow, uR as GrowFromCenter, FR as GrowFromEdge, LR as GrowFromPoint, Gu as HEAVY, tH as HSV, KA as HeatMap, gO as Hexagon, TR as Homotopy, dB as Hoverable, Md as IN, NA as INFERNO, Zu as ITALIC, JM as Icosahedron, l_ as ImageMobject, Qk as ImplicitFunction, ON as ImplicitSurface, Pz as Indicate, PN as InstancedMobject, qj as Integer, nP as IntegerMatrix, YP as IntegerTable, hE as InteractiveScene, gk as Intersection, yd as LARGE_BUFF, kd as LEFT, Hu as LIGHT, bl as LIGHTER_GRAY, Eu as LIGHT_BROWN, xl as LIGHT_GRAY, wu as LIGHT_PINK, UO as Label, Nk as LabeledArrow, Pk as LabeledDot, Mk as LabeledLine, Ik as LabeledPolygram, HR as LaggedStart, KR as LaggedStartMap, RO as LargeDot, gE as Lighting, rD as Line, XM as Line3D, od as LineJointType, Yk as LinearBase, dD as LinearTransformationScene, Xk as LogBase, Ou as MANIM_BACKGROUND, gu as MAROON, du as MAROON_A, fu as MAROON_B, pu as MAROON_C, mu as MAROON_D, hu as MAROON_E, Uu as MEDIUM, vd as MED_LARGE_BUFF, _d as MED_SMALL_BUFF, oM as MONOKAI_COLOR_SCHEME, zI as MandelbrotSet, WP as ManimBanner, $V as ManimColor, _W as ManimSceneElement, sO as MappingCamera, yM as MarkdownText, Cj as MarkupText, YI as MasterTimeline, qP as MathTable, kj as MathTex, ZC as MathTexImage, gM as MathTexPart, Aj as MathTexSVG, Uj as MathTypst, tP as Matrix, DB as MatrixTracker, cp as Mobject, MI as Mobject1D, NI as Mobject2D, GA as Mobject3D, iP as MobjectMatrix, JP as MobjectTable, eP as ModelMobject, hB as MovablePoint, vR as MoveAlongPath, vT as MoveToTarget, mR as MoveToTargetPosition, iO as MovingCamera, ZE as MovingCameraScene, oO as MultiCamera, EH as Munits, zu as NORMAL, UI as NewtonFractal, IT as NullRenderer, Lk as NumberLine, Zk as NumberPlane, Qu as OBLIQUE, Tu as ORANGE, Nd as ORIGIN, jd as OUT, qM as Octahedron, VE as OrbitControls, kI as PGroup, ku as PI, Cu as PINK, s_ as PMobject, Al as PURE_BLUE, Wl as PURE_GREEN, lu as PURE_RED, Su as PURPLE, _u as PURPLE_A, vu as PURPLE_B, yu as PURPLE_C, bu as PURPLE_D, xu as PURPLE_E, MB as PanZoomControls, sj as Paragraph, JA as ParametricFunction, tN as ParametricSurface, II as ParticleSystem, SF as PatternVMobject, _O as Pentagon, OH as Percent, OR as PhaseFlow, DM as PieChart, wH as Pixels, cB as PlaybackControls, BV as Player, IV as PlayerController, wV as PlayerUI, jI as PointCloudDot, AI as PointMobject, xM as PolarPlane, pO as Polygon, vO as Polygram, GM as Polyhedron, rO as PostProcessingPipeline, oN as Prism, Jz as Pulse, yV as QUALITY_PRESETS, uu as RED, iu as RED_A, au as RED_B, ou as RED_C, su as RED_D, cu as RED_E, _V as RESOLUTION_PRESETS, eH as RGBA, Ad as RIGHT, iH as RandomColorGenerator, GE as Rectangle, hO as RegularPolygon, qO as RegularPolygram, Ez as Remove, CP as RemoveTextLetterByLetter, FT as Renderer, gT as ReplacementTransform, jL as Restore, ZO as RightAngle, aR as Rotate, Az as Rotating, WO as RoundedRectangle, rd as SCALE_FACTOR_PER_FONT_POINT, Wu as SEMIBOLD, Ju as SEMILIGHT, gd as SMALL_BUFF, id as START_X, ad as START_Y, LF as SVGMobject, GI as SampleSpace, cR as Scale, Jk as ScaleBase, DL as ScaleInPlace, pE as Scene, ZT as SceneStateManager, wI as ScreenRectangle, TO as Sector, mE as SelectionManager, fR as Shift, eB as ShowCreationThenDestruction, IP as ShowIncreasingSubsets, RP as ShowPartial, Hz as ShowPassingFlash, Xz as ShowPassingFlashWithThinningStrokeWidth, BP as ShowSubmobjectsOneByOne, kL as ShrinkToCenter, hM as SingleStringMathTex, xB as Slider, LO as SmallDot, DR as SmoothedVectorizedHomotopy, sW as SpecialThreeDScene, zM as Sphere, zR as SpinInFromNothing, HP as SpiralIn, cO as SplitScreenCamera, KE as Square, GO as Star, lk as StealthTip, RM as StreamLines, WR as Succession, eN as Surface, eN as Surface3D, nN as SurfacePresets, BO as SurroundingRectangle, SL as Swap, Au as TAU, Rl as TEAL, Nl as TEAL_A, Pl as TEAL_B, Fl as TEAL_C, Il as TEAL_D, Ll as TEAL_E, Vu as THIN, qa as THREE, KP as Table, $O as TangentLine, MO as TangentialArc, KM as Tetrahedron, jj as Tex, wd as TexFontTemplates, Sd as TexTemplate, Td as TexTemplateLibrary, Uw as Text, bw as TextGlyphGroup, ij as TextOnPath, rN as TexturedSurface, aN as ThreeDAxes, aO as ThreeDCamera, WE as ThreeDScene, cN as ThreeDVMobject, WT as Timeline, yO as TipableVMobject, vM as Title, WM as Torus, dz as TracedPath, mT as Transform, FL as TransformAnimations, gL as TransformFromCopy, LL as TransformMatchingAbstractBase, ZL as TransformMatchingCode, WL as TransformMatchingShapes, qL as TransformMatchingTex, mO as Triangle, kP as TypeWithCursor, Hj as Typst, Pd as UL, Xu as ULTRABOLD, Ku as ULTRAHEAVY, qu as ULTRALIGHT, Dd as UP, Fd as UR, hP as Uncreate, VO as Underline, hk as Union, Rk as UnitInterval, jP as UntypeWithCursor, yP as Unwrite, YR as UpdateFromAlphaFunc, qR as UpdateFromFunc, MT as VDict, Nh as VGroup, MA as VIRIDIS, V as VMobject, IF as VMobjectFromSVGPath, Yj as ValueTracker, eM as Variable, lD as Vector, QM as Vector3D, MM as VectorField, YA as VectorFieldVector, uD as VectorScene, NT as VectorizedPoint, BB as VideoExporter, fI as VideoMobject, CD as Voiceover, wD as VoiceoverScene, pl as WHITE, Oz as Wait, nV as WebCodecsExporter, gD as WebSpeechSynthesizer, Bz as Wiggle, aB as WiggleOutThenIn, _P as Write, Mu as X_AXIS, Zl as YELLOW, Kl as YELLOW_A, ql as YELLOW_B, Jl as YELLOW_C, Yl as YELLOW_D, Xl as YELLOW_E, Nu as Y_AXIS, Pu as Z_AXIS, YE as ZoomDisplayPopOut, XE as ZoomedScene, Tz as add, SP as addTextLetterByLetter, FP as addTextWordByWord, Kd as addVec, oH as adjacentNTuples, sH as adjacentPairs, nj as alignmentToOffset, gH as allElementsAreInstances, ez as always, QR as alwaysRedraw, iz as alwaysRotate, rz as alwaysShift, VH as angleAxisFromQuaternion, YH as angleBetweenVectors, JH as angleOfVector, mz as animatedBoundary, UT as animationGroup, XD as announceMobject, ip as applyBlendMode, sL as applyComplexFunction, aL as applyFunction, dL as applyMatrix, AB as applyMatrixLive, lL as applyMethod, WN as applyObjMaterials, tR as applyPointwiseFunction, iR as applyPointwiseFunctionToCenter, fE as applyReducedMotion, Gz as applyWave, OC as areKatexStylesLoaded, tz as assertIsMobjectMethod, UD as attachCaptionTrack, fA as averageColor, jU as bezier, PU as bezierRemap, xU as binarySearch, lI as binaryTree, dI as bipartiteGraph, rp as blendModeToThree, $z as blink, Nz as broadcast, ww as buildStyledTextLines, cU as cartesianToSpherical, nU as centerOfMass, uz as changeDecimalToValue, yz as changeSpeed, lz as changingDecimal, SU as choose, iV as chooseVideoExporterStrategy, zz as circumscribe, TT as clearAnimationOverrides, CU as clip, yU as clockwisePath, yL as clockwiseTransform, Sh as colorGradient, oA as colorToIntRgb, sA as colorToIntRgba, CA as colorToOklab, DA as colorToOklch, iA as colorToRgb, aA as colorToRgba, ZH as compassDirections, aI as completeGraph, tU as complexFuncToR3Func, AR as complexHomotopy, $H as complexToR3, $j as complexValueTracker, bg as compose, BF as computeCircularLayout, ej as computeGlyphPlacements, zF as computeLayout, EM as computeSliceGeometry, _H as concatenateLists, bU as counterclockwisePath, xL as counterclockwiseTransform, fP as create, JI as createDiceRow, DI as createFadeToBlack, OI as createFadeToWhite, RB as createGifExporter, qD as createLiveRegion, VB as createVideoExporter, rV as createWebCodecsExporter, Yd as cross, Yd as crossVec, LH as cross2d, Zh as cubicBezier, oz as cycleAnimation, oI as cycleGraph, EL as cyclicReplace, zN as deriveBasePath, VN as deriveMtlUrl, JD as describeMobject, KT as deserializeMobject, WW as deserializeScene, HW as deserializeSceneMobject, JN as detectModelFormat, xk as difference, Jd as dotVec, _g as doubleSmooth, $B as downloadBlob, mP as drawBorderThenFill, ym as earclipTriangulation, Qh as ease, og as easeIn, og as easeInCubic, Zg as easeInBack, $h as easeInBezier, pg as easeInBounce, Gg as easeInCirc, n_ as easeInElastic, ug as easeInExpo, ag as easeInOut, ag as easeInOutCubic, $g as easeInOutBack, tg as easeInOutBezier, a_ as easeInOutBounce, qg as easeInOutCirc, i_ as easeInOutElastic, Wg as easeInOutExpo, Lg as easeInOutQuad, Bg as easeInOutQuart, Ug as easeInOutQuint, Ig as easeInOutSine, cg as easeInQuad, Rg as easeInQuart, Vg as easeInQuint, Pg as easeInSine, sg as easeOut, sg as easeOutCubic, Qg as easeOutBack, eg as easeOutBezier, fg as easeOutBounce, Kg as easeOutCirc, r_ as easeOutElastic, dg as easeOutExpo, lg as easeOutQuad, zg as easeOutQuart, Hg as easeOutQuint, Fg as easeOutSine, xz as emphasizeRegion, EC as ensureKatexStyles, qW as equirectangular, Sk as exclusion, Ag as exponentialDecay, eV as exportAndDownloadPNG, gV as exportAndDownloadSVG, XB as exportFramePNG, QB as exportPNGSequence, hV as exportSVG, GW as exteriorRings, kH as extractMobjectFamilyMembers, $R as fAlways, eL as fadeIn, nL as fadeOut, PL as fadeToColor, pL as fadeTransform, hL as fadeTransformPieces, aU as findIntersection, Lz as flash, qz as focusOn, RD as formatVttTimestamp, $U as get3dVmobEndCorner, ZU as get3dVmobEndCornerIndex, nW as get3dVmobEndCornerUnitNormal, YU as get3dVmobGradientStartAndEndPoints, QU as get3dVmobStartCorner, XU as get3dVmobStartCornerIndex, tW as get3dVmobStartCornerUnitNormal, eW as get3dVmobUnitNormal, $f as getActiveTheme, CT as getAnimationOverride, aP as getDetText, KV as getFeatureFlags, cE as getReducedMotionRunTime, CW as getSerializableTypes, SW as getSerializer, aH as getShadedRgb, gh as getSmoothCubicBezierHandlePoints, bD as getSpeechSynthesizer, Qf as getTheme, ep as getThemeNames, XH as getUnitNormal, fU as getWindingNumber, uI as gridGraph, PR as growArrow, dR as growFromCenter, IR as growFromEdge, RR as growFromPoint, wT as hasAnimationOverride, xH as hashObj, rA as hexToRgb, kR as homotopy, gA as hsvToRgb, jH as indexLabels, Fz as indicate, ph as integerInterpolate, TU as interpolate, dA as interpolateColor, AA as interpolateColorOklab, jA as interpolateColorOklch, bk as intersection, DU as inverseInterpolate, uA as invertColor, PD as isAudioAnalysisSupported, FU as isClosed, UV as isFeatureEnabled, UC as isMathJaxLoaded, sE as isReducedMotionEnabled, mD as isSpeechSupported, Lj as isTypstLoaded, KC as katexCanRender, VR as laggedStart, GR as laggedStartMap, Xd as lengthVec, iU as lineIntersection, rg as linear, bz as linearSpeedRamp, kg as lingering, tf as linspace, lH as listDifferenceUpdate, uH as listUpdate, vH as listify, Gf as logger, ZR as maintainPositionRelativeTo, mB as makeClickable, uB as makeDraggable, fH as makeEven, bH as makeEvenByCycling, fB as makeHoverable, OB as makeMatrixTracker, vB as makeMovablePoint, NB as makePanZoomControls, CB as makeSlider, dW as manimElementInternals, DN as marchingCubes, WA as marchingSquares, XI as masterTimeline, OU as matchInterpolate, oP as matrixToMobject, sP as matrixToTexString, JW as mercator, EU as mid, rU as midpoint, yR as moveAlongPath, yT as moveToTarget, hR as moveToTargetPosition, IH as normSquared, RH as normalize, Zd as normalizeVec, Og as notQuiteThere, wA as oklabToColor, TA as oklabToOklch, OA as oklchToColor, EA as oklchToOklab, Hf as onLog, ef as orientation2D, $d as orthonormalFrame, ST as overrideAnimate, xT as overrideAnimation, pD as parseBookmarks, mF as parsePatternDefs, AC as parseSVGPathData, fh as partialBezierPoints, vU as pathAlongArc, _U as pathAlongCircles, sI as pathGraph, uU as perpendicularBisector, MR as phaseFlow, KU as pointLiesOnBezier, hH as powerset, aE as prefersReducedMotion, WC as preloadMathJax, Rj as preloadTypst, ET as prepareAnimation, MH as printFamily, GU as proportionsAlongBezierCurveForPoint, Yz as pulse, xV as qualityToBitrate, HH as quaternionConjugate, BH as quaternionFromAngleAxis, zH as quaternionMult, eU as r3ToComplex, hA as randomBrightColor, mA as randomColor, dE as reducedRunTime, cW as registerFont, vW as registerManimElement, bW as registerSerializableMobject, Xf as registerTheme, QH as regularVertices, Dz as remove, cH as removeListRedundancies, yH as removeNones, wP as removeTextLetterByLetter, GC as renderLatexToSVG, Bj as renderTypstToSVG, _T as replacementTransform, GV as resetFeatureFlags, lE as resetReducedMotion, tp as resetThemes, hF as resolvePatternFill, SV as resolveResolution, ML as restore, $T as restoreMobjectState, AH as restructureListToExcludeCertainFamilyMembers, yg as reverse, cA as rgbToColor, nA as rgbToHex, _A as rgbToHsv, lA as rgbaToColor, oR as rotate, KH as rotateVector, jz as rotating, WH as rotationAboutZ, UH as rotationMatrix, GH as rotationMatrixTranspose, Eg as runningStart, gg as rushFrom, hg as rushInto, Sz as rushRegion, FA as sampleColormap, $A as sampledPathFromFunction, QA as sampledPathFromPoints, QT as saveMobjectState, lR as scale, OL as scaleInPlace, Gd as scaleVec, mV as sceneToSVG, GT as serializeMobject, UW as serializeScene, VW as serializeSceneMobject, WV as setFeatureFlags, bI as setGifDecoder, wC as setKatexStylesheetUrl, BC as setMathJaxScriptUrl, qN as setModelLoaderFactory, IN as setMtlLoaderFactory, $D as setPostProcessingModules, eO as setPostProcessingModulesLoader, oE as setReducedMotion, yD as setSpeechSynthesizer, Zf as setTheme, Fj as setTypstCompiler, pR as shift, oU as shoelace, sU as shoelaceDirection, uE as shouldReduceMotion, tB as showCreationThenDestruction, LP as showIncreasingSubsets, zP as showPartial, Uz as showPassingFlash, Zz as showPassingFlashWithThinningStrokeWidth, VP as showSubmobjectsOneByOne, AL as shrinkToCenter, wU as sigmoid, Cg as slowInto, ig as smooth, Cz as smoothSpeedCurve, jR as smoothedVectorizedHomotopy, Ng as smoothererstep, Mg as smootherstep, jg as smoothstep, XT as snapshotFromJSON, YT as snapshotToJSON, lU as sphericalToCartesian, BR as spinInFromNothing, UP as spiralIn, MU as splitBezier, Hh as spring, wg as squishRateFunc, cI as starGraph, JT as stateFromJSON, qT as stateToJSON, vg as stepFunction, kM as stepVectorField, ng as steps, gU as straightPath, pH as stretchArrayToLength, qd as subVec, NU as subdivideBezier, UR as succession, RF as svgMobject, PC as svgToVMobjects, CL as swap, iN as texturedSphere, mg as thereAndBack, Tg as thereAndBackWithPause, dU as thickDiagonal, fz as tracedPath, hT as transform, IL as transformAnimations, _L as transformFromCopy, QL as transformMatchingCode, GL as transformMatchingShapes, JL as transformMatchingTex, dH as tuplify, az as turnAnimationIntoUpdater, AP as typeWithCursor, gP as uncreate, yk as union, mH as uniqChain, Qd as unitPerpendicularTo, xW as unregisterSerializableMobject, MP as untypeWithCursor, bP as unwrite, XR as updateFromAlphaFunc, JR as updateFromFunc, IA as valueToColor, Qj as valueTracker, tj as visibleGlyphChars, VD as voiceoverToVTT, kz as wait, Vz as wiggle, oB as wiggleOutThenIn, Dg as wiggleRate, vP as write, qH as zToVector };
80255
+ export { jz as Add, xP as AddTextLetterByLetter, PP as AddTextWordByWord, XO as Angle, DT as AnimateProxy, bz as AnimatedBoundary, kI as AnimatedImageMobject, o_ as Animation, HT as AnimationGroup, Fk as AnnotationDot, wO as AnnularSector, CO as Annulus, pL as ApplyComplexFunction, dL as ApplyFunction, _L as ApplyMatrix, hL as ApplyMethod, sR as ApplyPointwiseFunction, uR as ApplyPointwiseFunctionToCenter, Zz as ApplyWave, bO as Arc, xO as ArcBetweenPoints, eF as ArcBrace, EO as ArcPolygon, kO as ArcPolygonFromArcs, YD as AriaNarrator, sD as Arrow, ZM as Arrow3D, ok as ArrowCircleFilledTip, ak as ArrowCircleTip, ck as ArrowSquareFilledTip, sk as ArrowSquareTip, nk as ArrowTip, ik as ArrowTriangleFilledTip, rk as ArrowTriangleTip, NM as ArrowVectorField, ID as AudioAnalyzer, eE as AudioManager, qk as Axes, yl as BLACK, np as BLEND_MODES, jl as BLUE, Tl as BLUE_A, El as BLUE_B, Dl as BLUE_C, Ol as BLUE_D, kl as BLUE_E, Bu as BOLD, Yu as BOOK, zO as BackgroundRectangle, CM as BarChart, aB as Blink, dk as BooleanResult, VM as Box3D, QP as Brace, $P as BraceBetweenPoints, tF as BraceLabel, nF as BraceText, zz as Broadcast, _M as BulletedList, PA as COOLWARM, zT as Camera2D, LT as Camera2DFrame, RT as Camera3D, dO as CameraAnimateProxy, lO as CameraFrame, sd as CapStyleType, hz as ChangeDecimalToValue, Tz as ChangeSpeed, mz as ChangingDecimal, iG as ChoroplethMap, fO as Circle, Gz as Circumscribe, bB as Clickable, TL as ClockwiseTransform, mM as Code, rG as ColorScale, NR as ComplexHomotopy, bM as ComplexPlane, Zj as ComplexValueTracker, UM as Cone, qA as ContourPlot, mB as Controls, YO as ConvexHull, SN as ConvexHull3D, DL as CounterclockwiseTransform, dP as Create, HO as Cross, BM as Cube, FO as CubicBezier, AO as CurvedArrow, jO as CurvedDoubleArrow, jT as CurvesAsSubmobjects, JO as Cutout, ML as CyclicReplace, HM as Cylinder, wl as DARKER_GRAY, Ml as DARK_BLUE, Du as DARK_BROWN, Cl as DARK_GRAY, ud as DEFAULT_ANIMATION_DURATION, Ru as DEFAULT_ARROW_TIP_LENGTH, AI as DEFAULT_ASPECT_RATIO, aM as DEFAULT_COLOR_SCHEME, Lu as DEFAULT_DASH_LENGTH, Fu as DEFAULT_DOT_RADIUS, ld as DEFAULT_FONT_SIZE, hd as DEFAULT_FPS, fd as DEFAULT_FRAME_HEIGHT, dd as DEFAULT_FRAME_WIDTH, bd as DEFAULT_MOBJECT_TO_EDGE_BUFFER, xd as DEFAULT_MOBJECT_TO_MOBJECT_BUFFER, md as DEFAULT_PIXEL_HEIGHT, pd as DEFAULT_PIXEL_WIDTH, ed as DEFAULT_POINTWISE_FUNCTION_RUN_TIME, nd as DEFAULT_POINT_DENSITY_1D, td as DEFAULT_POINT_DENSITY_2D, Iu as DEFAULT_SMALL_DOT_RADIUS, cd as DEFAULT_STROKE_WIDTH, $u as DEFAULT_WAIT_TIME, ju as DEGREES, Id as DL, Od as DOWN, Ld as DR, NO as DashedLine, PO as DashedVMobject, rP as DecimalMatrix, Kj as DecimalNumber, XP as DecimalTable, MH as Degrees, iI as DiGraph, eL as DiceFace, _k as Difference, YM as Dodecahedron, OM as DonutChart, IO as Dot, sN as Dot3D, cD as DoubleArrow, gB as Draggable, pP as DrawBorderThenFill, QO as Elbow, SO as Ellipse, vk as Exclusion, AV as ExportSettingsPanel, TV as FPS_PRESETS, oL as FadeIn, cL as FadeOut, BL as FadeToColor, yL as FadeTransform, xL as FadeTransformPieces, Uz as Flash, $z as FocusOn, NI as FullScreenFadeRectangle, MI as FullScreenRectangle, zk as FunctionGraph, ru as GOLD, Ql as GOLD_A, $l as GOLD_B, eu as GOLD_C, tu as GOLD_D, nu as GOLD_E, Sl as GRAY, ml as GRAY_A, hl as GRAY_B, gl as GRAY_C, _l as GRAY_D, vl as GRAY_E, Gl as GREEN, zl as GREEN_A, Bl as GREEN_B, Vl as GREEN_C, Hl as GREEN_D, Ul as GREEN_E, nI as GenericGraph, aG as GeoMap, WB as GifExporter, cG as Globe, vw as GlyphVMobject, uF as GradientVMobject, rI as Graph, PT as Group, BR as GrowArrow, _R as GrowFromCenter, HR as GrowFromEdge, WR as GrowFromPoint, Gu as HEAVY, cH as HSV, KA as HeatMap, gO as Hexagon, MR as Homotopy, vB as Hoverable, Md as IN, NA as INFERNO, Zu as ITALIC, JM as Icosahedron, l_ as ImageMobject, Qk as ImplicitFunction, ON as ImplicitSurface, Vz as Indicate, PN as InstancedMobject, qj as Integer, nP as IntegerMatrix, YP as IntegerTable, hE as InteractiveScene, gk as Intersection, yd as LARGE_BUFF, kd as LEFT, Hu as LIGHT, bl as LIGHTER_GRAY, Eu as LIGHT_BROWN, xl as LIGHT_GRAY, wu as LIGHT_PINK, UO as Label, Nk as LabeledArrow, Pk as LabeledDot, Mk as LabeledLine, Ik as LabeledPolygram, YR as LaggedStart, $R as LaggedStartMap, RO as LargeDot, gE as Lighting, rD as Line, XM as Line3D, od as LineJointType, Yk as LinearBase, dD as LinearTransformationScene, Xk as LogBase, yI as LottieMobject, Ou as MANIM_BACKGROUND, gu as MAROON, du as MAROON_A, fu as MAROON_B, pu as MAROON_C, mu as MAROON_D, hu as MAROON_E, Uu as MEDIUM, vd as MED_LARGE_BUFF, _d as MED_SMALL_BUFF, oM as MONOKAI_COLOR_SCHEME, KI as MandelbrotSet, WP as ManimBanner, oH as ManimColor, wW as ManimSceneElement, sO as MappingCamera, yM as MarkdownText, Cj as MarkupText, nL as MasterTimeline, qP as MathTable, kj as MathTex, ZC as MathTexImage, gM as MathTexPart, Aj as MathTexSVG, Uj as MathTypst, tP as Matrix, PB as MatrixTracker, cp as Mobject, zI as Mobject1D, BI as Mobject2D, GA as Mobject3D, iP as MobjectMatrix, JP as MobjectTable, eP as ModelMobject, SB as MovablePoint, TR as MoveAlongPath, vT as MoveToTarget, xR as MoveToTargetPosition, iO as MovingCamera, ZE as MovingCameraScene, oO as MultiCamera, NH as Munits, zu as NORMAL, XI as NewtonFractal, IT as NullRenderer, Lk as NumberLine, Zk as NumberPlane, Qu as OBLIQUE, Tu as ORANGE, Nd as ORIGIN, jd as OUT, qM as Octahedron, VE as OrbitControls, II as PGroup, ku as PI, Cu as PINK, s_ as PMobject, Al as PURE_BLUE, Wl as PURE_GREEN, lu as PURE_RED, Su as PURPLE, _u as PURPLE_A, vu as PURPLE_B, yu as PURPLE_C, bu as PURPLE_D, xu as PURPLE_E, zB as PanZoomControls, sj as Paragraph, JA as ParametricFunction, tN as ParametricSurface, UI as ParticleSystem, SF as PatternVMobject, _O as Pentagon, FH as Percent, FR as PhaseFlow, DM as PieChart, jH as Pixels, hB as PlaybackControls, qV as Player, UV as PlayerController, jV as PlayerUI, RI as PointCloudDot, LI as PointMobject, xM as PolarPlane, pO as Polygon, vO as Polygram, GM as Polyhedron, rO as PostProcessingPipeline, oN as Prism, tB as Pulse, EV as QUALITY_PRESETS, uu as RED, iu as RED_A, au as RED_B, ou as RED_C, su as RED_D, cu as RED_E, wV as RESOLUTION_PRESETS, sH as RGBA, Ad as RIGHT, dH as RandomColorGenerator, GE as Rectangle, hO as RegularPolygon, qO as RegularPolygram, Nz as Remove, CP as RemoveTextLetterByLetter, FT as Renderer, gT as ReplacementTransform, RL as Restore, ZO as RightAngle, fR as Rotate, Lz as Rotating, WO as RoundedRectangle, rd as SCALE_FACTOR_PER_FONT_POINT, Wu as SEMIBOLD, Ju as SEMILIGHT, gd as SMALL_BUFF, id as START_X, ad as START_Y, LF as SVGMobject, QI as SampleSpace, hR as Scale, Jk as ScaleBase, PL as ScaleInPlace, pE as Scene, ZT as SceneStateManager, jI as ScreenRectangle, TO as Sector, mE as SelectionManager, yR as Shift, sB as ShowCreationThenDestruction, IP as ShowIncreasingSubsets, RP as ShowPartial, Yz as ShowPassingFlash, rB as ShowPassingFlashWithThinningStrokeWidth, BP as ShowSubmobjectsOneByOne, IL as ShrinkToCenter, hM as SingleStringMathTex, OB as Slider, LO as SmallDot, PR as SmoothedVectorizedHomotopy, mW as SpecialThreeDScene, zM as Sphere, KR as SpinInFromNothing, HP as SpiralIn, cO as SplitScreenCamera, KE as Square, GO as Star, lk as StealthTip, RM as StreamLines, ZR as Succession, eN as Surface, eN as Surface3D, nN as SurfacePresets, BO as SurroundingRectangle, kL as Swap, Au as TAU, Rl as TEAL, Nl as TEAL_A, Pl as TEAL_B, Fl as TEAL_C, Il as TEAL_D, Ll as TEAL_E, Vu as THIN, qa as THREE, KP as Table, $O as TangentLine, MO as TangentialArc, KM as Tetrahedron, jj as Tex, wd as TexFontTemplates, Sd as TexTemplate, Td as TexTemplateLibrary, Uw as Text, bw as TextGlyphGroup, ij as TextOnPath, rN as TexturedSurface, aN as ThreeDAxes, aO as ThreeDCamera, WE as ThreeDScene, cN as ThreeDVMobject, WT as Timeline, yO as TipableVMobject, vM as Title, WM as Torus, vz as TracedPath, mT as Transform, HL as TransformAnimations, CL as TransformFromCopy, WL as TransformMatchingAbstractBase, iR as TransformMatchingCode, ZL as TransformMatchingShapes, eR as TransformMatchingTex, mO as Triangle, kP as TypeWithCursor, Hj as Typst, Pd as UL, Xu as ULTRABOLD, Ku as ULTRAHEAVY, qu as ULTRALIGHT, Dd as UP, Fd as UR, hP as Uncreate, VO as Underline, hk as Union, Rk as UnitInterval, jP as UntypeWithCursor, yP as Unwrite, nz as UpdateFromAlphaFunc, ez as UpdateFromFunc, MT as VDict, Nh as VGroup, MA as VIRIDIS, V as VMobject, IF as VMobjectFromSVGPath, Yj as ValueTracker, eM as Variable, lD as Vector, QM as Vector3D, MM as VectorField, YA as VectorFieldVector, uD as VectorScene, NT as VectorizedPoint, qB as VideoExporter, fI as VideoMobject, CD as Voiceover, wD as VoiceoverScene, pl as WHITE, Fz as Wait, lV as WebCodecsExporter, gD as WebSpeechSynthesizer, qz as Wiggle, fB as WiggleOutThenIn, _P as Write, Mu as X_AXIS, Zl as YELLOW, Kl as YELLOW_A, ql as YELLOW_B, Jl as YELLOW_C, Yl as YELLOW_D, Xl as YELLOW_E, Nu as Y_AXIS, Pu as Z_AXIS, YE as ZoomDisplayPopOut, XE as ZoomedScene, Mz as add, SP as addTextLetterByLetter, FP as addTextWordByWord, Kd as addVec, pH as adjacentNTuples, mH as adjacentPairs, nj as alignmentToOffset, CH as allElementsAreInstances, sz as always, az as alwaysRedraw, dz as alwaysRotate, uz as alwaysShift, JH as angleAxisFromQuaternion, nU as angleBetweenVectors, tU as angleOfVector, xz as animatedBoundary, UT as animationGroup, XD as announceMobject, ip as applyBlendMode, mL as applyComplexFunction, fL as applyFunction, vL as applyMatrix, LB as applyMatrixLive, gL as applyMethod, WN as applyObjMaterials, cR as applyPointwiseFunction, dR as applyPointwiseFunctionToCenter, fE as applyReducedMotion, Qz as applyWave, OC as areKatexStylesLoaded, cz as assertIsMobjectMethod, UD as attachCaptionTrack, fA as averageColor, RU as bezier, VU as bezierRemap, OU as binarySearch, lI as binaryTree, dI as bipartiteGraph, rp as blendModeToThree, oB as blink, Bz as broadcast, ww as buildStyledTextLines, hU as cartesianToSpherical, lU as centerOfMass, _z as changeDecimalToValue, Ez as changeSpeed, gz as changingDecimal, kU as choose, dV as chooseVideoExporterStrategy, Kz as circumscribe, TT as clearAnimationOverrides, AU as clip, EU as clockwisePath, EL as clockwiseTransform, Sh as colorGradient, oA as colorToIntRgb, sA as colorToIntRgba, CA as colorToOklab, DA as colorToOklch, iA as colorToRgb, aA as colorToRgba, iU as compassDirections, aI as completeGraph, cU as complexFuncToR3Func, LR as complexHomotopy, oU as complexToR3, $j as complexValueTracker, bg as compose, BF as computeCircularLayout, ej as computeGlyphPlacements, zF as computeLayout, EM as computeSliceGeometry, wH as concatenateLists, DU as counterclockwisePath, OL as counterclockwiseTransform, fP as create, tL as createDiceRow, PI as createFadeToBlack, FI as createFadeToWhite, GB as createGifExporter, qD as createLiveRegion, JB as createVideoExporter, uV as createWebCodecsExporter, Yd as cross, Yd as crossVec, WH as cross2d, Zh as cubicBezier, pz as cycleAnimation, oI as cycleGraph, NL as cyclicReplace, zN as deriveBasePath, VN as deriveMtlUrl, JD as describeMobject, KT as deserializeMobject, ZW as deserializeScene, YW as deserializeSceneMobject, JN as detectModelFormat, xk as difference, Jd as dotVec, _g as doubleSmooth, oV as downloadBlob, mP as drawBorderThenFill, ym as earclipTriangulation, Qh as ease, og as easeIn, og as easeInCubic, Zg as easeInBack, $h as easeInBezier, pg as easeInBounce, Gg as easeInCirc, n_ as easeInElastic, ug as easeInExpo, ag as easeInOut, ag as easeInOutCubic, $g as easeInOutBack, tg as easeInOutBezier, a_ as easeInOutBounce, qg as easeInOutCirc, i_ as easeInOutElastic, Wg as easeInOutExpo, Lg as easeInOutQuad, Bg as easeInOutQuart, Ug as easeInOutQuint, Ig as easeInOutSine, cg as easeInQuad, Rg as easeInQuart, Vg as easeInQuint, Pg as easeInSine, sg as easeOut, sg as easeOutCubic, Qg as easeOutBack, eg as easeOutBezier, fg as easeOutBounce, Kg as easeOutCirc, r_ as easeOutElastic, dg as easeOutExpo, lg as easeOutQuad, zg as easeOutQuart, Hg as easeOutQuint, Fg as easeOutSine, Oz as emphasizeRegion, EC as ensureKatexStyles, eG as equirectangular, Sk as exclusion, Ag as exponentialDecay, sV as exportAndDownloadPNG, CV as exportAndDownloadSVG, rV as exportFramePNG, aV as exportPNGSequence, SV as exportSVG, QW as exteriorRings, IH as extractMobjectFamilyMembers, oz as fAlways, sL as fadeIn, lL as fadeOut, VL as fadeToColor, bL as fadeTransform, SL as fadeTransformPieces, fU as findIntersection, Wz as flash, eB as focusOn, RD as formatVttTimestamp, oW as get3dVmobEndCorner, iW as get3dVmobEndCornerIndex, lW as get3dVmobEndCornerUnitNormal, nW as get3dVmobGradientStartAndEndPoints, aW as get3dVmobStartCorner, rW as get3dVmobStartCornerIndex, cW as get3dVmobStartCornerUnitNormal, sW as get3dVmobUnitNormal, $f as getActiveTheme, CT as getAnimationOverride, aP as getDetText, $V as getFeatureFlags, cE as getReducedMotionRunTime, AW as getSerializableTypes, kW as getSerializer, fH as getShadedRgb, gh as getSmoothCubicBezierHandlePoints, bD as getSpeechSynthesizer, Qf as getTheme, ep as getThemeNames, rU as getUnitNormal, yU as getWindingNumber, uI as gridGraph, VR as growArrow, vR as growFromCenter, UR as growFromEdge, GR as growFromPoint, wT as hasAnimationOverride, OH as hashObj, rA as hexToRgb, IR as homotopy, gA as hsvToRgb, RH as indexLabels, Hz as indicate, ph as integerInterpolate, MU as interpolate, dA as interpolateColor, AA as interpolateColorOklab, jA as interpolateColorOklch, bk as intersection, PU as inverseInterpolate, uA as invertColor, PD as isAudioAnalysisSupported, HU as isClosed, XV as isFeatureEnabled, UC as isMathJaxLoaded, sE as isReducedMotionEnabled, mD as isSpeechSupported, Lj as isTypstLoaded, KC as katexCanRender, JR as laggedStart, QR as laggedStartMap, Xd as lengthVec, dU as lineIntersection, rg as linear, Dz as linearSpeedRamp, kg as lingering, tf as linspace, gH as listDifferenceUpdate, _H as listUpdate, TH as listify, Gf as logger, iz as maintainPositionRelativeTo, xB as makeClickable, _B as makeDraggable, yH as makeEven, DH as makeEvenByCycling, yB as makeHoverable, FB as makeMatrixTracker, TB as makeMovablePoint, BB as makePanZoomControls, AB as makeSlider, vW as manimElementInternals, DN as marchingCubes, WA as marchingSquares, rL as masterTimeline, FU as matchInterpolate, oP as matrixToMobject, sP as matrixToTexString, tG as mercator, NU as mid, uU as midpoint, ER as moveAlongPath, yT as moveToTarget, SR as moveToTargetPosition, UH as normSquared, GH as normalize, Zd as normalizeVec, Og as notQuiteThere, wA as oklabToColor, TA as oklabToOklch, OA as oklchToColor, EA as oklchToOklab, Hf as onLog, ef as orientation2D, $d as orthonormalFrame, ST as overrideAnimate, xT as overrideAnimation, pD as parseBookmarks, mF as parsePatternDefs, AC as parseSVGPathData, fh as partialBezierPoints, TU as pathAlongArc, wU as pathAlongCircles, sI as pathGraph, _U as perpendicularBisector, zR as phaseFlow, $U as pointLiesOnBezier, SH as powerset, aE as prefersReducedMotion, WC as preloadMathJax, Rj as preloadTypst, ET as prepareAnimation, zH as printFamily, QU as proportionsAlongBezierCurveForPoint, nB as pulse, OV as qualityToBitrate, YH as quaternionConjugate, qH as quaternionFromAngleAxis, KH as quaternionMult, sU as r3ToComplex, hA as randomBrightColor, mA as randomColor, dE as reducedRunTime, hW as registerFont, TW as registerManimElement, DW as registerSerializableMobject, Xf as registerTheme, aU as regularVertices, Pz as remove, hH as removeListRedundancies, EH as removeNones, wP as removeTextLetterByLetter, GC as renderLatexToSVG, Bj as renderTypstToSVG, _T as replacementTransform, QV as resetFeatureFlags, lE as resetReducedMotion, tp as resetThemes, hF as resolvePatternFill, kV as resolveResolution, zL as restore, $T as restoreMobjectState, LH as restructureListToExcludeCertainFamilyMembers, yg as reverse, cA as rgbToColor, nA as rgbToHex, _A as rgbToHsv, lA as rgbaToColor, pR as rotate, $H as rotateVector, Rz as rotating, ZH as rotationAboutZ, XH as rotationMatrix, QH as rotationMatrixTranspose, Eg as runningStart, gg as rushFrom, hg as rushInto, kz as rushRegion, FA as sampleColormap, $A as sampledPathFromFunction, QA as sampledPathFromPoints, QT as saveMobjectState, gR as scale, FL as scaleInPlace, Gd as scaleVec, xV as sceneToSVG, GT as serializeMobject, XW as serializeScene, JW as serializeSceneMobject, ZV as setFeatureFlags, DI as setGifDecoder, wC as setKatexStylesheetUrl, mI as setLottiePlayerFactory, BC as setMathJaxScriptUrl, qN as setModelLoaderFactory, IN as setMtlLoaderFactory, $D as setPostProcessingModules, eO as setPostProcessingModulesLoader, oE as setReducedMotion, yD as setSpeechSynthesizer, Zf as setTheme, Fj as setTypstCompiler, bR as shift, pU as shoelace, mU as shoelaceDirection, uE as shouldReduceMotion, cB as showCreationThenDestruction, LP as showIncreasingSubsets, zP as showPartial, Xz as showPassingFlash, iB as showPassingFlashWithThinningStrokeWidth, VP as showSubmobjectsOneByOne, LL as shrinkToCenter, jU as sigmoid, Cg as slowInto, ig as smooth, Az as smoothSpeedCurve, RR as smoothedVectorizedHomotopy, Ng as smoothererstep, Mg as smootherstep, jg as smoothstep, XT as snapshotFromJSON, YT as snapshotToJSON, gU as sphericalToCartesian, qR as spinInFromNothing, UP as spiralIn, zU as splitBezier, Hh as spring, wg as squishRateFunc, cI as starGraph, JT as stateFromJSON, qT as stateToJSON, vg as stepFunction, kM as stepVectorField, ng as steps, CU as straightPath, bH as stretchArrayToLength, qd as subVec, BU as subdivideBezier, XR as succession, RF as svgMobject, PC as svgToVMobjects, AL as swap, iN as texturedSphere, mg as thereAndBack, Tg as thereAndBackWithPause, vU as thickDiagonal, yz as tracedPath, hT as transform, UL as transformAnimations, wL as transformFromCopy, aR as transformMatchingCode, QL as transformMatchingShapes, tR as transformMatchingTex, vH as tuplify, fz as turnAnimationIntoUpdater, AP as typeWithCursor, gP as uncreate, yk as union, xH as uniqChain, Qd as unitPerpendicularTo, OW as unregisterSerializableMobject, MP as untypeWithCursor, bP as unwrite, rz as updateFromAlphaFunc, tz as updateFromFunc, IA as valueToColor, Qj as valueTracker, tj as visibleGlyphChars, VD as voiceoverToVTT, Iz as wait, Jz as wiggle, pB as wiggleOutThenIn, Dg as wiggleRate, vP as write, eU as zToVector };