textmode.js 0.1.9-beta.1 → 0.1.9-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  var AA = Object.defineProperty;
2
2
  var tA = (E, A, t) => A in E ? AA(E, A, { enumerable: !0, configurable: !0, writable: !0, value: t }) : E[A] = t;
3
- var Q = (E, A, t) => tA(E, typeof A != "symbol" ? A + "" : A, t);
3
+ var o = (E, A, t) => tA(E, typeof A != "symbol" ? A + "" : A, t);
4
4
  class I extends Error {
5
5
  constructor(A, t = {}) {
6
6
  super(I.A(A, t)), this.name = "TextmodeError";
@@ -36,7 +36,7 @@ class I extends Error {
36
36
  var eA = ((E) => (E[E.SILENT = 0] = "SILENT", E[E.WARNING = 1] = "WARNING", E[E.ERROR = 2] = "ERROR", E[E.THROW = 3] = "THROW", E))(eA || {});
37
37
  const v = class v {
38
38
  constructor() {
39
- Q(this, "h", { globalLevel: 3 });
39
+ o(this, "h", { globalLevel: 3 });
40
40
  }
41
41
  static l() {
42
42
  return v.o || (v.o = new v()), v.o;
@@ -61,7 +61,7 @@ const v = class v {
61
61
  this.h.globalLevel = A;
62
62
  }
63
63
  };
64
- Q(v, "o", null);
64
+ o(v, "o", null);
65
65
  let Y = v;
66
66
  const u = Y.l(), X = /* @__PURE__ */ new WeakMap();
67
67
  function F(E, A) {
@@ -72,14 +72,14 @@ function J(E) {
72
72
  }
73
73
  class K {
74
74
  constructor(A, t, e = t, s = {}) {
75
- Q(this, "P");
76
- Q(this, "I");
77
- Q(this, "m");
78
- Q(this, "p");
79
- Q(this, "_");
80
- Q(this, "h");
81
- Q(this, "v", null);
82
- Q(this, "M", null);
75
+ o(this, "P");
76
+ o(this, "I");
77
+ o(this, "m");
78
+ o(this, "p");
79
+ o(this, "_");
80
+ o(this, "h");
81
+ o(this, "v", null);
82
+ o(this, "M", null);
83
83
  this.P = A, this.p = t, this._ = e, this.h = { filter: "nearest", wrap: "clamp", format: "rgba", type: "unsigned_byte", ...s }, this.m = this.G(), this.I = A.createFramebuffer(), this.F();
84
84
  }
85
85
  $(A) {
@@ -170,12 +170,12 @@ class K {
170
170
  }
171
171
  class x {
172
172
  constructor(A, t, e) {
173
- Q(this, "P");
174
- Q(this, "O");
175
- Q(this, "U", /* @__PURE__ */ new Map());
176
- Q(this, "k", /* @__PURE__ */ new Map());
177
- Q(this, "V", 0);
178
- Q(this, "R");
173
+ o(this, "P");
174
+ o(this, "O");
175
+ o(this, "U", /* @__PURE__ */ new Map());
176
+ o(this, "k", /* @__PURE__ */ new Map());
177
+ o(this, "V", 0);
178
+ o(this, "R");
179
179
  this.P = A, this.O = this.H(t, e), this.R = A.getParameter(A.MAX_TEXTURE_IMAGE_UNITS), this.L();
180
180
  }
181
181
  L() {
@@ -252,10 +252,10 @@ class x {
252
252
  }
253
253
  class Z {
254
254
  constructor(A) {
255
- Q(this, "P");
256
- Q(this, "Z", null);
257
- Q(this, "X", 16);
258
- Q(this, "q", /* @__PURE__ */ new Map());
255
+ o(this, "P");
256
+ o(this, "Z", null);
257
+ o(this, "X", 16);
258
+ o(this, "q", /* @__PURE__ */ new Map());
259
259
  this.P = A;
260
260
  }
261
261
  AA() {
@@ -305,12 +305,12 @@ class rA extends Z {
305
305
  super(A);
306
306
  }
307
307
  QA(A, t, e, s, r) {
308
- const i = e - A, B = s - t, o = Math.hypot(i, B);
309
- if (o === 0) {
308
+ const i = e - A, B = s - t, Q = Math.hypot(i, B);
309
+ if (Q === 0) {
310
310
  const g = r / 2, a = this.sA(A - g, t - g), h = this.sA(A + g, t + g);
311
311
  this.rA(a.nx, a.ny, h.nx, h.ny);
312
312
  } else {
313
- const g = -B / o, a = i / o, h = r / 2, D = A + g * h, c = t + a * h, l = A - g * h, d = t - a * h, C = e + g * h, P = s + a * h, p = e - g * h, m = s - a * h, y = this.sA(D, c), b = this.sA(l, d), _ = this.sA(C, P), V = this.sA(p, m), G = this.P;
313
+ const g = -B / Q, a = i / Q, h = r / 2, D = A + g * h, c = t + a * h, l = A - g * h, d = t - a * h, C = e + g * h, P = s + a * h, p = e - g * h, m = s - a * h, y = this.sA(D, c), b = this.sA(l, d), _ = this.sA(C, P), V = this.sA(p, m), G = this.P;
314
314
  this.AA(), G.bindBuffer(G.ARRAY_BUFFER, this.Z);
315
315
  const q = new Float32Array([y.nx, y.ny, 0, 0, b.nx, b.ny, 0, 1, _.nx, _.ny, 1, 0, b.nx, b.ny, 0, 1, V.nx, V.ny, 1, 1, _.nx, _.ny, 1, 0]);
316
316
  G.bufferData(G.ARRAY_BUFFER, q, G.DYNAMIC_DRAW);
@@ -322,19 +322,19 @@ class rA extends Z {
322
322
  var R = "attribute vec2 a_position;attribute vec2 a_texCoord;varying vec2 v_uv;uniform float u_rotation;uniform vec2 u_center;uniform float u_aspectRatio;mat2 rotate2D(float angle){float s=sin(angle);float c=cos(angle);return mat2(c,-s,s,c);}void main(){v_uv=a_texCoord;vec2 pos=a_position;pos-=u_center;pos.x*=u_aspectRatio;pos=rotate2D(-u_rotation)*pos;pos.x/=u_aspectRatio;pos+=u_center;gl_Position=vec4(pos,0.0,1.0);}";
323
323
  class iA {
324
324
  constructor(A) {
325
- Q(this, "P");
326
- Q(this, "EA");
327
- Q(this, "gA");
328
- Q(this, "oA", null);
329
- Q(this, "nA");
330
- Q(this, "aA");
331
- Q(this, "hA", [1, 1, 1, 1]);
332
- Q(this, "lA", !0);
333
- Q(this, "cA", [0, 0, 0, 1]);
334
- Q(this, "DA", 1);
335
- Q(this, "CA", !0);
336
- Q(this, "uA", 0);
337
- Q(this, "PA", []);
325
+ o(this, "P");
326
+ o(this, "EA");
327
+ o(this, "gA");
328
+ o(this, "oA", null);
329
+ o(this, "nA");
330
+ o(this, "aA");
331
+ o(this, "hA", [1, 1, 1, 1]);
332
+ o(this, "lA", !0);
333
+ o(this, "cA", [0, 0, 0, 1]);
334
+ o(this, "DA", 1);
335
+ o(this, "CA", !0);
336
+ o(this, "uA", 0);
337
+ o(this, "PA", []);
338
338
  this.P = A, this.EA = new x(this.P, R, "precision lowp float;uniform sampler2D u_texture;varying vec2 v_uv;void main(){gl_FragColor=texture2D(u_texture,v_uv);}"), this.gA = new x(this.P, R, "precision lowp float;uniform vec4 u_color;void main(){gl_FragColor=u_color;}"), this.nA = new sA(this.P), this.aA = new rA(this.P), this.P.enable(this.P.BLEND), this.P.blendEquation(this.P.FUNC_ADD), this.P.blendFunc(this.P.ONE, this.P.ONE_MINUS_SRC_ALPHA), F(this.P, [0, 0, this.P.canvas.width, this.P.canvas.height]);
339
339
  }
340
340
  IA(A) {
@@ -398,9 +398,9 @@ class iA {
398
398
  return this.GA("u_rotation", D), this.GA("u_center", [a, h]), this.GA("u_aspectRatio", c), this.nA.BA(A, t, e, s), void (this.oA = null);
399
399
  }
400
400
  const r = this.gA;
401
- let i = 0, B = 0, o = 0, n = 1;
401
+ let i = 0, B = 0, Q = 0, n = 1;
402
402
  const g = this.$A(A, t, e, s);
403
- i = g.centerX, B = g.centerY, o = g.radians, n = g.aspectRatio, this.lA && (this.IA(r), this.GA("u_color", this.hA), this.GA("u_rotation", o), this.GA("u_center", [i, B]), this.GA("u_aspectRatio", n), this.nA.BA(A, t, e, s)), this.CA && this.DA > 0 && (this.IA(r), this.GA("u_color", this.cA), this.GA("u_rotation", o), this.GA("u_center", [i, B]), this.GA("u_aspectRatio", n), this.nA.iA(A, t, e, s, this.DA)), this.oA = null;
403
+ i = g.centerX, B = g.centerY, Q = g.radians, n = g.aspectRatio, this.lA && (this.IA(r), this.GA("u_color", this.hA), this.GA("u_rotation", Q), this.GA("u_center", [i, B]), this.GA("u_aspectRatio", n), this.nA.BA(A, t, e, s)), this.CA && this.DA > 0 && (this.IA(r), this.GA("u_color", this.cA), this.GA("u_rotation", Q), this.GA("u_center", [i, B]), this.GA("u_aspectRatio", n), this.nA.iA(A, t, e, s, this.DA)), this.oA = null;
404
404
  }
405
405
  YA(A, t, e, s) {
406
406
  if (this.oA !== null) {
@@ -410,17 +410,17 @@ class iA {
410
410
  return this.aA.QA(A, t, e, s, _), void (this.oA = null);
411
411
  }
412
412
  if (!this.CA || this.DA <= 0) return;
413
- const r = this.gA, i = (A + e) / 2, B = (t + s) / 2, o = Math.abs(e - A) || 1, n = Math.abs(s - t) || 1, g = this.uA !== 0;
413
+ const r = this.gA, i = (A + e) / 2, B = (t + s) / 2, Q = Math.abs(e - A) || 1, n = Math.abs(s - t) || 1, g = this.uA !== 0;
414
414
  let a = 0, h = 0, D = 0, c = 1;
415
415
  if (g) {
416
- const l = this.$A(i - o / 2, B - n / 2, o, n);
416
+ const l = this.$A(i - Q / 2, B - n / 2, Q, n);
417
417
  a = l.centerX, h = l.centerY, D = l.radians, c = l.aspectRatio;
418
418
  }
419
419
  this.IA(r), this.GA("u_color", this.cA), g && (this.GA("u_rotation", D), this.GA("u_center", [a, h]), this.GA("u_aspectRatio", c)), this.aA.QA(A, t, e, s, this.DA);
420
420
  }
421
421
  $A(A, t, e, s) {
422
- const r = J(this.P) || [0, 0, this.P.canvas.width, this.P.canvas.height], i = r[2], B = r[3], o = i / B;
423
- return { centerX: (A + e / 2) / i * 2 - 1, centerY: 1 - (t + s / 2) / B * 2, radians: this.uA * Math.PI / 180, aspectRatio: o };
422
+ const r = J(this.P) || [0, 0, this.P.canvas.width, this.P.canvas.height], i = r[2], B = r[3], Q = i / B;
423
+ return { centerX: (A + e / 2) / i * 2 - 1, centerY: 1 - (t + s / 2) / B * 2, radians: this.uA * Math.PI / 180, aspectRatio: Q };
424
424
  }
425
425
  TA(A, t, e = {}) {
426
426
  return new K(this.P, A, t, e);
@@ -441,10 +441,10 @@ class iA {
441
441
  this.EA.S(), this.gA.S(), this.nA.S(), this.aA.S();
442
442
  }
443
443
  kA(A, t, e, s, r) {
444
- const i = this.P, B = s ?? A.width, o = r ?? A.height;
444
+ const i = this.P, B = s ?? A.width, Q = r ?? A.height;
445
445
  this.IA(this.EA), this.GA("u_texture", A.texture);
446
- const n = this.$A(t, e, B, o);
447
- this.GA("u_rotation", n.radians), this.GA("u_center", [n.centerX, n.centerY]), this.GA("u_aspectRatio", n.aspectRatio), this.nA.BA(t, e, B, o), i.bindTexture(i.TEXTURE_2D, null), this.oA = null;
446
+ const n = this.$A(t, e, B, Q);
447
+ this.GA("u_rotation", n.radians), this.GA("u_center", [n.centerX, n.centerY]), this.GA("u_aspectRatio", n.aspectRatio), this.nA.BA(t, e, B, Q), i.bindTexture(i.TEXTURE_2D, null), this.oA = null;
448
448
  }
449
449
  }
450
450
  const f = { readShort: (E, A) => (f.t.uint16[0] = E[A] << 8 | E[A + 1], f.t.int16[0]), readUshort: (E, A) => E[A] << 8 | E[A + 1], readUshorts(E, A, t) {
@@ -467,7 +467,7 @@ const f = { readShort: (E, A) => (f.t.uint16[0] = E[A] << 8 | E[A + 1], f.t.int1
467
467
  const s = f, r = s.readUshort, i = r(E, A += 2);
468
468
  A += 2;
469
469
  const B = [];
470
- for (let o = 0; o < i; o++) {
470
+ for (let Q = 0; Q < i; Q++) {
471
471
  const n = r(E, A), g = r(E, A += 2);
472
472
  A += 2;
473
473
  const a = s.readUint(E, A);
@@ -486,10 +486,10 @@ const f = { readShort: (E, A) => (f.t.uint16[0] = E[A] << 8 | E[A + 1], f.t.int1
486
486
  }, parse4(E, A) {
487
487
  const t = f, e = t.readUshort, s = t.readUshorts, r = A, i = e(E, A += 2);
488
488
  A += 2;
489
- const B = e(E, A += 2) >>> 1, o = { format: 4, searchRange: e(E, A += 2), entrySelector: 0, rangeShift: 0, endCount: [], startCount: [], idDelta: [], idRangeOffset: [], glyphIdArray: [] };
490
- A += 2, o.entrySelector = e(E, A), A += 2, o.rangeShift = e(E, A), A += 2, o.endCount = s(E, A, B), A += 2 * B, A += 2, o.startCount = s(E, A, B), A += 2 * B;
491
- for (let n = 0; n < B; n++) o.idDelta.push(t.readShort(E, A)), A += 2;
492
- return o.idRangeOffset = s(E, A, B), A += 2 * B, o.glyphIdArray = s(E, A, r + i - A >> 1), o;
489
+ const B = e(E, A += 2) >>> 1, Q = { format: 4, searchRange: e(E, A += 2), entrySelector: 0, rangeShift: 0, endCount: [], startCount: [], idDelta: [], idRangeOffset: [], glyphIdArray: [] };
490
+ A += 2, Q.entrySelector = e(E, A), A += 2, Q.rangeShift = e(E, A), A += 2, Q.endCount = s(E, A, B), A += 2 * B, A += 2, Q.startCount = s(E, A, B), A += 2 * B;
491
+ for (let n = 0; n < B; n++) Q.idDelta.push(t.readShort(E, A)), A += 2;
492
+ return Q.idRangeOffset = s(E, A, B), A += 2 * B, Q.glyphIdArray = s(E, A, r + i - A >> 1), Q;
493
493
  }, parse12(E, A) {
494
494
  const t = f.readUint;
495
495
  t(E, A += 4), t(E, A += 4);
@@ -509,32 +509,32 @@ const f = { readShort: (E, A) => (f.t.uint16[0] = E[A] << 8 | E[A + 1], f.t.int1
509
509
  A += 2;
510
510
  const B = e.readShort(E, A);
511
511
  A += 2;
512
- const o = e.readShort(E, A);
513
- return A += 2, A += 6, { unitsPerEm: s, xMin: r, yMin: i, xMax: B, yMax: o, indexToLocFormat: e.readShort(E, A) };
514
- } }, QA = { parseTab(E, A, t) {
512
+ const Q = e.readShort(E, A);
513
+ return A += 2, A += 6, { unitsPerEm: s, xMin: r, yMin: i, xMax: B, yMax: Q, indexToLocFormat: e.readShort(E, A) };
514
+ } }, oA = { parseTab(E, A, t) {
515
515
  const e = f;
516
516
  A += 4;
517
517
  const s = ["ascender", "descender", "lineGap", "advanceWidthMax", "minLeftSideBearing", "minRightSideBearing", "xMaxExtent", "caretSlopeRise", "caretSlopeRun", "caretOffset", "res0", "res1", "res2", "res3", "metricDataFormat", "numberOfHMetrics"], r = {};
518
518
  for (let i = 0; i < s.length; i++) {
519
- const B = s[i], o = B === "advanceWidthMax" || B === "numberOfHMetrics" ? e.readUshort : e.readShort;
520
- r[B] = o(E, A + 2 * i);
519
+ const B = s[i], Q = B === "advanceWidthMax" || B === "numberOfHMetrics" ? e.readUshort : e.readShort;
520
+ r[B] = Q(E, A + 2 * i);
521
521
  }
522
522
  return r;
523
- } }, oA = { parseTab(E, A, t, e) {
523
+ } }, QA = { parseTab(E, A, t, e) {
524
524
  if (!e) throw Error("Font object required for hmtx parsing");
525
- const s = f, r = [], i = [], B = e.maxp.numGlyphs, o = e.hhea.numberOfHMetrics;
525
+ const s = f, r = [], i = [], B = e.maxp.numGlyphs, Q = e.hhea.numberOfHMetrics;
526
526
  let n = 0, g = 0, a = 0;
527
- for (; a < o; ) n = s.readUshort(E, A + (a << 2)), g = s.readShort(E, A + (a << 2) + 2), r.push(n), i.push(g), a++;
527
+ for (; a < Q; ) n = s.readUshort(E, A + (a << 2)), g = s.readShort(E, A + (a << 2) + 2), r.push(n), i.push(g), a++;
528
528
  for (; a < B; ) r.push(n), i.push(g), a++;
529
529
  return { aWidth: r, lsBearing: i };
530
- } }, H = { cmap: BA, head: EA, hhea: QA, maxp: { parseTab(E, A, t) {
530
+ } }, H = { cmap: BA, head: EA, hhea: oA, maxp: { parseTab(E, A, t) {
531
531
  const e = f;
532
532
  return e.readUint(E, A), A += 4, { numGlyphs: e.readUshort(E, A) };
533
- } }, hmtx: oA, loca: { parseTab(E, A, t, e) {
533
+ } }, hmtx: QA, loca: { parseTab(E, A, t, e) {
534
534
  if (!e) throw Error("Font object required for loca parsing");
535
535
  const s = f, r = [], i = e.head.indexToLocFormat, B = e.maxp.numGlyphs + 1;
536
- if (i === 0) for (let o = 0; o < B; o++) r.push(s.readUshort(E, A + (o << 1)) << 1);
537
- else if (i === 1) for (let o = 0; o < B; o++) r.push(s.readUint(E, A + (o << 2)));
536
+ if (i === 0) for (let Q = 0; Q < B; Q++) r.push(s.readUshort(E, A + (Q << 1)) << 1);
537
+ else if (i === 1) for (let Q = 0; Q < B; Q++) r.push(s.readUint(E, A + (Q << 2)));
538
538
  return r;
539
539
  } }, glyf: { parseTab(E, A, t, e) {
540
540
  if (!e) throw Error("Font object required for glyf parsing");
@@ -552,9 +552,9 @@ const f = { readShort: (E, A) => (f.t.uint16[0] = E[A] << 8 | E[A + 1], f.t.int1
552
552
  if (B.noc > 0) {
553
553
  B.endPts = [];
554
554
  for (let h = 0; h < B.noc; h++) B.endPts.push(t.readUshort(e, i)), i += 2;
555
- const o = t.readUshort(e, i);
556
- if (i += 2, e.length - i < o) return null;
557
- i += o;
555
+ const Q = t.readUshort(e, i);
556
+ if (i += 2, e.length - i < Q) return null;
557
+ i += Q;
558
558
  const n = B.endPts[B.noc - 1] + 1;
559
559
  B.flags = [];
560
560
  for (let h = 0; h < n; h++) {
@@ -582,11 +582,11 @@ const f = { readShort: (E, A) => (f.t.uint16[0] = E[A] << 8 | E[A + 1], f.t.int1
582
582
  } } }, w = { parse: (E) => [((A, t, e, s) => {
583
583
  const r = H, i = { RA: A, zA: t, HA: e };
584
584
  for (const B in r) {
585
- const o = B, n = w.findTable(A, o, e);
585
+ const Q = B, n = w.findTable(A, Q, e);
586
586
  if (n) {
587
587
  const [g, a] = n;
588
588
  let h = s[g];
589
- h == null && (h = r[o].parseTab(A, g, a, i), s[g] = h), i[o] = h;
589
+ h == null && (h = r[Q].parseTab(A, g, a, i), s[g] = h), i[Q] = h;
590
590
  }
591
591
  }
592
592
  return i;
@@ -596,16 +596,16 @@ const f = { readShort: (E, A) => (f.t.uint16[0] = E[A] << 8 | E[A + 1], f.t.int1
596
596
  for (let i = 0; i < s; i++) {
597
597
  const B = e.readASCII(E, r, 4);
598
598
  e.readUint(E, r + 4);
599
- const o = e.readUint(E, r + 8), n = e.readUint(E, r + 12);
600
- if (B === A) return [o, n];
599
+ const Q = e.readUint(E, r + 8), n = e.readUint(E, r + 12);
600
+ if (B === A) return [Q, n];
601
601
  r += 16;
602
602
  }
603
603
  return null;
604
604
  }, T: H, B: f };
605
605
  class U {
606
606
  constructor() {
607
- Q(this, "LA", /* @__PURE__ */ new Map());
608
- Q(this, "JA", /* @__PURE__ */ new Map());
607
+ o(this, "LA", /* @__PURE__ */ new Map());
608
+ o(this, "JA", /* @__PURE__ */ new Map());
609
609
  }
610
610
  KA(A) {
611
611
  const t = this.WA(A);
@@ -675,7 +675,7 @@ class U {
675
675
  }
676
676
  class nA {
677
677
  constructor(A) {
678
- Q(this, "et");
678
+ o(this, "et");
679
679
  this.et = A;
680
680
  }
681
681
  st(A) {
@@ -727,8 +727,8 @@ class nA {
727
727
  const s = A.groups[e], r = A.groups[e + 1], i = A.groups[e + 2];
728
728
  for (let B = s; B <= r; B++)
729
729
  if (i + (B - s) > 0) try {
730
- const o = String.fromCodePoint(B);
731
- t.push(o);
730
+ const Q = String.fromCodePoint(B);
731
+ t.push(Q);
732
732
  } catch {
733
733
  }
734
734
  }
@@ -752,7 +752,7 @@ class nA {
752
752
  }
753
753
  class gA {
754
754
  constructor() {
755
- Q(this, "ht");
755
+ o(this, "ht");
756
756
  const A = new U();
757
757
  this.ht = new nA(A);
758
758
  }
@@ -771,16 +771,16 @@ class gA {
771
771
  }
772
772
  class hA {
773
773
  constructor(A) {
774
- Q(this, "lt");
775
- Q(this, "ct");
776
- Q(this, "Dt");
777
- Q(this, "Ct");
774
+ o(this, "lt");
775
+ o(this, "ct");
776
+ o(this, "Dt");
777
+ o(this, "Ct");
778
778
  this.Dt = A, this.Ct = new U(), this.lt = document.createElement("canvas"), this.ct = this.lt.getContext("2d", { willReadFrequently: !0, alpha: !1 });
779
779
  }
780
780
  createTextureAtlas(A, t, e, s) {
781
- const r = A.length, i = Math.ceil(Math.sqrt(r)), B = Math.ceil(r / i), o = t.width * i, n = t.height * B, g = typeof s == "object" ? s : null;
782
- this.ut(o, n), this.Pt(A, t, i, e, g);
783
- const a = this.Dt.TA(o, n, { filter: "nearest" });
781
+ const r = A.length, i = Math.ceil(Math.sqrt(r)), B = Math.ceil(r / i), Q = t.width * i, n = t.height * B, g = typeof s == "object" ? s : null;
782
+ this.ut(Q, n), this.Pt(A, t, i, e, g);
783
+ const a = this.Dt.TA(Q, n, { filter: "nearest" });
784
784
  return a.update(this.lt), { framebuffer: a, columns: i, rows: B };
785
785
  }
786
786
  ut(A, t) {
@@ -789,9 +789,9 @@ class hA {
789
789
  Pt(A, t, e, s, r) {
790
790
  const i = s / r.head.unitsPerEm;
791
791
  for (let B = 0; B < A.length; B++) {
792
- const o = B % e, n = Math.floor(B / e), g = A[B].character, a = this.It(r, g);
792
+ const Q = B % e, n = Math.floor(B / e), g = A[B].character, a = this.It(r, g);
793
793
  if (!a) continue;
794
- const h = g.codePointAt(0) || 0, D = this.Ct.jA(r, h), c = this.wt(r, D) * i, l = o * t.width, d = n * t.height, C = l + 0.5 * t.width, P = d + 0.5 * t.height, p = Math.round(C - 0.5 * t.width), m = Math.round(P - 0.5 * s), y = p + 0.5 * (t.width - c), b = m + r.hhea.ascender * i;
794
+ const h = g.codePointAt(0) || 0, D = this.Ct.jA(r, h), c = this.wt(r, D) * i, l = Q * t.width, d = n * t.height, C = l + 0.5 * t.width, P = d + 0.5 * t.height, p = Math.round(C - 0.5 * t.width), m = Math.round(P - 0.5 * s), y = p + 0.5 * (t.width - c), b = m + r.hhea.ascender * i;
795
795
  this.ft(a, y, b, i);
796
796
  }
797
797
  }
@@ -811,8 +811,8 @@ class hA {
811
811
  }
812
812
  ft(A, t, e, s) {
813
813
  if (!A || !A.xs || A.noc === 0) return;
814
- const { xs: r, ys: i, endPts: B, flags: o } = A;
815
- if (!(r && i && B && o)) return;
814
+ const { xs: r, ys: i, endPts: B, flags: Q } = A;
815
+ if (!(r && i && B && Q)) return;
816
816
  this.ct.beginPath();
817
817
  let n = 0;
818
818
  for (let g = 0; g < B.length; g++) {
@@ -823,13 +823,13 @@ class hA {
823
823
  this.ct.moveTo(h, D);
824
824
  let c = n + 1;
825
825
  for (; c <= a; )
826
- if (1 & o[c]) {
826
+ if (1 & Q[c]) {
827
827
  const l = t + r[c] * s, d = e - i[c] * s;
828
828
  this.ct.lineTo(l, d), c++;
829
829
  } else {
830
830
  const l = t + r[c] * s, d = e - i[c] * s;
831
831
  let C = c + 1 > a ? n : c + 1;
832
- if (1 & o[C]) {
832
+ if (1 & Q[C]) {
833
833
  const P = t + r[C] * s, p = e - i[C] * s;
834
834
  this.ct.quadraticCurveTo(l, d, P, p), c = C + 1;
835
835
  } else {
@@ -847,16 +847,16 @@ class hA {
847
847
  }
848
848
  class aA {
849
849
  constructor() {
850
- Q(this, "et");
850
+ o(this, "et");
851
851
  this.et = new U();
852
852
  }
853
853
  calculateMaxGlyphDimensions(A, t, e) {
854
854
  let s = 0;
855
855
  const r = this.et.At(e, t), i = r.lineHeight;
856
856
  for (const B of A) {
857
- const o = this.et.XA(e, B);
858
- if (o === 0) continue;
859
- const n = this.et.qA(e, o) * r.scale;
857
+ const Q = this.et.XA(e, B);
858
+ if (Q === 0) continue;
859
+ const n = this.et.qA(e, Q) * r.scale;
860
860
  s = Math.max(s, n);
861
861
  }
862
862
  return { width: Math.ceil(s), height: Math.ceil(i) };
@@ -874,7 +874,7 @@ class aA {
874
874
  }
875
875
  class lA {
876
876
  constructor() {
877
- Q(this, "Ct");
877
+ o(this, "Ct");
878
878
  this.Ct = new U();
879
879
  }
880
880
  createCharacterObjects(A, t) {
@@ -882,8 +882,8 @@ class lA {
882
882
  const r = e.codePointAt(0) || 0, i = this.dt(s);
883
883
  let B = 0;
884
884
  if (t.hmtx && t.hmtx.aWidth) {
885
- const o = this.Ct.jA(t, r);
886
- o > 0 && t.hmtx.aWidth[o] !== void 0 && (B = t.hmtx.aWidth[o]);
885
+ const Q = this.Ct.jA(t, r);
886
+ Q > 0 && t.hmtx.aWidth[Q] !== void 0 && (B = t.hmtx.aWidth[Q]);
887
887
  }
888
888
  return { character: e, unicode: r, color: i, advanceWidth: B };
889
889
  });
@@ -902,19 +902,19 @@ class lA {
902
902
  }
903
903
  class cA {
904
904
  constructor(A, t = 16) {
905
- Q(this, "_t");
906
- Q(this, "vt", []);
907
- Q(this, "bt");
908
- Q(this, "xt", 16);
909
- Q(this, "yt", 0);
910
- Q(this, "Mt", 0);
911
- Q(this, "Gt", { width: 0, height: 0 });
912
- Q(this, "Ft");
913
- Q(this, "$t", "UrsaFont");
914
- Q(this, "Yt");
915
- Q(this, "Tt");
916
- Q(this, "St");
917
- Q(this, "Ot");
905
+ o(this, "_t");
906
+ o(this, "vt", []);
907
+ o(this, "bt");
908
+ o(this, "xt", 16);
909
+ o(this, "yt", 0);
910
+ o(this, "Mt", 0);
911
+ o(this, "Gt", { width: 0, height: 0 });
912
+ o(this, "Ft");
913
+ o(this, "$t", "UrsaFont");
914
+ o(this, "Yt");
915
+ o(this, "Tt");
916
+ o(this, "St");
917
+ o(this, "Ot");
918
918
  this.xt = t, this.Yt = new gA(), this.Tt = new hA(A), this.St = new aA(), this.Ot = new lA();
919
919
  }
920
920
  async Ut(A) {
@@ -996,16 +996,16 @@ class cA {
996
996
  }
997
997
  class DA {
998
998
  constructor(A, t, e) {
999
- Q(this, "zt");
1000
- Q(this, "Lt");
1001
- Q(this, "p");
1002
- Q(this, "_");
1003
- Q(this, "Jt");
1004
- Q(this, "Kt");
1005
- Q(this, "Wt", !1);
1006
- Q(this, "jt");
1007
- Q(this, "Nt");
1008
- Q(this, "Zt");
999
+ o(this, "zt");
1000
+ o(this, "Lt");
1001
+ o(this, "p");
1002
+ o(this, "_");
1003
+ o(this, "Jt");
1004
+ o(this, "Kt");
1005
+ o(this, "Wt", !1);
1006
+ o(this, "jt");
1007
+ o(this, "Nt");
1008
+ o(this, "Zt");
1009
1009
  this.jt = A, this.Nt = t, this.Zt = e, this.xA();
1010
1010
  }
1011
1011
  xA() {
@@ -1057,11 +1057,11 @@ class DA {
1057
1057
  }
1058
1058
  class CA {
1059
1059
  constructor(A, t = !1, e = {}) {
1060
- Q(this, "jt");
1061
- Q(this, "re");
1062
- Q(this, "Be");
1063
- Q(this, "ie");
1064
- Q(this, "onTransformChange");
1060
+ o(this, "jt");
1061
+ o(this, "re");
1062
+ o(this, "Be");
1063
+ o(this, "ie");
1064
+ o(this, "onTransformChange");
1065
1065
  this.re = A, this.Be = t, this.jt = this.Qe(e.width, e.height), t && this.setupTransformObserver();
1066
1066
  }
1067
1067
  Qe(A, t) {
@@ -1076,8 +1076,8 @@ class CA {
1076
1076
  (i === 0 || B === 0) && g.videoWidth > 0 && g.videoHeight > 0 && (i = g.videoWidth, B = g.videoHeight);
1077
1077
  }
1078
1078
  e.width = i, e.height = B, e.style.position = "absolute", e.style.pointerEvents = "none";
1079
- const o = window.getComputedStyle(this.re);
1080
- let n = parseInt(o.zIndex || "0", 10);
1079
+ const Q = window.getComputedStyle(this.re);
1080
+ let n = parseInt(Q.zIndex || "0", 10);
1081
1081
  isNaN(n) && (n = 0), e.style.zIndex = "" + (n + 1), this.Ee(e), (s = this.re.parentNode) == null || s.insertBefore(e, this.re.nextSibling);
1082
1082
  }
1083
1083
  return e;
@@ -1136,15 +1136,15 @@ class CA {
1136
1136
  }
1137
1137
  class M {
1138
1138
  constructor(A, t, e, s = {}) {
1139
- Q(this, "Dt");
1140
- Q(this, "oe");
1141
- Q(this, "ne");
1142
- Q(this, "ae");
1143
- Q(this, "he");
1144
- Q(this, "le");
1145
- Q(this, "ce");
1146
- Q(this, "De");
1147
- Q(this, "h");
1139
+ o(this, "Dt");
1140
+ o(this, "oe");
1141
+ o(this, "ne");
1142
+ o(this, "ae");
1143
+ o(this, "he");
1144
+ o(this, "le");
1145
+ o(this, "ce");
1146
+ o(this, "De");
1147
+ o(this, "h");
1148
1148
  this.Dt = A, this.oe = t, this.ne = e, this.h = s;
1149
1149
  const r = this.ne.cols, i = this.ne.rows;
1150
1150
  this.ae = this.Dt.TA(r, i), this.he = this.Dt.TA(r, i), this.le = this.Dt.TA(r, i), this.ce = this.Dt.TA(r, i), this.De = this.Dt.TA(r, i);
@@ -1186,9 +1186,9 @@ class M {
1186
1186
  }
1187
1187
  class uA {
1188
1188
  constructor(A, t) {
1189
- Q(this, "I");
1190
- Q(this, "Dt");
1191
- Q(this, "Ce");
1189
+ o(this, "I");
1190
+ o(this, "Dt");
1191
+ o(this, "Ce");
1192
1192
  this.Dt = A, this.Ce = t;
1193
1193
  const e = Math.max(this.Ce.length, 1);
1194
1194
  this.I = this.Dt.TA(e, 1), this.ue();
@@ -1219,7 +1219,7 @@ class uA {
1219
1219
  class O extends M {
1220
1220
  constructor(t, e, s, r = {}) {
1221
1221
  super(t, e, s, r);
1222
- Q(this, "Pe");
1222
+ o(this, "Pe");
1223
1223
  this.Pe = new uA(this.Dt, this.oe.getCharacterColors(" .:-=+*%@#"));
1224
1224
  }
1225
1225
  characters(t) {
@@ -1255,13 +1255,13 @@ class O extends M {
1255
1255
  this.fe(t, "flipVertically", "Flip vertically");
1256
1256
  }
1257
1257
  Ie(t, e, s, r, i = 255) {
1258
- let B, o, n, g;
1258
+ let B, Q, n, g;
1259
1259
  if (typeof t == "string") {
1260
1260
  const a = this.de(t);
1261
1261
  if (!a) return u.C(!1, "Invalid hex color format. Use '#FF0000', '#F00', 'FF0000', or 'F00'.", { method: e, providedValue: t }), null;
1262
- [B, o, n, g] = a;
1263
- } else if (B = t, o = s !== void 0 ? s : t, n = r !== void 0 ? r : t, g = i, !u.C([B, o, n, g].every((a) => a >= 0 && a <= 255), e.charAt(0).toUpperCase() + e.slice(1) + " color values must be between 0 and 255", { method: e, providedValues: { r: B, g: o, b: n, a: g } })) return null;
1264
- return [B / 255, o / 255, n / 255, g / 255];
1262
+ [B, Q, n, g] = a;
1263
+ } else if (B = t, Q = s !== void 0 ? s : t, n = r !== void 0 ? r : t, g = i, !u.C([B, Q, n, g].every((a) => a >= 0 && a <= 255), e.charAt(0).toUpperCase() + e.slice(1) + " color values must be between 0 and 255", { method: e, providedValues: { r: B, g: Q, b: n, a: g } })) return null;
1264
+ return [B / 255, Q / 255, n / 255, g / 255];
1265
1265
  }
1266
1266
  we(t, e) {
1267
1267
  u.C(["sampled", "fixed"].includes(t), "Invalid color mode. Must be 'sampled' or 'fixed'.", { method: e, providedValue: t }) && (this.h[e] = t);
@@ -1315,12 +1315,12 @@ void main() {\r
1315
1315
  class S extends O {
1316
1316
  constructor(t, e, s) {
1317
1317
  super(t, e, s, { ...PA });
1318
- Q(this, "me");
1319
- Q(this, "pe");
1320
- Q(this, "_e");
1321
- Q(this, "ve");
1322
- Q(this, "be");
1323
- Q(this, "xe");
1318
+ o(this, "me");
1319
+ o(this, "pe");
1320
+ o(this, "_e");
1321
+ o(this, "ve");
1322
+ o(this, "be");
1323
+ o(this, "xe");
1324
1324
  this.me = new x(t.context, T, "precision lowp float;uniform sampler2D u_sketchTexture;uniform vec2 u_gridCellDimensions;uniform vec2 u_brightnessRange;varying vec2 v_uv;void main(){vec2 cellCenter=(floor(v_uv*u_gridCellDimensions)+vec2(0.5))/u_gridCellDimensions;vec4 color=texture2D(u_sketchTexture,cellCenter);float brightness=dot(color.rgb,vec3(0.299,0.587,0.114));float brightnessValue=brightness*255.0;if(brightnessValue>=u_brightnessRange.x&&brightnessValue<=u_brightnessRange.y){gl_FragColor=color;}else{gl_FragColor=vec4(0.0);}}"), this.pe = new x(t.context, T, "precision lowp float;uniform sampler2D u_sampleTexture;uniform vec4 u_fillColor;uniform bool u_useFixedColor;varying vec2 v_uv;void main(){vec4 sampleColor=texture2D(u_sampleTexture,v_uv);if(sampleColor.a>0.0){if(u_useFixedColor){gl_FragColor=u_fillColor;}else{gl_FragColor=sampleColor;}}else{gl_FragColor=vec4(0.0);}}"), this.ve = new x(t.context, T, "precision lowp float;uniform sampler2D u_sampleTexture;uniform bool u_invert;uniform bool u_flipHorizontally;uniform bool u_flipVertically;varying vec2 v_uv;void main(){vec4 sampleColor=texture2D(u_sampleTexture,v_uv);if(sampleColor.a>0.0){float invertValue=u_invert ? 1.0 : 0.0;float flipHValue=u_flipHorizontally ? 1.0 : 0.0;float flipVValue=u_flipVertically ? 1.0 : 0.0;gl_FragColor=vec4(invertValue,flipHValue,flipVValue,1.0);}else{gl_FragColor=vec4(0.0);}}"), this.be = new x(t.context, T, "precision lowp float;uniform sampler2D u_sampleTexture;uniform vec4 u_rotationColor;varying vec2 v_uv;void main(){vec4 sampleColor=texture2D(u_sampleTexture,v_uv);if(sampleColor.a>0.0){gl_FragColor=u_rotationColor;}else{gl_FragColor=vec4(0.0);}}"), this._e = new x(t.context, T, "precision lowp float;uniform sampler2D u_colorSampleFramebuffer;uniform sampler2D u_charPaletteTexture;uniform vec2 u_charPaletteSize;uniform vec2 u_brightnessRange;varying vec2 v_uv;void main(){vec4 color=texture2D(u_colorSampleFramebuffer,v_uv);if(color.a==0.0){gl_FragColor=vec4(0.0);return;}float brightness=dot(color.rgb,vec3(0.299,0.587,0.114))*255.0;vec2 range=u_brightnessRange;if(brightness<range.x||brightness>range.y){gl_FragColor=vec4(0.0);return;}float t=(brightness-range.x)/(range.y-range.x);float idx=clamp(floor(t*u_charPaletteSize.x),0.0,u_charPaletteSize.x-1.0);vec3 charColor=texture2D(u_charPaletteTexture,vec2((idx+0.5)/u_charPaletteSize.x,0.0)).rgb;gl_FragColor=vec4(charColor,1.0);}"), this.xe = this.Dt.TA(this.ne.cols, this.ne.rows);
1325
1325
  }
1326
1326
  ye(t) {
@@ -1337,19 +1337,19 @@ class S extends O {
1337
1337
  const OA = Object.freeze(Object.defineProperty({ __proto__: null, TextmodeBrightnessConverter: S, TextmodeConverter: M, TextmodeFeatureConverter: O }, Symbol.toStringTag, { value: "Module" }));
1338
1338
  class dA {
1339
1339
  constructor(A, t, e) {
1340
- Q(this, "Dt");
1341
- Q(this, "_t");
1342
- Q(this, "ne");
1343
- Q(this, "Me");
1344
- Q(this, "Ge");
1345
- Q(this, "Fe");
1346
- Q(this, "$e");
1347
- Q(this, "Ye");
1348
- Q(this, "ae");
1349
- Q(this, "he");
1350
- Q(this, "le");
1351
- Q(this, "ce");
1352
- Q(this, "De");
1340
+ o(this, "Dt");
1341
+ o(this, "_t");
1342
+ o(this, "ne");
1343
+ o(this, "Me");
1344
+ o(this, "Ge");
1345
+ o(this, "Fe");
1346
+ o(this, "$e");
1347
+ o(this, "Ye");
1348
+ o(this, "ae");
1349
+ o(this, "he");
1350
+ o(this, "le");
1351
+ o(this, "ce");
1352
+ o(this, "De");
1353
1353
  this.Dt = A, this._t = t, this.ne = e, this.Ye = this.Dt.yA(R, "precision mediump float;uniform sampler2D u_characterTexture;uniform vec2 u_charsetDimensions;uniform sampler2D u_primaryColorTexture;uniform sampler2D u_secondaryColorTexture;uniform sampler2D u_transformTexture;uniform sampler2D u_asciiCharacterTexture;uniform sampler2D u_rotationTexture;uniform sampler2D u_captureTexture;uniform vec2 u_captureDimensions;uniform int u_backgroundMode;uniform vec2 u_gridCellDimensions;uniform vec2 u_gridPixelDimensions;mat2 rotate2D(float angle){float s=sin(angle);float c=cos(angle);return mat2(c,-s,s,c);}void main(){vec2 adjustedCoord=gl_FragCoord.xy/u_gridPixelDimensions;vec2 gridCoord=adjustedCoord*u_gridCellDimensions;vec2 cellCoord=floor(gridCoord);vec2 charIndexTexCoord=(cellCoord+0.5)/u_gridCellDimensions;vec4 primaryColor=texture2D(u_primaryColorTexture,charIndexTexCoord);vec4 secondaryColor=texture2D(u_secondaryColorTexture,charIndexTexCoord);vec4 transformColor=texture2D(u_transformTexture,charIndexTexCoord);bool isInverted=transformColor.r>0.5;bool flipHorizontal=transformColor.g>0.5;bool flipVertical=transformColor.b>0.5;vec4 encodedIndexVec=texture2D(u_asciiCharacterTexture,charIndexTexCoord);if(encodedIndexVec.a<0.01){gl_FragColor=(u_backgroundMode==0)? vec4(0.0):texture2D(u_captureTexture,gl_FragCoord.xy/u_captureDimensions);return;}int charIndex=int(encodedIndexVec.r*255.0+0.5)+int(encodedIndexVec.g*255.0+0.5)*256;int charCol=int(mod(float(charIndex),u_charsetDimensions.x));int charRow=charIndex/int(u_charsetDimensions.x);float flippedRow=(u_charsetDimensions.y-1.0)-float(charRow);vec2 charCoord=vec2(float(charCol),flippedRow)/u_charsetDimensions;vec4 rotationColor=texture2D(u_rotationTexture,charIndexTexCoord);float scaledAngle=rotationColor.r*255.0+rotationColor.g;float rotationAngle=(scaledAngle*360.0/255.0)*0.017453292;vec2 fractionalPart=fract(gridCoord)-0.5;if(flipHorizontal)fractionalPart.x=-fractionalPart.x;if(flipVertical)fractionalPart.y=-fractionalPart.y;fractionalPart=rotate2D(rotationAngle)*fractionalPart+0.5;vec2 cellSize=1.0/u_charsetDimensions;vec2 texCoord=charCoord+fractionalPart*cellSize;vec2 cellMax=charCoord+cellSize;if(any(lessThan(texCoord,charCoord))||any(greaterThan(texCoord,cellMax))){gl_FragColor=isInverted ? primaryColor : secondaryColor;return;}vec4 charTexel=texture2D(u_characterTexture,texCoord);if(isInverted)charTexel.rgb=1.0-charTexel.rgb;gl_FragColor=mix(secondaryColor,primaryColor,charTexel);}"), this.Ge = new S(A, t, e), this.Fe = new M(A, t, e), this.Me = [this.Ge, this.Fe], this.ae = this.Dt.TA(e.cols, e.rows), this.he = this.Dt.TA(e.cols, e.rows), this.le = this.Dt.TA(e.cols, e.rows), this.ce = this.Dt.TA(e.cols, e.rows), this.De = this.Dt.TA(e.cols, e.rows), this.$e = this.Dt.TA(this.ne.width, this.ne.height);
1354
1354
  }
1355
1355
  Te(A) {
@@ -1372,13 +1372,13 @@ class dA {
1372
1372
  u.C(t !== -1, "Converter instance not found in pipeline.", { method: "remove", providedValue: A, convertersCount: this.Me.length }) && this.Me.splice(t, 1);
1373
1373
  }
1374
1374
  swap(A, t) {
1375
- const e = (B, o) => {
1376
- if (typeof B == "number") return u.C(Number.isInteger(B) && B >= 0 && B < this.Me.length, o + " index must be a valid integer within the converter array bounds.", { method: "swap", providedValue: B, convertersCount: this.Me.length }) ? B : null;
1375
+ const e = (B, Q) => {
1376
+ if (typeof B == "number") return u.C(Number.isInteger(B) && B >= 0 && B < this.Me.length, Q + " index must be a valid integer within the converter array bounds.", { method: "swap", providedValue: B, convertersCount: this.Me.length }) ? B : null;
1377
1377
  if (B instanceof M) {
1378
1378
  const n = this.Me.indexOf(B);
1379
- return u.C(n !== -1, o + " converter instance not found in pipeline.", { method: "swap", providedValue: B, convertersCount: this.Me.length }) ? n : null;
1379
+ return u.C(n !== -1, Q + " converter instance not found in pipeline.", { method: "swap", providedValue: B, convertersCount: this.Me.length }) ? n : null;
1380
1380
  }
1381
- return u.C(!1, o + " parameter must be either an integer index or a TextmodeConverter instance.", { method: "swap", providedValue: B }), null;
1381
+ return u.C(!1, Q + " parameter must be either an integer index or a TextmodeConverter instance.", { method: "swap", providedValue: B }), null;
1382
1382
  }, s = e(A, "First"), r = e(t, "Second");
1383
1383
  if (s === null || r === null || !u.C(s !== r, "Cannot swap a converter with itself.", { method: "swap", firstIndex: s, secondIndex: r })) return;
1384
1384
  const i = this.Me[s];
@@ -1480,6 +1480,9 @@ const IA = (E) => class extends E {
1480
1480
  clear() {
1481
1481
  this.Dt.OA();
1482
1482
  }
1483
+ createFramebuffer(A, t, e = {}) {
1484
+ return this.Dt.TA(A, t, e);
1485
+ }
1483
1486
  };
1484
1487
  class L {
1485
1488
  Se(A) {
@@ -1521,8 +1524,8 @@ class k {
1521
1524
  }
1522
1525
  class fA extends L {
1523
1526
  Je(A, t, e) {
1524
- const s = A[e] === 255, r = A[e + 1] === 255, i = A[e + 2] === 255, B = t[e], o = t[e + 1];
1525
- return { isInverted: s, flipHorizontal: r, flipVertical: i, rotation: Math.round(360 * (B + o / 255) / 255 * 100) / 100 };
1527
+ const s = A[e] === 255, r = A[e + 1] === 255, i = A[e + 2] === 255, B = t[e], Q = t[e + 1];
1528
+ return { isInverted: s, flipHorizontal: r, flipVertical: i, rotation: Math.round(360 * (B + Q / 255) / 255 * 100) / 100 };
1526
1529
  }
1527
1530
  Ke(A, t, e) {
1528
1531
  return { x: A, y: t, cellX: A * e.cellWidth, cellY: t * e.cellHeight };
@@ -1531,7 +1534,7 @@ class fA extends L {
1531
1534
  const e = [];
1532
1535
  let s = 0;
1533
1536
  for (let r = 0; r < t.rows; r++) for (let i = 0; i < t.cols; i++) {
1534
- const B = 4 * s, o = this.Oe(A.characterPixels, B);
1537
+ const B = 4 * s, Q = this.Oe(A.characterPixels, B);
1535
1538
  let n = this.Ue(A.primaryColorPixels, B), g = this.Ue(A.secondaryColorPixels, B);
1536
1539
  const a = this.Je(A.transformPixels, A.rotationPixels, B);
1537
1540
  if (a.isInverted) {
@@ -1539,7 +1542,7 @@ class fA extends L {
1539
1542
  n = g, g = D;
1540
1543
  }
1541
1544
  const h = this.Ke(i, r, t);
1542
- e.push({ charIndex: o, primaryColor: n, secondaryColor: g, transform: a, position: h }), s++;
1545
+ e.push({ charIndex: Q, primaryColor: n, secondaryColor: g, transform: a, position: h }), s++;
1543
1546
  }
1544
1547
  return e;
1545
1548
  }
@@ -1567,8 +1570,8 @@ class wA {
1567
1570
  }
1568
1571
  Ze(A, t, e, s) {
1569
1572
  if (!A || !A.xs) return "";
1570
- const { xs: r, ys: i, endPts: B, flags: o } = A;
1571
- if (!(r && i && B && o)) return "";
1573
+ const { xs: r, ys: i, endPts: B, flags: Q } = A;
1574
+ if (!(r && i && B && Q)) return "";
1572
1575
  let n = "", g = 0;
1573
1576
  for (let a = 0; a < B.length; a++) {
1574
1577
  const h = B[a];
@@ -1578,13 +1581,13 @@ class wA {
1578
1581
  n += `M${D.toFixed(2)},${c.toFixed(2)}`;
1579
1582
  let l = g + 1;
1580
1583
  for (; l <= h; )
1581
- if (1 & o[l]) {
1584
+ if (1 & Q[l]) {
1582
1585
  const d = t + r[l] * s, C = e - i[l] * s;
1583
1586
  n += `L${d.toFixed(2)},${C.toFixed(2)}`, l++;
1584
1587
  } else {
1585
1588
  const d = t + r[l] * s, C = e - i[l] * s;
1586
1589
  let P = l + 1 > h ? g : l + 1;
1587
- if (1 & o[P]) {
1590
+ if (1 & Q[P]) {
1588
1591
  const p = t + r[P] * s, m = e - i[P] * s;
1589
1592
  n += `Q${d.toFixed(2)},${C.toFixed(2)} ${p.toFixed(2)},${m.toFixed(2)}`, l = P + 1;
1590
1593
  } else {
@@ -1601,17 +1604,17 @@ class wA {
1601
1604
  }
1602
1605
  Xe(A, t, e, s, r) {
1603
1606
  const i = A.codePointAt(0) || 0, B = this.je(t, i);
1604
- let o = null;
1605
- return t.glyf && t.glyf[B] !== null ? o = t.glyf[B] : w && w.T && w.T.glyf && w.T.glyf.VA && (o = w.T.glyf.VA(t, B), t.glyf && o && (t.glyf[B] = o)), this.Ne(t, o, e, s, r);
1607
+ let Q = null;
1608
+ return t.glyf && t.glyf[B] !== null ? Q = t.glyf[B] : w && w.T && w.T.glyf && w.T.glyf.VA && (Q = w.T.glyf.VA(t, B), t.glyf && Q && (t.glyf[B] = Q)), this.Ne(t, Q, e, s, r);
1606
1609
  }
1607
- qe(A, t, e, s, r, i, B, o) {
1608
- const n = e + (r - o * (B / t.head.unitsPerEm)) / 2, g = s + (i + 0.7 * B) / 2;
1610
+ qe(A, t, e, s, r, i, B, Q) {
1611
+ const n = e + (r - Q * (B / t.head.unitsPerEm)) / 2, g = s + (i + 0.7 * B) / 2;
1609
1612
  return this.Xe(A, t, n, g, B).toSVG() || null;
1610
1613
  }
1611
1614
  }
1612
1615
  class pA {
1613
1616
  constructor() {
1614
- Q(this, "As");
1617
+ o(this, "As");
1615
1618
  this.As = new wA();
1616
1619
  }
1617
1620
  ts(A) {
@@ -1639,8 +1642,8 @@ class pA {
1639
1642
  Bs(A, t) {
1640
1643
  const { transform: e, position: s } = A, r = s.cellX + t.cellWidth / 2, i = s.cellY + t.cellHeight / 2, B = [];
1641
1644
  if (e.flipHorizontal || e.flipVertical) {
1642
- const o = e.flipHorizontal ? -1 : 1, n = e.flipVertical ? -1 : 1;
1643
- B.push(`translate(${r} ${i})`), B.push(`scale(${o} ${n})`), B.push(`translate(${-r} ${-i})`);
1645
+ const Q = e.flipHorizontal ? -1 : 1, n = e.flipVertical ? -1 : 1;
1646
+ B.push(`translate(${r} ${i})`), B.push(`scale(${Q} ${n})`), B.push(`translate(${-r} ${-i})`);
1644
1647
  }
1645
1648
  return e.rotation && B.push(`rotate(${e.rotation} ${r} ${i})`), B.length ? ` transform="${B.join(" ")}"` : "";
1646
1649
  }
@@ -1694,9 +1697,9 @@ class mA extends k {
1694
1697
  }
1695
1698
  class $ {
1696
1699
  constructor() {
1697
- Q(this, "Ds");
1698
- Q(this, "Cs");
1699
- Q(this, "us");
1700
+ o(this, "Ds");
1701
+ o(this, "Cs");
1702
+ o(this, "us");
1700
1703
  this.Ds = new fA(), this.Cs = new pA(), this.us = new mA();
1701
1704
  }
1702
1705
  Ps(A) {
@@ -1716,7 +1719,7 @@ class xA extends L {
1716
1719
  var B;
1717
1720
  const r = [];
1718
1721
  let i = 0;
1719
- for (let o = 0; o < t.rows; o++) {
1722
+ for (let Q = 0; Q < t.rows; Q++) {
1720
1723
  const n = [];
1721
1724
  for (let g = 0; g < t.cols; g++) {
1722
1725
  const a = 4 * i, h = this.Oe(A.characterPixels, a), D = ((B = e.characters[h]) == null ? void 0 : B.character) || s;
@@ -1752,9 +1755,9 @@ class vA extends k {
1752
1755
  }
1753
1756
  class N {
1754
1757
  constructor() {
1755
- Q(this, "Ds");
1756
- Q(this, "Cs");
1757
- Q(this, "us");
1758
+ o(this, "Ds");
1759
+ o(this, "Cs");
1760
+ o(this, "us");
1758
1761
  this.Ds = new xA(), this.Cs = new bA(), this.us = new vA();
1759
1762
  }
1760
1763
  Ps(A) {
@@ -1773,8 +1776,8 @@ class yA extends L {
1773
1776
  vs(A, t = 1, e = "transparent") {
1774
1777
  const s = A.canvas;
1775
1778
  if (t === 1 && e === "transparent") return s;
1776
- const r = document.createElement("canvas"), i = r.getContext("2d"), B = Math.round(s.width * t), o = Math.round(s.height * t);
1777
- return r.width = B, r.height = o, e !== "transparent" && (i.fillStyle = e, i.fillRect(0, 0, B, o)), i.imageSmoothingEnabled = !1, i.drawImage(s, 0, 0, s.width, s.height, 0, 0, B, o), r;
1779
+ const r = document.createElement("canvas"), i = r.getContext("2d"), B = Math.round(s.width * t), Q = Math.round(s.height * t);
1780
+ return r.width = B, r.height = Q, e !== "transparent" && (i.fillStyle = e, i.fillRect(0, 0, B, Q)), i.imageSmoothingEnabled = !1, i.drawImage(s, 0, 0, s.width, s.height, 0, 0, B, Q), r;
1778
1781
  }
1779
1782
  }
1780
1783
  class _A {
@@ -1823,9 +1826,9 @@ class GA extends k {
1823
1826
  }
1824
1827
  class TA {
1825
1828
  constructor() {
1826
- Q(this, "Ds");
1827
- Q(this, "Cs");
1828
- Q(this, "us");
1829
+ o(this, "Ds");
1830
+ o(this, "Cs");
1831
+ o(this, "us");
1829
1832
  this.Ds = new yA(), this.Cs = new _A(), this.us = new GA();
1830
1833
  }
1831
1834
  Ps(A) {
@@ -1893,11 +1896,11 @@ const RA = (E) => class extends E {
1893
1896
  };
1894
1897
  class YA {
1895
1898
  constructor() {
1896
- Q(this, "Dt");
1897
- Q(this, "_t");
1898
- Q(this, "Os");
1899
- Q(this, "jt");
1900
- Q(this, "ne");
1899
+ o(this, "Dt");
1900
+ o(this, "_t");
1901
+ o(this, "Os");
1902
+ o(this, "jt");
1903
+ o(this, "ne");
1901
1904
  }
1902
1905
  }
1903
1906
  class z extends function(t, ...e) {
@@ -1905,35 +1908,35 @@ class z extends function(t, ...e) {
1905
1908
  }(YA, IA, RA, FA, UA) {
1906
1909
  constructor(t = null, e = {}) {
1907
1910
  super();
1908
- Q(this, "re");
1909
- Q(this, "Us");
1910
- Q(this, "ie");
1911
- Q(this, "ks");
1912
- Q(this, "Vs");
1913
- Q(this, "Rs", null);
1914
- Q(this, "Hs", 0);
1915
- Q(this, "zs");
1916
- Q(this, "Ls", !0);
1917
- Q(this, "Js", 0);
1918
- Q(this, "Ks", 0);
1919
- Q(this, "Ws", 0);
1920
- Q(this, "js", []);
1921
- Q(this, "Ns", 10);
1922
- Q(this, "Zs", !1);
1923
- Q(this, "Xs", !1);
1924
- Q(this, "qs", () => {
1911
+ o(this, "re");
1912
+ o(this, "Us");
1913
+ o(this, "ie");
1914
+ o(this, "ks");
1915
+ o(this, "Vs");
1916
+ o(this, "Rs", null);
1917
+ o(this, "Hs", 0);
1918
+ o(this, "zs");
1919
+ o(this, "Ls", !0);
1920
+ o(this, "Js", 0);
1921
+ o(this, "Ks", 0);
1922
+ o(this, "Ws", 0);
1923
+ o(this, "js", []);
1924
+ o(this, "Ns", 10);
1925
+ o(this, "Zs", !1);
1926
+ o(this, "Xs", !1);
1927
+ o(this, "qs", () => {
1925
1928
  });
1926
- Q(this, "Ar", () => {
1929
+ o(this, "Ar", () => {
1927
1930
  });
1928
- Q(this, "tr");
1931
+ o(this, "tr");
1929
1932
  this.re = t, this.Xs = t === null, this.ks = e.renderMode ?? "auto", this.Vs = e.frameRate ?? 60, this.zs = 1e3 / this.Vs;
1930
1933
  }
1931
1934
  static async create(t = null, e = {}) {
1932
1935
  const s = new this(t, e), r = s.Xs ? e : void 0;
1933
1936
  let i, B;
1934
1937
  s.jt = new CA(s.re, s.Xs, r), s.Dt = new iA(s.jt.ge()), s.Xs ? (i = e.width || 800, B = e.height || 600) : (i = s.jt.width || 800, B = s.jt.height || 600), s.Us = s.Dt.TA(i, B), s._t = new cA(s.Dt, e.fontSize ?? 16), await s._t.Ut(e.fontSource);
1935
- const o = s._t.maxGlyphDimensions;
1936
- return s.ne = new DA(s.jt.canvas, o.width, o.height), s.Os = new dA(s.Dt, s._t, s.ne), s.er(), s.sr(), s;
1938
+ const Q = s._t.maxGlyphDimensions;
1939
+ return s.ne = new DA(s.jt.canvas, Q.width, Q.height), s.Os = new dA(s.Dt, s._t, s.ne), s.er(), s.sr(), s;
1937
1940
  }
1938
1941
  er() {
1939
1942
  this.tr = () => {
@@ -2050,12 +2053,13 @@ class j {
2050
2053
  u.u(A);
2051
2054
  }
2052
2055
  static get version() {
2053
- return "0.1.9-beta.1";
2056
+ return "0.1.9-beta.3";
2054
2057
  }
2055
2058
  }
2056
2059
  const LA = Object.freeze(Object.defineProperty({ __proto__: null }, Symbol.toStringTag, { value: "Module" })), kA = j.create, jA = j.setErrorLevel, VA = j.version;
2057
2060
  export {
2058
2061
  CA as TextmodeCanvas,
2062
+ uA as TextmodeColorPalette,
2059
2063
  dA as TextmodeConversionPipeline,
2060
2064
  eA as TextmodeErrorLevel,
2061
2065
  cA as TextmodeFont,